From 6a50befd13d9a1b2bc4bfae25300ec40ffc4b1a9 Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Tue, 23 Apr 2024 21:13:32 -0400 Subject: [PATCH] Update changelog and translations for version 5.5.0 --- CHANGELOG.md | 15 +++++++++++++++ scripts/i18n_download.py | 4 ---- scripts/i18n_validate.py | 9 ++++++++- src/WinDynamicDesktop.csproj | 2 +- src/locale/es.mo | Bin 13445 -> 13607 bytes src/locale/fr.mo | Bin 13759 -> 14005 bytes src/locale/jv.mo | Bin 13234 -> 13398 bytes src/locale/zh-Hant.mo | Bin 11052 -> 12602 bytes src/locale/zh-TW.mo | Bin 11081 -> 12577 bytes uwp/Package.appxmanifest | 2 +- 10 files changed, 25 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36606a9..5468134 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## `5.5.0` + +**Note:** PowerShell scripts written for older versions of WinDD will stop working and must be updated. To update them, download the latest scripts from [here](https://windd.info/scripts/) and revise any custom scripts. + +### Enhancements + +* Added light mode as alternative to dark mode that always shows day images ([#547](https://github.com/t1m0thyj/WinDynamicDesktop/issues/547)) +* Added option to show only installed themes in Select Theme dialog ([#576](https://github.com/t1m0thyj/WinDynamicDesktop/issues/576)) + +### Bug Fixes + +* Fixed error in wallpaper scheduler the day after Daylight Saving Time begins ([#579](https://github.com/t1m0thyj/WinDynamicDesktop/issues/579)) +* Fixed invalid format strings for some translations like Javanese ([#580](https://github.com/t1m0thyj/WinDynamicDesktop/issues/580)) +* Fixed error when downloading beta translations from POEditor ([#581](https://github.com/t1m0thyj/WinDynamicDesktop/issues/581)) + ## `5.4.2` **Note:** Version 5.4.0 had a bug causing the Change Lockscreen Image setting to be disabled for some users. If you had this option selected, check lock screen settings in the Select Theme dialog to ensure it is still enabled after upgrading. diff --git a/scripts/i18n_download.py b/scripts/i18n_download.py index 42e9281..add467f 100644 --- a/scripts/i18n_download.py +++ b/scripts/i18n_download.py @@ -20,8 +20,6 @@ projects = client.list_projects() project_id = [proj for proj in projects if proj["name"] == "WinDynamicDesktop"][0]["id"] languages = client.list_project_languages(project_id) -with open("../src/Localization.cs", 'r', encoding="utf-8") as fileobj: - l10n_src = fileobj.read() for lang in languages: language_code = lang["code"] @@ -29,6 +27,4 @@ if lang["percentage"] < 50 and not os.path.isfile(output_file): continue print(f"Downloading translation for {language_code}") - if f"\"{language_code}\"" not in l10n_src[:l10n_src.index("};")]: - print(f"WARNING: Language list does not include {language_code}") client.export(project_id, language_code, file_type, local_file=output_file) diff --git a/scripts/i18n_validate.py b/scripts/i18n_validate.py index fdfe6c8..30814be 100644 --- a/scripts/i18n_validate.py +++ b/scripts/i18n_validate.py @@ -6,15 +6,22 @@ os.chdir(os.path.dirname(os.path.realpath(__file__))) errors = 0 +with open("../src/Localization.cs", 'r', encoding="utf-8") as fileobj: + l10n_src = fileobj.read() for filename in os.listdir("../src/locale"): if not filename.endswith(".mo"): continue + language_code = filename[:-3] + if f"\"{language_code}\"" not in l10n_src[:l10n_src.index("};")]: + print(f"[{language_code}] ERROR: Language missing in Localization.cs") + errors += 1 for entry in polib.mofile(f"../src/locale/{filename}"): i = 0 while f"{{{i}}}" in entry.msgid: if f"{{{i}}}" not in entry.msgstr: - print(f"[{filename[:-3]}] {entry.msgid}\n\t{entry.msgstr}") + print(f"[{language_code}] {entry.msgid}\n\t{entry.msgstr}") errors += 1 break i += 1 print(f"\n❌ {errors} problem(s) found" if errors else "✅ No problems found") +input() diff --git a/src/WinDynamicDesktop.csproj b/src/WinDynamicDesktop.csproj index c4c9574..28750d0 100644 --- a/src/WinDynamicDesktop.csproj +++ b/src/WinDynamicDesktop.csproj @@ -9,7 +9,7 @@ WinDynamicDesktop WinDynamicDesktop Copyright © 2024 Timothy Johnson - 5.4.2 + 5.5.0 resources\WinDynamicDesktop.ico true true diff --git a/src/locale/es.mo b/src/locale/es.mo index 97b6f3c15142597d82f74ba3a2b7a97010f4f2ba..f3bb2d40454d6c6bb92f7687665309574ef6febe 100644 GIT binary patch delta 2614 zcmYM$3ry8z7{~E<9?-*0xe93LN$hw8ec%7(ectDJ-=jww z1{!_Wql3B(f4cd54}YhF)H9|xqj9cH55SBufiZyISh8F(I(un$+`2r7V^xD>-9jLAnACZii|cpMc#J1R3Lk-5zP zYGHni!%?*36sF)$xSaXTLh`Tz(@>G^LZxUgE|?T_1uLh@~@STGq4JOM@1OVa#gcrBugeAHDMWQ#Z{=%)S*iD zGAgD0sQvpj&cg}Rrv45!&n?`52}Gq#?T#V;ny8uq)#zDNjb25iy2lzH#sd0ZqE;5p z&eDB}$dFlqB+cZau5ZN*+-+Td2{li*)gM9y@R^Us0vg{~H%y~abqf_h6j5oSR8&73 zwb{0#p4)>CtVCs`6_vr$sG1MrWB38KU?geWiAV7&`mWI^r1360P80lwE74B4O6^+Q zircUaJ5Vo9;%3#*h3U8+*I@%{kM!arID%hc;u2$C!(XrzUtpEhI{#xdHZhP!p|+q0 zwc;Vv3O_>a;t^|n9F>6yQ~=Y~_^+tr_%|wpw~@KbVpcJLnW(@gQ6-wec%A=0X>hLz z;a5W!oTwCLA(zYpNHt6)YT_o;eTPsJ9Yyx7IfL2@!-uEnR2teZDb0iDOq_$?}+M9!+NJ5Z@#kD72FW?>ty#*dMY`I)aG z4CP4pG{H_9IySAS0A57B@D9=i5Ky+sD2JAu>I)3I#gzk zA=}OLqDtdWCjTxPR~QJ!e=rm8qRxFfJ5d2_L`_&`S%C`l2~?@-a2p=Pe7uCk_%HG* zQ%H0*SdYrcI4UE?N&Qv(6!NXjRE(?eQPhhLqXM~zY-BTrx_=f``+3}~=a!+KOXo|c zU@vOLZAkgeY1DbYh|26ZYQeKU8rd{%URS4*o6w{4l2b()HMc=p-S0{Vc3Vt_&JBdi7TvXdeZTbx7KZ(U-i=$_{!YA;en0BIVNAp?Fda`|GLEC} z`^~-n4{kAYEFs=(9v9xk7~G5NaS;8Oo?w=NwWtZ2aSpa)Hok#(VZVER1WW0kM~xRn zGz#2RRmBh0}wsKBmcI`i8fG-hEEb<)6DsEqx%03Sg;unCLtHRNXpI1r;9L8@uTk)qi- zRA3j~{uQjHe*-JAoXH-*PIT_2F+^iMo<&VqNjmef6}8qqs0{l#D8pe?iN8YyFokL8 zNr_Z26TS2U$R%q+Wxf{kaR(~E&r+zr*76%pPz3u4HQ`lM#ydpFjoBf-`ZWd;N9PUJE%i6u@CrL?_+;52(#{4fWtn^x_n% zBAKM2wXVXau?9QwLtKG#DC76ojt^rc@1o|}hI#lts-n)d0oq}n|>`8;yKik{Dm9w4%S0UvY7+Lu|8BHhtP*3cpqMJuP1mT0p(%P z;X;sxBI-sB(2FYZKGcM#aS`6a0xaa6M5~Itgj(xes67+Ld_0aC z=Nc-I0@g!s!Goy#8+_DXYu~{MJ=lYKa1Uy?A46q)3t4W9=c3-{0#s=O7=sO1hAYvJ zy|@Iw!kIYj8cmrrP9o|9Rpij9r?Cb#Q5e1WEwUf&Dta)MG?nQr4!W-#gZLQggY+)y zz7J4KGl+cjY!sE)7zXe%D)TJXTRIgqRFajb*W(q`KyM-Y#@<1yZJ#1lv>!1Jr%?gM z7Df7b7*D?#7h}2W%kKFBe2(+O7{b(r|9vMM+fU;nCvM>5c#5q|(w0#iDPa(K#P9M<*Sr{1E>VTSdC|~22)rEEnyRG!(N=kBzERL)Wv$e|NCjIrhgObuxU}Gw0lvd z{spy$f1@UhVxd)`WQ@ghREe|Q^CdWgegIXuD%9qE0nN9xc|+%B^HsO4ZdvDDvmx|( eTuyi*?&E~;(Ci9NXfmrT{809EQn+s6xaVKj@%^9x diff --git a/src/locale/fr.mo b/src/locale/fr.mo index 2afbbfcb77c54037abb121344d17a9c87792cda0..a905f47f78162db6fc5e94d0367b7f66049499ec 100644 GIT binary patch delta 2820 zcmZ|PYi!e17{~F$*xZFV*$oEU*ncv*tGKN|Cgav@5JXU9IB`*-+q$ixm(jH>o57M8 z6BI$rK$wV80#RUuXhFn?gp5GM7e+D(K_I*k1qld>mqZMHe`|@aBxRrTKRy3*p65B| z^w`Qn-teW2_$`Ki{ru14{}1tcGG-w8KOdmEpXU@jh#7bc$KaV*|1})N^PSlD8a$fk zOw{{Dn2O~%7Hcrgn6Oz)Lj#w`26SRK&ug#%f5!yOW_B;;VkN$Yh{Sg9_j-=3?H1#>~JPoQNSDiT$VmcAzS= z3t8J7MkO|g**Jtr_%oK_Z&<+kW&(A17-yj(bD~Prjt^lNHSwFMjCW!Qet{Z)1t;Tm z|zO@pM!GUd+T^R0TJpg?mx&eVtDImH7oait!#Q!eY|Zp4pKqnT4nYn@}0A zLTybqYRk5wN_q%&elKGjUO^q|tEhDnh-NyLpeogpN&U4@fDY}^dek0$fGYLgSpNxh z@O&PXSso`#<4Tb(Q;ihO%tL+Oh?Ura<8d=;+yT^jgR$oeVH%3$7AE4o*nmW$QOPV+ zATv-4HpZTpqYhmU>b9Il!zR3pA*`jGi!uB$jc;khapLN62({oi z!Yo2Ns>I819k#VoRWT=#!~Ml&6M z;4FNO4XeX#sEjY5GQ5I1%{OBGf1)a&=oCOAYJ3jrS{9-zI0>}{4*U?GN6iz@k3_2O ze;N(uGP$UXYfuZm5YvUcW4uVxW<6@*U8uvk5BZoQ{NbFLbEv((jtcA^ZpP8|X_q6lrswwX%QUN1nM@@G&JxKI_?fC^|kYQa;e`EH}O zq=>YY`6K+{hMOhGIW(8;0eDaqSc|$1dr|M5N1dS?n1rJkq{OqrG~#L4Q4!W4AJfL4O5B7AcpT&K6jBs( z8td?vnD(;heeXt<_7&8^{jvT5RKTC10=F|iAnK65 zguG%tK}~oONy?0@h-O%U3Sa^1tgJv~+=&+UpfZ046LtTO&`=4FqZYh{3M7tlXu;H& zb(q3)FKXgfu?@H2yLcC$#C|6G2d`oy{>VOXuFXu!sV!N7EMYd`65ao!G}uc)RH^4;IxdX$zlbAwZbwbD5_MbNLSu6@`$Itp1^r%U(B0D4l3bBp?+mQ8 z7WrFU#ZsHP08_hTYjIX$8!6+f=-Xe)oKMhTwYgKq%bRQM2b!A=;+$) z+N4qUr(G3t^%YzBQ;n_8?`w0nhXSsE<#Ae_9;eUU=5AqSzt8IM2b}Hzi#GVZ&9cs; z=e~jbf(%>3;2w{wMdN(D8}eC^i}|zT`g$r-nfc_{|CuY2T=;%m7O$<=f-cKTQkKmZ zat9+vCO(!}=4fN}j^PR21nG78f(+{-slkuP>VBGod%7aG%ibeFM`x!q;PSP&A{#5J GlK%zMBxPLy delta 2579 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 delta 2650 zcmZA2drZ}39LMpmM^q5a3zCu`hpTcCfg~?59N>i-DT%AuB0Yc}0XfG(sMOX;{UbAR zb0^f=%8{FpS}u-gnwvT=%PCn}P1>ZnaO!3k*J_np^!~)p)nezI*YiBT-+7+z_xn7* z!#8WXyn(*)VQt3WTfAd=pA1va?1hMb9Zs{7{&=jxM{$GG-+^Q4x1;Xs!clk}C*lQs z1p83;{oq{x3pbbrEOMk-JQud$Fx-a?_yK0)#7MIkEJZC)g_E!rr{HFsfbGusQOu=( z1vQ_GXcTxjrs8Cb!(vQheOpOG0c^v`cmNCV0w&?m(Y$dgDu4{sgt^EXwg8pcGZ>9k z7>*k;9XFxoKZJ>R85P)1IFa@3R~ln*G{w zb4bzbb5vlxPX88`(*GIraSn^+VKW92XdI-`fIX-M^GPQKYfyW=4V7U#AIh)`RpQT3 z0X)Dc3?DaG!B}+DpN(9y<*3Z-a4NQ<0_+|~{k4~87@!FDEo#9#sEh|tr5i?Bv}Y-( zl9r&(sSjP)ggU(IQ40leE*?daw)?1c6r~b~L2c2DDC)0L&vq^>#UlD^P?;TYZajv( z>@*(~$-Y8e@5gMskGw3AlcQqV?NKK)_Dz+@f}n}1E**#q;UhcVKU)s z;=`!DJApIs66WFq)Y-^lwr6n}UcrO78((?M>`9Cwy(+B4LOhKnIDksDg#9A1fR)kE z>0O4p@FFU6FDd|^Gaf)ahFg(2Y&)`+bz%peb*|Tw7RSc?NKUp1iP_#pj)8Td=0A^- zdj2odplWso5iNd$0?2_)g%fcnY(zkbR+Pe$)axQ1i5*zV|We zEPRc`YW=t{Kx2q|@U)jA+iQzaC9cM4_y*=+7iuf|k(W(K7%XWXX3=j!1=fiQ;6v2Y zbOe?8B~(TFPznEr0hN3d&rBLdqZXcr8Mq3E;ZEdU+l@Lz$59hpLpR<@Ifvn&rCD4ef?DkaZpG%{g0Y!8NncIHHB^Wn#aKZ-E-nO6u-Q)B- za5()7sCjyDI%;-pNfzpGSE38O=*BwKR=ydap~vV`RD|P6Q->o3b-Igj1XiL-yb4wN zt@t#)hdML&Pzel4AN(a9hdRvhsPS~v8Jdgw{#w*Jfz32@NcK7&#W4Cks7$Y-9-o`2 zfd0e?jOKu-l<}zh=b$Q4h{R$GkYbo06~Jy>jvZKwLo)yQod{Sxjk^qVV-4=5epKJW zsNYP?KrY!ztiV>(56w-~|BM#usEl66e0SU#HTfAEut#L)eSk0L_{qjST9x8u@7$y3r@5lxMjikF diff --git a/src/locale/zh-Hant.mo b/src/locale/zh-Hant.mo index 3ae9b78b7b4708401a74abe4efb9332aad00e1b3..19e8dbdda2bbd3b6aa522e9ccbcf836573b5d41d 100644 GIT binary patch delta 4498 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 diff --git a/src/locale/zh-TW.mo b/src/locale/zh-TW.mo index bc797c48e5d463db63fe181e6b5fb3f57eaf1e06..126636073aa294c9315162c2212ef925c1d57713 100644 GIT binary patch delta 4148 zcma*ndr(x@9l-IkqQnPkd_{?`tLOrnplCHwlUNmvNj1ht&D4%FF0cZTWeqGU;}}*& z0beK=P#%gRD58kE8WGSsPU=h>O;TGYX=|OfaPRI;jkKMyGi@@Ret+zh(CI&Qkk2{i zo_o&k_dDnEi?yc`a~}`wU8?wZjQ?Z!|ERb0l&b3Yz2P*E)9;V9I24=kCA?#e{}u<( z@35Z#6G)1U_B1Q4^b-kF=|+W@?Pr@>Mxn!V;~wkQ6d~k zx^iYwNR`wZC>y?ulCcBjXi`v)EFYz$btw1uOYDUYQ7-k@DEmCaxj2fbq*AMgQGeMe zkpVfQ?I>q-1f|p!*7#LiK>wF0nMH83WL_jPq$VOoQ?pT?FTv@!+IpUcvd=NAe;Fl! zpXbtefyQsF36D@p^$aC|Aw(q`O-1Sd0Ohj1hw|Q!QN#5p75NyYf+tYUyaCtYHO$5r zDdYRN7k`DhU(raQagG}&8$88H*q3mnw6Ee4{1NWMVw8o)GFi?r2B+a1oPlX5ccco} z;vM_~BVShPCG93|z={QC^e^$XuV0u-!}E8)n9?( z^iy+bFju*eU{xvdqi*mk4F8DX*nx5x|ALZX7{BJ?RFuzgBg!TH2qn>P&OPI8@hav$e$K9 z+j2Sfqo0gY@eE{suG(ikID)cprR80eO#Ws)@6E%N^atS@+<+_a8a}{2Q$rQ`8s%t) zy%Jh)7D{C|;8M)PEWD4S<@;a2HzjAd9$8Dda3&r@S?C@n;Zv-_RdJj@cH(^8%#BLH zOZXa&;^xWw@1s;C&vHM?KE>D{Yh-)@jYb-BsjgZN9-y54ACNx<>Q9z7IS2cKM0d6a zvOR8>!;_YzFY5cshy+LGCT+Pp*{STy(o#}AU2UJM?^xT?&70G6(lSysPik5gznm_o zwlyt1UCZ*gH%nhjcPDMqvXU~L&I~Qh4B z!h3no=*J>Ee-g-VF!q;fG2D(=Wj559)pcg&RkQ38LyKZnpuW+#SYaM2_Sf(48i|XG zQ|9%{fx;_h{VAiZh{1$Sym`H)=g_j0SYPAI6Kv~^x}*M*db6>%qq#MB>VR=6->lkg z?5twYxOGC#Tr&3r_=Q zcKUC$`CAScM-R={?~l${cqSC?^Vl!!3zi>N!JW;fo*%5JH_ug@#f@gkE!GdM7Pz>N zH-cq)u%bkQ&yLksjhWf6J5k@EF{5pZjq-X4P6baj`DTyvUA~@~9nKFuD)K=&RqY~fgnUY!PHLD7{6I+lTt9m|e z_Z~0{jQAFuatrb)VCZmr#?td-sn{|%m+b$a8rr4%>aC&P zW?psR!g0=q%F7)iG&XKe@E-K%oicr;MnOZcytcFLfKhqUzpKS;JZ)6fn`Lbs&EDYd zdb5DKR?z6KUPp6dsLj38FHPDW&*d|B`#5r=sH~&)w7=*Ul_7P1Wi#o8Hsv~YwpA;c zTIki^ojiKBd92C2Qq0Vt_q6|dg;8+H|H+kLMJ2xj*PB>7aDKn_y>Yo&t!rGbo;)gC zZaZgnb8_^!jvLiRQBy~2ol(>fXlpk1)P=Sn1)1{QeWl$IMxwgU zJ}rVWgl-~dqd&1n=|iJq`gCQY&yOAvM!@=-=#AmL>c4r>cRSi;n`r!OPw-?x=-Z(> zT*gpxQoF-vjKX|PKO8ek-w>M`(K8qQLF}`^QrUtdhWAL|92MWI-=FfP{E6v1b-{lC D;u1-U delta 2706 zcmYk-dr(wW9Ki9jqQpZ35f#N`6UJm)sV1}` zo<+IuvT^+mZcxgmerFKJg_WU74Zspi!!jI!XHWv)z!Xh+$28%n@(loK3Aa#klW8QbwmKpe|F zh~rBl7L*F4VgzQP#K}Q9*ebNLzbaxN4>aQhY{S|33r<7pAf=|@2RH_+aSe8%6_cs& zIGm62YBr%HT8Trk4y8h;k&x;)9D)zf7Rw-<^vsxu^5ATglPtnS+=5d224qjwjk3`t zl*I3%RKSN)>JWlRWh^M|G!OgX0+b$Ggc5&!B=yf=;ADYh)D4u4dQdWdgi`9L!GV&+ zqO4EB8TdNNi7HS|RE^}IT*mrYOk;k@xc&%bpGe-rGZ+^|{bj>M7Nio>QQpl`l#SOL za~n!8I8h!vg7lAS!gc7zw=sz5~CGR{YN{&Qp9 zfzo_?ag==jPce{p^CJ>dJwR!uA-t$*n22(HB}$;}hPzQVszRw)y|I20WrI$Xgzumn zB$!_| zF$XrDigK{UC<(7e*{1|;FEOZLAQx_;B+`QtEw^45kd1@iolEp_V`;-?cH2cfG+_IEvZKzr(c{PB~;F z8%on0M7h5OC*w_|sw&J%gJLSyU?pzC@k#vGjmL2n>L`_clOXc^dsO5VEtH=4)mVRw^qC4x37CY+GGj&lx&qA=n(F>DG}feT4zG2m544*GWS9#lZFS!o zG|A+CC*u2l?)a#GOj<(pYON!>AuMP0^1M&hnhWwX+!4ck!P>)7e^@-tM?JNTo`WYn zRc&UgWmb~%J1V^0E|0U=+f@E!Wx|9B?ir)Un6&e8YlhoBt#yIBmGNln4!^Tf%QsIB zefp%k#T;vjG8d+8?dz&0A=TSn?&~U3?(ngbP1?rztijvrJnsG8eMi0fYQ60)y{5{2 zIX>Go&~LBy);8)DcD=S%iyPMv>Mv>X*PZY-oYAh1o9#}p#F(_q#IhiLd$V>a@qKNo zb-C7K?FcD7>1#d2UfO%fg>k*zM?58N-?1XStyFh>tM9Jr?X1@i?CR^PRi5G|Ej%SQ z!)JFe^nA0|Q&Z-**LzP_>)YGRbMgvuKg-K4=&=|3TFQ;{6*qaSw>`aN)|RHk1QWKm zvr5~Xk{ILJUgi1XgkIwCb+zk`Mu}Qx*K3-zb1B&o`Z - + WinDynamicDesktop Timothy Johnson