From fd20211cb7acf05d7c36b414235dd57c5e0df02c Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Thu, 17 Apr 2025 08:54:39 -0300 Subject: [PATCH] Update German translations for various UI elements and messages --- locale/de/LC_MESSAGES/django.mo | Bin 0 -> 48092 bytes locale/de/LC_MESSAGES/django.po | 904 ++++++++++++++++++++------------ 2 files changed, 562 insertions(+), 342 deletions(-) create mode 100644 locale/de/LC_MESSAGES/django.mo diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..be968c4a4eed5edff4eefd3fbc9ad62f8f78d1c4 GIT binary patch literal 48092 zcmeI5378#Mb>|D?1&hsQwT*$Y@FHP#OY)8^%WkP#valq#)sh9W!Fk=Uy8F?u-)r8Y zwi*G3K)_i@fP~#3h{F=rK;po}Oo$tjkYy5*fdrBXfslk5CX<9DKxQHH`=4`fRlV0w z8xw|azRCMk{ja)p>(;&Jo^$Rw=ia*dv&WtOGYP+Y9+o5*f)_q2NzOhEJWr`fa#NZl zpX7Q3eAmO1CYplBBvWNq!#u`bM6mtk++gBvfHbz%#*DfsY1X13ngfTS)%^cn;Se19?sI>2UpmAPpAHj7BJ_%e4s{ETkm9q!D7u*}t{}jA{>;D2i4m@LXk~|eW4}2nc4fsfK7np+2 z0cmD(7*so63Vs-TKX?sz#|@6J169svK}eGPHF!FB{uZzQ(?FFo3|r{*eADQ1$(N@G0P*f)|0`0iO0{o{7l5m{UJa_;AyEB(EvWkJ z0Ac;)E>QJ)3-~nf{h*%vEl}ls9@Klk0rHCEG>CZs+yUMOz5~1q{Cn^g@U|T;SNDN> z-vgld^VdP~(_et1|G$80#}jULdOd*m}~~ugD(N4*FF^RtKex|KWVqW?|e|@ zTneiE^`PE+J$N>_3w%6yJE(fS0K5rofui@v!u@5CE=m3fRKGrLkGKB@Q2BO&>%cof z)$?9Z?fz--Qt%U?==SGe3Vs(JukA~}yhx?xfA4~f0f$H}!gVNLg2#Sv$J?`y)X230=`f)F)eyoCz0$&x< ze;PcU>vw~y=lj8jgC7IM*S`#^-2VVd4}1gM3Z4OTiyk+FL*P89dc74?JKhhfKOO*8 z-lxDvgP#WV{yzZK?k|IqqpyP-!0&>h&-%Si{|Qj_y9X3sz7o6)d=set`4lL6{SByo z{AciL@Vp6s&z^vHfDDnzEU4$-8St|K{~i>*&)-Lzz^8*McNP?#J0PNx+zYCHe+aGz zzYU76m+g0b{%r6nu3rpp1V0LjPG1AnjHU`U?^mA?t9e_jHroO{7D!PkQ7zc+yz zuipzk30wxR2EPPK|D5w2e{L73^7et}fK%XkU)T@B^Uu=2PH1!7qVo=aJ|7 z`(6X;`t6|deFPMr{1&Ko{V^zdd<_)+9(mC3p98ACPXpENVNm(61+M|OfokUxsP?@Q z6#af2RK7QW;_G*T>i1s-mH#uK^yBY?qT}CzlJg7i@OEwjRo*S2>a!PA{~Z9I2v)%x zz$Ne%;K#w2gE!piMsN#w2G9QusCxfH#mC+6f}%${>2kLg+|2b5D7wA?6dmpc)sB~g>c4xzCxCAO zmG8r#==(|VeDHSz{xx_3*AJWW`dtX>{aZoNVK?{`@L<40p!)B1;rbJx>i2n2bpJC@ z&wmYk9Qe1O_~x{#^VyR?)%R(j>a_-ZH+T&wdjBU-_5KG?$BftSu7LBP z%6}2~RPZN2ica1SJ{>%F7Mjt28^OOn4Y{c?9#PPAJxRJ;f3OKZaQ%!HGA^`Pka8BqDY0P6W~ zfhl;-tNeN+D89J`ybOE}sCwT6ZUOHF-vj<8cni4jYU&I=2tETmjh9^yUJ9NCPJ(LZ z3&1nMB`^hF2Cf0$1&ZH(8&o^K04m=%Kt2CWQ2qAbLGjz8e$?r50jTt=LGi&3@M7@x zfG+}9bA1$4e=mcVfnNdFf@lAjUtbA|pY8xv?>B>6!Ow%rcixY?oNooyZ}Xtqa}Owe z^;6;g2f?$s{^M}}tKdeizX^)o7ypFQe-xCQ><2f2bKq^@yTN_ncfkGN?$OT_g@#Tp96}n)qwSo-U)aQsPcat z6o0%A{9|w#Tm`=Er=0%p0VSsof#Q!ZfTGWrLG|M|!}VFOb$-17ypi-PLFH?M(n~)A zif-=$&jCLWu0IJX-*14b&zHcP!Eb{q|EAZueC-ECmsf+AfNucB2M>ay;8(yy;H9rm zk{Wm)h=?X<{WQD@{wOFu{2Neoe$vml9Wex|yyt-__`{&udw;->gHv4p4k$Wrc!Trp zW>D?e23`&B1JzGI3O)~fBS;gHe*)ECuX>})&HKP>x&B>nJ$S~Oyqv4SCvv?VJP*7R zycFz$s`uN#4d7?M$AaGiMb9(e?D@|Dw>%792G1pZ_ASmYOQ8DgrQjLht3lQCHQ+(; zt>8`Ix4=!{wQmh}JE-zM2C5%E35uWo0Mzqe0`;E12GuYB3@YDQZ}aCa1ov@$Dfl?> zMWF1H*MPT!9|Sjor{Cx8zXrU3>mA?-I2qFK2Suk}0UkHa z@|HmH;eDXWeJJ3cfZ~sT1fLF`an#>)38?y92TGoIfui$mAj3{_2dHxH0#)wapq{@E z+zWmZyb?U;o!(!gpz8Nh(D)Bjz269`-1mU0_b-I>UkBB`FNE|jgIl=%M^OE7<-45D z8L0Zb3DooVh4hbt*Kqxp;A6lGf7bi;a&QmV&jywL=78@7N4frGP<;G9!DoV(-0%E6 z4vH^d2JQr31?u_FfqL(sgS)|h0wrhLe$MNA7!+T89J~?yI=Bs7^KQ4h>Y(K8ec zg38|pMgNzAYRA2x^1VHzzYo;&9|P52zXo0eehz#J_z&PH_}KUPIJFOa1lMl_#ji&} z@zKY?3&Gz2p8Y!Q2g+E z@NDoipz8U1pxXasQ1$=2kp5k8GuMy#fR}#@cqZ4+2i5Kjd=$6A$yuYWE+3KL(!tQRkzd0pHE_?}Fb1J0Ekp%>1JB%L~Cr zl719?IQRi@Kll;wap0N1z9Gzhx@?Q;ID$B&sV`q zz_T9ka)v;ae?6%5J>Xif1F9Ww2ZzAl2OkA~7Ze{o@|V3op8!6Y>x;n@+zg%tJ`YrT zGEn{gLhw!C%fKgs7ku3LW&^15ZUt43=YVR*T)4gmd?nYf2gR@Ff5LGHJdf)UP|qC% zMTdD%@_a8SdH!s;|LA|`bVxylfMgpeKKKeKe*7!&T=3fg&;Avs!&AUE>0_Yi_z95i zPw3u+E=+!!<7SS_l*sQ%96xMlE_V+j{kdGr=WBp(;@HjkFnB)rW$@2A^!rJUALrQ4 zp|)Pj{rLOMaB@b#Uj?V)O|ZowI$y;zYTqsn{WgU%?&17=jv7b&F?1!1++PR208~GS z2mS}gM>*DnXTQq%?{et(29EU{tGTCsyc&E4$0+9qIKIR28yxz5-6834AGKooTS?Ce z>3;z}pL?q~^cw?5z~AF|uM+q@BHYut=wIjfOO7Sd-wEn>FUJP1r9UqRZve#;>fiYL z7fwFQG0OcHay*ekKgsg%_-XQI;M2o-gr{>~^EQaT{Z8ZWPjQI%^jpup9USG~U0giG zaUg%_irs;rMPyn+N}nV`F$m$@@9~S)K5c zF20T9+;IOY&adJ8ZZQ7-YdE{t8gP|IG2H95vGZ6ZklA8^>PG-_7w9&YuN-l0(0zI3#}rev@M>_x0P! z@wXh$=J*K?`RqRe>US&W_i(g0j&O}COa59n`27RNqe(vmqC%3Va$ez>;dmL>f6wtX zjssjTgBv;YyNm1Bg4cmpa-3_auA6nbgJT`(_k$ndcn;^29KXi7eq$VOvom6E;C~C} zSAhS_@r`i(Se}W$Za8@myq05ayaB$5;~>Y+ar_g{*XM*h5q5L(GaN7CzJ9kjBwemQ9?tIs*K(bKSBJF! z8SpWrU%+t@#|&wY;W(Z1Jsd-vZw4REaSq2Hhi3$rbKFAO^F!Ky0UKP8hwH-S`b z{O{}YGe3D0`3`ctfXgR@d$)1@x^VuUfL{XZr2l%j9_IXqIDaL_H5@<6@jQ-~lKwo7 zGdcc{>l-=ZPrl*%<3+$LNP9WwXM_69I+z{z^PDe`{$!3vhWqD%|AF));9r4n=4f+# zj^m3Qa~#j$IEy3xZVxBhd1e>Kgmes z_RZGXX|2)8TGN%OENy44Ls>hm@GqTe&M&mG*{sp79m>*9vsq84o2_)d(x}YT8Z+s1 ztY)iQ&)VzKtWlY)>qeJS+B}ff<`?SOeAeismDs*ct1>-Zn@Sg&_1aX8S50P}#Vl)B z!xu6=SZP$#2C2=~Tzfd(*-6_fr#7wJS-Yc`v}XrZV4*TKmvyLDo#v2XofWlbWFJi_ z5t6Dx+~%ScL4#=IRIQyUQ>R5En}@PitN;X=>b7c~!^7!*Yt>Yxkyf+mS_4`&yDdnj z>Q<>&tzq4i?i{DJ)mGMSizo}tR!7ikcA8Voy53Fx%9MK4Xw<3H>Qo}qWtxhKlx^M$ zDJxz9e@iCH)kMxf9_7dyhia{6LsT9X_bYA`eD*wW^tn>rR@beR?Jp(NeZb0@zfFPMfqkr->r9Quxc6@kdC4B zQl}1Yo@{N=aZ(hPT#ZFxP)VzIHm2&`s+S+%-(DT-zgR=oE8R|W9uAsZh6xH8QkgR$WJLEl{E)f_EQAG<${q)O&EBI&M$1la{zU@3KZV!)u+=Ir&QrLuajv z9lcIWr>wO#O_bl)gXWd27SOFiYo~?T$u}`KD4B5#Y|K1Jgq2#C4WpKg^y9_GQdQo)aL#R;a$tK-QBhp&C-9-a5(jB$V&E3gU@86)PV3>W| z#xLJLI*vpkZ3Q=)6m=PSrd+YZemTFHmT8~*OGWv1szGED!SF^x1!T4j>!N|2)!XTs zYo%+v|B$0qY0SWK`JD|LH(mFvXFcl&$5RtN00u&Szbush3mX5_`|$^+ z-cP-%|E9}j%L5v<8=3Fq%zQG&Y*rIKIZ-ys$;B#5T1jHcvIH*_LV( zi?}r;OTO98h7ZrzH?OxFGLj1gwKhGClE-Q_1-8yK{d||<0Z*c9)=pNfb*zAssoo!{)H>{rRbQap1)~}zzc4EwcF6*;u zm)bUG+O_(j%KAlypBW|GwU|v-s`ItRjW`@PV2xDgv!UjpA<^v_*c$cbVVT^kw-o2R zt=(yL-L&7lzOrR_^YKh=@8802*mrm#+mw!DC!DaO#SW05N@eYBK5{LzYE4{~+LCt$ z?in;zd1d<-1F|+F(o`6aE&pNJRR^7{^?1ir7h`ZZR+x zmiutJ7gy5kK(Q4zF~hRAw8&I8?~VD?{1dl}Cb+Y;-FY|Niw|+a295Ms?9nuk=iJvy z^G2r37^cZPptKNnn1|FkGT`k@34&!71L^xr{q1uTw$7p?Tpm zm^aqrd1JI$$*?V!A?CUacPp9>g&@J64t}-smAF%05Ct`y+sTE?R_WmRh*`?LKW!-o zkc%A>Vv|V4RgO>B!qMG4d({^C`RT6gP*!h4+p7wf&jog}J7dw0kw&F{xZP()ql8DM zrf~gL#mPz=-?L4oY@V9H6!Pz|Sf#+~XdDZt5OU~F5qcx;>8!s+UAG-L0TfzviQA<5_DSOFsrn2&@ns zVYKitN-LWuSYvhcuu;Jas@Q1cGc}hBKT}=1}|l(E|$o9!a1skz$(nf zj$^h4jWH_~O{9WO9@v&%a*6p@)^QLOM>JO9QsE6Z`v#EM!-1~^LRC?BU(|R!U zKb#r+5uS)_x2~Tm;$VvdW*+PtPEBzYjo)T0 zBUMCSpoMVdahSaNW_~o9J^AELMkjooHOw9|cg|u(g*-`<=oKqTc-59|MC6*L_sc@R zu*GbBTuoGCtxfbXOR)_^5#^4uigXwCUBMhzQ3z&|0=(NTI@zaLWV_MU5YIxca%DI& zzLW8y(&^&=W$guCic%)B8sbCdU0Z{AJ8>HIsx^KVZICw`Q7A`8tm|baz+Dz8Da8;= zVO%4BsFLC|sCnX+kgsK`OlmdVhbBf3X*{sz8>h5uRr)Lhaim1_!qo>L+TLuMR?Mb5 z6>vUOsjpUBFl4&KQI)9(^e7ZSRI$IG%BuQm<0|n}DJ~APui&TL;dYj-rjr(tV7Rg9 zm9?|ryA_>x^_D^ecVgnHA6LG0BytuFH&P4`-01k9R6WXC7+oPc!egfLqGArzQM^&V zWX;5^WWgJRrAG+8ieOh5+S}PeMUgU22xt@Rh8-JOeQmON_KGbBvN{8@F&5r-%VO~p zS*N=IZLip}3Yu=s81zK9YICtsZ&uvAr^gD?5Q4P<%{Z!>9jei%T}3qr(ip3$gE7nJ z6!Ryd>2#*-TcIaJgRu3w3<3%;LS-1~@X=Nf9)SP0iX1=&2M2%;o9W}zv_BL3n0_|iFQFbs#tR2aSYb4dtRE`Oz z8qSbpT$WqgOER@%e$#Z34UykQg>IBLv%68~ZSrp0Ha5O58S&9;G;7qdYP=c` z-OROYivS3kMbfGlCD^t)(rtB{IY6^^GD~npl3%(b8)TRpam3w+_vp< zT;sK=a=VndWG4kDL?I!$G$mo0&jhq*h6X#+bTpx`U@@Z~=@@k~%4?f- zCS*+S54sU;%E}=oQly=I1fZ*$jcU1s{9WkBDnwNS)9v2qa1|@AO2qSU%UVscFeK$u zHm&Boi43<7jO_8dv;?}rnR|RDtCR{EJ)&;`{otZeU$YHS$%`||h^8}=5#&_Dz+8}@ zECw4}(Q!n%LWFtI`0mDJq?0N>+A(26U8uVXQy$sODpJWt+r^m_b8`_Mo<|c^fZonH;bY~FinD4f-ewMT;JI>L3uyCCODB-vIcM&o~_(j^}+LoAPtcUq(=980-(tbGDQI^eXd8A}kJ!+@@(fk;5x9x!HAsTsHlDqM}6d_|79e zHH14u2`k>;`_Rq?h6|Ha#^J%G8~8}9&=I+G{>&`1B69n>jp~X=+RSR6po!fDlb+*J zE6~{W8iuaDhq^+4=E_ngtzf#TR&AkUcZvZImBYBwSN7gp$CJ^l&*vq@gN*&XIb}@P zUq;9rR4uVgW>o0p7}|^jSf0>(e<9j27BXb0Kq0xNyGBM#3zJlVgE}U{a9-$&hnPk> zgjLF{sUjT&BCF`^JQsZ*OnbyI)+4`bFBT8*@<>PvEy~rMhiegj=*k)ebi^=23cX7$ zH>Jlf>V#Da{G%F4NCKqjf?`ofOf-@9d?k}C7ks8Lt;=O0l%_Mw=jqMxrkNjzdTGcn zWhc4kiSW`QglVc`XK+ozzy|}CRtHG&_9Q6knT*y5$dWP0xlSPF;dBqyP=1k5ko(+Q zG8!z=bZfWMK|dA=G7}1&bjo&VIx-DQMT^uzHic2zZ-ts$7;B;zn_7r#c0A0ET@Y-{ zI5q9&@o+LmD8v4EoYt%=_(sXL-Xs~DM{WAwbWBSMQ2LgZ?smrOy<#kIHVnyeFzvfM z64TR_N{346o#{k(@&(u=;R>Eun3Xx}9$J#ug_-)pwhDu!>Ozy1L~YJ`eBJ)*w0Jn= zbB9+3Lgaa0mlO>YZb<%e6OTH|f%JhIp@uI#!K+SX58w>9v7*vFwsaueHhvmwwa75V zV5{-D#`2j?wkZjzQeZ_g@A1qrc>(M1hyrxc*p#G1Ys=KSxj@R6nleP-Vj(u{sO)@< zmbG!j#5qO=tBfmZsYN$YB}9~LA((Qei@5Zqp=d?9MOBUr8l$4B!f8k5($zi;ng?z? z+nQfdqM1oiZ=bNXD{`N(#zxNnv$`^^qlm)FKEq^lH#PKO?l`-Enq*4Utb_BLwcy`x zl9A*02(_BGn@KDpiOeR+Gwzf?&e)mGnm;IGa(>1tLxNq&X0~1-A!`RLs6_?a)G%t4JRab4Ga21Hd#Q?ym zjK0F;y68xuEmx|qwmY&Xc0zEi##CyDat@PWeNYWu>Mr%E*nlL7C*8M*n?>t(U4N0n@xX zH)pt{>sGCLZnJxtv8A-4b@L0*>G*A}7&t0eMPZPzmTou=s|=>F?dHtMRHVlPJ?gU% zinJ&S0mOEb*%Km=zTUNm=Qgcc^&(fwcXeC!7q42ihec?c;yP8T<#Q-jyhRV-NjMu$ zNMGcqcLgbVF`-Elmwd{)k?}_NS?u|W4fOU@80NzwqY!<}JzuZTaB?#?Bs_xW-%eyN z*&i8AcG6Btc2jYxV3zbYlBv*xMSJiLL&#dpRw@iMrjpws#a-w4a!E`8H%W5`>?M(|q?~%yBvaVb6?j$mL z51xUs;UT_C>STc79B-qmP+WScG)FFReb>h~$wKD+dw0chIQ7;uI(hu?vh_84#rn&P z3VKAuo$-Ac|}@g}Bnj3NMu&MIA24IYg3?a1UV&Cwb&!mjX}w%{e8}T+Ews zvD&khxh&a5Ku3OPz;$V`_WQ2ar4w2X2V0;;gIAX*I9W1{DMSe(gP#z4^fbmMb1il? ziBl)`H?7Q6INv=oaohf}y(6Pz$!@OG+Cr2nt~KdcSXt87D-!b#3%N@|2rtIyUbtB{ zfnrGz%oe{O@+!S=`o5fUtbpQfra1|PcI9X$!S2r;&URu}EftxswC9pN*`kh;LdnGw zyR}f>F}3afY9gbS2qd$qQtQS^rV=S$vrR#EL+nB(a8Xq0?jjbChd0D3!R8tEB8>fw z)e7s`MsqXZEK?)^b79P49?sW%E>`e|SXM#1f=Z{zo`tz~?F%COlwl%EZtZq-q=oJo z_fG^S?DlvJJ;W3Dtz%3lPqpzWn&`+$Sf*MvTVEkq&A4H}tEIdYpbsGG{RcvyQAx!ni3VmK=wH-T}3j(_)3T{k%}m*o}%4hrvGFHVN#X(91P) z-mI%-I1q{tPr0CkR>iTwUadD2uPhCkacWnQAK83u#@n=0o6ka>L)6JhFen5S^2I^X z-ZpqRv|Di?EMN2uwYsGSxo6;k;P#PyTFh*Vo8wY+1;_|e*}7c|joaLi8w02;LKBL) zQBc0hLFaAQUn=94j7hsXGMN;EQ%6&# zPsZKC+wFbi&fu-y877SLWgoramXmnM-gK;*iMu4rHkwBTCac267E|t*I6cD*9pef4 zH7{DBQ#D6YR*P;H`O~cA-moEE)0tXWs}8}3(U(@PLKbPbEgTt&iw?sx!S%M+$Em7R za@U)3Y!{+D9{Gnc13U!FR8m=bIisxNYkszWAsKIFLpHfwg)0wp>9ce2x6W-%OMa5; zfEf!1Yh8rqidrdik__+Ab))hgLPLkb{M)ExoP|)Vn2I)GxYYaNbjaSZXOC^$m+bZU zZPd5@*QjxQcy>1nZC2dcl{IEMvoU!g2AAuWoYy?pUga3`aI!a3NG#3*`4H#rh^kQz zqy><$9GMF&Moyl!DI_6ri97}tE_1et_m$v_iNq+(rE|l$zIS-e!%f`w8DEPV`ua7} z@C>negIq!Rsz=@Zj$9A1{D2HTS!!Vs%}4WD1h$cn0u*Tzbi?Tg+HUatB-0JJUfGRz zHtuX#v?<7ZUr~~RqJE|j!dNR>`^0ZyF_U6`e+(bS>oV;;#{lACeOYrALQQ1orD4K+ zV)wprU+)}8lHB zYKtR1nt~4;*0qU?;zAv1>jjKFUZ+UPtu5BkaH`J?1296yGmSyzb1LHBj0Kytow${w zzettUI6sYcL(jNo4|vvcpmCtRP|iC*r-YZvM|Op!gl;>rxk~-XLQJDnChE)wb{ha#t>EkWHdtXql7{;$kuR(D+I*iXqxQwhtf&IqrTb<- z5lcQkEduepkl@2mfXOG*8}1Bh@KZ5TN}4(~L*!C|irt7(=Ec!L;sBWl94s;j-{?E&^n08m-8DVGb7gKI#_V;lcA$uD`0U zRkKdI_*q)6@9VPFSW%`GO=kL8>+qC&TQIC*_Jl|lS}!L8Dpb6kPj1nK!|6h|J?jJ( zalHY<>2uK`7V)w$7R)>!zn^f6)oK`88=L9DGUiw4Cq+)D^`)pXQiWWR8<}X497rEf z3U-F&qh7r73MXi8j|U=z4@JUakg%vO+Cx#c{Lwf|>Se}7jA|tFeN)+Nv#yncmz4v6 zgelaEd=6gB*P3F`oNZN+;dw0uw_L&cZuEMmF5G3-bz0h@QdUNJKrmKR#vDYPnv0`j z&@a}*dJCKkQTQ8|X{|H@7tk;vYt%ux_+#^*#8RAkZ7$Q&G+&3~Rlz8URMiU@NX)RO zGUatRX5hx2K}((ViX3a1S)~-qKZ`K@|Mr~#{cDO+9=-Qgiu}^O{0a7gs1oSr>GK2vyUnKG`jzm z9v%1cMSLbY>vk_(#CuYh@jgLHT;$%>IK%#~uCJEydWDNngoW%?bUV?|<&ni_lf{|K(={V7bx~R_b8C|$+kBEO*Vvd?{s{r? zE}n>^JWb1kb*x{)6xEQbfvWK%-pt)?ObLp!TOK}+yO=g78O zMs|#)w~y_e*m>)oReMbchjzDTYSp2w-I?~#zUHQM)%dMLds#Fu%`!AfXk=6R+_90p zL%VMs8XZY*zID^?otGcHbn&6b=iIP=-}a&FihN-_92#T&gBDF}O0S!&bykhn*~6$lL^x}{ zy(w)h*k${ME3QY5b?1gPjr5`$(v54cUsZhI;ome2{;TiV##)PfA&{Xj<$iqip4V;< zaSl#zDTm8@KM)yQpr`UNLjDQU@$%{3D9hKg^j7vInXWJ2kD^A|cG677;QTafL~Iyd zK9IHMma^_lx}?u4GQNzice=3kA>u=&`tHqUvU+1Uov1Or%#!NvBt@aO=RA-_3n?d? zZMFGubXMOsGo_R+@dY;TwXKtAv-B39OQHF>*pqdZxYM0q>e5Y|u1gOQoMxVs4PzKR zdCyp_VWq|DcpcU;Ca{T;ugIbRiem$%ev+za?hwRSeqaV;nIhXwHD2E5^8HKNPKiFy zc1n02vguVJW{2kZBoe`!rRVt4u}jTb>D=-Im=KNhwl0ehc#{=<5Z|Bko#Xr&@!gbY zgF=;%1u^S1=d5g1V`NTC=P3b&BGT}&`8t};Wh0d+HKyxbR>Sj!Zl%kxxYSkHFE+t; zavetsmqg#%lFT=>Y1Fq#t&={7ty5BZ7)`4`Ha8((bMsG z_0)OV7$KcQpW>EId#_Gnn$+g!p-Z_((#fU8VdHsqulj90i`JP};IVnwRnsBPmX&%t zRrMi1#FT7w_==ABR^!w+v^bDaGfB#7l?{Iwv#T1D8J&kjtWGPi1YfioC-{4E7aN&T z?12EFe}!ROrcawy@3wa}-`_Ez>?1;~xtHIBi%z}DTeVM<%B0$CRRsHC3DnXN@61T6 zmcR0$qhGz}^$#6wHy4|;Y`M1lV9P~AfmlW;ed;SxhHMh$k;W1{VNIZV`mzSC*hpQX z_4#0H4#LB`HEvtao_Z6|cj>LZ-`46qCh@AoYN?e5q;Z{+Q_pH>l(puX_@~Ajs;^P@ z2PQ_j_Ao^wmGb?Orkm*oZR^9tDav2%o>{)XF;kn75-IC2#APO#<5(LIrB$Hl9ciOH!f&Smr-~X?vZFrK=;NP@$ zgFWm_TRZ<9Q(s5pOS>L1KK(!ywyb+RZhgL4WehRhaC{Ywkt4mur|8(xwTzG)`tU@X z2}NsB!K8-vISRWUg;!$Pn`Q|cAdy;Zfi!{bX=GB}xDzJo<*-T_VmO(~Zsh8TQPQj) z4AV)%zYPAt8nAIeMrzGsBUr#TDlOuEVpKEy45cO^q{XTAH#5MtJY(#@b8aP*N z%-^h`os6h7W)pS=ij z+&qkL_nZPHJNQs7{7uGFqan@@eI6`A&04TzjF^$8<(BX7Jalx!DO9a&``9yhUbi4=FuTPyKP zmb&UB*`p`gH7M{W{p7|y-%BiY8OyDEkLO7sSYu)6k5g2#pH+>xASEx_9Bp}y3>-{fm;{x zwvl6OTy(HI(_*VOtLO~jw`v`pMUABsw$QA!ff22d+npPLnMF6YXHW&rHfwJ4FiU%& zcr0`YcYOI3Qi=_WeT*r52H8x*xMQF!N|po1ECc%+5e;ODK@L2`$YmQ%Q(t}%2fpsq z$qhPbmpxe8BRqv)WU7yh+~^HUlzW;KR9XmBuV|GFU|P#I z;TEfyPj4<{dmZCXKG>+s#u^>QMyYTGpv(=khLsf_4eIH-$hbXKx911&FeRIpH@p0R z#aEqoMBTi%2lQIGpkudlx;w)TNATLowo!7{Q|r*~^6Pd|GeSa9DfLjkXZwm3gcmyn z{&C^PYC?W13X*uUA*2OS6l@S@=OkFkOw>%ZFt<+~kzHU2V+MW;k4k504ll2Qnw-_pFsQ%Q z^e_=ll&kZ*KSEh~6h$%7b<8Zt#442$wSwMip%~-D6^wD!7J5(n9`q?QHd)KVJ0Yl$ z6#*afh-E01-y+S+gcl?UMY<XBfNjd6gn%asX92LJy;Y?`_=8Fj65VtiwB8|3R!P9wG-C$2M2w-T`h(9yr zVUtR--6)Ml4MAlztJ%X}z31&tX5P$VPo^`pQ74;gYK0FowZwGa=CN5SPzqa(G^Sh3 zMH1B3F3{C3aXjpZzWykWcgNcNsl?eD_;ZeKo5qSAZDyI+x`){n%QEqbU6ED^cfjg> z_0T{wP=~D05hD_P?`B!=E=mI)&BqU^9!ZIEnx4l@vrTs5jDsowkF&WxIn1{TTT0!w7s1sAENqp53YP{AcZwip z+;XaCgmI%FuLovf=~-iZk*04nfaiUG0AqR|kd-SCdZo3>1B_aV@mfO@NNil@L3^nd z1lml^6FBDsDVA#Gk@R9? zEP4u=jW(p~v&K?iCvqA3=v2z;@9-0p(i`&{T(eK;v$QlZ;Ni`5%a-(0&RB$Do7mo7k{u5U>8p+yc0Yb219x}I zPn4pJG~bu0gGSj#TF2BNN>p=G<`|F4 zwJJ~kg;3zZt~o6EYfAhpg*==Ltc=`U#o*1?ZDArQ;%x&Af#|vxQlhG6%{%vsVYE8G z@D%G#>6w+)v_b>_om^!LHnpnmG6|(8d-P)Jf=jaLp8RT%A(P)kN@!A6)2f$5VS4)m zbLcA``y|o^v9eJWbMRG?9w4vYS3W0c#qx~&zO2MB9{}pVi4aHTEoA)nkOub>kKRwoNf=Iw$X=f{Tg)%Pbh$ZOq$XofiLDUWRxF&96l+XUw?zie^O1PF zvwAtHN8=px#*vmwh1}yEe+$&O&x3XMFR7durek18fc^t-r^#x^4 zHZz!^QL*V6ba3Zxv5VgrEcDzw=&gItYs(cqatteA7@5KkHWwn_360mAi;jEEe5YFs z@|BO-z+Ou@R`}$aIr!Q1)EXQ6>0i5*h*dO9Ad(!koU?k#ftmWyQHyf)P^pMJ>Div4 z$<-aIsZ7=0{K1N~71iZj6Xpzhbs)BMSZ{4GAmnlM6g{D>*^0DjIu?baP<)4uLWEEp z`5XxxKz&Ud!}`URM6AKgb};Wv(#e*FilL+}G{$R@_ja*^+sGsi?{wmjuE7N*xY1b4 z_{I#C-76B^(8<^HZZ!3;ecMuzgFMMdpFtl`R<*H5Nm%ZzSGRQgcR}+S9HA; zeGF>A{jeCO?PY?I$(ANSjZI{^nE%knZ<_n_9N2DrS;~0L^#Ho{JqItyKnl+uBY$Zb zy0$)A;VW8&%Bjd!^y|f_#q+NJN$xe_hA5zQZ^}Og_h|oj#+5gwEyp@=X2DA&T%B`Fx-zb|jJGdp|AhZ8PO<9;O&~ z<>qq8b}$({ep?>tLhM%_iOplEoG2iCK{bm%s|pSb7w}@HczjN9ctF(DR;SK%*cz^= zK@a;_1U2O9DrSDO!tvCuD=iTL8kW!4t1Xb0}6pyCLxo(NUnTWbKTDsu7 z8vP&3iWU_*pZoL~q$@X{Z!|-Apg2Qy$(ykS0p_~m5c=E#l=tYQ4K3CW<-&>uLNJIe ziZ2x!ZOl^AAWc=iUAD81Y_-L~C4>odWzFi(_ioN9! zabvR3Aguw>j2J3!fcc+St)t)}JRl$RVEAl@kKGhB2tyeWN)Le&`Xpe<YC5IUsN z1q@ccuijQZ1dzSKkWrkjg9F`<9+1Wsdu+s|rQB!<9+QnvkHndNw5<(IIL(9>vIe(A z&)kI^a9>6&Uiv)ybWq+HLc(rqm3Y0o*n02gN_RnV+#W_*F@)h&`0|Eh4_ZZ*a#3!w z#mRwP z*KU+wc8q6+Ly`GQ%#_!ZJsZpx+)9y9GxrX?8n=h<*IZt5ql?wB@zVvxY2z5n{~rqf zC3|czvq+Smdf#|D%yf{QVGsvGLo7Hkov*VMI^RBMD`g*#6O{2J*Nqai?fSw&gE+2z zSaqY=bEdI#&;vFOYOI$Pf+c#)$MdKAo=~tc798~yQYr~-r`HXPcv_GxNNe$RFcFVJ6uGzM&(vCw==NY5@kzmDw1s`0T)p%i_|N+l(*T3vnh_L=PR^Xp=^I zws&Jhede4jzX7AJ;p@udmjQ9RMBg8g`q+OM6(-d2GjZZslG8KO#UxSK7*UI<^bucQ zhPDDtXpzD9WGNr#{tDGyny!nQdsuUi!I1K;ywDQ%u@T_w&E%P|sDuXPZX2Rv%LGEJ zD8d#L$bhmKLn(HjGpR+9>~4~$Q6_D`|0vze7pb{L@9MK$rx}76r^A5l3uKLXeLx*6J5aVN#U>$5 zVIydBs-(gX9T#%jgRxLhC$|w})Lkf<+&GfHh%1#KWKT8J6WC&i5aXA9c-<+eZp5~` zaO5%iBHk|6dF-pOmF2MSoK^UQ!SKD`!z*7j3C1u#F%>qk1lTqBOZB()Y~C8h!nb z^#&#jU7FX(0tV(&+M`rft7z^sf<2lGR+ zbF3NQf+3~d-P`XONAVn%AAoV?#fZi>{)I)OWoC^do_+dE1=@rG&9-5~iw6~N7JH~B zaj_Sy<*V1+l%iWYJgc~KF(Bx(G#ev&swAT>Uy}B(T&wtDL9A_2mjM;g01l_KnQI%0 zXf3JOK3ZxzKR$&_THVtwECpL9uCVXmudRktZIw7$(c4gGzQi$pR}ms{8j|BUqWh@SiF>P{^I}`Vt=J!&|6{KBXz6{md$Dm z3{mUU7R<&k+oKZ@{)bHUn0Pw0#>Q6no~}2BoVRbNJS63LAZm|+8WtwZv&$r!7&CCe zmeo3+Xa7t0A>!Hwi_qHCtdTr=klZG>D;B zA}9(sJY@5Zv%q`F*5LH-B3UfX@kg0+um?gcKq`i}*qk)wc)#a!(oF1mjBn1`Ie_VT zrpzM4M&jsk+Cvsnh)Sfi;#kY~^{s^jGG`5A6v8mYN|sdPI`bk{d-DYbo9pwrxo$R0 zR6?%#crFSr3JmVAo#fKj1NaM`->i$gRJl*#h2O*K*T7&BG)fF>U`KJd%n;9)v7h*h z&LHsKYsU~qTdg~ss(9O*sQ5n=%Zo;PzwT@Ym2Ts5<>bHcM3N$%kEJBL^UzasiRu}t ztu~yCy*^)x%B!j^Uk8jbn}o;2BzeSaQ(}|}ArT9GLkN)9Z~s>uGWWBSg1#tX5+uxe zhsYeACQHUv`p1w4CLWeryuy%D*M?vq?nmjruGGjJ^I0rHQeI9XHq}>@-WNk{J(gsY ztDfh}PeVJYe0smv`Y*j;WtM1^MuVSD@Q+|vI1oaEF@?IuG>XLd56 zXG!v|;}eSU!a8FXl;sopE<>tO;SQ!m=^aL3;uPJ6IT#G^DA{zk&1jgs@&9NvIvN3a zuGM6MR{!w`AGtA}F?37R8(|T*QgvN0G2LFoI`iE#^OM3j&69XOpFJoiMw^)EoU4JA zduH-z5t3N#QzAXvX68Fg1S61-5f$AGdZp*niYm0}mDV|Jr#WXalG47FyfesNk37b} zYm*2+%>=?+V%3f3sqH#{HM<77&RoK)07 zboMGs9fw(zvM*Gb)OraF3Us@D?p3ZN5>fb=@#*|CaR2m@V#|?Rz6@rk2SsK1Hnd=_ z&~GcdN}A4O!uVHaPPqbsO2~=r!pZ+EP^|ejgEHTVlZJZSfmO6xM8PUNBw$HSjPJ&Y zht8HDnz<>z0K27_JZEQ4UWi04E~V|Bd86XCFIM~XSey&j_w_!*s!!`(cFh;@ c@i7*Grk!gnKe#Xr)r);P3kEF|sx2)0-\n" "Language-Team: LANGUAGE \n" @@ -17,53 +17,55 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" + #: console/views.py:25 console/views.py:57 user_manager/forms.py:16 msgid "Console" -msgstr "" +msgstr "Konsole" #: console/views.py:27 msgid "iptables list" -msgstr "" +msgstr "iptables‑Regeln" #: console/views.py:33 msgid "running processes" -msgstr "" +msgstr "Laufende Prozesse" #: console/views.py:36 msgid "WireGuard show" -msgstr "" +msgstr "WireGuard‑Status" #: console/views.py:39 msgid "Memory usage" -msgstr "" +msgstr "Speicherauslastung" #: console/views.py:42 msgid "Routing table" -msgstr "" +msgstr "Routing‑Tabelle" #: console/views.py:54 msgid "DNS container test script" -msgstr "" +msgstr "DNS‑Container‑Testskript" #: console/views.py:57 msgid "Invalid command" -msgstr "" +msgstr "Ungültiger Befehl" #: console/views.py:64 msgid "Invalid target" -msgstr "" +msgstr "Ungültiges Ziel" #: console/views.py:69 msgid "Enhanced filter is enabled. This command is not available." msgstr "" +"Der erweiterte Filter ist aktiviert. Dieser Befehl ist nicht verfügbar." #: dns/forms.py:22 wireguard/forms.py:22 msgid "Primary DNS" -msgstr "" +msgstr "Primärer DNS" #: dns/forms.py:23 wireguard/forms.py:23 msgid "Secondary DNS" -msgstr "" +msgstr "Sekundärer DNS" #: dns/forms.py:25 dns/forms.py:67 dns/forms.py:109 #: templates/firewall/manage_firewall_rule.html:380 @@ -74,11 +76,11 @@ msgstr "" #: templates/wireguard/wireguard_peer_list.html:166 user_manager/forms.py:49 #: user_manager/forms.py:180 vpn_invite/forms.py:192 vpn_invite/forms.py:326 msgid "Back" -msgstr "" +msgstr "Zurück" #: dns/forms.py:29 msgid "Resolver Settings" -msgstr "" +msgstr "Resolver‑Einstellungen" #: dns/forms.py:37 dns/forms.py:83 dns/forms.py:134 #: templates/firewall/manage_firewall_rule.html:379 @@ -90,11 +92,11 @@ msgstr "" #: user_manager/forms.py:98 user_manager/forms.py:205 vpn_invite/forms.py:191 #: vpn_invite/forms.py:325 msgid "Save" -msgstr "" +msgstr "Speichern" #: dns/forms.py:65 templates/dns/static_host_list.html:17 msgid "Hostname" -msgstr "" +msgstr "Hostname" #: dns/forms.py:66 templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 @@ -102,7 +104,7 @@ msgstr "" #: templates/firewall/manage_redirect_rule.html:68 #: templates/wireguard/wireguard_status.html:45 msgid "IP Address" -msgstr "" +msgstr "IP‑Adresse" #: dns/forms.py:68 dns/forms.py:110 #: templates/firewall/manage_firewall_rule.html:382 @@ -111,242 +113,248 @@ msgstr "" #: templates/wireguard/wireguard_peer_list.html:185 user_manager/forms.py:48 #: user_manager/forms.py:181 msgid "Delete" -msgstr "" +msgstr "Löschen" #: dns/forms.py:75 msgid "Static DNS" -msgstr "" +msgstr "Statischer DNS" #: dns/forms.py:111 templates/dns/static_host_list.html:68 #: templates/user_manager/peer_group_list.html:8 user_manager/forms.py:177 #: wireguard_peer/forms.py:10 msgid "Name" -msgstr "" +msgstr "Name" #: dns/forms.py:112 firewall/forms.py:111 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 #: templates/firewall/manage_redirect_rule.html:19 msgid "Description" -msgstr "" +msgstr "Beschreibung" #: dns/forms.py:113 msgid "List URL" -msgstr "" +msgstr "Listen‑URL" #: dns/forms.py:125 msgid "DNS Filter List Details" -msgstr "" +msgstr "Details der DNS‑Filterliste" #: dns/views.py:33 msgid "DNS settings applied successfully" -msgstr "" +msgstr "DNS‑Einstellungen erfolgreich angewendet" #: dns/views.py:68 msgid "Default DNS Filter List created successfully" -msgstr "" +msgstr "Standard‑DNS‑Filterliste erfolgreich erstellt" #: dns/views.py:71 msgid "" "Pending Changes|There are pending DNS changes that have not been applied" -msgstr "" +msgstr "Ausstehende Änderungen|Es liegen nicht angewendete DNS‑Änderungen vor" #: dns/views.py:90 msgid "DNS Forwarders" -msgstr "" +msgstr "DNS‑Forwarder" #: dns/views.py:91 msgid "" "All DNS queries will be forwarded to the primary resolver. If the primary " "resolver is not available, the secondary resolver will be used." msgstr "" +"Alle DNS‑Anfragen werden an den primären Resolver weitergeleitet. Ist dieser " +"nicht verfügbar, wird der sekundäre Resolver verwendet." #: dns/views.py:118 msgid "Static DNS deleted successfully" -msgstr "" +msgstr "Statischer DNS erfolgreich gelöscht" #: dns/views.py:121 msgid "Static DNS not deleted|Invalid confirmation" -msgstr "" +msgstr "Statischer DNS nicht gelöscht|Ungültige Bestätigung" #: dns/views.py:131 msgid "Static DNS saved successfully" -msgstr "" +msgstr "Statischer DNS erfolgreich gespeichert" #: dns/views.py:154 msgid "DNS Filter List not deleted | Filter List is enabled" -msgstr "" +msgstr "DNS‑Filterliste nicht gelöscht | Filterliste ist aktiviert" #: dns/views.py:161 msgid "Error removing config file: " -msgstr "" +msgstr "Fehler beim Entfernen der Konfigurationsdatei: " #: dns/views.py:164 msgid "DNS Filter List deleted successfully" -msgstr "" +msgstr "DNS‑Filterliste erfolgreich gelöscht" #: dns/views.py:167 msgid "DNS Filter List not deleted | Invalid confirmation" -msgstr "" +msgstr "DNS‑Filterliste nicht gelöscht | Ungültige Bestätigung" #: dns/views.py:177 msgid "DNS Filter List saved successfully" -msgstr "" +msgstr "DNS‑Filterliste erfolgreich gespeichert" #: dns/views.py:204 msgid "Failed to read existing config file: " -msgstr "" +msgstr "Fehler beim Lesen der vorhandenen Konfigurationsdatei: " #: dns/views.py:222 msgid "Failed to fetch the host list: " -msgstr "" +msgstr "Fehler beim Abrufen der Hostliste: " #: dns/views.py:232 msgid "Failed to write config file: " -msgstr "" +msgstr "Fehler beim Schreiben der Konfigurationsdatei: " #: dns/views.py:257 msgid "DNS Filter List updated successfully" -msgstr "" +msgstr "DNS‑Filterliste erfolgreich aktualisiert" #: dns/views.py:274 msgid "DNS Filter List enabled successfully" -msgstr "" +msgstr "DNS‑Filterliste erfolgreich aktiviert" #: dns/views.py:276 msgid "DNS Filter List not enabled | No valid hosts found" -msgstr "" +msgstr "DNS‑Filterliste nicht aktiviert | Keine gültigen Hosts gefunden" #: dns/views.py:281 msgid "DNS Filter List disabled successfully" -msgstr "" +msgstr "DNS‑Filterliste erfolgreich deaktiviert" #: firewall/forms.py:41 msgid "Port is required." -msgstr "" +msgstr "Port ist erforderlich." #: firewall/forms.py:44 msgid "Port 8000 (tcp) is reserved for wireguard-webadmin." -msgstr "" +msgstr "Port 8000 (TCP) ist für wireguard‑webadmin reserviert." #: firewall/forms.py:48 #, python-format msgid "Port %s is already in use by another WireGuard instance." -msgstr "" +msgstr "Port %s wird bereits von einer anderen WireGuard‑Instanz verwendet." #: firewall/forms.py:51 msgid "Invalid Destination. Either Peer or IP Address must be informed." msgstr "" +"Ungültiges Ziel. Es muss entweder ein Peer oder eine IP‑Adresse angegeben " +"werden." #: firewall/forms.py:54 msgid "Peer and IP Address cannot be selected at the same time." -msgstr "" +msgstr "Peer und IP‑Adresse können nicht gleichzeitig ausgewählt werden." #: firewall/forms.py:57 msgid "IP Address cannot be used without selecting a WireGuard instance." msgstr "" +"Eine IP‑Adresse kann nicht verwendet werden, ohne eine WireGuard‑Instanz " +"auszuwählen." #: firewall/forms.py:81 msgid "wg+ (Any WireGuard Interface)" -msgstr "" +msgstr "wg+ (beliebige WireGuard‑Schnittstelle)" #: firewall/forms.py:112 msgid "Firewall Chain" -msgstr "" +msgstr "Firewall‑Kette" #: firewall/forms.py:113 msgid "In Interface" -msgstr "" +msgstr "Eingangs‑Interface" #: firewall/forms.py:114 msgid "Out Interface" -msgstr "" +msgstr "Ausgangs‑Interface" #: firewall/forms.py:115 msgid "Source IP" -msgstr "" +msgstr "Quell‑IP" #: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:18 #: wireguard_peer/forms.py:30 msgid "Netmask" -msgstr "" +msgstr "Netzmaske" #: firewall/forms.py:117 msgid "Source Peer" -msgstr "" +msgstr "Quell‑Peer" #: firewall/forms.py:118 msgid "Source Peer Include Networks" -msgstr "" +msgstr "Quell‑Peer‑Netze einbeziehen" #: firewall/forms.py:119 msgid "Not Source" -msgstr "" +msgstr "Nicht Quelle" #: firewall/forms.py:120 msgid "Destination IP" -msgstr "" +msgstr "Ziel‑IP" #: firewall/forms.py:122 msgid "Destination Peer" -msgstr "" +msgstr "Ziel‑Peer" #: firewall/forms.py:123 msgid "Destination Peer Include Networks" -msgstr "" +msgstr "Ziel‑Peer‑Netze einbeziehen" #: firewall/forms.py:124 msgid "Not Destination" -msgstr "" +msgstr "Nicht Ziel" #: firewall/forms.py:125 templates/firewall/firewall_rule_list.html:44 #: templates/firewall/manage_firewall_rule.html:263 #: templates/firewall/manage_redirect_rule.html:22 #: templates/firewall/redirect_rule_list.html:13 msgid "Protocol" -msgstr "" +msgstr "Protokoll" #: firewall/forms.py:126 templates/firewall/manage_redirect_rule.html:35 msgid "Destination Port" -msgstr "" +msgstr "Ziel‑Port" #: firewall/forms.py:127 templates/firewall/firewall_rule_list.html:141 msgid "New" -msgstr "" +msgstr "Neu" #: firewall/forms.py:128 templates/firewall/firewall_rule_list.html:60 #: templates/firewall/firewall_rule_list.html:142 msgid "Related" -msgstr "" +msgstr "Verwandt" #: firewall/forms.py:129 templates/firewall/firewall_rule_list.html:61 #: templates/firewall/firewall_rule_list.html:143 msgid "Established" -msgstr "" +msgstr "Established" #: firewall/forms.py:130 templates/firewall/firewall_rule_list.html:144 msgid "Invalid" -msgstr "" +msgstr "Ungültig" #: firewall/forms.py:131 templates/firewall/firewall_rule_list.html:145 msgid "Untracked" -msgstr "" +msgstr "Nicht verfolgt" #: firewall/forms.py:132 msgid "Not State" -msgstr "" +msgstr "Nicht‑Zustand" #: firewall/forms.py:133 msgid "Rule Action" -msgstr "" +msgstr "Regel‑Aktion" #: firewall/forms.py:134 msgid "Sort Order" -msgstr "" +msgstr "Sortierreihenfolge" #: firewall/forms.py:182 msgid "Default Forward Policy" -msgstr "" +msgstr "Standard‑Forward‑Richtlinie" #: firewall/forms.py:182 firewall/models.py:62 firewall/models.py:75 #: firewall/models.py:76 templates/firewall/firewall_rule_list.html:63 @@ -354,315 +362,322 @@ msgstr "" #: templates/firewall/firewall_rule_list.html:168 #: templates/firewall/firewall_rule_list.html:187 msgid "ACCEPT" -msgstr "" +msgstr "Annehmen" #: firewall/forms.py:182 firewall/models.py:62 firewall/models.py:75 #: firewall/models.py:76 templates/firewall/firewall_rule_list.html:170 #: templates/firewall/firewall_rule_list.html:187 msgid "REJECT" -msgstr "" +msgstr "Zurückweisen" #: firewall/forms.py:182 firewall/models.py:62 firewall/models.py:75 #: firewall/models.py:76 msgid "DROP" -msgstr "" +msgstr "Verwerfen" #: firewall/forms.py:183 msgid "Allow Peer to Peer" -msgstr "" +msgstr "Peer‑zu‑Peer zulassen" #: firewall/forms.py:184 msgid "Allow Instance to Instance" -msgstr "" +msgstr "Instanz‑zu‑Instanz zulassen" #: firewall/forms.py:185 msgid "WAN Interface" -msgstr "" +msgstr "WAN‑Interface" #: firewall/models.py:62 msgid "MASQUERADE" -msgstr "" +msgstr "MASQUERADE" #: firewall/tools.py:44 msgid "Masquerade traffic from VPN to WAN" -msgstr "" +msgstr "VPN‑Verkehr zum WAN maskieren" #: firewall/tools.py:54 firewall/tools.py:58 firewall/tools.py:62 msgid "Reject traffic to private networks exiting on WAN interface" -msgstr "" +msgstr "Verkehr zu privaten Netzen über das WAN‑Interface zurückweisen" #: firewall/tools.py:66 msgid "Allow traffic from VPN to WAN" -msgstr "" +msgstr "Verkehr von VPN zum WAN zulassen" #: firewall/views.py:21 msgid "Port Forward List" -msgstr "" +msgstr "Port‑Forward‑Liste" #: firewall/views.py:32 msgid "Manage Port Forward" -msgstr "" +msgstr "Port‑Forward verwalten" #: firewall/views.py:42 msgid "Port Forward rule deleted successfully" -msgstr "" +msgstr "Port‑Forward‑Regel erfolgreich gelöscht" #: firewall/views.py:44 msgid "" "Error deleting Port Forward rule|Confirmation did not match. Port Forward " "rule was not deleted." msgstr "" +"Fehler beim Löschen der Port‑Forward‑Regel|Bestätigung stimmte nicht " +"überein. Port‑Forward‑Regel wurde nicht gelöscht." #: firewall/views.py:54 msgid "Port Forward rule saved successfully" -msgstr "" +msgstr "Port‑Forward‑Regel erfolgreich gespeichert" #: firewall/views.py:79 msgid "Firewall Rule List" -msgstr "" +msgstr "Firewall‑Regelliste" #: firewall/views.py:93 msgid "Manage Firewall Rule" -msgstr "" +msgstr "Firewall‑Regel verwalten" #: firewall/views.py:111 msgid "Firewall rule deleted successfully" -msgstr "" +msgstr "Firewall‑Regel erfolgreich gelöscht" #: firewall/views.py:113 msgid "" "Error deleting Firewall rule|Confirmation did not match. Firewall rule was " "not deleted." msgstr "" +"Fehler beim Löschen der Firewall‑Regel|Bestätigung stimmte nicht überein. " +"Firewall‑Regel wurde nicht gelöscht." #: firewall/views.py:125 msgid "Firewall rule saved successfully" -msgstr "" +msgstr "Firewall‑Regel erfolgreich gespeichert" #: firewall/views.py:157 msgid "Manage Firewall Settings" -msgstr "" +msgstr "Firewall‑Einstellungen verwalten" #: firewall/views.py:173 msgid "Firewall settings saved successfully" -msgstr "" +msgstr "Firewall‑Einstellungen erfolgreich gespeichert" #: intl_tools/forms.py:11 templates/accounts/login.html:36 msgid "Language" -msgstr "" +msgstr "Sprache" #: intl_tools/forms.py:22 templates/base.html:80 msgid "Change Language" -msgstr "" +msgstr "Sprache ändern" #: templates/access_denied.html:9 msgid "Access Denied" -msgstr "" +msgstr "Zugriff verweigert" #: templates/access_denied.html:12 msgid "Sorry, you do not have permission to access this page." -msgstr "" +msgstr "Sie haben leider keine Berechtigung, diese Seite aufzurufen." #: templates/access_denied.html:12 msgid "" "Please contact your system administrator if you believe this is an error." msgstr "" +"Wenden Sie sich an Ihren Systemadministrator, wenn Sie einen Fehler vermuten." #: templates/accounts/login.html:14 templates/user_manager/list.html:8 #: user_manager/forms.py:13 vpn_invite/forms.py:281 msgid "Username" -msgstr "" +msgstr "Benutzername" #: templates/accounts/login.html:23 #: templates/vpn_invite/invite_settings.html:19 user_manager/forms.py:14 #: vpn_invite/forms.py:282 msgid "Password" -msgstr "" +msgstr "Passwort" #: templates/accounts/login.html:32 msgid "Login" -msgstr "" +msgstr "Anmelden" #: templates/accounts/logout.html:11 msgid "You have been successfully logged out." -msgstr "" +msgstr "Sie wurden erfolgreich abgemeldet." #: templates/accounts/logout.html:14 msgid "Login again" -msgstr "" +msgstr "Erneut anmelden" #: templates/base.html:112 templates/dns/static_host_list.html:72 #: vpn_invite/forms.py:78 vpn_invite/forms.py:79 vpn_invite/forms.py:80 #: vpn_invite/forms.py:81 vpn_invite/forms.py:82 msgid "Status" -msgstr "" +msgstr "Status" #: templates/base.html:158 user_manager/views.py:74 msgid "User Manager" -msgstr "" +msgstr "Benutzerverwaltung" #: templates/base.html:176 templates/wireguard/wireguard_peer_list.html:195 #: vpn_invite/views.py:37 msgid "VPN Invite" -msgstr "" +msgstr "VPN‑Einladung" #: templates/base.html:254 msgid "Update Required" -msgstr "" +msgstr "Aktualisierung erforderlich" #: templates/base.html:256 msgid "" "Your WireGuard settings have been modified. To apply these changes, please " "update the configuration and reload the WireGuard service." msgstr "" +"Ihre WireGuard‑Einstellungen wurden geändert. Um die Änderungen anzuwenden, " +"aktualisieren Sie die Konfiguration und laden Sie den WireGuard‑Dienst neu." #: templates/base.html:265 msgid "Update and restart service" -msgstr "" +msgstr "Aktualisieren und Dienst neu starten" #: templates/base.html:273 msgid "Update and reload service" -msgstr "" +msgstr "Aktualisieren und Dienst neu laden" #: templates/base.html:286 msgid "Update Available" -msgstr "" +msgstr "Aktualisierung verfügbar" #: templates/base.html:288 msgid "Version" -msgstr "" +msgstr "Version" #: templates/console/console.html:12 msgid "Clear" -msgstr "" +msgstr "Leeren" #: templates/console/console.html:27 msgid "Destination Hostname or IP Address" -msgstr "" +msgstr "Ziel‑Hostname oder IP‑Adresse" #: templates/dns/static_host_list.html:9 msgid "Static Host List" -msgstr "" +msgstr "Statische Hostliste" #: templates/dns/static_host_list.html:45 msgid "Add" -msgstr "" +msgstr "Hinzufügen" #: templates/dns/static_host_list.html:46 msgid "Settings" -msgstr "" +msgstr "Einstellungen" #: templates/dns/static_host_list.html:47 msgid "Apply" -msgstr "" +msgstr "Anwenden" #: templates/dns/static_host_list.html:59 msgid "DNS Filter Lists" -msgstr "" +msgstr "DNS‑Filterlisten" #: templates/dns/static_host_list.html:70 msgid "Hosts" -msgstr "" +msgstr "Hosts" #: templates/dns/static_host_list.html:71 msgid "Last Update" -msgstr "" +msgstr "Letzte Aktualisierung" #: templates/dns/static_host_list.html:73 msgid "Update" -msgstr "" +msgstr "Aktualisieren" #: templates/dns/static_host_list.html:74 templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 #: templates/wireguard/wireguard_peer_list.html:196 msgid "Edit" -msgstr "" +msgstr "Bearbeiten" #: templates/dns/static_host_list.html:116 msgid "Add Filter List" -msgstr "" +msgstr "Filterliste hinzufügen" #: templates/firewall/firewall_nav_tabs.html:11 msgid "Port Forward" -msgstr "" +msgstr "Port‑Forward" #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" -msgstr "" +msgstr "Standard‑Richtlinie" #: templates/firewall/firewall_rule_list.html:40 msgid "In" -msgstr "" +msgstr "Eingehend" #: templates/firewall/firewall_rule_list.html:41 msgid "Out" -msgstr "" +msgstr "Ausgehend" #: templates/firewall/firewall_rule_list.html:42 #: templates/firewall/manage_firewall_rule.html:141 msgid "Source" -msgstr "" +msgstr "Quelle" #: templates/firewall/firewall_rule_list.html:43 #: templates/firewall/manage_firewall_rule.html:202 #: templates/firewall/redirect_rule_list.html:15 msgid "Destination" -msgstr "" +msgstr "Ziel" #: templates/firewall/firewall_rule_list.html:45 #: templates/firewall/manage_redirect_rule.html:30 #: templates/firewall/redirect_rule_list.html:14 #: templates/wireguard/wireguard_status.html:47 vpn_invite/forms.py:284 msgid "Port" -msgstr "" +msgstr "Port" #: templates/firewall/firewall_rule_list.html:46 msgid "State" -msgstr "" +msgstr "Status" #: templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 msgid "Action" -msgstr "" +msgstr "Aktion" #: templates/firewall/firewall_rule_list.html:53 msgid "Automatic rule: Allow established/related traffic" -msgstr "" +msgstr "Automatische Regel: Etablierten/verwandten Verkehr zulassen" #: templates/firewall/firewall_rule_list.html:58 #: templates/firewall/firewall_rule_list.html:138 msgid "all" -msgstr "" +msgstr "alle" #: templates/firewall/firewall_rule_list.html:71 #: templates/firewall/firewall_rule_list.html:97 msgid "Automatic Rule: Port forward." -msgstr "" +msgstr "Automatische Regel: Port‑Forward." #: templates/firewall/firewall_rule_list.html:158 msgid "Automatic Rule: Firewall Settings Peer to Peer traffic" -msgstr "" +msgstr "Automatische Regel: Firewall‑Einstellung Peer‑zu‑Peer‑Verkehr" #: templates/firewall/firewall_rule_list.html:179 msgid "Automatic Rule: Firewall Settings Instance to Instance" -msgstr "" +msgstr "Automatische Regel: Firewall‑Einstellung Instanz‑zu‑Instanz‑Verkehr" #: templates/firewall/firewall_rule_list.html:194 msgid "Create Firewall Rule" -msgstr "" +msgstr "Firewall‑Regel erstellen" #: templates/firewall/firewall_rule_list.html:195 #: templates/firewall/redirect_rule_list.html:59 msgid "Firewall Settings" -msgstr "" +msgstr "Firewall‑Einstellungen" #: templates/firewall/firewall_rule_list.html:196 msgid "Display automatic rules" -msgstr "" +msgstr "Automatische Regeln anzeigen" #: templates/firewall/manage_firewall_rule.html:18 msgid "General" -msgstr "" +msgstr "Allgemein" #: templates/firewall/manage_firewall_rule.html:79 msgid "" @@ -680,10 +695,24 @@ msgid "" "

