Skip to content

Commit ee0b8ab

Browse files
committed
Merge branch 'develop'
2 parents 1018f0b + bf3bb90 commit ee0b8ab

File tree

5 files changed

+217
-48
lines changed

5 files changed

+217
-48
lines changed

src/components/Nav/menus.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,19 @@ const Menus: MenuType = {
5252
},
5353
],
5454
},
55-
// FYI 0929 충분히 안내가 되어서 제거
56-
// program: {
57-
// name: "프로그램",
58-
// onClick: ({ setOpenMenu, dispatch }) => {
59-
// setOpenMenu(false);
60-
// dispatch(openGlobalDialog(DIALOG_CONST_PROGRAM_NOT_HELD_ON_2024));
61-
// },
62-
// },
55+
program: {
56+
name: "프로그램",
57+
sub: [
58+
{
59+
name: "튜토리얼",
60+
path: "/program/tutorial",
61+
},
62+
{
63+
name: "스프린트",
64+
path: "/program/sprint",
65+
},
66+
],
67+
},
6368
ticket: {
6469
name: "티켓 구매",
6570
onClick: ({ setOpenMenu }) => {

src/locale/English/translation.ts

Lines changed: 102 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const EnglishTranslation = {
66
"파이콘 한국": "PyCon Korea",
77
준비위원회: "Organizing Team",
88
"언어 변경": "Change language",
9-
"언어": "Language",
9+
언어: "Language",
1010
Language: "언어",
1111
프로그램: "Program",
1212
기여하기: "Contribution",
@@ -59,7 +59,7 @@ const EnglishTranslation = {
5959
"결제 일시": "Payment date",
6060
금액: "Price",
6161
변경일: "Updated at",
62-
"수원컨벤션센터": "Suwon Convention Center",
62+
수원컨벤션센터: "Suwon Convention Center",
6363
"2024.10.26": "October 26, 2024",
6464
"2024.10.27": "October 27, 2024",
6565
"10번째 파이콘 한국에": "Join us",
@@ -292,95 +292,157 @@ const EnglishTranslation = {
292292
"건강 관련 안내": "Health Information",
293293
// About place
294294
"장소 안내": "Location",
295-
"카카오맵": "Kakaomap",
295+
카카오맵: "Kakaomap",
296296
"네이버 지도": "NAVER Map",
297297
"구글 지도": "Google Maps",
298298
"카카오맵에서 열기": "Open in Kakaomap",
299299
"네이버 지도에서 열기": "Open in NAVER Map",
300300
"구글 지도에서 열기": "Open in Google Maps",
301301
"도로명 주소": "Road Address",
302-
"도로명 주소 : 16514, 경기도 수원시 영통구 광교중앙로 140(하동)": "16514, 140, Gwanggyojungang-ro, Yeongtong-gu, Suwon-si, Gyeonggi-do, Republic of Korea",
302+
"도로명 주소 : 16514, 경기도 수원시 영통구 광교중앙로 140(하동)":
303+
"16514, 140, Gwanggyojungang-ro, Yeongtong-gu, Suwon-si, Gyeonggi-do, Republic of Korea",
303304
"지번 주소 : 16514, 경기도 수원시 영통구 하동 864-10": "",
304-
"대중교통": "Public Transportation",
305-
"지하철": "Subway",
306-
"버스": "Bus",
307-
"광교중앙역": "GwanggyoJungang Station",
305+
대중교통: "Public Transportation",
306+
지하철: "Subway",
307+
버스: "Bus",
308+
광교중앙역: "GwanggyoJungang Station",
308309
"신분당선 「광교중앙역」": "Shinbundang Line 「GwanggyoJungang Station」",
309310
"4번 출구에서 도보 10분": "10 minutes on foot from Exit 4",
310-
"광역급행버스 「광교중앙·아주대환승센터」 하차 시": "Get off at Gwanggyo Jungang (Ajou University) station (using WideArea Express Bus)",
311-
"서울역": "Seoul Station",
312-
"강남역": "Gangnam Station",
311+
"광역급행버스 「광교중앙·아주대환승센터」 하차 시":
312+
"Get off at Gwanggyo Jungang (Ajou University) station (using WideArea Express Bus)",
313+
서울역: "Seoul Station",
314+
강남역: "Gangnam Station",
313315
"「광교중앙·아주대환승센터」 하차": "Get off at Gwanggyo Jungang (Ajou University) station",
314-
"시내버스 「수원컨벤션센터·롯데아울렛」 하차 시": "Get off at Suwon Convention Center (Lotte Outlet) station (using city bus)",
316+
"시내버스 「수원컨벤션센터·롯데아울렛」 하차 시":
317+
"Get off at Suwon Convention Center (Lotte Outlet) station (using city bus)",
315318
"수원컨벤션센터·롯데아울렛 하차": "Get off at Suwon Convention Center (Lotte Outlet) station",
316-
"수원컨벤션센터·광교갤러리아 백화점": "Suwon Convention Center (Gwanggyo Galleria Department Store) station",
317-
"수원컨벤션센터·광교갤러리아 백화점 하차": "Get off at Suwon Convention Center (Gwanggyo Galleria Department Store) station",
319+
"수원컨벤션센터·광교갤러리아 백화점":
320+
"Suwon Convention Center (Gwanggyo Galleria Department Store) station",
321+
"수원컨벤션센터·광교갤러리아 백화점 하차":
322+
"Get off at Suwon Convention Center (Gwanggyo Galleria Department Store) station",
318323
"공항 리무진": "Airport Shuttle Bus",
319324
"리무진 버스": "Airport Shuttle Bus",
320-
"시외버스": "Intercity Bus",
321-
"인천공항": "Incheon International Airport",
322-
"김포공항": "Gimpo International Airport",
325+
시외버스: "Intercity Bus",
326+
인천공항: "Incheon International Airport",
327+
김포공항: "Gimpo International Airport",
323328
"인천공항 「한국민속촌」행": "Incheon International Airport to Korean Folk Village",
324-
"동수원": "East Suwon(Dongsuwon)",
329+
동수원: "East Suwon(Dongsuwon)",
325330
"동수원 하차": "Get off at East Suwon(Dongsuwon)",
326331
"김포공항 「동수원」행": "Gimpo International Airport to East Suwon(Dongsuwon)",
327332
"(택시 10분 또는 버스 30분)": "(10 minutes by taxi or 30 minutes by city bus)",
328333
"노선 세부정보": "Route Details",
329-
"운행시간": "Operating Hours",
330-
"소요시간": "Travel Time",
331-
"노선정보": "Route",
332-
"요금": "Fare",
333-
"탑승위치": "Boarding Location",
334+
운행시간: "Operating Hours",
335+
소요시간: "Travel Time",
336+
노선정보: "Route",
337+
요금: "Fare",
338+
탑승위치: "Boarding Location",
334339
"(공항행) 첫차 04:35, 막차 19:05": "(For Airport) The First Bus 04:35, The Last Bus 19:05",
335-
"(수원행) 첫차 T1 05:50, T2 05:30, 막차 T1 22:20, T2 22:00": "(For Suwon) The First Bus T1 05:50, T2 05:30, The Last Bus T1 22:20, T2 22:00",
340+
"(수원행) 첫차 T1 05:50, T2 05:30, 막차 T1 22:20, T2 22:00":
341+
"(For Suwon) The First Bus T1 05:50, T2 05:30, The Last Bus T1 22:20, T2 22:00",
336342
"75분 (73km)": "75 minutes (73km)",
337343
"30분 ~ 110분 배차 간격": "Interval 30min~110min",
338-
"제1터미널": "Terminal 1",
339-
"제2터미널": "Terminal 2",
344+
제1터미널: "Terminal 1",
345+
제2터미널: "Terminal 2",
340346
"(제1터미널) 1층 7번 게이트": "(Terminal 1) Gate 7 on the 1st floor",
341-
"(제2터미널) 교통센터 지하 1층 40번 게이트": "(Terminal 2) Gate 40 on 1st basement level, Transportation Center",
342-
"흥덕지구입구 ↔ 신갈(용인) ↔ 한국민속촌": "Heungdeok Zone Entrance ↔ Singal(Yongin) ↔ Korean Folk Village",
347+
"(제2터미널) 교통센터 지하 1층 40번 게이트":
348+
"(Terminal 2) Gate 40 on 1st basement level, Transportation Center",
349+
"흥덕지구입구 ↔ 신갈(용인) ↔ 한국민속촌":
350+
"Heungdeok Zone Entrance ↔ Singal(Yongin) ↔ Korean Folk Village",
343351

344352
"(공항행) 첫차 05:05, 막차 20:20": "(For Airport) The First Bus 05:05, The Last Bus 20:20",
345353
"(수원행) 첫차 06:50, 막차 22:25": "(For Suwon) The First Bus 06:50, The Last Bus 22:25",
346-
"일반": "Normal",
347-
"급행": "Express",
348-
"(일반) 15분 ~ 30분 배차 간격 / (급행) 60분 ~ 130분 배차 간격": "(Normal Bus) Interval 15~30min, (Express Bus) Interval 60~130min",
354+
일반: "Normal",
355+
급행: "Express",
356+
"(일반) 15분 ~ 30분 배차 간격 / (급행) 60분 ~ 130분 배차 간격":
357+
"(Normal Bus) Interval 15~30min, (Express Bus) Interval 60~130min",
349358
"(국제선) 2층 1번": "(International Terminal) No. 1 on the 2nd floor",
350359
"(국내선) 11-4번": "(Domestic Terminal) No. 11-4",
351-
"한일타운 ↔ 의왕(고천) ↔ 호계사거리 ↔ 안양(범계) ↔ 관악역 ↔ 김포공항": "Hanil Town ↔ Uiwang(Gocheon) ↔ Hogye Four Way ↔ Anyang(Beomgye) ↔ Gwanak Station ↔ Gimpo Airport",
360+
"한일타운 ↔ 의왕(고천) ↔ 호계사거리 ↔ 안양(범계) ↔ 관악역 ↔ 김포공항":
361+
"Hanil Town ↔ Uiwang(Gocheon) ↔ Hogye Four Way ↔ Anyang(Beomgye) ↔ Gwanak Station ↔ Gimpo Airport",
352362
"수원역 ↔ 서수원터미널 ↔ 김포공항": "Suwon Station ↔ Seo Suwon Bus Terminal ↔ Gimpo Airport",
353363

354364
"주차 안내": "Parking Information",
355365
"주차장 주차요금표": "Parking Rate Table",
356-
"구분": "Classification",
366+
구분: "Classification",
357367
"1회 주차요금": "One-time parking Rate",
358368
"최초 30분까지": "First 30 minutes",
359369
"30분 초과 후 (10분마다)": "After 30 minutes (every 10 minutes)",
360370
"1일": "1 day",
361371
"승용 및 승합": "Sedan and Van",
362372
"※수원시주차장조례 1급지 적용": "",
363-
"위 표는 2024년 10월 5일 기준 수원컨벤션센터 홈페이지에 게시된 지하주차장 요금표입니다.": "This is based on the parking rate table posted on the Suwon Convention Center website as of October 5, 2024.",
364-
"카드결제만 가능합니다. (신용/체크/교통/삼성페이)": "Card payment only. (Credit/Debit/Transport/Samsung Wallet)",
365-
"15인승 이상 25인승 미만 승합자동차, 2.5톤 이상 4.5톤 미만 화물자동차 또는 크기가 이에 준하는 차량은 지하주차장 이용이 불가합니다.": "Vans with 15 to 25 seats, trucks with 2.5 to 4.5 tons, or vehicles of similar size are not allowed in the underground parking lot.",
366-
"출구 정산 기준 20분 이내 회차시간은 무료입니다. (※ 경과 시 20분을 포함한 정상요금 부과)": "If you return within 20 minutes of exiting, it's free. (※ If more than 20 minutes have passed, the normal rate will be charged.)",
367-
"주차요금 감면 등의 자세한 내용은": "For more information on parking fee reductions, please refer to the ",
373+
"위 표는 2024년 10월 5일 기준 수원컨벤션센터 홈페이지에 게시된 지하주차장 요금표입니다.":
374+
"This is based on the parking rate table posted on the Suwon Convention Center website as of October 5, 2024.",
375+
"카드결제만 가능합니다. (신용/체크/교통/삼성페이)":
376+
"Card payment only. (Credit/Debit/Transport/Samsung Wallet)",
377+
"15인승 이상 25인승 미만 승합자동차, 2.5톤 이상 4.5톤 미만 화물자동차 또는 크기가 이에 준하는 차량은 지하주차장 이용이 불가합니다.":
378+
"Vans with 15 to 25 seats, trucks with 2.5 to 4.5 tons, or vehicles of similar size are not allowed in the underground parking lot.",
379+
"출구 정산 기준 20분 이내 회차시간은 무료입니다. (※ 경과 시 20분을 포함한 정상요금 부과)":
380+
"If you return within 20 minutes of exiting, it's free. (※ If more than 20 minutes have passed, the normal rate will be charged.)",
381+
"주차요금 감면 등의 자세한 내용은":
382+
"For more information on parking fee reductions, please refer to the ",
368383
"수원컨벤션센터 주차안내 페이지": "Suwon Convention Center Parking Information page",
369384
"를 참고해주세요.": "",
370385
"https://www.scc.or.kr/parking-2/": "https://www.scc.or.kr/en/parking-2",
371386

372387
// Poster Session
373388
"포스터 세션": "Poster Session",
374389
"포스터 세션이란?": "What is a Poster Session?",
375-
"발표자들의 포스터를 특정 장소에 계속 설치해 두고, 지정된 시간에는 컨퍼런스 참석자들과 발표자들이 포스터에 대해 자유롭게 의견을 교류하는 자리입니다.": "The presenters' posters remain up in a specific location, and during a designated time, conference attendees and presenters interact freely about the posters.",
390+
"발표자들의 포스터를 특정 장소에 계속 설치해 두고, 지정된 시간에는 컨퍼런스 참석자들과 발표자들이 포스터에 대해 자유롭게 의견을 교류하는 자리입니다.":
391+
"The presenters' posters remain up in a specific location, and during a designated time, conference attendees and presenters interact freely about the posters.",
376392
"언제 진행하나요?": "When does it take place?",
377393
"포스터 세션은 토~일 2일 운영됩니다.": "The poster session will run Saturday-Sunday.",
378-
"오후 세션 시작 30분 전 점심 시간 / 매 쉬는 시간마다 포스터 세션이 운영됩니다.": "Poster sessions will run during lunch / every break 30 minutes before the afternoon session starts.",
394+
"오후 세션 시작 30분 전 점심 시간 / 매 쉬는 시간마다 포스터 세션이 운영됩니다.":
395+
"Poster sessions will run during lunch / every break 30 minutes before the afternoon session starts.",
379396
"포스터 세션 신청하기": "Sign up for a poster session",
380397
"신청 링크: ": "Link to sign up: ",
381398
"신청 기한: ": "Deadline: ",
382399
"2024년 10월 18일 (금) 23:59분까지": "Until Friday, October 18, 2024, 23:59 KST",
383400
"미리보는 포스터 세션": "Preview poster sessions",
401+
402+
// Tutorial
403+
"파이썬 관련 모든 주제에 대해 튜토리얼을 진행하실 수 있습니다.":
404+
"You can host tutorials on any Python related topic.",
405+
"강연자분들께는 소정의 운영비가 지원됩니다.":
406+
"A certain amount of operating expenses will be provided to the speakers.",
407+
일시: "Date",
408+
"2024년 11월 9일 (토요일)": "2024.11.09. (Sat)",
409+
장소: "Location",
410+
"참여 신청 방법": "How to apply for participation",
411+
이메일: "Email",
412+
"필수 기재사항": "Required information",
413+
"참여 희망 프로그램 (튜토리얼이라고 적어주세요)":
414+
"Program you would like to host (please write tutorial)",
415+
성함: "Name",
416+
연락처: "Contact",
417+
"강연 주제 및 간단한 개요, 강의는 3~4시간 분량":
418+
"Tutorial topic and brief outline, tutorial is 3-4 hours long",
419+
"많은 관심과 참여 부탁드립니다.": "We ask for your interest and participation.",
420+
421+
// Sprint
422+
"스프린트는 다음 두 가지 트랙으로 진행됩니다.": "The sprint will be run along two tracks:",
423+
"프로젝트 리더 트랙": "Project Leader Track",
424+
"현재 오픈소스 프로젝트를 리딩하고 계신 분": "Anyone currently leading an open source project",
425+
"다른 참가자들의 기여를 이끌어주실 수 있는 분":
426+
"Someone who can guide the contributions of other participants",
427+
"프로젝트 소개와 기여 가이드를 준비해주실 수 있는 분":
428+
"Anyone who can prepare a project introduction and contribution guide",
429+
"예비 리더 트랙": "Preliminary Leader Track",
430+
"향후 오픈소스 프로젝트 리딩에 관심이 있으신 분":
431+
"Anyone interested in leading open source projects in the future",
432+
"프로젝트 리딩 경험을 쌓고 싶으신 분": "Anyone who wants to gain project leading experience",
433+
"기여하고 싶은 프로젝트가 있지만 리딩 방법을 고민하시는 분":
434+
"If you have a project you want to contribute to but are having trouble figuring out how to lead it",
435+
"제가 직접 프로젝트 리딩 경험을 공유하고 함께 방법을 모색해볼 수 있습니다":
436+
"I can share my project leading experience and explore ways together.",
437+
"2024년 11월 2일 (토요일)": "2024.11.02. (Sat)",
438+
"강남/서초 인근": "Gangnam/Seocho area",
439+
"추후 확정 안내 예정": "Confirmation will be announced later",
440+
"참여 희망 프로그램 (프로젝트 리더/예비 리더)":
441+
"Programs you wish to participate in (Project Leader/Preliminary Leader)",
442+
"프로젝트 리더의 경우: 프로젝트 소개 및 준비사항":
443+
"For project leaders: Project introduction and preparation",
444+
"예비 리더의 경우: 관심있는 프로젝트 분야와 리딩 목표":
445+
"For preliminary leaders: Project areas of interest and leadership goals",
384446
};
385447

386448
export default EnglishTranslation;

src/pages/Program/sprint.tsx

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import Page from "components/common/Page";
2+
import React from "react";
3+
import useTranslation from "utils/hooks/useTranslation";
4+
5+
const Sprint = () => {
6+
const t = useTranslation();
7+
8+
return (
9+
<Page title={t("스프린트")}>
10+
<h1>{t("스프린트")}</h1>
11+
<p>{t("스프린트는 다음 두 가지 트랙으로 진행됩니다.")}</p>
12+
<ol>
13+
<li>{t("프로젝트 리더 트랙")}</li>
14+
<ul>
15+
<li>{t("현재 오픈소스 프로젝트를 리딩하고 계신 분")}</li>
16+
<li>{t("다른 참가자들의 기여를 이끌어주실 수 있는 분")}</li>
17+
<li>{t("프로젝트 소개와 기여 가이드를 준비해주실 수 있는 분")}</li>
18+
</ul>
19+
<li>{t("예비 리더 트랙")}</li>
20+
<ul>
21+
<li>{t("향후 오픈소스 프로젝트 리딩에 관심이 있으신 분")}</li>
22+
<li>{t("프로젝트 리딩 경험을 쌓고 싶으신 분")}</li>
23+
<li>{t("기여하고 싶은 프로젝트가 있지만 리딩 방법을 고민하시는 분")}</li>
24+
<li>{t("제가 직접 프로젝트 리딩 경험을 공유하고 함께 방법을 모색해볼 수 있습니다")}</li>
25+
</ul>
26+
</ol>
27+
<br />
28+
<ul>
29+
<li>
30+
{t("일시")}: {t("2024년 11월 2일 (토요일)")}
31+
</li>
32+
<li>
33+
{t("장소")}: {t("강남/서초 인근")} ({t("추후 확정 안내 예정")})
34+
</li>
35+
</ul>
36+
<h3>{t("참여 신청 방법")}</h3>
37+
<ol>
38+
<li>{t("이메일")}: [email protected]</li>
39+
<li>{t("필수 기재사항")}</li>
40+
<ul>
41+
<li>{t("참여 희망 프로그램 (프로젝트 리더/예비 리더)")}</li>
42+
<li>{t("성함")}</li>
43+
<li>{t("연락처")}</li>
44+
<li>{t("프로젝트 리더의 경우: 프로젝트 소개 및 준비사항")}</li>
45+
<li>{t("예비 리더의 경우: 관심있는 프로젝트 분야와 리딩 목표")}</li>
46+
</ul>
47+
</ol>
48+
<p>{t("많은 관심과 참여 부탁드립니다.")}</p>
49+
<ul>
50+
<li>{t("문의")}: [email protected]</li>
51+
</ul>
52+
</Page>
53+
);
54+
};
55+
56+
export default Sprint;

src/pages/Program/tutorial.tsx

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import Page from "components/common/Page";
2+
import React from "react";
3+
import useTranslation from "utils/hooks/useTranslation";
4+
5+
const Tutorial = () => {
6+
const t = useTranslation();
7+
8+
return (
9+
<Page title={t("튜토리얼")}>
10+
<h1>{t("튜토리얼")}</h1>
11+
<p>
12+
{t("파이썬 관련 모든 주제에 대해 튜토리얼을 진행하실 수 있습니다.")}{" "}
13+
{t("강연자분들께는 소정의 운영비가 지원됩니다.")}
14+
</p>
15+
<ul>
16+
<li>
17+
{t("일시")}: {t("2024년 11월 9일 (토요일)")}
18+
</li>
19+
<li>
20+
{t("장소")}: {t("한빛리더스홀 (홍대입구역 인근)")}
21+
</li>
22+
</ul>
23+
<h3>{t("참여 신청 방법")}</h3>
24+
<ol>
25+
<li>{t("이메일")}: [email protected]</li>
26+
<li>{t("필수 기재사항")}</li>
27+
<ul>
28+
<li>{t("참여 희망 프로그램 (튜토리얼이라고 적어주세요)")}</li>
29+
<li>{t("성함")}</li>
30+
<li>{t("연락처")}</li>
31+
<li>{t("강연 주제 및 간단한 개요, 강의는 3~4시간 분량")}</li>
32+
</ul>
33+
</ol>
34+
<p>{t("많은 관심과 참여 부탁드립니다.")}</p>
35+
<ul>
36+
<li>{t("문의")}: [email protected]</li>
37+
</ul>
38+
</Page>
39+
);
40+
};
41+
42+
export default Tutorial;

src/routes.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import { HowToGetThere } from "pages/About/howToGetThere";
2323
import OrganizingTeam from "pages/About/organizingTeam";
2424
import FinancialAid from "pages/FinancialAid";
2525
import Volunteer from "pages/About/volunteer";
26+
import Tutorial from "pages/Program/tutorial";
27+
import Sprint from "pages/Program/sprint";
2628

2729
const Router = () => {
2830
return (
@@ -45,6 +47,8 @@ const Router = () => {
4547
<Route path="/session/:code" element={<SessionDetailPage />} />
4648
<Route path="/session/timetable" element={<SessionTimeTablePage />} />
4749
<Route path="/contribution/cfp" element={<Cfp />} />
50+
<Route path="/program/tutorial" element={<Tutorial />} />
51+
<Route path="/program/sprint" element={<Sprint />} />
4852
<Route path="/terms-of-service" element={<TermsOfService />} />
4953
<Route path="/privacy-policy" element={<PrivacyPolicy />} />
5054
<Route path="/404" element={<NotFound />} />

0 commit comments

Comments
 (0)