From 5a112d7e82fa3e1b0b08f05e85020cbec30fbd71 Mon Sep 17 00:00:00 2001 From: nmby Date: Fri, 5 Sep 2025 22:49:31 +0900 Subject: [PATCH 01/35] =?UTF-8?q?=E6=AF=94=E8=BC=83=E5=AF=BE=E8=B1=A1Book?= =?UTF-8?q?=E3=81=B8=E3=81=AE=E7=9D=80=E8=89=B2=E3=81=AB=E5=A4=B1=E6=95=97?= =?UTF-8?q?=E3=81=97=E3=81=A6=E3=82=82=E5=85=88=E3=81=AB=E9=80=B2=E3=82=80?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hogandiff/tasks/CompareTask.java | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/tasks/CompareTask.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/tasks/CompareTask.java index 266d5ad0..c1c3e883 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/tasks/CompareTask.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/tasks/CompareTask.java @@ -236,6 +236,7 @@ private void paintSaveAndShowBook1( throws ApplicationException { Path dstBookPath = null; + ApplicationException thrown = null; try { updateProgress(progressBefore, PROGRESS_MAX); @@ -257,7 +258,7 @@ private void paintSaveAndShowBook1( updateProgress(progressBefore + (progressAfter - progressBefore) * 4 / 5, PROGRESS_MAX); } catch (Exception e) { - throw getApplicationException(e, "AppTaskBase.070", ""); + thrown = getApplicationException(e, "AppTaskBase.070", ""); } try { @@ -270,7 +271,16 @@ private void paintSaveAndShowBook1( updateProgress(progressAfter, PROGRESS_MAX); } catch (Exception e) { - throw getApplicationException(e, "AppTaskBase.090", ""); + ApplicationException ee = getApplicationException(e, "AppTaskBase.090", ""); + if (thrown == null) { + thrown = ee; + } else { + thrown.addSuppressed(ee); + } + } + + if (thrown != null) { + throw thrown; } } @@ -293,6 +303,8 @@ private void paintSaveAndShowBook2( int progressAfter) throws ApplicationException { + ApplicationException thrown = null; + try { updateProgress(progressBefore, PROGRESS_MAX); str.append(rb.getString("AppTaskBase.060")).append(BR); @@ -321,7 +333,13 @@ private void paintSaveAndShowBook2( PROGRESS_MAX); } catch (Exception e) { - throw getApplicationException(e, side == Side.A ? "AppTaskBase.100" : "AppTaskBase.110", ""); + ApplicationException ee = getApplicationException(e, + side == Side.A ? "AppTaskBase.100" : "AppTaskBase.110", ""); + if (thrown == null) { + thrown = ee; + } else { + thrown.addSuppressed(ee); + } } } @@ -337,7 +355,16 @@ private void paintSaveAndShowBook2( updateProgress(progressAfter, PROGRESS_MAX); } catch (Exception e) { - throw getApplicationException(e, "AppTaskBase.090", ""); + ApplicationException ee = getApplicationException(e, "AppTaskBase.090", ""); + if (thrown == null) { + thrown = ee; + } else { + thrown.addSuppressed(ee); + } + } + + if (thrown != null) { + throw thrown; } } From 9038b58a5fc66e863ba43485cf4fc6d2362b10c4 Mon Sep 17 00:00:00 2001 From: nmby Date: Fri, 5 Sep 2025 22:50:05 +0900 Subject: [PATCH 02/35] =?UTF-8?q?=E9=81=8E=E5=89=B0=E3=81=AAtry-catch?= =?UTF-8?q?=E3=81=AE=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xyz/hotchpotch/hogandiff/tasks/CompareTask.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/tasks/CompareTask.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/tasks/CompareTask.java index c1c3e883..768ab9c4 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/tasks/CompareTask.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/tasks/CompareTask.java @@ -204,15 +204,10 @@ protected void paintSaveAndShowBook( int progressAfter) throws ApplicationException { - try { - if (isSameBook()) { - paintSaveAndShowBook1(workDir, srcBookPathPair.a(), bResult, 80, 98); - } else { - paintSaveAndShowBook2(workDir, srcBookPathPair, bResult, 80, 98); - } - - } catch (Exception e) { - throw getApplicationException(e, "AppTaskBase.180", " at AppTaskBase::paintSaveAndShowBook"); + if (isSameBook()) { + paintSaveAndShowBook1(workDir, srcBookPathPair.a(), bResult, 80, 98); + } else { + paintSaveAndShowBook2(workDir, srcBookPathPair, bResult, 80, 98); } } From 21333665d0fe7d0efaf9783b3d65f818c1e506d1 Mon Sep 17 00:00:00 2001 From: nmby Date: Sat, 6 Sep 2025 00:11:09 +0900 Subject: [PATCH 03/35] =?UTF-8?q?GoogleDrive=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=83=80=E3=82=A6=E3=83=B3=E3=83=AD=E3=83=BC=E3=83=89?= =?UTF-8?q?=E5=A4=B1=E6=95=97=E6=99=82=E3=81=AE=E3=82=A8=E3=83=A9=E3=83=BC?= =?UTF-8?q?=E3=83=80=E3=82=A4=E3=82=A2=E3=83=AD=E3=82=B0=E8=A1=A8=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s.properties\347\256\241\347\220\206.xlsx" | Bin 41373 -> 41613 bytes .../dialogs/GoogleRevisionSelectorDialog.java | 10 ++++++++++ .../logic/google/GoogleFileFetcher.java | 2 +- .../src/main/resources/messages.properties | 1 + .../src/main/resources/messages_en.properties | 1 + .../src/main/resources/messages_zh.properties | 1 + 6 files changed, 14 insertions(+), 1 deletion(-) diff --git "a/xyz.hotchpotch.hogandiff/messages.properties\347\256\241\347\220\206.xlsx" "b/xyz.hotchpotch.hogandiff/messages.properties\347\256\241\347\220\206.xlsx" index 72cea35d60a31fb4e8c8799e5d3bc1213c5fb723..02d07576d93c566f20e63d3bc94ce5c36fa7071e 100644 GIT binary patch delta 31625 zcmV*NKw`h0!vc-P0d-K!v z&p%ylxOiG}{$v0^+mFmj$}YC;KCfs)`T_4~3nwKP4Uw=EE4%LmB}HFRDx2EIjuY4o zVXe7Ch{YusyewHxQ=YFI+R7b>pf!;|zpq%=AJCfo61awlr*&uLyy*a9$!aEFG^lAb zd3>{Kxgg6L+}4EXRSI68Y(!*aoUUdjPL+dI-{{v*dm=v@f5=P|ep z$+HE0W-5nARwDQytKf(goWPLt!)OSkrL_`6@IHvxtk~OR06h{aTP5b&N=Q{xlf5`o~mQ=Jv(g|-RNNrF3 zM`fk4Clv<~8*}>Snh6TE0}=vvU?h1=mi--(m9ZA}E=WC8RWT@d-VbW_Ob0EMwilK~ zUOL{=4c%oCVp~;X-;ta?Vh8(9U}3xBD=1r5mY%(R`D;*dnOB_};C6pvztJ!`FPQ(J zVv?&M+7P&%e{;M0?}G?Fiuj<^J1Gpfze#T)TVKdC%r8h*1b8yS?8iTUEdqdB{@*Bd}sNGGCqjWx<@P!Lc&9^l&)S zjO;g*bh8C&dNx{JAT!-_^^OiPltZlEAZ`kzJbG*U3;q?_zv|e^6k6WV6zhB+@N-h< zcfwGUf5wcEgCk`@xAL}^dIm)^@B`c$51q)foT=+WA|q^to{O!Cm*S~EoTk&nSBX?# zmH7YYt-7${!{e6ggIs1fJ!m znd^f@CR0B3svOxr{cna} z!26nBXq??&XgK*iTg)!By`3%|AF@l0$Fn3IUv591&&Pi(roSIvVgF-5ZJls6YMJUj zs_N(ZZvc}4jTE!q3U2}qiWtw$l}rEt9hLzA7yy$Wo*J`t4J`qGXB-(Cj7NTgehb)` zlY3&>YzhT%3m7G$b|5AiHUWqu@DK zRo@`DPf(!f6SjqME7tIWucdURtX0za{V}n)lxy`0rO(r+<0^2>vzM`o;84cteN)oJ zpPLs=GRWDguurOg_#-mANNL>e_Tw;#;x28RKh)+ci21@LoVdtb6$rvBk-{BooMyK5 zc5?|acITQD)xy05>+}+|wWM74BV=HN3$dtK5! zlMHGJ+Ut_unIyuav7e1z(myu#zkBV5)=$2n)Lvgg0j%YA;& z6EQ2Xaq!SHy5Hy`8g2GpT4Y zLykt1qBJ>0lO;51N;9Qs#&nu7MzhEAo-sC_8AUUHLf(@Ncf-JEho!NTpK+P%k? zi#N6zH8!eSd~7r6T{HgJKo=8_Z7TBEh~j}zEs7_eQpFo)#z|4=_Bb`hXmW~1SG^Rs zqf?4TSH9F3Gjr2~mnmYUaXZoC{H0J@3RI@qxZG?sn#=1JXLmPW-)KL2Yu`EG(^-Tgo>JksOgM^y3Ww3;6b%(lcLS3f^OT~Y z!Wn0_f$)khoYe3{bNN}b@v7N4$%I2j7F{^-#!rO9!KI^K7h5{;IwhUX?Nz&Ugt0T7 z8S#|a>9Mu`NrzFSfkkeVZE> z+t;6q(Y|Te*W9>OQsOC(e0~qYK`>?GP^>GXb-&J}G}XF{Dd4!<|N?p(18PQ%FQ)Jj!=}J|r4I$ihi! z5Ft0~XWHL9YSw>lE}v@F-!$vjnn#w|TBS4Sw^(gL0KQ;!%auxDw&pCN_AyB#mjOgA zJRB+N&F5!Z4}WamUeo77WgY_DC=^5oF$|F_5?$o3A#w}gk}`lB6S+x`vZX)m5}2r; z{r#j+s})Q8s$xaE5}r_hM!32BbF*jo-L<$!PnD*W{rLa^*i?Cu}0&Uq`Rwyxc2E??{%X|#^5iB)WW_)Ewd?NB^1>#Qe1 zz(sI*9RYzBO8}%vneUt{EEKHLw*gWbXh2VsJ*Ir5(Yba3Cf@$`XzScXocPIGFmd~~ z?bzvMYrGl{w#6p$AnJ7=) zJMt=I)eCsUB3*@=5b1Jv-BmP1y4+t!8Y*25V;~WgE>nSjX(SptyhiG@hnj#arPSd~p1#$6HVV$P-w>u$nT z*|Z^N6R*mq4LQdGtU^8toKpjI(K~+@w)_AIhW`{+|N7+KWQ{I^uTgT3ZsE-{+b4?u0HT-`?qiavf@c&I5%}p^4n?h#P zNH7hXMxsPUVpyK`9yA-@DO9@8DIgY}#+-EE^l@Q-u?(JIX_Ct zas<|SXXRH|_U-TB&lj5YdjRvd?`+r?e=PJZlz*;RU0lc?cIJxn^My*GG+U^GY-T zBB~C?A~&(S%$TvrV}W;eali^x4qp4o`PTP0nhky3U+kp|kwHC?{t(LC*9CP_lwbfP zSu8EoAeb%;1K$N=;dI;WoCZ+VY_jI%|Q6J!;5@7)C39Finaq?&w5+xF6LFF51V4k;jW^?0s>)Nt(?Y;(o z->dg zTEM6NrXiO2cQ?KBUv*CW?44TOI&#E2vC(>X$J@9B8$)~bw6_s*UP##iLiw2LN+!+2 zZAe6R0|VtpBC0LyO;bpuYfFa5(x;JsXfSON3+T#E&H6Xq(Vx9zJRyM&HlZc}i@lX% zxl*hZ{|*O$#X@0@3x5FQFAzSk*?e^s=Adw%ts^(Rje8;X-46Jr6wss}{WEFq)*}%W zGEXrG5p_&+8%E&_{fSAhQP4Uw|GNZPi$7PWyfuK_g z=wCh3`T2VmvB8%nfb!K#KgyT(E#>#|7&^W-fw9K1u0QOob~9^e&afSpOPR1-%2=8v zESKgdZhQ~%y||w}g+xSPJjZW;8i|q#47_kie{0=+2;0$Tr5^c4bi8paFnns@^6%x! z7viivR}>-Da>ZDZiIF(0u{0-I3#$>YxI$yVc-ck40uT;92_wyuMp^^14*l6UI5-Qh}qjIk+}A1o|D zh;69~E7h5UssnMdUI1}})6Fe#Vo*(S^3I=W9X;2&^c3c_`TDJJre5Cctli#xd%IQd z=9dZ$$XJ3R-`H3x_r7> z@A{WAqjV1)X1s;0zx=O%iv>fdi4n8Z4*k`wm9M>5VP@HmnWaq3%z)96h6vF(5)+^a z_ff+uHX*Y#&w-joZi5L?#7OU~w66cYW5*7@r6z{Nw2v(Uq5ENPEg0{g!SN^BTLWPV zkmu41@7z`W{d7^h+HEs-Y^D1 ze5&(o-FtI1G#@d4ZO66bV=8mLgpov-IbXp@LM6^i?2w2`oTJuAG>F7SfXc6#kWo#Z zB}_-Vec}ejvb4haxBP*EMc$+s($2P90ArQ6*lJ`v5}QLD{i3(BrvI->Q%usV!?(1mWRp=4QODlsWE*Eo#5 zs@Moy>aj4ZFc!hFsozq!BUWh(Vl~3n-y{<0qR)&lf#r~hAXXzhNQFcMu^QoCG-cOM z^iy-iS~o8=uIB+mej1IY^T3!aTH~L?Wt1 z9AH7Bi2gv>7ZXRE2wDV%e7B`a{bE-kHT3~i2*%Pwg~SR7SD#q;TilO<>Z5jkVsdbEU%lMMxue#N9{Adhk*+6w~s$^ zcJVzX7BXiSPrytnf`!WrPH7+;5^zz%rfg`(1v?&>Hu1RZm~n6*1)C^qW5Y4C+Oh`5 zj_jzcjSYveOSa*t4#JRf@u3Cz0h$W3@GfUlRNf!imt@ryGjd_$hpj?>x(VXJ9vZv3*jaiRUodi(Z+ z_VufFzb|9Q{p4eMdKlr^$CF4z#m;dcB%)&H2SX&HV&?}#%5D&`kHPwe@{~Fxt=|)A zO`2h6!l$F}cSh_beBcRTHfJ83IWBmAWU>u{2PTlB3;L|=dWgvFuwTY3NgYY?fEp4} zk+WSlheTB5JQ#ySMC3f$K26yTBJy#80KRB0zl9X_&6ii3^=`txim%Z@4{sv9t=83>kf0nQXFJ@NG2y-uBXEjDM9xO!6p4tOdGv073W=zk zIjB$B4IpQC7*@cIBb~PwAiCVF|JbbG?6tZhV}BwgxyR}jY(Fl{7D}~+!_J~WD-7Ak zg8TZg3T7zc=TM|7JGq1?fgSkEDBus4e9#pzJI)VgNJRX%aqg@m5%J%~4g0RxQU8sf z>nXcvN)P~kCIs|ZY3s<3t@9gy+@ij*I6e3tV?3Yns9ThA;g&`3Ytg&&MuwQnZ=SAR~s9cB&A{!WfXd%ubVV?Y$lONUpHyKByvckZ+s~u zV-Sh-b(1y_Ny@J0x+#1)TUgk!ST62Zf_@kW%FqjA$ETG-;bU2U0wppFCM$(J)Nhh4WB-;YC|W zMD>L?N<$)DUospEpF$#{FT63{G-bD4`l6>4>j}jcg^7%P4XiLU1KFZ7YAD;RGC@v7 z5MB?>smNGivuXK%IDw^%j5Se9897JHW+}6F2uMDr&BZfgyv6~Ebj{C<^W-liB1eQ_ z4)G$9uKAg9o(e?S#nyabAA4C!RnFMDauJ|a=}D3Y?_!Ht{V#WSrdPq(i89;*IXJC-CLbKT+PZb;OB+iD_FZ>xz!y{#r?w_Umu z-D=XA{6p2JpVh>nY_syju$oyrG$kK1wc%L8BoYymWAv9rBI=y+Yy%`BYLn$rCCYBQ z)JBGmvBS2_C!^#4hbjvUMP{VhJTe@{HY{){b?_$6OPPT}FX5R1-LeiEpBsz_BhQqMBfM zD1_a1nTu|hV~J~UO^A+p#n6PH1G4O~q0kKmb>bI)*=Ci%$-Zd-hyx%+h)URDv8)M; zWyX1(ClV2rFv8VHL{!2ES0fQo2_uL_*=?6fKtO-<^)+wh5j3j&YYASQ1p$Y7vhh_^0( zC#+oA^%pSnE?24-cEB*JAiM}dAfXlfSp?fm07Lv)!qCcy9Wa!SSWJ&{J=JzYb! zk%%1LGko_%B64`=>BiHPUC-Tf-%@eMU-HEgg!pR}(f&Y%P@rK!vwl^_!{LedBbYqB zF{=NhTVp7muvWRvI`q(5ZPwSD_4|;2ed-$)MBU%s z5Q_zpDvv;8VC)s=o%;(^zpn#@y*o&?(x8t+Yrx5AKHk6_@@w?SO zIY3d(AB2nm=u|2iE08Wa&Y>dIe~bJ8|B@2tZ~ykuUnl?9R1V&jD?pQfjyc)lw&WZx zFIAi>Tm}ja&<;B#=zdoHvv}yt=1Y#e3!xxi#MzhRQyd?R2 zsaAsmH5jHC4|IYNS1uIy?XSTMD<$}k^1S>TXu`KpoXv}_Fowm5UdP-+^Wnt*?AP|o zbD;dKljlKzO5s&IzVB~;NQLkGfNJX9z@E%OjBfM!!#`e~0R>lgv$Ssf48&WP>R^e) z5|OXF^`dolZS(alut?t8ig#>v3z7xz!IeE{;GuVJee>nrts~!d-k#7q{V5F=)nbrq zcV=bl;+oLD+hUsq_Kt4cU8OP2Lb|K3e7$oltB| zfMIl#wPr=WOu@9!hB~N-LQegYfifgYsvCg%dMED+hvL@nqRlve+$$iRNNE%L?d;J3aNAM^ z*34hdm&&jgR$wy>+3ys?q{;vcJL}KX{JdjNH(y@fe0{e4I{X%~5j)x~A9D-ALt#jy zs{vP)9MaJJfk(oSi2A_B{-8kKq*@?RZR~4Ez0)<-P>TWEbl|Zq0kBhjw9NI-z-wfb zRN}x$HPm8%%ikW{khfY}F342?C|&g&JCeVpHwC77BaR#r(N%ApuuXhAZFK9vHzk#~ zKwnSXYoCYn#6|GmS`UBd;{!y;qHQZ3*zK*9;rf88aIW{~tIp?z0(6zm!<7P%yldF} z=!kO&H}B3-m>jsZ;EHmpHG} zK%!8Qt4r-iMt8w|V*)9Ho4sIUJ+5aT8P)E!9~m_-wjUVzV zdGj@Y+=i!)S0R?mj(U$M#8tOkMw=m|Axg|E3z3E@G0!AKBC5o^CIyLl+O4#@dfwEz zpj-!XW(1zcZ#umXNJ{77Gb@t9wNibVo&av9?>GefAaDog|GZQEzXEv(P=&=xxh79M zhHZ-gf@hwL|3cF>9yDK})33*8y+cpF*FBwzW@lmn#MX(P3z3_Rn@vW%7frd-5$ii2U zDBS086DgEk@TG*qiJ&TS{|XsS`}Kvb+fM{))p*^K*Ui8pa^RfcJ^HS*{*CIEte~sb zlXIQ>C%tRop!ujBG?$MjhG1t2%069x-bZ5+iS!svYLr)vArXnuaIk0!iKqthb0cME z7p7*3yI=1wh0;>D;oG@4fCx&BI*)oN8-GcqT8FO+_rptg8gOcH^E4D!K04m|P8>L! z4fYFwl`o0x=Qn^wch&HZS9NB)={Ja>hGgWQiVIHQA2@P4)g=g7Rs=qUXsm>PrXaiK zV4)(qhygYXrR9g6+ENK<;BrK`0+H8u0uI>6O>hcP0-W!%lqw@520qY_1h|ZaQL|D7y5@IxYwv1^puael5*4&iO8vz zXW<|XwUQk7LL#c8yooRp#kZ1w`h`;J?t(A?thdeNnirvP-D&{M@h~fB#0v~#7XcR4 z{D$swHCZbw7Y`5{wPU67G1ZwYuhK%Ao2+%4Cait{Mub zjOtK^%14B|WQ*~>&yC1>3AfJWYms~%EwF*IA)GCL=pIZ#Vkle6@k5I z3W=!g;H_+tXkbMUp%eeg4=Xel5j>|ei?M4lalv>r6g@;$4C@gAIE`XGM0Dl)??PQ< zAwdv*>jS5c+Hq9*m?;g1QIUoy4F}VahAIt*)sToP4R45oL<1|0NUwiz+pn1a33ByB zxjdMToLn`8SuLdoHA@fHMw>0Mc)&pZ??3O>S@$;ybXx zfuX7%_)Z@BBtajB8l-Mj{owOFq~w$jkr?_8=L7J3L?pZlF3|tvo{t*Vz*b2HZf-%N z2?z~C9z&pMBFHOSEvZilPLS};Z?8eL**gzOwcXD|eI5ZRn$Yfls6ra4V{U9f z@D-YR{A}mRGw(FycU)^OLr%%6+5$zw%(=6zt1|UNB`9Eq?qcF%%!0TV(@)6}jYj|y78hN}zf!;Cx6jZyC*S4z!Bd;5wV0@F3e+ z!c`r4E1%dG(Tf+kTtU8;LwZ0+oGS%XVeuM#Z_&{Q3?2>z%-@O2&MIYyI6qa%wh@9~gB zBC6v&P>Do;)QRR*xs+WDWHIbw9hH{~NMh&lZFU5+c88}^iJ_@s15jPEWaeqUBI`22 zFPm?LQ1zi6gXxNfyl@7tYus_gES-r!b5>b zL(f`#`$i(FCOmB$iQ?PBu={wZnqZYbc)nI0q4OAjR7U_qF?B>l2APH+*Z6iQY|d5< z399@ zom1$*2UUrHolOlQ9r~A#dANw9cSuC+1<#N|8mc$k zxke(QHwJiuMBAh{;_3;%undrn&OHD=?#LQ{8mPYkq(jt@S(GMn93ZjMz`&qaNOfs; zzatCDEb5{Lu}$hC8bine%ht*p@8qN4+PiR#vBwC;6bMZ$4Nr`oL?WUwJTW?lM7qjk zMhquJvC~y1Gr|vK_@-@A8F_&PlyUihZ*)_m#u@?4O{_IAHWqVKKCDH1k_HQ`CQhV( z;2Oq879@5rgCqx?F>A13T0ZX6+E3*xkTfLxS%fc3(va|H3Dc0q>}a!m%o<(ra-c~h z(hqA{qX{Y!5ezMD*h~xF%rAePrtD%I)>w<~?xkJ;58GM@uc@}+V*8a1r2T|rl@$^( z=t1Wl!$o7G?RK1Yx;KEC-GX~YI&dt1@r^7Si~1bh@3;9Jn+U6x#iC?R_9F)*r+=Jd z%nshl$4v7Km;i~0=J7LP4vC27Wq5!Vi3k+NE6JxRyM&qt2d~a=C!i}tt8vV`^;iTe zQt)h!MVtsshgnrtA``g6QohO8wXNPC`iDR#bfx z?Gi+~mZ3|4YF>U4?GhxULAP>oAXtl{QJg>OT^4le5GQ{#oAiLigNBum}OfoMdkG}QbB%S9y7;cX82 z+1c_EB-<4s^t`Vk3!R-R^wNe@JE)JYi9Ef%la}?>6~Vti&3BeY7Bq;}@30T_Tmj!SWZXzFQyFBJ}<)LJ>>3 z^k-*LwR(Vn`FwGo$OROEpNjZ$re#gdZTq+8Zc~gTkQAmuJ0W_0HOJ*p#}OtZzy1 zt9#2(%B@tib@9&Dr6cOqt?wFJ*UpO&!}_zJF}~srIk)X!u65pC2PN!CUg1{E4ttL& zsFmEek>$}yBqCOfr>EtRh*+^K@A-s8#ES8*Khu<5LMsMmb7FpfAZG+Ov`CjL(Agy1 z*$66utq!!c%ae3=@f{R&Y=PiKtd^2OEiqR`9dx zG-a1iD@5h0?&kE<3h3Z)ZF%c5T*M4bI{>bLL?W>B!u~@phqnQLwkP~cE8ySZAvdrK zknj=gF|uF)?sbNLO^9qN@H+1sNZA&5W~-aOdlwSWubWUy#ciG4yFZ|g5X#AQE&Z&d zRTJd*L60FPKQ9Wu4&{qtt8ntpf${-x-(V+@dx5+*1l}l&xyXYmmX-?8^P_9%Yk3Ir zFICmGBBDLWA*@?q_8g}-*n*IS*&+doEr`!bBIkSctatu@D+udCg@TOmN;3@E;UW`U zw(nGSS2fi@b6daE{_SP!WtVVa0Xm_!JpXjMD(YeyuUKe+jyj>j2E3dZ&C{8xRLVS%i0lSapn#p)j<+sd z>#VQaBSPbU_RxTQ%%#p_14u-rZkSV&IIr#>=9P$3_$DfK9vh(S5=tHFk#(u7QfP2@ z;M~w$Mh%GA9R{YT=42DQ|DE5^|brZ~aZK^IZh zQbTW^_UdW)M&7v#kRhV9Dcp?MV+P|2mnL4@C_j6DA`w+69%Mu!Vn#-J!X*+Bg&O5` zP?TLlg%UTL`icXv_&Zgxr6k>ggG;pjfg5nrY6bmN2a}e@3wj^R`9|Mv;o!A>n{Coq z2b+q&ZKCjOn=G7kwquL6M@PmL>P~K!GrHI!kscix;jNN$NTjcg5#H-`3W@Z!F~Tp0 znMR_2_|Xyl+d_j*8y+mLlwP$r^ns8T!;mJ$i{oCV2fgis%j{A2>10?LT zK!1w9H^zl**wz@y?s4&$ZrCII`h`g(B0A*qBwZw;I>cdKBqBQGG9x^VL<8xNxaU=6 z@dTX}Sx7%z!^~R>Rm(yjDFm3~bY~S>jl#u$^S?Eh*S%vWL;5qag!#RbvJ)di8iSUP zXS}Xarq&yI39cX~bkD)r18au{~K92PeSx9^7s}0RJ3t$Ry1csoat+3GuZB zTvvrNm2BE3a}t8CExi_slP}F-`$YiMq>Yz}a?S#jt;5RtydYq?E~?iB;T9o@8qQ{a zq8b-|`9-0y*uBQF3kFI=ZSQ1oC_`|fSaS~KOG^Oy9mX@BU@h=GOxJ^U45IstsQ2|z zKEriVYiA(WNqo6Ji+bgVNZG=Si!^eAK$}pmk$I*1Ejd`ua`ltGjytR^gq> z@@d$EzQ560UWI~S@A;Y5jqB=V0pu5d;C<=@C_q5j6cJnE$R3YycGO!bhP!e0IOezt zEYhutSIr<1-Ku!0FcMKS!z;Ith;CKJxj>C+Ff-%IvMulW_o5%=wX<>+3OmtkK;CIX zv|?4Q76f{}+PHA^LNErM8=x}}?)E@|cG=pzS zisxYZ3p|Bh9fzWxH!wedk0I93s)rpLt-;3WaaAc2K@=oXk3Wm>(MY5oe->fhwuT|& z_8^&jOdEz|c{h+rBqAEllj4v@S8&%zibEnABQy3<6(oqF;2$h5ik8~yF47?W#C4QJ z?|SYO`un=!@^`xd0p95yClp107yFErWQL5}V*&CpYe~({i<3yB%ZeWtb4WvF#j}c# zNS9T5oVV&iqKLAB$|3+0XA4qZejIVl4`4=u{pryA36n7FVyL2RauC5Xw#VqX?I2RZ zLCr+PdHUe`uz_0ZG}Ut<hllH+bZ z6;Wy4fY>LZI?a=@eJWk4Q#>oZrB~R-bc$wL!Fx(C!#$HlY9L!{+jfW&^^8dSQC^5(Jwu zhz?%DR@7aj!2Of_L17B8XMe5mWzBd$7=h@BB7Z;J#;i?9EfEre8$%~SMaLH?@sos)T+@qYU zh-85KU!m7r1kp!F_BaDPF=-bN^cB4w#B+xg5>dmvGa~1;}U7`k3@K8qvWRvZi4~d*Kv+tx`o4tf?6gyl%#}eMARh zIKTFHM_`h0{kz&ng1c7QkKXp!LF_5t?y%XgBQ?xZr{J>QCA=E;&i6;TA9 z-QyEc`@rw9@TsUG@a7RdRcu9oIIdwIV)_*7gTyv}3nGFXBqHj*gs%pMI}r;@>na*B z(tCHpuF%g2xFK+we9q66ym%KP5Hg%hWX~HC`$SasJW}jaQQ7m35I$90*^96nmHh`0 zv`M%*;H2Yfffz%C&B6J=*c*^xT$7+;jduY>0X_HtOab30WEyB_XwP*+z(@IiT2wW551<;VZ9{C;fH6c-joqedMDG)! zyOJVw7;Fr?6R1WAHtCwJB2qkOXwpS0q8dCb<`YrX;8hns6;%x$Z1JgLtA+sU{QL{+ z#h)x<#s(ev(CGpry#7YJypnGU_}OBc0Z{>eDRVP}>l^JUL#`WwG0NvOX((khr&qrY z%CDubmr9u{o93nE+%LL6EPU@1h3Y2scoU(G>yUH*qbkU(e)cX!oND+Qj{;=ez( zROM7;4;`raW}W=HOlXAI4Z-!~b840ppVSbaE@GG$QQV^b*Xa+1z-#-C^G1t5UT zOOK(ArD)s!@T!tCWT;|Rs()6M#f{z%-+QNSc_)u=9Xl%^F8K?PDv-B-k3OY!kAsMg zEw>Q7)K!R`ZdEfz=S&x=^g|D?YJ}Bh!Ap(nzR8#MO^`l z$_`^-H9D_f2UkUeV_&HdSX4ge4Z8S6fpDCcu&6HjY}yE_B9*?iW;s|g<-dz=t%e6h zIrb90y*-?MK8E}ujF@<9H=+MV>&jgyR5ZH4?eT{eLFmz#PJLN_n04l0Z>kj!SXx~A z{35LRh?88okJE!Y}Uy-}QM?`=1KIL*;Xtd5Vwp%u{?6!5ovEcNc#b;Uklz zcmH=0K9()(-A#oceDXO1e|bgMr1~|z>zbF<=6oW005nbz$dH&mqlCYiRIj3%U|K>&l}r=FO=mI*4ezmk>2`NrYd?Xr!rN~9lI4r7 z#~ZStSHIL`I=h}ektsES4Cjlo&R@22ty*A0WROfPfPrcn2rZg|b7#=ORfGm!il!}2 zIBJ**K@H_|ZYm7a5UGfQ7+w+*Q3WwVh)6{h#K=EFs$>cxTF8Yfg|88jDl%L;shD~} zE_s7Y6UZ`u*QhXn}18&e8zq+5i6HzE}gw-Gi#A}VgmYKQ49nwVPFHTMb=Q_H$W>Ija1E17oi)YAsB6j5tha0tmZ4KwvL+*CwI z*GzZ8nts~PRHQ>tHu;=gMP-JWk%}lo$|!I_Dq<>92Fid`)KnN@W~54{3<87<+cx4R z9neX|G!>!Qs3E2TnI$t7K}M>%h4eEO=@7h4KBssaKGN|vd=x4x=q58UH0`F{UDK|A zY!g+S7=kH&d0=4|oLpuL6GPB&rdp^REDXKx%zXInKkWwEiJ_rCJK|sYU(P@04=nzx zGc+-Tf0_gm2-eQO|K33g;^AOIm#`en9x<3b!C+vc9B42(`(S3^u|%gsbdyG!a13UV}#&KIs|c)&$%)f zIq676mBBbqA{A8zqx2oAbY(~x{hM9NF`hEW6w?jw)O8kti&y(jXA@5!Z1wMd<)zx< zQZ0zZ9X29y$S{#w1SRmDH(z@vHrm(ML=6ANqd+tIZVVxSV_HF76mBp&BOn#g5AG0v z?Nslg`eB?fkct`$qiBJ0jHe$#uBt+$%>uW?ur!@vJe`42`KYvtRG5u2@b!r_B!C@F zOd3iVqF~bL5CBp>XC{REjIfJ;E8vW(h!MXLp=Ed-!3v8Y8xV;lVMH;HVg1^>7Iqp=@3|dQaz&2(L)>Uq8l^C|(Wi3q@kGEt6yC|v6 z$Rm-2<&X3OLiwD3p+i|C2Meimk!N^$0l0aV^gDjn8Jt}$>394tA%GGhq~C?D zUeO+2w7T~11r72~A_kV|JmSe8cxw%?RCbILdLE1b5{8*>ff4!@DAD3dnGk?bKBo{6 zKGGo|d=$Z)QnUtt7r{i*lq>vQgau+vxypp#UGh2Kt&C$0QjsWss^PLC5%o@tJ}yW_ zy%PfrMXDH^)h9Am+0D7~qvlBv5IU163eUJ(Fp!W~Dzb`U_ZTY$fDu7(OE{_lrT%;m@KD`+WMk;FKjMP%fF^W(B zX{AuGqyEjtQF)=nt3;ch`am(xaC9J{_`g#V12)iJoOp~?K>78E0<>;j=&=We05%zg zA5aA`0s%-x4}C@;0I8^g7`-o%iYkbaRzx|*R1ltfOpgP}(~s!{qZms~cv||geqLm8;D=*1VtZJX<-{tb`7lzH*b!F1a{gq2-1AP zN$Nheg;85TQzTB5_Q%MQ{FcAax#YQ5Je%rX*1P|^U+}+*X-Q8U- zzx=D-``(XtKlD!ZJoEHy?bc3jP4~9RHA@~B632WvMYAiP08Wa-d_=iyIsyhQ{kzn! z>Q)SEJBZwJz+Yl5vj~GWdHv#5gPc2xoLHSUillE%o#;|8*XrobekAdD(m`+NpC61t zKh(leqlMB@V#NzqzqJFlpZ#+3b90OIvKG_kTaIwAC6qcoIW7%n)a^pPlC36;Kwut( zv65tq(sx3pIOwHPb>bJ{oYKoPFY0BPRQ`u$VXoG++xYqgFKrnjY8Q_4XNM@gKxm4C z&v^dIoMMB%EOXAVLK5{|YLP>hcJYEpB4lDiCA%p4fNA>yVCx5!zteZ768y2P9Y_!1yc#Z(l4kyV|L zJ$U6|p|HnO#FDsqT5l7*BcRNQJ2H*HY>}}!sV$v~$+L(M8(okt)8{2e|KpFlV?+E6 z?;ds*of`MPbG%emvWc4RcX{{a@8-HEZQZjs#sETv91D4um3X@bJ_BDn5l8o7h1RJQ zm(f*(%gBQCm=uNG>T`P#1&u;Q=7T_|!twzMQdMSAjKtBN!O)$^{?Ea3WUR9JcWYSCY3K`_yLb048e&HO&kFF3sEJz9^fn!ygDl2>n z5~8=kfyC-^SZ*yq;Y3=KXm`Z*5U9yq2AAX96Buc@LhayKXR+L@7)>j@uA+z#hMk!v zNwpwwz8eHKWiI5az)r`ujnr62}zzVmsmgk<`V zsl~}IlG>)g%Bv!ji4nWVAc zq=Lz~L617sGvOP1Tp$GS`ThjYztJAyu*9h}e^E%OD~(;;s*6^(1g?w}A_?WM#N6#` ztL)vKJsi!QE$7_IJI>em0nhtyREAAMS~fRV@7^D8g)b}o7Z*Hq)4KfbI*BMq2mpy>jv)>m$zybfe!nE(VqaIhE zE-f=6fX`*u_*O3OOV=vOPRgz(uEf5if^M7DOs%MiKTL;ICUt$=X%jlJ8x~DsH+95% zg{CrdPe6$Y1J8d~iHIV91vI9N+u9lzE8=CH?7hs|cca}e7iZu>01qBWcxh3<1c$?L z2O>~Gpi|uQVhjKvG2mu8T#1$Xn8<(L@|H{}uOisxq#m!un4K36z1gL;vMi|+SwrK; znn_aB*M*nvPq`ORc7CNb`&%?Khma+kmT$|SQ=*|8wjXxf8vj^o=hC3=?ekr8e2_Xj z&4*G|pxNnI_tz_J^X3ER*NQwM;tJ^|Tie+qF!?cEI00rrD|(iR8<~J{8G+D8dYD>w zu9O1v(UiF-*`aj*v(u~lcrW!43^uFMdGS(fQkiuX5(cd$7uQz`&H39G1A(}|M~Bij zRpu~{&Fp%H!puz#lpZq}Nnx7I7{nwLHAKIMrJLwQob`~3_IG~zx@8vElM9S-_&`wg zsA5z_L=DIRR>v^5FjZh;GUcsK+?$ z<7J5OhNNR?tcGMJlpqr{wB`djvcfaZq16oxeM!9i*P%S#V$L#wF`Vn#wuh3QO zNDZ?-UhfzQMIgSnz0-*uz|dQ?w^Sc`1<=boh@Fpe1Aopvq#AfS9jk|gmx72wD873Lp2VtSPiV`qU zZsIe*6u79+oSYNHKj{zwCq!#-r&zOOH}F-u(wv4o2}x5Tsfs|>fIQ8Imb8H+=6(+? z;!%gGDs*EHJ>m@v$9Om;FlnOqq~vs&)^XeBarwQDdx;h`&CuUzFE8XolTM+0y#6IT zSX}3dn-7?^33{-Jxg?*RAu0W+pFHCSEZ)9bl%mS;>N{^i`*1IL4T!KkhWt5nYjtsG zQxOr~3~eDI27cZ|@kA*Eia)vV3gF>wUTva9VO-aw$wsMp)xX9M7*a%C9$bG^#pkKP z4>2ahE38F>QHlN3_~MmN(Xs!V_PJsvzWyx zwh(Y=jbxNNf&vOBba~$D1-HS+jeh6G_Tp5Ov(|dkTYWyMQre=3V14LnD*{=A&&WKU z9g6kIWLHf2=9cTBFD>1$->Q)Tqk88qsaeIvrKOf>U&(fHo~8@qISDBzXr6Y8(B^zD zcY)AX(2EIvQ4|i$9a)1>g5nCj1N)?suXOG|{WkW_e?Wt;cO|^cOA(lY%}Eo0vjlKK zSU@{NDf?5kh$lqNqPa4QIj@xj%%YXZFi1NU;i5J1z+NJL`d-;wlwje2(YSj_KLf|S z@>TG@eF+6|0pmgWdelFru>%Hg$=f5==Z4{6`Rj(k`i>5+n!-5Q_lTTW8uKz<)DNjc zIfA~L410f3>%PHbASmd32MZ5696Q=$lcy0${0&ot_hcxEKnvcWQK7B8URej4Ur~vfclA`nqd??EQa)gciF$(f zDe1L*Va=0{>Q=`{vE!fn+xP`5k@0R%zSQT7tcm_G4n3=G+N$+YgwUZ;zp`4!Euyop z2abBZFH+q);PIH_Z+T|2QUQAv4x4S;$8$4HW2(o|ZC!SBfo=|l_IMT5&*;Jini1z2 z?$qQk>vuN~!>YfmJ-O!Ti-fadcDA==%spUphQn_-!)NSGeUa zhX2X#Ilt|-s2#dvWY01fy!~@k7X0#VITB%=6ejosxTOoVulT z`~9@&%YH7s@*Yd7p4!Hu$;?ra1lp%x@4`K74i!F@Fig}*%SIr`E@Sv0m2!DK;MVM^ zn$C$rwqWKyrk6JOhLa~$+;$nRDtD;w1|kITd0=5W^C3OLoGrk5%rX_NwP3bP>U9)jCczZYvQp?2nFEr z10P@XeFvHM-XoQ6QRG>65|~j?Cpes`u_<)T=0Lx*a2ptfU%1M6aUGGSG=es7z)q0r zM!(!}*jiV}aw8HESk!Kv-Jec4k!L^lfNhx#dq*j~qRC@~76@PYk(i2xY(t7t6$)Q9 z^?4jYtI)CGW^$*O2+5#56>%zkBLU=Ghtzpxx#6R=roGvC2}N$Oo;xz8ame8KU^7oI zA5;c|my9OV7~FepOL`%bl#kxmE-bX5$Ryr9Q>}wLH-#4;$D`m2CJHjzN|Up*i5;ko z@+a9?N76;r&)Y<^$t*5y^<1EIEPC5tKsNPwJ_Q%e+F!J%xkvRiG%#2~iBgW|GIO?UZsvUbwH7t$X9R~z ztkEsR7J_)#sV#)Q4MA4LISV5#tl4$s;m;$JMda9=`s5_$%`FPtv z)=(W6*r>gGsxQ|rKd6~kEd`C7%Bs_*5Hd&66Qo$Vl7xJiaBG47mZg|AG)prtWLT`V zIUc;vpNlZHjhT(?&NNLl5G)3`-yH4o-|Q>A1K&LP)?6NA6M4KSTpM>BM$}BW090{o zS}y0y?nSJwj{tdUZ$+~)0#~zzhk1j)L(QN_pU}vwD?TLWQ^%Yl}$r1-^P=h@MTAHqB(?d#KyPXoI%QT ze3VJ&)y6z@NxCffMYJ<(z(Fd%Xy*h3gz-zymW!>BI)H+wotfjcV3S+TvX;X$)^N~} z!&US9BU9O_Ukj1_D=)h0Vq2{y_@Cs`HR`DSRo&_Zu^r?_B|nmU)4gflXfk^_YRh}0 z>ZVXU^j_44;_Ldr*k9n>!NK-PrVgvo{j#3=ZiaiQ%o;S`{{BH|uzTIxjtQ*D|LJSB zr-G(ehYGN4u!ug^w!IrdL6S%3HIB7vO>-d}SL;6*&mYNO+1sAjo1SqfZrGAfVp>8N zh}W1iV7t(!|0Z@PF25QB6EHqI^5+lMn;-_vkPXNqRtavT8+kc~Oz??2mqM}0DOcM| zi;k8lfk0X5GX;fe76nm-4pGg9J`sWACEGzi0~yfXfW2;I%C{sW0xze;wV)U?`mx5N zN9Qe9N<#-(Q&QuY2tzHv^3vsaz$Ss@V~G698DKsfWbe6Yn$EHH`$)Fw*0JfaNZU(? zj)(4Ba0x%Z0j>B*(92%;nZuSvPog;=S=U*ww+dL*G3n-9fWuZZLT$0b)t_y77V`M2 zpsxTaPy4oKuRnrcE`~^mYcn{=#*pn}IVO{l#60cX~ z%>gB~85P5vO!=nFajkV8lgxk6_DE{8tY`ru9gk+nu?wxn2c17du?l}CT1lZ2>F+X$ z&7TsN`+INm=6hPvw>y*1`{m8`xt}&(zp0qMf_S;~JD&2ZxisIdiWi-1ue3dC0KH8$ zMlrO@!jAXD9Hu@HVHsIP2udA+HOLe`AC}$D48<+Gx%JuF;Ut{1%x55 zhhtY@IviB&u(j0x?EKP2kTVXX769Z=<|~0%CEisg^baxZgI~_Rgz*;SAM;AC(B^7) zMqqfz5$^OWA8eow6{I1NATx-s+8&Ir4BswS8HtO#iHm!9*i|t}w42pY%TQST&Jxp~xa@W6oj$Y% z>H`+%ShMxN&%^svp>5{fS$&ZdKZIau z$lT;=H}fHG`A{%MG+1Cr8pnS6cHmlBX6A`p763r+uQ}Ha#VMTp zPa?c03e1Vmmfgo(e+J2vQ7%L3{Dz&fwITFS!tf+XUg1RNhz*6YM*37jThoKSW5zTh z#0GVOHo^CV`m;Qane%SBJ@dt%G~v6@3<9N$@Q`y9OKIZ*#d4Y^D_HSG#KJ4av9%u; z7plKPNZ2;PzM*D;T?1P3_-ztIYLbwiA%~<`4Bm{zHVC7eOjn_)RQmFG8==-#@9$x; z8@*M^SnqQS19#+vrn$>wZ~6rl=w%X6G$ z(hw^M5G;huQ3LEN+8Ou9mHp~uEc2Rwm2!Kxo!;LgJO%$vK5OJ=V6?n^y+p$Tjqb~! zGjB)s_i~{|o(lCc@?+iR4W*dCBd~q^aLB~L3f;W7!-VUrdAxZf0qc{PhmWN^iA=CQ z+>Ae>bF$Om;qO8Dgt~aXNhNlrDazI!r7)vE!KSLDrF4M)`>f&>x^0tVq#uZc3WgcK zwDT~HaXbxoM@KmOst>u?Y%u*D$VVzN0A^nVrV%$Q`{Vu$vBT+iBcI4c`6i6xB!?1| zCJ&w!T7FRo3b349=D^MoT0Y%$y(;FBDr9jMdVJg@o=8v0I6!h7za|N-g;E z)$f$6PbUHRU%NPN#?P5l`QUWyLd= zbHAlL&d|0?mhs-5+md=LHC!co_(Q=al&>^xNcVe03XgNeGkFyi^ZZJiu7qX9GhVrJiw$BX%O82o5NBtGnJz@n)Juwo+tc8U3#g2ojYy-p>vJ z1pM<3bl#&-p2F*b&`_A<(CT&?L*$NXk+tUaS^$$%`gQ!=j9<7`S(mp$t*|?}S1}#l zj?bf4z@L#3Lr^Dfe3>KqgfzfNv)_P*E;LhMh7RW`Ls~xoivFCr!k$lHXM6F+5S&!8 z$}DCJ`*Y)F2R`9CP>^qjUu~x6iY%|OFmtxmE18Y&(6}2P@Arq_7E2btxmir<0XSxD zU2vpXHM9KM{)EY5p6W7v-?@FO?&ixcz3PC(cj`+G z)lw+FkyK!(sRk$dSNMLt$F)TC2sVmGI8sp)v_?}2-fS*6~(1SFz(M^``=<^ zXdv3*FCFkQ>~~3H2jV6KZAgiN%^({x2FXT@i2v5frV4GX&U6@{_!T3r2D?GCn*X5y zAfJPMUr|V9YyHJ6P9ge62l(-wS&s)YgC*OmES`6Ob(ppKK*Dh38%ArysYqUdL%Gbj zYx#3QewGZKFYZ;Ow1J#7%Qt5j8?)<0=zg4T2`?!<_B_uwCQAs4R{|5D z4=G-s5f^cXvIXUrL>KyPE$A8))_uO7 z_e^z=X=JX++=*~Q5TtCJZy|M0D3G9T;x)*6svj{@`@Z9SGQN zKHeQTKQ^%+TYRBfaRJQOof+2;en=LX;~U8A$;?L=0qT!D08IdQ$(7HwD>&lk-(mRM zLN87FBlaT@xrN^s@=DR`&0ZtyVVAi``oI`d5c**KHKud}jkw2l9eJO$7m3TeMw`f0 zkfHSR=MKLybaq|JY5%#u4lW(2eQCx&c@{^7|Ev<~4E zjB^_io&xBbcaOOD4ergD1;{((l4b_TCBCdZqpWE_dZ1+6Ol7z6)dV73#zOisoc*!s z29y4qF{(@BUm6hu6;W`6h>GYwqpl|(Q!w)#zqw>e+zj4XaE#@xIjU(|zJc|p)2g7b z;T9e>JGC97DShENhTsA$flZe;daa)P!`bW^Dg&T$wt@Ss#MX6LW#hb7N|hO2&O1|o zyw0g~?fgr5`dF$7X?}G@RG9&i2*ej!;xQP=p$K3$4pV~{A~4W4_xcJ7?nPz46Ab=r z@5dyI%;SD2i|Ny{NbwkNP)!+Ih+~7E--U$@r(bFQ7OZ)_u~uH;)&jmDn_4)m5mq&l zlpkQ71HOe^k4i8DVz_Ny`4WkVPf{Nu`?I1Z&mH!Yr;Y+96BPKL{@KH~Qo zOvf~=&%A>nRzc?X+4u}OZOEuMrl#PqUYRgfd(Y=Sw8ty+2+|Pl#sI+SQ}XOFZ?qN` zU{h0^((cu)(V6qm37UtD|IV#@ExLkP3)8Qw>#2lEEmB;!&Tbb>~3Mvk~Fd;hZyr z#TUI(QaRPhGFe!b!QqCkrgR}P!y;&oCwu6HGe0sEwyJEQ7>USItn7J*48jJjRq!Nc z&&!E*svJ*$8@pX~$pnf-ln4@&E)ak*t6VbWdyP|xDw9&71)1Yvi7Gssx9=?5{aeyF zagLhp^$%Q|cjzTZjS%3DKA^ls6e2v0?s2t%i6<_KZA3%It4Gc7p>18gt>(%m@7m^j zFyX3d@m|2QY37u8Ze6t9#LjwL{BQU5ln({WhjQlOfYQ*vA@+Dr9;Z{>4Mm3qJR2vP-Vq5W{|X9fNmaXn96C@#1}l;A zMo7nB#mhf3lnx)N7ZxOVjG=Dl4n_<&h z&xLNoP!#Wp*fF_hw%f^e#yo&-K~EO`)mY8OYFgDmyKpF2HH-EAeYe=|DF0=lWxPu- z6Mqn3n36Y#ZrcLr_D&%hnKiaq{J1HD_7eBt(Z9XTk+|6U0GZ&5`s;{zO-3>L7rV>Q z3;QUe{iyjVvD-V1QBBq;nnbm$ysdL3q4U6n4*!iuQ{KB3=~n>>}+`cQ?D6 zeTbm=QRJK4I5ojBFBidj8)WKl#O2iGo-w5GZA;T?rX*CtFmHDo#+o596x~QHfdy*5sZ92Cqv(#zu&TcwCm%#v`$N~Qiitz8dM)N^zP0Nt-rD}1&QTYs-j<9m`Q1(bZ z)vF(9#(je&4NC;SD#_!-NzRsYv5E8-It|KDJ5A@JM|+aFI1&UAf}ZaRSiEgFU&mKzdZAj! zdY5Tq+zDc9jr$r%@)u@~3LS@H!-A@_FtVGqnn38@3?@U_Nt(x|6uNZu`5sFQX2@5@U?2Ht z#|P8i$rZKCMQ_Mc4Mg|PJmNCG9N@_h2D>-4*d+jNM_jWM2Gk@b0#!%Z3Uy45+7`Kz zKp-EU66_6DkIHecLmt> zX{HXb9OSZi9E>D{!`r#SM0ErJ!!?Mf=%Iqc%jhHHo8l-@qO)GVlu|@m4*b$1^#S`N zzPtdZj^}e7W}5J%yjY2IOCxK6D!9}6){(idIkTf?=J+$@I2T3i>HM-NcS;C zVSYR{yY_y)o1K|OG#A(=wXh-qvqGYBG|Ie3IeD5!kTyrdyUWcUhcSOf)Y`4jBwlOo zP@1IiV%%a1FTU0<-}A(m8*h@B?s0R)TmJ&UJMXxAZW8_U-->aKC^)7} zzy!w`k&r<+;9T#@%2P<_q@4;ImD<%cP0hq10(_1CuJd8=_`2%8hQ^L1$Dc3EYoZY{ zi)A0dgAsGHQZw*0Z4#SD8Oo zUa&p92fq+kg8NDO;~6nQWJ(|t^(GXM3jZukny@7?xfj{dZ*GTaX6#(h%+PY>Gf#O* zI=RI|p-;x-rq~wlVgwP~gHQrfxvjb!>v`A8#lD&FeEKpmw9N5LpejN$ILKjKR)neO zVE8I$BN{awuiK?a=B8 z_T^$fX2v(vv7@6I3;>4y*Et3=|3}#ml0(WX!YVxS?)}SL)jvH$BPOMH5aE7ql>=A< z26F=xvAnhxEj|(K$p+BPH^qSfmyVqzL2(C+9A6_vF+z>+Yc!gR9d!6|#z36iZb_er z)?!|XkU5bKsJ#H0TJxVT!uS4&*8@4pk!j^pj*4}G=lf}EC1&SRY~KcQgG6;2%@tqs zCtJ&QruUGC*ktsG8}ed8G4qwjNmQfNq-J=fT=C=KD7e4G$127mNF8SZqN3nmAes43 z=!Ew0B-%|^H#GLti|m^W5vlNz>l&%(ze*tTiLN^6*-(1($)1;1fXBZakFY!Fc^~mZ zAKo>=k1yQh#3vj(Rb!(aDSM`==P9v_9GJ9dn+)l6PCun^KB%mY=-l|(ji~=xxPW4mVAo}yjOf;h zfY;>iqVY|eKt01&Th$6^6nS{#IRIhf4rfi;As?JiMlhe=;ofD;w=g2eZ?$1rsruQ~ za6iU~R~+#54tvrcDK(;+`$AYIsglWcXEo}83Uhc|gky5`2YgS+;%`M$|4?@`XL%`7q-^M3 z-U)kk?HI3Mr!xRsdsc@wx5Xj2-Av_#g1*{!F4AIVN}O%D$vO_3JfR@)S-i{51Vw_%F7Kn9ACB3p-LSF1doQ1sDFQ#zD7R#R|A5w*(6KrLr z4*Y`5I|i(kJlU)N2rSR3xrLK7RnKpOrBN$y$C}46kQ@BKTD{n2e6_`)F*RV?)WOGj zUze!{0Z(8=*1LWwDai9jaseLe2v&MA_c)X!cy2u&;4}-B-zHvoZ&FLuU3;1VO6e(A zBDI>vchafZrXCH{{meIuO?tv18Bk1f*K&_=wken`v|Ili`#V1%-7rEP_1QnrVtv-m zu(%bwI%LDFw0jOG^H%AjtTy6ovZ|56q8 z<3W>Vq;{+wbvE}YD}~wMX*31@ATw5vOWOJ0)m5(<0D@ii<%b+i>=3ooUA8ht9y5$Y z%=>tEOQ$eCLvL1vJ5hd~lE5u+a!=K!_MswtK<{jQPeOF}Jr;?j{7!h#{H4d29Ld;u z$E%3T@r%rm0RZApepSfdTeAxCcxtnkNk9IgQAp>3W5F&;>JtCf%&I&&2g{oWA8NX7 zVj&u*Yt7@!;bF}Gs9KPJ^UAx%oeNjsTLrmBQY*JG6jAU$;4>l&rw$cykC!K!`3q}c z15D~bl(TT{SQuv_e3(UO-kAF4%DoMhMXPw6_F1#!YpS)`O!x*F2?Tig-+T<}eA2@8 zbC18-#a@o5DZ+)FfXQ&*{1Nz0Rl_`DS)&zN7d!!_V*XR9vp5$Xs<`Vmrs$q-I2T8i zF04dq*F_L3VL7xcwO^0f-7Sm(hp7CU9>ArN1ShFzIu4e*(12iYJB^jzgw9S4`2(9b z6iH4K3lR;#CchBS$}3>c6`zrS7WT^5s=`p+Gwcw^W=^JXCznJ)Di)kuZzq@eSNKrG z_*LcZ7)iv{-~Y0!l%9wa(w2j@YE4RD(l0m9tSkKyjkTtV%isaC1Ysmgj8*$)20(J_ zp&Z!3Do%2+A24>M%UA1IQOn6GR(JYs!>SD4p#MOuR$}kS=9uR;VI2^vUR`mENUV(mG{N`fA}e|1!gJ~ z;p9@MCtMK=2zJ5mBz`L$?~IC?Gi9W}?kJ~oFOYbp4Gla08Kg^{Q9lA8DAf!w}mM!6(3L6nE_ z!mOLpD{8$|Ke~=@;1j|G=`7~5Q|&P0<1@y7PaT7qMs!;$A7KVH#Xca&+Qaw&6%W`-m#o)esA-)w zrE!n__0;Ysn=Fr;6@M%1?Wz%;*H)u^c9wg%9(LgbH_m>9a5PG04Inga{#HXwq3-$$ zWDwD4Whp_1i-r=x{|M9cPqmfJWZ|39p~}cYD;3|}atw;%>lu8F5as%{dp)JcjDr1` z91-0`iq`7ZO=bwwBF z+@7CY!@)7}Ez+{I!U2_NqlIik4GcrO%^Npvn@xF{A%fl9bxR-s(WzrKgpg+pG8**? zQIoaJ$Z-WT5_v|~Kg3vClczsAVBzd!r4-saLBBtUk^hWX0R#v%64w^p{~}_)M>oS0 z#?-H65OUX6OQNUFzO|-0Uq#)&^Jq2y_t_6UN;+D8Y6Zgo@9(b}#=07?w}xSzkckI> z1yGTGXWL1+$oP*)V=i$d$1<>XpCKqvuFkk;RvNRM97$90BK(S7rf3c$+q;=2t=q9K z9AtS$Rqd>SrML#D3g9aTONH`y`cS2``x5tx&&<&85`qT7h`x+^OeOWZ!1 zxPj+XTJEZg$GW(XYA>E|HoN==QwpYEQRh-wUN<}w+nx%fwdygiyd zv0*QSp9eA^n*(;NlR#HQ+L{4%v_=&QmL`E&Tw}Z=ma(VwoY#uqYrugl2MZWvh&+RzNOTQI!v#xX2ss=%OQx&|= z-r4s9j&k=Q{n!Y#RK)}54=60zFnS()QMo8PrdD9#(Azba(cXzVf4Y6^Y@sm01k8RgTNfxBVR}Q+$}5nO|dd`CcKjW z0$Vmf^R?-IsD{SwHPZP--q!?NSJv(BJIbt0zRSn9mWP;>C0^;*OI+Aa`du>28S%Jb zJTS9md|e`|2Dvvc1H^UIer;0&X#4nP?_<4i>~4bFu(=0z)UFXPT$4P~P(&NzCU|TO zwVx()&M0m0zi0`Y|FW(8<_d6|7Jk+~BfY$b7+{K#ibhgMVsR8oH5W?5AG(BA(9Wlr z989m)x>Rh@(Jfg*jS21^QC&2aDCqtW|FMny-sXD z>WuSLCc7|K*pW%d4j|B*K$$2!v3{DgW*?Y2yIJcwy1BcL*#NwmcdVsvAQ!gu?A#o= zwY?pDgXvtOIm?*3ZTp9tH|~o_cOZt`gMVy?ng6 zTK5(fCR%PrPOj`++xZDM{t~)+FO0Pmwszg`AG_RmwCM=fr-gWhpY30DWVX=Lzuun( zRTPEKUtjGcJ-x^)i{k8OzJ9D;1k(;zisH~AYbEGMFr^dJQ}kdNb8uQIeCq9-7IP4_ z00~>0pNP+n^-siS2U^w}m*#)y*W(G-4Z}~}l;(XZWXZcqa4O`myyIv4|ChuX1D}J? z9LeF#LS!|a!j}(DtuaHU5FXQDfl0{Tr_uXI_X#pC;*8k$WtvSFbris{82=xB9$%g| zt8Vlk#^fKS<{w7mAExXd=O-pOmD%z?&J@=FIR6JH|DRpp43HE!07QqL{YM2vP9OzB zB%sSe|F1jiAI0Q9iht9>`8O@Ze-=M6pR)@1XHoE<#eeX^g@07H|1ci^FhIscN|^9{ zUkh+hJ`gz(ANVy98^8jij9^Ba@o%{7f5T-9|Fc#&^PjaD^ZzD%^v{~pKPIk!Oc!KN zT5wRtp`7GK5K>tcdGT(n0{Bo__t6O7le~E9`oNv>;Hon0{L2uSF6o)Owh-fY0Cf z{MM?ZTtv5mt%pqW19gi1#;b%|gs=ju|40RZI{NiiDvlPeEg$P%QoTX#VtQ#6LkruM zmvs-Ro}jjVU9F1Zg=x#fx|>vYP^*|OUPahKx8-KtMXD>PrC(>I+#Ik_ZMj%?lIjd< z7Sl;9|Fw`~Iazm*>IiD;*VZbhT!^hP^FkUUK!jx zgr#p?N2(sEqF-&L^l0wd!mX|)RR>fqrj}MZG`DSGSJ#lL1p@V}YLynxOQkq^f~R`&Cv-%;%~t)ay!9RX`5Z{- z@!HX!@%%aPraFyQof_6J!@~CC&6kbIHFP}JJ7x7Ad-~X>I&Nk?8sECPP3zjI(b8+^ z@|4D#V>>uXX?4Q%&NPaq{KK)`{IJyhFldV?1iy>IdI^MJDH~;l=RlAX3n5V9$_vG9 za#wnG765amZXnYH*4W zF%>iE8;(-o9PYUjNMHp$@<3u5wZNgaN);^@ak!z08o92SgOfu_r2v z({3FP6^M@IZ{ypXrojLyn66D-jlmVY)x?H%hf*&}% z?7)fVG$$QF{DTjvNCNw1bnzcizv7WYe+o?P^L?Q8vH!1fEmf*A0f>bUPIvNUn2bfHy{`6lkWdMNKJu1GX)@CB7nq^c)-9+7KpdV&n6jgBa;do45*hy z2BgoThj@$u{?1Z@c#H$qW&OneKkFSe7#QmR%?36R4}8ob`QH-)B+ABw@J$A?W%EKH PrU9L^NuYN#{zLyif<^D1 delta 31459 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

ZudkC|kd{>&u$z4@GsL7f8JWP!&VF3@pu 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

&*Tg=`c^vbfr?A-H4H>7Ebg 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 fZ!d{M&iw`!ofJor%MXT^8fTnK0(F=EAJhK Date: Mon, 8 Sep 2025 09:13:55 +0900 Subject: [PATCH 04/35] =?UTF-8?q?=E8=A9=B3=E7=B4=B0=E8=A8=AD=E5=AE=9A?= =?UTF-8?q?=E3=83=80=E3=82=A4=E3=82=A2=E3=83=AD=E3=82=B0=E3=81=AE=E5=B0=8E?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gui/components/SettingsPane2.java | 106 +++---------- .../gui/dialogs/SettingDetailsDialogPane.java | 140 ++++++++++++++++++ .../gui/components/SettingsPane2.fxml | 100 +++---------- .../gui/dialogs/SettingDetailsDialogPane.fxml | 37 +++++ 4 files changed, 216 insertions(+), 167 deletions(-) create mode 100644 xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java create mode 100644 xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.java index 32ec0209..9eada65f 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.java @@ -5,35 +5,28 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Locale; import java.util.Objects; import java.util.Optional; import java.util.ResourceBundle; import java.util.stream.Stream; -import javafx.collections.FXCollections; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; -import javafx.geometry.Pos; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; import javafx.scene.control.ButtonType; -import javafx.scene.control.ComboBox; -import javafx.scene.control.ListCell; -import javafx.scene.control.ListView; -import javafx.scene.image.Image; -import javafx.scene.image.ImageView; +import javafx.scene.control.Dialog; import javafx.scene.layout.VBox; import javafx.stage.DirectoryChooser; -import javafx.util.Callback; import xyz.hotchpotch.hogandiff.AppMain; import xyz.hotchpotch.hogandiff.AppResource; import xyz.hotchpotch.hogandiff.SettingKeys; import xyz.hotchpotch.hogandiff.gui.ChildController; import xyz.hotchpotch.hogandiff.gui.MainController; +import xyz.hotchpotch.hogandiff.gui.dialogs.SettingDetailsDialogPane; import xyz.hotchpotch.hogandiff.util.function.UnsafeConsumer; /** @@ -45,41 +38,6 @@ public class SettingsPane2 extends VBox implements ChildController { // [static members] ******************************************************** - private static enum LocaleItem { - - // [static members] ---------------------------------------------------- - - /** 日本語 */ - JA("日本語", Locale.JAPANESE, "jp.png"), - - /** 英語 */ - EN("English", Locale.ENGLISH, "us.png"), - - /** 中国語(簡体字) */ - ZH("簡体中文", Locale.SIMPLIFIED_CHINESE, "cn.png"); - - public static LocaleItem of(Locale locale) { - Objects.requireNonNull(locale); - - return Stream.of(values()) - .filter(item -> item.locale == locale) - .findFirst() - .orElseThrow(); - } - - // [instance members] -------------------------------------------------- - - private final String text; - private final Locale locale; - private final Image image; - - LocaleItem(String text, Locale locale, String imageSrc) { - this.text = text; - this.locale = locale; - this.image = new Image(imageSrc); - } - } - // [instance members] ****************************************************** private final AppResource ar = AppMain.appResource; @@ -88,9 +46,6 @@ public static LocaleItem of(Locale locale) { @FXML private GooglePane googlePane; - @FXML - private ComboBox localeComboBox; - @FXML private Button openWorkDirButton; @@ -100,6 +55,9 @@ public static LocaleItem of(Locale locale) { @FXML private Button deleteWorkDirButton; + @FXML + private Button detailsButton; + /** * コンストラクタ
* @@ -121,30 +79,29 @@ public void init(MainController parent, Object... param) { // 2.項目ごとの各種設定 googlePane.init(parent); - localeComboBox.setItems(FXCollections.observableArrayList(LocaleItem.values())); - localeComboBox.setButtonCell(cellFactory(false).call(null)); - localeComboBox.setCellFactory(cellFactory(true)); openWorkDirButton.setOnAction(openDir); changeWorkDirButton.setOnAction(changeDir); deleteWorkDirButton.setOnAction(deleteDir); - localeComboBox.setOnAction(event -> { - if (ar.changeSetting(SettingKeys.APP_LOCALE, localeComboBox.getValue().locale)) { - new Alert( - AlertType.INFORMATION, - "%s%n%n%s%n%n%s".formatted( - rb.getString("gui.component.SettingsPane2.051"), - rb.getString("gui.component.SettingsPane2.052"), - rb.getString("gui.component.SettingsPane2.053")), - ButtonType.OK) - .showAndWait(); + detailsButton.setOnAction(event -> { + try { + SettingDetailsDialogPane detailsContent = new SettingDetailsDialogPane(); + detailsContent.init(); + Dialog detailsDialog = new Dialog<>(); + detailsDialog.setTitle("★方眼Diff - 詳細設定"); + detailsDialog.getDialogPane().setContent(detailsContent); + detailsDialog.getDialogPane().getButtonTypes().add(ButtonType.CLOSE); + detailsDialog.showAndWait(); + + } catch (IOException e) { + e.printStackTrace(); + // nop } }); // 3.初期値の設定 - Locale locale = ar.settings().get(SettingKeys.APP_LOCALE); - localeComboBox.setValue(LocaleItem.of(locale)); + // nop // 4.値変更時のイベントハンドラの設定 // nop @@ -248,29 +205,4 @@ public void init(MainController parent, Object... param) { }); } }; - - private Callback, ListCell> cellFactory(boolean showText) { - return listView -> new ListCell<>() { - @Override - public void updateItem(LocaleItem item, boolean empty) { - super.updateItem(item, empty); - - if (empty || item == null) { - setText(null); - setGraphic(null); - } else { - ImageView iv = new ImageView(item.image); - iv.setFitHeight(17); - iv.setPreserveRatio(true); - setGraphic(iv); - - if (showText) { - setText(item.text); - } else { - this.setAlignment(Pos.CENTER); - } - } - } - }; - } } \ No newline at end of file diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java new file mode 100644 index 00000000..108880ef --- /dev/null +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java @@ -0,0 +1,140 @@ +package xyz.hotchpotch.hogandiff.gui.dialogs; + +import java.io.IOException; +import java.util.Locale; +import java.util.Objects; +import java.util.ResourceBundle; +import java.util.stream.Stream; + +import javafx.collections.FXCollections; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.geometry.Pos; +import javafx.scene.control.Alert; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.control.ButtonType; +import javafx.scene.control.ComboBox; +import javafx.scene.control.ListCell; +import javafx.scene.control.ListView; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.VBox; +import javafx.util.Callback; +import xyz.hotchpotch.hogandiff.AppMain; +import xyz.hotchpotch.hogandiff.AppResource; +import xyz.hotchpotch.hogandiff.SettingKeys; + +public class SettingDetailsDialogPane extends VBox { + + // [static members] ******************************************************** + + private static final AppResource ar = AppMain.appResource; + private static final ResourceBundle rb = ar.get(); + + private static enum LocaleItem { + + // [static members] ---------------------------------------------------- + + /** 日本語 */ + JA("日本語", Locale.JAPANESE, "jp.png"), + + /** 英語 */ + EN("English", Locale.ENGLISH, "us.png"), + + /** 中国語(簡体字) */ + ZH("簡体中文", Locale.SIMPLIFIED_CHINESE, "cn.png"); + + public static LocaleItem of(Locale locale) { + Objects.requireNonNull(locale); + + return Stream.of(values()) + .filter(item -> item.locale == locale) + .findFirst() + .orElseThrow(); + } + + // [instance members] -------------------------------------------------- + + private final String text; + private final Locale locale; + private final Image image; + + LocaleItem(String text, Locale locale, String imageSrc) { + this.text = text; + this.locale = locale; + this.image = new Image(imageSrc); + } + } + + // [instance members] ****************************************************** + + @FXML + private ComboBox localeComboBox; + + /** + * コンストラクタ
+ * + * @throws IOException FXMLファイルの読み込みに失敗した場合 + */ + public SettingDetailsDialogPane() throws IOException { + FXMLLoader loader = new FXMLLoader(getClass().getResource("SettingDetailsDialogPane.fxml"), rb); + loader.setRoot(this); + loader.setController(this); + loader.load(); + } + + public void init() { + // 1.disableプロパティのバインディング + // nop + + // 2.項目ごとの各種設定 + localeComboBox.setItems(FXCollections.observableArrayList(LocaleItem.values())); + localeComboBox.setButtonCell(cellFactory(false).call(null)); + localeComboBox.setCellFactory(cellFactory(true)); + + localeComboBox.setOnAction(event -> { + if (ar.changeSetting(SettingKeys.APP_LOCALE, localeComboBox.getValue().locale)) { + new Alert( + AlertType.INFORMATION, + "%s%n%n%s%n%n%s".formatted( + rb.getString("gui.component.SettingsPane2.051"), + rb.getString("gui.component.SettingsPane2.052"), + rb.getString("gui.component.SettingsPane2.053")), + ButtonType.OK) + .showAndWait(); + } + }); + + // 3.初期値の設定 + Locale locale = ar.settings().get(SettingKeys.APP_LOCALE); + localeComboBox.setValue(LocaleItem.of(locale)); + + // 4.値変更時のイベントハンドラの設定 + // nop + } + + private Callback, ListCell> cellFactory(boolean showText) { + return listView -> new ListCell<>() { + @Override + public void updateItem(LocaleItem item, boolean empty) { + super.updateItem(item, empty); + + if (empty || item == null) { + setText(null); + setGraphic(null); + } else { + ImageView iv = new ImageView(item.image); + iv.setFitHeight(17); + iv.setPreserveRatio(true); + setGraphic(iv); + + if (showText) { + setText(item.text); + } else { + this.setAlignment(Pos.CENTER); + } + } + } + }; + } +} diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.fxml b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.fxml index f3c231d2..00e04740 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.fxml +++ b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.fxml @@ -2,115 +2,55 @@ - - + - - + + - - + + - + + + - - - - - - - - - - - - - - - - - + + + + diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml new file mode 100644 index 00000000..c95bc8cb --- /dev/null +++ b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From fe9aaa7dcbbd4b1f9fc96dd62a685c64e2c17c10 Mon Sep 17 00:00:00 2001 From: nmby Date: Fri, 12 Sep 2025 20:32:35 +0900 Subject: [PATCH 05/35] =?UTF-8?q?CheckUpdates=E3=81=AE=E5=B0=8E=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xyz/hotchpotch/hogandiff/SettingKeys.java | 25 ++++++++++++++ .../hogandiff/gui/MainController.java | 12 +++++++ .../gui/dialogs/SettingDetailsDialogPane.java | 10 +++++- .../gui/dialogs/SettingDetailsDialogPane.fxml | 34 ++++++------------- 4 files changed, 56 insertions(+), 25 deletions(-) diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/SettingKeys.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/SettingKeys.java index facb230d..274dc810 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/SettingKeys.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/SettingKeys.java @@ -3,6 +3,7 @@ import java.awt.Color; import java.lang.reflect.Modifier; import java.nio.file.Path; +import java.time.Instant; import java.util.Locale; import java.util.Map; import java.util.Set; @@ -316,6 +317,30 @@ private static Function decodeNotSupported(String msg) { Boolean::valueOf, true); + /** 起動時に新規バージョンの有無を確認するか */ + public static final Key CHECK_UPDATES = new Key<>( + "application.checkUpdates", + () -> false, + String::valueOf, + Boolean::valueOf, + true); + + /** 新バージョン有無の最終チェック日時 */ + public static final Key LAST_CHECK_UPDATES = new Key<>( + "application.lastCheckUpdates", + () -> null, + Instant::toString, + Instant::parse, + true); + + /** 新バージョン有無チェックの最短間隔(時間) */ + public static final Key CHECK_UPDATES_INTERVAL_HOURS = new Key<>( + "application.checkUpdatesIntervalHours", + () -> 12, + String::valueOf, + Integer::valueOf, + false); + /** 全ての定義済み設定項目を含むセット */ // Collectors#toSet は現在の実装では immutable set を返すが // 保証されないということなので、一応 Set#copyOf でラップしておく。 diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/MainController.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/MainController.java index ea8b0912..a1ba1347 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/MainController.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/MainController.java @@ -141,6 +141,18 @@ public void initialize() { // 3.初期値の設定 row4Pane.setVisible2(row3Pane.showSettings().getValue()); + if (ar.settings().get(SettingKeys.CHECK_UPDATES)) { + // TODO: coding + Thread checkUpdatesTask = new Thread(() -> { + System.out.println("Checking updates 1"); + Platform.runLater(() -> { + System.out.println("Checking updates 2"); + }); + }); + checkUpdatesTask.setDaemon(true); + checkUpdatesTask.start(); + } + // 4.値変更時のイベントハンドラの設定 // nop } diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java index 108880ef..fd07e820 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java @@ -13,6 +13,7 @@ import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.ButtonType; +import javafx.scene.control.CheckBox; import javafx.scene.control.ComboBox; import javafx.scene.control.ListCell; import javafx.scene.control.ListView; @@ -71,6 +72,9 @@ public static LocaleItem of(Locale locale) { @FXML private ComboBox localeComboBox; + @FXML + private CheckBox checkUpdatesCheckBox; + /** * コンストラクタ
* @@ -109,8 +113,12 @@ public void init() { Locale locale = ar.settings().get(SettingKeys.APP_LOCALE); localeComboBox.setValue(LocaleItem.of(locale)); + checkUpdatesCheckBox.setSelected(ar.settings().get(SettingKeys.CHECK_UPDATES)); + // 4.値変更時のイベントハンドラの設定 - // nop + checkUpdatesCheckBox.setOnAction(event -> ar.changeSetting( + SettingKeys.CHECK_UPDATES, + checkUpdatesCheckBox.isSelected())); } private Callback, ListCell> cellFactory(boolean showText) { diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml index c95bc8cb..ee6a8c93 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml +++ b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml @@ -1,35 +1,21 @@ + - - - + - + - - - - - - - - - - - - - - + + + + + From eca7f26f876fbe8db02bc552e7e60d7d8cf3c156 Mon Sep 17 00:00:00 2001 From: nmby Date: Fri, 12 Sep 2025 20:33:22 +0900 Subject: [PATCH 06/35] =?UTF-8?q?GoogleCredential=E5=8F=96=E5=BE=97?= =?UTF-8?q?=E3=82=BF=E3=82=B9=E3=82=AF=E3=81=AE=E3=83=87=E3=83=BC=E3=83=A2?= =?UTF-8?q?=E3=83=B3=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xyz/hotchpotch/hogandiff/gui/components/GooglePane.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/GooglePane.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/GooglePane.java index bb8c9960..7ae81b52 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/GooglePane.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/GooglePane.java @@ -158,12 +158,14 @@ public void init(MainController parent, Object... param) { }); // 3.初期値の設定 - new Thread(() -> { + Thread asyncInitGoogleTask = new Thread(() -> { GoogleCredential credential = GoogleCredential.get(false); Platform.runLater(() -> { parent.googleCredential.setValue(credential); }); - }).start(); + }); + asyncInitGoogleTask.setDaemon(true); + asyncInitGoogleTask.start(); // 4.値変更時のイベントハンドラの設定 // nop From 9c45cab101a6433708de0a6d630a260d8e155779 Mon Sep 17 00:00:00 2001 From: nmby Date: Fri, 12 Sep 2025 23:59:42 +0900 Subject: [PATCH 07/35] =?UTF-8?q?xmlns=E3=81=AE=E8=80=83=E6=85=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/sax/CellsLoaderWithSax.java | 25 ++++++++------ .../hogandiff/logic/sax/SaxUtil.java | 34 ++++++++++++------- 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/CellsLoaderWithSax.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/CellsLoaderWithSax.java index eddc053a..8380fac1 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/CellsLoaderWithSax.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/CellsLoaderWithSax.java @@ -91,12 +91,14 @@ private static class Handler1 extends DefaultHandler { // [static members] ---------------------------------------------------- + private static final String xmlns = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; + // [instance members] -------------------------------------------------- private final boolean extractCachedValue; private final List sst; - private final Deque qNames = new ArrayDeque<>(); + private final Deque localNames = new ArrayDeque<>(); private final Map texts = new HashMap<>(); private final Map addressToContent = new HashMap<>(); @@ -117,9 +119,9 @@ private Handler1( public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { - qNames.addFirst(qName); + localNames.addFirst(localName); - if ("c".equals(qName)) { + if (xmlns.equals(uri) && "c".equals(localName)) { type = XSSFCellType.of(attributes.getValue("t")); address = attributes.getValue("r"); texts.clear(); @@ -128,14 +130,14 @@ public void startElement(String uri, String localName, String qName, Attributes @Override public void characters(char ch[], int start, int length) { - String qName = qNames.getFirst(); - texts.putIfAbsent(qName, new StringBuilder()); - texts.get(qName).append(ch, start, length); + String localName = localNames.getFirst(); + texts.putIfAbsent(localName, new StringBuilder()); + texts.get(localName).append(ch, start, length); } @Override public void endElement(String uri, String localName, String qName) { - if ("c".equals(qName)) { + if (xmlns.equals(uri) && "c".equals(localName)) { StringBuilder vText = texts.get("v"); StringBuilder fText = texts.get("f"); StringBuilder tText = texts.get("t"); @@ -181,7 +183,7 @@ public void endElement(String uri, String localName, String qName) { addressToContent.put(address, value); } - qNames.removeFirst(); + localNames.removeFirst(); type = null; address = null; texts.clear(); @@ -193,6 +195,8 @@ private static class Handler2 extends DefaultHandler { // [static members] ---------------------------------------------------- + private static final String xmlns = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; + // [instance members] -------------------------------------------------- private final Map addressToComment = new HashMap<>(); @@ -204,7 +208,7 @@ private static class Handler2 extends DefaultHandler { public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { - if ("comment".equals(qName)) { + if (xmlns.equals(uri) && "comment".equals(localName)) { address = attributes.getValue("ref"); comment = new StringBuilder(); } @@ -219,7 +223,7 @@ public void characters(char ch[], int start, int length) { @Override public void endElement(String uri, String localName, String qName) { - if ("comment".equals(qName)) { + if (xmlns.equals(uri) && "comment".equals(localName)) { addressToComment.put(address, comment.toString()); address = null; comment = null; @@ -296,6 +300,7 @@ public Set loadCells( UnsafeFunction, Exception> processor = zis -> { SAXParserFactory factory = SAXParserFactory.newInstance(); + factory.setNamespaceAware(true); SAXParser parser = factory.newSAXParser(); Handler1 handler1 = new Handler1(extractCachedValue, sst); Handler2 handler2 = new Handler2(); diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/SaxUtil.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/SaxUtil.java index 7b77ba3d..e3d97d00 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/SaxUtil.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/SaxUtil.java @@ -84,6 +84,9 @@ private static class Handler1 extends DefaultHandler { // [static members] ---------------------------------------------------- + private static final String xmlns = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; + private static final String xmlns_r = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; + private static record SheetNameAndId(String sheetName, String id) { }; @@ -97,10 +100,10 @@ private static boolean isTarget(String entryName) { @Override public void startElement(String uri, String localName, String qName, Attributes attributes) { - if ("sheet".equals(qName)) { + if (xmlns.equals(uri) && "sheet".equals(localName)) { sheetNameAndId.add(new SheetNameAndId( attributes.getValue("name"), - attributes.getValue("r:id"))); + attributes.getValue(xmlns_r, "id"))); } } } @@ -122,6 +125,8 @@ private static class Handler2 extends DefaultHandler { // [static members] ---------------------------------------------------- + private static final String xmlns = "http://schemas.openxmlformats.org/package/2006/relationships"; + private static boolean isTarget(String entryName) { return "xl/_rels/workbook.xml.rels".equals(entryName); } @@ -133,7 +138,7 @@ private static boolean isTarget(String entryName) { @Override public void startElement(String uri, String localName, String qName, Attributes attributes) { - if ("Relationship".equals(qName)) { + if (xmlns.equals(uri) && "Relationship".equals(localName)) { String id = attributes.getValue("Id"); SheetType type = switch (attributes.getValue("Type")) { case "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" -> SheetType.WORKSHEET; @@ -169,6 +174,7 @@ private static class Handler3 extends DefaultHandler { // [static members] ---------------------------------------------------- + private static final String xmlns = "http://schemas.openxmlformats.org/package/2006/relationships"; private static final String commentRelType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments"; private static final String vmlDrawingRelType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing"; @@ -188,7 +194,7 @@ private static String entryFor(String sheetSource) { @Override public void startElement(String uri, String localName, String qName, Attributes attributes) { - if ("Relationship".equals(qName)) { + if (xmlns.equals(uri) && "Relationship".equals(localName)) { switch (attributes.getValue("Type")) { case commentRelType: commentSource = attributes.getValue("Target").replace("../", "xl/"); @@ -217,28 +223,30 @@ private static class Handler4 extends DefaultHandler { // [static members] ---------------------------------------------------- + private static final String xmlns = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; + private static boolean isTarget(String entryName) { return "xl/sharedStrings.xml".equals(entryName); } // [instance members] -------------------------------------------------- - private final Deque qNames = new ArrayDeque<>(); + private final Deque localNames = new ArrayDeque<>(); private final List sst = new ArrayList<>(); private StringBuilder text; private boolean waitingText; @Override public void startElement(String uri, String localName, String qName, Attributes attributes) { - if ("si".equals(qName)) { + if (xmlns.equals(uri) && "si".equals(localName)) { text = new StringBuilder(); - } else if ("t".equals(qName)) { - String parent = qNames.getFirst(); + } else if (xmlns.equals(uri) && "t".equals(localName)) { + String parent = localNames.getFirst(); if ("si".equals(parent) || "r".equals(parent)) { waitingText = true; } } - qNames.addFirst(qName); + localNames.addFirst(localName); } @Override @@ -250,13 +258,13 @@ public void characters(char ch[], int start, int length) { @Override public void endElement(String uri, String localName, String qName) { - if ("si".equals(qName)) { + if (xmlns.equals(uri) && "si".equals(localName)) { sst.add(text.toString()); text = null; - } else if ("t".equals(qName)) { + } else if (xmlns.equals(uri) && "t".equals(localName)) { waitingText = false; } - qNames.removeFirst(); + localNames.removeFirst(); } } @@ -438,6 +446,7 @@ public static List loadSheetInfos( UnsafeFunction, Exception> processor = zis -> { SAXParserFactory factory = SAXParserFactory.newInstance(); + factory.setNamespaceAware(true); SAXParser parser = factory.newSAXParser(); Handler1 handler1 = new Handler1(); Handler2 handler2 = new Handler2(); @@ -516,6 +525,7 @@ public static List loadSharedStrings( UnsafeFunction, Exception> processor = zis -> { SAXParserFactory factory = SAXParserFactory.newInstance(); + factory.setNamespaceAware(true); SAXParser parser = factory.newSAXParser(); Handler4 handler4 = new Handler4(); ZipEntry entry; From ce137ff9311ccbd41f2c8b002874dd0b9aac062b Mon Sep 17 00:00:00 2001 From: nmby Date: Sat, 13 Sep 2025 00:46:36 +0900 Subject: [PATCH 08/35] =?UTF-8?q?xmlns=E3=81=AE=E8=80=83=E6=85=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hogandiff/logic/stax/PainterWithStax.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/stax/PainterWithStax.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/stax/PainterWithStax.java index 406d440b..b51cf29a 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/stax/PainterWithStax.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/stax/PainterWithStax.java @@ -76,6 +76,8 @@ public static class StylesManager { // [static members] ---------------------------------------------------- + private static final String xmlns = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; + /** * {@link StylesManager} オブジェクトを生成して返します。
* @@ -104,8 +106,8 @@ private StylesManager(Document styles) { assert styles != null; this.styles = styles; - elemCellXfs = (Element) styles.getElementsByTagName("cellXfs").item(0); - elemFills = (Element) styles.getElementsByTagName("fills").item(0); + elemCellXfs = (Element) styles.getElementsByTagNameNS(xmlns, "cellXfs").item(0); + elemFills = (Element) styles.getElementsByTagNameNS(xmlns, "fills").item(0); cellXfsCount = Integer.parseInt(elemCellXfs.getAttribute("count")); fillsCount = Integer.parseInt(elemFills.getAttribute("count")); } @@ -141,7 +143,7 @@ private int copyXf(int styleIdx, short colorIdx) { cellXfsCount++; elemCellXfs.setAttribute("count", Integer.toString(cellXfsCount)); - Element originalXf = (Element) elemCellXfs.getElementsByTagName("xf").item(styleIdx); + Element originalXf = (Element) elemCellXfs.getElementsByTagNameNS(xmlns, "xf").item(styleIdx); Element newXf = (Element) originalXf.cloneNode(true); elemCellXfs.appendChild(newXf); @@ -183,7 +185,11 @@ private int createFill(short colorIdx) { private static final XMLInputFactory inFactory = XMLInputFactory.newInstance(); private static final XMLOutputFactory outFactory = XMLOutputFactory.newInstance(); - private static final DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); + private static final DocumentBuilderFactory docBuilderFactory; + static { + docBuilderFactory = DocumentBuilderFactory.newInstance(); + docBuilderFactory.setNamespaceAware(true); + } private static final TransformerFactory transformerFactory = TransformerFactory.newInstance(); // [instance members] ****************************************************** From 60e2e2075bbe662a3e688683e243e99fcf279411 Mon Sep 17 00:00:00 2001 From: nmby Date: Sat, 13 Sep 2025 01:43:19 +0900 Subject: [PATCH 09/35] =?UTF-8?q?SAX=E8=AA=AD=E3=81=BF=E5=8F=96=E3=82=8A?= =?UTF-8?q?=E4=B8=8D=E5=8F=AF=E6=99=82=E3=81=AE=E6=8C=99=E5=8B=95=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/xyz/hotchpotch/hogandiff/logic/sax/SaxUtil.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/SaxUtil.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/SaxUtil.java index e3d97d00..63a1fd57 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/SaxUtil.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/logic/sax/SaxUtil.java @@ -474,10 +474,10 @@ public static List loadSheetInfos( } } - if (readPassword == null && handler1.sheetNameAndId.size() == 0) { - // 大変雑ではあるが、例外がスローされずしかしシート情報を読み取れなかった場合は - // 読取パスワードでロックされていると見做してしまう。 - throw new PasswordHandlingException(); + if (handler1.sheetNameAndId.isEmpty()) { + // 何らかの理由によりシート名を読み取れなかった場合。 + // パスワードでロックされている場合もあり得るが、例外を投げて後続のローダーに委ねることにする。 + throw new ExcelHandlingException("no sheets found in the book : %s".formatted(bookPath)); } return handler1.sheetNameAndId.stream() From 7fdbf5b22b28201b9a75bb54b8e513be32f7c7b0 Mon Sep 17 00:00:00 2001 From: nmby Date: Sat, 13 Sep 2025 14:03:15 +0900 Subject: [PATCH 10/35] =?UTF-8?q?Github=20Pages=E7=94=A8JSON?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/api/versions/latest | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 docs/api/versions/latest diff --git a/docs/api/versions/latest b/docs/api/versions/latest new file mode 100644 index 00000000..b268c925 --- /dev/null +++ b/docs/api/versions/latest @@ -0,0 +1,4 @@ +{ + "version": "0.26.2", + "releasedAt": "2025-08-31", +} \ No newline at end of file From 1ce868b118f954f1d68dc1d42a6cd28a13639dbc Mon Sep 17 00:00:00 2001 From: nmby Date: Sat, 13 Sep 2025 14:38:57 +0900 Subject: [PATCH 11/35] =?UTF-8?q?=E6=9C=80=E6=96=B0=E3=83=90=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=83=A7=E3=83=B3=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF?= =?UTF-8?q?=E6=A9=9F=E8=83=BD=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xyz/hotchpotch/hogandiff/SettingKeys.java | 2 +- .../hogandiff/gui/MainController.java | 15 +-- .../hogandiff/gui/UpdateChecker.java | 101 ++++++++++++++++++ .../hotchpotch/hogandiff/util/NetUtil.java | 52 +++++++++ 4 files changed, 157 insertions(+), 13 deletions(-) create mode 100644 xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/UpdateChecker.java create mode 100644 xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/util/NetUtil.java diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/SettingKeys.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/SettingKeys.java index 274dc810..ec97fbb1 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/SettingKeys.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/SettingKeys.java @@ -336,7 +336,7 @@ private static Function decodeNotSupported(String msg) { /** 新バージョン有無チェックの最短間隔(時間) */ public static final Key CHECK_UPDATES_INTERVAL_HOURS = new Key<>( "application.checkUpdatesIntervalHours", - () -> 12, + () -> 6, String::valueOf, Integer::valueOf, false); diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/MainController.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/MainController.java index a1ba1347..d03c2262 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/MainController.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/MainController.java @@ -141,20 +141,11 @@ public void initialize() { // 3.初期値の設定 row4Pane.setVisible2(row3Pane.showSettings().getValue()); - if (ar.settings().get(SettingKeys.CHECK_UPDATES)) { - // TODO: coding - Thread checkUpdatesTask = new Thread(() -> { - System.out.println("Checking updates 1"); - Platform.runLater(() -> { - System.out.println("Checking updates 2"); - }); - }); - checkUpdatesTask.setDaemon(true); - checkUpdatesTask.start(); - } - // 4.値変更時のイベントハンドラの設定 // nop + + // 5.その他 + UpdateChecker.execute(false); } /** diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/UpdateChecker.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/UpdateChecker.java new file mode 100644 index 00000000..16d59c50 --- /dev/null +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/UpdateChecker.java @@ -0,0 +1,101 @@ +package xyz.hotchpotch.hogandiff.gui; + +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.ResourceBundle; +import java.util.concurrent.CompletableFuture; +import java.util.function.Function; + +import javafx.application.Platform; +import javafx.scene.control.Alert; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.control.ButtonType; +import xyz.hotchpotch.hogandiff.AppMain; +import xyz.hotchpotch.hogandiff.AppResource; +import xyz.hotchpotch.hogandiff.SettingKeys; +import xyz.hotchpotch.hogandiff.util.NetUtil; + +public class UpdateChecker { + + // [static members] ******************************************************** + + private static final AppResource ar = AppMain.appResource; + private static final ResourceBundle rb = ar.get(); + + public static void execute(boolean force) { + UpdateChecker checker = new UpdateChecker(); + checker.checkUpdate(force); + } + + // [instance members] ****************************************************** + + private UpdateChecker() { + } + + private void checkUpdate(boolean force) { + if (!force) { + if (!ar.settings().get(SettingKeys.CHECK_UPDATES)) { + return; + } + + Instant lastCheckAt = ar.settings().get(SettingKeys.LAST_CHECK_UPDATES); + int interval = ar.settings().get(SettingKeys.CHECK_UPDATES_INTERVAL_HOURS); + if (lastCheckAt != null && Instant.now().isBefore(lastCheckAt.plus(interval, ChronoUnit.HOURS))) { + return; + } + } + + CompletableFuture + .supplyAsync(() -> NetUtil.getAsJson("https://nmby.github.io/hogandiff4/api/versions/latest")) + .thenAccept(json -> { + if (!amILatest(json.getString("version"))) { + Platform.runLater(() -> { + new Alert( + AlertType.INFORMATION, + // TODO: コンテンツのリッチ化 + "最新バージョンがあります。", + ButtonType.OK) + .showAndWait(); + }); + } else if (force) { + Platform.runLater(() -> { + new Alert( + AlertType.INFORMATION, + "新規バージョンはありません。", + ButtonType.OK) + .showAndWait(); + }); + } + ar.changeSetting(SettingKeys.LAST_CHECK_UPDATES, Instant.now()); + }) + .exceptionally(throwable -> { + throwable.printStackTrace(); + return null; + }); + } + + private boolean amILatest(String latestVersion) { + Function toVersionNumbers = (v) -> { + String[] parts = v.replace("v", "").split("\\."); + if (parts.length != 3) { + throw new IllegalArgumentException("Invalid version string: " + v); + } + int[] numbers = new int[parts.length]; + for (int i = 0; i < parts.length; i++) { + numbers[i] = Integer.parseInt(parts[i]); + } + return numbers; + }; + + int[] latest = toVersionNumbers.apply(latestVersion); + int[] current = toVersionNumbers.apply(AppMain.VERSION); + for (int i = 0; i < latest.length; i++) { + if (latest[i] > current[i]) { + return false; + } else if (latest[i] < current[i]) { + return true; + } + } + return true; + } +} diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/util/NetUtil.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/util/NetUtil.java new file mode 100644 index 00000000..d172258b --- /dev/null +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/util/NetUtil.java @@ -0,0 +1,52 @@ +package xyz.hotchpotch.hogandiff.util; + +import java.util.Objects; + +import org.json.JSONObject; + +import com.google.api.client.http.GenericUrl; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.http.HttpRequestFactory; +import com.google.api.client.http.HttpResponse; +import com.google.api.client.http.javanet.NetHttpTransport; + +/** + * ネットワーク関連のユーティリティクラスです。
+ * + * @author nmby + */ +public class NetUtil { + + // [static members] ******************************************************** + + private static final HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory(); + + /** + * 指定されたURLにGETリクエストを送り、レスポンスボディをJSONオブジェクトとして返します。
+ * + * @param url URL + * @return JSONオブジェクト + * @throws NullPointerException 引数に {@code null} が指定された場合 + */ + public static JSONObject getAsJson(String url) { + Objects.requireNonNull(url); + + try { + HttpRequest request = requestFactory.buildGetRequest(new GenericUrl(url)); + request.setConnectTimeout(5000); + request.setReadTimeout(5000); + + HttpResponse response = request.execute(); + String jsonString = response.parseAsString(); + return new JSONObject(jsonString); + + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + // [instance members] ****************************************************** + + private NetUtil() { + } +} From 13d96cb149f48e745009991df5f45c7dcb5c13bf Mon Sep 17 00:00:00 2001 From: nmby Date: Sat, 13 Sep 2025 14:50:23 +0900 Subject: [PATCH 12/35] =?UTF-8?q?=E6=96=B0=E3=83=90=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=83=A7=E3=83=B3=E6=9C=89=E7=84=A1=E3=82=92=E7=9B=B4=E3=81=A1?= =?UTF-8?q?=E3=81=AB=E7=A2=BA=E8=AA=8D=E3=81=99=E3=82=8B=E6=A9=9F=E8=83=BD?= =?UTF-8?q?=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hogandiff/gui/dialogs/SettingDetailsDialogPane.java | 9 +++++++++ .../hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml | 2 ++ 2 files changed, 11 insertions(+) diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java index fd07e820..57978fe4 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java @@ -12,6 +12,7 @@ import javafx.geometry.Pos; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; +import javafx.scene.control.Button; import javafx.scene.control.ButtonType; import javafx.scene.control.CheckBox; import javafx.scene.control.ComboBox; @@ -24,6 +25,7 @@ import xyz.hotchpotch.hogandiff.AppMain; import xyz.hotchpotch.hogandiff.AppResource; import xyz.hotchpotch.hogandiff.SettingKeys; +import xyz.hotchpotch.hogandiff.gui.UpdateChecker; public class SettingDetailsDialogPane extends VBox { @@ -75,6 +77,9 @@ public static LocaleItem of(Locale locale) { @FXML private CheckBox checkUpdatesCheckBox; + @FXML + private Button checkUpdatesImmediatelyButton; + /** * コンストラクタ
* @@ -109,6 +114,10 @@ public void init() { } }); + checkUpdatesImmediatelyButton.setOnAction(event -> { + UpdateChecker.execute(true); + }); + // 3.初期値の設定 Locale locale = ar.settings().get(SettingKeys.APP_LOCALE); localeComboBox.setValue(LocaleItem.of(locale)); diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml index ee6a8c93..00604393 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml +++ b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml @@ -1,6 +1,7 @@ + @@ -16,6 +17,7 @@ + + + - - + + - - - - From 23b9a8a73d03838bb34658a9172368323057ecc3 Mon Sep 17 00:00:00 2001 From: nmby Date: Sun, 14 Sep 2025 15:03:54 +0900 Subject: [PATCH 15/35] =?UTF-8?q?=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=81=AE=E5=9B=BD=E9=9A=9B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s.properties\347\256\241\347\220\206.xlsx" | Bin 41613 -> 44644 bytes .../hogandiff/gui/UpdateChecker.java | 38 ++++++++++++++---- .../gui/components/SettingsPane2.java | 2 +- .../gui/dialogs/SettingDetailsDialogPane.java | 10 ++++- .../src/main/resources/messages.properties | 13 ++++++ .../src/main/resources/messages_en.properties | 13 ++++++ .../src/main/resources/messages_zh.properties | 13 ++++++ .../gui/components/SettingsPane2.fxml | 2 +- .../gui/dialogs/SettingDetailsDialogPane.fxml | 12 +++--- 9 files changed, 86 insertions(+), 17 deletions(-) diff --git "a/xyz.hotchpotch.hogandiff/messages.properties\347\256\241\347\220\206.xlsx" "b/xyz.hotchpotch.hogandiff/messages.properties\347\256\241\347\220\206.xlsx" index 02d07576d93c566f20e63d3bc94ce5c36fa7071e..4ade87d39c8b62b7d38fd3db41c2707998c63512 100644 GIT binary patch delta 36126 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%0DXCj)eO^JWIn?rAiGQs1N2M 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

H_k%fzNW)|~ z@*$w37DsuODEE5Ao4UmZ^U+ctD&?9!;85v&#nOSXR2MuIl%L|qK!4HWWpVu?+7X7B z%r}*c5)cik zBazWX70t0r47y83(SHKZQ??UE+g;LVd#hT0r;a!IbPwl=NYcdLdf~znc<7~Afc#C2 zeeRaQ-N~cwmL9fJg76(<5-Qs77Sq@*rvZZ#SE;s!;Gl|8?S{@Xn&L|LyZ)1xiP!p$54S40%aGu zeQ3LM?}zo6Wg^$!d6or^@3C$l3eYUU%L%VO^nu2$)b3w?L(gbsWp()`yaqz_i+D*H z`Y2L)0}xGH!W)3?_Hj^7G>{Ep%=K}ja_$8li3yzp$SCV3K-4907?s? zL{aG-QBXpW4uT;XFaaTeA|;3r6p)sH5QWeL0ckOUNRvfD5(Q~1Jt9qti+~6i$_wnw zb7yDXn|J^C&3DeZr`&tLnKN_0bLJBzF1a7!wTFDE7GRw+o~l$s;1BmWnwG{9WJpR= zxiM;DQ>?;eRKwW7y{ECwX>;TNIpOD@EW*8=d?swRGXcV>Hx%$IZc)BVB5dzg6%loT zD+BeGt7oo@;h2N_YJde(l_=})W@c}Qb8@Tf@~06FlI{hcaV5vq%SbE5C(XOP_aW4K zrll35*G|PZYldV$w3}R;3OUk6a25~nRM2ltRHdbhyb_i6_;4aF*AMG;q>$V1Yn~|; zHK{(YAW(R2R{Kp)b96#rp+mi5#}tr;CKnQFEwA3Nqgy=5J!W_;nE z73INssHzK3G)SJWiI=Q(n|tnl7uYfDXcba_$+1~xBIKKA&oT3+6=j9P1)V z$433}QH0R!u%Fyb)2)wJpA%*hM%dbgqp@85@!~4W@XUB!ZgrEbWv=$O#R39mG2c%1Bu&iA25dci(9m`!1?CSG@#yjyx)H5oSU!WC-||~H)MY7Vi&ic1_AMJNgBKq}`v27LKMf{`_Q}4t zF1RcLik|dn2vl>w!&C(bFDHdZ@q7@2T#@cA%Z^(dmADtQP8hE^By{BfdTM~X3Sh{! z4h1yB53uPaqrM?!%zZ5YC%vZIy)iSze{T9FtJM{BMSjHL6wog|2OX?}OR_&M_|-5Y zhf*rZJ+0a@8NrSBBERl$Jf#d>!;Bo3Dd162J&=%SE4!8f)H?o=`E)hH`QdUn_tb5) zeBP56wJTSMibh#Sli9{gNOS4iXHTk+y3Qp;TD8m+OK}yx?gmL4PQJc#7iOaPTnAAi zl1gw2Gu^i>mt6fwza!*)SFc06(gK@6y6q^tIM^Q2pc}NZjV^P zgyQs8$D{?SGnm<8mUMn z6SnGp#t|ZCSZ8DD=N$HF5Z*Q2Ay$GdW2aJ>pan8H2@tLDh6Rse`LHy2B4r@Pp;cC7z;~U$$ zvwkZd#I^%3qvRM>2I(>eTDv3;DY0v5MPZkhX8_9O@Ce{#m3YL0HTuPPC=Yso%D5gl zPyh-e=S@fLa-V4Bf;6v|{|7aS7aBXFN{d|v!(6%1ceT*T9LpT0#u>8AG+A%@F5>kg zT06vsm}&PTQ;s2uXGr5s!Iv)#qLLI%-YJE>6XTfNrYLRah&`wELXfKjdm@FKfy9UW z-xywE6J9Rk`^NDwXRSzl_?z((kY>Bozj8Q)VdxXevwjGY_+Rljdsxt3=t=run6RP= z!Sy|eFD`Q>#6r^6$AgyFgmwNXPJhBPhpjb#V#y1AWoo zb9SR5!PBK-=6jP1ILFcV$Odl+_U+8o%5^a;-whmzPki|1r4mCzlb;Op?IhWz%Mr}* zhR>s1l=h_Yf4PX?Q_kN##A3{DFx4_roWM{fsvJ%`(T!s?X@4EZ0VKh%`b+$>er%VV z;-cNUu1ipYnIjqYQ#U%$jCy8I7-+T#kaV|3fBDy|{P_}4BezqKUO(vN4>yZv(}(c5 zI`twq3(d))0Ga;yYp-MNf2-h?vi({+?P{SpHsmMMA9(FWto^g{eo0$gO@?DDtT2mI z^8ikeh9?ux)E5kP&tZb-S`-L8iSJBUL0$I{220nZ9D?5`n(Gu~bu%#DbPdWucp{%U zJ3qAhCB}^or%1vRh-UTq&fTRLd%6m;utl)=S}L^shqz?E3XA{aA$oZ*MAp}By| zu@3UEg!C4M2fBjh04~E`EK;^i&tqIb;}9nYDOTq*`G;RGZ#p>%=c)*namSYnZKPgX)s$6AxdxWLl?Hk}XB_-VtS1Rsz~3)Y^5c@7 zn$a77paFF8A9 z_U;-3#(Sf*)F=x=N1e5`^H9KCvpTQwN4U_j-W)=(1*`&g5rLxm-nrIxX@Kv#p+$_P zx|MqCb)lg7+jo;JTKK)UO5=s0r-{IGDds5F%2M*jDCJe^{%k~GM&01YkYdz`hU+&E z$cRq1NL!IlgZ#qffld8Lm(j5sWiRWn{%^P*SAQbIJd12+$LCkRElE$M3Bz%r7Pmdq~ zKw1<$1VdVK0pWmOT>+1s5}SAI0D$i=xBv$^x%1aBA_-H?fFWKa5vl~qm#PL_L6II( zk3s&~SM*Eci7#n{dIa*T(Ez}4^!HKaM>4o7NrLAp16>}FN^=jBf^ts)-7-0k*1$_y zBxK%El3@}r>1duZ(D5OMv;#V3lOE?OK>nHHe_2({A#uJ%^X|P*B$0dx;Kf3ce7+uV PqKJgfm*uN3*`4}t(22EA delta 33031 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 o5a-`Z1PlbE4e}j&{J**1l21zfM+FxMY + * + * @author nmby + */ public class UpdateChecker { // [static members] ******************************************************** @@ -22,6 +30,14 @@ public class UpdateChecker { private static final AppResource ar = AppMain.appResource; private static final ResourceBundle rb = ar.get(); + /** + * 更新チェックを実行します。
+ * {@code force} に {@code true} が指定されている場合は、強制的にチェックします。
+ * {@code force} に {@code false} が指定されている場合は、 + * ユーザーが更新チェックを無効にしている場合、過去数時間以内にチェックしている場合はスキップします。
+ * + * @param force 強制的にチェックする場合は {@code true} + */ public static void execute(boolean force) { UpdateChecker checker = new UpdateChecker(); checker.checkUpdate(force); @@ -48,20 +64,26 @@ private void checkUpdate(boolean force) { CompletableFuture .supplyAsync(() -> NetUtil.getAsJson("https://nmby.github.io/hogandiff4/api/versions/latest")) .thenAccept(json -> { - if (!amILatest(json.getString("version"))) { + String latestVersion = json.getString("version"); + if (!amILatest(latestVersion)) { Platform.runLater(() -> { - new Alert( - AlertType.INFORMATION, - // TODO: コンテンツのリッチ化 - "最新バージョンがあります。", - ButtonType.OK) - .showAndWait(); + Hyperlink link = UIUtil.createHyperlink(AppMain.WEB_URL); + VBox content = new VBox(10); + content.getChildren().addAll( + new Label(rb.getString("gui.UpdateChecker.020") + .formatted(AppMain.VERSION, latestVersion)), + link); + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setTitle(rb.getString("AppMain.010")); + alert.setHeaderText(rb.getString("gui.UpdateChecker.010")); + alert.getDialogPane().setContent(content); + alert.showAndWait(); }); } else if (force) { Platform.runLater(() -> { new Alert( AlertType.INFORMATION, - "新規バージョンはありません。", + rb.getString("AppMain.030").formatted(AppMain.VERSION), ButtonType.OK) .showAndWait(); }); diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.java index 9eada65f..ec87b5ba 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.java @@ -89,7 +89,7 @@ public void init(MainController parent, Object... param) { SettingDetailsDialogPane detailsContent = new SettingDetailsDialogPane(); detailsContent.init(); Dialog detailsDialog = new Dialog<>(); - detailsDialog.setTitle("★方眼Diff - 詳細設定"); + detailsDialog.setTitle(rb.getString("gui.component.SettingsPane2.060")); detailsDialog.getDialogPane().setContent(detailsContent); detailsDialog.getDialogPane().getButtonTypes().add(ButtonType.CLOSE); detailsDialog.showAndWait(); diff --git a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java index ad894bd7..b753d305 100644 --- a/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java +++ b/xyz.hotchpotch.hogandiff/src/main/java/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.java @@ -32,6 +32,11 @@ import xyz.hotchpotch.hogandiff.gui.UpdateChecker; import xyz.hotchpotch.hogandiff.logic.google.GoogleCredential; +/** + * 詳細設定ダイアログの内容部分を提供します。
+ * + * @author nmby + */ public class SettingDetailsDialogPane extends VBox { // [static members] ******************************************************** @@ -103,6 +108,9 @@ public SettingDetailsDialogPane() throws IOException { loader.load(); } + /** + * このオブジェクトを初期化します。
+ */ public void init() { // 1.disableプロパティのバインディング // nop @@ -141,7 +149,7 @@ public void init() { resetSettingsButton.setOnAction(event -> { Optional result = new Alert( AlertType.CONFIRMATION, - "設定を初期化しアプリケーションを終了します。\nよろしいですか?") + rb.getString("gui.dialogs.SettingDetailsDialogPane.010")) .showAndWait(); if (result.isPresent() && result.get() == ButtonType.OK) { diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties b/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties index d0534e93..8e1d05d4 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties +++ b/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties @@ -23,6 +23,7 @@ fx.SettingsPane1.execute.040=精度優先 fx.SettingsPane2.010=言語 fx.SettingsPane2.020=作業用\nフォルダ fx.SettingsPane2.030=統計情報の収集に協力する +fx.SettingsPane2.040=詳細設定… fx.SettingsPane2.workDir.010=開く fx.SettingsPane2.workDir.020=変更... fx.SettingsPane2.workDir.030=削除... @@ -42,6 +43,12 @@ fx.GoogleFilePickerDialogPane.100=最近使ったファイル fx.GooglePane.010=Googleドライブ\n連携 fx.GooglePane.020=Googleドライブ\n連携解除 fx.GoogleRevisionSelectorDialog.010=Googleドライブからのファイルダウンロードに失敗しました。 +fx.SettingDetailsDialogPane.010=更新確認 +fx.SettingDetailsDialogPane.020=起動時に新規バージョンの有無を確認する +fx.SettingDetailsDialogPane.030=新規バージョンの有無を今すぐ確認する +fx.SettingDetailsDialogPane.040=設定 +fx.SettingDetailsDialogPane.050=設定ファイルを表示する +fx.SettingDetailsDialogPane.060=設定をリセットする… excel.poi.usermodel.TreeResultBookCreator.010=比較フォルダ%s: excel.poi.usermodel.TreeResultBookCreator.020=作業用フォルダ: @@ -65,6 +72,9 @@ gui.MainController.060=作業用フォルダの変更 gui.MainController.070=処理を中止しました。 gui.PasswordDialog.010=パスワード指定 gui.PasswordDialogPane.010=%s はパスワードで保護されています。 +gui.UpdateChecker.010=新しいバージョンが利用可能です。\n\n 現在のバージョン: %s\n 最新バージョン: %s\n\n最新バージョンをダウンロードするには、Webサイトをご確認ください。 +gui.UpdateChecker.020=お使いのアプリケーションは最新バージョンです。\n 現在のバージョン: %s +gui.UpdateChecker.030= gui.component.LinkPane.010=Webページの表示に失敗しました。ご利用のブラウザでお試しください。 gui.component.MenuPane.010=現在のバージョンでは未対応です。\n将来のバージョンにご期待ください! @@ -75,6 +85,7 @@ gui.component.SettingsPane2.040=次のフォルダの内容物を全て削除し gui.component.SettingsPane2.051=表示言語の変更を保存しました。\nアプリケーションを再起動すると変更が反映されます。 gui.component.SettingsPane2.052=Display language change is saved. \nRestart the application to reflect the change. gui.component.SettingsPane2.053=对显示语言的改变已经被保存。\n重新启动应用程序,这些变化就会生效。 +gui.component.SettingsPane2.060=方眼Diff - 詳細設定 gui.component.TargetSelectionPane.010=比較対象フォルダの選択 gui.component.TargetSelectionPane.020=比較対象ブックの選択 gui.component.TargetSelectionPane.030=Excel ブック @@ -94,6 +105,8 @@ gui.component.GooglePane.090=Googleドライブからファイルをダウンロ gui.component.GooglePane.100=選択されたファイルをGoogleドライブからダウンロードしてこのPCの下記リンク先フォルダに保存しました。\nPC上に保存された状態が好ましくない場合は、比較処理が終わり次第、ご自身で削除してください。 gui.component.GooglePane.110=次回以降、このメッセージを表示しない +gui.dialogs.SettingDetailsDialogPane.010=設定を初期化しアプリケーションを終了します。\nよろしいですか? + AppMain.010=方眼Diff AppResource.010=設定の保存に失敗しました。 diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/messages_en.properties b/xyz.hotchpotch.hogandiff/src/main/resources/messages_en.properties index 8f3b5ac6..e0c2fb79 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/messages_en.properties +++ b/xyz.hotchpotch.hogandiff/src/main/resources/messages_en.properties @@ -23,6 +23,7 @@ fx.SettingsPane1.execute.040=Prioritize accuracy fx.SettingsPane2.010=Language fx.SettingsPane2.020=Working directory fx.SettingsPane2.030=Allow usage data collection +fx.SettingsPane2.040=Advanced Settings… fx.SettingsPane2.workDir.010=Open fx.SettingsPane2.workDir.020=Change... fx.SettingsPane2.workDir.030=Delete... @@ -42,6 +43,12 @@ fx.GoogleFilePickerDialogPane.100=Recently picked fx.GooglePane.010=Connect\nGoogle Drive fx.GooglePane.020=Disconnect\nGoogle Drive fx.GoogleRevisionSelectorDialog.010=Failed to download the file from Google Drive. +fx.SettingDetailsDialogPane.010=Update Check +fx.SettingDetailsDialogPane.020=Check for new versions at startup +fx.SettingDetailsDialogPane.030=Check for new versions now +fx.SettingDetailsDialogPane.040=Settings +fx.SettingDetailsDialogPane.050=Display the configuration file +fx.SettingDetailsDialogPane.060=Reset settings… excel.poi.usermodel.TreeResultBookCreator.010=Folder %s : excel.poi.usermodel.TreeResultBookCreator.020=Working dir : @@ -65,6 +72,9 @@ gui.MainController.060=Change working directory gui.MainController.070=Processing has been canceled. gui.PasswordDialog.010=Enter Password gui.PasswordDialogPane.010=The book [%s] is password protected. +gui.UpdateChecker.010=A new version is available. +gui.UpdateChecker.020=A new version is available.\n\n Current version: %s\n Latest version: %s\n\nTo download the latest version, please visit: +gui.UpdateChecker.030=Your application is up to date.\n Current version: %s gui.component.LinkPane.010=Failed to open the website. Please try using your browser. gui.component.MenuPane.010=This is not supported in the current version.\nStay tuned for future versions! @@ -75,6 +85,7 @@ gui.component.SettingsPane2.040=Delete all contents of the following directory. gui.component.SettingsPane2.051=表示言語の変更を保存しました。\nアプリケーションを再起動すると変更が反映されます。 gui.component.SettingsPane2.052=Display language change is saved. \nRestart the application to reflect the change. gui.component.SettingsPane2.053=对显示语言的改变已经被保存。\n重新启动应用程序,这些变化就会生效。 +gui.component.SettingsPane2.060=HoganDiff - Advanced Settings gui.component.TargetSelectionPane.010=Select comparison folder gui.component.TargetSelectionPane.020=Select comparison book gui.component.TargetSelectionPane.030=Excel book @@ -94,6 +105,8 @@ gui.component.GooglePane.090=File downloaded from Google Drive gui.component.GooglePane.100=The selected file has been downloaded from Google Drive and saved to the folder linked below on this PC.\nIf you prefer not to keep the file stored on your PC, please delete it manually after the comparison process is complete. gui.component.GooglePane.110=Don't show this message again +gui.dialogs.SettingDetailsDialogPane.010=Initialize settings and exit the application.\nAre you sure? + AppMain.010=HoganDiff (方眼Diff) AppResource.010=Failed to save settings. diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/messages_zh.properties b/xyz.hotchpotch.hogandiff/src/main/resources/messages_zh.properties index 086be4d9..f81556a1 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/messages_zh.properties +++ b/xyz.hotchpotch.hogandiff/src/main/resources/messages_zh.properties @@ -23,6 +23,7 @@ fx.SettingsPane1.execute.040=优先考虑准确性 fx.SettingsPane2.010=语言 fx.SettingsPane2.020=工作\n文件夹 fx.SettingsPane2.030=同意收集使用统计信息 +fx.SettingsPane2.040=详细设置... fx.SettingsPane2.workDir.010=打开 fx.SettingsPane2.workDir.020=改变... fx.SettingsPane2.workDir.030=删除... @@ -42,6 +43,12 @@ fx.GoogleFilePickerDialogPane.100=最近使用的文件 fx.GooglePane.010=Google Drive\n关联 fx.GooglePane.020=Google Drive\n关联解除 fx.GoogleRevisionSelectorDialog.010=从Google云端硬盘下载文件失败。 +fx.SettingDetailsDialogPane.010=更新确认 +fx.SettingDetailsDialogPane.020=启动时检查是否有新版本 +fx.SettingDetailsDialogPane.030=立即检查是否有新版本 +fx.SettingDetailsDialogPane.040=设置 +fx.SettingDetailsDialogPane.050=显示配置文件 +fx.SettingDetailsDialogPane.060=重置设置… excel.poi.usermodel.TreeResultBookCreator.010=文件夹%s: excel.poi.usermodel.TreeResultBookCreator.020=工作文件夹: @@ -65,6 +72,9 @@ gui.MainController.060=改变工作文件夹 gui.MainController.070=处理已被取消。 gui.PasswordDialog.010=输入密码 gui.PasswordDialogPane.010=%s 是受密码保护的。 +gui.UpdateChecker.010=有新版本可用。 +gui.UpdateChecker.020=有新版本可用。\n\n 当前版本:%s\n 最新版本:%s\n\n要下载最新版本,请访问: +gui.UpdateChecker.030=您的应用程序已是最新版本。\n 当前版本:%s gui.component.LinkPane.010=网页未能显示。 请尝试使用你的浏览器。 gui.component.MenuPane.010=当前版本不支持此功能。\n请继续关注未来版本! @@ -75,6 +85,7 @@ gui.component.SettingsPane2.040=删除以下文件夹的所有内容。你确定 gui.component.SettingsPane2.051=表示言語の変更を保存しました。\nアプリケーションを再起動すると変更が反映されます。 gui.component.SettingsPane2.052=Display language change is saved. \nRestart the application to reflect the change. gui.component.SettingsPane2.053=对显示语言的改变已经被保存。\n重新启动应用程序,这些变化就会生效。 +gui.component.SettingsPane2.060=方眼Diff - 详细设置 gui.component.TargetSelectionPane.010=选择用于比较的文件夹 gui.component.TargetSelectionPane.020=选择用于比较的工作簿 gui.component.TargetSelectionPane.030=Excel工作簿 @@ -94,6 +105,8 @@ gui.component.GooglePane.090=已从Google云端硬盘下载文件 gui.component.GooglePane.100=已从Google云端硬盘下载所选文件,并保存到本机下方链接的文件夹中。\n如果您不希望文件保存在电脑上,请在比较处理完成后自行删除。 gui.component.GooglePane.110=不再显示此消息 +gui.dialogs.SettingDetailsDialogPane.010=初始化设置并退出应用程序。\n确定吗? + AppMain.010=方眼Diff AppResource.010=保存设置失败。 diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.fxml b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.fxml index 00e04740..7ca613c3 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.fxml +++ b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/components/SettingsPane2.fxml @@ -47,7 +47,7 @@ - diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml index 4ed2692a..cf41b810 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml +++ b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml @@ -42,13 +42,13 @@ -
uKq`7=c13#JE5$H^1!%A4jAxZW2b@CU-hw9qjOe{-wX zfa!tQQEnCwR0US2;>BA{L7Z&q2nie8 z;d~69j|l#%fD81$x#y$0)i=^)tio+5KMT=NK)Lt)~AM z(GUKrC5|{T!jgnJiP%bvm8{n&Q3FUlc~(_*RE3uy#91wYB1ZJw*~T>)?I=P#5y2d( z>ihML)c;0f8b>|#4fFpVW1>^VejG5Yjsxga;fKH|M5YSccxF(BOcj1ne=W+8sbXwk zLzEuTXv#p3D;4)^zfHr9&$GD$PykM?t6uo*4rhN6%9My=p*#vz(1Q@%F0Q|of2DrO zy!X9y%)KxE|AfAdV_*A+_CNHyQpnoL^&O=Eipr1KYSvLPS*Iclr_f!0G%uMl zib5dj^N;D20dg}wJIy!qS$q>cKr*~&^`^d2E&|r*4U(;&Uo?Mxe`c-xiaqPw%Ya7d zRgoW09u}cllW;?1wF;gvFT;Ti_l+&fXjkty*H3n;5<6l)?~sq_#>zNUL>ZlKj`8wd z85E+1j|Xg_5Zzhv7(Lot1iCrs4tABF1N3t1`5m?|w_YSlhZ4bj1$97Os30?Na%EYP z12#*O`7+xOVY|`ce-YHKx+N3>IyTq7!4wbgh8jq1vmgJB*v}>8V}=v%(xD7F7vuL) zp$y%CbDs`{C`@>O2MR?u9YI&OQ&I>9j%z9(Wt1ch;g z^m0A4 z5Lz-d3a+z8Y_QEM?RdXt!*9+8gI*c_psVZUz`Cj3&g+jTHk+uO2YI86uJ(ixm4ZUL z-V;fFVva)8GVq{&6xt@e1HHtnj6Zq`7uvVp!9^AGe&V)SbCM3I6CUi@%_8Zxy%n{p zj-&?3GjegKf1z1w6}z%cD~q5kuikFFxZGM@7g6G}LT_L=(}?{TKtASYh@8?zA!09h zq&Uh@-0&S23K85Gj2a4U6K=#U#a;;jpubx8Ayn_K%q50AWT3x9w!Z~5;%n_52;rOd z3>xSdl!>d%P8@V(hQ0+ZsuSA;7f};T*4Ah&y>l0ze}LQYiZ3RXh9`)P zq7Xq0PY}zXkPew-+HgWtb2?;_Jeze4-?UATk#`+KI=goY02dmBG&QQP|47t8-`GL4 z@?kCLQJvW)^oYHVVQge!hVKI06Dxl|HlnEI5Sk*fY521cUzWtC;m<;R16yp`h@DrJ zk6Dc~f1VaSibDEkEoIcdMIO-1$%nja&`Z2h0iYpI!sxgoxM-}m?aK+BHUnT@EZ6b)3;Pm%ny|j8&(Z#Vo3HV{ zId!|8h!2%lR|37){qSqVPLImR40$F^Kp0CIe|wzb*&7*r6G2{*pW34kMV_($>y;qY zzn{2;?8PZ42-a9Q;og2O&RUmF!%<@Av_3kB9$_THHz1E6j!+9ZD28?rif^d&K2;>c z$nL{N`@@T@j{gf*f;jaQs!IgsdW_gvMERIOffIzIC`619&(X=C5QT!l7@2jRQ=Cs9 zf1}OyXoO@mIuvDE**6Mt8n)sxx6m%Z@n;R{IjMUt7tt<3lpNiRXMF7()%QA#O`Cd+mf4uP1zhwssipV>iyX3l4CHFX0Ks6#u4r(9x z(?vv9;>EwYiHXuIL|_&m9^n99#8iQ6RDg$tIx$rdyt!}GGQZj?_&2D1gN!ZQ^H+f2 z1_*E{9U*U&6>#>JW)DCa8&Sg$0zJp4WNgC`Q9>2Y_Phc+aP4$Cf4KCOs&k|Fe`*G< zeJMaPZ>i{Kv3U1KDPg}CaxIY&&1{e|_?fdp(Mo@`_msLNl!d*~GAQsv7868}HZT3w zI(`9)C&5CZ-u?df9|yU%D+QZwGDyT&BxbU?{5GI73Upj#o#t@Ye12D z&g~dyG(9O|$oNS|#*-qJj2AY@dQxOn<5eHWSc^T{GI3*^zN|qw5iVT%W* zasn$qX;YYot$L02x4`+qKnj^%qRnE1cD7qR=jh;B&z=-T2j?d|DT)qGe^7W*1RZ?i z3g}P-aPZdK@ozkb>%MjInTr5mA_yd$)>Xd83K5&m{g^!}$8VzJTRN2wd zy1%Gpoa7EbaY!dOB{KGpf8+|{tk20ghf0UQn}dZxE)DX+X$Zd*!T%ywu27uKLn$=O zUKCGq!1vEq)P>X{q3j6ewlMSVjjz9nAq&=sC^p#981J!j^X-&sBCNm1>a=9PrgqxN}7ulFvheSUDjTI^B# zP)9}AzA6|4&XCB|f36`CLe`M;IuwF_`iLGE==L5u^l{P23q<(kb_Ctl(pkl7|J0w#49%=xV zlA^%k=a8NhS-1J^*kD%Fy9luO_1Lg(lNNgf7L+mf0fg!2f4wiwVAdO#A+Y!AKXPGK zqwWvAFluScyaEZ~mtokSZQ~-W#?l}3MIm}zPG$7~`{D~bqHS4v?Z+swLB-GOb0lqC zb>KktA9!9rEmOrd&9jH~ha|4^;F;02+q6 zUj9aUa}Bo8tIa!4nm4XtoeFu38?=yH4^{TW2Gyww#S+g1^`r=vVm#Q}lhW;Nn%~w1 zSW+$O_BI{kbtyclzOV!v(%mZd$FEDx0s(@N1_dD%e?15#s8wAlRq)y47gxkLe+Z@I zAJrFL)N8BmiN%2G)-3m8->9r(&G<>bVD_?m4{8#@>9Wethie372=Jya^McK5lYwpSZUzGKVGk!VyWy8#nZ{Cp1 zC{&$8x#BEvg~xC&sBVP!BeqS#&~&L3p8Hx?#HZ^rxtHcds24_REW2-B zBFDG*ta0;6ZPbVxOesg(Ac0#~i) zf_CG|Ay0~+ofFycd7}mGPr~_T=|E)%e+I>8@>O8PDyqJwfBx^EE4ho`i^?9$;Iv)s zkZ1@?*XG*Eo`L|_x9GZBh3fx!5m><7bm42UfT`erxhmz4!YUz_1^qgL{l!jsv0nee zPNh)&gU{+dI0K(motMA@ur)X5o?6p$e59f89wPvz!FHrFrk;1X2T7&b(P<~&e-|p| zjZQoKU9ZzF7Qp?>=d=V=ir04pJ6vPR0|WI^)5Co|LY$#0W1vf9y$x)EVTB!ZE-^Uh2&Y2w3qV5yG9^;SfVAm9*GC z{ty?z_-4%TSh0zaswGXRv7iZ(L`bj?7z^Nz<#VBFzYtvvA8D27yhkCvJhMfFP42Wd zFk2Lw8MOuc#bN<`rhLw$q)@-X?s=W97)lYFW<)%DQXy?x`@?i7 zlN9MT6|Vy!O&sY!^m|mif7T-7Kt$U0aDz%L7QnR0=hPC!jSG&|ubCw<4mR*r6b(G^ z&U+PI;dm)_PbxARM0p_X+O+xtT&eI>R$>>$i?zZd?R(v9#z2uLk)Z&sf1W!mOaWd) zR?Q!+8t(@q5T2YN#zq8FJ-z1EkONT{YXM;bTuTQ#5I}mw)XrMBe*gRn&_hF<$ zi(Y3U+W->qBRyVme>^Vg%<49Q(_Hu&BQFQg8d9Yfmyz5u@X;+;Ef&BN$>)4&Fj!HP zA}Ha79bza%QDSa>%%JS#ATMCzy(=) zgMmU67RCkxf2Alaj1WAOiVO<~u3%<@p@bZqbo4IhaKgg^y1=}PVB>&oL2G7m*_oi`w|`uxI2LjMFs&hq}OH+V*~=|w74R!f2fPe^YCLRMRd;#&U->s_dK`H zlcKuk$$g$wRNae{aH{){;RLnU#UV5o_>sPRi#~){9Gs8MwIMW#Xf){0{*S>F@P(oa z(;5#TALVntJ{aU9N)c%Asy{IlqR=o7+fj-_!#He5smRcP!w?FMJ$*n!5ui~w9pY3y z3^ewbf6!13Ml}?oK_41>dVq#t7tM0avAAL#snsyJNt7bcFwV$Oh(d!YJ?k|{p<$f2 z;JYG2Ly&b|P!wdMX(!7-N8i%VC{%$%uRD?T4-Mgso_<7-k?8BaJhHAuGP4Y$_HU#Q zh~|q2aE$Uf4LFD!myg6y3O}-p`HaWS8BeG=em;jcnRne+eZrIyiy>RAbzXuZoWtd=pAh z0GRWdFmwt4{4@dPwUVL$Fn5Z*agA`+&Il(B0NpM@;>YFK)5ufatkHx!M1_VADt|PM ze|>MV1`v;NMLg<(cJUE|QbH*T1k){4@6ru?+{})}cTodx95>Jw z!&?HN-~N8>grD=^g~;+s`7wNdWF@QjtEJuW@zwYvPj0`@tzYj28S(%|Fs_Ivsy>tO zA#q%4hK`s!Ie5G5!?QJI~ZDohl_HL8d5e}_utV-UlRnNWoyCZX&;X z0J0$9(!|60fsdT=Pd@mUJs`V#VBk-V_@DeY=U;P&X8zq7*gb%M62k;*HTBVlhba{S z?BwR!B1G`YwEZWW@6Nb)e<752xp{pJ(mFerRbpSooH}wOFvDWI_WC0MSE;X&2wen? zqiYza@A`}e9%+XKse?qZZ6z!rh^}atkU6e>JY&gE}WhJxj1RA$VY=^l*)4kLD+wNm!bzg+rENyA`f}^)ulhLI@)tk{Clm##2j1c%J@6JEb#(F7Zt~WZGms&oXVh>8gbt*m@v}A#7vq*? z3WhWYseP30#vBY~bM0dD#%s(%^bSWmn8E;3G@$b9gMMz+<95&9BA9 zO@N5%)(c1(2}4%w33en5s5Vb<4|#ea7M^Ka#;JbrfA}x5Rr<#=^wRNvT>R+^c``5T zpM3Bq_jX%CjLEI5bPq?2@7(esNqkW1!vsr;0@~a{3J6!5B-mWH?e1bxyOWVGUBIce zJZU<~kfuIe4;6+q1&SQRu97TgIx^8wWuxFX^z0x;eg#yUgScRrd8ddTQMhI*kZNMh zWQPrUf5TLSHX^cldw2IJF=iBSrdTs2OToQ2KTbHYfcJ(~^ywr+pZav|5{5nnid@2+ zqX5KXhB-L}ie19c=s>l(gnI{}a|sz0Fn+AMufg@N92KO@U@RxM%a02M1Z&pxI3oD! zq#FwcMt}_6ItdghPZ5T01&YjVPE7z}bDPspf1udhMo0xzo4NV}2raW+ zo`kt!sUWw}GQGY)VVO0(3yBx|dkj|aCn4MOYlLZri1q2}b)>mk;$4;F89#3K9bl%H zc-s+0+al14^sRG~AIM}_t ze>h0p)Ic$9YXd1JNGh=~`0^tc>*C(;&p*7E9}K1$me8kbUocx|px76T+7>AG1*4_| zihaST>40kU1tD#-zOYp8mkkcwsLC0EgtvXYEj&XXzM-%-zmURmez9t0FwJmkK3#i< zS(RLOG#uaC*GrTnqL&Dw1gkF*ZKEdf6-)F^)ZGn&=q!<}E@YKhM2VKQy46{N1W|(M zEo80eU3Bjz-*evb-}{?$=5y|R=K0*`J~Q{;nKR`PC+nKCH;DyR`n_u)6FFr3kV%T} zSE_;U9=_6!85UES$$W&X=$$?T8w`|9rZ^aeG>G#|Cq~ zJt3~>WBIc(lt;&w#c{10!eehG@QdRnKb&M#IP;5ul0+emg0~K3zz*ls0E(|XrmP}l zEoZO}z@h_4<`Olp49r`+5oZbJnLL+$gx(Gn?J;zxEV?>EzeE_p%ChU-1FzFNYfv&* zmlK??fJ0o^r+=+kE&gb~;heCfu*)`ggQ==KcCYoQ>h$)eq%s-$ zqU?VJH*%`)=RNerhbua;NmIWA!FR4XY+^~e_M#h_+XTlNqQJ%_GkFQ=ONh|`svZj! z=?vAc_c`=7`JDFM%$J$8YS!gCMvi?pm=URzFuOv?=Cn!$*MJ49s6 z%7Yy}xmHoS7%s|J7}2*f-XUvoT)hvzrYCtkiQHU$pC&gbQ-jiXdGh!(;x1{-KW>8k zpaZ@1L^<+N1t<04KEbhc!=nNVb6L}t0d!eClbdX>YgL7ZVL@|1>OyaD<6^Hf;vps4 zWA|gLO@#{CpF(KuHrztfU~4qCeeL>ajj)f$-TJ%xJJIux!wmeZK5Z0Ni;7SOf?IsgO$5g)H;Kui*eYI2~ z_q647O~U-EWS(1vEsjRplZT@{e=D5X&l>tLzlpbGzvlihx&vM^e1rP|LF&4eaecF> zXyPsYdrT_^wtlzi{V)D`o@(D2+_*~>vPD>>DYj=I1%-I9>-Af(i0o3e*rv9Zqpq#N zZ|722Xj06CSqOVdZk!CcgSEnBI7_c;87IZrrRKH-H`dl?ZOxP$N2zrL@`=^fTVoIy z|3+E#b^PeWWeWVQh`U~I!j%RNtgrCKw<~<4k03RzaOH#F>PrvxB{R2WzK@At(+f!g zymkFVSA0TSZWhzUZ)ubp@ab!!Tr~){4b-~fM^$`5<{?vclXo`{c-|ct4BBCLsY$VN z=s{idN6gO3t-*bF%P&&WMhbi0a2hXOS|y2J;(YO#R1V*-IZCY~-#D=}LN8*9U7Fut$Zyh! zkH#`h%?R9S+o+`#wA#`}EbXk^gS|FaAlK@M3i(Da!l}J3O&p?v&Wm^^v6jyMjEMIJ zItN}&qB?LUu}}RQoCg17MEVqw>XwV-1u4iRC+WN3-c7VMfGTa@F|dHw+5U{})7L{z zUePI`3y$?6xTulXnI9qrAq{|(R?yp-GjO=f6nE|j-ZvpJZQ+??w?KATyhnX#jtLkC zD$NNEx43^!)P9y^c-qcVRBXRTZfRjsaq z1I5#r;~e$6bn~3 zVPHOeITTFN)oMrK0Ky)BO7yHXG3k#-@6+7l6iGDxK%C4yrTH&*qB}2&#~-;n7RzRr z>0If!O@jTS4T`j93Uk_ z@6J7lywbt>uToLNLCqDuWG~wfu;S$_7jp5u?N;{+Zi07 zHEyKRs*8UWG$G(jqr*H-;J$d#k^R~%%?Wd=jd0mt3GR!7=c}$InL*TvfV0zs9u@&Baj za^r!?x~Ct$QNMv7h-d~kc~vWIjT5_YE3h_MCX)yL{LWdIn8HD+zT>RjAozT59vgSGnbSxdXVI0;+%VLu0n`me3~<`;9I5b<+r;$cO;XnonNC9C}1+3wxRZ#{yu zH!Tn0g!P*U?%dkW5}74-dG&_s}PLshI}%m4sxwJBaiT7DIJ>Ja%HFBNC04v zvdBU=`2Yg5)VR8tcQ4A}tT*?SSHGspOy4yDxvmRP#?nYJKL*seTCVApq zzdlq*?52=kt&e@q*Yu@JZ(c5~MSiW7k&`m*0);sFUxj#(!T7~#w*~~4Tqo4M5^K7zGp*f`dg^*bd=e*r~hDER}AsdsB?kI z?VDw@6O;3{+@Pr4zHV?1t>~-_D=Cix=%?RAE_^$3m&}2ALy<~ z>}IKxY{#lyj32K^;x49f57|B0RL}5R{&XA5xOs45! zI=62vdr1<|Y*NaW9EdMPP)k%beU7U_gFSO1XlJg&QyG*beb5rICLr-V>K6MHolkbp zEZwh<@?ODUKVIolJo_b&F+}o%dxjk^q~< zNL{$l{a2NrVDUc@8346^HSBO;cG(OJLgq}SH8M3} z)khsu2s~|N2jg819aPiI+JgK>9)6TVLM?wPXf*zVpZY;Unb%iJ|ActkdA&abn1gte zO|tl+&>BUN;L^2oV;90Mmg)O^`zX4^{Hb!+)|MbVSKo0ywJ~K`)ACTi8;O1`kJQ{coc4d{ezdXC+H5HiFcTg%_n7lBU9Xx^T zw5RlPuW%_2@jJtdtS>F3THJB|u5TH>y<&^bz)bUy52;^}qI()=r6+!vAuAOPHKTnj zq~)p4KtLbeBDT0?ee52vUeB88u}44P-aMVbLcB45I<{Y)T7ir z*jR_%o0St#oT@VA5DyZ?-kQma z!v2_?Qu{8jEkxF~N_@PinI`IeSgour$M6^CEc>n?$vb>q5}%wRj}J_)Nf zoH%1BK84}r8`E)Wknr;K9ZngYnLYY+{0JP&qbCl?nMlyiBV(Q(62Bg{Xq??(!eE5t z32{u)aS>)Rd-zFgX`TJMiJq^If#zH)H71VXYezJ7yVf8=LVfkT9B-y`L4dvEgAndt z8&SK)Rmzo428L;TctR5M%+*mFRLRg^;F5!aiDZsLJut_f2xv9i*!aNXId2bTUieqb z*2^H@GZBw5iyebOipIVTOQoRLy0|3hk`B3GrrOzAPlrC0`1^%_&ZbKn$5BstawZnF zrAe4AXT-_F^M?F%!kIzdGq1L04tb}W-SMG#INR+5;I9Y0p)ln`rR)~}5M{5&VsFlSA9?>unmoo_ zPHY9I`mg(`-moqSS~msgtEW^G+JagP(@h(D;~eko8)1_QG|=+9h3>_AW5ND#Q^?+G zm3-B30D8(w7Q0}5qO8$;WN+xXO~gfc;B(jYB}H58WNf-KD^i)^`i0gmCJd zg5=p4@-An&-y&fSvT)9J3NTE&iCaipc=qXVmH{iUJ#LxzOvwH-*<-<{+CBbmpSfaN zl+@<*EvmxId-fj+w_WvmhHk8KL>Q%08@>j(y$mJkN|hsR4R_F;vIi!2$2xe|T@3*G zJTN!aTq;Ap6pVXlUy4Q;_e_sWcx6B&-MYvE3_r&d*IIpuLcuZI_l3$mzlts$4zyy{ zK1&X~j&7~=-5&OyXIO!F@~nJ_j#{1e%KLfZu46Qx`cv=xF7XY|GsU^@T$xd#6-$Xy z`1rdXhx6vmUPlM>n>`tQv)5o+N9a2dhZ2CxgUyrIT<^wNPZv0~4cTsdmE_3R{c3B| zch~3YtIp@jr|QRWf0cfH;y(#8fsxDxGv^14ck+r)g{_3FxIctj>F_k)+=KkO@M=v% zMH_FR16v%APZqO)-fp6VNttsLWY|;1Mt={?XFaVe`BEUJsh*I_PsFh{9cI7hDpoq* zonAaw{J!Q}Gt=c1`1r*RS?ZNNZv!^uZkjbW@(^uf1A;^Be@T|Aqti+b#mXPb+WtJC z*ei$tSjCI1E)fp0qZV!4TZEDyw9IH~CjiFGs{DVnEq;0 zm%TbgNdY&}8&74bo7FSJy^>vO;pFmns|H$3SdKIF4L{7&b?#^zVGj0j$XMK}f+0UN zZf}SrsGr&Q=sZ|i|FY)BD4Z|06UWFZM4ogCj1-nlV&;!hJzjuD2-Uyd3nbXu}ZuPqMEe;zdly~Br6?Y&c zljmPCY|mm8t>M%5EqUhB(B{P@$NPO7KAfqZ+nj&#uB~l%3;(OAht?DcU8);2g)uEh z`+H1^7yc@G9K^FJaIz1`i)tN>^tj%s95I_grTsef7U8XDUrFhjnwVBA#D2r>`7!#; zEEoQHXK7M&j~I))SUxnZI{3j4SohNU+!#Wg_t}K8$IGcrLACtnl}c}Qr9Fucnlf{rgstkodMYq{)yYS=F0_%GD=AcS zNYhpG?##FK#ta&zOB?ay1QY;#BUd!K@m z7vh8ODG^{JeXXDa9`9PWLff2^kuBI0F}}}4VgxV9d$&SJFyVO2VP|Y^lWzQ6O>%x} zIwautug}v>)HaE}&o2kraH0G7mhA2gLhSs7`UsiTlKnWh`10wg+LUc`b@?$V-oX~1 zqqku<-1e23iJC;!+R{9`41qj*9I{BAI$4;$lgMT{xn3UTAO@YR7Ja^LCUN;My z9rB;Z`|o+-KTSxq7eWeJHSi(A4UZkZut>!|YB^{P38NV%r6uDphRnCZOE{=z2f1!P zK3nGZO75yGSG_#nuRmGa4-D{Ewe?#XDYVQQs2lXVx-2<9%Zs}_8OgP@o=aG6`uTJ3 z*k|_KyU{1xBlK)x_3+65^y~S~LUXTDCeieKdipDTaP45}@M7PmIXEy>F>9|kd$3&p zOWoPYiBm{GfC|r+#P6b!>5-p}^DxB0lewIxhDPfa8$WN`+Sye;xK>@@+1B#O8XYbK zzQBdf>pLyqyV}9(G?7Q|y?D7C%3do%+M2qW)GEW6>eu0n?gK<4RazR^dp+qKs-q5z## z4yP3X6Zc@;wG0^uKnKFUslt3h6vkXjoACU&`4z+RHitNg7#sT zP+ourgq2bm$9N316T5)&1k_Vmot7St1wxy#vnY2!9m2AybaD&=t-(&B;4nZfm1R(A z!p|Uu|1dQE-W@7tM&VXu!c@xHbOca`o?Lj#L zs;JC^Fp6WG&^T-t$^lS`FjK;Cj9r1g!nULA02NebrzOXuCy-!l3(5vijxcR1nH*h( z_+T4QR)8`p)1VS~!{`(QhQ*>R0Hp{MrIPf~UWg;M5@iO!P??;f14bJmR@hRM37`aF z+=MnCMMI3NUD0%Jx`F!41k#TPymZmw$Bx&TjobNGO61{7?KA@x{$pV{&xKHF7wm$V zf~F#LA%WKgFoRvd$fpvtXTP&*)CI`7l z@yJe-PE-{`nM=uXqnP>BdrJ3=TC~aQ)?I^Ux}HfB*l?m|lgg`GN7qy*=Q?U;A(4wt1HZH8 zj|ccxf`uP#G1S}0Fhdem|n+npz`j5#-b z3P96jamx>euNBJFU`?*aF-*VA5%PpHu5`XApu}!|R4_9*R96W5DV1qQn(76);~v(! z8vQE@kI_M!TGx^cNG0C_Swwue^-0Z!&f=XKmxa?0=GU`gbtBT7iT&onhnrb<0-sus z-_NR%wz{BE19)sr8=tGo*ExjkCd+=316!_~Z65?2`RniGe9tV;|12?EFiyD*E(zHb zfA3v*REM{Fc9=jj^vBMUOJM3f%r_BW@tw@(1f33*whiD}S~>dv`FJj= zK*mv&oytK1vwDr!mR=o9Svjj@N-5Y@81 zKr?ZMhhdUUnNK=A4Qu`hOKv6qZRV1G=^nO`svD}BY}a}tFO!o& zgAvC}J9u69i~y($-VOG#64uMz0UtAEuvn{im7V$%Y-TCu?)T?PGqXQV(76}VchMUL z;hf)NJMqbI0wZ)>CeYN(cAw1nFxJ*p185zn`OlILF0kuX6awWotid z=EkjizcET2pr!bVDiUlbYk7>OFFKuwt>C3E-78OdKwtyoUY!}stbP?@Zpy^1WxvFZ z$(SnAp^$SN+)cA%0&HNvL0$An-J~(R@{-e=GM?zid6$-(C|z}sES&vD(V=5xVu?|VqGfwWxpdRff`SayyCB_kUq>ipDsNUTCSbIIS8wM-YYq1R6;gNcY06FnC=oyuc zstq9@I&dAx-O~Ok5WZayjw;ic*cb4cafe-hAIc|s;RH1buIT2xCFEWEx^h516kDTk zVu2}mJHw2Gu@`C((Px#O&ww!BGgzG{*XOt$1Gk%**i`w@r?gEm4~dmYG&%C%6m;%6 z8G#wUY=s+Dml{HIuaD|gMv(VS3S^ZK)8Kmc=T`=B+i}c%5#kbWtfK1v`B+~sYGR~XM!?OkZmbvhp z#k>G4WTCL*jjzwu^;(zZ56;JX0(Xc8x$lwroV>)1j0oo)@>uN_O)Zcp%vyj~i2A3u zeV~;jmgQuP&^?Z$x;M|vDXNk$&tRx=&YUW1MX&llwrXE+Jiz;D7GLwJ$DHMSaP~88 z`^hu?n7Uy4k?EVwXo0h~seluUx>_{!Pdg!osfA?v@Sh;|{1$3W?FUP4ib5-Xlbjog z`n}6LXX17;R^oFhO2ZX`F$6-9R#f+=Dj3*ZYlALw7zD8X!0@=Bpk=9*m^@069SM z12IEAd82fq+`$zx6VuXUh@u5UUp>pv+}tnu_r3ACQk~W`)=6lrK&3_u&muoB25;t? zYo6YE0|l_n$8%VcBqkE%GpPFPanH|db9FZ&`K$L1)E?t|w^Qw$gs04UOcX@XcwtaAtR}F6-HJ@cOs6GcZr@FLxa7 z%D?KrHe1@o{VS4TvyQiIwFlxJR{u=Poz={`qYwM>9l!I>3@b20=rqeAT_>4@SbK;` zAK?OxjizYfi70$!XyAj;UZN$Ep$0)|AP~ah?f^=OPUhbR(;rPfu1atz4`;Y5=rB1+ zUmyH`Qc-rl#`lbn(O;W>F%pT-%(qlnfs1>>WIj;(b^WjA zBgfXJ9lwvGA@}yYb`nLl%Ko>spGi>aD2b!Ac;%T>5L7q^9SM13coxlpjad3X?$JR0 z=x5F7(CDE)a#fULZP)!C0zn)U*yR{+eY^9X(hD6XH#|^LQO8F%9O5vSX?)ySBf%v z7Q3Cm#FfO6@55=F;J8k*{u$@DfleuEu}->Nn2^^H{VFXJrXzYGod|5sw`GMCGU!~` z)N<0?YRcJq_WQ?M%s{y+&?|5lR+WyS zSXQj!+g~6S&NlABCnL73>K$HX_qBCPLc^vcxm-zE{fPHaopY-qo_Kn!Vmes%!(9>6 z4|!8#^=cE@;yEeHeqfTt$&k;;*Le$l-{pY2k6PAvY1gb&5`r5@TVa^ zHuQuqpjDY6T)_mFPLur47-rZQV~Fe=se{}B75hl>hgHyw*v8rA;h=Y?nt&E28xPqr zym<)0ZS0qI7Wus7)?Ecvq~0}Wcu#U934dRtGcRG)XHp;gi`OSCwovJZc8T3=k=lF# z|kI*4&>QL17 zw#n~&`55hTF?U>b>OpXev)+I>iAisQP4I!i5$#Tsoqk^|Db!2p7x=h5MHL5|{k4dg)j+hs?6MwsL~A=K+w z6k?5H9h6$ul4v@H5w%1n@7p?05gZRO^ul zm3SZY59Byly`B|{ex>1!-dEq5W{Mf0Vk+9 zwMDL$p+M`Nq8=N3lUYe{nt-qwc8?f9u|>oX9a^M1f`gdX$;FvOPbJP>xOjU6JK5U) zg}2Bk+WAi)k$I^*cXXhLT00U%0nI{=yK(nw$J@jP*RptT9ZhL~BdWa@LUyGZ>a-jd z64r2jaZrXZR*okGB;rhcR)tKOnL3p@t_Njd1&}+DwX$7W(_AGiTfU1fk@b!+vKHZq zrdIKORs8WyTkFP;3im@@>zzO|eYvOYRd}W!Q7Bc1Kf3pu{9d6CG!TxwC zQ%OV&A70h@i%Q(+)ZWC_=SP!Es}gKbk#Ai4b6siOcG$*kMU^b7pM)xxF!AGGU(b^J zU0`GTo5ktCD%jJCbz{hA0VUF>;powkH2z2T*CYYS*vl>oAO3$QHY$ZQvay*s)b|*X zd{K`WK3Kv+O{DWu$)yjjSnJDdg^3oa%(k_~=QrKy#N&!-WVwKWEi<_SMT1u#d+1X~ z*cI-u7ah9sZE^14J1KUBM7OxQza`M^;mu}HpKn!%dr>bv)N9k=1-jVp)aU6obm*^N z?z67P@>!xF_AB;^f3;dhHl6ReToM&^JWfW){@8Ry& zgQSLHaN2S^N#ekPedh&aK|+j|=12cPTWJMBH>oC>fkA0c$Sv+L>*K<7Aq?!^2Z4Og ziH!8x5UcJTjkm|-R;v8x6z)ccqg)OJAji-uruAWxX2Ij7e!d2XESwPR&_{TmO`afv z3}K2w)_vC2(<)IL^B{}^&Vlf?k53<)QY6kORKc=+XMS^2JEOyLS-vD7RFBoci)+aXc;YxA-gOF$++XjDDn&ZwsUIi=0mmlJLG<0I2h*AYKN{Mc zk%w|Uv#VBhFMww9{VYhwOjUv?pp%ic_=wtQTW=IXYd5`a@`%IcR*Cp4G~ z7h&h_C`1Rzz_DQUX6&^C?V{HF{l7=g@1q=faj8ewU`9H)~IS--p3`OH@(06 zg#E)}YR-GLObx%1H4=AnTdRrMtQ6VwM!mVTbSlQwU0w%Y)a%aHoGeMQd}iW*oDm|O zv`8IJa6sElAB6GQz@Jhb=;w}vh)6m3I?s7G)OG68PDiPu?SBxs@(3 z`V$)G>78y^bTz!99^epW`CIZd6T@UJkt1#AoQ^AZLhj}IdvOBAOYhfjANmIm65a4g zfb7tcc5LivWm8aQMB!QYfKq}?2Zul(szo)~i|74=YnMq`CS$n_$1Oxln|BSL{i%aj z-pMwFO4_VhcN9kJpH{0;EJev^b`bApAiJfR&e44H20jj$4ABfqMmP7F6-BpSlB(C6 zH|kEC(BVkqShx#`&@hav5W&E+Lc}9ppyty;ZDupjfA-~G`*lavW4|3Z;m(JLm-`15 zglV;Eu9ytC14OBj@J~|q`@CEa#6vjoV8(F56||e)on~0bxob)bdl;+vxpHn5wVyA( zR^2C_Cwo-2(DQm+AYBoh5gO0!!Kr3ah~aG*6nW-?jVU4Ytgxj6j7{Ql@V7I7-a28V zji(iQWpwYLDtb$Nmn?bo{7TCYrZ!dJvtdbO7^O6^akUv=!B{1LhAM`@0aJs80`JnC_0EXbW={&8En3+V&%R~(%X#nF>*vm!wos>BujK@RUhWhmi~Y#*An z#*`_p&3hW;33_e6bE8L?&Qf=E3;IQTjF)B@`K|qGOTyC|P9#?jDP@~<%@!ro&nf%y zh^Q2P#5M`ZphS}|@TpNs%&;T~a-`R1W}}u2)krsPXzb@7oP=p&toHzBzK6b$vHir> zjV?XQg?STQe5g==+_>%`T}#R`N{l@wW=Mg&S`UeN+?Nb`tghdQbfr_8Z4ei=@8J<*~dGr*7P_R52

X_8qNjos4PaM_dZJgI1q-^ z7DOqqve&cjZa3N@E;?h#@|~#UiUkr2lj%3DhUDoC${v?b-q4KmbxCX5bM!vmeeJiL zs7eh*0ZWip9_ul6sGCkh{UDM@z5S-x&4mJ%1u5oMkWf;Z13LvDQIPZCQY0;zLSYHJ z%YLHUfg$|rxeC~}JUO44FnA%x{IZM7U&#AP2a9OFL_n>{NJPt%gB6=(vpcZ(D2$67 zk`*4F(7FZXGpnOxx9JN3+c3!{2%9@Hg-{HTF3RaQ!<6_C%sU3;ByRKm@Wm8IFF8~W z&kt`1q5;g3z`dB5L}G%A$N70nik#FDiPRnS#dU=UNdYGUjGhKe(Es@(g~aNZi|m+E zW2;itrQxw|i>3*{=S0O1#X8RIB(fx2C`o}7!>C`s{IlVe@@dqeF{x13)0wIzr=h8d z_|fX(KTfJZBWrUc&_XKmwXX75@#G9EnY+Mu^Bd>iWTyXeL++rdO~tHtGD@qFRgGDH zel7Nr0VnU9w@Xneg1p4(cuw&7>{XZRaQ`sti<+t|+syaiL}}USr&`PazZK+-HQ&0^ zCbo=URequa^2ZK_n`y+7?V0&4qzo+5*gP8B{FAb<#;87m%g(fZ7^Gq6vTR8k9hf44 z8j½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 CR&W|rm zAq{Q$4^uomu3vqL{_^M;+v}#C6u+2MvlhKJepDCuO!#i^`1Zkk=f>vI{zpsT%<-ey zn?;J!md>9C8@_FSe)?Jjx1Q}qSAOgKxm|kE+3A>a{ll}}V&PL8(DtX*B-d>>Njv%= zdM)cG@Adx5+0n-D%unsX=DC&@Nzp9_mwTtjhmDMrn|?>>*U$YBUM;?D79WP*o5?K8 z3*1ctE}PDyf#9{pr;!bshJf3(`BAY)iOc?qcV(XbaD(Gw4IAB9Ng($%AgCJI;5bmh zogwD(oTxn6a8gDQ(4n*K^HEH<0xGtr<@t(TjQ^6eC0vmYf!ypkiny-AvB+(=?2Gs? zzb~|hTP};pF7!bAHXNAuavAJ$Qh$>!FuK1;2i$*og>qyC|FQ_gfw#168-MuSu$|7w zxO+^$B@0L|Tn+ilEt4uBgV+P8f5BfWTDsNNA5u|jG814*Xd5GCn}kEgF-29<*;mtL zS7X3kZ|ZuPb)sJD9lz$lP$4k)5Q-pctr?p{9)&^PfI(^;<`t6nDvugnH_i+@(vLzC zVqggG|BnLyOB`6P6NqAW>NaA+*$P7hcK;|RgY@2I$-^a}er3pdEHf8!@Pe=r!>ZkdzQmbchM>zZ`M@jT-mQxT3#Sl{);bzn1+jP8S;mAsnYS$_!_8 zB6$<80hr@mYuDrUA4iUG@a*cH%9wb@D;cHppUZ@KDCMjC6M87^;?bLH+pe>GF4`<7 zYa@K-DT^g*J~mSY>Q@;NE=?t7s*vT`m+aU$=dMWoJJm#Yb+L*y{^lLOruWz;%swNwX#u8Wj}Vw$sPR>X^KMi7@Ag=W5=8v(Dg`TRF$$JQ)Mi+ z!|6G?26;~~DN3c~?ab&e2hRp6B(q>5u}Z+(rqNjkcmn`IG72U{DNDc29>qAkXb?p* z2)-g#z9{k=ZFVqg5Jb`o#z!f&6d8|JIOsR2Y zXq;L~tO}YM|P7vd#&F zhMRB+0`Zyh19`T?b#|b7xN(VqdM5ioqHRx|HK-Q;j7xwt6MrDsw!O{*R0B6E;UCEO zfpN9{P-g-{!40|i<1@ZsENrXm3_+D}gAzXVj6#f-tqWLU2C1Q$$)%8%+dufi77U(w zt)W5BMVJ=U-}=HFEHsm;p?()L7D;*AE58!J^eR3|9f2R_w>48`z}4<9RIi!bUGP{j z2}1OlhRbx2x*=bpNZkV6QSB1Tg80>5?B)m*=~;^N5#&B^vNPzOe=1qmuP0vLsmBsw zZ%MF}<;RwK!t&j>i`V6qZeeJjd?$Q#Sa6>Za+^*BpV}Wb8bT0x;~Ky6L_2ly&n>*P zrHnf_W>57y>KBT*@qtmbP7&IuU82Rp<#x?kS6fmS622A>wr4u6r2R97@bOf|7TE~4 zQ>w=^3!M$~PSH!Y!`Jz{f7X(HYxzmn$kT`Uv)L9o`tbYtQwB7{?$y1MR!Ef4xNWFU zL(@Q#K)la4fNk=f!kv38 zr-|L6suAiU8X}$Uq@J6hF^Q^QNM2l4#8I$GMiHnbE88p{>?KWw@Ezro=Yl;ln`WlG zOKs*vO@CW3&q?P}_LMlba&1{p|9Kp2GQZ$c+1vzo>&Aaq`#qiid5P}EkIjSMd-s0o zl*?LvX)vBquR*}5j4mcjm^WYTx%GE6Z^=?e*o=RDeDTzetj4X5Q;l#*+nlE91@cVn z*NCH}pDTC%(Z`MRCw_0Pg+@4D*chp`LmCExt~kcr{<<=*cX+2yNc7K3 zdD@pUUHq{$+HyhW|F|{A$78^GE&tCYPo8E;&Y0#?&PU*FmB#vEB zb4uf@kRo{Rnr2%8B{0cKE3MEbFngVLiVG~WQ;`qSTq=bLjB-+uylK6ad;~_hsc-J4 z-L9hgpC>hI6&-<4UYbPJedfQtZiJ7AXF-66NBy7baWRA9G|wtof}bU6^;P$YTgv|m F{|m$)^+Nyv diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties b/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties index 8e1d05d4..7d06a50e 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties +++ b/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties @@ -72,9 +72,9 @@ gui.MainController.060=作業用フォルダの変更 gui.MainController.070=処理を中止しました。 gui.PasswordDialog.010=パスワード指定 gui.PasswordDialogPane.010=%s はパスワードで保護されています。 -gui.UpdateChecker.010=新しいバージョンが利用可能です。\n\n 現在のバージョン: %s\n 最新バージョン: %s\n\n最新バージョンをダウンロードするには、Webサイトをご確認ください。 -gui.UpdateChecker.020=お使いのアプリケーションは最新バージョンです。\n 現在のバージョン: %s -gui.UpdateChecker.030= +gui.UpdateChecker.010=新しいバージョンが利用可能です。 +gui.UpdateChecker.020=新しいバージョンが利用可能です。\n\n 現在のバージョン: %s\n 最新バージョン: %s\n\n最新バージョンをダウンロードするには、Webサイトをご確認ください。 +gui.UpdateChecker.030=お使いのアプリケーションは最新バージョンです。\n 現在のバージョン: %s gui.component.LinkPane.010=Webページの表示に失敗しました。ご利用のブラウザでお試しください。 gui.component.MenuPane.010=現在のバージョンでは未対応です。\n将来のバージョンにご期待ください! From c43603153aae95ddf7783bbcbaceddae1191d9bf Mon Sep 17 00:00:00 2001 From: nmby Date: Sun, 14 Sep 2025 15:30:43 +0900 Subject: [PATCH 17/35] =?UTF-8?q?=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=81=AE=E5=9B=BD=E9=9A=9B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s.properties\347\256\241\347\220\206.xlsx" | Bin 44251 -> 43936 bytes .../hogandiff/gui/UpdateChecker.java | 2 +- .../src/main/resources/messages.properties | 4 ++-- .../src/main/resources/messages_en.properties | 4 ++-- .../src/main/resources/messages_zh.properties | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git "a/xyz.hotchpotch.hogandiff/messages.properties\347\256\241\347\220\206.xlsx" "b/xyz.hotchpotch.hogandiff/messages.properties\347\256\241\347\220\206.xlsx" index f2b75a713bce869d239f0ed9049b98b55f8ab662..4199b36513f66affaca15ee81dc6b16465c4b2c1 100644 GIT binary patch delta 33163 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 delta 33491 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 z z$h`C%D$CZX&;bdjPT^;L^my`GJp|@lQVZmpvf6dtl&Cj`*Ma zH|Jk-hi3lW8Q495e-gt4Yc=)JhleQ@0qo@F+9E{o%C!9_oA1uJcOjH_xp{pJ(mFer zRbpSooH}wOFvDWI_WC0MSE;X&2wen?(rtuiguc1oggg{2Y9Hm^P?{xmti1kqDrL<#V>Y@LF8}1VtXx<;8FU zQHm@tydo3~#>~-A@A`f}^)ulhKD+42`a2PYH- zsR!QTBR%jIA9Zx`)#RjsxA?n`{<`|eH1HOG7vf`C18)-n1gCt?xNn|j3bs$tp!! zZt~WZGms&oXVh>8gbt*Cqw%vg4j1E=Wef!txrgvOaV}=Df9i{c(5Zct?#3JpWpnLf z^Tun;Li7$tJD9=%QZ%9HKSFi$$b9gMMz0f7mXjMVmxT ze~cp8Z~Y6iNiLpy*52f~BrO{T4AATHca#}iUQi)LJA01nKQh#pb6W-5?sV$EcS4SK^=gf=3wd3$&FC^2RfaHd!@ zB}>7*H$P4|v4Ho6RrKj3L!bI|?GlDQ1&Un4oTC85V}?071&Uq5f6(YawYh|Q2cdHb z85J;oth%qk^{*Tiq|9I}C%4Ow3k3vg*7P_c`0At^3kF7j4Ba{j6e&*;hHeFl%xz9h z0Ah2S(@>z;+(t+RRGYc^`GUAic)zgA7YHr0U7m!wVW}Xu(K5ZhKw+6Ry$gvK`+E#l z@FyYL^J|1@hKTj)f9iFlxmw~~mE##dZucEvrk8lz5k=c2z23MMQM6qenK=L@wt0Yy zyiaQF|2aGP#D_DfxuSt86s+qLYdNU`-_tnQy}dX{-PAxaZEFK5CP*r=F!=H#7wh8Q z@6SKHmmdtK8J5teYhN&1XQ0>@jM^3`_64J+1B!jYsOf-efAa+)ZL_|xRPL7z4&129 z8G(eieZ4I_Lm$4Our|Mt!g7AGYGp9ZaB4nXdxu#p0>$28R*OKfcbK^XDE1DcoB^uM zJGAolghqb&aT;&Vp4s(a;V6#Y|}t2_16tkd&&+JIm6i8?*WRO zVQg3ipx7DAe3YXx?jiuyC!EJ4J1(XOH*-e?dGQ+B&YB^wimtGI z>!8oKEfq&Clp88pv3jE76O3C>9ohXeN~-XFD#=oAe+8!x(+uV2)3q}gO*&BQ3}!s;dC!4qbVFGggj_8OCiIxE|hb8}%_zg+G&E~(k<*icQ+EvG943y8$*;Kk=zhL`i{+TdnY2^1ULtSW(G zgPYwpP-Ji$>Y7We8wG@{Dv~mDed~-H%1FzZk#AFn?&_YGG|w`$nonm_PR52f0g6m% zeu=* zNd>BJ@~OUFuss5*Z}O>rw(wd+QSa4@!Rry#v?p|LIJh|U@rmC~fKhm|!tJQDzm(nE z00eo+T5dmxf|{Jbk!0}(O4-56EW?obe{>G^hon9Sf~0B=1i!21K=8X(4rG=ge0;i| zt<1ItC^|+oOICn*vNCa8fa2AOVFQ7xaQ8R-Vck-66pxKt7!YnriNmYX6C6n9FcC#n zxV$PVkRT#D66sN2cO(pW{!DR}VZ?m8@&(Mf0n_o znh@)MB%uUaLx73LybXYP7z8JoWcNwk9gul|*n)27Lf8dc)|T#+pQzjov*Y}j5jyrLIyc>|{a7oUDO zFb8G`n_21}t2qb&iZ^}MK@#^^M<(_q@?r-ux*9IA(m}NNmbU}#`dd`0f8wmDXS|;N zHtq;4)r%6^+#@N#?Y0ReT<=DPH!_rwPiMcF*uc3!v0s=C6;SLKWRWwg zWz|6Stv<7|YM?51#J!c)kd(GO@;x`F(h;Nzg|ccC)8+~T^4Wp$JVS?V1l~zT`|gdC z$;2Gx0kuL_4HWx=(R={KzF-7mK(+b8kZ`tER?Us7^awf{D3Dd7ur|MNF(Ur)iNyY> z*Gg_=s576gM+(Cve*m>YRt*$;hhY+cV(%~~`#`mM$B>e?JeDyxr_wK^3Mz(OR#uI2 z+FW8lK07c}WH_{q$f5Oz3d0%zwL(@66gfj;KWOD)GtDhrA0e+MXK+DfFHKg>jjD4A zj&9qJah#D=qp&8w@U6B14*kuXRpP;o4C(08d8nA$S2cm^e=jAc_Ek-w`ra|MK`wz} zn%(XS1J~E)9TMg>y(_FeU*;B7x&}qJjf8vHBW4Ik6xZe){&mBjg;yD&q)*ZhqAm*5L$M0HM_stAl=F_T0U}cxehVNrrD4Z`VpAF!G*Atu6pr|t z=YM@50pD^)q_}A{Ms!(=5nU+1Luo~ z{KYFb^{r22-C)m9{qxh~?q+x|caD>^nc=E@Iv?ZD4QT-oo7CL@1&U2-l;=S8O*-DN zCJooye;RtF(6L|t{Xfs|J{mG+$h}~W`?hiz$^BsW=AHeUI}+P6D05O4Ex(*+^FROT zZ(IZ7UH`mAGd$F0V3_*%P3C5E2~dBS9qZUFGG&IW*rG;?0~C>uTKRZA=2c+Pbeu5t zp#t^=fQee?t%MqB@9T{K}z(a?M0N+{_S7K3%JD zZ2t{(6iuoo-V?H-Nmbt}yEX!gVG@99=)O*L{p(LLtsej7?BsVMNLYKm{*M{J z!#8N?^HQa6d}Hm6@4xoicV7QNOI4nK-VFJnG7S#1{64407a#ss;zK=Ujnp)ep{zDt zf4cTFLudj;er93>0mOc04kv-)ncwh5>t^BeG`QLF^PC<({_>|!?j2vQn| zo6W$E^y&Y(d5Q=i>MUvxBQtQwi93tAe;p1KcNQa!2CBTXT;1KrFK*f}`S?QR{U!B<GGF7lm10Pu@H{@3~GFTeiVzeyNy7e4&t?|2LC=f67t z$;rj1r{RP3Ka3iZlQfX@mEwDN9J>_1tM4nt*W;40OSduvk5AV#i&?J%HO%k;#I%5U zDjcX43=dG{on^a{;o-^_xIGmxf5h-0=W;LRsuwUkTN#GOr)yi9vkahUH@RUHkU;U? z!*D!6kumkXgX<$Mafl!o+6#1_$=wU+shX1853YXe_M>0q%Zt66y9enF2udq3d1(VX zF%!3rho-FzPvq0JAD9UcsNr1+Kr417K&{x70M*c^g=l#;yAp0*%_tyMf4b~l2`bYt za4f&iGuf4FWymX^uKmoM4gfX0D*O!Vm_BxzpE1Y(5@c4=oQzGREueULX>MR~i8cLD zXcjSH|NJR(+IpAF^{p|cl;O{xeAtu3VFhw-uxF@!cl_ii?B(H>e_APK)K6Q1@abQw zo2=U%1JOeM0jkNm-7(nUSd+0iQbdV#S}`^U{6IByOQ#o%=TBK<7T;{d`BOJ=OYY0_ zr>sRo_6-)5?EA-0gBHzjUt59BVT;-|SwK-Iwb7-K7k5%~{sa_T)SM^+)nL(1*%)5r zlyk+bU2CbV&aP4he;(1x8a3qIU{uLF$j`dBwe#IHBRSf#R~skxSrMRU1!Uvd07XW% zPjmuBMzv3La)}iquhZ()Mzi6HR}8_vu##9dD52iQp*fY2Z01QuPM+PPCpd>bDie$N zT{W?Y-?ftP^9&i~(^+mLpNZ$yt0SQL3%-%QcDEf-ygM|je+A^lEQF!qfhr$}d`OBn z-@UzyN0A=7u=dA7xBoT7x7SMr6i{FX%r0EOzbp=Z-*p5b`0uRiC+54OEjIePoeGXD1R^Ny01T>=@KmO?GrqMBbJM ztc(rI!-)sMe?`xRE<)=4ujE)q{^o3$A!_D95Ys;p8?76e0#Iy2qf-EiZD?dhK(P(Y zrDvd;Y$%-9Yj3RiaE5EM7uMI#PTq5GJRi$jzW;l6{3vhMTJcfO1iH-aTRVG;w~Uc% zf7~nsfuhlOOO5w=VgX*8zX&ma79z`PkYWgf_le&iP< z^)={7%6@D-_B)@wczrx_PAiZ7%1U$Sk=gmI|Jd(*mU!%UJ`-K5d+b*&PePTm=D>Ts zQkhq}f69zxDfCpek)=bbHu9!!s7=;jK z4p76~89>yRXNEfiY6W)&)L>tphnHtDnf1?T2e~t@W_k@Q&f%Z!P2`;=&yeq6uN{rD z`Id;c=NYQSr)wjcjX6*>BHN8QP&^`=TZcgLe~4_@GoTu*C<~H6waA09T2?J@ZWoX& z852szOP1we@y=m_HbeF;mUIg#FY@JjtG<}wSLT5Sprw@EiUY-FH1{ZgVlx`S1W;^7 zyBsD)C*5PxolzDw!Hnl0{3c<>0!}4kM#*?-#v6;hJ3rn}TC#vy$@EDlzz=e5s=Bgd ze}+_<2U3MCX@Y(L#g;SyzJX#(+F>=6$ctigw-0$WbVylOMCGoNf+dVeVXdl$Rmt1a z*m9d{FKNXBc~ZuTsJ2|Ah?=Y%K_;(o%PQse&c3Yc#xKr=iN3LR@X~YN4e4rd9qFTq zi0a#NqT~8*M^xXI<4yfIQbhG_Io{M8f1HRau;q|2BrPmzs%H?W%gcWcm8yoi%f5D(2ZTfBl+j z(r`UqPxDYAUE519f+LE%xaOfEio3Yhz(*8!aXnl|)Ma&XIn?WRwA{sIdQNrm0+tH% zb5R$Q@|Rs4llH1!UO;ML=r658s+X(wE3Zj2U*q)z^QD6=T#YE|<>vLDh~i#uy(W}M zz1&1bj(IioaycWsawy+I(ax%Ne^tF)vb^e-XEKT_o+D=4($P&#mC4f7)p$KHE3_^% zukl0_cXYijizx2sTE8Drye`vc(h+r89o-!ZhTF?tx1Z|T1q4=2*On5u-A!1(gfr#6 z8XI_Nvo%`STh|TD(n+FAX2ZbK6nu1Io8s@XY?Gt9@a-s$Li}OLM@Z@Hf5+=-4kx55 z@r(`@CIgZCHHRlNkrX0`IUK!hj40-CtW$>q%f}%XoUBf2uj*SeGU-AFIKPyGPYGLhQarvtJSfR%8<=HCp$LncsE2L|evwTS4 zY{=#8-qwafA8puGZ-Uy=Bb?0U1$X9%r0n;^XC%&#l`2^(K(L`|e|5AQR_pc0vN2ECQ_h0}SyjF8#_#GE-uPkj!h4kAjeI&g=4{iLevnp}$ST6r{+#?_#zb96HD17$=W8XkG70q6QC46t^ zX!lSH)?)pi(!9wA1jByIYaLyPgKz&o0J95U-wl5r{lFr4C;$Ne!2kdh0001ZY%g|I($stMtTQxZlcQ*B)|LWtQYN z57&R;@IYne&Rm(fa;}+SQE1f;{<)-hBAO2+T zCd(74Cs`pdrm`9HpJoPveES?9}5J%vKw=UcZrojrDM%IV1U*;)M3 zoy+&83i#jrsjW_5-cEHnJ+@uw&1~JVZQFnDt-Yyqc9YeaD`pE{ZrZa4pDAY3|6Q~X z@ITqTch9DMUpVP~UljIrf8X(~oh=?oW$lh_+qZqOwXpAtt@M-P=N+n_ze#6LC-pvS zpLEg%TQTVIRQ{A*IA&+;&H|{@@2eQh6oOF^_6# z-Wz%E4&48+GUg5quT9>omao+NE8f6-wKQ2RU(z2xPAhlt#s-eRGj=N6ewwWyi{Wf{ z#YXe4ExIdXrUPzM9FfYCYUMURC8mG7mACtH`9i`C37-(zRC!w>he<&@b_`9YXY;e2 zd^+9vk=3OO-ekF2dR#4C#r9Xrcj>%V9)Ys87iIjab+C4*zEPj;uRr>^#gRnMI7wFD zPI>p|Y7?_3venA9YWde{<#Dyr-*Tw4x%}ya>AY$(Yu7JTOJn*YDDKC-A@6_I^Nx-V z{XrBP$!@KBkRvI_!3w$#ros77C2^!`<#M(BrdnBGM|Mcf)l@^Nj(%vUYH6f)ZLwOy z-Vawx?`Y%u%hAQ2DyBP#N#SYA7CM@-`G43atCgQC@(&uM(7TAFYNf5nc|8LWR?uU3AomLF8hFRP`8)zWbN*9WZSShaMgTDn#(oo_ia z&8H;19Me|?6steLxw=;^U6Mq*RV`mtY>LK*;-`f(OLyU2{pk#&3f_|iP-w06+8d7D zER9dZ`RJkVJME0+4<6lazH9s@zH?$}ND)o*{b<+1wR$70d_FUZ)wTWr(+F;8g8+-+tv&A4&YD-VRkBp81WF}G@Yuv#8vr}#YM zG?Tcc-HPa#p|e8l|);?KO4 z*snlVa36w0@fS+<3I_BF^Umr+51tCCXKucu9HMcqXPb*q(F4w2_JGvzIP?h!WJABv5|{CcU&hV`Ui7AG zjSf3syWLMiRhG@}Ut~6sVWHLvd9fAYV)I!KmG;vGXm35?d3@FWK<>o{wQ;CjBV0Rc z!R~F6-#UN30)s4Ol$z)kLFikry&>?lM;Pxvqemq&Nc_>-;=Y=92Qev~?(x?wGJaeR z_}BG2;tS;$)ymJ%Kdn#9|7x+UPh%j0|JnMl&uY&X+xg}vpQyijz|Lg;nsRy$rV1(5 z1N>oSur^hyRv_0y;|55Ce*&l)Vq(ZbwY&_Kmy3Te1o4Qw09^>u3La3dWDKc4eT+cA z_(z=uEuu-`@f zag#KfU2M>wNnfH7n@=lGPxZ>+&)2g_|isLx`(2&9d6I>3<9v;*}n*GF2O6K!#n zp>qIflNxaBmlVW=5xx<+W_0Ag18F809#T=$MOjDE5)u+Y|956#JCr7{_;CtCo@hqk|QvVjPtW zke<5PicZlL9!aJ1G(58!IZaP&ADYT`2{%)3AYt%G8tYi<49zId#2c$%e_v2ci>_nq zRuL-a^8DHbhgJ|I%Loo@9HC5skI;Wf*y8+WDGVi z*fRBOto^Z*rqk=ISg#}bT&L|gj1Ljdi{G#k^JdRxh`mqal#fkm$r$1T8zWesu z{YU?~F(MkqJ9y~${;$7jZ@8Gqw}qs=2D|D^WwW`0b<)Oi7-$Lhlg?Vbb}xT;=_leG z_2#>&qaR*7c9cijB`OR%ja=HqS2r; zmnrsURc&a`ENCGa)sIJWXRY|K2iRcN=GdF<-MH^fJ&|Uk{E;5ZIr-%#GLhq7J7J$L z?5kETRV%j`sQjF-2hH|<(bsf1@BT*!Y?3bM7unbo&fS6|O1?CB1^r)AjpU?qQe4<#V5r*i*y zg!g~AT7Il(wUf8nB}Ozn973YgI2S)?pCG!!-vtFK`$oOj<3 z;Ea0x&`}?|@29FI;7WfFs{JM3B;<}gTYZgB!@f5~JB|G&tJ#op7EpbCM3&=f0$+j3 zIYXKv48r9ruo~7cKB_MPy?q!!_kmx3k3lfBynH<_-MVfKE7DVcGTfC2(x zkmMNt=AForq!@mdeJd5c12O5%I-4%^FbUTeDZl&MH-A6yzYl*M>^PAzQcw!54^Gw~O1j@8994K`5p^FqCdo=5ASfB)|2u|wY+w$7wetmDaI zp@8pTnq)+SxDAOopFY)7zzXwO{Ev{u1Lid@2WVUzcWyjnL@Jlvacm=wNX&5spgf(R zfbpNh^l*HM0QZ0NCk-zjhQ^1zOqgQ>>_0G^hVYY?_PAyqP+?nZ#E2Gm25Q>;)9q1K z+`Rb?v*tTv4-aE5(yAOXnze0Mjw1}P+8j?gr@w+4tHQrRKgVH}(9dz?B=mC}90~p0 zVrp^dBh)*NafE)3BOIZh<4{KM=k42KNJr@B_&Eyw9H)O8XG!)~&`lg7zKZbiHag?P zw;(=Fd>`U%;+rAbz-=dS%5gSeX03~TLgCzVamgKqP#L-nW(Kv`SCafWxC2Doj?%W_ zE%xOEP&DX55;60c8R%jkjBjhqo+FKNt?W6mvEvsMvP;~FNX_M>O)jvn`lh9@O)hja z%#2K8O$>jSZ*?()jS_EWu#v*a?A1IRxwyB$=B`BW8`3=B=OzszW}Em%L>eUF!3SI6 z>wbgyg83)>21&Lhzd`)yM@C4(!u=8A%M5u#iy3H$JE3l3UV7b>erVbsCMWUFoxW5j zoX6n>4#4<~y$NbFyz0n*489tlTe^yfz@Z(0sOf+1a}1ub^T1@GV`sYH!@iZ^EN81g z40T8SI@_5kc99ELI@2YG((N1vyZK!7`seq3kw1ceI6qitQW;z+ruWPnTEM?nMMukR0|1RMiD z3QEAM@eiW`+$lef)1db0{Nv6Bb0+;bm_@*&^^fBk?m(!KY_xPSfK zRrlgj?bbZ3DelywKM=IU`t$n|=+l@E_x~ro?_H&~d=(y{?My1-P9d;ZP8+fr>k@xg z%tn&Mcs0y0$8V1`?P<`UVe&KWs#ZJ*je@1mKVUwMV>sNgl&g8L6LgPL(ySr!pnKi zDipJ5gHUp-yI6ovmHgfLU%Fon;T{5R(c!%TvxFpg!~sB>rhOTP#5lEpfsTtC*+n9rfx~(~*;|>}c6JK4rQiF>*dpUJK z5q6Exkrw2Wp#6f%w^O%6$iULv?zFwR-D!JsyVLeK%qTqd1BN+i=~lbli?eb(Z`-Xv z3^Vh`D7WOcH^G#D@6n{3)zOHKyMs{U6W6hsM5+7 z5NwlV4hXhMvIqp*BpC&QZQ@&*s7S&s8&^(Sj8`5z?WjWoB~z-oZL5Eorh0Ni(KP>b z%+4pSfyR27Uc*%4w$vKaoM$i8mw;BWjrrnUNy1QXuw`Co5E*JLTpS|9L?kl?Ck&Qr< zB*=$F5wqY{1FEZ1X2eB0RjasAr)m|K&{eGzV)`J#HtwD0-VmZ!uka)qGJiwd16fCs z<6(c&-693xrU!pMx0xJIWTP!|))!v!*|-BQSC_A^z8$T-oj1V2T@@@J#-9U5AC1;J z$~}*JM@oX%bKcxtRouJIDEH1IdLG7YGwnWvqbmAB`b(4ofyTcn47g>Zafet()>My8SEBF~ko8Pms+o_S^7% z_wulMnjWKa!f(F)=JvEZ{v$#Jkfmv@zaKUtZ|+_&T~lmDEb~+JPdTSY)P*UU#Pdff zVgy}APsM)^{wItddB3NT6vw&5+U=hK-a#d$jg*U|9FsD3$^UPdV@%9xY$JI7EM&8w z>^6jW2kmRjPt?z?1?W5?IDi=-rxtm9vQrHJ9gWu}O2|k<@h)t*J8!(v`PH{~$c!*Q zgk(=^Q~iiVK|lN%ADOKOA%?{WB1J z1m1sMb%#c4L&#h8gm}-yf;Up4>oz=%f!Ri3%-Zt9+VY$`@XUKQi%-Jv!Fw1OHTWDO z8GlO5y)yKv|wBR+@of=DI5HSPRRKdGH8r5Kh%)R>va5p>6IDAI+2D|weF znc?cvj}bi;)@@zBuN=h~GWTxW@t$3)FD!r4W5}+yA~_+?+*6-_2Pq->m7lxmmS-cj zacs7Vi?K9%T21+<-76zX(>sPwoDa{_gPur4h>7{E1Jbo(N`7ncLCM*Y4^C_i#9m~# z#6|lplIbYN*pC6D(+W8(1P`X{^i``)8WIXPA!RF+3^~d>xO+VuC$uG$m44()3tE4G zd@2|`7W_t03?XN;lG@~I4?-=UM@}+JwX^&tO4AT;n7pmxNg~dQkyUTA97%{KiCYp| zwa+m&VAVLq@l|W=t>8=YxTvV1Bf|!$6u3`1@;9RjqzN1cK|o1Q#oH5UVdD6cOnvXp z<#la9knu;3o%RMa#$e~x+!2XwKs$fVM-n1MGSh{Lc#Z`DppGoLgO6jsQc|InvJY(N zBi(+adTseaeYm_ak?Kg11*VSSkSL3u-npCJ>he91(+2iut^&Bjcj|B7wj-kWNeYSOzC_jr z6q`WOgi<3>r7EL49NQ?t=&<`1bp;;yW2{}Iq7Cj{)WkrZS@O6*VsL+)pQJ4B7-p=D zg9fdIik>*AdeTElwa5nC(UU85_Vm#|I=(;m!`AN9e{cO$A=k+x-p%knVXN&bBI#NV zE^yF1;PrcgJYw+H@lA{Z{6?SzStva?Z|@m{K)LRk@zv5a6^IM4A87A1|M1a7HQ z$h<`Eb+-MvwegFH8Pb3CFGj%6o!1?av3U9^9hwQtI)bKrOjN?QM*p~>Qv}VM-tUTZ z2lDek>)di&Z?7#MEcJ0=MCL%_8Apn0RsuLuY?<$&n%1vLAg)I2j?)XQ(8K z#_@>=kEp4jFEj!SM}jVI;w5&2L!hH7T4>iZe5#J504@}Pv3$lyu!D!Pyf7!EI} z9>9uQX;bdS)B1nxpjR1i?>r@IWt{~ptP$NNXf06N`@q#-`#@E zLB5p{#pLkqXLl0Gox~|WuNVlNlJjgaIe3$E0+nBz-2;CBylZ!-KoRfG#riz_0Z4h) z-By&6aMFmNr^I_CZrBK$!yj#BIh_1#wpuTs7>EaZtaB_@eT)Lxi?+7ww|IjoW}vs2 zNon^x^gZ}UfkG6JOv)-EE2PY#h4t&w@klvOi=m z$RU3$iphV-bX}SsRcq)n-|Tu-^FXpW6OR@abs^KF1WTd$S;u3SJEGgPeSu_29}z1` zshmZu9Iuw9yO(kt(g`R#1(J|bkPA!dpnVz@_6KHu)}4gPH;{bKxWBW?u~6f38w@HO z4z;8zKNE<7oFZ;{Ah(ph92f7aj{wE{>gzZ0zWRUKzX9p>r3xU6T45b4x- zn^>e%vdAa1UA|_?T_Dm0g*o{u?&2?=csnV7Dst`_zINQ1`=ul2ca7gvJ^ zD20Er>OT+M@toOBbf1JErlBtv`Z@f~BJmB*f;JOW3oKMNfwUQ9TQ>29-p84rQq*W# zd`RP1h10}~TC4hDF#Pi&e+BmT8`vWg7pGO1%m@e$W|J37)jeHF3vJ6jxl(B=HY%g( zG!`03DPg>sNrIfoX2$(j*m*D}lR6WG;ii8zIa(TN2sJ3~dyd26y8m;eYyY$L75z)v zQ6mq4Ov64)g3I-TpbC)*Z{iN>+gx4ffz&IVElumzl znKPpO83av(J48C()?ZF=C*ZOTE7i?~d#Q)3B`AF%=XV$GV`g??1L)YMFE$6VaF2%5 zbfae3ym#xmcN3+6QQHl6P^ceQ$f0uh4XZpJLm0xT{81!LSr$Mbozl%Vp;Z*`Lya-A zj-xb~%2L05w?GH?3J8(g>LZGk&f$L?UjRTD2oh>|Q^Sp=_H5W4d9yY!s{3*u%BD^t z7>=jp;aNA4pyP)h&RM-F*gp}npgU67Li1m_+^LLhimW$^8KI6dAA$_yRJ9wVMXlQT zwf{bEOqB|y%wK~bugbkV|RZjYD4L$ zDB(i18a?@x5;hleR4j%soPJXNg!2FQ| z;5Jg#2$m$C7Dt#^11u1*l{|k#z_d8R(%k`vT8AVjvL~{9IJfki`iSzxl>WzELG|;| z+DlX`M)`1A?-*C8abZwVe)cJ17L+xUQFokOE71g-GC#sH0P64wDpJM)%6 zAu9V+p4Vn~5Ni#e398agrhp>{6bGb1)BixVcTpbAatdiwT_U#&vY<3ZWYskOnk&Lf zgz5Njz4*GD70EbDm5xN%ITh&mCU=^b=~J@^ov2N`sGq-#=uU7DK6w5418?vZ z=O(Va1VkM;N{SZDi62ojtIMPAK&d|e8r-OH)`GkUy&ja|Z_N*pcjeyNL_Z(eyIonE z9H(0L3$Ip}1vBH{Mzl!n@nrq|EgTabFks?qJMk1D5!{!PI}?B58!nI7lWx{0vJ`r9 z_hJ(#Zknju&9#X&p#+Z%wv&f5g^nsnw7*Wl&i`X zI)d-7K8_q>L@){q-rU45ZC#IsJ|Jr}F+_q*me;OdWtDtTLkJFG@B<@e)XFCeM_2ls zF>Z>w^Ot;v$DDsFA!>pnhBzEt%-m~WX%t8xikmCy1g(ou`qFX(84y)_0xVOXYp^gv z&Is0lO(!kxs+z0HHcp~}G5r3q*o#`wr$U)v& zNI_aFIu_%XRLoS?I@M;8s>L#HQJWnNvjoQ35Pn9XW{iKYa8|~H00jptP1K$(dxMu( zm!BALFn(R7a68MYAoG~kb)6f1JA!y*z7D*1hw}McUYCkOG-2}S+QejiLED!lxODFN ziC2cyx3VAuN|y7Q6Kx8K`?Ho!OYsY|T3sk}g|jBs9D1MqNNw%Q5?ncdb9fvSR^g6a zu1!pHau|OchGZ#Q--P2+52m!u4qc{pdEy_*5!n$0WXKi}s9nrlUz0h8w*K@kqk>2~%B z#^-;ne@Bz&&A~c00SU`*7ydE8ez^}lWSV>YK$sb{8n|S8%N2qSLoXr2G9k@Ou;b*F zeFJON;Ei#bab+yXJ4jWlAlVUz$ozmP4(>AKNt7{OmpH8NrIq-?%7l08na6g6$MMOG zd+TRPG%`6#MQ=+8dV)=KhIwTn(2peo4^@Ajdjv%^bP9!AvNQ?4W>947U_v^n32tAA zO5vW)p9)(>yPnPj={ZP()Jf4zEGeI#9;pj&J4L3^4^aS~ML?0a0^*=@Ttnp9^E2t} zY5d_yo1nV}^49?BP__)7oGfoSdY-oJKHi-kga%;9P`4uod@WPxvG6MHO=XJ!1`&UI z#gtZ3P6JM+eWFf%plq+U7I83_{SPEl@4>_wUfGL+_vGErBwgLR3JD4bhj3Jwy9e0T zAf|vx5zWYMfI0f$-s%!yy@lG$liIDDh_Ch|1vhA{p?=C{BGQkHxNlwxm~(Iu89uzJ zC6;dG&Dzy>-jDZ#IfzKZWI6I7prd~lM|qYg_j<&ey2S_c(NZ5O<(fX=Q0aWd(t)v5 z7d#b|pW??r(c@)t{UX{ChM3GZm5dS)7cmDiM$8kbXAz2n&?va1?a8V^eu`)E_HP8dm$pB0rDVpxxA)3kvM`a_ipL^wg z!YdPJU-fwH6`%f0ej4u_TB|~XJ`vV^XWG(NF{R-)a1g|J{8cg=uZ2=*lq*Ax6mjKg10W|pkiK;84m^dIPwykGKjb(8!#!L&#D)q%75Lh(}B1W<7r7neNUI zhVfk=1ymg9u?gQdLglY7GIJZ!S466ZA(JWPpoA|G<=>?8W4zwjiL8aclIoOkBM!CT zNPJ{iY2#7;m;erucPDf6T!3ov5Bp@pEDtaVX4tz+^+#|KZOhpRwgRK&uVYX2MMcGi z>Ld00t*m`k7F~a%;%%ujFsqaEr#42>WC$`a(&ip0g7-IyzcqH9n^WZX<#r#>SrTzz zCqBcBF0z#mzz`l@&@_jjZfs#6qyuj4p+ui!pkzf{SvbR=X&c{$XWt zJ@wMn-anFng5kG6$!3+*p#w7VAa|0VQ`b-1`jHZbY`=eWvi>cE@vVe7Hy;mS_Hq07 zzl8$u+Y>mQG?+3{kjGwq{{7mG`5;+zyq*(pqDE(URxt?+4qR|6y<4r^AYHipl;Pf# z&x61qs(wkf-Pl9rzf7&(C0*wIPjW9pPKivKmrWopS_Fa&CI-F*lsSO|>W$ACSD7TR zP(JZjzaf9)cJN?+{H*NXc3(eEMuz+9-&JEfQ81+>G7IV3ZXqr84%8POP<~zJ;ca?wyAXSkJLSl1 zst4@?q)LZ-5}7&$_@M&s;BBf;Jc589iXVu1q0CDMP@HWzpml)lpDDVkv3 zY`lM_ct7{U$rr{~)X>V?e=z_cB0ST;tvtXa|JBdI!35-ni5rBglkc~J^9iGZv?;X9 z_hOt*PD_K@jcChtT|@4W$JOU1F9-7uNHnrU$id2LQ-T;nlLW^vECyic9tbi2nfdxW z-zc3Bu<-@d@h zqXaB26pM^fBKMX8IWyPGto40aoAP`E<$+};p{TgG^Ja!9nIw<W9)U?VFx^|~ zi+)VO=cg9|q{Pt-9zf*8gNQ3bD78B>sSlBVSbIbW{v(gEoIc5RP0!O-$0_Xle*m+= zl@SJitufSHqyPW_+5i9m6#xJLcx*3lWpZd3MzD@sZV+)fXqatAUo!|M+A?bW4O79J{DJq$v zCBM!V1-0&}H&{{jLN|cpFq~kMp`#mrqaeaRUJF{7KO0(Q;1q@3E4R}z z?vTw{C-&~0DSBgF*Fl}MFcq8Uj> z&&}i_v;HPsR}jbh`Clm6ea_E|8KQn3GLsD?1^gTKoUQ$*{3#!NXZPlUCAXM3FZVj1 zp9;LVJ9~2Q@*u8r%nS_iMX5Q(`jZt_iArm+TQY9}3Q2M@Fz^Et2LgPae1Ex;H0rJ2 z2w4V(E0bkb=*l22vu0$FK$d23=AE3n!i9-BVe-CssmVuIXfZZS{;CwRrNu6(Ta|t8o#=*yc{oUFpE|eCniC(v$y9<(h1{LSXXsX#(5`B`+ucUm3vo zW^%x)5T++HCkL)lnS5%Ms6Kk4M`(C58*D#n767?p^8Hm(OuOey{=G^`2As-(VHU^4 zz#xdw3uK*HG}&^stya`h28NXU { new Alert( AlertType.INFORMATION, - rb.getString("AppMain.030").formatted(AppMain.VERSION), + rb.getString("gui.UpdateChecker.030").formatted(AppMain.VERSION), ButtonType.OK) .showAndWait(); }); diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties b/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties index 7d06a50e..ed6ded2b 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties +++ b/xyz.hotchpotch.hogandiff/src/main/resources/messages.properties @@ -73,8 +73,8 @@ gui.MainController.070=処理を中止しました。 gui.PasswordDialog.010=パスワード指定 gui.PasswordDialogPane.010=%s はパスワードで保護されています。 gui.UpdateChecker.010=新しいバージョンが利用可能です。 -gui.UpdateChecker.020=新しいバージョンが利用可能です。\n\n 現在のバージョン: %s\n 最新バージョン: %s\n\n最新バージョンをダウンロードするには、Webサイトをご確認ください。 -gui.UpdateChecker.030=お使いのアプリケーションは最新バージョンです。\n 現在のバージョン: %s +gui.UpdateChecker.020=新しいバージョンが利用可能です。\n\n - 現在のバージョン : %s\n - 最新バージョン : %s\n\n最新バージョンをダウンロードするには、Webサイトをご確認ください。 +gui.UpdateChecker.030=お使いのアプリケーションは最新バージョンです。\n - 現在のバージョン : %s gui.component.LinkPane.010=Webページの表示に失敗しました。ご利用のブラウザでお試しください。 gui.component.MenuPane.010=現在のバージョンでは未対応です。\n将来のバージョンにご期待ください! diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/messages_en.properties b/xyz.hotchpotch.hogandiff/src/main/resources/messages_en.properties index e0c2fb79..b8e77bbe 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/messages_en.properties +++ b/xyz.hotchpotch.hogandiff/src/main/resources/messages_en.properties @@ -73,8 +73,8 @@ gui.MainController.070=Processing has been canceled. gui.PasswordDialog.010=Enter Password gui.PasswordDialogPane.010=The book [%s] is password protected. gui.UpdateChecker.010=A new version is available. -gui.UpdateChecker.020=A new version is available.\n\n Current version: %s\n Latest version: %s\n\nTo download the latest version, please visit: -gui.UpdateChecker.030=Your application is up to date.\n Current version: %s +gui.UpdateChecker.020=A new version is available.\n\n - Current version : %s\n - Latest version : %s\n\nTo download the latest version, please visit: +gui.UpdateChecker.030=Your application is up to date.\n - Current version : %s gui.component.LinkPane.010=Failed to open the website. Please try using your browser. gui.component.MenuPane.010=This is not supported in the current version.\nStay tuned for future versions! diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/messages_zh.properties b/xyz.hotchpotch.hogandiff/src/main/resources/messages_zh.properties index f81556a1..45558d1d 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/messages_zh.properties +++ b/xyz.hotchpotch.hogandiff/src/main/resources/messages_zh.properties @@ -73,8 +73,8 @@ gui.MainController.070=处理已被取消。 gui.PasswordDialog.010=输入密码 gui.PasswordDialogPane.010=%s 是受密码保护的。 gui.UpdateChecker.010=有新版本可用。 -gui.UpdateChecker.020=有新版本可用。\n\n 当前版本:%s\n 最新版本:%s\n\n要下载最新版本,请访问: -gui.UpdateChecker.030=您的应用程序已是最新版本。\n 当前版本:%s +gui.UpdateChecker.020=有新版本可用。\n\n - 当前版本 : %s\n - 最新版本 : %s\n\n要下载最新版本,请访问: +gui.UpdateChecker.030=您的应用程序已是最新版本。\n - 当前版本 : %s gui.component.LinkPane.010=网页未能显示。 请尝试使用你的浏览器。 gui.component.MenuPane.010=当前版本不支持此功能。\n请继续关注未来版本! From 91dd927d2dc7e03340cc95e3ad3117e5591d9311 Mon Sep 17 00:00:00 2001 From: nmby Date: Sun, 14 Sep 2025 15:44:15 +0900 Subject: [PATCH 18/35] =?UTF-8?q?UI=E5=BE=AE=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gui/dialogs/SettingDetailsDialogPane.fxml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml index cf41b810..32e96e3c 100644 --- a/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml +++ b/xyz.hotchpotch.hogandiff/src/main/resources/xyz/hotchpotch/hogandiff/gui/dialogs/SettingDetailsDialogPane.fxml @@ -24,7 +24,7 @@