\n" " " msgstr "" +"\n" +"
Erweiterte " +"VPN‑Firewall‑Konfiguration
\n" +"

\n" +" Diese Oberfläche ist ein umfassendes " +"Werkzeug zur Verwaltung von Firewall‑Regeln. Sie erlaubt es, komplexe " +"Verkehrsrichtlinien zwischen VPN‑Peers und ‑Netzen umzusetzen, vereinfacht " +"die Einrichtung von Regeln, Paketfiltern und NAT‑Konfigurationen und " +"ermöglicht so eine präzise Kontrolle der Netzwerksicherheit. Nutzer können " +"Quell‑ und Ziel‑IP‑Adressen, Ports, Protokolle und Aktionen definieren, um " +"den Datenfluss genau anzupassen und eine sichere, effiziente Umgebung zu " +"gewährleisten.\n" +"

\n" +" " #: templates/firewall/manage_firewall_rule.html:100 msgid "Interface" -msgstr "" +msgstr "Schnittstelle" #: templates/firewall/manage_firewall_rule.html:179 msgid "" @@ -704,6 +733,22 @@ msgid "" "

\n" " " msgstr "" +"\n" +"
Quellenauswahl
\n" +"

\n" +" Diese Regel kann auf eine bestimmte " +"IP‑Adresse bzw. ein Netz und/oder auf mehrere Peers angewendet werden." +"

