From 428b2de990918caf6075296499ba18bab21486e8 Mon Sep 17 00:00:00 2001 From: riyenas0925 Date: Sun, 6 Sep 2026 10:09:36 +0900 Subject: [PATCH] i18n: add Korean (ko) UI localization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add Korean as a selectable UI language. All 696 msgids in the current catalog are translated (device UI, web UI, SQM/Bortle descriptions). Astronomical nouns follow the Korean Astronomical Society glossary; operational jargon follows common Korean amateur-astronomy usage (plate solving -> 솔빙, align -> 얼라인, eyepiece -> 아이피스, ...). EQ / Alt/Az / RA/Dec / GPS are kept verbatim per the i18n conventions. Code: accept "ko" in the --lang validation list and the Flask accept_languages list, add the Korean menu entry, reuse the Sarasa CJK font for ko as for zh, and restart after switching to ko since the font set changes. docs: add Korean to the Language values. Every ko entry carries the AI-TRANSLATED review marker; "Appeal" is additionally fuzzy. The other four catalogs only gain the two new msgids ("Korean", "Language: ko"). Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01WErqKyPNdq326xqryfMJLX --- docs/source/menu_map.rst | 2 +- python/PiFinder/main.py | 2 +- python/PiFinder/server.py | 2 +- python/PiFinder/ui/callbacks.py | 4 +- python/PiFinder/ui/fonts.py | 14 +- python/PiFinder/ui/menu_structure.py | 5 + python/locale/de/LC_MESSAGES/messages.mo | Bin 37591 -> 37674 bytes python/locale/de/LC_MESSAGES/messages.po | 10 + python/locale/es/LC_MESSAGES/messages.mo | Bin 38430 -> 38506 bytes python/locale/es/LC_MESSAGES/messages.po | 10 + python/locale/fr/LC_MESSAGES/messages.mo | Bin 38358 -> 38429 bytes python/locale/fr/LC_MESSAGES/messages.po | 10 + python/locale/ko/LC_MESSAGES/messages.mo | Bin 0 -> 39120 bytes python/locale/ko/LC_MESSAGES/messages.po | 3771 ++++++++++++++++++++++ python/locale/zh/LC_MESSAGES/messages.mo | Bin 35546 -> 35620 bytes python/locale/zh/LC_MESSAGES/messages.po | 10 + 16 files changed, 3827 insertions(+), 13 deletions(-) create mode 100644 python/locale/ko/LC_MESSAGES/messages.mo create mode 100644 python/locale/ko/LC_MESSAGES/messages.po diff --git a/docs/source/menu_map.rst b/docs/source/menu_map.rst index 5ec1fb297..abed8c933 100644 --- a/docs/source/menu_map.rst +++ b/docs/source/menu_map.rst @@ -237,7 +237,7 @@ User Pref... Direction of the azimuth Push-To arrows. Values: Default, Reverse. Set this to match how you read the arrows at the telescope. Language - Interface language. Values: English, German, French, Spanish, Chinese. + Interface language. Values: English, German, French, Spanish, Chinese, Korean. Chart... How the Chart screen draws the sky. diff --git a/python/PiFinder/main.py b/python/PiFinder/main.py index 9182c9a5c..8be26bc00 100644 --- a/python/PiFinder/main.py +++ b/python/PiFinder/main.py @@ -1352,7 +1352,7 @@ def main( rlogger.warning("using no keyboard") if args.lang: - if args.lang.lower() not in ["en", "de", "fr", "es", "zh"]: + if args.lang.lower() not in ["en", "de", "fr", "es", "zh", "ko"]: raise Exception(f"Unknown language '{args.lang}' passed via command line.") else: config.Config().set_option("language", args.lang) diff --git a/python/PiFinder/server.py b/python/PiFinder/server.py index 84a28f4b6..3294f6ff3 100644 --- a/python/PiFinder/server.py +++ b/python/PiFinder/server.py @@ -256,7 +256,7 @@ def solution(self): def server_locale(): # Try to get from user preferences, session, or accept languages # For now, default to English - return request.accept_languages.best_match(["en", "fr", "de", "es", "zh"]) or "en" + return request.accept_languages.best_match(["en", "fr", "de", "es", "zh", "ko"]) or "en" class Server: diff --git a/python/PiFinder/ui/callbacks.py b/python/PiFinder/ui/callbacks.py index 8a4eb4933..99edf31a8 100644 --- a/python/PiFinder/ui/callbacks.py +++ b/python/PiFinder/ui/callbacks.py @@ -301,8 +301,8 @@ def switch_language(ui_module: UIModule) -> None: ) lang.install() logger.info("Switch Language: %s", iso2_code) - if iso2_code == "zh": - # Chinese requires a new font, so we have to restart + if iso2_code in ("zh", "ko"): + # CJK languages require a different font, so we have to restart restart_pifinder(ui_module) diff --git a/python/PiFinder/ui/fonts.py b/python/PiFinder/ui/fonts.py index 994adbab5..75ed5f62a 100644 --- a/python/PiFinder/ui/fonts.py +++ b/python/PiFinder/ui/fonts.py @@ -52,16 +52,14 @@ def __init__( ): font_path = str(Path(utils.pifinder_dir, "fonts")) - # Check for chinese language specifically + # CJK languages (zh, ko) need a font with Han/Hangul glyphs cfg = config.Config() lang = cfg.get_option("language", "en") - if lang == "zh": - # Use Chinese font for Chinese language - chinesettf = str( - Path(font_path, "sarasa-mono-sc-light-nerd-font+patched.ttf") - ) - boldttf = chinesettf - regularttf = chinesettf + if lang in ("zh", "ko"): + # Sarasa Mono covers both Chinese (Han) and Korean (Hangul) + cjkttf = str(Path(font_path, "sarasa-mono-sc-light-nerd-font+patched.ttf")) + boldttf = cjkttf + regularttf = cjkttf use_layout_engine = False else: # Use default fonts for other languages diff --git a/python/PiFinder/ui/menu_structure.py b/python/PiFinder/ui/menu_structure.py index a24202bee..df56f3897 100644 --- a/python/PiFinder/ui/menu_structure.py +++ b/python/PiFinder/ui/menu_structure.py @@ -33,6 +33,7 @@ def _(key: str) -> Any: s = _("Language: es") s = _("Language: fr") s = _("Language: zh") +s = _("Language: ko") s = s del s @@ -746,6 +747,10 @@ def _(key: str) -> Any: "name": _("Chinese"), "value": "zh", }, + { + "name": _("Korean"), + "value": "ko", + }, ], }, ], diff --git a/python/locale/de/LC_MESSAGES/messages.mo b/python/locale/de/LC_MESSAGES/messages.mo index 0cdd683915c319296416fff01a4eb36fe8ac8ede..d0332cd108cb583ec0f922fb0c3d66d840163672 100644 GIT binary patch delta 11331 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 delta 11256 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 diff --git a/python/locale/de/LC_MESSAGES/messages.po b/python/locale/de/LC_MESSAGES/messages.po index b7d0bc0bc..2f6561e4c 100644 --- a/python/locale/de/LC_MESSAGES/messages.po +++ b/python/locale/de/LC_MESSAGES/messages.po @@ -3444,3 +3444,13 @@ msgstr "Muss zwischen %(minimum)s und %(maximum)s liegen" #, python-format msgid "Must be %(maximum)s characters or fewer" msgstr "Darf höchstens %(maximum)s Zeichen lang sein" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:36 +msgid "Language: ko" +msgstr "Sprache: Koreanisch" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:751 +msgid "Korean" +msgstr "Koreanisch" diff --git a/python/locale/es/LC_MESSAGES/messages.mo b/python/locale/es/LC_MESSAGES/messages.mo index e36a52d1d9706c580c99a9136a94e13ae97c92ae..ad8394288fb0d8717235b607979067386150ac5e 100644 GIT binary patch delta 11326 zcmYM(3z(19zQFO<7{+bJW!&$#TpGFGDPhux$n9*`h>$20D${zI$38E-o^tl}l=!O>sZU4z z=be-&s)*l}viAS~c|9wNN>W{iMe)C}7#_w(cnX_gsd`b=8M~n4JdGLn7G~m3EQ3d| zF#d@7qbQDkr;v|^=$a@>h5W(7!D7Kun9lR^SRCtw_SV66$Qq*TP`?qGAnJ++-V2>) z7^dN<-1az%##1Oj!}Q=BG?0a%z7(&e{vsB^lcD__I?%7^M1P{0Nv$76C9o8lxjLAR z*P?-RLHiBB63icspd>0&fh&xQ6iXumC?eMe~Dj}G_`G{Cc%7cZiLT}D%% z(ja-iJld}Y#-_3%1?_ZY)0u5v}I_^4j zE4HHJ>_gu>iZ1N?hUDJ?ehM9aN9*}G+746<9jFW%ST*#;y68n|jP}bxx2`)D#X)F5 zccK07MKkpvx{!tFcq?KGMz#j+xCss5eRSZx;rStKO#L`|%`&Le!M^Ck)6qcZqZ2=a zzP}tDZ#CL)13K{zG!yZj&~P+#_zH{h;2gS=Kg09%CdnBog}zuDD`0c1ggw#s#-Z;` zM+0~YJxfc`J%29Lmm_B)j$Wc*L~GDYyotW}Ua0Rv56>a2g`c4-xr|<~f=!e6E2CRd zE7aSf<7A@&bwM*U0L{>FEYAGVXbMg|HMb#(W@Aa}%djTCi6!s|y7JR#02eX$tnm4B zqGFhPR?z3wf(_6GTpQ{g(132S?)@JU9^4%sJcwpwE_zrNp%cG|rua=Pi96AOj-rA5 zfCg{@ufxmeN?SKi-oGBpQ}2#$*_{}Bh-Oi6q7CRo+tGmzpdXIU(ZhKj?RP2E^R-CY zGq4TqWw0LhLNhuI9cL~&?qYPDRcJ=uXhHrhY^1>zydB(yru-nf=ii_yF3>VbZBg`4 zRYEgWEm#*FuMw8T=Aqsl%TVu)W^N1?$LTG}zbjfugQ;49PP7`!;yQG|-ROk-(Y-x{ z27Cg2|8%JTimotfmGmo!PE-b6P~A{(8=iNIDY%CN(G-nA1DFz=fettu4P*gU!6j%w zThYL`p@HlS9z^>eN4MhZP(OzTegWN@_zwyWkiT_uKZ~F*6h#NDfVHs>8pthZfc>yE z4neozJ}i$hx{znlabLyyxE}o#{R&-hMGg$cQ9TMy*cLtAIcS9a&=uT{PB;o(@i;V) z321;*gL8sQf-eU*1h-=;`tL{I{{~BV|Iboz;y;5KZIgNxtU-H2ERVg>0mh<%JrbOQ zT!?5sX5(&bh=o}$$02HqW@sY%-c){A=K?~7-&!P)^8QGQSb>yQMox#djrG1yJ2nY zi>`bcX5kWaWxKET&bmHI9GnB7mlF1CTe`R!`aTW!?OwG`NbI`-s z58dOtL;DQ$#f9i$T7eF*7Tu!F==&d`fgeRD{w}oth|Y5bJp;wFb2AY~wJA7YJ#>N= z=m6PR345Z4avZv%Nob~KpaIN5`!7P@Ux`k<9zC3IqZ98#-#>x&KZAL_{}(BE+ApK2 zD|AD0Skkc*^_y@oK7~$j0X@xE&;iTRDIeBEC%ziZM3c~-jZSzInyJ2M2JWz(`J;y@ znCiL6d5Tt`6Mc*M@jSZH-_VsuHzuFd0%!m&FcmwZf#je8bi*_pj4o^>I^Lb=_~S9Q z@KAX0IOe6kAaq!aY1CgrBVLORurs(9)2JUpSNJ))!tc?3zXtz6w;*p$lIhaHt8&P{ zD{C4Wu0sd78PjkOx{~3+Nob}XL-%$WI`O(t--f<-01e;>+W*VY{xdq?CG^atbSD1} zkls0Yu>u-EjbIZrr5&*Vc19=YiJqDM=oXAZ-~`RMcKL;Y2BoULepAH)<) z`5ttD{a6r>qZ5B0{3rVS0@lVnHzj*s7u~}8=!9+1jCBs}{evUX2`7a56f8(Ro<+fk z7K9GVun_f?SQgizE7*-*$HVBC?`QPA^e)Ns(rCSUsAr*pwLk;QMl;qEJqx!XnoFCa;a zP6o5Olm7}d+(*H`U=|`j-O)bG!h+=OR&0h@ z{4bo@Gx0cfqTaX{f6(Fsy~zKg6!P{?QauNYQlF3MxEx*4I`r>>chN2S6<_4Rm*C zKZ+UD&jc@_e>bGDd;_YC{yb-)fpJp@Q~194Eo|EG@ysk3Fd|8&tq}w zub`QFC%6aeQ$K=tVd~$a=rz0tYhtCo{Leht0ZU>02n9bt%P=?P!F6ar+t5R}2hGGj zG_d2LemXq=9UbS7VAL<^ml`aNF0?Y*?6II0^S)JqzoCTJkdgV|`RdZMWtfCe-? zJii0Y#3Xd!S?C_m#d7#Ex>eiJ_YR_4`w3=v|G%T);rInz@g;Pnsr{3BsbIC>HRwHW z73w#m8R>_PGXhKEXmladg7eTVd=8ywEtc~BZ>3Ng51^5KhYolV-TTx5$-nuEqM2xb z)vzU2#s26uoPw_W8MNO9^!;~3{UbD>gXrFWiLr%$Q83~H1NkR$9tJ}LT0STVXbal! z@7MxQVpA-`$AKFdb;TO^BDxhHq3?f=W$`C;;7T%41FXG^1=tAeC8G3neoD|m4U;tafgKgNJ`iJP@ z$v-3+s5JUwWptw2=nCtjslO5ZbsUTa{2-c%dFaHeupGXNj`LYe!4;lBBRz{Al7C?( z%yV0ESgN4?ve1cIqKEJnG{D=@(?0_%&bKNjNhZskitRqu>6Ha zR%mF_F%u1_CRW2H=nDFv*KsUn;R9%Zt3vx*Xhz>d1KWuy_z^nKUL?>s`jmnZ9t(bp zMtT-Kbibh!78#bLuoill+MtK1Ga7Jrbl|>dW`>3OeQ5s~Xul`XK%c>)-v8AUymnhc zhrgpMI~@EH9ry=y;0tKL`EE}#la97mL<4GwPShOBV>@&~{loJSXhz3iQRa`Pgoek_ zfuBVqT#2o4J&wdP=vMU@9#(_~`XsvN&!X?Yh)(z_I?-md--qa7Jc#!D9%EDUBLz?A zWpv_VBa#(YLSLwZwztEo*cGqByU@%nL=WL=bmdzxFYdq;+!gA(F_rp0wBMl-uo@*otYmE41%N-#;;u z{CmyL(V&IyNPZ^kpn=_tb{v8RFcv)vQ_%ruVeS@$_GhsG?W@p$-ay~mjE=Vp4eV%W zKOKh$zo7#b9F=6CIC@X3p(|{R26!Vnz;HB>`_PGIU`L#dX6^tQ_@`JMzr`Au?@sHC9Et^TJi6youmCPV_kJ0g$~EYOo3Jfz!v=T>eZS7=5yU>&!Lih3n7Q&yy^UG)^)9y;X2c^-8uSNsu zfG*@#bPFe7G4KDQ6im^Q;BqveSJ1tD6WzNlXh6q8`&U?m`gg$#==HjS>6rKKB!k7# zK+B>5)IJV|2xzp=aR>EQ%+C=h0j8SFqT)Z>L~HAET%A%h2HxI$_F$WWaJ*f_n8}Gt8u(gC%hw z*2eMZ7CwW%{{p&@&FBITU_(5Hd_Ur-@Wf<*9K3-CgV2CpLL=OWu4rdy--n*wW9VEFQF^VH#r%nJXWFJ6b-O9+Hc@w@^4`j4W?`ox<@n7Jzj%G z{s#Ku2WTLB(TseCzIO`E*abA8%UBjOrz8{AL;JTv$H_s*y=4mdH}ykl@cxd*9{2`w z0r&$x$-o4xKy@aXffZ&tqlksZ*1HYhXp{jbaJ|D0D+J z@fsT8R&=5rXn^~$34V%BnD$U|iZjvYWzp+c4Go|fdM4V2dOI`&oq~Nrdwe?u57}sR z;IU``Q_vMZjHY%uI`FG#U~i&lV;h?C{o(m3wEtN&BmWmHNT#hu?doedKbb?dpmi&aSIAwbBekPjnN|^imUyXtT zG)52Ab!Y(D=m1?Y3x|aExoGMap#i*%_S+iT_oJCPj&9jSG=o>r1!c}i0;!0(|Np;Q z6pZj1tcBO1D;bV{5hq|(T#0627dqhqbii-WK+dA4{?B0M!^xJ_#qzXYkCku$I{pI> zlmFHfX3>y4FdFdzbl}g>0Z#;fK{HfvW^#>+qR%U#?=?ZUvNevuu4pFTK?B~2266=L z|MSdnXfD!V0MR4K#D%a6)lBrz3`SoV6YBSd`ZRRF$IuB@Vm{o0&G9{StA0W6d)`Nr zU&*RypgA!GQ`a9oGmHbb=aYqU_(J%uW;sKn3SJ1thJez+7;ZnR2f57Tke@^mk?}7JHAC1rB zNp!-gk0&0(PSjh>~w=h3ZcJufjEeclc2 zKLE|ls8FAbrhFEr;!>=E&!bzj6Yakz_c{CjMQAvI2J#bnUGmKjzh3BoO+!5!-Md>u z`#5yKY3Q|kD%96u73$m31$>1C@HD331uVq;(eI%{>XXSt8E7DtF$0^S17xEUcf&$B z1kJ=~^swEJ>`t^E-@;Z;CD->Hx^?9jB%kV`n3wuwjEhouh(ZaRht^+258(!Mf=yTq zcVam_9G;&;2Ra}81?_(k&0y-nwh6(4J>e5?JOU^6$juY4FFUE_%H>1iJ!E-$ir_@+?m38E61yu@u%0UW=ve*K6bKtPhIj?=tqD;kVtrFsDt| nl+j~1&Tey}TAr30M-FOKB7eu^$>Onn^XHbvZv1X+>stQ->~ma6 delta 11255 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 Gs`DQwzD#}q diff --git a/python/locale/es/LC_MESSAGES/messages.po b/python/locale/es/LC_MESSAGES/messages.po index c5041502a..6f88f98c1 100644 --- a/python/locale/es/LC_MESSAGES/messages.po +++ b/python/locale/es/LC_MESSAGES/messages.po @@ -3546,3 +3546,13 @@ msgstr "Debe estar entre %(minimum)s y %(maximum)s" #, python-format msgid "Must be %(maximum)s characters or fewer" msgstr "No puede tener más de %(maximum)s caracteres" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:36 +msgid "Language: ko" +msgstr "Idioma: Coreano" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:751 +msgid "Korean" +msgstr "Coreano" diff --git a/python/locale/fr/LC_MESSAGES/messages.mo b/python/locale/fr/LC_MESSAGES/messages.mo index ee5ab94649bad7c67bd16f21e21143e6d23f1123..78b285930623f14d64d789b88ac0a311281f8fbb 100644 GIT binary patch delta 11334 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 delta 11256 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 diff --git a/python/locale/fr/LC_MESSAGES/messages.po b/python/locale/fr/LC_MESSAGES/messages.po index 28aadb5ca..eaa13d356 100644 --- a/python/locale/fr/LC_MESSAGES/messages.po +++ b/python/locale/fr/LC_MESSAGES/messages.po @@ -3624,3 +3624,13 @@ msgstr "Doit être compris entre %(minimum)s et %(maximum)s" #, python-format msgid "Must be %(maximum)s characters or fewer" msgstr "Ne doit pas dépasser %(maximum)s caractères" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:36 +msgid "Language: ko" +msgstr "Langue: ko" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:751 +msgid "Korean" +msgstr "Coréen" diff --git a/python/locale/ko/LC_MESSAGES/messages.mo b/python/locale/ko/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..022bac2bef5847cf886282aaa0da3be5f9494a32 GIT binary patch literal 39120 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®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, 2026. +# +msgid "" +msgstr "" +"Project-Id-Version: PiFinder 2.6.3\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2026-09-06 09:31+0900\n" +"PO-Revision-Date: 2026-09-06 00:31+0000\n" +"Last-Translator: Claude (AI draft, needs human review)\n" +"Language: ko\n" +"Language-Team: ko \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.18.0\n" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/cat_images.py:206 +msgid "No Image" +msgstr "이미지 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/main.py:703 +msgid "" +"Degraded\n" +"Check Status" +msgstr "" +"성능 저하\n" +"상태 확인" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/main.py:817 +msgid "" +"Catalogs\n" +"Fully Loaded" +msgstr "" +"카탈로그\n" +"로딩 완료" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/main.py:867 +msgid "" +"Low battery\n" +"Shutting down" +msgstr "" +"배터리 부족\n" +"종료 중" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/main.py:900 +#, python-brace-format +msgid "" +"Low battery\n" +"at {pct}%" +msgstr "" +"배터리 부족\n" +"{pct}%" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/obj_types.py:10 +msgid "Galaxy" +msgstr "은하" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:11 +msgid "Open Cluster" +msgstr "산개성단" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:12 +msgid "Cluster + Neb" +msgstr "성단+성운" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:13 +msgid "Globular" +msgstr "구상성단" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:14 +msgid "Nebula" +msgstr "성운" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:15 +msgid "Planetary" +msgstr "행성상성운" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:16 +msgid "Dark Nebula" +msgstr "암흑성운" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:17 +msgid "Star" +msgstr "별" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:18 +msgid "Double star" +msgstr "이중성" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:19 +msgid "Triple star" +msgstr "삼중성" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:20 +msgid "Knot" +msgstr "Knot" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:21 +msgid "Asterism" +msgstr "성군" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:22 +msgid "Planet" +msgstr "행성" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:23 +msgid "Comet" +msgstr "혜성" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Object type +#: PiFinder/obj_types.py:24 +msgid "Unkn" +msgstr "미상" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:69 PiFinder/server.py:105 PiFinder/server.py:124 +#, python-format +msgid "%s is required" +msgstr "%s은(는) 필수입니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:73 +#, python-format +msgid "%s must be a number" +msgstr "%s은(는) 숫자여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:91 +#, python-format +msgid "%(field)s must be between %(minimum)s and %(maximum)s" +msgstr "%(field)s은(는) %(minimum)s과(와) %(maximum)s 사이여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:108 +#, python-format +msgid "%(field)s must be %(maximum)s characters or fewer" +msgstr "%(field)s은(는) %(maximum)s자 이하여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:124 PiFinder/server.py:166 views/edit_eyepiece.html:33 +#: views/equipment.html:69 views/equipment.html:117 views/locations.html:62 +#: views/network.html:69 +msgid "Name" +msgstr "이름" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:165 PiFinder/server.py:195 views/edit_eyepiece.html:26 +#: views/edit_instrument.html:27 views/equipment.html:68 +#: views/equipment.html:116 +msgid "Make" +msgstr "제조사" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:169 PiFinder/server.py:202 +msgid "Focal length" +msgstr "초점거리" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:173 +msgid "Apparent field of view" +msgstr "겉보기 시야각" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:177 +msgid "Field stop" +msgstr "필드 스톱" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:192 +#, python-format +msgid "%s is not a valid mount type" +msgstr "%s은(는) 유효한 마운트 종류가 아닙니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:196 +msgid "Instrument name" +msgstr "망원경 이름" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:198 views/equipment.html:70 +msgid "Aperture" +msgstr "구경" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:207 +msgid "Obstruction" +msgstr "중앙 차폐" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:394 +msgid "Locked" +msgstr "수신됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:394 +msgid "Not Locked" +msgstr "미수신" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:416 views/base.html:17 views/base.html:28 +msgid "Home" +msgstr "홈" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:444 PiFinder/server.py:452 views/login.html:31 +msgid "Login" +msgstr "로그인" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:446 +msgid "Invalid Password" +msgstr "잘못된 비밀번호" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:458 views/base.html:18 views/base.html:29 +msgid "Remote" +msgstr "원격 제어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:464 PiFinder/ui/menu_structure.py:1018 +msgid "Advanced" +msgstr "고급" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:473 +msgid "Network" +msgstr "네트워크" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:491 PiFinder/server.py:523 +msgid "GPS" +msgstr "GPS" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:508 PiFinder/server.py:557 PiFinder/server.py:617 +#: views/locations.html:63 +msgid "Latitude" +msgstr "위도" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:509 PiFinder/server.py:558 PiFinder/server.py:618 +#: views/locations.html:64 +msgid "Longitude" +msgstr "경도" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:510 PiFinder/server.py:559 PiFinder/server.py:619 +#: PiFinder/ui/menu_structure.py:432 views/locations.html:65 +msgid "Altitude" +msgstr "고도" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:518 +msgid "Date and time must be YYYY-MM-DD h:m:s" +msgstr "날짜와 시간은 YYYY-MM-DD h:m:s 형식이어야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:547 PiFinder/server.py:600 PiFinder/server.py:653 +#: views/base.html:21 views/base.html:32 +msgid "Locations" +msgstr "위치" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:561 PiFinder/server.py:621 PiFinder/ui/object_list.py:346 +#: views/locations.html:66 +msgid "Error" +msgstr "오류" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:567 PiFinder/server.py:627 +msgid "Location name is required" +msgstr "위치 이름은 필수입니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:569 PiFinder/server.py:629 +msgid "Latitude must be between -90 and 90" +msgstr "위도는 -90과 90 사이여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:571 PiFinder/server.py:631 +msgid "Longitude must be between -180 and 180" +msgstr "경도는 -180과 180 사이여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:574 PiFinder/server.py:634 +msgid "Altitude must be between -1000 and 10000 meters" +msgstr "고도는 -1000과 10000 m 사이여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:577 PiFinder/server.py:637 +msgid "Error must be between 0 and 10000 meters" +msgstr "오차는 0과 10000 m 사이여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:724 PiFinder/ui/menu_structure.py:1333 +msgid "Restart" +msgstr "재시작" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:735 PiFinder/server.py:744 PiFinder/server.py:748 +#: PiFinder/server.py:752 PiFinder/server.py:1155 +#: PiFinder/ui/menu_structure.py:1201 views/base.html:23 views/base.html:34 +#: views/tools.html:6 +msgid "Tools" +msgstr "도구" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:736 +msgid "You must fill in all password fields" +msgstr "모든 비밀번호 항목을 입력해야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:744 +msgid "Password Changed" +msgstr "비밀번호가 변경되었습니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:748 +msgid "Incorrect current password" +msgstr "현재 비밀번호가 올바르지 않습니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:752 +msgid "New passwords do not match" +msgstr "새 비밀번호가 일치하지 않습니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:777 PiFinder/server.py:787 PiFinder/server.py:802 +#: PiFinder/server.py:821 PiFinder/server.py:928 PiFinder/server.py:986 +#: PiFinder/server.py:992 PiFinder/server.py:1007 PiFinder/server.py:1069 +#: PiFinder/server.py:1075 PiFinder/server.py:1090 +#: PiFinder/ui/menu_structure.py:1206 views/base.html:22 views/base.html:33 +#: views/equipment.html:6 +msgid "Equipment" +msgstr "장비" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:797 PiFinder/server.py:1020 PiFinder/server.py:1085 +msgid "No such instrument" +msgstr "해당 망원경이 없습니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:808 +msgid "set as active instrument." +msgstr "이(가) 활성 망원경으로 설정되었습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:816 PiFinder/server.py:939 PiFinder/server.py:1002 +msgid "No such eyepiece" +msgstr "해당 아이피스가 없습니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:827 +msgid "set as active eyepiece." +msgstr "이(가) 활성 아이피스로 설정되었습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:921 +msgid "Equipment Imported, restart your PiFinder to use this new data" +msgstr "장비를 가져왔습니다. 새 데이터를 사용하려면 PiFinder를 재시작하세요" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:925 +#, python-format +msgid "%s entries were skipped because DeepskyLog had no usable values for them." +msgstr "DeepskyLog에 사용 가능한 값이 없어 %s개 항목을 건너뛰었습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:947 PiFinder/server.py:964 +msgid "Edit Eyepiece" +msgstr "아이피스 편집" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:988 +#, python-format +msgid "Could not save eyepiece: %s" +msgstr "아이피스를 저장할 수 없습니다: %s" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:994 +msgid "Eyepiece added, restart your PiFinder to use" +msgstr "아이피스가 추가되었습니다. 사용하려면 PiFinder를 재시작하세요" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:1010 +msgid "Eyepiece Deleted, restart your PiFinder to remove from menu" +msgstr "아이피스가 삭제되었습니다. 메뉴에서 제거하려면 PiFinder를 재시작하세요" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:1028 PiFinder/server.py:1047 +msgid "Edit Instrument" +msgstr "망원경 편집" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:1071 +#, python-format +msgid "Could not save instrument: %s" +msgstr "망원경을 저장할 수 없습니다: %s" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:1077 +msgid "Instrument Added, restart your PiFinder to use" +msgstr "망원경이 추가되었습니다. 사용하려면 PiFinder를 재시작하세요" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:1093 +msgid "Instrument Deleted, restart your PiFinder to remove from menu" +msgstr "망원경이 삭제되었습니다. 메뉴에서 제거하려면 PiFinder를 재시작하세요" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:1120 views/base.html:20 views/base.html:31 +msgid "Observations" +msgstr "관측 기록" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:1149 +msgid "Session Log" +msgstr "세션 로그" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:1160 PiFinder/server.py:1258 views/base.html:24 +#: views/base.html:35 +msgid "Logs" +msgstr "로그" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:1258 +msgid "Error creating log archive" +msgstr "로그 아카이브 생성 오류" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:1315 views/restart_pifinder.html:6 +msgid "Restarting PiFinder" +msgstr "PiFinder 재시작 중" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/server.py:1377 +msgid "Restart PiFinder" +msgstr "PiFinder 재시작" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/align.py:51 +msgid "Align Timeout" +msgstr "얼라인 시간 초과" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/align.py:65 +msgid "Alignment Set" +msgstr "얼라인 설정됨" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: hint bar; preserve leading spaces for layout +#: PiFinder/ui/align.py:265 PiFinder/ui/align_daytime.py:209 +#, python-brace-format +msgid " {icon} START ALIGN" +msgstr " {icon} 얼라인 시작" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: hint bar; {icon} is a directional-arrows glyph +#: PiFinder/ui/align.py:268 +#, python-brace-format +msgid "{icon} SELECT STAR" +msgstr "{icon} 별 선택" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: hint bar; {icon} is the SQUARE button glyph +#: PiFinder/ui/align.py:271 +#, python-brace-format +msgid "{icon} SAVE / 0 CANCEL" +msgstr "{icon} 저장 / 0 취소" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/align.py:293 PiFinder/ui/chart.py:667 +msgid "Can't plot" +msgstr "표시 불가" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/align.py:302 PiFinder/ui/chart.py:676 PiFinder/ui/log.py:166 +#: PiFinder/ui/object_list.py:364 PiFinder/ui/object_list.py:403 +msgid "No Solve Yet" +msgstr "아직 솔빙 안 됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/align.py:413 PiFinder/ui/object_details.py:696 +msgid "Aligning..." +msgstr "얼라인 중..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/align.py:421 PiFinder/ui/align_daytime.py:310 +#: PiFinder/ui/object_details.py:704 +msgid "Aligned!" +msgstr "얼라인 완료!" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/align.py:423 +msgid "Alignment failed" +msgstr "얼라인 실패" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/align_daytime.py:114 +msgid "Center" +msgstr "중앙" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/align_daytime.py:119 +msgid "Exp Auto" +msgstr "노출 자동" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/align_daytime.py:199 +#, python-brace-format +msgid "{icon} SAVE 0 CANCEL" +msgstr "{icon} 저장 0 취소" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/align_daytime.py:242 +msgid "AUTO" +msgstr "자동" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/base.py:300 PiFinder/ui/dateentry.py:166 +#: PiFinder/ui/locationentry.py:222 PiFinder/ui/timeentry.py:178 +msgid " Cancel" +msgstr " 취소" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:53 +msgid "" +"Options for\n" +"DIY PiFinders" +msgstr "" +"DIY PiFinder\n" +"옵션" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:68 +msgid "Filters Reset" +msgstr "필터 초기화됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:81 PiFinder/ui/menu_structure.py:1252 +msgid "Test Mode" +msgstr "테스트 모드" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:175 +msgid "Shutting Down" +msgstr "종료 중" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:184 PiFinder/ui/callbacks.py:192 +msgid "Restarting..." +msgstr "재시작 중..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:197 PiFinder/ui/callbacks.py:203 +#: PiFinder/ui/callbacks.py:209 +msgid "Switching cam" +msgstr "카메라 전환" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:310 +msgid "WiFi to AP" +msgstr "WiFi AP 모드로" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:316 +msgid "WiFi to Client" +msgstr "WiFi 클라이언트로" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:339 +#, python-brace-format +msgid "" +"{lat:.2f}, {lon:.2f}\n" +"{alt}m alt" +msgstr "" +"{lat:.2f}, {lon:.2f}\n" +"고도 {alt}m" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:346 +msgid "Location Reset" +msgstr "위치 초기화됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:351 +msgid "Time/Date Reset" +msgstr "시간/날짜 초기화됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:358 +msgid "No location lock" +msgstr "위치 정보 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:372 +#, python-brace-format +msgid "" +"Saved\n" +"{name}" +msgstr "" +"저장됨\n" +"{name}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:376 PiFinder/ui/gpsstatus.py:79 +#: PiFinder/ui/location_list.py:135 views/location_form.html:6 +#: views/locations.html:117 +msgid "Location Name" +msgstr "위치 이름" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:379 PiFinder/ui/gpsstatus.py:82 +#, python-brace-format +msgid "Loc {number}" +msgstr "위치 {number}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:413 +#, python-brace-format +msgid "Time: {time}" +msgstr "시간: {time}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:432 +#, python-brace-format +msgid "" +"{date}\n" +"{time}" +msgstr "" +"{date}\n" +"{time}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:452 +#, python-brace-format +msgid "" +"User object created\n" +"{name}" +msgstr "" +"사용자 천체 생성됨\n" +"{name}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:582 +msgid "" +"Checking GPS\n" +"config..." +msgstr "" +"GPS 설정\n" +"확인 중..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:587 +msgid "" +"GPS config\n" +"updated" +msgstr "" +"GPS 설정\n" +"갱신됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:589 +msgid "" +"GPS config\n" +"OK" +msgstr "" +"GPS 설정\n" +"정상" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/callbacks.py:592 +msgid "" +"GPS config\n" +"failed" +msgstr "" +"GPS 설정\n" +"실패" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/chart.py:112 PiFinder/ui/menu_structure.py:544 +msgid "Settings" +msgstr "설정" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: chart corner label, e.g. "Zenith up" — keep short +#: PiFinder/ui/chart.py:307 +#, python-brace-format +msgid "{label} up" +msgstr "{label} 위" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/dateentry.py:26 +msgid "yyyy" +msgstr "yyyy" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/dateentry.py:27 PiFinder/ui/timeentry.py:28 +msgid "mm" +msgstr "mm" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/dateentry.py:28 PiFinder/ui/locationentry.py:34 +#: PiFinder/ui/locationentry.py:41 +msgid "dd" +msgstr "dd" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/dateentry.py:141 +msgid "Enter Local Date" +msgstr "현지 날짜 입력" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/dateentry.py:159 PiFinder/ui/timeentry.py:171 +msgid " Done" +msgstr " 완료" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/dateentry.py:173 PiFinder/ui/locationentry.py:232 +#: PiFinder/ui/timeentry.py:185 +msgid "󰍴 Delete/Previous" +msgstr "󰍴 삭제/이전" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/dateentry.py:236 PiFinder/ui/locationentry.py:346 +#: PiFinder/ui/polar_align.py:525 PiFinder/ui/timeentry.py:259 +msgid "Cancelled" +msgstr "취소됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/dateentry.py:250 PiFinder/ui/timeentry.py:277 +msgid "" +"Set location\n" +"first" +msgstr "" +"먼저 위치를\n" +"설정하세요" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/equipment.py:39 +msgid "No telescope selected" +msgstr "선택된 망원경 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/equipment.py:54 +msgid "No eyepiece selected" +msgstr "선택된 아이피스 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/equipment.py:74 +#, python-brace-format +msgid "Mag: {mag:.0f}x" +msgstr "배율: {mag:.0f}x" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/equipment.py:87 +#, python-brace-format +msgid "TFOV: {tfov_degrees:.0f}°{tfov_minutes:02.0f}'" +msgstr "실시야: {tfov_degrees:.0f}°{tfov_minutes:02.0f}'" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/equipment.py:104 +msgid "Telescope..." +msgstr "망원경..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/equipment.py:115 PiFinder/ui/log.py:229 +msgid "Eyepiece..." +msgstr "아이피스..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:31 +msgid "Limited" +msgstr "제한적" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: there's no GPS lock but we accept the position due to low +#. enough error value +#: PiFinder/ui/gpsstatus.py:33 +msgid "Basic" +msgstr "기본" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: coarse GPS fix, does this happen? +#: PiFinder/ui/gpsstatus.py:34 +msgid "Accurate" +msgstr "정확" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: GPS 2D Fix +#: PiFinder/ui/gpsstatus.py:35 +msgid "Precise" +msgstr "정밀" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:45 views/gps.html:84 views/network.html:81 +msgid "Save" +msgstr "저장" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:48 +msgid "Lock" +msgstr "고정" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:112 +msgid "Location saved" +msgstr "위치 저장됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:122 +msgid "Location locked" +msgstr "위치 고정됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:127 +#, python-brace-format +msgid "{error:.1f} km" +msgstr "{error:.1f} km" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:131 +#, python-brace-format +msgid "{error:.0f} m" +msgstr "{error:.0f} m" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:153 +msgid "GPS Locked" +msgstr "GPS 수신됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:160 +msgid "Lock boost on" +msgstr "수신 부스트 켜짐" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:169 +msgid "You are ready" +msgstr "관측할 준비가" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:176 +msgid "to observe!" +msgstr "되었습니다!" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:185 +msgid "Stay on this screen" +msgstr "빠른 수신을 위해" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:194 +msgid "for quicker lock" +msgstr "이 화면에 머무르세요" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:204 +msgid "Lock Type:" +msgstr "수신 상태:" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:211 PiFinder/ui/menu_structure.py:438 +#: PiFinder/ui/menu_structure.py:470 views/network.html:74 +msgid "None" +msgstr "없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:224 +msgid "Sats seen/used:" +msgstr "위성 감지/사용:" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:240 +#, python-brace-format +msgid "{square} Toggle Details" +msgstr "{square} 상세 보기" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:249 +#, python-brace-format +msgid "Sats seen/used: {sats_seen}/{sats_used}" +msgstr "위성 감지/사용: {sats_seen}/{sats_used}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:260 +#, python-brace-format +msgid "Error: {error}" +msgstr "오차: {error}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:271 +#, python-brace-format +msgid "Lock: {locktype}" +msgstr "수신: {locktype}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:272 +msgid "No" +msgstr "없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:284 +#, python-brace-format +msgid "Lat: {latitude:.5f}" +msgstr "위도: {latitude:.5f}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:292 +#, python-brace-format +msgid "Lon: {longitude:.5f}" +msgstr "경도: {longitude:.5f}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:300 +#, python-brace-format +msgid "Alt: {altitude:.1f} m" +msgstr "고도: {altitude:.1f} m" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:309 +#, python-brace-format +msgid "Time: {time}" +msgstr "시간: {time}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:318 +#, python-brace-format +msgid "Date: {date}" +msgstr "날짜: {date}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/gpsstatus.py:327 +#, python-brace-format +msgid "From: {location_source}" +msgstr "출처: {location_source}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/location_list.py:28 PiFinder/ui/menu_structure.py:1307 +msgid "Load" +msgstr "불러오기" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/location_list.py:29 +msgid "Rename" +msgstr "이름 변경" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/location_list.py:30 views/locations.html:95 +#: views/locations.html:201 views/network_item.html:14 +#: views/network_item.html:18 +msgid "Delete" +msgstr "삭제" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/location_list.py:105 +#, python-brace-format +msgid "Loaded: {name}" +msgstr "불러옴: {name}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/location_list.py:128 +#, python-brace-format +msgid "Deleted: {name}" +msgstr "삭제됨: {name}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/location_list.py:148 +#, python-brace-format +msgid "" +"Renamed to:\n" +"{name}" +msgstr "" +"이름 변경됨:\n" +"{name}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/location_list.py:187 +msgid "No locations" +msgstr "저장된 위치 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/locationentry.py:31 +msgid "Enter Latitude" +msgstr "위도 입력" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/locationentry.py:34 +msgid "DD" +msgstr "DD" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/locationentry.py:38 +msgid "Enter Longitude" +msgstr "경도 입력" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/locationentry.py:41 +msgid "DDD" +msgstr "DDD" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/locationentry.py:45 +msgid "Altitude (m)" +msgstr "고도 (m)" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/locationentry.py:46 +msgid "meters" +msgstr "미터" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/locationentry.py:215 +msgid " Next/Done" +msgstr " 다음/완료" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/locationentry.py:228 +msgid "󰍴 Delete 󰐕 N/S" +msgstr "󰍴 삭제 󰐕 N/S" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/locationentry.py:230 +msgid "󰍴 Delete 󰐕 E/W" +msgstr "󰍴 삭제 󰐕 E/W" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/locationentry.py:312 PiFinder/ui/locationentry.py:324 +#: PiFinder/ui/menu_structure.py:1222 +msgid "Enter Coords" +msgstr "좌표 입력" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:49 +msgid "Conditions" +msgstr "관측 조건" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:54 +msgid "Transparency" +msgstr "투명도" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Transparency not available +#. TRANSLATORS: Seeing not available +#. TRANSLATORS: eyepiece info not available +#: PiFinder/ui/log.py:61 PiFinder/ui/log.py:94 PiFinder/ui/log.py:259 +msgid "NA" +msgstr "N/A" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:65 PiFinder/ui/log.py:98 +msgid "Excellent" +msgstr "최상" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:69 PiFinder/ui/log.py:102 +msgid "Very Good" +msgstr "매우 좋음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:73 PiFinder/ui/log.py:106 +msgid "Good" +msgstr "좋음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:77 PiFinder/ui/log.py:110 +msgid "Fair" +msgstr "보통" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:81 PiFinder/ui/log.py:114 +msgid "Poor" +msgstr "나쁨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:87 +msgid "Seeing" +msgstr "시잉" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:183 +msgid "SAVE Log" +msgstr "기록 저장" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:194 +msgid "Observability" +msgstr "가시성" + +# AI-TRANSLATED (claude): needs human review: unsure of intended meaning +#: PiFinder/ui/log.py:207 +#, fuzzy +msgid "Appeal" +msgstr "매력도" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:219 +msgid "Conditions..." +msgstr "관측 조건..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/log.py:303 +msgid "Logged!" +msgstr "기록됨!" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_manager.py:77 +msgid "Eyepiece" +msgstr "아이피스" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_manager.py:96 +msgid "Telescope" +msgstr "망원경" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:31 +msgid "Language: de" +msgstr "언어: 독일어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:32 +msgid "Language: en" +msgstr "언어: 영어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:33 +msgid "Language: es" +msgstr "언어: 스페인어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:34 +msgid "Language: fr" +msgstr "언어: 프랑스어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:35 +msgid "Language: zh" +msgstr "언어: 중국어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:36 +msgid "Language: ko" +msgstr "언어: 한국어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:47 +msgid "Start" +msgstr "시작" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:52 +msgid "Focus" +msgstr "초점" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:56 +msgid "Align" +msgstr "얼라인" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:62 +msgid "Align (Day)" +msgstr "얼라인 (주간)" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:68 PiFinder/ui/menu_structure.py:1213 +msgid "GPS Status" +msgstr "GPS 상태" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:74 +msgid "Chart" +msgstr "성도" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:80 views/obs_session_log.html:7 +#: views/obs_sessions.html:11 views/obs_sessions.html:25 +msgid "Objects" +msgstr "천체" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:85 +msgid "All Filtered" +msgstr "전체 (필터)" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:90 +msgid "By Catalog" +msgstr "카탈로그별" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:95 PiFinder/ui/menu_structure.py:304 +msgid "Planets" +msgstr "행성" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:101 PiFinder/ui/menu_structure.py:308 +msgid "Comets" +msgstr "혜성" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:107 PiFinder/ui/menu_structure.py:190 +#: PiFinder/ui/menu_structure.py:312 PiFinder/ui/menu_structure.py:370 +msgid "NGC" +msgstr "NGC" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:113 PiFinder/ui/menu_structure.py:184 +#: PiFinder/ui/menu_structure.py:316 PiFinder/ui/menu_structure.py:366 +msgid "Messier" +msgstr "메시에" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:119 PiFinder/ui/menu_structure.py:320 +msgid "DSO..." +msgstr "딥스카이..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:124 PiFinder/ui/menu_structure.py:326 +msgid "Abell Pn" +msgstr "Abell 행성상성운" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:130 PiFinder/ui/menu_structure.py:330 +msgid "Arp Galaxies" +msgstr "Arp 은하" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:136 PiFinder/ui/menu_structure.py:334 +msgid "Barnard" +msgstr "바너드" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:142 PiFinder/ui/menu_structure.py:338 +msgid "Caldwell" +msgstr "콜드웰" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:148 PiFinder/ui/menu_structure.py:342 +msgid "Collinder" +msgstr "콜린더" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:154 PiFinder/ui/menu_structure.py:346 +msgid "E.G. Globs" +msgstr "외부은하 구상성단" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:160 PiFinder/ui/menu_structure.py:350 +msgid "Harris Globs" +msgstr "Harris 구상성단" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:166 PiFinder/ui/menu_structure.py:354 +msgid "Herschel 400" +msgstr "허셜 400" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:172 PiFinder/ui/menu_structure.py:358 +msgid "IC" +msgstr "IC" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:178 PiFinder/ui/menu_structure.py:362 +msgid "Lynga Opn Cl" +msgstr "Lynga 산개성단" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:196 PiFinder/ui/menu_structure.py:374 +msgid "Sharpless" +msgstr "샤플리스" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:202 PiFinder/ui/menu_structure.py:378 +msgid "TAAS 200" +msgstr "TAAS 200" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:210 PiFinder/ui/menu_structure.py:384 +msgid "Stars..." +msgstr "별..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:215 PiFinder/ui/menu_structure.py:390 +msgid "Bright Named" +msgstr "밝은 고유명 별" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:221 PiFinder/ui/menu_structure.py:394 +msgid "SAC Doubles" +msgstr "SAC 이중성" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:227 PiFinder/ui/menu_structure.py:398 +msgid "SAC Asterisms" +msgstr "SAC 성군" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:233 PiFinder/ui/menu_structure.py:402 +msgid "SAC Red Stars" +msgstr "SAC 적색별" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:239 PiFinder/ui/menu_structure.py:406 +msgid "RASC Doubles" +msgstr "RASC 이중성" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:245 +msgid "WDS Doubles" +msgstr "WDS 이중성" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:251 PiFinder/ui/menu_structure.py:410 +msgid "TLK 90 Variables" +msgstr "TLK 90 변광성" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:261 +msgid "Recent" +msgstr "최근" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:267 PiFinder/ui/obs_list.py:70 +msgid "Obs Lists" +msgstr "관측 목록" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:271 +msgid "Custom" +msgstr "사용자 지정" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:276 +msgid "Name Search" +msgstr "이름 검색" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:280 +msgid "Set Filters" +msgstr "필터 설정" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:286 +msgid "Reset All" +msgstr "모두 초기화" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:291 PiFinder/ui/menu_structure.py:1328 +#: PiFinder/ui/menu_structure.py:1339 PiFinder/ui/software.py:435 +#: PiFinder/ui/software.py:531 +msgid "Confirm" +msgstr "확인" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:294 PiFinder/ui/menu_structure.py:1329 +#: PiFinder/ui/menu_structure.py:1342 PiFinder/ui/software.py:380 +#: PiFinder/ui/software.py:435 PiFinder/ui/software.py:529 +#: views/edit_eyepiece.html:67 views/edit_instrument.html:113 +#: views/equipment.html:58 views/location_form.html:77 views/locations.html:187 +#: views/locations.html:200 views/network.html:46 views/network.html:83 +#: views/network_item.html:19 views/tools.html:97 +msgid "Cancel" +msgstr "취소" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:298 +msgid "Catalogs" +msgstr "카탈로그" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:418 +msgid "Type" +msgstr "종류" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:464 +msgid "Magnitude" +msgstr "등급" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:516 PiFinder/ui/menu_structure.py:526 +msgid "Observed" +msgstr "관측됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:522 +msgid "Any" +msgstr "모두" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:530 +msgid "Not Observed" +msgstr "미관측" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:549 +msgid "User Pref..." +msgstr "사용자 설정..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:554 +msgid "Key Bright" +msgstr "키패드 밝기" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:595 +msgid "Volume" +msgstr "음량" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:601 PiFinder/ui/menu_structure.py:616 +#: PiFinder/ui/menu_structure.py:648 PiFinder/ui/menu_structure.py:672 +#: PiFinder/ui/menu_structure.py:795 PiFinder/ui/menu_structure.py:819 +#: PiFinder/ui/menu_structure.py:843 PiFinder/ui/menu_structure.py:867 +#: PiFinder/ui/menu_structure.py:889 PiFinder/ui/menu_structure.py:916 +#: PiFinder/ui/menu_structure.py:932 PiFinder/ui/menu_structure.py:1175 +#: PiFinder/ui/menu_structure.py:1281 PiFinder/ui/menu_structure.py:1297 +msgid "Off" +msgstr "끔" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:610 +msgid "Sleep Time" +msgstr "절전 시간" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:642 +msgid "Menu Anim" +msgstr "메뉴 애니메이션" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:652 PiFinder/ui/menu_structure.py:676 +msgid "Fast" +msgstr "빠름" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:656 PiFinder/ui/menu_structure.py:680 +#: PiFinder/ui/menu_structure.py:803 PiFinder/ui/menu_structure.py:827 +#: PiFinder/ui/menu_structure.py:851 PiFinder/ui/menu_structure.py:1189 +msgid "Medium" +msgstr "보통" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:660 PiFinder/ui/menu_structure.py:684 +msgid "Slow" +msgstr "느림" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:666 +msgid "Scroll Speed" +msgstr "스크롤 속도" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:690 +msgid "Search Input" +msgstr "검색 입력 방식" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:697 +msgid "Multi-Tap" +msgstr "멀티탭" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:701 +msgid "T9" +msgstr "T9" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:707 +msgid "Az Arrows" +msgstr "방위각 화살표" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:714 +msgid "Default" +msgstr "기본" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:718 +msgid "Reverse" +msgstr "반전" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:724 +msgid "Language" +msgstr "언어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:731 +msgid "English" +msgstr "영어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:735 +msgid "German" +msgstr "독일어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:739 +msgid "French" +msgstr "프랑스어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:743 +msgid "Spanish" +msgstr "스페인어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:747 +msgid "Chinese" +msgstr "중국어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:751 +msgid "Korean" +msgstr "한국어" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:759 +msgid "Chart..." +msgstr "성도..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:765 +msgid "Coordinate Sys." +msgstr "좌표계" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:771 +msgid "Horizontal" +msgstr "지평좌표" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:775 +msgid "EQ (Auto)" +msgstr "EQ (자동)" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:779 +msgid "EQ (North-up)" +msgstr "EQ (북쪽 위)" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:783 +msgid "EQ (South-up)" +msgstr "EQ (남쪽 위)" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:789 +msgid "Reticle" +msgstr "레티클" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:799 PiFinder/ui/menu_structure.py:823 +#: PiFinder/ui/menu_structure.py:847 PiFinder/ui/menu_structure.py:1185 +msgid "Low" +msgstr "낮음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:807 PiFinder/ui/menu_structure.py:831 +#: PiFinder/ui/menu_structure.py:855 PiFinder/ui/menu_structure.py:1193 +msgid "High" +msgstr "높음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:813 +msgid "Constellation" +msgstr "별자리" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:837 +msgid "DSO Display" +msgstr "딥스카이 표시" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:861 +msgid "RA/DEC Disp." +msgstr "RA/Dec 표시" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:871 +msgid "HH:MM" +msgstr "HH:MM" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:875 +msgid "Degrees" +msgstr "도" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: chart setting — names the object +#. nearest the middle of the chart +#: PiFinder/ui/menu_structure.py:883 +msgid "Center Object" +msgstr "중앙 천체 이름" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:893 PiFinder/ui/menu_structure.py:912 +#: PiFinder/ui/menu_structure.py:928 PiFinder/ui/menu_structure.py:1285 +#: PiFinder/ui/menu_structure.py:1301 +msgid "On" +msgstr "켬" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:901 +msgid "Image..." +msgstr "이미지..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:906 +msgid "NSEW Labels" +msgstr "방위 표시" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:922 +msgid "Object Size" +msgstr "천체 크기" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:940 +msgid "Camera Exp" +msgstr "카메라 노출" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:948 +msgid "Auto" +msgstr "자동" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:953 +msgid "0.025s" +msgstr "0.025s" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:957 +msgid "0.05s" +msgstr "0.05s" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:961 +msgid "0.1s" +msgstr "0.1s" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:965 +msgid "0.2s" +msgstr "0.2s" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:969 +msgid "0.4s" +msgstr "0.4s" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:973 +msgid "0.8s" +msgstr "0.8s" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:977 +msgid "1s" +msgstr "1s" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:983 +msgid "WiFi Mode" +msgstr "WiFi 모드" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:989 +msgid "Client Mode" +msgstr "클라이언트 모드" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:994 +msgid "AP Mode" +msgstr "AP 모드" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1001 views/edit_instrument.html:66 +#: views/equipment.html:73 +msgid "Mount Type" +msgstr "마운트 종류" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1008 views/edit_instrument.html:62 +msgid "Alt/Az" +msgstr "Alt/Az" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1012 views/edit_instrument.html:63 +msgid "Equatorial" +msgstr "적도의" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1024 +msgid "PiFinder Type" +msgstr "PiFinder 종류" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1031 +msgid "Left" +msgstr "왼쪽" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1035 +msgid "Right" +msgstr "오른쪽" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1039 +msgid "Straight" +msgstr "직선형" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1043 +msgid "Flat v3" +msgstr "Flat v3" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1047 +msgid "Flat v2" +msgstr "Flat v2" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1051 +msgid "AS Bloom" +msgstr "AS Bloom" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1055 +msgid "AS Heart" +msgstr "AS Heart" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1059 +msgid "Rev4 Left" +msgstr "Rev4 왼쪽" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1063 +msgid "Rev4 Right" +msgstr "Rev4 오른쪽" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1067 +msgid "Rev4 Straight" +msgstr "Rev4 직선형" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1073 +msgid "Camera Type" +msgstr "카메라 종류" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1079 +msgid "v2 - imx477" +msgstr "v2 - imx477" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1084 +msgid "v3 - imx296" +msgstr "v3 - imx296" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1089 +msgid "v3 - imx462" +msgstr "v3 - imx462" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1100 +msgid "Lens" +msgstr "렌즈" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1109 +msgid "12mm" +msgstr "12mm" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1113 +msgid "16mm" +msgstr "16mm" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1117 +msgid "25mm" +msgstr "25mm" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1123 views/gps.html:6 +msgid "GPS Settings" +msgstr "GPS 설정" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1128 +msgid "GPS Type" +msgstr "GPS 종류" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1136 +msgid "UBlox" +msgstr "UBlox" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1140 +msgid "GPSD (generic)" +msgstr "GPSD (일반)" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1146 +msgid "GPS Baud Rate" +msgstr "GPS 보드레이트" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1154 +msgid "9600 (standard)" +msgstr "9600 (표준)" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1158 +msgid "115200 (UBlox-10)" +msgstr "115200 (UBlox-10)" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1168 +msgid "IMU Sensit." +msgstr "IMU 감도" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1180 +msgid "Very Low" +msgstr "매우 낮음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1205 +msgid "Status" +msgstr "상태" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1208 +msgid "Place & Time" +msgstr "위치 및 시간" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1217 +msgid "Set Location" +msgstr "위치 설정" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1226 views/locations.html:86 +msgid "Load Location" +msgstr "위치 불러오기" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1230 views/location_form.html:76 +msgid "Save Location" +msgstr "위치 저장" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1236 +msgid "Set Time/Date" +msgstr "시간/날짜 설정" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1243 +msgid "Reset Location" +msgstr "위치 초기화" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1245 +msgid "Reset Time/Date" +msgstr "시간/날짜 초기화" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1250 +msgid "Console" +msgstr "콘솔" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1251 +msgid "Software Upd" +msgstr "소프트웨어 업데이트" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1254 +msgid "Experimental" +msgstr "실험적 기능" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1259 +msgid "Polar Align" +msgstr "극축 정렬" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1264 +msgid "Dev Tools" +msgstr "개발자 도구" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1269 +msgid "Telemetry" +msgstr "텔레메트리" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1274 +msgid "Record" +msgstr "기록" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1291 +msgid "Images" +msgstr "이미지" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1317 +msgid "Power" +msgstr "전원" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:1323 +msgid "Shutdown" +msgstr "종료" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:98 PiFinder/ui/object_details.py:103 +msgid "ALIGN" +msgstr "얼라인" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:101 +msgid "CANCEL" +msgstr "취소" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:133 +msgid "No Object Found" +msgstr "천체를 찾을 수 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:251 PiFinder/ui/object_details.py:258 +#, python-brace-format +msgid "Mag:{obj_mag}" +msgstr "등급:{obj_mag}" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: object info magnitude +#: PiFinder/ui/object_details.py:254 +#, python-brace-format +msgid "Sz:{size}" +msgstr "크기:{size}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:380 +msgid "  Not Logged" +msgstr "  기록 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:382 +#, python-brace-format +msgid "  {logs} Logs" +msgstr "  기록 {logs}건" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:429 PiFinder/ui/polar_align.py:444 +msgid "No solve" +msgstr "아직 솔빙" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:435 +#, python-brace-format +msgid "yet{elipsis}" +msgstr "안 됨{elipsis}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:449 +msgid "Searching" +msgstr "GPS 신호" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:455 +#, python-brace-format +msgid "for GPS{elipsis}" +msgstr "검색 중{elipsis}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:469 PiFinder/ui/object_details.py:497 +msgid "Calculating" +msgstr "위치" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:475 +msgid "positions" +msgstr "계산 중" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:503 +msgid "position" +msgstr "계산 중" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:587 +msgid "Contrast Reserve" +msgstr "콘트라스트 리저브 (CR)" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:613 +msgid "No contrast data" +msgstr "대비 데이터 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:622 +msgid "CR measures object" +msgstr "CR은 하늘 밝기," + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Contrast reserve explanation line 1 +#: PiFinder/ui/object_details.py:625 +msgid "visibility based on" +msgstr "망원경, 아이피스에" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Contrast reserve explanation line 2 +#: PiFinder/ui/object_details.py:628 +msgid "sky brightness," +msgstr "따른 천체의" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: Contrast reserve explanation line 3 +#: PiFinder/ui/object_details.py:631 +msgid "telescope, and EP." +msgstr "가시성 지표입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:706 +msgid "Too Far" +msgstr "너무 멀리 있음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_details.py:731 +msgid "LOG" +msgstr "기록" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:71 views/obs_session_log.html:21 +msgid "Catalog" +msgstr "카탈로그" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:73 PiFinder/ui/object_list.py:950 +msgid "RA" +msgstr "RA" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:74 +msgid "Nearby" +msgstr "근처" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:180 +msgid "Refresh" +msgstr "새로 고침" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:186 +msgid "Sort" +msgstr "정렬" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:190 PiFinder/ui/object_list.py:940 +msgid "Nearest" +msgstr "가까운 순" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:194 PiFinder/ui/object_list.py:945 +msgid "Standard" +msgstr "표준" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:199 +msgid "Filter" +msgstr "필터" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:327 PiFinder/ui/software.py:572 +msgid "Downloading..." +msgstr "다운로드 중..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:334 +msgid "No GPS lock" +msgstr "GPS 미수신" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:341 +msgid "Calculating..." +msgstr "계산 중..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:349 PiFinder/ui/software.py:750 +msgid "Loading..." +msgstr "로딩 중..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:356 +#, python-brace-format +msgid "" +"Sorting by\n" +"{sort_order}" +msgstr "" +"{sort_order}\n" +"순 정렬" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:653 +msgid "No objects" +msgstr "필터에 맞는" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:659 +msgid "match filter" +msgstr "천체 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:688 +#, python-brace-format +msgid "{catalog_info_1} obj" +msgstr "{catalog_info_1}개" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: number of objects in object list +#: PiFinder/ui/object_list.py:691 +#, python-brace-format +msgid ", {catalog_info_2}d old" +msgstr ", {catalog_info_2}일 전" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:701 +#, python-brace-format +msgid "Sort: {sort_order}" +msgstr "정렬: {sort_order}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/object_list.py:995 +msgid "Refreshing..." +msgstr "새로 고침 중..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/obs_list.py:151 +#, python-brace-format +msgid "" +"Error loading\n" +"{parsed} parsed" +msgstr "" +"로딩 오류\n" +"{parsed}개 파싱됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/obs_list.py:157 +#, python-brace-format +msgid "" +"{name}\n" +"{matched}/{parsed} objects" +msgstr "" +"{name}\n" +"{matched}/{parsed} 천체" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:91 +msgid "REDO PT" +msgstr "포인트 다시" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:93 +msgid "STATS" +msgstr "통계" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:228 PiFinder/ui/polar_align.py:549 +msgid "Need GPS lock" +msgstr "GPS 수신 필요" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:234 PiFinder/ui/polar_align.py:551 +msgid "Rotate more" +msgstr "더 회전하세요" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:313 +msgid "PLATFORM PA" +msgstr "플랫폼 극축정렬" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:321 +msgid "Solve 2-3 points," +msgstr "플랫폼을 회전하며" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:322 +msgid "rotating platform" +msgstr "2-3개 포인트를" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:323 +msgid "between them." +msgstr "솔빙하세요." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:324 +msgid "Do not move scope" +msgstr "마운트 위의 망원경은" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:325 +msgid "on the mount." +msgstr "움직이지 마세요." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:329 +msgid "GPS: waiting..." +msgstr "GPS: 대기 중..." + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: hint bar; {icon} is the SQUARE button glyph +#: PiFinder/ui/polar_align.py:331 +#, python-brace-format +msgid "{icon} START" +msgstr "{icon} 시작" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:338 +msgid "POINT" +msgstr "포인트" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:346 +msgid "Aim away from" +msgstr "극에서 떨어진 곳을" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:347 +msgid "the pole, wait" +msgstr "겨냥하고 솔빙을" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:348 +msgid "for a solve." +msgstr "기다리세요." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:352 +msgid "Rotate platform" +msgstr "플랫폼을 10° 이상" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:353 +msgid "10° or more." +msgstr "회전하세요." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:357 +msgid "Rotate further" +msgstr "더 회전하거나" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:358 +msgid "or solve now." +msgstr "지금 솔빙하세요." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:364 +msgid "Solve" +msgstr "솔빙" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:367 +msgid "No recent solve" +msgstr "최근 솔빙 없음" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: hint bar; {square} is the SQUARE button glyph, {minus} +#. is the MINUS button glyph. +#: PiFinder/ui/polar_align.py:373 +#, python-brace-format +msgid "{square} CAPTURE {minus} CANCEL" +msgstr "{square} 캡처 {minus} 취소" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:377 +msgid "0 SOLVE NOW" +msgstr "0 지금 솔빙" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:384 +msgid "CAPTURING" +msgstr "캡처 중" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:392 +msgid "Hold still," +msgstr "카메라 솔빙을" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:393 +msgid "waiting for" +msgstr "기다리는 중," + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:394 +msgid "camera solve." +msgstr "움직이지 마세요." + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: hint bar; {icon} is the MINUS button glyph +#. TRANSLATORS: hint bar; {icon} is the SQUARE button glyph +#: PiFinder/ui/polar_align.py:398 PiFinder/ui/polar_align.py:470 +#: PiFinder/ui/polar_align.py:500 +#, python-brace-format +msgid "{icon} BACK" +msgstr "{icon} 뒤로" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:406 +msgid "ok" +msgstr "양호" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:408 +msgid "mid" +msgstr "보통" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:409 +msgid "bad" +msgstr "나쁨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:414 PiFinder/ui/polar_align.py:481 +msgid "pt" +msgstr "점" + +# AI-TRANSLATED (claude): needs human review +#. TRANSLATORS: hint bar; {square} is the SQUARE button glyph, {minus} +#. is the MINUS button glyph. +#: PiFinder/ui/polar_align.py:428 +#, python-brace-format +msgid "{square} REDO {minus} CANCEL" +msgstr "{square} 다시 {minus} 취소" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:468 +msgid "No result yet" +msgstr "아직 결과 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:477 +msgid "RA/Dec" +msgstr "RA/Dec" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:477 +msgid "3-axis" +msgstr "3축" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:484 +msgid "Fit" +msgstr "피팅" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:485 +msgid "Alt" +msgstr "고도" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:486 +msgid "Az" +msgstr "방위" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:487 +msgid "Axis" +msgstr "축" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:497 +msgid "time" +msgstr "시간" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:497 +msgid "sec" +msgstr "초" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:547 +msgid "Need 2 points" +msgstr "포인트 2개 필요" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:561 PiFinder/ui/polar_align.py:568 +msgid "Roll Off" +msgstr "롤 끔" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:561 PiFinder/ui/polar_align.py:568 +msgid "Roll On" +msgstr "롤 켬" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:576 +msgid "No points" +msgstr "포인트 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/polar_align.py:582 +msgid "Dropped point" +msgstr "포인트 제거됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/radec_entry.py:516 +msgid "Full" +msgstr "전체" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/radec_entry.py:530 +msgid "H/D" +msgstr "H/D" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/radec_entry.py:540 +msgid "D/D" +msgstr "D/D" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/radec_entry.py:602 +msgid "RA/DEC Entry" +msgstr "RA/Dec 입력" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/radec_entry.py:839 +msgid "RA:" +msgstr "RA:" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/radec_entry.py:845 +msgid "DEC:" +msgstr "Dec:" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/radec_entry.py:851 +msgid "EPOCH:" +msgstr "EPOCH:" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/radec_entry.py:997 +msgid "RA/DEC" +msgstr "RA/Dec" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:213 +msgid "No release found" +msgstr "릴리스 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:219 PiFinder/ui/software.py:632 +msgid "System Upgrade" +msgstr "시스템 업그레이드" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:259 +msgid "Updating..." +msgstr "업데이트 중..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:261 +msgid "Ok! Restarting" +msgstr "완료! 재시작 중" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:264 +msgid "Error on Upd" +msgstr "업데이트 오류" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:271 +#, python-brace-format +msgid "Wifi Mode: {mode}" +msgstr "WiFi 모드: {mode}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:279 +msgid "Current Version" +msgstr "현재 버전" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:295 +msgid "Release Version" +msgstr "릴리스 버전" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:317 +msgid "WiFi must be" +msgstr "WiFi가 클라이언트" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:323 +msgid "client mode" +msgstr "모드여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:336 +msgid "Checking for" +msgstr "업데이트" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:342 +#, python-brace-format +msgid "updates{elipsis}" +msgstr "확인 중{elipsis}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:358 +msgid "No Update" +msgstr "업데이트" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:364 +msgid "needed" +msgstr "필요 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:374 +msgid "Update Now" +msgstr "지금 업데이트" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:444 +msgid "Major Upgrade" +msgstr "메이저 업그레이드" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:464 +msgid "IRREVERSIBLE" +msgstr "되돌릴 수 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:473 +#, python-brace-format +msgid "Download: {size}MB" +msgstr "다운로드: {size}MB" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:481 +msgid "Power + WiFi req" +msgstr "전원 + WiFi 필요" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:492 +msgid "No checksum avail." +msgstr "체크섬 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:552 +msgid "Starting..." +msgstr "시작 중..." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:594 PiFinder/ui/software.py:599 +msgid "Not supported" +msgstr "지원되지 않음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:604 +msgid "Failed: " +msgstr "실패: " + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:735 +msgid "Could not load" +msgstr "릴리스 노트를" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/software.py:741 +msgid "release notes" +msgstr "불러올 수 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:25 +msgid "SQM" +msgstr "SQM" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:42 +msgid "CALIB" +msgstr "보정" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:48 +msgid "SWEEP" +msgstr "스윕" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:100 +msgid "NO SQM DATA" +msgstr "SQM 데이터 없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:128 PiFinder/ui/sqm.py:215 +msgid "mag/arcsec²" +msgstr "mag/arcsec²" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:147 PiFinder/ui/sqm.py:250 +#, python-brace-format +msgid "Bortle {bc}" +msgstr "보틀 {bc}" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:156 +msgid "BACK" +msgstr "뒤로" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:157 +msgid "SCROLL" +msgstr "스크롤" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:170 +#, python-brace-format +msgid "{s}s ago" +msgstr "{s}초 전" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:172 +#, python-brace-format +msgid "{m}m ago" +msgstr "{m}분 전" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:256 +msgid "DETAILS" +msgstr "상세" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:311 +msgid "SQM Calibration" +msgstr "SQM 보정" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:323 +msgid "SQM Sweep" +msgstr "SQM 스윕" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:345 +msgid "Excellent Dark-Sky Site" +msgstr "최상의 어두운 하늘" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:350 +msgid "The zodiacal light is visible and colorful. Gegenschein readily visible." +msgstr "황도광이 선명하고 색이 보입니다. 대일조가 쉽게 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:353 +msgid "" +"The Scorpius and Sagittarius regions of the Milky Way cast obvious " +"shadows." +msgstr "전갈자리와 궁수자리 부근의 은하수가 뚜렷한 그림자를 드리웁니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:355 +msgid "M33 is a direct naked-eye object. Airglow readily visible." +msgstr "M33이 맨눈으로 직접 보입니다. 대기광이 쉽게 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:356 +msgid "Abundant stars make faint constellations hard to distinguish." +msgstr "별이 너무 많아 어두운 별자리를 구분하기 어렵습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:361 +msgid "Typical Truly Dark Site" +msgstr "전형적인 어두운 하늘" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:366 +msgid "" +"The zodiacal light is distinctly yellowish and bright enough to cast " +"shadows at dusk and dawn." +msgstr "황도광이 뚜렷하게 노란빛을 띠며 새벽과 해질녘에 그림자를 드리울 만큼 밝습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:368 +msgid "Clouds appear as dark silhouettes against the sky." +msgstr "구름이 하늘을 배경으로 어두운 실루엣으로 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:369 +msgid "The summer Milky Way is highly structured. M33 easily visible." +msgstr "여름 은하수의 구조가 매우 뚜렷합니다. M33이 쉽게 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:374 +msgid "Rural Sky" +msgstr "시골 하늘" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:379 +msgid "The zodiacal light is striking in spring and autumn, color still visible." +msgstr "봄과 가을에 황도광이 인상적이며 색도 여전히 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:382 +msgid "" +"Some light pollution at horizon. Clouds illuminated near horizon, dark " +"overhead." +msgstr "지평선 부근에 약간의 광공해가 있습니다. 지평선 근처 구름은 밝고 머리 위는 어둡습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:384 +msgid "The summer Milky Way still appears complex." +msgstr "여름 은하수가 여전히 복잡한 구조로 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:385 +msgid "Several Messier objects remain naked-eye visible." +msgstr "여러 메시에 천체가 맨눈으로 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:390 +msgid "Brighter Rural" +msgstr "밝은 시골 하늘" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:395 +msgid "Zodiacal light still visible but doesn't extend halfway to zenith." +msgstr "황도광이 보이지만 천정까지의 절반에도 미치지 못합니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:397 +msgid "Light pollution domes apparent in multiple directions." +msgstr "여러 방향에서 광공해 돔이 뚜렷합니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:399 +msgid "" +"The Milky Way well above the horizon is still impressive, but lacks " +"detail." +msgstr "지평선 위 높이 뜬 은하수는 여전히 인상적이지만 세부 구조가 부족합니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:401 +msgid "M33 difficult to see." +msgstr "M33을 보기 어렵습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:406 +msgid "Semi-Suburban/Transition Sky" +msgstr "준교외/전환 하늘" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:411 +msgid "Clouds have a grayish glow at zenith and appear bright toward city domes." +msgstr "천정의 구름이 회색빛으로 빛나며 도시 광공해 돔 방향으로는 밝게 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:413 +msgid "Milky Way only vaguely visible 10-15° above horizon." +msgstr "은하수가 지평선 위 10-15°에서 희미하게만 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:414 +msgid "Great Rift observable overhead." +msgstr "머리 위에서 대암극이 관측됩니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:419 +msgid "Suburban Sky" +msgstr "교외 하늘" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:424 +msgid "Only hints of zodiacal light seen on best nights in autumn and spring." +msgstr "가을과 봄의 가장 좋은 밤에만 황도광의 흔적이 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:426 +msgid "Light pollution visible in most, if not all, directions." +msgstr "거의 모든 방향에서 광공해가 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:427 +msgid "Clouds noticeably brighter than the sky." +msgstr "구름이 하늘보다 눈에 띄게 밝습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:428 +msgid "Milky Way invisible near horizon, looks washed out overhead." +msgstr "지평선 근처에서는 은하수가 보이지 않고 머리 위에서는 흐릿합니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:433 +msgid "Bright Suburban Sky" +msgstr "밝은 교외 하늘" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:437 +msgid "The zodiacal light is invisible." +msgstr "황도광이 보이지 않습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:439 +msgid "Light pollution makes sky within 35° of horizon glow grayish white." +msgstr "광공해로 지평선 위 35° 이내의 하늘이 회백색으로 빛납니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:442 +msgid "The Milky Way is only visible near the zenith. M33 undetectable." +msgstr "은하수가 천정 부근에서만 보입니다. M33은 감지되지 않습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:444 +msgid "M31 modestly apparent. Surroundings easily visible." +msgstr "M31이 어느 정도 보입니다. 주변이 쉽게 보입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:449 +msgid "Suburban/Urban Transition" +msgstr "교외/도시 전환" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:453 +msgid "Light pollution makes the entire sky light gray." +msgstr "광공해로 하늘 전체가 밝은 회색입니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:454 +msgid "Strong light sources evident in all directions." +msgstr "모든 방향에서 강한 광원이 뚜렷합니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:455 +msgid "The Milky Way is nearly or totally invisible." +msgstr "은하수가 거의 또는 전혀 보이지 않습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:456 +msgid "M31 and M44 may be glimpsed, but with no detail." +msgstr "M31과 M44가 언뜻 보일 수 있으나 세부는 보이지 않습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:461 +msgid "City Sky" +msgstr "도시 하늘" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:465 +msgid "The sky is light gray or orange—one can easily read." +msgstr "하늘이 밝은 회색 또는 주황색이며 글을 쉽게 읽을 수 있습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:466 +msgid "Stars forming recognizable patterns may vanish entirely." +msgstr "별자리를 이루는 별들이 완전히 사라질 수 있습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:467 +msgid "Only bright Messier objects can be detected with telescopes." +msgstr "망원경으로 밝은 메시에 천체만 감지할 수 있습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:472 +msgid "Inner-City Sky" +msgstr "도심 하늘" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:476 +msgid "The sky is brilliantly lit." +msgstr "하늘이 매우 밝게 빛납니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:477 +msgid "Many stars forming constellations invisible." +msgstr "별자리를 이루는 많은 별이 보이지 않습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/sqm.py:479 +msgid "" +"Only the Moon, planets, bright satellites, and a few of the brightest " +"star clusters observable." +msgstr "달, 행성, 밝은 인공위성과 가장 밝은 성단 몇 개만 관측할 수 있습니다." + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/telemetry_list.py:69 +msgid "Stop replay" +msgstr "재생 중지" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/telemetry_list.py:93 +msgid "" +"No integrator\n" +"queue" +msgstr "" +"integrator 큐\n" +"없음" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/telemetry_list.py:99 +msgid "" +"Replay\n" +"stopped" +msgstr "" +"재생\n" +"중지됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/telemetry_list.py:105 +msgid "" +"Replay\n" +"started" +msgstr "" +"재생\n" +"시작됨" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/text_menu.py:61 +msgid "Select None" +msgstr "모두 해제" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/text_menu.py:223 +msgid "Select All" +msgstr "모두 선택" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/textentry.py:110 +msgid "Input" +msgstr "입력" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/textentry.py:221 +msgid "Results" +msgstr "결과" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/textentry.py:426 +msgid "Enter Location Name:" +msgstr "위치 이름 입력:" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/textentry.py:428 +msgid "Search" +msgstr "검색" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/timeentry.py:27 +msgid "hh" +msgstr "hh" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/timeentry.py:29 +msgid "ss" +msgstr "ss" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/timeentry.py:133 +msgid "Enter Local Time" +msgstr "현지 시간 입력" + +# AI-TRANSLATED (claude): needs human review +#: views/advanced.html:7 +msgid "GPS location lock" +msgstr "GPS 위치 수신" + +# AI-TRANSLATED (claude): needs human review +#: views/advanced.html:8 +msgid "GPS time lock" +msgstr "GPS 시간 수신" + +# AI-TRANSLATED (claude): needs human review +#: views/base.html:19 views/base.html:30 +msgid "Network Setup" +msgstr "네트워크 설정" + +# AI-TRANSLATED (claude): needs human review +#: views/base.html:50 +msgid "PiFinder User Guide" +msgstr "PiFinder 사용자 가이드" + +# AI-TRANSLATED (claude): needs human review +#: views/base.html:51 +msgid "PiFinder Support Page" +msgstr "PiFinder 지원 페이지" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_eyepiece.html:7 +msgid "Add a new eyepiece" +msgstr "새 아이피스 추가" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_eyepiece.html:9 +msgid "Edit eyepiece" +msgstr "아이피스 편집" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_eyepiece.html:40 views/edit_instrument.html:48 +msgid "Focal Length (in mm)" +msgstr "초점거리 (mm)" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_eyepiece.html:47 +msgid "Apparent Field of View (in °)" +msgstr "겉보기 시야각 (°)" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_eyepiece.html:54 +msgid "Field stop (in mm)" +msgstr "필드 스톱 (mm)" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_eyepiece.html:55 +msgid "Leave at 0 if unknown" +msgstr "모르면 0으로 두세요" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_eyepiece.html:62 +msgid "Add eyepiece!" +msgstr "아이피스 추가!" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_eyepiece.html:64 +msgid "Update eyepiece!" +msgstr "아이피스 갱신!" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:7 +msgid "Add a new instrument" +msgstr "새 망원경 추가" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:9 +msgid "Edit instrument" +msgstr "망원경 편집" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:34 +msgid "Instrument Name" +msgstr "망원경 이름" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:41 +msgid "Aperture (in mm)" +msgstr "구경 (mm)" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:55 views/equipment.html:72 +msgid "Obstruction %" +msgstr "중앙 차폐 %" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:56 +msgid "Leave at 0 for a refractor" +msgstr "굴절망원경은 0으로 두세요" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:74 +msgid "Flip image (upside down)" +msgstr "이미지 상하 반전" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:82 +msgid "Flop image (left right)" +msgstr "이미지 좌우 반전" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:90 views/equipment.html:76 +msgid "Reverse Arrow A" +msgstr "화살표 A 반전" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:98 views/equipment.html:77 +msgid "Reverse Arrow B" +msgstr "화살표 B 반전" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:108 +msgid "Add instrument!" +msgstr "망원경 추가!" + +# AI-TRANSLATED (claude): needs human review +#: views/edit_instrument.html:110 +msgid "Update instrument!" +msgstr "망원경 갱신!" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:28 views/equipment.html:65 +msgid "Instruments" +msgstr "망원경" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:32 views/equipment.html:113 +msgid "Eyepieces" +msgstr "아이피스" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:36 +msgid "Import from DeepskyLog" +msgstr "DeepskyLog에서 가져오기" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:44 +msgid "Download instruments from DeepskyLog" +msgstr "DeepskyLog에서 망원경 다운로드" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:45 +msgid "" +"This will delete all instruments and eyepieces from your PiFinder and " +"replace them with the instruments and eyepieces from DeepskyLog. Are you " +"really sure?" +msgstr "PiFinder의 모든 망원경과 아이피스를 삭제하고 DeepskyLog의 장비로 교체합니다. 정말 진행하시겠습니까?" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:50 +msgid "DeepskyLog User Name" +msgstr "DeepskyLog 사용자 이름" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:57 +msgid "Import!" +msgstr "가져오기!" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:62 +msgid "Add new instrument" +msgstr "새 망원경 추가" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:63 +msgid "Add new eyepiece" +msgstr "새 아이피스 추가" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:71 views/equipment.html:118 +msgid "Focal Length (mm)" +msgstr "초점거리 (mm)" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:74 +msgid "Flip" +msgstr "상하 반전" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:75 +msgid "Flop" +msgstr "좌우 반전" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:78 views/equipment.html:121 +msgid "Active" +msgstr "활성" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:79 views/equipment.html:122 views/locations.html:68 +msgid "Actions" +msgstr "작업" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:119 +msgid "Apparent FOV" +msgstr "겉보기 시야각" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment.html:120 +msgid "Field Stop" +msgstr "필드 스톱" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment_validation.html:8 views/locations.html:435 +#: views/locations.html:523 views/locations.html:580 +msgid "This field is required" +msgstr "필수 항목입니다" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment_validation.html:9 views/locations.html:437 +msgid "Must be a valid number" +msgstr "유효한 숫자여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment_validation.html:10 +#, python-format +msgid "Must be between %(minimum)s and %(maximum)s" +msgstr "%(minimum)s과(와) %(maximum)s 사이여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: views/equipment_validation.html:11 +#, python-format +msgid "Must be %(maximum)s characters or fewer" +msgstr "%(maximum)s자 이하여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:23 views/location_form.html:14 views/locations.html:124 +msgid "Use DMS Format" +msgstr "도분초(DMS) 형식 사용" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:30 views/location_form.html:21 views/locations.html:131 +msgid "Latitude (Decimal)" +msgstr "위도 (십진수)" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:34 views/location_form.html:26 views/locations.html:136 +msgid "Longitude (Decimal)" +msgstr "경도 (십진수)" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:40 views/location_form.html:33 views/locations.html:143 +msgid "Latitude Degrees" +msgstr "위도 (도)" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:44 views/location_form.html:37 views/locations.html:147 +msgid "Latitude Minutes" +msgstr "위도 (분)" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:48 views/location_form.html:41 views/locations.html:151 +msgid "Latitude Seconds" +msgstr "위도 (초)" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:52 views/location_form.html:45 views/locations.html:155 +msgid "Longitude Degrees" +msgstr "경도 (도)" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:56 views/location_form.html:49 views/locations.html:159 +msgid "Longitude Minutes" +msgstr "경도 (분)" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:60 views/location_form.html:53 views/locations.html:163 +msgid "Longitude Seconds" +msgstr "경도 (초)" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:66 +msgid "Altitude in meter" +msgstr "고도 (m)" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:72 views/obs_sessions.html:25 +msgid "Date" +msgstr "날짜" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:76 +msgid "UTC Time (h:m:s)" +msgstr "UTC 시간 (h:m:s)" + +# AI-TRANSLATED (claude): needs human review +#: views/gps.html:79 +msgid "Set to Browser Date/Time" +msgstr "브라우저 날짜/시간으로 설정" + +# AI-TRANSLATED (claude): needs human review +#: views/index.html:6 views/remote.html:6 +msgid "PiFinder Screen" +msgstr "PiFinder 화면" + +# AI-TRANSLATED (claude): needs human review +#: views/index.html:14 +msgid "Mode" +msgstr "모드" + +# AI-TRANSLATED (claude): needs human review +#: views/index.html:21 +msgid "lat" +msgstr "위도" + +# AI-TRANSLATED (claude): needs human review +#: views/index.html:21 +msgid "lon" +msgstr "경도" + +# AI-TRANSLATED (claude): needs human review +#: views/index.html:29 +msgid "Sky Position" +msgstr "하늘 위치" + +# AI-TRANSLATED (claude): needs human review +#: views/index.html:36 +msgid "Software Version" +msgstr "소프트웨어 버전" + +# AI-TRANSLATED (claude): needs human review +#: views/index.html:63 views/remote.html:55 +msgid "PiFinder server is currently unavailable. Please try again later." +msgstr "PiFinder 서버를 현재 사용할 수 없습니다. 나중에 다시 시도하세요." + +# AI-TRANSLATED (claude): needs human review +#: views/location_form.html:59 views/locations.html:169 +msgid "Altitude (meters)" +msgstr "고도 (m)" + +# AI-TRANSLATED (claude): needs human review +#: views/location_form.html:66 views/locations.html:176 +msgid "Error (meters)" +msgstr "오차 (m)" + +# AI-TRANSLATED (claude): needs human review +#: views/location_form.html:71 views/locations.html:67 views/locations.html:181 +msgid "Source" +msgstr "출처" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:31 +msgid "Location Management" +msgstr "위치 관리" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:48 +msgid "Add New Location" +msgstr "새 위치 추가" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:89 +msgid "Set as Default" +msgstr "기본으로 설정" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:92 +msgid "Edit" +msgstr "편집" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:111 +msgid "Edit Location" +msgstr "위치 편집" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:186 +msgid "Save Changes" +msgstr "변경 사항 저장" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:196 +msgid "Confirm Delete" +msgstr "삭제 확인" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:197 +msgid "Are you sure you want to delete the location" +msgstr "다음 위치를 삭제하시겠습니까:" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:197 +msgid "This action cannot be undone." +msgstr "이 작업은 되돌릴 수 없습니다." + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:441 +msgid "Must be between -90 and 90" +msgstr "-90과 90 사이여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:444 +msgid "Must be between -180 and 180" +msgstr "-180과 180 사이여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:447 +msgid "Must be between -1000 and 10000 meters" +msgstr "-1000과 10000 m 사이여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:450 +msgid "Must be between 0 and 10000 meters" +msgstr "0과 10000 m 사이여야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: views/locations.html:548 +msgid "Please fix the validation errors before saving" +msgstr "저장하기 전에 입력 오류를 수정하세요" + +# AI-TRANSLATED (claude): needs human review +#: views/login.html:6 +msgid "Login Required" +msgstr "로그인 필요" + +# AI-TRANSLATED (claude): needs human review +#: views/login.html:23 views/network.html:75 +msgid "Password" +msgstr "비밀번호" + +# AI-TRANSLATED (claude): needs human review +#: views/login.html:25 +msgid "Note: The default password is" +msgstr "참고: 기본 비밀번호는" + +# AI-TRANSLATED (claude): needs human review +#: views/login.html:25 +msgid "You can change this using the Tool menu option" +msgstr "도구 메뉴에서 변경할 수 있습니다" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:103 +msgid "PiFinder Logs" +msgstr "PiFinder 로그" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:121 +msgid "Download All Logs" +msgstr "모든 로그 다운로드" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:124 views/logs.html:262 views/logs.html:274 +msgid "Pause" +msgstr "일시정지" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:127 +msgid "Resume from Current" +msgstr "현재 위치에서 재개" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:130 +msgid "Restart from End" +msgstr "끝에서 다시 시작" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:133 +msgid "Copy to Clipboard" +msgstr "클립보드에 복사" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:136 +msgid "Upload Log Conf" +msgstr "로그 설정 업로드" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:140 views/logs.html:340 +msgid "Select Log Configuration" +msgstr "로그 설정 선택" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:144 +msgid "Total lines:" +msgstr "전체 줄 수:" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:152 +msgid "Loading log files..." +msgstr "로그 파일 로딩 중..." + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:262 +msgid "Resume" +msgstr "재개" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:322 views/logs.html:330 +msgid "Failed to copy" +msgstr "복사 실패" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:327 +msgid "Copied!" +msgstr "복사됨!" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:355 +msgid "Switch log configuration to" +msgstr "로그 설정을 다음으로 전환:" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:355 +msgid "and restart PiFinder?" +msgstr "그리고 PiFinder를 재시작할까요?" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:375 +msgid "File must be named logconf_.json" +msgstr "파일 이름은 logconf_.json 형식이어야 합니다" + +# AI-TRANSLATED (claude): needs human review +#: views/logs.html:387 +msgid "Upload failed:" +msgstr "업로드 실패:" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:6 +msgid "Network Settings" +msgstr "네트워크 설정" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:15 +msgid "Access Point" +msgstr "액세스 포인트" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:16 +msgid "Client" +msgstr "클라이언트" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:18 +msgid "Wifi Mode" +msgstr "WiFi 모드" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:24 +msgid "AP Network Name" +msgstr "AP 네트워크 이름" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:30 +msgid "Host Name" +msgstr "호스트 이름" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:36 +msgid "Update and Restart" +msgstr "적용 후 재시작" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:41 +msgid "Save and Restart" +msgstr "저장 후 재시작" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:42 +msgid "" +"This will update the network settings and restart the PiFinder. You may " +"have to adjust your network settings to re-connect. Are you sure?" +msgstr "네트워크 설정을 갱신하고 PiFinder를 재시작합니다. 다시 연결하려면 네트워크 설정을 조정해야 할 수 있습니다. 계속하시겠습니까?" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:45 views/tools.html:96 +msgid "Do It" +msgstr "실행" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:51 +msgid "Wifi Networks" +msgstr "WiFi 네트워크" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:76 +msgid "Too Short" +msgstr "너무 짧음" + +# AI-TRANSLATED (claude): needs human review +#: views/network.html:76 +msgid "Min 8 Characters or leave None" +msgstr "최소 8자 또는 비워 두세요" + +# AI-TRANSLATED (claude): needs human review +#: views/network_item.html:4 +msgid "Security" +msgstr "보안" + +# AI-TRANSLATED (claude): needs human review +#: views/network_item.html:15 +msgid "This will take effect immediately and can not be undone. Are you sure?" +msgstr "즉시 적용되며 되돌릴 수 없습니다. 계속하시겠습니까?" + +# AI-TRANSLATED (claude): needs human review +#: views/obs_session_log.html:4 +msgid "Observing Session" +msgstr "관측 세션" + +# AI-TRANSLATED (claude): needs human review +#: views/obs_session_log.html:11 views/obs_sessions.html:25 +msgid "Hours" +msgstr "시간" + +# AI-TRANSLATED (claude): needs human review +#: views/obs_session_log.html:21 +msgid "Time" +msgstr "시각" + +# AI-TRANSLATED (claude): needs human review +#: views/obs_session_log.html:21 +msgid "Sequence" +msgstr "순번" + +# AI-TRANSLATED (claude): needs human review +#: views/obs_session_log.html:21 +msgid "Notes" +msgstr "메모" + +# AI-TRANSLATED (claude): needs human review +#: views/obs_sessions.html:4 +msgid "Observing Sessions" +msgstr "관측 세션" + +# AI-TRANSLATED (claude): needs human review +#: views/obs_sessions.html:7 +msgid "Sessions" +msgstr "세션" + +# AI-TRANSLATED (claude): needs human review +#: views/obs_sessions.html:15 +msgid "Total Hours" +msgstr "총 시간" + +# AI-TRANSLATED (claude): needs human review +#: views/obs_sessions.html:25 +msgid "Location" +msgstr "위치" + +# AI-TRANSLATED (claude): needs human review +#: views/restart.html:6 +msgid "Restarting System" +msgstr "시스템 재시작 중" + +# AI-TRANSLATED (claude): needs human review +#: views/restart.html:7 +msgid "" +"This will take approximately 45 seconds and you should be redirected to " +"the home page." +msgstr "약 45초가 걸리며 홈 페이지로 자동 이동됩니다." + +# AI-TRANSLATED (claude): needs human review +#: views/restart.html:9 +msgid "" +"You may need to change the URL above or connect to a different wifi " +"network on your phone/tablet/computer depending on the changes you made " +"to the PiFinder configuration." +msgstr "" +"PiFinder 설정 변경 내용에 따라 위 URL을 변경하거나 휴대폰/태블릿/컴퓨터를 다른 WiFi 네트워크에 연결해야 할 수 " +"있습니다." + +# AI-TRANSLATED (claude): needs human review +#: views/restart.html:11 views/restart_pifinder.html:8 +msgid "If you are not automatically redirected" +msgstr "자동으로 이동되지 않으면" + +# AI-TRANSLATED (claude): needs human review +#: views/restart.html:11 views/restart_pifinder.html:8 +msgid "Click Here" +msgstr "여기를 클릭하세요" + +# AI-TRANSLATED (claude): needs human review +#: views/restart_pifinder.html:7 +msgid "" +"This will take approximately 20 seconds and you should be redirected to " +"the home page." +msgstr "약 20초가 걸리며 홈 페이지로 자동 이동됩니다." + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:28 views/tools.html:49 +msgid "Change Password" +msgstr "비밀번호 변경" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:30 +msgid "" +"This will change the password for this web interface and the user account" +" pifinder for ssh and other tools" +msgstr "이 웹 인터페이스와 ssh 등 다른 도구용 pifinder 사용자 계정의 비밀번호를 변경합니다" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:36 +msgid "Current Password" +msgstr "현재 비밀번호" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:40 +msgid "New Password" +msgstr "새 비밀번호" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:44 +msgid "Re-Enter New Password" +msgstr "새 비밀번호 재입력" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:58 +msgid "User Data and Settings" +msgstr "사용자 데이터 및 설정" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:60 +msgid "" +"You can download a zip file of all your personal settings, observations " +"and observing lists for safe keeping." +msgstr "개인 설정, 관측 기록, 관측 목록 전체를 zip 파일로 다운로드하여 안전하게 보관할 수 있습니다." + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:63 +msgid "Download Backup File" +msgstr "백업 파일 다운로드" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:69 +msgid "To restore a previously downloaded backup, upload it below" +msgstr "이전에 다운로드한 백업을 복원하려면 아래에 업로드하세요" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:73 +msgid "Choose file" +msgstr "파일 선택" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:78 +msgid "Select backup file to restore" +msgstr "복원할 백업 파일 선택" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:85 +msgid "Upload and Restore" +msgstr "업로드 및 복원" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:92 +msgid "Restore User Data" +msgstr "사용자 데이터 복원" + +# AI-TRANSLATED (claude): needs human review +#: views/tools.html:93 +msgid "" +"This will use the provided file to restore your user data. This will " +"overwrite any existing preference and observations. Are you sure?" +msgstr "제공된 파일로 사용자 데이터를 복원합니다. 기존 설정과 관측 기록을 덮어씁니다. 계속하시겠습니까?" + diff --git a/python/locale/zh/LC_MESSAGES/messages.mo b/python/locale/zh/LC_MESSAGES/messages.mo index 9205134f3464f18f56f0cfaa3b715b7955d9eb8e..d7191bb1fd04e380473d40faa69751449c66a3e1 100644 GIT binary patch delta 11324 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 a%ssg3@dNAEEx&Nm@M;t{Jv^yv(SHGMm^z{W delta 11256 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 diff --git a/python/locale/zh/LC_MESSAGES/messages.po b/python/locale/zh/LC_MESSAGES/messages.po index c9d9ecb09..1a27fdc4a 100644 --- a/python/locale/zh/LC_MESSAGES/messages.po +++ b/python/locale/zh/LC_MESSAGES/messages.po @@ -3653,3 +3653,13 @@ msgstr "必须在 %(minimum)s 和 %(maximum)s 之间" #, python-format msgid "Must be %(maximum)s characters or fewer" msgstr "不能超过 %(maximum)s 个字符" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:36 +msgid "Language: ko" +msgstr "语言: 韩语" + +# AI-TRANSLATED (claude): needs human review +#: PiFinder/ui/menu_structure.py:751 +msgid "Korean" +msgstr "韩语"