From c27a8897b8ef1b13332aaea590cd9ac1d3c51cc3 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 11 Aug 2026 20:06:53 +0000 Subject: [PATCH 1/2] feat: Ablaufgrafik mit korrekten DCAT-Begriffen (v2.40.0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neue Grafik assets/images/ODW-Ablauf.svg — „Vom Formular ins Datenportal" in drei Schritten: Formular ausfüllen, DCAT-AP.de-Metadaten erzeugen, Portale ernten den Katalog ab. Eingebunden im README unter „Die Idee" und auf der Einstiegsseite im Backend. Die Vorlage zeigte teils erfundene Begriffe (dct:filleout, dct:snapet, dct:name). Die Grafik nennt jetzt ausschließlich Eigenschaften, die das Plugin tatsächlich ausgibt — dcat:Catalog, dct:title, dct:publisher, foaf:name, dcat:dataset, dct:description, dcat:distribution — jeweils gegen class-fields.php und class-rest-api.php geprüft. Als SVG umgesetzt: Text bleibt Text, mit /<desc> für Screenreader, im Repository statt an einer Attachment-URL. Bei 900 px (README) und 760 px (Einstiegsseite) im Browser gerendert und geprüft. Der neue Alternativtext ist in .pot/.po ergänzt und die .mo neu kompiliert. https://claude.ai/code/session_01JB1xUQM892bVZ4Yv3MZjvq --- CHANGELOG.md | 22 +++++ README.md | 6 +- assets/images/ODW-Ablauf.svg | 135 ++++++++++++++++++++++++++++ includes/class-admin.php | 14 +++ languages/open-data-wizard-en_US.mo | Bin 67334 -> 67547 bytes languages/open-data-wizard-en_US.po | 3 + languages/open-data-wizard.pot | 3 + open-data-wizard.php | 4 +- 8 files changed, 184 insertions(+), 3 deletions(-) create mode 100644 assets/images/ODW-Ablauf.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 64cfe73..b15b659 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,28 @@ und dieses Projekt folgt [Semantic Versioning](https://semver.org/spec/v2.0.0.ht --- +## [2.40.0] — 2026-08-11 + +Eine Ablaufgrafik, die erklärt, was das Plugin eigentlich tut. + +### ✨ Added +- **`assets/images/ODW-Ablauf.svg`** — „Vom Formular ins Datenportal" in drei Schritten: + Formular ausfüllen → DCAT-AP.de-Metadaten erzeugen → Portale ernten den Katalog ab. + Eingebunden im README (unter „Die Idee") und auf der Einstiegsseite im Backend. + +### ℹ️ Zwei Entscheidungen dahinter +- **Nur Begriffe, die das Plugin auch wirklich ausgibt.** Die Vorlage zeigte unter anderem + `dct:filleout`, `dct:snapet` und `dct:name` — die ersten beiden existieren im Vokabular + nicht, und der Herausgebername ist `foaf:name`, nicht `dct:name`. Die Grafik zeigt jetzt + `dcat:Catalog`, `dct:title`, `dct:publisher`, `foaf:name`, `dcat:dataset`, `dct:description` + und `dcat:distribution` — jeder Begriff gegen `class-fields.php` und `class-rest-api.php` + geprüft. Eine Erklärgrafik mit erfundenen Fachbegriffen erklärt das Falsche. +- **SVG statt Rasterbild.** Text bleibt Text: scharf auf jedem Bildschirm, durchsuchbar, und + mit `<title>`/`<desc>` auch für Screenreader beschrieben. Die Datei ist rund 7 KB groß und + liegt im Repository statt an einer Attachment-URL — sie funktioniert damit auch im Fork. + +--- + ## [2.39.1] — 2026-08-10 Wartungs-Release. **Am Plugin selbst ändert sich nichts** — keine Änderung an PHP, CSS oder diff --git a/README.md b/README.md index c1d21a8..a9044be 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ <p align="center"> <img src="https://img.shields.io/github/license/daimpad/OpenDataWizard?style=flat-square&color=03FF9A&labelColor=101010&label=Lizenz" alt="Lizenz"> - <img src="https://img.shields.io/badge/Version-2.39.1-03FF9A?style=flat-square&labelColor=101010" alt="Version"> + <img src="https://img.shields.io/badge/Version-2.40.0-03FF9A?style=flat-square&labelColor=101010" alt="Version"> <img src="https://img.shields.io/badge/DCAT--AP-3.0-03FF9A?style=flat-square&labelColor=101010" alt="DCAT-AP 3.0"> <img src="https://img.shields.io/badge/PHP-%3E%3D%208.1-03FF9A?style=flat-square&labelColor=101010&logo=php&logoColor=white" alt="PHP >= 8.1"> <img src="https://img.shields.io/badge/WordPress-6.4%2B-03FF9A?style=flat-square&labelColor=101010&logo=wordpress&logoColor=white" alt="WordPress 6.4+"> @@ -54,6 +54,10 @@ Open-Data-Portale binden diese URL als Harvest-Quelle ein und holen sich die Met Der entscheidende Unterschied: **Die Daten bleiben bei der Organisation. Der Katalog kommt zu ihr.** Es wandern ausschließlich *Metadaten* — die Beschreibung der Daten — zum Portal, nie die Daten selbst. Und dieselben Metadaten lassen sich an beliebig viele Portale gleichzeitig ausliefern, ohne sie mehrfach zu pflegen. +<p align="center"> + <img src="assets/images/ODW-Ablauf.svg" alt="Drei Schritte: Formular ausfüllen, DCAT-AP.de erzeugen, Portale ernten ab" width="900"> +</p> + --- ## Was ist DCAT-AP? diff --git a/assets/images/ODW-Ablauf.svg b/assets/images/ODW-Ablauf.svg new file mode 100644 index 0000000..64b21b6 --- /dev/null +++ b/assets/images/ODW-Ablauf.svg @@ -0,0 +1,135 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 460" width="1200" height="460" role="img" aria-labelledby="odw-ablauf-titel odw-ablauf-desc"> + <title id="odw-ablauf-titel">Vom Formular ins Datenportal + Drei Schritte: Redakteurinnen und Redakteure fuellen ein einfaches Formular aus, der Open Data Wizard erzeugt daraus DCAT-AP.de-konformes JSON-LD mit den Eigenschaften dcat:Catalog, dct:title, dct:publisher, foaf:name, dcat:dataset, dct:description und dcat:distribution, und Datenportale ernten den Katalog automatisch ab. + + + + + + + + Vom Formular ins Datenportal. + + + + + 1 + Formular ausfüllen + + + + + Neuer Datensatz + + + + + + + + + + + + + + + + + + + + + + + + Einfache Fragen statt Fachbegriffe — + fünf Reiter, verständlich beschriftet. + + + + + + + + + + + 2 + DCAT-AP.de erzeugen + + + + + + catalog.jsonld + + + dcat:Catalog + + dct:title + + + dct:publisher + + foaf:name + + + dcat:dataset + + dct:description + + + dcat:distribution + + Das Plugin schreibt daraus gültiges JSON-LD + oder Turtle — ohne Zutun der Redaktion. + + + + + + + + + + + 3 + Portale ernten ab + + + + + + + + + + + + + + + + + + + + + + GovData, europäische Portale und andere + Harvester lesen den Katalog automatisch. + + diff --git a/includes/class-admin.php b/includes/class-admin.php index de46b0a..d4678b0 100644 --- a/includes/class-admin.php +++ b/includes/class-admin.php @@ -757,6 +757,12 @@ class="odw-page-logo"

+ <?php esc_attr_e( 'In drei Schritten: Formular ausfüllen, DCAT-AP.de-Metadaten erzeugen, Portale ernten den Katalog ab.', 'open-data-wizard' ); ?> +

    @@ -826,6 +832,14 @@ class="odw-page-logo" font-size: 15px; color: var(--odw-color-text, #1d2327); } + /* Die Grafik trägt ihren eigenen dunklen Hintergrund und soll die + volle Breite der Textspalte nutzen, ohne sie zu sprengen. */ + .odw-introduction-figure { + display: block; + width: 100%; + height: auto; + margin: 24px 0 8px; + } 34D#$y2tSqLlTK0f=m+GA%>6yi6M!(hBhQB6+_JtAt4DOhSHvmqCH$wO^wnz zbfCtfrD|+wDOy@Jm(tR~P>#8%`}=3TpU=Jh^z^%)wcovlXFcmpI5XyyIXAbA`+|R& zMTUPSl`f193HuK<_AH0_kD9fNTU2H|Y1h#z7j{1lV$DmKB02F8@bo{odCHt}%O z`17y_F2_K;gMQ3!e4~x&M@J~?gI6#d=VLAW1by*GY=f6D1S4XM*@i9geY}esu_)G< z=9t{jn5H-d6L1^0z+3nnMzf11%x^~0(9Yh+@wf$*x(1Ey#EGbkbVMH<;>077vCJGS zkGrud9(MfM@g8dDK5;gagRnaBE9jm{V-XEb!MHf+RP2m=$GnYN`8Sw|rOC4P&@k>A7U-GuZ4v+v!6#{81W0JS{vGo{72AuosMoE#(aQU*?sc2AN`p< z5Ko~}`4>iFZB~+wg__g`XbS0FR*te1a-2pKkWKs;D>=b=GyTH?~E6zsUJ~HI~#2axu&S48ziCYziaN$bUAC z5p-yx6Ijl}n9HaYUw?@+BGy6sfnT~^Km>XcN1+C6gq5)?#^NB1!MUjCcA+x5AC-YW zP|uZh_ptZ22{xo79hI7CcpRUhc6PicKPRw$FIy{1QK{XF?eGv*MPD9P@ww0kb5Jj; zLe$aD#nQL~tD$?h^T7#JDxYBs41U?Z*?OQdGXb@u8K_KbMNM!3HNi3T#cQY?K0tl1 zN*{hgVg%}F2B3~451GnsCevt6#~IWYEBCc4i$P7)9`!y*$1EIyTF7y9;WMm>u70*A z+M{-sikc`BwUBXG9jBpg!wL-1{Xa;fF&)2P3#`_kA4Hgj!|?%fTxRe9`-{dl)LCCg z)yO}nV)P$qCkRCqa{}r}+M*WF0|PM=^}R`o-8AOX2*QuB2JS_z^dh?OF=~gQgX}$T zgL+@|Ll;g(Rr4y;&TpU=P&&iDDSgpJTpiWl5?f&hbZelgG$!F{Ou)#&_RRWYH1Sf@ zPQJ!1cpjC3d6{#->ERTn$7Z~kV;At&2z#%;MBR?tsM>gfI(yGtTSGN4 zlDNB@hN^!8Dm9x>Rl6I@;BnL!Phv3M#7gL$XEPCmsl@Tf1u|1mnLLmDGG%UKTdbFF zYa|C*tJ#9upgWAW%3T`Ks1-$wq7bnY>iXTpD17D^HQE+qcMPL{9O{L$5M%HsN8bWt zn8PF@7sRYa%Eow&u@1*;y8lOM?B#>c3z-xrjdeQZFD^kZ zT!mWjTGY;Vq6-gW1-y>h$lq8VBgZ@UzcGzh=tx0N{0gJ-DC+F~Mjc6+3AU&Lky9{@ zuq7@>)y!E`k={hTn*AA6*ReXrVq?^EgD?RLaRT*c);kZ>nP?~Kff^ti+u~?!ikneq z`#aXerx=JX?rsPsU;uVUWoEe3KMq~Q^Bp&%#{U7`|3l+E4ed1NReSBmpjNsJwewA= zsxL+@q||FR+!i(Q%czBn!sa*&8)Gr1<2}^Tb^ezv;^F_|{B>p%=}_usp%$_c zbrhdF{d-Zh@GGWbQ__}(ucH?DBPt`mqrT@m*_iLpA4lP3EV*t|?4JuJpuYF7Db5$? z(=m;Xto_I};I0W*+OF|T0~K17mc;u&1=CRBV4 z+hewSx*c#G>iT?*+QB^x$0w+agwC+lTL=3ScSBYA2Go)4LZ$kSW9>KWk@Z5|j>Q;^ z?_wlw$0q3h$?5Qa(@xkNb@sim7LGtKoQpcDB^ZILu?2qP#Ge1QXIc+6K?3Ue{z!S5 zeAF%Y6TLBbX2~^lo0>F~;)af$P?_kDB}If$#Kl-2Z=epEYR$91?Y2X$G!OaL%;rD3?=|Mzf#Y!`@lezb zPGSuDzhxKD78U1UXIz3K@G@$gt_$q%7nzt$JQdxkG>*{Fn<`|XEyhL|OWXx@1QW3p zZbqH$Eo_3-7TFYcMlC20%i|i<_di2r<_hWvD=xN2lz=+Io{P!9i^c>x+F=pa#&f9D zc`UJSuG(0KxD#sNJk;4PLlx5=ROSw%3xCHdSnh3pKw%huj0;f zX=n%UVKA=7K>QN5u(PP0JU|tr?=st;fWE{%uq9@o7XB{QzzwKZ^HJ2oucCJT2rHuJ zayy^98jWgnG<58U&k^^<5Dx}KP5k-0_6V+`i@3sj_E)P|>_tPr>3Or#7< z`}ghNBV52Z;z=LaYrO#zh|fA!`Ov<|QZSbJ&3GC*%MURZH=~Lu{3DyPC{$*epeLrF z7T6u@<7iY$m!WE9jpHuIGHEo#6ZkTgS!3UX15gvp!$kZ7 zmC}1oe+YLwV!W573C2O!7FRYe=Qnj9jWkOFw~iMUr)hd zHtNBe8|-@59mN&L$LK{|d87R~AB?(H;aCq7F%}17eVo6M{72E)Nk?_O zii%5ZvMG&5y^s>o4+lDqLM?O(YUhg`x1x6VJ!-sbs0Dj{VpCrS)!!QHU>`RP-Onkg zoi0S}Xd~9d0~n6Kqf+U;*%nt->`MGRY9WhJ-&>2iCHqj%e}|gz99F^ySQ)*x*nW2~ zjTkzbVmZu2J&=b=of}m&MW_Kk!HT#GdUfUC>VC#+t*Z4dj1DR&g@+!cyDp-v{2&G8D3KnmWZ?XZ6V@fdp(XMAD*z_J5%#vVKQvje)Y z4gQABvFTN_&tmu{t!FhLDbn+D7Fg;MnB@3*c9VY#h8PwaeA@a{;sy44o&2}-~MU18fqav z2TJ~wYHFZ%bHhW9ZQ7aX*IzQ2Upamzz?!2_@z@d)(6_1Frxqb9zOs*R_pH(sT0>`^757VK_A zqb`jXQK=b^3Ag|?(GgT;Zejy`j7n+U!*;?1)Q;L?IqZviZ)Blr!Hp$96P(ZYplaa| za*N#NG!0#o#z&m9K}|3nRg{ZSN3jkE;9hKi;YaQBT~J3b47Gq6SQY1?#`yrt<7cSx zicv*)1_O2f@6(8)qvE&r)tZ2_h(};Qe1L5+{X2VRi_nL7H>!9Kp;CPwHSjO!h31%D zxHncH3`J$CK32r%(2w~|8V#M%VAKi=Q3KCJrE)n2;5O&;Z!w7YSJY0QVi)v3ZqIZ8 zY61C9JPvh~Go1d_*n)Tymi+zybsDeG;rG2g`iJJcCp zcH(Q;nfM=!#pDzAc1^%=;+?3YIFDN3A1BDa2EI*)QsecbeG`Ubed12242;GwoP{dV zHO}V;P&>PYjnMz3t?u@y@m@gPjzOqfu@ZH3KVxOQc9Q&SWlxnJeFpK!POUAr} ztC23Zc}!y+9p^9Gclf`5u@irbdJ$bj-S41ZZHk*?IPqZASx!Y2(`+YRgv!(k48%{d z5+22R_!Da9o>#PCH|IhlhmIK3Jzjz;zIRarA41i_anu=J#6frmmE!cPwtog{VM|eG zzXNp?#i-kG67~JEzuEDFF_-yG2O3)0C#aO4MGbHbTj5>QL~*~{&xfEgG8Q%9Lex%I zJMKkq;?qui30=gGoH*nUyRkTQXY)Z4jdHjORaEOy3)%1ZBi1Fpiki6MpLT*6)Wppk zyJ86OP}I>)!8qK3DR=`zG3lB;l3v%yza|<+hf+5IeeiAc#8s#_-N)Dwi?I`yyKeu| zxf?3QMW}_XLw)Zs?#AyiALrk&?-g^?{{B!G^}U#zIHGYdGHiQ z6aR^-{=mQNFPlxVEb(d70xsZqe2R%U_LhCKZbZdVx9#5#W}-55!A(Oc5B#qkI2L`0 zQ&1V{jb1nbYvW{0!w<0>KEwuC>W=;0F&6c`e%K6OMP+mgYNNX`0#BnB;QpJ2b`*ct znue8$N1_X-pe9<0TG%?Qj@vOFPoU1+`<{KS7HYg0C+>o|#67SMeu>)9A6QZM|2BK4C@mQL@j70HpDg92+v?J`uuH;#FvR% zBXw!s#sKCw(;wTFFGEeZ8(+n1sH4b!VpBa4bzL_&ao|&%(k`f-7ocikAtvKq9E3jq z*rOYPs*UlOfJ@M=>vW8UCJKCJQx}EWL2J~GM`9wb#2R=Wo8n`vj*X2+$sb%&QP*#h z6Hmo@#G6o=I)i$?jE6_bk+?iO+$Cq*jt)&Q5VeCM495egFI+)Q>`}_2MJa&;P6kT*6rqrjChcFfS?ow>PL`O&Tp?c1ftwCff- zBr7I0t1x3o29LV33MOWa9j1@FjVvh4$jzcBUmpzNe_b-@89B_AF*w#Nm^&wI!8fxj zZF!?_@u&gG`L4q3f~+jpn8K`4W0G7$b8>TCIqJ-E4Q29Z7h`4>Fvb6y)|F?c&4_l5 fDw%AID?6iLT-KPvlJ8~O*~VtYZb?3}E9rj$8j6iY delta 10272 zcmYM(33N@@9>?(=i9`mGkVGVrTtb8lNQ8(;Yo2E{r=^C!^P(5gAjYW%Ad8Qa@ zs#K{KRWWNRrBszt4K-E`rM&jN?=SnT^}4M0*?XUJ_VC~TeeS(^XW#LeGRwy~U*2b) z;lHt^jETV;6;%8Ge>-XzlTLLfCgLAh6{D#1!N&LuzK_r2LyW*dHH|5Y<4|2r#QL0pKaWsC>oF&3L+B^-#6I39y>KGwmNn1!dX9)>0vR zz^8B~R>Vsf!uaMfg?=;yCEE*m7)N~~#^W*!#C`Y#9>*vQO)=&(OvVEI6+gzQsm3(G zhP92!z>%1VtFaMYz@`|(D(W%5d4_^k_8#Wr3RLK#>)L^9q9T%k0odKGKZEpTUdJHZ zh+(+h^_XihYUPhmk?fpC-U<&bOu_hN4 z;_0Xf7NS;m3?E_zmamBg)wkCxVP)!>s9ft&pZHgy@G=dZy^NWMn%QOIw--w>dPO{d z3gypO4a1pD9%i9BDnRwK8x_e*SQ_u3`g@2iFpPvzKYft2F|)IXzgE7T2HjYUs(UqJ ze=!NQ!p2wu2VxlJV-(Inorcv&;+w-*3GZSwmd&;+uZfY=TcfTIK;1vip-`Se0mk5G z7>*~=gV#{W7}(h6LK5asZ-AX~6zaJHsQZ3JP1J{*%3&lXU?QsDPN<0tMorLpodOAM z7NYj*0BVINQ5|1JZGrC-Hng#*0aB3NFilXoG8X-DJt}frQT-f5MerPI<=#)~*pUaw z1Raw~L3@^ix}gI`;B%;B_d03<(@>FGj#}9k+<^N~&%fM+1jI?Ge(I5lA7Muvh7WN! z4sK=_TBEr!@96y3qp*kzd$9}-XkoMXUl{4dAovaK`&-(M-fd;yc&4>6-DvNRyh6;U zcm*#Y|IEQQHbS9o?Sk5371{@&BK-!IV|+84LUmkDecBOb3`HepH`Jbv zM|D_$+N%Ait+|A}Ld*ly{fX_3;jL}Dq6f#Kw&+82^oH9&K_NblweTwHn1%5&SdI-* z$?_9+!iU%wTX(d3S%7}jw_sV^iR$lbEQ6O&6T5-xN1cp?m`=oBGg&}`I`{~Ku@IB+ zD^!O!&>tV6?(-q_RS!b#bp-apI;iKTy4T;wlAJ*fhS`FZ@h-N(&@RM(D22XV>_B_b z-^-ZqP&59iD|JQRSvQ7@`NsI7I- z8`omE>Kok)dr_hM9UGy4Z~JCzf!czhs1=PuMWO&Tz!ua1Utu7gMXm4(>N)Q|#$;nC zYHK>8wj>uB$}uA-G@#)S>Orr*c4n1P1Er(h2hC9v=!+hlidAtfDi@BRR&*LQz)jQy z^w}N_!KhPE3!|_r*46ocfkGo1mf%V}i~qujxh30eZeTs?O`f)UJPMT?Z=(iYgc@KK zDmjZ#TX7gQfuFG=-b6iD`WaiVgprJI>Qacswy2Ks(1VjvD_n&!cnI~Lxa?jJ>Tk0+ z1-0^g)C6W?Ih=#G1-h=I) z)j(x&Q;fqGur|&_CF4$v#DmxkFCr(|WDK#_-$E^5E~?*xA&#BdK^n9-r%+jX4M|}0 z7Y1Rs=j_LBe>~(xuHYw_muDvs^SnLJ?NJjMhsup9sJ)+!^>7VV!*i&lFXarg6Uahk zZEN(wzNiQLV|Kru`A+2En7|ioNQYp3>f`W9`~=(JU1YAN@r!nWtMMLn zXDbEGXx(tW#o#g2u^Tv(w=7s@w{?`ktu0dlR)KvrtL342ib+0(DAijJ7#5 z2$f8uQLp4h7>+A36}O{u>l$X_Kgd7RU<}t8-)y3wfqq7Ha0j2n$C!cHW9{C)gxZ3) zup+L-C@jJVJcogJ&uurHZ4dQm*KAb(xi|xdpre)ErJ!T?H)^H{uh|J@VGi{UsEN!# zg}ewO@i1!OOQ?xF!Uh;V-hLaQXlX7G3HReh}tU8TlW2th}Eb!MZJig zbL-9`3L0=XYVR*%Jl;n?tn{|st14K9dKxyu?rwcHYEM5w4N!#I+bc*qnTM!T@XAyh zu@$IexE_hHV?MV9a}0IPuV6_MO|vWSfVF7PM@?WkhT&e+7M;P$c-yT9Pq%wp9ksC5 zs4X0dn)p1_M2}-_o&P^6D1-@|iH6t<^}t-zM0R01K0vJ`X{PVt{YCt(_{L+$N( zR0ONevL9kCu?O{mcn7~gO?bmQ^u_q*YYLj_1DuT&`5&!t4XWdvI2>=IR?vTrjnpF4 z1P;6PyV#a`mAUp$F~d;({D84|6Wd_WyY@8oKu2$?0t(8;FEACqN3GoFJ^O_r8x^v# zSPz$ARXmBB&;ty@^m+FACs7j{jy3Up)QXExTX+FISZY4;Z$cq{zWqir7!|tds2e`U z1U!bC*aOtS2@7m8wLwL$D|+xHtbp(0C|r$eG4_2s!9y5K{S?Mv@%zMIGc5Ii&EjPA zP|wCt%*FCJ+`T>t|Drw@%i@fM_Wp(FPklRT<@?YZZ=oi9$Gsl@p}j8-%g|oap-_oJ z8dk*isF@8ytz;r5<2<*$2m`7AjM;b{%VFXoyT_TRS94F)#7CgE<_*-!XQRejg5l_V z?iRkqrZf~|louT?wgWf&x7~sf=;8VT?1tO09|kS4zo7Ckg8Fx;30_4-@ID5h-%>k~ z@~Bf1heXgZ11V_bBT-2*6~k~fs>23Ki1vsAQdjdV#IO zR=62M@G&YPLCcM4r}JNlf@V4xHGzDL#d)Y3KgDd^jSAU6xDCTr@K+N&f&|SBEwIP6 z^h*2VH4`&wALP0iYf(RiN@lNBEQ0Y(9SXxR8|X_h8iI1Bl|{dfeNXEYA z-=ZdT59?$3wR|FC8&nP?ud~-PQ3LnDC>)OQIBgyAPxazE84cR=bL;sfi+4~ruHRr^ zy$4WR@))~g)JD4%!(At%AMGDvXmW?W}rg4 z6|3VORMK2^eT155;3m5=k82KUh5bng;~D4_+LgwllB*$B z#ZDN9FJU0g#WegkcEsbTiFiJ-&t;%aNjud2y-^bxjOB15hTDU7m(rKvBe~yaWZr7uz37p09_y9GLfKTmxQC7#)pr8=d z!wT3Q%V2-h19`4vT&E)GVLm`jsO1*>N2;e#D}0C(F<>iiL7ai)r}-7NkXfJc%NiHr z0-b-)Hap-pOy|OGEXMn&2hWm`gK_c~_D?a_u_g89+wC4t$NkjT;uAP>hyC;{#4zet zu?qf!ijZfgU04bxFurL_L3=R>wTE+2H!j5-+rj}|I+46CThjqTnD3)HXn6d z7rXT$jG_J;YAZ_bvi(J3$>)C)3hKBgs)Mok1};TCQ0*&w>>6M<>N8LSUqBzcgW9qO zs0HZntlGL@)E32}CXj+JVp~+dpYJCAz7)QpL3@7!Yv2`B1j-fJH(v~vrXKIsYho4Z zb+9>hMeXeZ)I?Tb2(HHr+=)uYyO@LJ_Sg@hj(Z$C&|DhsabXE+BJb_Bzf#wrR`lLJ zo8`+<6JCq4ScqEbF;wnca1A3NbYE-Kf;yp+JRh}{@1Pd2&7q(Nf5ed(e87H~Ou!D* zD<8DK@1I9Kupbqf->?bZ#{g__$bMC8ioVn*ptk5O)En;u)K=|9P52OMV$K-~3XRuc z`)O4fHBb-KK%+4UC!<1IhyhrHTG0{o$70lb<995B{$IPF38?FBP`S_zd*QR#fbq?C z3MG4k8lc=a_KoI2ZAE=d!nUaUMxjDK7u9hg>X>auJ%0>?@FIreEmZRP9I+Fwf;Fi( z#5A4%ffT0GFdzG2)uZ<3w}Xk)zrp~#iptu1s1W;oYda1`Kk7-S38!OOY=w%@Qy7dd zpeFblYHMawjS6R{oj##j!gq9*WxTVICS!a}$G z1U9067UQwvasB0kHgqy6Y@v{aw=fxNerE^nfitNOLrw4zYH!P)u=NORtNSq(U%_U$ z0^{%sYAgIs+6jiC78HYuOxj7}pFp844YhD2DgukJGHylf`APTsZPd!5zqkJnM`Ki0 zzliGaWz?ydj*amMYU=_|*^oz|CYFe5Z+(jRYh~SN(4Gy!KKKf1&%Q-j2)cyOgF8+YJ9`KWW)3wD;x(~G#XOLUWWmKe{qI33J>`$nPUPYh z6g2Q(sALSdWY2dqR8BmLaX1sTXB$u<-saZ7LPhFpR1RD~or;I3<6GueyYjlI73W|c z_CjBs{~`(+=n$&od#GIa4{8qsitWl`Q6Y9v?S-g`?L(c4V$@dLLY)S$%l5uHsQ#Pd zFdUAW*iRV3_@?v~+d%{>+2T+G<)R|<4#whA)WEw?D?Q(-)wsjdZ<@(>n+fa zdM*yd!KgRqQFN44KTyy>zq^{NcJD(`12@Dn*b6oA0M{`XMSTux>(*l$7Gryiyk_5! zgHc;D2{q1KROD7%BmMyt_R!#qM==t=#};@CTVlQI_K(fuP$Axnn%HU7bARHO_&2_Y zJ8syo*-1C;_lB;h=X#-X;CUQ`lW!9L(iE=I5Q?|m8%y1?=QJFZ{Y`N>_D9|C{kxrj zKju?U#D=&O$Ka1{z58wZcfnbx2>JhEk8x8}zr7s_ffVvlA$bF}S1YhOuEQ>P9Q`r= zj{P)D!4&GfQO~`F^>H-@;Ca+auVNMSzH28?9X0UNuFh)|LTOlt9$b$a=m=_Jr!g8Y zVLJX7wdd*g?0p?k9rkkTqfl8s0Tb{hYC&Q5?He@)!>K1>dGgORp-`2E?x+>#qdHuS zHE}y?uZvO1=kuq{kr>pcDJ9@yiVS|a7WHYU32njJcoOTN&tEp=8LpkMH|=>yKAJrkftw!Li66jZ#y3|f zyoM2v?N+>t3iV1Hif7z<)Bo6zjzX<`F(%Ss}r@-bc|_t!=b z^>$bphoSnPX1tt|73`%Uj)vQ)0YbdIN(N3w?O{9g;0RPw&cR4r?6z;kVCtuF2wuj8 z*rAkH$!Yiv%Tm9Knt+$L?KjTbu@{=tplt1m8ej}oz{#lW{QytnGSr)JjE|k*B-H)O zum*0xQusY;i+(`e|H#$5wCyhlE7Bh3xP@fYikhPa&P9cIBx=S>Fa&pED?EzY!w6rm zlE@^YlB*5szW%6*jl>`vj~Z|qhU0SN_?duh6tXCM?YsGKje_*eC;Q$Qu{rL@j;#Ly D7-maa diff --git a/languages/open-data-wizard-en_US.po b/languages/open-data-wizard-en_US.po index 594da9a..00cdd11 100644 --- a/languages/open-data-wizard-en_US.po +++ b/languages/open-data-wizard-en_US.po @@ -753,6 +753,9 @@ msgstr "Import in progress…" msgid "In Datensatz einfügen" msgstr "Insert into dataset" +msgid "In drei Schritten: Formular ausfüllen, DCAT-AP.de-Metadaten erzeugen, Portale ernten den Katalog ab." +msgstr "In three steps: fill in the form, generate DCAT-AP.de metadata, portals harvest the catalogue." + msgid "In welche Kategorie gehört dieser Datensatz?" msgstr "Which category does this dataset belong to?" diff --git a/languages/open-data-wizard.pot b/languages/open-data-wizard.pot index b1514fb..93531a0 100644 --- a/languages/open-data-wizard.pot +++ b/languages/open-data-wizard.pot @@ -474,6 +474,9 @@ msgstr "" msgid "In Datensatz einfügen" msgstr "" +msgid "In drei Schritten: Formular ausfüllen, DCAT-AP.de-Metadaten erzeugen, Portale ernten den Katalog ab." +msgstr "" + msgid "In welche Kategorie gehört dieser Datensatz?" msgstr "" diff --git a/open-data-wizard.php b/open-data-wizard.php index 4e420f2..721fbac 100644 --- a/open-data-wizard.php +++ b/open-data-wizard.php @@ -3,7 +3,7 @@ * Plugin Name: Open Data Wizard * Plugin URI: https://github.com/daimpad/OpenDataWizard * Description: DCAT-AP 3.0 konforme Open Data Metadatenverwaltung für WordPress. Bereitstellung als maschinenlesbarer JSON-LD-Endpoint für offene Daten. - * Version: 2.39.1 + * Version: 2.40.0 * Requires at least: 6.4 * Requires PHP: 8.1 * Author: nozilla @@ -26,7 +26,7 @@ exit; } -define( 'ODW_VERSION', '2.39.1' ); +define( 'ODW_VERSION', '2.40.0' ); define( 'ODW_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); define( 'ODW_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); define( 'ODW_PLUGIN_FILE', __FILE__ ); From bb5b0dfaaa873f2803b95133a28c4faf5a765d6b Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 11 Aug 2026 20:07:53 +0000 Subject: [PATCH 2/2] =?UTF-8?q?style:=20Pr=C3=A4zisions-Einr=C3=BCckung=20?= =?UTF-8?q?im=20Kommentar=20der=20Einstiegsseite=20entfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PHPCS meldete für die zweite Zeile des CSS-Kommentars eine Präzisions- Einrückung von drei Leerzeichen. Der Kommentar steht jetzt einzeilig. https://claude.ai/code/session_01JB1xUQM892bVZ4Yv3MZjvq --- includes/class-admin.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/includes/class-admin.php b/includes/class-admin.php index d4678b0..dbb3cb6 100644 --- a/includes/class-admin.php +++ b/includes/class-admin.php @@ -832,8 +832,7 @@ class="odw-introduction-figure" font-size: 15px; color: var(--odw-color-text, #1d2327); } - /* Die Grafik trägt ihren eigenen dunklen Hintergrund und soll die - volle Breite der Textspalte nutzen, ohne sie zu sprengen. */ + /* Die Grafik trägt ihren eigenen dunklen Hintergrund. */ .odw-introduction-figure { display: block; width: 100%;