\n" +" Wenn Sie \"Peer‑Netze einbeziehen\" " +"aktivieren, werden automatisch alle Allowed‑IPs der ausgewählten Peers " +"einbezogen.

\n" +" Beachten Sie, dass bei Auswahl " +"mehrerer Peers – sowohl für Quelle als auch Ziel – die Anzahl der " +"generierten Regeln stark ansteigen kann.

\n" +" Die Option \"Nicht Quelle\" verneint " +"die gewählte Quell‑IP, das Netz oder die Peers.\n" +"

\n" +" " #: templates/firewall/manage_firewall_rule.html:240 msgid "" @@ -725,6 +770,22 @@ msgid "" "

\n" " " msgstr "" +"\n" +"
Zielauswahl
\n" +"

\n" +" Diese Regel kann auf eine bestimmte " +"IP‑Adresse bzw. ein Netz und/oder auf mehrere Peers als Ziel angewendet " +"werden.

\n" +" Wenn Sie \"Peer‑Netze einbeziehen\" " +"aktivieren, werden automatisch alle Allowed‑IPs der ausgewählten Peers als " +"Ziel einbezogen.

\n" +" Beachten Sie, dass bei Auswahl " +"mehrerer Peers – sowohl für Quelle als auch Ziel – die Anzahl der " +"generierten Regeln stark ansteigen kann.

