8000 feat: add support for Korean language by roksui · Pull Request #1945 · WebGoat/WebGoat · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

feat: add support for Korean language #1945

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ public void testLabels() {
checkLang(propsDefault, "nl");
checkLang(propsDefault, "de");
checkLang(propsDefault, "fr");
checkLang(propsDefault, "kr");
}

private Properties getProperties(String lang) {
Expand Down
73 changes: 73 additions & 0 deletions src/main/resources/i18n/messages_kr.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#
# This file is part of WebGoat, an Open Web Application Security Project utility. For details,
# please see http://www.owasp.org/
# <p>
# Copyright (c) 2002 - 2017 Bruce Mayhew
# <p>
# This program is free software; you can redistribute it and/or modify it under the terms of the
# GNU General Public License as published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
# <p>
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# <p>
# You should have received a copy of the GNU General Public License along with this program; if
# not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# <p>
# Getting Source ==============
# <p>
# Source for this application is maintained at https://github.com/WebGoat/WebGoat, a repository for free software
# projects.
# <p>
#

lesson.completed=\uCD95\uD558\uD569\uB2C8\uB2E4. \uC774 \uB808\uC2A8\uC744 \uC131\uACF5\uC801\uC73C\uB85C \uC644\uB8CC\uD588\uC2B5\uB2C8\uB2E4.
assignment.solved=\uCD95\uD558\uD569\uB2C8\uB2E4. \uACFC\uC81C\uB97C \uC131\uACF5\uC801\uC73C\uB85C \uC644\uB8CC\uD588\uC2B5\uB2C8\uB2E4.
assignment.not.solved=\uC8C4\uC1A1\uD569\uB2C8\uB2E4. \uC815\uB2F5\uC774 \uC544\uB2D9\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694.
RestartLesson=\uB808\uC2A8 \uB2E4\uC2DC \uC2DC\uC791
SolutionVideos=\uC194\uB8E8\uC158 \uC601\uC0C1
ErrorGenerating=\uC5D0\uB7EC\uB97C \uC0DD\uC131\uD558\uB294
InvalidData=\uC798\uBABB\uB41C \uB370\uC774\uD130
Go!=\uC2DC\uC791!
password=\uBE44\uBC00\uBC88\uD638
password.confirm=\uBE44\uBC00\uBC88\uD638 \uD655\uC778
username=\uC0AC\uC6A9\uC790 \uC774\uB984
logged_out=\uC131\uACF5\uC801\uC73C\uB85C \uB85C\uADF8\uC544\uC6C3\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
invalid_username_password=\uC798\uBABB\uB41C \uC0AC\uC6A9\uC790 \uC774\uB984 \uB610\uB294 \uBE44\uBC00\uBC88\uD638\uC785\uB2C8\uB2E4.
login.page.title=\uB85C\uADF8\uC778 \uD398\uC774\uC9C0
accounts.build.in=\uB2E4\uC74C \uACC4\uC815\uB4E4\uC774 WebGoat\uC5D0 \uB0B4\uC7A5\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.
accounts.table.account=\uACC4\uC815
accounts.table.user=\uC0AC\uC6A9\uC790
accounts.table.password=\uBE44\uBC00\uBC88\uD638
logout=\uB85C\uADF8\uC544\uC6C3
version=\uBC84\uC804
build=\uBE4C\uB4DC
report.card=\uC131\uC801\uD45C
about=WebGoat \uC18C\uAC1C
contact=\uBB38\uC758\uD558\uAE30
show.hints=\uD78C\uD2B8 \uBCF4\uAE30
lesson.overview=\uB808\uC2A8 \uAC1C\uC694
reset.lesson=\uB808\uC2A8 \uCD08\uAE30\uD654
sign.in=\uB85C\uADF8\uC778
register.new=\uB610\uB294 \uD68C\uC6D0\uAC00\uC785\uD558\uAE30
sign.up=\uD68C\uC6D0\uAC00\uC785
register.title=\uD68C\uC6D0\uAC00\uC785
searchmenu=\uB808\uC2A8 \uAC80\uC0C9


not.empty=\uC774 \uD544\uB4DC\uB294 \uD544\uC218\uC785\uB2C8\uB2E4.
username.size=6~10\uC790 \uC0AC\uC774\uB85C \uC785\uB825\uD574 \uC8FC\uC138\uC694.
username.duplicate=\uC774\uBBF8 \uC874\uC7AC\uD558\uB294 \uC0AC\uC6A9\uC790\uC785\uB2C8\uB2E4.
password.size=\uBE44\uBC00\uBC88\uD638\uB294 \uCD5C\uC18C 6\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
password.diff=\uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
security.enabled=\uBCF4\uC548\uC774 \uD65C\uC131\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC774\uC804 \uACFC\uC81C\uB97C \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uACE0 \uADF8 \uD6A8\uACFC\uB97C \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4!
security.disabled=\uBCF4\uC548\uC774 \uBE44\uD65C\uC131\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC774\uC804 \uACFC\uC81C\uB97C \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uACE0 \uADF8 \uD6A8\uACFC\uB97C \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4!
termsofuse=\uC774\uC6A9 \uC57D\uAD00
register.condition.1=\uC774 \uD504\uB85C\uADF8\uB7A8\uC744 \uC2E4\uD589\uD558\uB294 \uB3D9\uC548 \uADC0\uD558\uC758 \uCEF4\uD4E8\uD130\uB294 \uACF5\uACA9\uC5D0 \uB9E4\uC6B0 \uCDE8\uC57D\uD574\uC9C8 \uC218 \uC788\uC2B5\uB2C8\uB2E4.\
\uC774 \uD504\uB85C\uADF8\uB7A8\uC744 \uC0AC\uC6A9\uD560 \uB54C \uC778\uD130\uB137 \uC5F0\uACB0\uC744 \uB04A\uB294 \uAC83\uC744 \uAD8C\uC7A5\uD569\uB2C8\uB2E4. WebGoat\uC758 \uAE30\uBCF8 \uC124\uC815\uC740 \uB178\uCD9C\uC744 \uCD5C\uC18C\uD654\uD558\uAE30 \uC704\uD574 localhost\uC5D0\uB9CC \uC5F0\uACB0\uB429\uB2C8\uB2E4.
register.condition.2=\uC774 \uD504\uB85C\uADF8\uB7A8\uC740 \uAD50\uC721\uC6A9\uC73C\uB85C\uB9CC \uC81C\uACF5\uB429\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uAE30\uC220\uC744 \uD5C8\uAC00 \uC5C6\uC774 \uC2DC\uB3C4\uD560 \uACBD\uC6B0 \uBC1C\uAC01\uB420 \uAC00\uB2A5\uC131\uC774 \uB192\uC2B5\uB2C8\uB2E4. \
\uD5C8\uAC00 \uC5C6\uC774 \uD574\uD0B9\uC744 \uC2DC\uB3C4\uD558\uB2E4\uAC00 \uBC1C\uAC01\uB418\uBA74 \uB300\uBD80\uBD84\uC758 \uD68C\uC0AC\uB294 \uC774\uB97C \uC774\uC720\uB85C \uD574\uACE0\uD569\uB2C8\uB2E4. \
\uBCF4\uC548 \uC5F0\uAD6C\uB97C \uD558\uACE0 \uC788\uC5C8\uB2E4\uACE0 \uC8FC\uC7A5\uD574\uB3C4, \uC774\uB294 \uB300\uBD80\uBD84\uC758 \uD574\uCEE4\uAC00 \uC8FC\uC7A5\uD558\uB294 \uBCC0\uBA85\uC774\uBBC0\uB85C \uD1B5\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
terms.agree=\uC774\uC6A9 \uC57D\uAD00 \uB3D9\uC758
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
== 시도 해보기!

아래 입력 필드에 이름을 입력한 후 "Go!" 버튼을 눌러 제출하세요. 서버는 요청을 받아 입력된 내용을 뒤집어 사용자에게 다시 보여줄 것입니다. 이를 통해 HTTP 요청 처리의 기본을 이해할 수 있습니다.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
== 퀴즈

이 레슨에서 WebGoat가 폼을 제출할 때 사용하는 HTTP 메소드는 무엇인가요? POST인가요, 아니면 GET인가요?
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
= HTTP 기초

== 개념

이 수업은 브라우저와 웹 애플리케이션 간의 데이터 전송 기본 개념과 HTTP 프록시를 사용하여 요청/응답을 가로채는 방법을 설명합니다.

== Goals

사용자는 위 버튼을 조작하여 WebGoat의 기능에 익숙해져야 합니다. HTTP 요청 매개변수 및 쿠키, Java 소스 코드를 확인할 수 있어야 합니다. 또한, link:https://www.zaproxy.org/[OWASP Zed Attack Proxy]를 처음으로 사용해볼 수도 있습니다.

=== HTTP 작동 방식:

모든 HTTP 트랜잭션은 동일한 일반적인 형식을 따릅니다. 각 클라이언트 요청과 서버 응답에는 세 가지 부분이 있습니다: 요청 또는 응답 줄, 헤더 섹션, 엔티티 본문.

클라이언트는 다음과 같이 트랜잭션을 시작합니다:

* 클라이언트는 서버에 문서 요청을 보냅니다. GET 요청은 URL 매개변수를 포함할 수 있으며, 이러한 매개변수는 web access log에서 확인할 수 있습니다.

** GET /index.html?param=value HTTP/1.0

* 다음으로, 클라이언트는 서버에 자신의 설정 및 수락 가능한 문서 형식을 알리기 위해 선택적 헤더 정보를 보냅니다.

** User-Agent: Mozilla/4.06 Accept:image/gif;image/jpeg, */*

* POST 요청에서는 사용자가 제공한 데이터가 선택적 헤더 뒤에 이어지며, POST URL에 포함되지 않습니다.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
http-basics.EnterYourName=\uC774\uB984\uC744 \uC785\uB825\uD558\uC138\uC694.
http-basics.Go!=\uC2DC\uC791!
1.http-basics.title=HTTP \uAE30\uCD08


http-basics.hints.http_basics_lesson.1=\uC774\uB984\uC744 \uC785\uB825\uD558\uACE0 '\uC2DC\uC791'\uC744 \uB204\uB974\uC138\uC694.
http-basics.hints.http_basic_quiz.1=Turn on Show Parameters or other features
http-basics.hints.http_basic_quiz.2=Try to intercept the request with <a href='https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project' title='Link to ZAP'>OWASP ZAP</a>


http-basics.empty=Try again, name cannot be empty.
http-basics.reversed=The server has reversed your name: {0}

http-basics.close=Try again: but this time enter a value before hitting go.
http-basics.incorrect=You are close, try again: the HTTP Command is incorrect.
http-basics.magic=You are close, try again: the magic number is incorrect.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
== WebGoat란 무엇인가?
---

환영합니다, `username:user[]`{empty}님!

WebGoat는 의도적으로 취약하게 설계된 애플리케이션으로, 주로 널리 사용되는 오픈 소스 구성 요소들을 사용하는 Java 기반 애플리케이션에서 발견되는 취약점을 테스트할 수 있도록 도와줍니다.

들어가기에 앞서, 저희는 염소를 포함한 어떠한 동물에게도 의도적으로 해를 가하는 것을 용납하지 않습니다. 다만, 보안 취약점에 대해 배우는 것은 예기치 않은 코드가 애플리케이션에 포함될 때 어떤 일이 발생하는지를 이해하는 데 매우 중요하다고 생각합니다.

그런 의미에서, 이를 위해 여러분만의 "희생양"을 가지고 연습하는 것보다 더 좋은 방법이 있을까요?

마음껏 해킹하고, 건드리고, 찔러보세요. 필요하다면 무서움을 주는 것도 괜찮습니다. 언제든지 염소를 해킹해보세요. 저희는 염소가 이를 좋아할 거라고 약속드립니다.

관심을 가져주셔서 감사합니다!

*WebGoat 팀*

#WebGoat의 대부분의 텍스트는 영어로 되어 있습니다. 메뉴의 드롭다운 목록을 통해 언어를 변경할 수 있습니다. 또한, WebGoat 개선을 위한 텍스트 한글 번역은 언제든지 환영합니다.#
17 changes: 17 additions & 0 deletions src/main/resources/webgoat/static/css/img/krlang.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 11 additions & 3 deletions src/main/resources/webgoat/templates/main_new.html
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,18 @@
<div class="dropdown" style="display:inline">
<button type="button" data-toggle="dropdown" class="btn btn-default dropdown-toggle" id="lang-button">
<div th:switch="${#locale.language}">
<div th:case="'nl'">
<img th:src="@{${'/css/img/'}+${#locale.language}+${'lang.svg'}}"></img><span class="caret"></span>
</div>
<div th:case="'de'">
<img th:src="@{${'/css/img/'}+${#locale.language}+${'lang.svg'}}"></img><span class="caret"></span>
</div>
<div th:case="'fr'">
<img th:src="@{${'/css/img/'}+${#locale.language}+${'lang.svg'}}"></img><span class="caret"></span>
</div>
<div th:case="'nl'">
<img th:src="@{${'/css/img/'}+${#locale.language}+${'lang.svg'}}"></img><span class="caret"></span>
</div>
<div th:case="'kr'">
<img th:src="@{${'/css/img/'}+${#locale.language}+${'lang.svg'}}"></img><span class="caret"></span>
</div>
<div th:case="*">
<img th:src="@{${'/css/img/enlang.svg'}}"></img><span class="caret"></span>
</div>
Expand Down Expand Up @@ -115,6 +118,11 @@
<img th:src="@{${'/css/img/nllang.svg'}}" alt="Nederlands" height="20"></img> Nederlands
</a>
</li>
<li role="presentation">
<a role="menuitem" th:href="@{/start.mvc?lang=kr#lesson/WebGoatIntroduction.lesson}">
<img th:src="@{${'/css/img/krlang.svg'}}" alt="한국어" height="20"></img> 한국어
</a>
</li>
</ul>
</div>
</div>
Expand Down
0