\n" +" Die Option \"Nicht Ziel\" verneint " +"die gewählte Ziel‑IP, das Netz oder die Peers.\n" +"

\n" +" " #: templates/firewall/manage_firewall_rule.html:297 msgid "" @@ -741,18 +802,30 @@ msgid "" "

\n" " " msgstr "" +"\n" +"
Protokoll und Port
\n" +"

\n" +" Hier sind nur die gängigsten " +"Protokolle aufgeführt. Benötigen Sie ein anderes Protokoll, eröffnen Sie " +"bitte ein Issue auf GitHub.

\n" +" Die Auswahl \"TCP+UDP\" erzeugt für " +"jedes Protokoll eine eigene Regel.

\n" +" Ports können als Einzelwert (z. " +"B. 8080) oder als Bereich (z. B. 8001:8999) angegeben werden.\n" +"

\n" +" " #: templates/firewall/manage_firewall_rule.html:320 msgid "Packet State" -msgstr "" +msgstr "Paket‑Zustand" #: templates/firewall/manage_firewall_rule.html:471 msgid "Please type 'delete' to remove this firewall rule." -msgstr "" +msgstr "Geben Sie 'delete' ein, um diese Firewall‑Regel zu entfernen." #: templates/firewall/manage_firewall_settings.html:61 msgid "Reset firewall to default" -msgstr "" +msgstr "Firewall auf Standard zurücksetzen" #: templates/firewall/manage_firewall_settings.html:77 msgid "" @@ -760,29 +833,32 @@ msgid "" "sure you want to continue?\\n\\nType 'delete all rules and reset firewall' " "to confirm." msgstr "" +"Das Zurücksetzen der Firewall auf die Standardwerte löscht alle Regeln und " +"Einstellungen. Möchten Sie wirklich fortfahren?\\n\\nGeben Sie 'delete all " +"rules and reset firewall' ein, um zu bestätigen." #: templates/firewall/manage_redirect_rule.html:40 msgid "Destination Type" -msgstr "" +msgstr "Zieltyp" #: templates/firewall/manage_redirect_rule.html:42 #: templates/firewall/manage_redirect_rule.html:48 #: templates/vpn_invite/invite_settings.html:17 user_manager/forms.py:178 msgid "Peer" -msgstr "" +msgstr "Peer" #: templates/firewall/manage_redirect_rule.html:57 msgid "WireGuard Instance" -msgstr "" +msgstr "WireGuard‑Instanz" #: templates/firewall/manage_redirect_rule.html:74 msgid "Add Forward Rule (allow)" -msgstr "" +msgstr "Forward‑Regel hinzufügen (zulassen)" #: templates/firewall/manage_redirect_rule.html:80 #: templates/firewall/redirect_rule_list.html:17 msgid "Masquerade Source" -msgstr "" +msgstr "Quelle maskieren" #: templates/firewall/manage_redirect_rule.html:91 msgid "" @@ -812,18 +888,43 @@ msgid "" "all connections to match the IP address of the WireGuard instance.

\n" " " msgstr "" +"\n" +"
Standard‑Ports
\n" +"

Die mitgelieferte docker-compose.yml " +"definiert den TCP‑Portbereich 8080‑8089. Soll das " +"Port‑Forwarding einen anderen Bereich verwenden, bearbeiten Sie die Datei " +"manuell und wiederholen Sie den in den Deploy‑Anweisungen beschriebenen " +"Docker‑Compose‑Schritt.

\n" +"
Zieltyp Peer
\n" +"

Die Weiterleitung verwendet vorrangig die erste " +"Peer‑IP mit Priorität 0.

\n" +"
Zieltyp IP‑Adresse
\n" +"

Weiterleitungsregeln leiten an die angegebene IP-" +"Adresse weiter. Denken Sie daran, die Adresse bzw. das Netz einem Peer " +"zuzuweisen.

\n" +"
Forward‑Regel hinzufügen
\n" +"

Erzeugt automatisch eine Forward‑Regel für " +"strengere Firewall‑Konfigurationen.

\n" +"
Quelle maskieren
\n" +"

Dient als Übergangslösung, wenn ein Peer die " +"VPN‑Verbindung nicht als Standard‑Gateway nutzt. Nicht empfohlen, da die " +"Quelladresse sämtlicher Verbindungen auf die IP der WireGuard‑Instanz " +"umgeschrieben wird.

\n" +" " #: templates/firewall/manage_redirect_rule.html:143 msgid "To delete this rule, please type:" -msgstr "" +msgstr "Zum Löschen dieser Regel geben Sie bitte ein:" #: templates/firewall/redirect_rule_list.html:12 msgid "Instance" -msgstr "" +msgstr "Instanz" #: templates/firewall/redirect_rule_list.html:16 msgid "Allow Forward" -msgstr "" +msgstr "Forward zulassen" #: templates/firewall/redirect_rule_list.html:46 msgid "" @@ -832,169 +933,172 @@ msgid "" "recommended, as it alters the source address of all connections to match the " "IP address of the WireGuard instance." msgstr "" +"Dies ist nur eine Übergangslösung, wenn ein Peer das VPN nicht als " +"Standard‑Gateway nutzt. Diese Konfiguration wird nicht empfohlen, da sie die " +"Quelladresse sämtlicher Verbindungen auf die IP‑Adresse der " +"WireGuard‑Instanz umschreibt." #: templates/firewall/redirect_rule_list.html:58 msgid "Create Port forwarding Rule" -msgstr "" +msgstr "Port‑Weiterleitungsregel erstellen" #: templates/user_manager/list.html:9 user_manager/forms.py:20 msgid "User Level" -msgstr "" +msgstr "Benutzerstufe" -#: templates/user_manager/list.html:10 user_manager/forms.py:24 -#: user_manager/views.py:17 +#: templates/user_manager/list.html:10 user_manager/forms.py:24 user_manager/views.py:17 msgid "Peer Groups" -msgstr "" +msgstr "Peer‑Gruppen" #: templates/user_manager/list.html:11 msgid "Permissions" -msgstr "" +msgstr "Berechtigungen" #: templates/user_manager/list.html:26 msgid "All" -msgstr "" +msgstr "Alle" #: templates/user_manager/list.html:31 msgid "Restart Enabled" -msgstr "" +msgstr "Neustart aktiviert" #: templates/user_manager/list.html:36 msgid "Reload Enabled" -msgstr "" +msgstr "Neuladen aktiviert" #: templates/user_manager/list.html:42 msgid "Console Enabled" -msgstr "" +msgstr "Konsole aktiviert" #: templates/user_manager/list.html:48 msgid "Enhanced Filter Enabled" -msgstr "" +msgstr "Erweiterter Filter aktiviert" #: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 msgid "Add User" -msgstr "" +msgstr "Benutzer hinzufügen" #: templates/user_manager/list_buttons.html:3 msgid "List Users" -msgstr "" +msgstr "Benutzer auflisten" #: templates/user_manager/list_buttons.html:4 msgid "List Peer Groups" -msgstr "" +msgstr "Peer‑Gruppen auflisten" #: templates/user_manager/list_buttons.html:5 user_manager/views.py:43 msgid "Add Peer Group" -msgstr "" +msgstr "Peer‑Gruppe hinzufügen" #: templates/user_manager/peer_group_list.html:9 #: templates/wireguard/wireguard_status.html:48 msgid "Peers" -msgstr "" +msgstr "Peers" #: templates/user_manager/peer_group_list.html:10 user_manager/forms.py:179 msgid "Server Instance" -msgstr "" +msgstr "Server‑Instanz" #: templates/user_manager/peer_group_list.html:11 msgid "Users" -msgstr "" +msgstr "Benutzer" #: templates/vpn_invite/invite_settings.html:18 msgid "Expiration" -msgstr "" +msgstr "Ablauf" #: templates/vpn_invite/invite_settings.html:31 msgid "Remove VPN invitation for peer" -msgstr "" +msgstr "VPN‑Einladung für Peer entfernen" #: templates/vpn_invite/invite_settings.html:38 msgid "No active VPN invitations" -msgstr "" +msgstr "Keine aktiven VPN‑Einladungen" #: templates/vpn_invite/invite_settings.html:49 vpn_invite/views.py:77 msgid "Email Settings" -msgstr "" +msgstr "E‑Mail‑Einstellungen" #: templates/vpn_invite/invite_settings.html:50 msgid "Invite Settings" -msgstr "" +msgstr "Einladungs‑Einstellungen" #: templates/wireguard/wireguard_manage_ip.html:18 msgid "Enter Allowed IP" -msgstr "" +msgstr "Erlaubte IP eingeben" #: templates/wireguard/wireguard_manage_ip.html:34 #: templates/wireguard/wireguard_manage_peer.html:103 #: templates/wireguard/wireguard_manage_peer.html:153 #: wireguard_peer/forms.py:31 msgid "Priority" -msgstr "" +msgstr "Priorität" #: templates/wireguard/wireguard_manage_ip.html:58 msgid "Please type \\\"delete\\\" to remove this IP address." -msgstr "" +msgstr "Geben Sie \\\"delete\\\" ein, um diese IP‑Adresse zu löschen." #: templates/wireguard/wireguard_manage_peer.html:8 msgid "Peer Configuration" -msgstr "" +msgstr "Peer‑Konfiguration" #: templates/wireguard/wireguard_manage_peer.html:17 msgid "Enter Name" -msgstr "" +msgstr "Name eingeben" #: templates/wireguard/wireguard_manage_peer.html:23 wireguard_peer/forms.py:14 msgid "Persistent Keepalive" -msgstr "" +msgstr "Persistent Keepalive" #: templates/wireguard/wireguard_manage_peer.html:29 wireguard/forms.py:14 #: wireguard_peer/forms.py:11 msgid "Public Key" -msgstr "" +msgstr "Public Key" #: templates/wireguard/wireguard_manage_peer.html:36 wireguard/forms.py:13 #: wireguard_peer/forms.py:12 msgid "Private Key" -msgstr "" +msgstr "Private Key" #: templates/wireguard/wireguard_manage_peer.html:46 wireguard_peer/forms.py:13 msgid "Pre-Shared Key" -msgstr "" +msgstr "Pre‑Shared Key" #: templates/wireguard/wireguard_manage_peer.html:57 #: templates/wireguard/wireguard_peer_list.html:136 msgid "Peer Traffic" -msgstr "" +msgstr "Peer‑Traffic" #: templates/wireguard/wireguard_manage_peer.html:73 #: templates/wireguard/wireguard_peer_list.html:151 msgid "No traffic history, please wait a few minutes" -msgstr "" +msgstr "Keine Verkehrsdaten vorhanden, bitte einige Minuten warten" #: templates/wireguard/wireguard_manage_peer.html:85 msgid "AllowedIPs at Peer section of wg" -msgstr "" +msgstr "AllowedIPs in der Peer‑Sektion von wg" #: templates/wireguard/wireguard_manage_peer.html:86 msgid "Peer IP Addresses and networks" -msgstr "" +msgstr "Peer‑IP‑Adressen und Netze" #: templates/wireguard/wireguard_manage_peer.html:88 #: templates/wireguard/wireguard_manage_peer.html:169 msgid "Add IP Address" -msgstr "" +msgstr "IP‑Adresse hinzufügen" #: templates/wireguard/wireguard_manage_peer.html:101 #: templates/wireguard/wireguard_manage_peer.html:151 msgid "Main ip address" -msgstr "" +msgstr "Haupt‑IP‑Adresse" #: templates/wireguard/wireguard_manage_peer.html:116 msgid "Client Routing Configuration" -msgstr "" +msgstr "Client‑Routing‑Konfiguration" #: templates/wireguard/wireguard_manage_peer.html:118 msgid "Add Client route" -msgstr "" +msgstr "Client‑Route hinzufügen" #: templates/wireguard/wireguard_manage_peer.html:124 msgid "" @@ -1004,6 +1108,10 @@ msgid "" "will need to manually update the client configuration file to reflect these " "settings." msgstr "" +"Der Client ist nicht so konfiguriert, dass er das VPN als Standard‑Gateway " +"verwendet.\\n\\nNur die unten aufgeführten Netze werden über das VPN " +"geroutet.\\n\\nHinweis: Diese Routen werden nicht automatisch zum Client " +"übertragen; Sie müssen die Client‑Konfigurationsdatei manuell anpassen." #: templates/wireguard/wireguard_manage_peer.html:127 msgid "" @@ -1011,133 +1119,140 @@ msgid "" "setting routes all client internet traffic through the VPN, enhancing " "privacy and security across all connections." msgstr "" +"Der Client verwendet das VPN als Standard‑Gateway. \\n\\nDamit wird der " +"gesamte Internet‑Verkehr des Clients durch das VPN geleitet, was " +"Privatsphäre und Sicherheit erhöht." #: templates/wireguard/wireguard_manage_peer.html:136 msgid "default route" -msgstr "" +msgstr "Standard‑Route" #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Delete Peer" -msgstr "" +msgstr "Peer löschen" #: templates/wireguard/wireguard_manage_peer.html:188 msgid "Action Required!" -msgstr "" +msgstr "Aktion erforderlich!" #: templates/wireguard/wireguard_manage_peer.html:189 msgid "" "When manually updating the \"Public Key\", \"Pre-Shared Key\", or \"Private " "Key\", please ensure the configuration is correct." msgstr "" +"Wenn Sie \"Public Key\", \"Pre‑Shared Key\" oder \"Private Key\" manuell " +"ändern, stellen Sie sicher, dass die Konfiguration korrekt ist." #: templates/wireguard/wireguard_manage_peer.html:209 msgid "Please type \\\"delete\\\" to remove peer configuration." -msgstr "" +msgstr "Geben Sie \\\"delete\\\" ein, um die Peer‑Konfiguration zu entfernen." #: templates/wireguard/wireguard_manage_server.html:18 msgid "Create Instance" -msgstr "" +msgstr "Instanz erstellen" #: templates/wireguard/wireguard_manage_server.html:132 msgid "Delete Configuration" -msgstr "" +msgstr "Konfiguration löschen" #: templates/wireguard/wireguard_peer_list.html:75 #: templates/wireguard/wireguard_peer_list.html:125 msgid "Throughput" -msgstr "" +msgstr "Durchsatz" #: templates/wireguard/wireguard_peer_list.html:76 #: templates/wireguard/wireguard_peer_list.html:126 msgid "Transfer" -msgstr "" +msgstr "Übertragen" #: templates/wireguard/wireguard_peer_list.html:77 #: templates/wireguard/wireguard_peer_list.html:127 msgid "Latest Handshake" -msgstr "" +msgstr "Letzter Handshake" #: templates/wireguard/wireguard_peer_list.html:79 #: templates/wireguard/wireguard_peer_list.html:128 msgid "Endpoints" -msgstr "" +msgstr "Endpoints" #: templates/wireguard/wireguard_peer_list.html:81 #: templates/wireguard/wireguard_peer_list.html:129 msgid "Allowed IPs" -msgstr "" +msgstr "Erlaubte IPs" #: templates/wireguard/wireguard_peer_list.html:102 msgid "Are you sure you want to create a new peer?" -msgstr "" +msgstr "Sind Sie sicher, dass Sie einen neuen Peer erstellen möchten?" #: templates/wireguard/wireguard_peer_list.html:102 #: templates/wireguard/wireguard_peer_list.html:104 msgid "Create Peer" -msgstr "" +msgstr "Peer erstellen" #: templates/wireguard/wireguard_peer_list.html:106 #: templates/wireguard/wireguard_peer_list.html:617 msgid "Show extras" -msgstr "" +msgstr "Extras anzeigen" #: templates/wireguard/wireguard_peer_list.html:158 msgid "Close QR Code" -msgstr "" +msgstr "QR‑Code schließen" #: templates/wireguard/wireguard_peer_list.html:168 msgid "VPN Invite Details" -msgstr "" +msgstr "VPN‑Einladungsdetails" #: templates/wireguard/wireguard_peer_list.html:174 msgid "Expires on" -msgstr "" +msgstr "Läuft ab am" #: templates/wireguard/wireguard_peer_list.html:178 msgid "Enter Email or WhatsApp Number" -msgstr "" +msgstr "E‑Mail‑Adresse oder WhatsApp‑Nummer eingeben" #: templates/wireguard/wireguard_peer_list.html:179 msgid "Email or phone number" -msgstr "" +msgstr "E‑Mail oder Telefonnummer" #: templates/wireguard/wireguard_peer_list.html:182 msgid "Copy Text" -msgstr "" +msgstr "Text kopieren" #: templates/wireguard/wireguard_peer_list.html:183 msgid "Email" -msgstr "" +msgstr "E‑Mail" #: templates/wireguard/wireguard_peer_list.html:184 msgid "WhatsApp" -msgstr "" +msgstr "WhatsApp" #: templates/wireguard/wireguard_peer_list.html:192 msgid "Close" -msgstr "" +msgstr "Schließen" #: templates/wireguard/wireguard_peer_list.html:193 msgid "Config" -msgstr "" +msgstr "Konfig" #: templates/wireguard/wireguard_peer_list.html:194 msgid "QR Code" -msgstr "" +msgstr "QR‑Code" #: templates/wireguard/wireguard_peer_list.html:204 msgid "No WireGuard Instances Found" -msgstr "" +msgstr "Keine WireGuard‑Instanzen gefunden" #: templates/wireguard/wireguard_peer_list.html:205 msgid "" "There are no WireGuard instances configured. You can add a new instance by " "clicking the button below." msgstr "" +"Es sind keine WireGuard‑Instanzen konfiguriert. Sie können eine neue Instanz " +"hinzufügen, indem Sie unten auf die Schaltfläche klicken." #: templates/wireguard/wireguard_peer_list.html:208 msgid "Add WireGuard Instance" -msgstr "" +msgstr "WireGuard‑Instanz hinzufügen" #: templates/wireguard/wireguard_peer_list.html:570 msgid "" @@ -1145,6 +1260,9 @@ msgid "" "indicating that another peer has an IP overlapping this network or that the " "configuration file is outdated." msgstr "" +"Diese Adresse erscheint nicht in der Ausgabe von \"wg show\". Wahrscheinlich " +"verwendet ein anderer Peer eine überlappende IP oder die Konfigurationsdatei " +"ist veraltet." #: templates/wireguard/wireguard_peer_list.html:585 msgid "" @@ -1152,158 +1270,161 @@ msgid "" "may indicate that another peer is using an overlapping IP or that the " "configuration file is outdated." msgstr "" +"Mindestens eine Adresse erscheint nicht in der Ausgabe von \"wg show\". " +"Möglicherweise nutzt ein anderer Peer eine überlappende IP oder die " +"Konfiguration ist veraltet." #: templates/wireguard/wireguard_peer_list.html:614 msgid "Hide extras" -msgstr "" +msgstr "Extras ausblenden" #: templates/wireguard/wireguard_peer_list.html:658 #: templates/wireguard/wireguard_peer_list.html:792 msgid "Access Password" -msgstr "" +msgstr "Zugangspasswort" #: templates/wireguard/wireguard_peer_list.html:658 #: templates/wireguard/wireguard_peer_list.html:792 msgid "(Share this password via a separate secure channel)" -msgstr "" +msgstr "(Teilen Sie dieses Passwort über einen getrennten sicheren Kanal)" #: templates/wireguard/wireguard_peer_list.html:661 msgid "Unknown error" -msgstr "" +msgstr "Unbekannter Fehler" #: templates/wireguard/wireguard_peer_list.html:665 msgid "Error creating invite." -msgstr "" +msgstr "Fehler beim Erstellen der Einladung." #: templates/wireguard/wireguard_peer_list.html:702 msgid "Invite text copied to clipboard." -msgstr "" +msgstr "Einladungstext in die Zwischenablage kopiert." #: templates/wireguard/wireguard_peer_list.html:704 msgid "Failed to copy text." -msgstr "" +msgstr "Text konnte nicht kopiert werden." #: templates/wireguard/wireguard_peer_list.html:707 msgid "Clipboard API not supported." -msgstr "" +msgstr "Clipboard‑API wird nicht unterstützt." #: templates/wireguard/wireguard_peer_list.html:716 msgid "Please enter a valid phone number for WhatsApp." -msgstr "" +msgstr "Bitte geben Sie eine gültige Telefonnummer für WhatsApp ein." #: templates/wireguard/wireguard_peer_list.html:728 #: templates/wireguard/wireguard_peer_list.html:774 msgid "Invite data is not available." -msgstr "" +msgstr "Einladungsdaten sind nicht verfügbar." #: templates/wireguard/wireguard_peer_list.html:737 msgid "Please enter a valid email address." -msgstr "" +msgstr "Bitte geben Sie eine gültige E‑Mail‑Adresse ein." #: templates/wireguard/wireguard_peer_list.html:759 msgid "Error sending email." -msgstr "" +msgstr "Fehler beim Senden der E‑Mail." #: templates/wireguard/wireguard_peer_list.html:796 #: templates/wireguard/wireguard_peer_list.html:800 msgid "Error refreshing invite." -msgstr "" +msgstr "Fehler beim Aktualisieren der Einladung." #: templates/wireguard/wireguard_peer_list.html:815 msgid "No invite data available to refresh." -msgstr "" +msgstr "Keine Einladungsdaten zum Aktualisieren verfügbar." #: templates/wireguard/wireguard_peer_list.html:835 msgid "Error closing invite:" -msgstr "" +msgstr "Fehler beim Schließen der Einladung:" #: templates/wireguard/wireguard_status.html:9 msgid "Update Configuration" -msgstr "" +msgstr "Konfiguration aktualisieren" #: templates/wireguard/wireguard_status.html:16 msgid "Restart Wireguard service" -msgstr "" +msgstr "WireGuard‑Dienst neu starten" #: templates/wireguard/wireguard_status.html:24 msgid "Reload Wireguard service" -msgstr "" +msgstr "WireGuard‑Dienst neu laden" #: templates/wireguard/wireguard_status.html:42 msgid "Instance Traffic" -msgstr "" +msgstr "Instanz‑Traffic" #: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:15 msgid "Public Address" -msgstr "" +msgstr "Öffentliche Adresse" #: user_manager/forms.py:15 msgid "Password Confirmation" -msgstr "" +msgstr "Passwortbestätigung" #: user_manager/forms.py:17 msgid "Reload WireGuard" -msgstr "" +msgstr "WireGuard neu laden" #: user_manager/forms.py:18 msgid "Restart WireGuard" -msgstr "" +msgstr "WireGuard neu starten" #: user_manager/forms.py:19 msgid "Enhanced Filter" -msgstr "" +msgstr "Erweiterter Filter" #: user_manager/forms.py:119 msgid "Password is required for new users." -msgstr "" +msgstr "Für neue Benutzer ist ein Passwort erforderlich." #: user_manager/forms.py:121 msgid "Password confirmation is required for new users." -msgstr "" +msgstr "Für neue Benutzer ist eine Passwortbestätigung erforderlich." #: user_manager/forms.py:125 msgid "The two password fields didn't match." -msgstr "" +msgstr "Die beiden Passwortfelder stimmen nicht überein." #: user_manager/forms.py:127 msgid "Password must be at least 8 characters long." -msgstr "" +msgstr "Das Passwort muss mindestens 8 Zeichen lang sein." #: user_manager/forms.py:220 msgid "A peer group with that name already exists." -msgstr "" +msgstr "Eine Peer‑Gruppe mit diesem Namen existiert bereits." #: user_manager/models.py:13 msgid "Debugging Analyst" -msgstr "" +msgstr "Debug‑Analyst" #: user_manager/models.py:14 vpn_invite/models.py:25 msgid "View Only" -msgstr "" +msgstr "Nur Ansicht" #: user_manager/models.py:15 vpn_invite/models.py:25 msgid "Peer Manager" -msgstr "" +msgstr "Peer‑Manager" #: user_manager/models.py:16 vpn_invite/models.py:25 msgid "WireGuard Manager" -msgstr "" +msgstr "WireGuard‑Manager" #: user_manager/models.py:17 vpn_invite/models.py:25 msgid "Administrator" -msgstr "" +msgstr "Administrator" #: user_manager/views.py:31 msgid "Edit Peer Group: " -msgstr "" +msgstr "Peer‑Gruppe bearbeiten: " #: user_manager/views.py:36 msgid "Peer Group deleted|Peer Group deleted: " -msgstr "" +msgstr "Peer‑Gruppe gelöscht|Gelöschte Peer‑Gruppe: " #: user_manager/views.py:39 msgid "Peer Group not deleted|Invalid confirmation." -msgstr "" +msgstr "Peer‑Gruppe nicht gelöscht|Ungültige Bestätigung." #: user_manager/views.py:58 msgid "" @@ -1317,30 +1438,40 @@ msgid "" "this peer group, including adding or removing peers.

\n" " " msgstr "" +"\n" +"
Peers
\n" +"

Wählen Sie, welche Peers von Benutzern dieser Peer‑Gruppe " +"verwaltet werden dürfen.

\n" +"\n" +"
WireGuard‑Instanzen
\n" +"

Alle Peers in dieser WireGuard‑Instanz können von Benutzern " +"dieser Peer‑Gruppe verwaltet werden, inklusive Hinzufügen und Entfernen von " +"Peers.

\n" +" " #: user_manager/views.py:98 msgid "Edit User" -msgstr "" +msgstr "Benutzer bearbeiten" #: user_manager/views.py:104 msgid "User deleted|User deleted: " -msgstr "" +msgstr "Benutzer gelöscht|Gelöschter Benutzer: " #: user_manager/views.py:107 msgid "User not deleted|Invalid confirmation." -msgstr "" +msgstr "Benutzer nicht gelöscht|Ungültige Bestätigung." #: user_manager/views.py:128 msgid "User Disconnected|User Disconnected: " -msgstr "" +msgstr "Benutzer getrennt|Benutzer getrennt: " #: user_manager/views.py:132 msgid "User updated|User updated: " -msgstr "" +msgstr "Benutzer aktualisiert|Benutzer aktualisiert: " #: user_manager/views.py:134 msgid "User created|User created: " -msgstr "" +msgstr "Benutzer erstellt|Benutzer erstellt: " #: user_manager/views.py:139 msgid "" @@ -1384,170 +1515,216 @@ msgid "" "\n" " " msgstr "" +"\n" +"

Benutzerstufen

\n" +"
Debug‑Analyst
\n" +"

Zugriff auf grundlegende Systeminformationen und Protokolle zur Fehlerbehebung. " +"Kein Zugriff zum Ändern von Einstellungen oder zum Einsehen sensibler Daten wie Peer‑Schlüssel.

\n" +"\n" +"
Nur Ansicht
\n" +"

Vollständiger Lesezugriff, einschließlich Peer‑Schlüssel und Konfigurationsdateien. " +"Es können jedoch keine Einstellungen oder Konfigurationen geändert werden.

\n" +"\n" +"
Peer‑Manager
\n" +"

Berechtigung zum Hinzufügen, Bearbeiten und Entfernen von Peers und IP‑Adressen. " +"Kein Zugriff auf die Konfiguration von WireGuard‑Instanzen oder höhere Systemeinstellungen.

\n" +"\n" +"
WireGuard‑Manager
\n" +"

Befugnis zum Hinzufügen, Bearbeiten und Entfernen der Konfigurationen von WireGuard‑Instanzen.

\n" +"\n" +"
Administrator
\n" +"

Vollzugriff auf das gesamte System. Kann alle Einstellungen und Konfigurationen anzeigen und ändern " +"sowie Benutzer verwalten.

\n" +"\n" +"
\n" +"

Peer‑Gruppen

\n" +"

Wählen Sie aus, auf welche Peer‑Gruppen dieser Benutzer zugreifen darf. " +"Wenn keine Gruppe ausgewählt ist, hat der Benutzer Zugriff auf alle Peers.

\n" +"\n" +"

Konsole

\n" +"

Aktivieren oder deaktivieren Sie den Zugriff auf die Web‑Konsole für diesen Benutzer.

\n" +"\n" +"

Erweiterter Filter

\n" +"

Diese Option filtert die API‑Statusantwort, sodass nur Peers angezeigt werden, " +"auf die der Benutzer Zugriff hat. Je nach Größe Ihrer Umgebung kann das Aktivieren dieser Option " +"die Leistung beeinträchtigen. Um dem entgegenzuwirken, erhöhen Sie gegebenenfalls das " +"„Web‑Aktualisierungsintervall“, um die Anzahl der Anfragen zu reduzieren.

\n" +"\n" +" " #: user_manager/views.py:175 msgid "Please type the username to proceed." -msgstr "" +msgstr "Bitte geben Sie den Benutzernamen ein, um fortzufahren." #: vpn_invite/forms.py:49 vpn_invite/forms.py:294 msgid "Enabled" -msgstr "" +msgstr "Aktiviert" #: vpn_invite/forms.py:49 msgid "Disabled" -msgstr "" +msgstr "Deaktiviert" #: vpn_invite/forms.py:68 vpn_invite/forms.py:69 vpn_invite/forms.py:70 #: vpn_invite/forms.py:71 vpn_invite/forms.py:72 msgid "URL" -msgstr "" +msgstr "URL" #: vpn_invite/forms.py:73 vpn_invite/forms.py:74 vpn_invite/forms.py:75 #: vpn_invite/forms.py:76 vpn_invite/forms.py:77 msgid "Text" -msgstr "" +msgstr "Text" #: vpn_invite/forms.py:83 msgid "Web Page Instructions" -msgstr "" +msgstr "Webseiten‑Anleitung" #: vpn_invite/forms.py:84 msgid "Email Subject" -msgstr "" +msgstr "E‑Mail‑Betreff" #: vpn_invite/forms.py:85 msgid "Email Message" -msgstr "" +msgstr "E‑Mail‑Nachricht" #: vpn_invite/forms.py:86 msgid "Email Enabled" -msgstr "" +msgstr "E‑Mail aktiviert" #: vpn_invite/forms.py:87 msgid "WhatsApp Message" -msgstr "" +msgstr "WhatsApp‑Nachricht" #: vpn_invite/forms.py:88 msgid "WhatsApp Enabled" -msgstr "" +msgstr "WhatsApp aktiviert" #: vpn_invite/forms.py:89 msgid "Text Message" -msgstr "" +msgstr "Textnachricht" #: vpn_invite/forms.py:90 msgid "Expiration (minutes)" -msgstr "" +msgstr "Ablauf (Minuten)" #: vpn_invite/forms.py:91 msgid "Random Password" -msgstr "" +msgstr "Zufallspasswort" #: vpn_invite/forms.py:92 msgid "Invite URL" -msgstr "" +msgstr "Einladungs‑URL" #: vpn_invite/forms.py:93 msgid "Required User Level" -msgstr "" +msgstr "Erforderliche Benutzerstufe" #: vpn_invite/forms.py:94 msgid "Default Password" -msgstr "" +msgstr "Standardpasswort" #: vpn_invite/forms.py:95 msgid "Random Password Length" -msgstr "" +msgstr "Länge des Zufallspassworts" #: vpn_invite/forms.py:96 msgid "Random Password Complexity" -msgstr "" +msgstr "Komplexität des Zufallspassworts" #: vpn_invite/forms.py:103 msgid "General Settings" -msgstr "" +msgstr "Allgemeine Einstellungen" #: vpn_invite/forms.py:125 msgid "Download Buttons" -msgstr "" +msgstr "Download‑Schaltflächen" #: vpn_invite/forms.py:158 msgid "Message templates" -msgstr "" +msgstr "Nachrichtenvorlagen" #: vpn_invite/forms.py:165 msgid "Email Message Template" -msgstr "" +msgstr "E‑Mail‑Vorlage" #: vpn_invite/forms.py:176 msgid "WhatsApp Message Template" -msgstr "" +msgstr "WhatsApp‑Vorlage" #: vpn_invite/forms.py:183 msgid "Text Message Template" -msgstr "" +msgstr "Textnachrichten‑Vorlage" #: vpn_invite/forms.py:205 msgid "Invite URL must start with 'https://'." -msgstr "" +msgstr "Die Einladungs‑URL muss mit 'https://' beginnen." #: vpn_invite/forms.py:207 msgid "Invite URL must end with '/invite/'." -msgstr "" +msgstr "Die Einladungs‑URL muss mit '/invite/' enden." #: vpn_invite/forms.py:213 msgid "Expiration (minutes) must be between 1 and 1440." -msgstr "" +msgstr "Der Ablauf (Minuten) muss zwischen 1 und 1440 liegen." #: vpn_invite/forms.py:222 msgid "Default password must not be provided when random password is enabled." msgstr "" +"Ein Standardpasswort darf nicht angegeben werden, wenn Zufallspasswort " +"aktiviert ist." #: vpn_invite/forms.py:224 msgid "Random password length must be at least 6 characters." -msgstr "" +msgstr "Die Länge des Zufallspassworts muss mindestens 6 Zeichen betragen." #: vpn_invite/forms.py:229 msgid "Default password must be provided when random password is disabled." msgstr "" +"Ein Standardpasswort muss angegeben werden, wenn Zufallspasswort deaktiviert " +"ist." #: vpn_invite/forms.py:231 msgid "Default password must be at least 6 characters long." -msgstr "" +msgstr "Das Standardpasswort muss mindestens 6 Zeichen lang sein." #: vpn_invite/forms.py:241 msgid "Text field must not be empty when download button is enabled." msgstr "" +"Das Textfeld darf nicht leer sein, wenn die Download‑Schaltfläche aktiviert " +"ist." #: vpn_invite/forms.py:243 msgid "URL field must not be empty when download button is enabled." msgstr "" +"Das URL‑Feld darf nicht leer sein, wenn die Download‑Schaltfläche aktiviert " +"ist." #: vpn_invite/forms.py:252 msgid "" "Default password must not be contained in any message template. Found at: " msgstr "" +"Das Standardpasswort darf in keiner Nachrichtenvorlage enthalten sein. " +"Gefunden in: " #: vpn_invite/forms.py:259 #, python-brace-format msgid "The template must include the placeholder '{invite_url}'." -msgstr "" +msgstr "Die Vorlage muss den Platzhalter '{invite_url}' enthalten." #: vpn_invite/forms.py:283 msgid "Host" -msgstr "" +msgstr "Host" #: vpn_invite/forms.py:285 msgid "Encryption" -msgstr "" +msgstr "Verschlüsselung" #: vpn_invite/forms.py:286 msgid "From Address" -msgstr "" +msgstr "Absenderadresse" #: vpn_invite/forms.py:337 msgid "SMTP port must be between 1 and 65535." -msgstr "" +msgstr "Der SMTP‑Port muss zwischen 1 und 65535 liegen." #: vpn_invite/models.py:8 #, python-brace-format @@ -1562,6 +1739,15 @@ msgid "" "Note: This invitation link will expire in {expire_minutes} minutes. If you " "need a new link after expiration, please request another invite." msgstr "" +"Hallo,\n" +"\n" +"Sie sind eingeladen, unserem sicheren WireGuard‑VPN beizutreten. Klicken Sie " +"auf den folgenden Link, um Ihre persönliche VPN‑Konfiguration abzurufen:\n" +"\n" +"{invite_url}\n" +"\n" +"Achtung: Dieser Link läuft in {expire_minutes} Minuten ab. Benötigen Sie " +"danach einen neuen, fordern Sie bitte eine weitere Einladung an." #: vpn_invite/models.py:16 msgid "" @@ -1572,22 +1758,28 @@ msgid "" "download the configuration file to quickly import your " "settings and start using your secure VPN connection.

" msgstr "" +"

Willkommen bei Ihrer VPN‑Einrichtung

\n" +"

Laden Sie zunächst die WireGuard‑App für Ihr Gerät über einen der " +"folgenden Links herunter.

\n" +"

Nach der Installation können Sie entweder den QR‑Code scannen oder die Konfigurationsdatei herunterladen, um Ihre " +"Einstellungen zu importieren und Ihre sichere VPN‑Verbindung zu starten.

" #: vpn_invite/models.py:30 msgid "Letters, Digits, Special Characters" -msgstr "" +msgstr "Buchstaben, Ziffern, Sonderzeichen" #: vpn_invite/models.py:31 msgid "Letters, Digits" -msgstr "" +msgstr "Buchstaben, Ziffern" #: vpn_invite/models.py:31 msgid "Letters" -msgstr "" +msgstr "Buchstaben" #: vpn_invite/models.py:31 msgid "Digits" -msgstr "" +msgstr "Ziffern" #: vpn_invite/models.py:55 msgid "" @@ -1595,227 +1787,248 @@ msgid "" "After installation, you can scan the QR code or download the configuration " "file to import on your device." msgstr "" +"Laden Sie die WireGuard‑App für Ihr Gerät über einen der Links unten " +"herunter. Nach der Installation können Sie den QR‑Code scannen oder die " +"Konfigurationsdatei herunterladen und auf Ihrem Gerät importieren." #: vpn_invite/models.py:61 msgid "WireGuard VPN Invite" -msgstr "" +msgstr "WireGuard‑VPN‑Einladung" #: vpn_invite/views.py:53 msgid "Invite Settings|Settings saved successfully." -msgstr "" +msgstr "Einladungs‑Einstellungen|Einstellungen erfolgreich gespeichert." #: vpn_invite/views.py:57 msgid "VPN Invite Settings" -msgstr "" +msgstr "VPN‑Einladungs‑Einstellungen" #: vpn_invite/views.py:73 msgid "Email Settings|Settings saved successfully." -msgstr "" +msgstr "E‑Mail‑Einstellungen|Einstellungen erfolgreich gespeichert." #: wireguard/forms.py:11 msgid "Display Name" -msgstr "" +msgstr "Anzeigename" #: wireguard/forms.py:12 msgid "Instance ID" -msgstr "" +msgstr "Instanz‑ID" #: wireguard/forms.py:16 msgid "Listen Port" -msgstr "" +msgstr "Listen‑Port" #: wireguard/forms.py:17 msgid "Internal IP Address" -msgstr "" +msgstr "Interne IP‑Adresse" #: wireguard/forms.py:19 msgid "Post Up" -msgstr "" +msgstr "Post‑Up" #: wireguard/forms.py:20 msgid "Post Down" -msgstr "" +msgstr "Post‑Down" #: wireguard/forms.py:21 msgid "Web Refresh Interval" -msgstr "" +msgstr "Web‑Aktualisierungsintervall" #: wireguard/forms.py:42 msgid "Peer List Refresh Interval must be at least 5 seconds" msgstr "" +"Aktualisierungsintervall der Peer‑Liste muss mindestens 5 Sekunden betragen" #: wireguard/forms.py:45 msgid "Invalid hostname or IP Address" -msgstr "" +msgstr "Ungültiger Hostname oder ungültige IP‑Adresse" #: wireguard/forms.py:54 msgid "The selected network range overlaps with another instance." -msgstr "" +msgstr "Der gewählte Netzbereich überschneidet sich mit einer anderen Instanz." #: wireguard/views.py:97 msgid "WireGuard Status" -msgstr "" +msgstr "WireGuard‑Status" #: wireguard/views.py:129 msgid "Update WireGuard Instance" -msgstr "" +msgstr "WireGuard‑Instanz aktualisieren" #: wireguard/views.py:133 msgid "Delete WireGuard Instance" -msgstr "" +msgstr "WireGuard‑Instanz löschen" #: wireguard/views.py:136 msgid "Error removing instance: wg" -msgstr "" +msgstr "Fehler beim Entfernen der Instanz: wg" #: wireguard/views.py:136 msgid "" "|Cannot delete the requested WireGuard instance. There are still peers " "associated with this instance." msgstr "" +"|Die gewünschte WireGuard‑Instanz kann nicht gelöscht werden. Es sind noch " +"Peers mit dieser Instanz verknüpft." #: wireguard/views.py:139 msgid "|WireGuard instance deleted: wg" -msgstr "" +msgstr "|WireGuard‑Instanz gelöscht: wg" #: wireguard/views.py:142 msgid "Invalid confirmation|Please confirm deletion of WireGuard instance: wg" msgstr "" +"Ungültige Bestätigung|Bitte bestätigen Sie das Löschen der " +"WireGuard‑Instanz: wg" #: wireguard/views.py:146 msgid "Create a new WireGuard Instance" -msgstr "" +msgstr "Neue WireGuard‑Instanz erstellen" #: wireguard/views.py:147 msgid "New WireGuard Instance" -msgstr "" +msgstr "Neue WireGuard‑Instanz" #: wireguard_peer/forms.py:29 msgid "Allowed IP or Network" -msgstr "" +msgstr "Erlaubte IP oder Netzwerk" #: wireguard_peer/forms.py:39 msgid "Please provide a valid IP address." -msgstr "" +msgstr "Bitte geben Sie eine gültige IP‑Adresse ein." #: wireguard_peer/forms.py:48 msgid "A peer can have only one IP with priority zero." -msgstr "" +msgstr "Ein Peer kann nur eine IP mit Priorität 0 haben." #: wireguard_peer/forms.py:54 msgid "This IP is already in use by another peer." -msgstr "" +msgstr "Diese IP wird bereits von einem anderen Peer verwendet." #: wireguard_peer/forms.py:56 msgid "" "The IP address does not belong to the Peer's WireGuard instance network " "range. Please check the IP address or change the priority." msgstr "" +"Die IP‑Adresse liegt nicht im Netzbereich der WireGuard‑Instanz des Peers. " +"Bitte prüfen Sie die IP oder ändern Sie die Priorität." #: wireguard_peer/forms.py:58 msgid "The netmask for priority 0 IP must be 32." -msgstr "" +msgstr "Die Netzmaske für eine IP mit Priorität 0 muss 32 sein." #: wireguard_peer/forms.py:60 msgid "The IP address is the same as the Peer's WireGuard instance address." msgstr "" +"Die IP‑Adresse ist identisch mit der Adresse der WireGuard‑Instanz des Peers." #: wireguard_peer/forms.py:63 msgid "" "The IP address belongs to the Peer's WireGuard instance network range. " "Please check the IP address or change use priority 0 instead." msgstr "" +"Die IP‑Adresse gehört zum Netzbereich der WireGuard‑Instanz des Peers. Bitte " +"prüfen Sie die IP oder verwenden Sie stattdessen Priorität 0." #: wireguard_peer/forms.py:66 msgid "Priority must be greater than or equal to 1" -msgstr "" +msgstr "Die Priorität muss größer oder gleich 1 sein" #: wireguard_peer/forms.py:68 msgid "Invalid config file" -msgstr "" +msgstr "Ungültige Konfigurationsdatei" #: wireguard_peer/views.py:50 msgid "WireGuard Peer List" -msgstr "" +msgstr "WireGuard‑Peer‑Liste" #: wireguard_peer/views.py:129 msgid "Create a new Peer for instance wg" -msgstr "" +msgstr "Neuen Peer für Instanz wg erstellen" #: wireguard_peer/views.py:148 msgid "Peer created|Peer created successfully." -msgstr "" +msgstr "Peer erstellt|Peer erfolgreich erstellt." #: wireguard_peer/views.py:153 msgid "Error creating peer|No available IP address found for peer creation." -msgstr "" +msgstr "Fehler beim Erstellen des Peers|Keine freie IP‑Adresse verfügbar." #: wireguard_peer/views.py:166 msgid "Peer deleted|Peer deleted successfully." -msgstr "" +msgstr "Peer gelöscht|Peer erfolgreich gelöscht." #: wireguard_peer/views.py:169 msgid "" "Error deleting peer|Invalid confirmation message. Type \"delete\" to confirm." msgstr "" +"Fehler beim Löschen des Peers|Ungültige Bestätigung. Geben Sie \"delete\" " +"ein, um zu bestätigen." #: wireguard_peer/views.py:171 msgid "Update Peer: " -msgstr "" +msgstr "Peer aktualisieren: " #: wireguard_peer/views.py:182 msgid "Peer updated|Peer updated successfully." -msgstr "" +msgstr "Peer aktualisiert|Peer erfolgreich aktualisiert." #: wireguard_peer/views.py:220 msgid "IP address deleted|IP address deleted successfully." -msgstr "" +msgstr "IP‑Adresse gelöscht|IP‑Adresse erfolgreich gelöscht." #: wireguard_peer/views.py:225 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." msgstr "" +"Fehler beim Löschen der IP‑Adresse|Ungültige Bestätigung. Geben Sie " +"\"delete\" ein, um zu bestätigen." #: wireguard_peer/views.py:230 msgid "Manage client route" -msgstr "" +msgstr "Client‑Route verwalten" #: wireguard_peer/views.py:232 msgid "Manage IP address or Network" -msgstr "" +msgstr "IP‑Adresse oder Netzwerk verwalten" #: wireguard_peer/views.py:245 msgid "IP address updated|IP address updated successfully." -msgstr "" +msgstr "IP‑Adresse aktualisiert|IP‑Adresse erfolgreich aktualisiert." #: wireguard_peer/views.py:247 msgid "IP address added|IP address added successfully." -msgstr "" +msgstr "IP‑Adresse hinzugefügt|IP‑Adresse erfolgreich hinzugefügt." #: wireguard_tools/views.py:160 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." msgstr "" +"Export erfolgreich!|WireGuard‑Konfigurationsdateien wurden nach /etc/" +"wireguard/ exportiert." #: wireguard_tools/views.py:162 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." msgstr "" +"Export erfolgreich!|WireGuard‑Konfigurationsdateien wurden nach /etc/" +"wireguard/ exportiert. Vergessen Sie nicht, die Interfaces neu zu starten." #: wireguard_tools/views.py:255 msgid "Error reloading" -msgstr "" +msgstr "Fehler beim Neu laden" #: wireguard_tools/views.py:267 msgid "Error stopping" -msgstr "" +msgstr "Fehler beim Stoppen" #: wireguard_tools/views.py:272 msgid "Error starting" -msgstr "" +msgstr "Fehler beim Starten" #: wireguard_tools/views.py:279 msgid "" @@ -1823,19 +2036,26 @@ msgid "" "check if the the peers are working as expected. If you find any issues, " "please report them." msgstr "" +"WARNUNG|Die Schnittstelle wurde neu geladen, nicht neu gestartet. Prüfen " +"Sie, ob alle Peers wie erwartet funktionieren. Melden Sie eventuelle " +"Probleme." #: wireguard_tools/views.py:280 msgid "WireGuard reloaded|The WireGuard service has been reloaded." -msgstr "" +msgstr "WireGuard neu geladen|Der WireGuard‑Dienst wurde neu geladen." #: wireguard_tools/views.py:282 msgid "WireGuard restarted|The WireGuard service has been restarted." -msgstr "" +msgstr "WireGuard neu gestartet|Der WireGuard‑Dienst wurde neu gestartet." #: wireguard_tools/views.py:285 msgid "Errors encountered|Error processing one or more interfaces." msgstr "" +"Fehler festgestellt|Beim Verarbeiten einer oder mehrerer Schnittstellen ist " +"ein Fehler aufgetreten." #: wireguard_tools/views.py:288 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" +"Keine Schnittstellen gefunden|Es wurden keine WireGuard‑Schnittstellen " +"gefunden."