diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css
new file mode 100644
index 00000000000..5a5ad584a99
--- /dev/null
+++ b/docs/_static/css/custom.css
@@ -0,0 +1,966 @@
+/**
+ * Global custom styling
+ */
+
+:root {
+ box-sizing: border-box;
+
+ background-color: var(--color-background);
+ color: var(--color-body);
+
+ text-rendering: geometricPrecision;
+ -webkit-font-smoothing: antialiased;
+}
+
+body,
+div {
+ transition: background 200ms ease-in-out;
+}
+
+body,
+p,
+span,
+div,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-family: "Helvetica", sans-serif;
+}
+
+h1 {
+ font-size: var(--size-h1);
+}
+
+h2 {
+ font-size: var(--size-h2);
+}
+
+h3 {
+ font-size: var(--size-h3);
+}
+
+h4 {
+ font-size: var(--size-h4);
+}
+
+h5 {
+ font-size: var(--size-h5);
+}
+
+h6 {
+ font-size: var(--size-h6);
+}
+
+a {
+ color: var(--color-primary);
+}
+
+a:hover {
+ color: var(--color-hover);
+}
+
+code,
+pre {
+ background-color: var(--color-code-background) !important;
+ color: var(--color-body) !important;
+}
+
+html,
+body,
+.wy-grid-for-nav {
+ background: var(--color-background);
+ position: relative;
+}
+
+/**
+ * Custom class styling
+ */
+
+.wy-body-for-nav {
+ background-color: var(--color-background);
+}
+
+/* Selecting the navigation content wrap element */
+.wy-nav-content-wrap {
+ background-color: transparent;
+}
+
+/* Selecting the navigation content element */
+.wy-nav-content {
+ color: var(--color-body);
+ background: transparent !important;
+ padding: 0 3.625rem;
+}
+
+/* Selecting the navigation side element */
+.wy-nav-side {
+ background-color: var(--color-background);
+ background-image: var(--color-gradient);
+}
+
+.wy-menu-vertical {
+ width: 100%;
+}
+
+.wy-menu-vertical>ul {
+ margin: 0;
+ margin-bottom: 3rem;
+}
+
+.wy-menu-vertical p.caption {
+ margin-top: 1.5rem;
+ padding-inline: var(--space-vertical-menu-pad-x);
+ line-height: var(--line-height-header);
+ color: var(--color-primary);
+ font-weight: bold;
+ font-size: var(--size-left-nav-title);
+ white-space: normal;
+ height: fit-content;
+}
+
+/* Selecting the vertical menu anchor elements */
+.wy-menu-vertical a {
+ background: transparent;
+ color: var(--color-body) !important;
+ display: inline-block !important;
+ position: relative;
+}
+
+.wy-menu-vertical li.current>a {
+ font-weight: 400 !important;
+}
+
+.wy-menu-vertical a:hover::after,
+.wy-menu-vertical a.current::after,
+.wy-menu-vertical a:focus::after {
+ visibility: visible;
+}
+
+ul.current ul,
+.wy-menu-vertical li.current,
+.wy-menu-vertical li:hover {
+ background: var(--color-primary-transparent) !important;
+}
+
+.wy-menu-vertical li,
+.wy-menu-vertical a {
+ background: transparent !important;
+}
+
+/* Selecting the vertical menu list elements */
+.wy-menu-vertical li {
+ margin: 0;
+}
+
+/* Selecting the last li in the vertical menu */
+.wy-menu-vertical li:last-child {
+ margin-bottom: 0;
+}
+
+.wy-menu-vertical li.current {
+ padding-inline-start: 0 !important;
+}
+
+.wy-menu-vertical li a {
+ padding: 0.375rem 0;
+ font-size: var(--size-left-nav-lvl-1);
+}
+
+.wy-menu-vertical li.current a {
+ padding-inline: 0 !important;
+}
+
+.wy-menu-vertical a {
+ display: block !important;
+}
+
+.wy-menu-vertical li>a {
+ margin-inline-end: var(--space-vertical-menu-pad-x) !important;
+}
+
+.wy-menu-vertical .toctree-l1>a {
+ margin-inline-start: var(--space-vertical-menu-pad-x) !important;
+}
+
+.wy-menu-vertical .toctree-l2>a {
+ margin-inline-start: calc(1.5 * var(--space-vertical-menu-pad-x)) !important;
+}
+
+.wy-menu-vertical .toctree-l3>a {
+ margin-inline-start: calc(2 * var(--space-vertical-menu-pad-x)) !important;
+}
+
+.wy-menu-vertical .toctree-l4>a {
+ margin-inline-start: calc(2.5 * var(--space-vertical-menu-pad-x)) !important;
+}
+
+.wy-menu-vertical .toctree-l5>a {
+ margin-inline-start: calc(3 * var(--space-vertical-menu-pad-x)) !important;
+}
+
+/* Selecting the breadcrumbs ul element */
+ul.wy-breadcrumbs {
+ display: flex;
+ align-items: center;
+ padding: 2rem 1rem;
+ line-height: var(--line-height);
+ letter-spacing: 1%;
+}
+
+/* Selecting the hr below the breadcrumbs */
+[role="navigation"]:has(ul.wy-breadcrumbs) hr {
+ margin: 0 0 3.375rem;
+}
+
+/* Selecting the breadcrumb list elements */
+.wy-breadcrumbs li {
+ padding: 0;
+}
+
+/* Selecting all breadcrumb elements */
+.wy-breadcrumbs,
+.wy-breadcrumbs *,
+.wy-breadcrumbs *::before,
+.wy-breadcrumbs *::after {
+ font-size: var(--size-body);
+ font-family: "Helvetica", sans-serif;
+ color: var(--color-primary)
+}
+
+.wy-breadcrumbs a.icon-home::before {
+ font-family: FontAwesome;
+}
+
+/* Selecting the breadcrumb anchor elements hover */
+.wy-breadcrumbs li:hover a {
+ color: var(--color-hover);
+ fill: var(--color-hover);
+}
+
+/* Select edit button aside */
+.wy-breadcrumbs-aside {
+ float: unset;
+ margin-inline-start: auto;
+}
+
+.breadcrumb-item {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.breadcrumb-item.active {
+ margin-inline-end: 0.5rem;
+}
+
+.wy-breadcrumbs-aside a {
+ display: flex;
+ align-items: center;
+ text-align: center;
+ gap: 0.5rem;
+}
+
+/* Edit and Next/Prev buttons */
+.wy-breadcrumbs-aside a,
+.wy-breadcrumbs-aside a:visited,
+a.fa.fa-github,
+a.fa.fa-github:visited,
+a.fa.fa-github:not(:visited),
+a.btn.btn-neutral,
+a.btn.btn-neutral:visited,
+a.btn.btn-neutral:not(:visited) {
+ border-radius: 0.5rem;
+ text-decoration: none;
+ box-shadow: none;
+ border: 2px solid var(--color-primary) !important;
+ line-height: 1;
+}
+
+/* Selecting the font awesome icons */
+.fa::before,
+.fa::after {
+ font-family: FontAwesome !important;
+}
+
+/* Edit on GitHub button */
+.wy-breadcrumbs-aside a,
+.wy-breadcrumbs-aside a:visited,
+a.fa.fa-github,
+a.fa.fa-github:visited,
+a.fa.fa-github:not(:visited) {
+ padding: 0.5rem 1rem;
+ background: transparent !important;
+ color: var(--color-primary) !important;
+ font-size: var(--size-body-xs);
+}
+
+/* Edit on GitHub button hover */
+.wy-breadcrumbs-aside a:hover,
+a.fa.fa-github:hover {
+ color: var(--color-hover) !important;
+ border-color: var(--color-hover) !important;
+}
+
+/* Edit on GitHub button focus */
+.wy-breadcrumbs-aside a:focus,
+a.fa.fa-github:focus {
+ color: var(--color-hover) !important;
+ border-color: var(--color-primary) !important;
+ outline: 4px solid var(--color-primary) !important;
+ outline-offset: -4px;
+}
+
+/* Next/Previous buttons */
+a.btn.btn-neutral,
+a.btn.btn-neutral:visited,
+a.btn.btn-neutral:not(:visited) {
+ padding: 0.75rem 2rem;
+ display: flex;
+ gap: 10px;
+ background: var(--color-primary) !important;
+ color: var(--color-background) !important;
+}
+
+/* Next/Previous buttons hover */
+a.btn.btn-neutral:hover {
+ background: var(--color-hover) !important;
+ border-color: var(--color-hover) !important;
+}
+
+/* Next/Previous buttons hover */
+a.btn.btn-neutral:focus {
+ background: var(--color-hover) !important;
+ border-color: var(--color-primary) !important;
+ outline: 4px solid var(--color-primary) !important;
+ outline-offset: -4px;
+}
+
+/* Selecting the code highlight elements */
+.highlight {
+ background-color: var(--color-code-background);
+}
+
+nav.wy-nav-shift {
+ width: var(--space-side-width);
+}
+
+/* Only child to left nav.my-nav-shift box */
+.wy-side-scroll {
+ max-width: 100%;
+}
+
+/* Remove background from the search container */
+.wy-side-nav-search {
+ display: flex;
+ flex-direction: row-reverse;
+ align-items: end;
+ background: none !important;
+ margin: 5rem 0 0;
+ padding: 0 var(--space-vertical-menu-pad-x);
+ margin: 2.875rem 0 0 !important;
+}
+
+.wy-side-scroll hr {
+ margin: 1.5rem 0.5rem;
+ border-color: var(--color-background);
+}
+
+/* Select the search form */
+.wy-side-nav-search [role="search"] {
+ flex: 1;
+}
+
+/* Select the search input */
+input[type="text"] {
+ height: 2rem;
+ border-radius: 0.5rem !important;
+ border: 1px solid var(--color-primary);
+ background: var(--color-background);
+ color: var(--color-body);
+ box-shadow: none;
+ width: 100%;
+}
+
+/* Select color mode cycle/toggle button */
+button.color-toggle {
+ height: 2rem;
+ margin-inline-start: 0.75rem;
+ padding: 0;
+ border: 1px solid transparent;
+ color: var(--color-body);
+ background-color: transparent;
+ display: grid;
+ place-items: center;
+}
+
+.theme-button-wrapper {
+ position: relative;
+ display: flex;
+ align-items: center;
+ height: 100%;
+}
+
+.theme-dropdown-item {
+ display: grid;
+ grid-template-columns: 1fr auto;
+ gap: 0.5rem;
+ padding: 0.5rem 1rem;
+ font-size: var(--size-body-link);
+ color: var(--color-body);
+ height: 34px;
+ align-items: center;
+ background: transparent;
+}
+
+.theme-dropdown-item:hover {
+ color: var(--color-primary);
+}
+
+.theme-dropdown-item span {
+ text-align: start;
+ width: 100%;
+}
+
+.language-menu-wrapper {
+ position: relative;
+ height: 100%;
+ font-size: var(--size-body-link);
+}
+
+.language-menu-wrapper button.dropdown-button {
+ background: transparent;
+ height: 100%;
+ padding-block: 0;
+ border: none;
+ font-family: Helvetica, sans-serif;
+}
+
+.language-menu-wrapper .language-menu-items {
+ position: absolute;
+ inset-inline-end: 0;
+ inset-block-start: 4rem;
+ border-radius: 0.5rem;
+ border: 1px solid var(--color-primary) !important;
+ padding: 1.5rem;
+ background: var(--color-background);
+ z-index: 1;
+ display: flex;
+ flex-direction: column;
+ gap: 0.375rem;
+ width: max-content;
+}
+
+.mobile-menu-button,
+.theme-button {
+ background: transparent;
+ color: var(--color-body);
+}
+
+.mobile-menu-button:hover,
+.theme-button:hover {
+ color: var(--color-hover);
+}
+
+/* Primary color for icon if menu open */
+.unified-wrapper.menu-open .mobile-menu-button,
+.inner-header:has(.theme-dropdown-menu[aria-expanded=true]) .theme-button {
+ color: var(--color-primary);
+}
+
+.theme-dropdown-menu {
+ position: absolute;
+ inset-block-start: 100%;
+ inset-inline-end: 0;
+ border-radius: 0.5rem;
+ border: 1px solid var(--color-primary) !important;
+ padding: 1.5rem;
+ background: var(--color-background);
+ z-index: 1;
+ display: flex;
+ flex-direction: column;
+ gap: 0.375rem;
+ width: max-content;
+ padding: 1rem 0.5rem !important;
+}
+
+.theme-dropdown-menu[aria-expanded=false] {
+ display: none
+}
+
+.color-toggle-icon {
+ display: grid;
+ place-items: center;
+}
+
+/* Select color mode cycle/toggle button icon */
+.color-toggle-icon svg {
+ margin: 0;
+ background-color: transparent;
+ --size: 1.5rem;
+ height: var(--size);
+ width: var(--size);
+}
+
+.wy-menu-vertical li a.reference.internal {
+ border: none;
+}
+
+.wy-menu-vertical .toctree-expand::before {
+ color: var(--color-body);
+}
+
+/* Content styling */
+.rst-content h1 {
+ margin-bottom: 4rem;
+}
+
+.rst-content h2,
+.rst-content h3,
+.rst-content h4 {
+ margin-top: 4rem;
+}
+
+/**
+ * Customization for the unified layout
+ */
+
+body.wy-body-for-nav {
+ position: relative;
+}
+
+/* Site wrapper, and two children: header and rest */
+.unified-wrapper {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ max-width: 80rem;
+ margin-inline: auto;
+}
+
+/* Header styling */
+.remix-logo {
+ color: var(--color-primary);
+ height: 30px;
+}
+
+.unified-header {
+ position: fixed;
+ top: 0;
+ inset-inline: 0;
+ z-index: 99999;
+ display: flex;
+ align-items: center;
+ box-shadow: var(--shadow-base);
+ backdrop-filter: blur(3px);
+}
+
+.unified-header .inner-header {
+ display: flex;
+ margin-inline: auto;
+ width: 100%;
+ max-width: 80rem;
+ align-items: center;
+ justify-content: space-between;
+ padding-inline: 2rem;
+ height: var(--space-nav-height);
+}
+
+.unified-header::before {
+ content: "";
+ position: absolute;
+ inset: 0;
+ opacity: 95%;
+ background: var(--color-background);
+ z-index: -1;
+}
+
+.unified-header .home-link {
+ display: block;
+ text-decoration: none;
+}
+
+.unified-header .home-link:hover .remix-logo {
+ color: var(--color-hover);
+}
+
+.unified-header img.remix-logo {
+ transform: scale(1);
+ transition: transform 100ms ease-in-out;
+ width: 100%;
+ height: 100%;
+}
+
+.unified-header .nav-bar {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ height: 100%;
+ gap: 1rem;
+ margin-inline-start: auto;
+}
+
+.unified-header .nav-bar *,
+.unified-header .nav-button-container * {
+ border: none;
+}
+
+.unified-header .nav-button-container {
+ align-items: center;
+ justify-content: center;
+ gap: 1rem;
+ display: flex;
+ margin-inline-start: 1rem;
+ height: 100%;
+}
+
+.mobile-menu-button {
+ display: none;
+}
+
+.unified-header .nav-button-container button {
+ box-shadow: none;
+ border: none;
+ background: transparent;
+}
+
+.mobile-menu-toggle-icon {
+ --size: 1.5rem;
+ height: var(--size);
+ width: var(--size);
+}
+
+.unified-header .nav-link {
+ display: flex;
+ align-items: center;
+ padding-inline: 8px;
+ height: 100%;
+ font-size: var(--size-body-link);
+ text-decoration: none;
+ letter-spacing: -0.02em;
+ font-weight: 400;
+ color: var(--color-body);
+ border-radius: 0px;
+ text-align: center;
+}
+
+.unified-header .nav-link.active {
+ box-shadow: 0 1px 0 var(--color-primary);
+ color: var(--color-primary);
+}
+
+.unified-header .nav-link:hover {
+ color: var(--color-primary);
+ box-shadow: 0 2px 0 var(--color-primary);
+
+}
+
+.unified-header .nav-link:focus {
+ color: var(--color-primary);
+ box-shadow: 0 2px 0 var(--color-primary);
+}
+
+/* Rest: Grid, with two children: side bar, and content */
+.unified-wrapper .wy-grid-for-nav {
+ position: relative !important;
+ display: flex !important;
+}
+
+/* First child: Side bar */
+.unified-wrapper .wy-grid-for-nav nav.wy-nav-side {
+ position: fixed;
+ display: flex;
+ flex-direction: column;
+ top: var(--space-nav-height);
+ bottom: 0;
+ inset-inline-start: auto;
+ padding-bottom: unset !important;
+ min-height: unset !important;
+ max-width: var(--space-side-width) !important;
+ width: var(--space-side-width);
+ z-index: 10 !important;
+ overflow: auto;
+}
+
+.unified-wrapper .wy-grid-for-nav nav.wy-nav-side .wy-side-scroll {
+ position: static !important;
+ width: unset !important;
+ overflow: unset !important;
+ padding-bottom: 2rem;
+ height: unset !important;
+}
+
+.wy-nav-side,
+.wy-side-scroll,
+.wy-side-nav-search,
+.my-menu {
+ width: 100% !important;
+}
+
+/* Skip to content a11y button */
+a.skip-to-content:visited,
+a.skip-to-content:not(:visited),
+a.skip-to-content {
+ position: absolute;
+ pointer-events: none;
+ width: fit-content;
+ opacity: 0;
+ transition: opacity 200ms ease-in-out;
+ padding: 4px;
+ background: var(--color-background);
+ font-size: 14px;
+ text-align: center;
+ color: var(--color-primary);
+}
+
+a.skip-to-content:focus {
+ opacity: 1;
+ transition: opacity 200ms ease-in-out;
+}
+
+#content * {
+ scroll-margin-top: 6rem;
+ scroll-behavior: smooth;
+}
+
+.nav-dropdown {
+ position: relative;
+ height: 100%;
+ font-size: var(--size-body-link);
+}
+
+.language-menu-wrapper .language-menu-items,
+.nav-dropdown .dropdown-items {
+ position: absolute;
+ inset-inline-end: 0;
+ border-radius: 0.5rem;
+ border: 1px solid var(--color-primary) !important;
+ padding: 1.5rem;
+ background: var(--color-background);
+ z-index: 1;
+ display: flex;
+ flex-direction: column;
+ gap: 0.375rem;
+ width: max-content;
+}
+
+.language-menu-wrapper .language-menu-items {
+ inset-block-start: 100% !important;
+}
+
+.language-menu-wrapper .language-menu-items a {
+ padding-block: 0.375rem;
+ line-height: 125%;
+ color: var(--color-body);
+}
+
+.language-menu-wrapper .language-menu-items a.active {
+ color: var(--color-primary);
+}
+
+ .language-menu-wrapper .language-menu-items a:hover {
+ color: var(--color-hover);
+}
+
+.mode-choice-icon svg {
+ --size: 0.75rem;
+ max-width: var(--size);
+ max-height: var(--size);
+}
+
+button#language-button {
+ text-transform: uppercase;
+}
+
+.language-menu-wrapper:has(button.language-button[aria-expanded=false]) .language-menu-items,
+.nav-dropdown:has(button.dropdown-button[aria-expanded=false]) .dropdown-items {
+ display: none;
+}
+
+.nav-dropdown .dropdown-items a {
+ white-space: nowrap;
+ font-size: var(--size-body-link);
+ line-height: var(--size-h5);
+ color: var(--color-body);
+ padding-block: 0.375rem;
+ display: flex;
+ align-items: center;
+}
+
+.nav-dropdown .dropdown-items a:hover {
+ color: var(--color-primary);
+}
+
+.external-link-icon {
+ margin-inline-start: 0.25rem;
+}
+
+.language-menu-wrapper .chevron-icon,
+.nav-dropdown .chevron-icon {
+ transform: scaleY(1);
+ transition: transform 100ms;
+ margin-inline-start: 0.375rem;
+}
+
+.language-menu-wrapper:has(button.language-button[aria-expanded=true]) .chevron-icon,
+.nav-dropdown:has(button.dropdown-button[aria-expanded=true]) .chevron-icon {
+ transform: scaleY(-1);
+ transition: transform 100ms;
+}
+
+.nav-dropdown button.dropdown-button {
+ background: transparent;
+ height: 100%;
+ padding-block: 0;
+ border: none;
+ font-family: Helvetica, sans-serif;
+}
+
+.nav-dropdown button.dropdown-button:focus {
+ border: none;
+}
+
+/* Second child: Content */
+.unified-wrapper .wy-grid-for-nav .wy-nav-content {
+ position: relative !important;
+ overflow-y: auto !important;
+ width: 100%;
+ max-width: 100vw !important;
+ padding-inline: 3.625rem;
+ margin-inline-start: var(--space-side-width);
+ margin-top: var(--space-nav-height);
+}
+
+.unified-wrapper .wy-grid-for-nav .wy-nav-content .rst-content {
+ max-width: 80ch;
+}
+
+.unified-wrapper.menu-open .backdrop {
+ opacity: 0.5;
+}
+
+.unified-wrapper .wy-nav-side,
+.unified-wrapper .rst-versions {
+ inset-inline-start: auto;
+}
+
+.unified-wrapper .backdrop {
+ opacity: 0;
+ transition: opacity 200ms ease-in-out;
+}
+
+/* Force image backgrounds to white until all fixed for dark modes */
+[role=main].document img {
+ background-color: white;
+}
+
+/* Flyover menu */
+.rst-versions,
+.rst-versions.shift-up {
+ position: sticky;
+ bottom: 0;
+ background-color: var(--color-d);
+ transition: background 50ms linear;
+ width: 100% !important;
+ max-width: var(--space-side-width);
+ overflow-y: unset;
+ border-top: 1px solid var(--color-primary);
+}
+
+.rst-versions .rst-current-version {
+ color: var(--color-primary);
+ border-top: 1px solid var(--color-primary);
+ background: unset;
+ padding: 1rem;
+}
+
+.rst-versions.shift-up .rst-current-version {
+ background: transparent;
+}
+
+span.fa.fa-book {
+ color: var(--color-primary) !important;
+}
+
+.rst-versions .rst-current-version .fa::before {
+ font-family: FontAwesome;
+ color: var(--color-primary);
+}
+
+.rst-versions .rst-current-version .fa.fa-book::before {
+ margin-inline-end: 0.375rem;
+}
+
+.rst-versions .rst-current-version .fa.fa-caret-down::before {
+ margin-inline-end: 0.5625rem;
+}
+
+/**
+ * MOBILE
+ */
+
+@media (max-width: 768px) {
+
+ /* Menu closed styles */
+ .unified-header .nav-link {
+ display: none;
+ }
+
+ .unified-header .inner-header {
+ padding-inline: 1rem;
+ }
+
+ #language-button {
+ display: flex;
+ margin-inline-start: 1rem;
+ margin-inline-end: 0rem;
+ }
+
+ .unified-header .mobile-menu-button {
+ display: block;
+ }
+
+ .unified-wrapper .wy-grid-for-nav {
+ grid-template-columns: 1fr;
+ }
+
+ .unified-wrapper .wy-grid-for-nav nav.wy-nav-side {
+ transform: translateX(-100%);
+ transition: transform 200ms ease-in-out;
+ }
+
+ /* Menu open styles */
+ .unified-wrapper.menu-open nav.wy-nav-side {
+ transform: translateX(0);
+ transition: transform 200ms ease-in-out;
+ }
+
+ .unified-wrapper.menu-open .backdrop {
+ display: block;
+ position: fixed;
+ inset: 0;
+ opacity: 1;
+ transition: opacity 200ms ease-in-out;
+ z-index: 5;
+ background: #0006;
+ }
+
+ .unified-wrapper .wy-grid-for-nav .wy-nav-content {
+ padding-inline: 1.5rem;
+ margin-inline-start: unset;
+ }
+
+ a.skip-to-content {
+ display: none !important;
+ }
+}
+
+.invisible {
+ visibility: hidden !important;
+}
+
+.hidden {
+ display: none !important;
+}
\ No newline at end of file
diff --git a/docs/_static/css/fonts.css b/docs/_static/css/fonts.css
new file mode 100644
index 00000000000..9f6a63197c0
--- /dev/null
+++ b/docs/_static/css/fonts.css
@@ -0,0 +1,6 @@
+@font-face {
+ font-family: "Helvetica";
+ font-style: normal;
+ font-weight: 400;
+ src: local('Helvetica'), url(../fonts/Helvetica.ttc) format('truetype');
+}
diff --git a/docs/_static/css/tokens.css b/docs/_static/css/tokens.css
new file mode 100644
index 00000000000..0ee1ca95faf
--- /dev/null
+++ b/docs/_static/css/tokens.css
@@ -0,0 +1,79 @@
+/**
+ * Theme tokens
+ */
+
+/* Base / light mode theme colors */
+:root {
+ /* Typography */
+ --size-body-xs: 0.75rem;
+ --size-body-small: 0.875rem;
+ --size-body-small-link: var(--size-body-small);
+ --size-body: 1rem;
+ --size-body-link: var(--size-body);
+ --size-body-big: 1.125rem;
+ --size-h1: 2.75rem;
+ --size-h2: 2.25rem;
+ --size-h3: 1.875rem;
+ --size-h4: 1.5rem;
+ --size-h5: 1.25rem;
+ --size-h6: 1rem;
+ --size-left-nav-title: var(--size-body);
+ --size-left-nav-lvl-1: var(--size-body-small);
+
+ --line-height-header: 1.625;
+
+ /* Spacing */
+ --space-side-width: 22.5rem;
+ --space-nav-height: 4.25rem;
+ --space-vertical-menu-pad-x: 1.625rem;
+
+ /* Shadows */
+ --shadow-base: 0px 0px 4px 0px rgba(0, 0, 0, 0.25);
+
+ /* Colors */
+ --color-background: #FFFFFF;
+ --color-body: #333333;
+ --color-body-light: #5F5F5F;
+ --color-code-background: #F4F4F4;
+ --color-primary: #2F6DF2;
+ --color-primary-transparent: #3B98F620;
+ --color-hover: #2F6DF2B2;
+
+ --color-a: #E0E7F8;
+ --color-b: #DFE6F4;
+ --color-c: #F3F0FF;
+ --color-d: #FFEDFB;
+ --color-gradient: linear-gradient(180deg, var(--color-a) 0%, var(--color-b) 37%, var(--color-c) 75%, var(--color-d) 100%);
+}
+
+/* Dark mode theme colors */
+:root[style*=dark] {
+ --color-background: #2A2C3F !important;
+ --color-body: #F8F8F8 !important;
+ --color-body-light: #A2A3C8 !important;
+ --color-code-background: #1A1B29 !important;
+ --color-primary: #007AA6 !important;
+ --color-primary-transparent: #007AA618;
+ --color-hover: #007AA6E5;
+
+ --color-a: var(--color-code-background);
+ --color-b: var(--color-code-background);
+ --color-c: var(--color-code-background);
+ --color-d: var(--color-code-background);
+}
+
+/* Black mode theme colors */
+:root[style*=black] {
+ --color-background: #0E0E0E !important;
+ --color-body: #F8F8F8 !important;
+ --color-body-light: #CDCDCD !important;
+ --color-code-background: #313131 !important;
+ --color-primary: #709EFF !important;
+ --color-primary-transparent: #709EFF10;
+ --color-hover: #709EFFE5;
+
+ --color-a: #131A2B;
+ --color-b: #121927;
+ --color-c: #262332;
+ --color-d: #32202E;
+}
diff --git a/docs/_static/fonts/Helvetica.ttc b/docs/_static/fonts/Helvetica.ttc
new file mode 100644
index 00000000000..c2c74cbe7bc
Binary files /dev/null and b/docs/_static/fonts/Helvetica.ttc differ
diff --git a/docs/_static/img/down-arrow.svg b/docs/_static/img/down-arrow.svg
new file mode 100644
index 00000000000..c8cd9981531
--- /dev/null
+++ b/docs/_static/img/down-arrow.svg
@@ -0,0 +1,3 @@
+
diff --git a/docs/_static/img/hamburger.svg b/docs/_static/img/hamburger.svg
new file mode 100644
index 00000000000..aac65634d09
--- /dev/null
+++ b/docs/_static/img/hamburger.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/docs/_static/img/moon.svg b/docs/_static/img/moon.svg
new file mode 100644
index 00000000000..b836b936a8c
--- /dev/null
+++ b/docs/_static/img/moon.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/docs/_static/img/northeast-arrow.svg b/docs/_static/img/northeast-arrow.svg
new file mode 100644
index 00000000000..70b471b3ab7
--- /dev/null
+++ b/docs/_static/img/northeast-arrow.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/docs/_static/img/remix-logo.svg b/docs/_static/img/remix-logo.svg
new file mode 100644
index 00000000000..8f5e4606574
--- /dev/null
+++ b/docs/_static/img/remix-logo.svg
@@ -0,0 +1,10 @@
+
diff --git a/docs/_static/img/sun.svg b/docs/_static/img/sun.svg
new file mode 100644
index 00000000000..c026bbfd613
--- /dev/null
+++ b/docs/_static/img/sun.svg
@@ -0,0 +1,11 @@
+
\ No newline at end of file
diff --git a/docs/_static/img/sunset.svg b/docs/_static/img/sunset.svg
new file mode 100644
index 00000000000..93f65716d83
--- /dev/null
+++ b/docs/_static/img/sunset.svg
@@ -0,0 +1,8 @@
+
\ No newline at end of file
diff --git a/docs/_static/img/up-arrow.svg b/docs/_static/img/up-arrow.svg
new file mode 100644
index 00000000000..d17cbfd8ed8
--- /dev/null
+++ b/docs/_static/img/up-arrow.svg
@@ -0,0 +1,3 @@
+
diff --git a/docs/_static/js/constants.js b/docs/_static/js/constants.js
new file mode 100644
index 00000000000..4bac934bdf6
--- /dev/null
+++ b/docs/_static/js/constants.js
@@ -0,0 +1,55 @@
+// Color mode constants
+const COLOR_MODES = [
+ { name: "Light", icon: "_static/img/sun.svg", value: "light" },
+ { name: "Dark", icon: "_static/img/sunset.svg", value: "dark" },
+ { name: "Black", icon: "_static/img/moon.svg", value: "black" },
+]
+
+const COLOR_CHOICES = COLOR_MODES.map(({ value }) => value);
+
+const REMIX_LOGO_PATH = "_static/img/remix-logo.svg"
+const HAMBURGER_PATH = "_static/img/hamburger.svg";
+const CHEVRON_DOWN_PATH = "_static/img/down-arrow.svg";
+const NE_ARROW_PATH = "_static/img/northeast-arrow.svg";
+
+const COLOR_TOGGLE_ICON_CLASS = "color-toggle-icon";
+const MOBILE_MENU_ICON_CLASS = "mobile-menu-toggle-icon";
+const REMIX_LOGO_CLASS = "remix-logo";
+const LEARN_DROPDOWN_CLASS = "dropdown-button"
+const LANGUAGE_BUTTON_CLASS = "language-button"
+const LANGUAGE_MENU_ITEMS_CLASS = "language-menu-items"
+const THEME_BUTTON_WRAPPER_CLASS = "theme-button-wrapper";
+const THEME_BUTTON_CLASS = "theme-button";
+const THEME_DROPDOWN_MENU_CLASS = "theme-dropdown-menu";
+const LS_COLOR_SCHEME = "color-scheme";
+
+// Navigation constants
+const REMIX_HOME_URL = "https://remix-project.org";
+const REMIX_DOCS_URL = "/#"
+const REMIX_IDE_URL = "https://remix.ethereum.org";
+
+// Learn menu
+const LEARNETH_PLUGIN_TUTORIALS_URL = `${REMIX_IDE_URL}/?#activate=LearnEth`;
+const VIDEOS_URL = "https://www.youtube.com/channel/UCjTUPyFEr2xDGN6Cg8nKDaA";
+const ARTICLES_URL = "https://medium.com/remix-ide";
+
+/**
+ * type NavItem = { name: string } & ({ href: string } | { items: NavItem[] })
+ */
+const NAV_LINKS = [
+ { name: "About", href: REMIX_HOME_URL },
+ { name: "Documentation", href: REMIX_DOCS_URL },
+ { name: "IDE", href: REMIX_IDE_URL },
+ {
+ name: "Learn", items: [
+ { name: "Guided IDE Tutorial", href: LEARNETH_PLUGIN_TUTORIALS_URL },
+ { name: "Videos", href: VIDEOS_URL },
+ { name: "Articles", href: ARTICLES_URL },
+ ]
+ },
+]
+
+const MOBILE_MENU_TOGGLE_CLASS = "shift";
+const FLYOVER_MENU_TOGGLE_CLASS = "shift-up";
+const WRAPPER_CLASS = "unified-wrapper";
+
diff --git a/docs/_static/js/initialize.js b/docs/_static/js/initialize.js
new file mode 100644
index 00000000000..ed7568554f4
--- /dev/null
+++ b/docs/_static/js/initialize.js
@@ -0,0 +1,28 @@
+// Dependencies: ./utils.js
+
+let mode = getColorMode()
+const loadedSvgs = {}
+
+const onDOMContentLoaded = () => {
+ preloadFonts();
+ rearrangeDom();
+ updateEditButtonLabel();
+ preloadColorModeIcons();
+ cleanSearchInput();
+ addHrUnderSearchForm();
+ updateMode();
+ buildHeader();
+ addFooterNote();
+ updateFooterButtonIcons();
+ toggleMobileMenu({ expanded: false });
+ updateFlyoverMenu();
+ setTimeout(hideFlyoverMenu, 250);
+}
+
+function main() {
+ document.addEventListener("DOMContentLoaded", onDOMContentLoaded);
+ document.addEventListener("click", handleGeneralClick);
+ document.addEventListener("keydown", handleKeyDown);
+}
+
+main()
diff --git a/docs/_static/js/loaders.js b/docs/_static/js/loaders.js
new file mode 100644
index 00000000000..00bae76f298
--- /dev/null
+++ b/docs/_static/js/loaders.js
@@ -0,0 +1,349 @@
+/**
+ * Preloads fonts by dynamically creating link elements in the document head.
+ */
+const preloadFonts = () => {
+ const fonts = [
+ "Helvetica.ttc",
+ ];
+ fonts.forEach((filename) => {
+ const link = document.createElement("link");
+ link.rel = "preload";
+ link.as = "font";
+ link.href = `_static/fonts/${filename}`;
+ link.crossOrigin = "";
+ document.head.appendChild(link);
+ });
+}
+
+/**
+ * Rearranges the DOM structure by moving all the body divs into a wrapper div,
+ * adding a backdrop div, and repositioning the content element.
+ */
+const rearrangeDom = () => {
+ const bodyDivs = document.querySelectorAll("body>div");
+ bodyDivs.forEach((div) => { div.remove(); });
+ const wrapperDiv = document.createElement("div");
+ wrapperDiv.classList.add(WRAPPER_CLASS);
+ bodyDivs.forEach((div) => wrapperDiv.appendChild(div));
+ document.body.prepend(wrapperDiv);
+
+ moveRstVersions()
+
+ const backdrop = document.createElement("div");
+ backdrop.classList.add("backdrop");
+ wrapperDiv.appendChild(backdrop);
+
+ const content = document.querySelector(".wy-nav-content");
+ content.id = "content";
+ const oldWrap = document.querySelector("section.wy-nav-content-wrap");
+ oldWrap.remove();
+ document.querySelector(".wy-grid-for-nav").appendChild(content);
+}
+
+/**
+ * Updates the label of the edit button.
+ */
+const updateEditButtonLabel = () => {
+ const editButton = document.querySelector(".wy-breadcrumbs-aside a");
+ if (!editButton) return;
+ editButton.textContent = "Edit on GitHub";
+}
+
+/**
+ * Preload color-mode icons, storing them in the loadedSvgs object.
+ */
+const preloadColorModeIcons = () => {
+ const icons = COLOR_MODES.map(({ icon }) => icon);
+ icons.forEach((path, idx) => {
+ fetch(path)
+ .then(response => response.text())
+ .then(data => {
+ loadedSvgs[icons[idx].value] = data;
+ })
+ })
+}
+
+/**
+ * Clean up unused elements from side nav search
+ */
+const cleanSearchInput = () => {
+ // Select the side nav search container
+ const sideNavSearch = document.querySelector('.wy-side-nav-search');
+
+ // Remove the anchor and div.version siblings before the input
+ const anchor = sideNavSearch.querySelector('a');
+ const versionDiv = sideNavSearch.querySelector('div.version');
+ if (anchor) sideNavSearch.removeChild(anchor);
+ if (versionDiv) sideNavSearch.removeChild(versionDiv);
+}
+
+/**
+ * Adds a horizontal rule (hr) element under the search form in the vertical menu.
+ */
+const addHrUnderSearchForm = () => {
+ const verticalMenu = document.querySelector(".wy-menu-vertical[role=navigation]");
+ const hr = document.createElement("hr");
+ verticalMenu.parentNode.insertBefore(hr, verticalMenu);
+}
+
+/**
+ * Adds a footer note to the content info section.
+ */
+const addFooterNote = () => {
+ const contentInfo = document.querySelector("div[role=contentinfo]");
+ const footerNote = document.createElement("p");
+ footerNote.classList.add("footer-note");
+ footerNote.innerHTML =
+ 'Customized with ❤️ by the ethereum.org team.';
+ contentInfo.parentNode.insertBefore(footerNote, contentInfo.nextSibling);
+};
+
+/**
+ * Updates the footer button icons via switching fa class
+ */
+const updateFooterButtonIcons = () => {
+ const rightArrow = document.querySelector(".fa-arrow-circle-right")
+ if (rightArrow) {
+ rightArrow.classList.add("fa-caret-right")
+ rightArrow.classList.remove("fa-arrow-circle-right")
+ }
+ const leftArrow = document.querySelector(".fa-arrow-circle-left")
+ if (leftArrow) {
+ leftArrow.classList.add("fa-caret-left")
+ leftArrow.classList.remove("fa-arrow-circle-left")
+ }
+}
+
+/**
+ * Builds the header element for the website app
+ */
+const buildHeader = () => {
+ const header = document.createElement("div");
+ header.classList.add("unified-header");
+ document.querySelector(`.${WRAPPER_CLASS}`).prepend(header);
+
+ const innerHeader = document.createElement("div");
+ innerHeader.classList.add("inner-header");
+ header.appendChild(innerHeader);
+
+ const homeLink = document.createElement("a");
+ homeLink.classList.add("home-link");
+ homeLink.href = REMIX_HOME_URL;
+ homeLink.ariaLabel = "Remix project home";
+ innerHeader.appendChild(homeLink);
+
+ appendSvg(REMIX_LOGO_PATH, homeLink, REMIX_LOGO_CLASS);
+
+ const skipToContent = document.createElement("a");
+ skipToContent.classList.add("skip-to-content");
+ skipToContent.href = "#content";
+ skipToContent.innerText = "skip to content";
+ innerHeader.appendChild(skipToContent);
+
+ const navBar = document.createElement("nav");
+ navBar.classList.add("nav-bar");
+ innerHeader.appendChild(navBar);
+
+ /**
+ * type NavItem = { name: string } & ({ href: string } | { items: NavItem[] })
+ */
+ const linkElements = NAV_LINKS.map(({ name, href, items }) => {
+ if (href) {
+ const link = document.createElement("a");
+ link.classList.add("nav-link");
+ link.setAttribute("key", name);
+ link.setAttribute("href", href);
+ link.setAttribute("aria-label", name);
+ link.innerText = name;
+
+ href === REMIX_DOCS_URL && link.classList.add("active");
+ if (href.startsWith("http") && href !== REMIX_HOME_URL) {
+ link.setAttribute("target", "_blank");
+ link.setAttribute("rel", "noopener noreferrer");
+ appendSvg(NE_ARROW_PATH, link, "external-link-icon")
+ }
+
+ return link;
+ }
+ // Learn menu dropdown
+ if (items) {
+ const dropdown = document.createElement("div");
+ dropdown.classList.add("nav-dropdown");
+ dropdown.setAttribute("key", name);
+
+ // Return button, styled the same as the other links, with a chevron icon
+ const button = document.createElement("button");
+ button.classList.add("nav-link");
+ button.classList.add(LEARN_DROPDOWN_CLASS);
+ button.id = LEARN_DROPDOWN_CLASS;
+ button.innerText = name;
+ button.setAttribute("key", name);
+ button.setAttribute("aria-label", name);
+ button.setAttribute("aria-haspopup", "true");
+ button.setAttribute("aria-expanded", "false");
+ button.onclick = () => toggleMenu(LEARN_DROPDOWN_CLASS);
+ appendSvg(CHEVRON_DOWN_PATH, button, "chevron-icon");
+
+ const dropdownItemsBox = document.createElement("div");
+ dropdownItemsBox.classList.add("dropdown-items");
+ dropdown.appendChild(button);
+ dropdown.appendChild(dropdownItemsBox);
+
+ const dropdownItems = items.map(({ name: itemName, href }) => {
+ const item = document.createElement("a");
+ item.classList.add("dropdown-item");
+ item.setAttribute("key", itemName);
+ item.setAttribute("href", href);
+ item.setAttribute("aria-label", itemName);
+ if (href.startsWith("http")) {
+ item.setAttribute("target", "_blank");
+ item.setAttribute("rel", "noopener noreferrer");
+ }
+ item.innerText = itemName;
+ appendSvg(NE_ARROW_PATH, item, "external-link-icon")
+ return item;
+ });
+ dropdownItems.forEach((item) => dropdownItemsBox.appendChild(item));
+ return dropdown;
+ }
+ });
+ linkElements.forEach((link) => navBar.appendChild(link));
+
+ // Flex wrapper for language, color mode and mobile menu buttons
+ const navButtonContainer = document.createElement("div");
+ navButtonContainer.classList.add("nav-button-container");
+ innerHeader.appendChild(navButtonContainer);
+
+ // Build language menu component and append to navButtonContainer
+ navButtonContainer.appendChild(buildLanguageButton());
+
+ // Add theme dropdown button
+ const themeButtonWrapper = document.createElement("div");
+ themeButtonWrapper.classList.add(THEME_BUTTON_WRAPPER_CLASS);
+ navButtonContainer.appendChild(themeButtonWrapper);
+
+ // Create the theme dropdown button
+ const themeDropdownButton = document.createElement('button');
+ themeDropdownButton.classList.add(THEME_BUTTON_CLASS);
+ themeDropdownButton.id = THEME_BUTTON_CLASS
+ themeDropdownButton.setAttribute("type", "button");
+ themeDropdownButton.setAttribute("aria-label", "Theme menu button");
+ appendSvg(getIconFromMode(mode), themeDropdownButton, COLOR_TOGGLE_ICON_CLASS)
+ themeButtonWrapper.appendChild(themeDropdownButton);
+
+ // Create the dropdown menu
+ const dropdownMenu = document.createElement('div');
+ dropdownMenu.classList.add(THEME_DROPDOWN_MENU_CLASS); // .theme-dropdown-menu
+ dropdownMenu.id = THEME_DROPDOWN_MENU_CLASS
+ dropdownMenu.setAttribute("aria-expanded", "false");
+ dropdownMenu.setAttribute("aria-label", "Toggle theme menu");
+
+ COLOR_MODES.forEach(({ name, icon, value }) => {
+ const dropdownItem = document.createElement('button');
+ dropdownItem.classList.add('theme-dropdown-item');
+
+ const label = document.createElement('span');
+ label.textContent = name;
+ dropdownItem.appendChild(label);
+
+ const iconContainer = document.createElement('div');
+ appendSvg(icon, iconContainer, 'mode-choice-icon');
+ dropdownItem.appendChild(iconContainer);
+
+ dropdownItem.onclick = () => {
+ setColorMode(value)
+ toggleMenu(THEME_DROPDOWN_MENU_CLASS, { expanded: false })
+ };
+ dropdownItem.setAttribute('key', value);
+
+ dropdownMenu.appendChild(dropdownItem);
+ });
+
+ // Append the dropdown menu to the dropdown button
+ themeButtonWrapper.appendChild(dropdownMenu);
+
+ // Add event listeners to toggle aria-expanded attribute
+ themeDropdownButton.addEventListener('click', () => {
+ const isExpanded = dropdownMenu.getAttribute('aria-expanded') === 'true';
+ dropdownMenu.setAttribute('aria-expanded', !isExpanded);
+ });
+
+ // Build mobile hamburger menu
+ const menuButton = document.createElement("button");
+ menuButton.classList.add("mobile-menu-button");
+ menuButton.setAttribute("type", "button");
+ menuButton.setAttribute("aria-label", "Toggle menu");
+ menuButton.setAttribute("key", "menu button");
+ menuButton.addEventListener("click", toggleMobileMenu);
+ appendSvg(HAMBURGER_PATH, menuButton, MOBILE_MENU_ICON_CLASS);
+ navButtonContainer.appendChild(menuButton);
+}
+
+/**
+ * Toggles the mobile menu.
+ * @param {Object} options - The options object.
+ * @param {boolean} options.expanded - forces the menu to open (true) or close (false).
+ */
+const toggleMobileMenu = (options = {}) => {
+ const handleClassToggle = ({ classList }, className) => {
+ if (typeof options.expanded !== "undefined") {
+ classList.toggle(className, options.expanded);
+ } else {
+ classList.toggle(className);
+ }
+ };
+ document
+ .querySelectorAll('[data-toggle="rst-versions"]')
+ .forEach((e) => handleClassToggle(e, MOBILE_MENU_TOGGLE_CLASS));
+ document
+ .querySelectorAll('[data-toggle="wy-nav-shift"]')
+ .forEach((e) => handleClassToggle(e, MOBILE_MENU_TOGGLE_CLASS));
+ handleClassToggle(document.querySelector(`.${WRAPPER_CLASS}`), "menu-open");
+}
+
+/**
+ * Updates the flyover menu by modifying the DOM elements.
+ */
+const updateFlyoverMenu = () => {
+ const rtdCurrentVersion = document.querySelector(".rst-current-version");
+ if (!rtdCurrentVersion) return
+
+ // Assign current label and caret elements to variables
+ // Acts as fallback if injected not yet available for removal
+ const rtdLabel = rtdCurrentVersion.querySelector(".fa.fa-book");
+ rtdLabel.textContent = "RTD"; // Update label to RTD
+ const caretDown = rtdCurrentVersion.querySelector(".fa.fa-caret-down");
+ // Clear inner HTML of rtdVersion
+ rtdCurrentVersion.innerHTML = " ";
+ // Append rtdLabel and caret to rtdVersion
+ rtdCurrentVersion.appendChild(rtdLabel);
+ rtdCurrentVersion.appendChild(caretDown);
+ // Append new span with "Latest" label
+ const latestSpan = document.createElement("span");
+ latestSpan.textContent = "Latest";
+ rtdCurrentVersion.appendChild(latestSpan);
+}
+
+/**
+ * Force opens the menu, then hides everything except the RTD watermark links
+ */
+const hideFlyoverMenu = () => {
+ const intervalId = setInterval(() => {
+ const rtdCurrentVersion = document.querySelector(".rst-current-version");
+ const injected = document.querySelector(".rst-other-versions .injected");
+
+ if (injected) {
+ const dlItems = injected.getElementsByTagName("dl") || [];
+ Array.from(dlItems).forEach(item => item.classList.add("hidden"));
+ const hr = injected.getElementsByTagName("hr") || [];
+ Array.from(hr).forEach(item => item.classList.add("hidden"));
+
+ const flyover = document.querySelector(".rst-versions");
+ rtdCurrentVersion && rtdCurrentVersion.classList.add("hidden");
+ flyover.classList.add(FLYOVER_MENU_TOGGLE_CLASS);
+
+ // Clear the interval once the .injected element is available
+ clearInterval(intervalId);
+ }
+ }, 100); // Check every 100 milliseconds
+}
\ No newline at end of file
diff --git a/docs/_static/js/utils.js b/docs/_static/js/utils.js
new file mode 100644
index 00000000000..a9dcfb2945b
--- /dev/null
+++ b/docs/_static/js/utils.js
@@ -0,0 +1,264 @@
+const appendSvg = (path, container, className) => {
+ fetch(path)
+ .then(response => response.text())
+ .then(data => {
+ const logoContainer = document.createElement("div");
+ className && logoContainer.classList.add(className);
+ logoContainer.innerHTML = data;
+ container.appendChild(logoContainer);
+ });
+}
+
+const getModeIconSrc = (mode) => {
+ const index = COLOR_MODES.findIndex(({ value }) => value === mode);
+ if (index < 0) return "";
+ const next = (index + 1) % COLOR_MODES.length;
+ return COLOR_MODES[next].icon;
+}
+
+const updateActiveNavLink = () => {
+ const navLinks = document.querySelectorAll(".unified-header .nav-link");
+ navLinks.forEach((link) => {
+ const href = link.getAttribute("href");
+ if (document.documentURI.includes("contributing.html")) {
+ link.classList[href.includes("contributing.html") ? "add" : "remove"](
+ "active"
+ );
+ } else {
+ link.classList[document.documentURI.includes(href) ? "add" : "remove"](
+ "active"
+ );
+ }
+ });
+};
+
+/**
+ * Retrieves the icon associated with the given mode.
+ * @param {string} mode - The mode to retrieve the icon for.
+ * @returns {string} The icon associated with the given mode.
+ */
+const getIconFromMode = (mode) => {
+ const match = COLOR_MODES.find(({ value }) => value === mode);
+ if (!match) return COLOR_MODES[0].icon;
+ return match.icon;
+}
+
+const removeColorParam = () => {
+ const { location, title } = document;
+ const { pathname, origin, search, hash } = location;
+ const newSearchParams = new URLSearchParams(search);
+ newSearchParams.delete("color");
+ const sanitizedSearch =
+ newSearchParams.size < 1 ? "" : "?" + newSearchParams.toString();
+ window.history.replaceState(
+ origin,
+ title,
+ pathname + sanitizedSearch + hash
+ );
+}
+
+/**
+ * Retrieves the color mode preference.
+ * Priority given to query param `color`, then to localStorage `color-scheme`
+ * @returns {string} The color mode to use
+ */
+const getColorMode = () => {
+ // Check localStorage for existing color scheme preference
+ const urlParams = new URLSearchParams(window.location.search);
+ if (urlParams.size > 0) {
+ // This is used for color mode continuity between the main Remix site and the docs
+ const colorSchemeParam = urlParams.get("color");
+ // Remove "color" search param from URL
+ removeColorParam();
+ if (COLOR_CHOICES.includes(colorSchemeParam)) return colorSchemeParam;
+ }
+
+ const lsMode = localStorage.getItem(LS_COLOR_SCHEME);
+ return COLOR_CHOICES.includes(lsMode) ? lsMode : COLOR_CHOICES[0];
+}
+
+const updateMode = () => {
+ // Set the color scheme based on the mode
+ localStorage.setItem(LS_COLOR_SCHEME, mode);
+
+ // Select document and set the style attribute to denote color-scheme attribute
+ document.documentElement.setAttribute("style", `--color-scheme: ${mode}`);
+}
+
+const updateColorModeIcon = () => {
+ const themeDropdownButton = document.querySelector("." + THEME_BUTTON_CLASS)
+ // Delete any child nodes of theme button
+ themeDropdownButton.innerHTML = "";
+ // Add latest icon as button children
+ appendSvg(getIconFromMode(mode), themeDropdownButton, COLOR_TOGGLE_ICON_CLASS)
+};
+
+const setColorMode = (newMode) => {
+ if (!COLOR_CHOICES.includes(newMode)) return;
+ mode = newMode;
+ updateMode();
+ updateColorModeIcon();
+}
+
+const cycleColorMode = () => {
+ if (!COLOR_CHOICES.includes(mode)) return;
+
+ // Set mode to the next color scheme in COLOR_CHOICES array, wrapping to beginning if necessary
+ const index = COLOR_CHOICES.indexOf(mode);
+ const next = (index + 1) % COLOR_CHOICES.length
+ mode = COLOR_CHOICES[next];
+
+ updateMode();
+
+ const colorModeButton = document.querySelector("button.color-toggle");
+ updateColorModeIcon(colorModeButton);
+}
+
+const moveRstVersions = () => {
+ const rstVersions = document.querySelector(".rst-versions");
+ if (!rstVersions) return
+ rstVersions.remove();
+ const wyNavSide = document.querySelector("nav.wy-nav-side");
+ wyNavSide.appendChild(rstVersions);
+}
+
+const handleGeneralClick = (e) => {
+ if (e.target.closest(".backdrop")) {
+ toggleMobileMenu({ expanded: false });
+ }
+
+ if (e.target.closest("a")) {
+ const target = e.target.closest("a");
+ const href = target.getAttribute("href");
+ if (href.includes(REMIX_HOME_URL)) {
+ const url = new URL(href);
+ const params = new URLSearchParams(url.search);
+ params.set("color", localStorage.getItem(LS_COLOR_SCHEME));
+ params.set("lang", document.documentElement.lang);
+ url.search = params.toString();
+ target.setAttribute("href", url.toString());
+ }
+ }
+
+ if (!e.target.closest("#" + LEARN_DROPDOWN_CLASS)) {
+ toggleMenu(LEARN_DROPDOWN_CLASS, { expanded: false })
+ }
+
+ if (!e.target.closest("#" + LANGUAGE_BUTTON_CLASS)) {
+ toggleMenu(LANGUAGE_BUTTON_CLASS, { expanded: false });
+ }
+
+ if (!e.target.closest("#" + THEME_BUTTON_CLASS)) {
+ toggleMenu(THEME_DROPDOWN_MENU_CLASS, { expanded: false });
+ }
+};
+
+const handleKeyDown = (e) => {
+ if (e.metaKey && e.key === "k") {
+ document.querySelector("#rtd-search-form input").focus();
+ } else if (e.key === "Escape") {
+ toggleMobileMenu({ expanded: false });
+ toggleMenu(LEARN_DROPDOWN_CLASS, { expanded: false })
+ toggleMenu(LANGUAGE_BUTTON_CLASS, { expanded: false });
+ toggleMenu(THEME_DROPDOWN_MENU_CLASS, { expanded: false });
+ }
+
+ if (e.metaKey && e.code === "Backslash") {
+ cycleColorMode();
+ }
+};
+
+/**
+ * ({ expanded: boolean }) => Optional: false closes, true opens
+ */
+const toggleMenu = (id, options = {}) => {
+ const element = document.getElementById(id);
+ if (typeof options.expanded === "boolean") {
+ element.setAttribute("aria-expanded", options.expanded.toString());
+ } else {
+ element.setAttribute(
+ "aria-expanded",
+ element.getAttribute("aria-expanded") === "true" ? "false" : "true"
+ );
+ }
+};
+
+const getDisplayName = (locale) => new Intl.DisplayNames([locale], { type: "language" }).of(locale)
+
+/**
+ * Select available language anchor links from flyover menu and return list of objects
+ * @returns { { label: string, href: string }[] }
+ */
+const getLanguages = () => {
+ const languageLinksSelector = ".rst-other-versions .injected dl:first-child dd a"
+ const links = document.querySelectorAll(languageLinksSelector)
+ if (!links) return [];
+ return Array.from(links).map((a) => ({ label: getDisplayName(a.textContent), href: a.href }))
+}
+
+/**
+ * Builds the language list and adds it to the DOM.
+ */
+const buildLanguageList = () => {
+ const languageMenuItemsBox = document.querySelector("." + LANGUAGE_MENU_ITEMS_CLASS);
+
+ const languages = getLanguages()
+
+ const addLanguageToDOM = ({ href, label }) => {
+ const langAnchor = document.createElement("a")
+ langAnchor.setAttribute("href", href)
+ langAnchor.innerText = label
+ const isActive = label === getDisplayName(document.documentElement.lang)
+ if (isActive) langAnchor.classList.add("active")
+ languageMenuItemsBox.appendChild(langAnchor)
+ }
+ languages.forEach(addLanguageToDOM)
+}
+
+/**
+ * If the language menu does not have any children, it build the language list.
+ */
+const checkLanguageMenu = () => {
+ const menuHasChildren = document.querySelector("." + LANGUAGE_MENU_ITEMS_CLASS).hasChildNodes()
+ if (!menuHasChildren) buildLanguageList();
+}
+
+/**
+ * Handles the click event for the language button.
+ */
+const handleLanguageButtonClick = () => {
+ checkLanguageMenu();
+ toggleMenu(LANGUAGE_BUTTON_CLASS);
+}
+
+/**
+ * Builds a language button with a menu for selecting different languages.
+ *
+ * @returns {HTMLElement} The wrapper element containing the language button and menu.
+ */
+const buildLanguageButton = () => {
+ // Add wrapper for button and menu
+ const languageMenuWrapper = document.createElement("div");
+ languageMenuWrapper.classList.add("language-menu-wrapper");
+
+ // Add trigger button, displaying current language
+ const languageButton = document.createElement("button");
+ languageButton.classList.add("nav-link");
+ languageButton.classList.add(LANGUAGE_BUTTON_CLASS);
+ languageButton.id = LANGUAGE_BUTTON_CLASS;
+ languageButton.innerText = document.documentElement.lang;
+ languageButton.setAttribute("aria-label", "Language menu button");
+ languageButton.setAttribute("aria-haspopup", "true");
+ languageButton.setAttribute("aria-expanded", "false");
+ languageButton.onclick = handleLanguageButtonClick
+ appendSvg(CHEVRON_DOWN_PATH, languageButton, "chevron-icon");
+ languageMenuWrapper.appendChild(languageButton);
+
+ // Add menu items container
+ const languageMenuItemsBox = document.createElement("div");
+ languageMenuItemsBox.classList.add(LANGUAGE_MENU_ITEMS_CLASS);
+ languageMenuWrapper.appendChild(languageMenuItemsBox);
+
+ // Return wrapper element; languages filled on first open
+ return languageMenuWrapper
+}
diff --git a/docs/conf.py b/docs/conf.py
index fadca18f2ed..f118129b314 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -133,7 +133,10 @@
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
-#html_theme_options = {}
+html_theme_options = {
+ 'logo_only': True,
+ 'display_version': True,
+}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = []
@@ -159,10 +162,19 @@
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
+html_js_files = [
+ "js/constants.js",
+ "js/utils.js",
+ "js/loaders.js",
+ "js/initialize.js"
+]
+
+html_css_files = ["css/fonts.css", "css/tokens.css", "css/custom.css"]
+
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
-#html_extra_path = []
+html_extra_path = ["_static/fonts"]
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
@@ -192,7 +204,7 @@
#html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
+html_show_sphinx = False
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True
diff --git a/docs/locale/ko_KR/LC_MESSAGES/FAQ.po b/docs/locale/ko_KR/LC_MESSAGES/FAQ.po
new file mode 100644
index 00000000000..2dc50f72938
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/FAQ.po
@@ -0,0 +1,239 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:35-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/FAQ.pot\n"
+"X-Crowdin-File-ID: 6454\n"
+"Language: ko_KR\n"
+
+#: ../../FAQ.md:1
+msgid "FAQ"
+msgstr ""
+
+#: ../../FAQ.md:3
+msgid "Supported devices & Browsers"
+msgstr ""
+
+#: ../../FAQ.md:5
+msgid "**Q:** What browsers will Remix work on?"
+msgstr ""
+
+#: ../../FAQ.md:7
+msgid "**A:** We support Firefox, Chrome, and Brave. We do not test or look for errors in Safari, Edge or other browsers."
+msgstr ""
+
+#: ../../FAQ.md:9
+msgid "**Q:** Will Remix work on a tablet or mobile device?"
+msgstr ""
+
+#: ../../FAQ.md:11
+msgid "**A:** We do not support the use of Remix on tablets or mobile phones."
+msgstr ""
+
+#: ../../FAQ.md:13
+msgid "General"
+msgstr ""
+
+#: ../../FAQ.md:15
+msgid "**Q:** Are there keyboard shortcuts in Remix?"
+msgstr ""
+
+#: ../../FAQ.md:17
+msgid "**A:** Yes - here is the list of keyboard shortcuts:"
+msgstr ""
+
+#: ../../FAQ.md:19
+msgid "`Ctrl+S`: Compiles the active Solidity file"
+msgstr ""
+
+#: ../../FAQ.md:21
+msgid "`Ctrl+Shift+S`: Compiles a Solidity file and runs a script when the script is displayed in the editor. (go [here](running_js_scripts.html#compile-a-contract-and-run-a-script-on-the-fly) for more info about this functionality)"
+msgstr ""
+
+#: ../../FAQ.md:23
+msgid "`Ctrl+Shift+F` : Opens the File Explorer"
+msgstr ""
+
+#: ../../FAQ.md:25
+msgid "`CTRL+Alt+F` : Formats the code in the current file"
+msgstr ""
+
+#: ../../FAQ.md:27
+msgid "`Ctrl+Shift+A` : Opens the Plugin Manager"
+msgstr ""
+
+#: ../../FAQ.md:29
+msgid "Solidity compiler"
+msgstr ""
+
+#: ../../FAQ.md:31
+msgid "**Q:** Error: compiler might be in a non-sane state"
+msgstr ""
+
+#: ../../FAQ.md:38
+msgid "**A:** Old versions of solidity compiler had this problem with chrome. Please change the compiler version in Solidity Plugin to the newer one or use another browser."
+msgstr ""
+
+#: ../../FAQ.md:41
+msgid "**Q:** I’m getting an issue with Maximum call stack exceed and various other errors, can't compile."
+msgstr ""
+
+#: ../../FAQ.md:43
+msgid "**A:** Try a different browser or a newer solidity compiler version."
+msgstr ""
+
+#: ../../FAQ.md:45
+msgid "**Q:** How to verify a contract that imports other contracts?"
+msgstr ""
+
+#: ../../FAQ.md:47
+msgid "**A:** The verification tool does not recursively go through the import statements in a contract. So can only verify a 'flattened' contract."
+msgstr ""
+
+#: ../../FAQ.md:49
+msgid "A contract can be 'flattened' by right-clicking on it in the File Explorer and choosing the `Flatten` option. This will assemble all the original code as well as the imported code into a single file."
+msgstr ""
+
+#: ../../FAQ.md:51
+msgid "Deploy & Run"
+msgstr ""
+
+#: ../../FAQ.md:53
+msgid "**Q:** I am using an Infura endpoint in my app, but when I try to deploy against that endpoint in Remix IDE selecting \"External HTTP Provider\" and putting my endpoint in, it's telling me that it can't connect"
+msgstr ""
+
+#: ../../FAQ.md:55
+msgid "**A:** If the endpoint you are using is http, it won't work."
+msgstr ""
+
+#: ../../FAQ.md:57
+msgid "**Q:** Where is deploy button?"
+msgstr ""
+
+#: ../../FAQ.md:59
+msgid "**A:** It's in the **Deploy & Run Transactions** module."
+msgstr ""
+
+#: ../../FAQ.md:61
+msgid "**Q:** How to pass a tuple to a public function in Remix?"
+msgstr ""
+
+#: ../../FAQ.md:63
+msgid "**A:** Pass it as an array []."
+msgstr ""
+
+#: ../../FAQ.md:65
+msgid "**Q:** How to input a struct as input to a parameter of a function in the Deploy & Run module?"
+msgstr ""
+
+#: ../../FAQ.md:67
+msgid "**A:** For inputting a struct, just like a tuple, pass it in as an array []. Also you need to put in the line:"
+msgstr ""
+
+#: ../../FAQ.md:69
+msgid "`pragma experimental ABIEncoderV2;` at the top of the solidity file."
+msgstr ""
+
+#: ../../FAQ.md:71
+msgid "For example, here's a solidity file with a struct as an input parameter."
+msgstr ""
+
+#: ../../FAQ.md:103
+msgid "The input of initPeepToPeeps takes a struct. If you input `[1,2]` the transaction will go through."
+msgstr ""
+
+#: ../../FAQ.md:107
+msgid "Plugin Developers"
+msgstr ""
+
+#: ../../FAQ.md:109
+msgid "**Q:** Where do plugin developers go with their questions?"
+msgstr ""
+
+#: ../../FAQ.md:111
+msgid "**A:** First, join our [Discord server](https://discord.gg/zUNteAzJs3) and then go to the development-plugin channel."
+msgstr ""
+
+#: ../../FAQ.md:113
+msgid "Analytics"
+msgstr ""
+
+#: ../../FAQ.md:115
+msgid "**Q:** What information does Remix save when Matomo Analytics is enabled?"
+msgstr ""
+
+#: ../../FAQ.md:117
+msgid "**A:** We want to know:"
+msgstr ""
+
+#: ../../FAQ.md:119
+msgid "Which plugins get activated & deactivated"
+msgstr ""
+
+#: ../../FAQ.md:120
+msgid "If users check the box to publish a contract's metadata when deploying"
+msgstr ""
+
+#: ../../FAQ.md:121
+msgid "Which themes are used/used most/not used at all"
+msgstr ""
+
+#: ../../FAQ.md:122
+msgid "The usage of the links to documentation"
+msgstr ""
+
+#: ../../FAQ.md:123
+msgid "On the homepage, which file importing buttons are used"
+msgstr ""
+
+#: ../../FAQ.md:125
+msgid "**Q:** Is it opt-in or opt-out?"
+msgstr ""
+
+#: ../../FAQ.md:127
+msgid "**A:** We use Matomo as an opt-in analytics platform."
+msgstr ""
+
+#: ../../FAQ.md:129
+msgid "**Q:** Where is the info stored? Is the info shared with 3rd parties?"
+msgstr ""
+
+#: ../../FAQ.md:131
+msgid "**A:** All data collected through Matomo is stored on our server. No data is given to third parties."
+msgstr ""
+
+#: ../../FAQ.md:133
+msgid "We respect your privacy and do not collect nor store any personally identifiable information (PII)."
+msgstr ""
+
+#: ../../FAQ.md:135
+msgid "**Q:** What does Remix do with this info?"
+msgstr ""
+
+#: ../../FAQ.md:137
+msgid "**A:** Our goal is to understand how many users we have, what plugins people are using, what is not getting used, what is not being used to its full potential."
+msgstr ""
+
+#: ../../FAQ.md:139
+msgid "With this understanding, we can make adjustments to the UI as well as providing more tips and documentation. It's a way of getting constant anonymous feedback from our users."
+msgstr ""
+
+#: ../../FAQ.md:141
+msgid "**Q:** After I agree opt-in, can I change my mind?"
+msgstr ""
+
+#: ../../FAQ.md:143
+msgid "**A:** You can turn off or on Matomo in the Settings panel. There are no consequences for not opting-in or opting-out."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/FAS.po b/docs/locale/ko_KR/LC_MESSAGES/FAS.po
new file mode 100644
index 00000000000..0b9a472e4d2
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/FAS.po
@@ -0,0 +1,31 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/FAS.pot\n"
+"X-Crowdin-File-ID: 7415\n"
+"Language: ko_KR\n"
+
+#: ../../FAS.md:1
+msgid "Frequently Asked Scripts"
+msgstr ""
+
+#: ../../FAS.md:4
+msgid "Deploy with web3.js"
+msgstr ""
+
+#: ../../FAS.md:33
+msgid "Deploy with Ethers"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/all.po b/docs/locale/ko_KR/LC_MESSAGES/all.po
new file mode 100644
index 00000000000..6714ae3193b
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/all.po
@@ -0,0 +1,2644 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-10-21 10:25+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/all.pot\n"
+"X-Crowdin-File-ID: 6456\n"
+"Language: ko_KR\n"
+
+#: ../../assert_library.md:1
+msgid "Remix Assert Library"
+msgstr ""
+
+#: ../../assert_library.md:4
+#: ../../assert_library.md:13
+msgid "Assert.ok(value[, message])"
+msgstr ""
+
+#: ../../assert_library.md:5
+#: ../../assert_library.md:27
+msgid "Assert.equal(actual, expected[, message])"
+msgstr ""
+
+#: ../../assert_library.md:6
+#: ../../assert_library.md:47
+msgid "Assert.notEqual(actual, expected[, message])"
+msgstr ""
+
+#: ../../assert_library.md:7
+#: ../../assert_library.md:63
+msgid "Assert.greaterThan(value1, value2[, message])"
+msgstr ""
+
+#: ../../assert_library.md:8
+#: ../../assert_library.md:82
+msgid "Assert.lesserThan(value1, value2[, message])"
+msgstr ""
+
+#: ../../assert_library.md:11
+msgid "Assert"
+msgstr ""
+
+#: ../../assert_library.md:14
+msgid "value: "
+msgstr ""
+
+#: ../../assert_library.md:15
+#: ../../assert_library.md:30
+#: ../../assert_library.md:50
+#: ../../assert_library.md:66
+#: ../../assert_library.md:85
+msgid "message: "
+msgstr ""
+
+#: ../../assert_library.md:17
+msgid "Tests if value is truthy. message is returned in case of failure."
+msgstr ""
+
+#: ../../assert_library.md:19
+#: ../../assert_library.md:34
+#: ../../assert_library.md:54
+#: ../../assert_library.md:70
+#: ../../assert_library.md:89
+msgid "Examples:"
+msgstr ""
+
+#: ../../assert_library.md:28
+#: ../../assert_library.md:48
+msgid "actual: "
+msgstr ""
+
+#: ../../assert_library.md:29
+#: ../../assert_library.md:49
+msgid "expected: "
+msgstr ""
+
+#: ../../assert_library.md:32
+msgid "Tests if actual & expected values are same. message is returned in case of failure."
+msgstr ""
+
+#: ../../assert_library.md:52
+msgid "Tests if actual & expected values are not same. message is returned in case of failure."
+msgstr ""
+
+#: ../../assert_library.md:64
+#: ../../assert_library.md:83
+msgid "value1: "
+msgstr ""
+
+#: ../../assert_library.md:65
+#: ../../assert_library.md:84
+msgid "value2: "
+msgstr ""
+
+#: ../../assert_library.md:68
+msgid "Tests if value1 is greater than value2. message is returned in case of failure."
+msgstr ""
+
+#: ../../assert_library.md:87
+msgid "Tests if value1 is lesser than value2. message is returned in case of failure."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../code_contribution_guide.md:1
+msgid "Code Contribution Guide"
+msgstr ""
+
+#: ../../code_contribution_guide.md:4
+msgid "Remix is an open source tool and we encourage everyone to help us improve it. Please opening issues, give feedback or contribute by a pulling request to our codebase."
+msgstr ""
+
+#: ../../code_contribution_guide.md:8
+msgid "The Remix application is built with JavaScript and it doesn't use any frameworks. We rely on a selected set of npm modules, like yo-yo, csjs-inject and among others. Check out the package.json files in the Remix submodules to learn more about the stack."
+msgstr ""
+
+#: ../../code_contribution_guide.md:10
+msgid "To learn more, please visit our GitHub page."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../community.md:1
+msgid "Community Support"
+msgstr ""
+
+#: ../../community.md:4
+msgid "We know that blockchain ecosystem is very new and that lots of information is scattered around the web. That is why we created a community support channel where we and other users try to answer your questions if you get stuck using Remix. Please, join the community and ask for help."
+msgstr ""
+
+#: ../../community.md:8
+msgid "For anyone who is interested in developing a custom plugin for Remix or who wants to contribute to the codebase, we opened a contributors' channel especially for developers working on Remix tools."
+msgstr ""
+
+#: ../../community.md:11
+msgid "We would kindly ask you to respect the space and to use it for getting help with your work and the developers' channel for discussions related to working on Remix codebase. If you have ideas for collaborations or you want to promote your project, try to find some more appropriate channels to do so. Or you can contact the main contributors directly on Gitter or Twitter."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../compile.md:1
+msgid "Compiler (Solidity)"
+msgstr ""
+
+#: ../../compile.md:4
+msgid "Clicking the Solidity icon in the icon panel brings you to the Solidty Compiler."
+msgstr ""
+
+#: ../../compile.md:6
+msgid "Compiling is triggered when you click the compile button ( D. in image below). If you want the file to be compiled each time the file is saved or when another file is selected - check the auto compile checkbox ( E. in image below)."
+msgstr ""
+
+#: ../../compile.md:8
+msgid "Since the Solidity version 0.5.7, it is possible to compile Yul files. Please read the (solidity documentation about Yul) which contain some code examples. You can use the language dropdown ( B. in image below) to switch the language. This dropdown list is only available for versions greater than or equal to 0.5.7."
+msgstr ""
+
+#: ../../compile.md:11
+msgid "The fork selection dropdown list ( C. in image below) allows to compile code against a specific ethereum hard fork. The compiler default corresponds to the default hard fork used by a specific version. Please go to \"Compilation Details\" ( G. in image below) in the settings of Metadata section to see the harfork name used for the current compilation."
+msgstr ""
+
+#: ../../compile.md:14
+msgid "If the contract has a lot of dependencies it can take a while to compile - so you use autocompilation at your discretion."
+msgstr ""
+
+#: ../../compile.md:18
+msgid "After each compilation, a list is updated with all newly compiled contracts. A compiled contract can be selected with the Contract pulldown menu ( F. in the image). Multiple contracts are compiled when one contract imports other contracts. Selecting a contract will show information about that one."
+msgstr ""
+
+#: ../../compile.md:21
+msgid "When the \"Compilation Details\" button is clicked ( G. in image), a modal opens displaying detailed information about the current selected contract."
+msgstr ""
+
+#: ../../compile.md:23
+msgid "For those writing your own custom solidity compiler, you can import that by clicking the + button (X. in the image) to open a modal where you can input the url of the compiler to be loaded."
+msgstr ""
+
+#: ../../compile.md:25
+msgid "From the Solidity Compiler module you can also publish your contract to Swarm (only non abstract contracts can be published) & IPFS."
+msgstr ""
+
+#: ../../compile.md:28
+msgid "Published data notably contains the abi and the solidity source code."
+msgstr ""
+
+#: ../../compile.md:30
+msgid "After a contract is published, you can find its metadata information using the bzz URL located in the details modal dialog SWARM LOCATION."
+msgstr ""
+
+#: ../../compile.md:33
+msgid "Compilation Errors and Warning are displayed below the contract section. At each compilation, the static analysis tab builds a report. It is important to address reported issues even if the compiler doesn't complain. (see more)"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../contract_metadata.md:1
+msgid "Build Artifact"
+msgstr ""
+
+#: ../../contract_metadata.md:4
+msgid "When a compilation succeeds, Remix creates two JSON files for each compiled contract. One of these files captures the output from the Solidity compilation. This file will be named contractName_metadata.json."
+msgstr ""
+
+#: ../../contract_metadata.md:6
+msgid "The other JSON file is named contractName.json . The contractName.json file contains the compilation's artifact that is needed for linking a library to the file. It contains the link to the libraries, the bytecode, the deployed bytecode, the gas estimation, the method identifiers, and the ABI."
+msgstr ""
+
+#: ../../contract_metadata.md:8
+msgid "In order to generate these artifact files, the Generate contract metadata box in the General settings section of the Settings module needs to be checked. The these metadatas files will then be generated when you compile a file and will be placed in the artifacts folder - which you can see in the Files Explorers plugin."
+msgstr ""
+
+#: ../../contract_metadata.md:10
+msgid "You can write scripts that can access either of these files."
+msgstr ""
+
+#: ../../contract_metadata.md:12
+msgid "Library Deployment with filename.json"
+msgstr ""
+
+#: ../../contract_metadata.md:15
+msgid "By default Remix automatically deploys needed libraries."
+msgstr ""
+
+#: ../../contract_metadata.md:17
+msgid "When you open the metadata file for the libraries - artifact/filename.json you will see the following sections:"
+msgstr ""
+
+#: ../../contract_metadata.md:19
+msgid "linkReferences contains a map representing libraries which depend on the current contract. Values are addresses of libraries used for linking the contract."
+msgstr ""
+
+#: ../../contract_metadata.md:22
+msgid "autoDeployLib defines if the libraries should be auto deployed by Remix or if the contract should be linked with libraries described in linkReferences"
+msgstr ""
+
+#: ../../contract_metadata.md:24
+msgid "Note that Remix will resolve addresses corresponding to the current network. By default, a configuration key follows the form: :, but it is also possible to define or as keys."
+msgstr ""
+
+#: ../../contract_metadata.md:28
+msgid "Here is a sample metadata file for linking a library:"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../create_deploy.md:1
+msgid "Creating and Deploying a Contract"
+msgstr ""
+
+#: ../../create_deploy.md:4
+msgid "There are 3 type of environments Remix can be plugged to: Javascript VM, Injected provider, or Web3 provider. (for details see Running transactions)"
+msgstr ""
+
+#: ../../create_deploy.md:7
+msgid "Both Web3 provider and Injected provider require the use of an external tool."
+msgstr ""
+
+#: ../../create_deploy.md:10
+msgid "The external tool for Web3 provider is an Ethereum node and for Injected provider Metamask."
+msgstr ""
+
+#: ../../create_deploy.md:13
+msgid "The JavaScript VM mode is convenient because each execution runs in your browser and you don't need any other software or Ethereum node to run it."
+msgstr ""
+
+#: ../../create_deploy.md:16
+msgid "So, it is the easiest test environment - no setup required!"
+msgstr ""
+
+#: ../../create_deploy.md:18
+msgid "But keep in mind that reloading the browser when you are in the Javascript VM will restart Remix in an empty state."
+msgstr ""
+
+#: ../../create_deploy.md:20
+msgid "For performance purposes ( which is to say - for testing in an environment that is closest to the mainnet), it might also be better to use an external node."
+msgstr ""
+
+#: ../../create_deploy.md:22
+msgid "Selecting the VM mode"
+msgstr ""
+
+#: ../../create_deploy.md:25
+msgid "Make sure the VM mode is selected. All accounts displayed in Accounts should have 100 ether."
+msgstr ""
+
+#: ../../create_deploy.md:28
+msgid "Sample contract"
+msgstr ""
+
+#: ../../create_deploy.md:57
+msgid "This contract is very basic. The goal is to quickly start to create and to interact with a sample contract."
+msgstr ""
+
+#: ../../create_deploy.md:60
+msgid "Deploying an instance"
+msgstr ""
+
+#: ../../create_deploy.md:63
+msgid "The Compile tab displays information related to the current contract (note that there can be more than one) (see compile)."
+msgstr ""
+
+#: ../../create_deploy.md:66
+msgid "Moving on, in the Run tab select, JavaScript VM to specify that you are going to deploy an instance of the contract in the JavaScript VM state."
+msgstr ""
+
+#: ../../create_deploy.md:72
+msgid "The constructor of Ballot.sol needs a parameter (of type uint8). Give any value and click on Deploy."
+msgstr ""
+
+#: ../../create_deploy.md:75
+msgid "The transaction which deploys the instance of Ballot is created."
+msgstr ""
+
+#: ../../create_deploy.md:77
+msgid "In a \"normal\" blockchain, it can take several seconds to execute. This is the time for the transaction to be mined. However, because we are using the JavaScript VM, our execution is immediate."
+msgstr ""
+
+#: ../../create_deploy.md:81
+msgid "The terminal will inform you about the transaction. You can see details there and start debugging."
+msgstr ""
+
+#: ../../create_deploy.md:84
+msgid "The newly created instance is displayed in the run tab."
+msgstr ""
+
+#: ../../create_deploy.md:88
+msgid "Interacting with an instance"
+msgstr ""
+
+#: ../../create_deploy.md:91
+msgid "This new instance contains 3 actions which corresponds to the 3 functions (setP, setPN, get). Clicking on SetP or SetPN will create a new transaction."
+msgstr ""
+
+#: ../../create_deploy.md:95
+msgid "Note that SetP is payable (red button) : it is possible to send value (Ether) to the contract."
+msgstr ""
+
+#: ../../create_deploy.md:98
+msgid "SetPN is not payable (orange button - depending on the theme) : it is not possible to send value (Ether) to the contract."
+msgstr ""
+
+#: ../../create_deploy.md:101
+msgid "Clicking on get will not execute a transaction (usually its a blue button - depending on the theme). It doesn't execute a transaction because a get does not modify the state (variable value) of this instance."
+msgstr ""
+
+#: ../../create_deploy.md:104
+msgid "As get is view you can see the return value just below the action."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../debugger.md:1
+msgid "Debugger"
+msgstr ""
+
+#: ../../debugger.md:4
+msgid "This module allows you to debug the transaction. It can be used to deploy transactions created from Remix and already mined transactions. (debugging works only if the current environment provides the necessary features)."
+msgstr ""
+
+#: ../../debugger.md:9
+msgid "To get to the debugger - you can click the debug button in the terminal when a successful or failed transaction appears there. You can also load the module from the plugin manager and then click the bug in the icon panel. Or you can get to the debugger by running the debug command in the console."
+msgstr ""
+
+#: ../../debugger.md:14
+msgid "To learn more about how to use this tool go to the debugger tutorial."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../FAQ.md:1
+msgid "FAQ"
+msgstr ""
+
+#: ../../FAQ.md:4
+msgid "Solidity compiler"
+msgstr ""
+
+#: ../../FAQ.md:6
+msgid "Q: Error: compiler might be in a non-sane state"
+msgstr ""
+
+#: ../../FAQ.md:13
+msgid "A: Old versions of solidity compiler had this problem with chrome. Please change the compiler version in Solidity Plugin to the newer one or use another browser."
+msgstr ""
+
+#: ../../FAQ.md:16
+msgid "Q: I’m getting an issue with Maximum call stack exceed and various other errors, can't compile."
+msgstr ""
+
+#: ../../FAQ.md:18
+msgid "A: Try a different browser or a newer solidity compiler version."
+msgstr ""
+
+#: ../../FAQ.md:20
+msgid "Q: How to verify a contract that imports other contracts?"
+msgstr ""
+
+#: ../../FAQ.md:22
+msgid "A: The verification tool does not recursively go through the import statments in a contract. So can only verify a 'flattened' contract."
+msgstr ""
+
+#: ../../FAQ.md:24
+msgid "There is a plugin called Flattener which will stuff all the original code and the imported code into a single file."
+msgstr ""
+
+#: ../../FAQ.md:26
+msgid "Deploy & Run"
+msgstr ""
+
+#: ../../FAQ.md:28
+msgid "Q: I am using an Infura endpoint in my app, but when I try to deploy against that endpoint in remix IDE selecting \"web3 provider\" and putting my endpoint in, it's telling me that it can't connect"
+msgstr ""
+
+#: ../../FAQ.md:30
+msgid "A: If the endpoint you are using is http, it won't work."
+msgstr ""
+
+#: ../../FAQ.md:32
+msgid "Q: Where is deploy button?"
+msgstr ""
+
+#: ../../FAQ.md:34
+msgid "A: Its in the Deploy & Run module. If you haven't activated that module, you should do that by clicking Deploy & Run module in the Plugin Manager. You could also activate everything you need to work with solidity on the landing page ( click the remix logo at the top left for the screen) and click the \"Solidity\" button in the environment section."
+msgstr ""
+
+#: ../../FAQ.md:37
+msgid "Q: How to pass a tuple to a public function in Remix?"
+msgstr ""
+
+#: ../../FAQ.md:39
+msgid "A: Pass it as an array []."
+msgstr ""
+
+#: ../../FAQ.md:41
+msgid "Q: How to input a struct as input to a parameter of a function in the Deploy & Run module?"
+msgstr ""
+
+#: ../../FAQ.md:43
+msgid "A: For inputting a struct, just like a tuple, pass it in as an array []. Also you need to put in the line:"
+msgstr ""
+
+#: ../../FAQ.md:45
+msgid "pragma experimental ABIEncoderV2; at the top of the solidity file."
+msgstr ""
+
+#: ../../FAQ.md:47
+msgid "For example, here's a solidity file with a struct is an input parameter."
+msgstr ""
+
+#: ../../FAQ.md:79
+msgid "The input of initPeepToPeeps takes a struct. If you input [1,2] the transaction will go through."
+msgstr ""
+
+#: ../../FAQ.md:83
+msgid "General"
+msgstr ""
+
+#: ../../FAQ.md:85
+msgid "Q: Where do plugin developers go with their questions?"
+msgstr ""
+
+#: ../../FAQ.md:87
+msgid "A: The Gitter Remix plugin developers room https://gitter.im/ethereum/remix-dev-plugin"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../file_explorer.md:1
+msgid "File Explorers"
+msgstr ""
+
+#: ../../file_explorer.md:4
+msgid "To get to the File Explorers module - click the file explorers icon."
+msgstr ""
+
+#: ../../file_explorer.md:8
+msgid "The basic files explorer lists all the files stored in your browser's browser storage. You can see them in the browser folder."
+msgstr ""
+
+#: ../../file_explorer.md:11
+msgid "Important Note: Clearing the browser storage will permanently delete all the solidity files stored there. This is an inherent limitation of a browser-based IDE. However, if you want to store files outside of the browser and on your computer's filesystem, use Remixd or use the desktop version of Remix-IDE. RemixD enables you to have access to a selected folder on your hard drive. Remix Desktop is a version of Remix-IDE in an Electron app."
+msgstr ""
+
+#: ../../file_explorer.md:14
+msgid "You can rename, remove or add new files to the file explorer."
+msgstr ""
+
+#: ../../file_explorer.md:19
+msgid "We will start by reviewing the icons in the image above."
+msgstr ""
+
+#: ../../file_explorer.md:21
+msgid "The book icon - A. is the link to the module's documentation."
+msgstr ""
+
+#: ../../file_explorer.md:23
+msgid "The icons to the right of the browser file explorer in the image above only appear for browser storage."
+msgstr ""
+
+#: ../../file_explorer.md:25
+msgid "Create new File"
+msgstr ""
+
+#: ../../file_explorer.md:28
+msgid "The icon marked B. above. Creates a new file."
+msgstr ""
+
+#: ../../file_explorer.md:30
+msgid "Publish to Gist"
+msgstr ""
+
+#: ../../file_explorer.md:33
+msgid "The icon marked C. above. Publishes all files from the browser folder to a gist. Only file in the root of browser will be published. Files in subfolders will not be publish to the Gist. Gist API has changed in 2018 and requires users to be authenticated to be able to publish a gist."
+msgstr ""
+
+#: ../../file_explorer.md:36
+msgid "Click this link to Github tokens setup and select Generate new token. Then check the Create gists checkbox and generate a new token."
+msgstr ""
+
+#: ../../file_explorer.md:38
+msgid "Take the token and paste it in Remix's Settings module in the Github Access Token section. And then click Save. Now you should be able to use the feature."
+msgstr ""
+
+#: ../../file_explorer.md:40
+msgid "Create a folder"
+msgstr ""
+
+#: ../../file_explorer.md:43
+msgid "The icon marked D. above. Creates a new folder in browser file explorer."
+msgstr ""
+
+#: ../../file_explorer.md:45
+msgid "Context Menu (Right Click)"
+msgstr ""
+
+#: ../../file_explorer.md:47
+msgid "Right click on a file or a folder and the context menu will appear."
+msgstr ""
+
+#: ../../file_explorer.md:51
+msgid "You can rename or delete a selected file or a folder. You can also create a folder."
+msgstr ""
+
+#: ../../file_explorer.md:53
+msgid "To create a file with the context menu, right click on a folder to get the Create File option. A file will be created inside that folder."
+msgstr ""
+
+#: ../../file_explorer.md:57
+msgid "The functionality of the context menu also works with RemixD (which gives you have access to a folder on your hard drive)."
+msgstr ""
+
+#: ../../file_explorer.md:59
+msgid "Note: When working with RemixD, you need to open and close the localhost folder to refresh the view."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../import.md:1
+msgid "Importing Source Files in Solidity"
+msgstr ""
+
+#: ../../import.md:4
+msgid "There are multiple techniques for importing files into Remix."
+msgstr ""
+
+#: ../../import.md:6
+msgid "For a tutorial about importing files click here. You can also find this tutorial in the Remix Workshops plugin."
+msgstr ""
+
+#: ../../import.md:8
+msgid "For a detailed explanation of the import keyword see the Solidity documentation"
+msgstr ""
+
+#: ../../import.md:11
+msgid "Here are a some of the main methods of importing a file:"
+msgstr ""
+
+#: ../../import.md:13
+msgid "Importing a file from the browser's local storage"
+msgstr ""
+
+#: ../../import.md:16
+msgid "Files in Remix can be imported with the import key word with the path to the file. Use ./ for relative paths to increase portability."
+msgstr ""
+
+#: ../../import.md:24
+msgid "Importing a file from your computer's filesystem"
+msgstr ""
+
+#: ../../import.md:27
+msgid "This method uses remixd - the remix daemon. Please go to the remixd tutorial for instructions about how to bridge the divide between the browser and your computers filesystem."
+msgstr ""
+
+#: ../../import.md:30
+msgid "Importing from GitHub"
+msgstr ""
+
+#: ../../import.md:33
+msgid "It is possible to import files directly from GitHub. You should specify the release tag (where available), otherwise you will get the latest code in the master branch. For OpenZeppelin Contracts you should only use code published in an official release, the example below imports from OpenZeppelin Contracts v2.5.0."
+msgstr ""
+
+#: ../../import.md:42
+msgid "Importing from Swarm"
+msgstr ""
+
+#: ../../import.md:45
+msgid "Files can be imported using all URLs supported by swarm. If you do not have a swarm node, then use swarm-gateways.net."
+msgstr ""
+
+#: ../../import.md:52
+msgid "Importing from IPFS"
+msgstr ""
+
+#: ../../import.md:55
+msgid "Files can be imported from IPFS."
+msgstr ""
+
+#: ../../import.md:61
+msgid "Importing from the console"
+msgstr ""
+
+#: ../../import.md:64
+msgid "You can also use a remix command remix.loadurl('')in the console. You should specify the release tag (where available), otherwise you will get the latest code in the master branch. For OpenZeppelin Contracts you should only use code published in an official release, the example below imports from OpenZeppelin Contracts v2.5.0."
+msgstr ""
+
+#: ../../import.md:70
+msgid "Notice that this will create a github folder in the file explorer. To load a file in the github folder, you would use a command like this:"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../index.rst:2
+msgid "Welcome to Remix documentation!"
+msgstr ""
+
+#: ../../index.rst:4
+msgid "Remix is a powerful, open source tool that helps you write Solidity contracts straight from the browser. Written in JavaScript, Remix supports both usage in the browser and locally."
+msgstr ""
+
+#: ../../index.rst:7
+msgid "Remix also supports testing, debugging and deploying of smart contracts and much more."
+msgstr ""
+
+#: ../../index.rst:9
+msgid "Our Remix project with all its features is available at `remix.ethereum.org `__ and more information can be found in these docs. Our IDE tool is available at `our GitHub repository `__."
+msgstr ""
+
+#: ../../index.rst:14
+msgid "This set of documents covers instructions on how to use Remix and some tutorials to help you get started."
+msgstr ""
+
+#: ../../index.rst:16
+msgid "Useful links:"
+msgstr ""
+
+#: ../../index.rst:18
+msgid "`Solidity documentation `__"
+msgstr ""
+
+#: ../../index.rst:20
+msgid "`Remix alpha `__ - The version where we test new Remix release (not stable!)."
+msgstr ""
+
+#: ../../index.rst:22
+msgid "`Remix on Medium `__"
+msgstr ""
+
+#: ../../index.rst:24
+msgid "`Ethereum StackExchange for Remix `__"
+msgstr ""
+
+#: ../../index.rst:26
+msgid "`Community support channel `__"
+msgstr ""
+
+#: ../../index.rst:28
+msgid "`Ðapp Developer resources (Ethereum wiki) `__"
+msgstr ""
+
+#: ../../index.rst:30
+msgid "New Layout Intro"
+msgstr ""
+
+#: ../../index.rst:36
+msgid "Tour of default modules"
+msgstr ""
+
+#: ../../index.rst:46
+msgid "Tour of typical solidity modules"
+msgstr ""
+
+#: ../../index.rst:56
+msgid "Solidity Unit Testing"
+msgstr ""
+
+#: ../../index.rst:64
+msgid "Using Remix"
+msgstr ""
+
+#: ../../index.rst:76
+msgid "Miscellaneous"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../layout.md:1
+msgid "Remix-IDE Layout"
+msgstr ""
+
+#: ../../layout.md:4
+msgid "The new structure"
+msgstr ""
+
+#: ../../layout.md:8
+msgid "Icon Panel - click to change which plugin appears in the Side Panel"
+msgstr ""
+
+#: ../../layout.md:9
+msgid "Side Panel - Most but not all plugins will have their GUI here."
+msgstr ""
+
+#: ../../layout.md:10
+msgid "Main Panel - In the old layout this was just for editing files. In the tabs can be plugins or files for the IDE to compile."
+msgstr ""
+
+#: ../../layout.md:11
+msgid "Terminal - where you will see the results of your interactions with the GUI's. Also you can run scripts here."
+msgstr ""
+
+#: ../../layout.md:13
+msgid "Icon Panel at Page Load"
+msgstr ""
+
+#: ../../layout.md:15
+msgid "When you load remix - the icon panel show these icons by default."
+msgstr ""
+
+#: ../../layout.md:19
+msgid "Everything in remix is now a plugin... so the Plugin Manager is very important. In the old layout, each basic task in remix was separated into the tabs. Now these tabs are plugins."
+msgstr ""
+
+#: ../../layout.md:22
+msgid "But to activate a half a dozen plugins - (or however many you are using) each time the page load is tedious. So learn about the Environments."
+msgstr ""
+
+#: ../../layout.md:24
+msgid "Homepage"
+msgstr ""
+
+#: ../../layout.md:29
+msgid "The homepage is located in a tab in the Main Panel."
+msgstr ""
+
+#: ../../layout.md:31
+msgid "You can also get there by clicking the remix logo at the top of the icon panel."
+msgstr ""
+
+#: ../../layout.md:33
+msgid "Environments"
+msgstr ""
+
+#: ../../layout.md:34
+msgid "Clicking on one of the environment buttons loads up a collection of plugins. We currently have a Solidity Button and a Vyper button. In the future you will be able to save your own environment."
+msgstr ""
+
+#: ../../layout.md:36
+msgid "To see all the plugins go to the plugin manager - by selecting the plug in the icon panel."
+msgstr ""
+
+#: ../../layout.md:39
+msgid "The environment buttons are time & sanity savers - so you don't need to go to the plugin manager to get started everytime you load the page."
+msgstr ""
+
+#: ../../layout.md:42
+msgid "Plugin Manager"
+msgstr ""
+
+#: ../../layout.md:45
+msgid "In order to make Remix flexible for integrating changes into its functionality and for integrating remix into other projects (your's for example), we've now made everything a plugin. This means that you only load the functionality you need. It also means that you need a place to turn off and on plugins - as your needs change. This all happens in the plug manager."
+msgstr ""
+
+#: ../../layout.md:47
+msgid "The Plugin Manager is also the place you go when you are creating your own plugin and you want to load your local plugin into Remix. In that case you'd click on the \"Connect to a Local Plugin\" link at the top of the Plugin Manager panel."
+msgstr ""
+
+#: ../../layout.md:49
+msgid "Themes"
+msgstr ""
+
+#: ../../layout.md:52
+msgid "So you want to work on Remix with a dark theme or a gray theme or just a different theme that the one you are currently looking at? Go to the settings tab and at the bottom is a choice of lots of bootstrap based themes."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../locations.md:1
+msgid "Remix URLs & Links with Parameters"
+msgstr ""
+
+#: ../../locations.md:4
+msgid "Remix URLs"
+msgstr ""
+
+#: ../../locations.md:5
+msgid "An online version is available at https://remix.ethereum.org. This version is stable and is updated at almost every release."
+msgstr ""
+
+#: ../../locations.md:6
+msgid "An alpha online version is available at https://remix-alpha.ethereum.org. This is not a stable version."
+msgstr ""
+
+#: ../../locations.md:8
+msgid "Github repo: https://github.com/ethereum/remix-project . The README contains instructions for running Remix-IDE locally."
+msgstr ""
+
+#: ../../locations.md:10
+msgid "Github release: https://github.com/ethereum/remix-project/releases ."
+msgstr ""
+
+#: ../../locations.md:13
+msgid "Embedding & Linking to Remix"
+msgstr ""
+
+#: ../../locations.md:15
+msgid "Remix-IDE's urls have parameters -so it is possible to specify:"
+msgstr ""
+
+#: ../../locations.md:16
+msgid "the list of plugins you want activated"
+msgstr ""
+
+#: ../../locations.md:17
+msgid "the theme (Dark or Light)"
+msgstr ""
+
+#: ../../locations.md:18
+msgid "the panels that should be minimized"
+msgstr ""
+
+#: ../../locations.md:19
+msgid "if you want the Solidity compiler to have optimize enabled"
+msgstr ""
+
+#: ../../locations.md:21
+msgid "In the following example, there is a list of plugins that follows the word plugins will be activated and the last plugin will gain the focus."
+msgstr ""
+
+#: ../../locations.md:26
+msgid "For the plugin are called by their name in their profile. To check for a plugin's profile name - for plugins built by external teams, please go to https://github.com/ethereum/remix-plugins-directory/tree/master/plugins"
+msgstr ""
+
+#: ../../locations.md:28
+msgid "Further Customization with URL parameters"
+msgstr ""
+
+#: ../../locations.md:30
+msgid "The following URL will close everything except the main panel & the icon panel (so the side and terminal are minimized)"
+msgstr ""
+
+#: ../../locations.md:32
+msgid "https://remix.ethereum.org/?#embed=true"
+msgstr ""
+
+#: ../../locations.md:34
+msgid "To link with the side panel minimized use this URL:"
+msgstr ""
+
+#: ../../locations.md:36
+msgid "https://remix.ethereum.org/?#minimizesidepanel=true"
+msgstr ""
+
+#: ../../locations.md:38
+msgid "To link to Remix with the dark theme or the light theme specified use this url:"
+msgstr ""
+
+#: ../../locations.md:40
+msgid "https://remix.ethereum.org/?#theme=Dark"
+msgstr ""
+
+#: ../../locations.md:42
+msgid "To link to Remix with the Solidity compiler, the unit testing, and LearnEth plugins activated (with Learneth gaining the side panel's focus) & with the Light theme loaded & with the terminal minimized use this URL & with optimize off:"
+msgstr ""
+
+#: ../../locations.md:44
+msgid "https://remix.ethereum.org/?#activate=solidity,solidityUnitTesting,LearnEth&theme=Light&minimizeterminal=true&optimize=false&evmVersion=null&version=soljson-v0.6.6+commit.6c089d02.js"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../plugin_manager.md:1
+msgid "Plugin Manager"
+msgstr ""
+
+#: ../../plugin_manager.md:4
+msgid "Everything is a PLUGIN in Remix"
+msgstr ""
+
+#: ../../plugin_manager.md:6
+msgid "In order to integrate new tools made by us and by ...you into Remix, we've now made everything a plugin. This architecture will also allow Remix or just parts of Remix to be integrated into other projects (your's for example)."
+msgstr ""
+
+#: ../../plugin_manager.md:9
+msgid "This means that you only load the functionality you need."
+msgstr ""
+
+#: ../../plugin_manager.md:11
+msgid "It also means that you can turn off and on plugins - as your needs change."
+msgstr ""
+
+#: ../../plugin_manager.md:13
+msgid "This all happens in the plug manager."
+msgstr ""
+
+#: ../../plugin_manager.md:15
+msgid "The Plugin Manager is also the place you go when you are creating your own plugin and you want to load your local plugin into Remix."
+msgstr ""
+
+#: ../../plugin_manager.md:17
+msgid "To load your local plugin, you'd click on the \"Connect to a Local Plugin\" link at the top of the Plugin Manager panel."
+msgstr ""
+
+#: ../../plugin_manager.md:21
+msgid "To learn more about how to create your own plugin, go to the README of remix-plugin repo."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../remix_commands.md:1
+msgid "Remix Commands"
+msgstr ""
+
+#: ../../remix_commands.md:4
+msgid "In the console, you can run the commands listed below. Once you start to type a command, there is auto completion. These commands are using the following libraries:"
+msgstr ""
+
+#: ../../remix_commands.md:6
+msgid "ethers: The ethers.js library is a compact and complete JavaScript library for Ethereum."
+msgstr ""
+
+#: ../../remix_commands.md:8
+msgid "remix: Ethereum IDE and tools for the web."
+msgstr ""
+
+#: ../../remix_commands.md:10
+msgid "web3: The web3.js library is a collection of modules which contain specific functionality for the ethereum ecosystem."
+msgstr ""
+
+#: ../../remix_commands.md:12
+msgid "swarmgw: This library can be used to upload/download files to Swarm via https://swarm-gateways.net/."
+msgstr ""
+
+#: ../../remix_commands.md:14
+msgid "Here's the list of commands"
+msgstr ""
+
+#: ../../remix_commands.md:15
+msgid "remix.debug(hash): Start debugging a transaction."
+msgstr ""
+
+#: ../../remix_commands.md:17
+msgid "remix.debugHelp(): Display help message for debugging"
+msgstr ""
+
+#: ../../remix_commands.md:19
+msgid "remix.execute(filepath): Run the script specified by file path. If filepath is empty, script currently displayed in the editor is executed."
+msgstr ""
+
+#: ../../remix_commands.md:21
+msgid "remix.exeCurrent(): Run the script currently displayed in the editor."
+msgstr ""
+
+#: ../../remix_commands.md:23
+msgid "remix.getFile(path): Returns the content of the file located at the given path"
+msgstr ""
+
+#: ../../remix_commands.md:25
+msgid "remix.help(): Display this help message."
+msgstr ""
+
+#: ../../remix_commands.md:27
+msgid "remix.loadgist(id): Load a gist in the file explorer."
+msgstr ""
+
+#: ../../remix_commands.md:29
+msgid "remix.loadurl(url): Load the given url in the file explorer. The url can be of type github, swarm or ipfs."
+msgstr ""
+
+#: ../../remix_commands.md:31
+msgid "remix.setFile(path, content): set the content of the file located at the given path"
+msgstr ""
+
+#: ../../remix_commands.md:33
+msgid "remix.setproviderurl(url): Change the current provider to Web3 provider and set the url endpoint."
+msgstr ""
+
+#: ../../remix_commands.md:35
+msgid "swarmgw.get(url, cb): Download files from Swarm via https**://swarm-gateways.net/"
+msgstr ""
+
+#: ../../remix_commands.md:37
+msgid "swarmgw.put(content, cb): Upload files to Swarm via https**://swarm-gateways.net/"
+msgstr ""
+
+#: ../../remix_commands.md:39
+msgid "ethers.Contract: This API provides a graceful connection to a contract deployed on the blockchain, simplifying calling and querying its functions and handling all the binary protocol and conversion as necessarily."
+msgstr ""
+
+#: ../../remix_commands.md:41
+msgid "ethers.HDNode: A Hierarchical Deterministic Wallet represents a large tree of private keys which can reliably be reproduced from an initial seed."
+msgstr ""
+
+#: ../../remix_commands.md:43
+msgid "ethers.Interface: The Interface Object is a meta-class that accepts a Solidity (or compatible) Application Binary Interface (ABI) and populates functions to deal with encoding and decoding the parameters to pass in and results returned."
+msgstr ""
+
+#: ../../remix_commands.md:45
+msgid "ethers.providers: A Provider abstracts a connection to the Ethereum blockchain, for issuing queries and sending state changing transactions."
+msgstr ""
+
+#: ../../remix_commands.md:47
+msgid "ethers.SigningKey: The SigningKey interface provides an abstraction around the secp256k1 elliptic curve cryptography library."
+msgstr ""
+
+#: ../../remix_commands.md:49
+msgid "ethers.utils: The utility functions exposed in both the ethers umbrella package and the ethers-utils."
+msgstr ""
+
+#: ../../remix_commands.md:51
+msgid "ethers.utils.AbiCoder: Create a new ABI Coder object"
+msgstr ""
+
+#: ../../remix_commands.md:53
+msgid "ethers.utils.RLP: This encoding method is used internally for several aspects of Ethereum, such as encoding transactions and determining contract addresses."
+msgstr ""
+
+#: ../../remix_commands.md:55
+msgid "ethers.Wallet: A wallet manages a private/public key pair which is used to cryptographically sign transactions and prove ownership on the Ethereum network."
+msgstr ""
+
+#: ../../remix_commands.md:57
+msgid "ethers.version: Contains the version of the ethers container object."
+msgstr ""
+
+#: ../../remix_commands.md:59
+msgid "web3.bzz: Bzz module for interacting with the swarm network."
+msgstr ""
+
+#: ../../remix_commands.md:61
+msgid "web3.eth: Eth module for interacting with the Ethereum network."
+msgstr ""
+
+#: ../../remix_commands.md:63
+msgid "web3.eth.accounts: The web3.eth.accounts contains functions to generate Ethereum accounts and sign transactions and data."
+msgstr ""
+
+#: ../../remix_commands.md:65
+msgid "web3.eth.abi: The web3.eth.abi functions let you de- and encode parameters to ABI (Application Binary Interface) for function calls to the EVM (Ethereum Virtual Machine)."
+msgstr ""
+
+#: ../../remix_commands.md:67
+msgid "web3.eth.ens: The web3.eth.ens functions let you interacting with ENS."
+msgstr ""
+
+#: ../../remix_commands.md:69
+msgid "web3.eth.Iban: The web3.eth.Iban function lets convert Ethereum addresses from and to IBAN and BBAN."
+msgstr ""
+
+#: ../../remix_commands.md:71
+msgid "web3.eth.net: Net module for interacting with network properties."
+msgstr ""
+
+#: ../../remix_commands.md:73
+msgid "web3.eth.personal: Personal module for interacting with the Ethereum accounts."
+msgstr ""
+
+#: ../../remix_commands.md:75
+msgid "web3.eth.subscribe: The web3.eth.subscribe function lets you subscribe to specific events in the blockchain."
+msgstr ""
+
+#: ../../remix_commands.md:77
+msgid "web3.givenProvider: When using web3.js in an Ethereum compatible browser, it will set with the current native provider by that browser. Will return the given provider by the (browser) environment, otherwise null."
+msgstr ""
+
+#: ../../remix_commands.md:79
+msgid "web3.modules: Contains the version of the web3 container object."
+msgstr ""
+
+#: ../../remix_commands.md:81
+msgid "web3.providers: Contains the current available providers."
+msgstr ""
+
+#: ../../remix_commands.md:83
+msgid "web3.shh: Shh module for interacting with the whisper protocol"
+msgstr ""
+
+#: ../../remix_commands.md:85
+msgid "web3.utils: This package provides utility functions for Ethereum dapps and other **web3.js packages."
+msgstr ""
+
+#: ../../remix_commands.md:87
+msgid "web3.version: Contains the version of the web3 container object."
+msgstr ""
+
+#: ../../remix_commands.md:89
+msgid "web3.eth.clearSubscriptions();: Resets subscriptions."
+msgstr ""
+
+#: ../../remix_commands.md:91
+msgid "web3.eth.Contract(jsonInterface[, address][, options]): The **web3.eth.Contract object makes it easy to interact with smart contracts on the ethereum blockchain."
+msgstr ""
+
+#: ../../remix_commands.md:93
+msgid "web3.eth.accounts.create([entropy]);: The web3.eth.accounts contains functions to generate Ethereum accounts and sign transactions and data."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../remixd.md:1
+msgid "Remixd: Access your Local Filesystem"
+msgstr ""
+
+#: ../../remixd.md:3
+msgid "To give the Remix-ide (the web app) access to a folder on your local computer, you need to use remixd."
+msgstr ""
+
+#: ../../remixd.md:5
+msgid "remixd is both the name of an npm module and the name of a Remix-plugin. You need to install the plugin (from the plugin manager) and you need to install the remixd npm module."
+msgstr ""
+
+#: ../../remixd.md:8
+msgid "NOTE: you need to install the remixd npm module & Run its command before activating the remixd plugin."
+msgstr ""
+
+#: ../../remixd.md:10
+msgid "The code of remixd is here ."
+msgstr ""
+
+#: ../../remixd.md:13
+msgid "remixd Installation"
+msgstr ""
+
+#: ../../remixd.md:14
+msgid "remixd can be globally installed using the following command: npm install -g remixd"
+msgstr ""
+
+#: ../../remixd.md:17
+msgid "Or just install it in the directory of your choice by removing the -g flag: npm install remixd"
+msgstr ""
+
+#: ../../remixd.md:20
+msgid "remixd Command"
+msgstr ""
+
+#: ../../remixd.md:21
+msgid "From the terminal, the command remixd -s --remix-ide will start remixd and will share the given folder with remix-ide."
+msgstr ""
+
+#: ../../remixd.md:23
+msgid "For example, to use remixd with Remix IDE, use this command: remixd -s --remix-ide https://remix.ethereum.org"
+msgstr ""
+
+#: ../../remixd.md:26
+msgid "Make sure that if you use https://remix.ethereum.org (secure http) in the remixd command (like in the example above), that you are also pointing your browser to https://remix.ethereum.org and not to http://remix.ethereum.org (plain old insecure http). Or if you want to use http in the browser use http in the remixd command."
+msgstr ""
+
+#: ../../remixd.md:28
+msgid "The folder is shared using a websocket connection between Remix IDE and remixd."
+msgstr ""
+
+#: ../../remixd.md:31
+msgid "Be sure the user executing remixd has read/write permission on the folder."
+msgstr ""
+
+#: ../../remixd.md:34
+msgid "There is an option to run remixd in read-only mode, use --read-only flag."
+msgstr ""
+
+#: ../../remixd.md:36
+msgid "Warning!"
+msgstr ""
+
+#: ../../remixd.md:37
+msgid "remixd provides full read and write access to the given folder for any application that can access the TCP port 65520 on your local host."
+msgstr ""
+
+#: ../../remixd.md:40
+msgid "After the command is running, activate the remixd plugin."
+msgstr ""
+
+#: ../../remixd.md:41
+msgid "From Remix IDE, in the Plugin Manager, activate the remixd plugin. This plugin is a websocket plugin and it has no UI other than a modal dialog box."
+msgstr ""
+
+#: ../../remixd.md:43
+msgid "This modal will ask confirmation"
+msgstr ""
+
+#: ../../remixd.md:45
+msgid "Accepting this dialog will start a session."
+msgstr ""
+
+#: ../../remixd.md:47
+msgid "If you do not have remixd running in the background - another modal will open up and it will say:"
+msgstr ""
+
+#: ../../remixd.md:54
+msgid "Assuming you don't get the 2nd modal, your connection to the remixd daemon is successful. The shared folder will be available in the file explorer."
+msgstr ""
+
+#: ../../remixd.md:56
+msgid "When you click the activation of remixd is successful - there will NOT be an icon that loads in the icon panel."
+msgstr ""
+
+#: ../../remixd.md:58
+msgid "Click the File Explorers icon and in the swap panel you should now see the folder for localhost."
+msgstr ""
+
+#: ../../remixd.md:60
+msgid "Click on the localhost connection icon:"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../remix_tutorials_github.md:1
+msgid "Remix Github Tutorials"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:4
+msgid "There are a series of tutorials in our github repo remix-workshops."
+msgstr ""
+
+#: ../../remix_tutorials_github.md:6
+msgid "We are in the process of upgrading these tutorials to use the new Remix layout."
+msgstr ""
+
+#: ../../remix_tutorials_github.md:8
+msgid "In this repo there tutorials for all levels."
+msgstr ""
+
+#: ../../remix_tutorials_github.md:10
+msgid "There are tutorials for specific remix functionalities like:"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:12
+msgid "Deploying"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:18
+msgid "Testing"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:23
+msgid "Remix Plugin Development"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:27
+msgid "Other"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:35
+msgid "Additional external workshops"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../run.md:1
+msgid "Deploy & Run"
+msgstr ""
+
+#: ../../run.md:4
+msgid "The Deploy & Run module allows you to send transactions to the current environment."
+msgstr ""
+
+#: ../../run.md:6
+msgid "To use this module, you need to have a contract compiled. So, if there is a contract name in the CONTRACT select box (the select box is under the VALUE input field), you can use this module. If nothing is there or you do not see the contract you want, you need to select a contract in the editor to make it active, go to a compiler module and compile it, and then come back to Deploy & Run."
+msgstr ""
+
+#: ../../run.md:10
+msgid "Environment"
+msgstr ""
+
+#: ../../run.md:13
+msgid "JavaScript VM: All the transactions will be executed in a sandbox blockchain in the browser. This means nothing will be persisted when you reload the page. The JsVM is its own blockchain and on each reload it will start a new blockchain, the old one will not be saved."
+msgstr ""
+
+#: ../../run.md:17
+msgid "Injected Provider: Remix will connect to an injected web3 provider. Metamask is an example of a provider that inject web3."
+msgstr ""
+
+#: ../../run.md:20
+msgid "Web3 Provider: Remix will connect to a remote node. You will need to provide the URL to the selected provider: geth, parity or any Ethereum client."
+msgstr ""
+
+#: ../../run.md:22
+msgid "More about Web3 Provider"
+msgstr ""
+
+#: ../../run.md:24
+msgid "If you are using Geth & https://remix.ethereum.org, please use the following Geth command to allow requests from Remix:"
+msgstr ""
+
+#: ../../run.md:26
+msgid "geth --rpc --rpccorsdomain https://remix.ethereum.org"
+msgstr ""
+
+#: ../../run.md:28
+msgid "Also see Geth Docs about the rpc server"
+msgstr ""
+
+#: ../../run.md:30
+msgid "To run Remix using https://remix.ethereum.org & a local test node, use this Geth command:"
+msgstr ""
+
+#: ../../run.md:32
+msgid "geth --rpc --rpccorsdomain=\"https://remix.ethereum.org\" --rpcapi web3,eth,debug,personal,net --vmdebug --datadir --dev console"
+msgstr ""
+
+#: ../../run.md:34
+msgid "If you are using remix-alpha or a local version of remix - replace the url of the --rpccorsdomain with the url of Remix that you are using."
+msgstr ""
+
+#: ../../run.md:36
+msgid "To run Remix Desktop & a local test node, use this Geth command:"
+msgstr ""
+
+#: ../../run.md:38
+msgid "geth --rpc --rpccorsdomain=\"package://a7df6d3c223593f3550b35e90d7b0b1f.mod\" --rpcapi web3,eth,debug,personal,net --vmdebug --datadir --dev console"
+msgstr ""
+
+#: ../../run.md:40
+msgid "Also see Geth Docs on Dev mode"
+msgstr ""
+
+#: ../../run.md:42
+msgid "The Web3 Provider Endpoint for a local node is http://localhost:8545"
+msgstr ""
+
+#: ../../run.md:46
+msgid "WARNING: Don't get lazy. It is a bad idea to use the Geth flag --rpccorsdomain with a wildcard: --rpccorsdomain *"
+msgstr ""
+
+#: ../../run.md:48
+msgid "If you put the wildcard *, it means everyone can request the node. Whereas, if you put a URL, it restricts the urls to just that one - e.g. --rpccorsdomain 'https://remix-alpha.ethereum.org'"
+msgstr ""
+
+#: ../../run.md:50
+msgid "Only use --rpccorsdomain * when using a test chain AND using only test accounts. For real accounts or on the mainchain specify the url."
+msgstr ""
+
+#: ../../run.md:55
+msgid "Account:"
+msgstr ""
+
+#: ../../run.md:57
+msgid "Account: the list of accounts associated with the current environment (and their associated balances). On the JsVM, you have a choice of 5 accounts. If using Injected Web3 with MetaMask, you need to change the account in MetaMask."
+msgstr ""
+
+#: ../../run.md:60
+msgid "Gas Limit:"
+msgstr ""
+
+#: ../../run.md:62
+msgid "This sets the maximum amount of gas that will be allowed for all the transactions created in Remix."
+msgstr ""
+
+#: ../../run.md:65
+msgid "Value:"
+msgstr ""
+
+#: ../../run.md:67
+msgid "This sets the amount of ETH, WEI, GWEI etc that is sent to a contract or a payable function. ( Note: payable functions have a red button). The value is always reset to 0 after each transaction execution). The Value field is NOT for gas."
+msgstr ""
+
+#: ../../run.md:71
+msgid "Initiate Instance"
+msgstr ""
+
+#: ../../run.md:74
+msgid "In the image above, the select box is set to Ballot. This select box will contain the list of compiled contracts."
+msgstr ""
+
+#: ../../run.md:76
+msgid "Deploy send a transaction that deploys the selected contract. When the transaction is mined, the newly created instance will be added (this might take several seconds). Note that if the constructor has parameters, you need to specify them."
+msgstr ""
+
+#: ../../run.md:81
+msgid "At Address this is used at access a contract that has already been deployed. It assumes that the given address is an instance of the selected contract. Note: There's no check at this point, so be careful when using this feature, and be sure you trust the contract at that address."
+msgstr ""
+
+#: ../../run.md:84
+msgid "Pending Instances"
+msgstr ""
+
+#: ../../run.md:87
+msgid "Validating a transaction takes several seconds. During this time, the GUI shows it in a pending mode. When the transaction is mined, the number of pending transactions is updated and the transaction is added to the log (see terminal)."
+msgstr ""
+
+#: ../../run.md:92
+msgid "Using the ABI"
+msgstr ""
+
+#: ../../run.md:95
+msgid "Using Deploy or At Address is a classic use case of Remix. However, it is possible to interact with a contract by using its ABI. The ABI is a JSON array which describe its interface."
+msgstr ""
+
+#: ../../run.md:99
+msgid "To interact with a contract using the ABI, create a new file in Remix with extension *.abi and copy the ABI content to it. Then, in the input next to At Address, put the Address of the contract you want to interact with. Click on At Address, a new \"connection\" with the contract will popup below."
+msgstr ""
+
+#: ../../run.md:105
+msgid "Using the Recorder"
+msgstr ""
+
+#: ../../run.md:108
+msgid "The Recorder is a tool used to save a bunch of transactions in a JSON file and rerun them later either in the same environment or in another."
+msgstr ""
+
+#: ../../run.md:111
+msgid "Saving to the JSON file ( by default its called scenario.json) allows one to easily check the transaction list, tweak input parameters, change linked library, etc..."
+msgstr ""
+
+#: ../../run.md:113
+msgid "There are many use cases for the recorder."
+msgstr ""
+
+#: ../../run.md:115
+msgid "For instance:"
+msgstr ""
+
+#: ../../run.md:117
+msgid "After having coded and tested contracts in a constrained environment (like the JavaScript VM), you could then change the environment and redeploy it to a more realistic environment like a test net with an injected web3 or to a Geth node. By using the generated scenario.json file, you will be using all the same settings that you used in the Javascript VM. And this mean that you won't need to click the interface 100 times or whatever to get the state that you achieved originally. So the recorder could be a tool to protect your sanity."
+msgstr ""
+
+#: ../../run.md:120
+msgid "You can also change the settings in the scenario.json file to customize the playback."
+msgstr ""
+
+#: ../../run.md:122
+msgid "Deploying contract does often require more than creating one transaction and so the recorder will automate this deployment."
+msgstr ""
+
+#: ../../run.md:125
+msgid "Working in a dev environment often requires to setup the state in a first place."
+msgstr ""
+
+#: ../../run.md:130
+msgid "scenario.json"
+msgstr ""
+
+#: ../../run.md:131
+msgid "To create this file in the recorder, you first of course need to have run some transactions. In the image above - it has a 0 next to Transactions Recorded. So this isn't the right moment to save transactions because - well because there aren't any. Each time you make a transaction, that number will increment. Then when you are ready, click the floppy disk icon and the scenario.json file will be created."
+msgstr ""
+
+#: ../../run.md:133
+msgid "The JSON file below is an example of the scenario.json file."
+msgstr ""
+
+#: ../../run.md:135
+msgid "In it, 3 transactions are executed:"
+msgstr ""
+
+#: ../../run.md:137
+msgid "The first corresponds to the deployment of the lib testLib."
+msgstr ""
+
+#: ../../run.md:139
+msgid "The second corresponds to the deployment of the contract test with the first parameter of the constructor set to 11. That contract depends on a library. The linkage is done using the property linkReferences. In that case we use the address of the previously created library : created{1512830014773}. The number is the id (timestamp) of the transaction that led to the creation of the library."
+msgstr ""
+
+#: ../../run.md:146
+msgid "The third record corresponds to the call to the function set of the contract test (the property to is set to: created{1512830015080}) . Input parameters are 1 and 0xca35b7d915458ef540ade6068dfe2f44e8fa733c"
+msgstr ""
+
+#: ../../run.md:151
+msgid "All these transactions are created using the value of the accounts account{0}."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../settings.md:1
+msgid "Settings"
+msgstr ""
+
+#: ../../settings.md:4
+msgid "To get to Settings click the gear a the very bottom of the icon panel."
+msgstr ""
+
+#: ../../settings.md:6
+msgid "You can find a link to the homepage (if you closed it) as well as a link to our Gitter Channel and for you aesthetes out there, we now have a rather large list of themes."
+msgstr ""
+
+#: ../../settings.md:10
+msgid "Another important settings:"
+msgstr ""
+
+#: ../../settings.md:12
+msgid "Text wrap: controls if the text in the editor should be wrapped."
+msgstr ""
+
+#: ../../settings.md:14
+msgid "Enable optimization: defines if the compiler should enable optimization during compilation. Enabling this option saves execution gas. It is useful to enable optimization for contracts ready to be deployed in production but could lead to some inconsistencies when debugging such a contract."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../solidity_editor.md:1
+msgid "Solidity Editor"
+msgstr ""
+
+#: ../../solidity_editor.md:4
+msgid "The Remix editor recompiles the code each time the current file is changed or another file is selected. It also provides syntax highlighting mapped to solidity keywords."
+msgstr ""
+
+#: ../../solidity_editor.md:10
+msgid "Here's the list of some important features:"
+msgstr ""
+
+#: ../../solidity_editor.md:12
+msgid "It display opened files as tabs."
+msgstr ""
+
+#: ../../solidity_editor.md:13
+msgid "Compilation Warning and Error are displayed in the gutter"
+msgstr ""
+
+#: ../../solidity_editor.md:14
+msgid "Remix saves the current file continuously (5s after the last changes)"
+msgstr ""
+
+#: ../../solidity_editor.md:16
+msgid "+/- on the top left corner enable you to increase/decrease the font size of the editor"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../static_analysis.md:1
+msgid "Solidity Static Analysis"
+msgstr ""
+
+#: ../../static_analysis.md:4
+msgid "Static code analysis is a process to debug the code by examining it and without actually executing the code."
+msgstr ""
+
+#: ../../static_analysis.md:6
+msgid "Solidity Static Analysis plugin performs static analysis on Solidity smart contracts once they are compiled. It checks for security vulnerabilities and bad development practices, among other issues. This plugin comes with Solidity environment of Remix IDE. It can also be activated individually from Plugin Manager."
+msgstr ""
+
+#: ../../static_analysis.md:8
+msgid "How to use"
+msgstr ""
+
+#: ../../static_analysis.md:11
+msgid "If you select this plugin, you will see a number of modules listed along with checkboxes, one Auto run checkbox and a Run button."
+msgstr ""
+
+#: ../../static_analysis.md:15
+msgid "By default, all modules are selected for analysis and a new analysis is performed at each compilation."
+msgstr ""
+
+#: ../../static_analysis.md:17
+msgid "One can select/deselect the modules under which contract should be analyzed and can run the analysis again for last compiled contract by clicking on Run."
+msgstr ""
+
+#: ../../static_analysis.md:19
+msgid "If you don't want to run analysis each time you compile a contract, just uncheck the checkbox near to Auto run."
+msgstr ""
+
+#: ../../static_analysis.md:21
+msgid "Analysis Modules"
+msgstr ""
+
+#: ../../static_analysis.md:23
+msgid "Currently, with Remix IDE v0.10.1, there are 21 analysis modules listed under 4 categories. Categories are: Security, Gas & Economy, ERC & Miscellaneous."
+msgstr ""
+
+#: ../../static_analysis.md:25
+msgid "Here is the list of modules under each category along with the example code which should be avoided or used very carefully while development:"
+msgstr ""
+
+#: ../../static_analysis.md:27
+msgid "Category: Security"
+msgstr ""
+
+#: ../../static_analysis.md:28
+msgid "Transaction origin: 'tx.origin' is used"
+msgstr ""
+
+#: ../../static_analysis.md:30
+msgid "tx.origin is useful only in very exceptional cases. If you use it for authentication, you usually want to replace it by \"msg.sender\", because otherwise any contract you call can act on your behalf."
+msgstr ""
+
+#: ../../static_analysis.md:32
+#: ../../static_analysis.md:41
+#: ../../static_analysis.md:54
+#: ../../static_analysis.md:65
+#: ../../static_analysis.md:78
+#: ../../static_analysis.md:87
+#: ../../static_analysis.md:95
+#: ../../static_analysis.md:105
+#: ../../static_analysis.md:119
+#: ../../static_analysis.md:136
+#: ../../static_analysis.md:150
+#: ../../static_analysis.md:168
+#: ../../static_analysis.md:194
+#: ../../static_analysis.md:207
+#: ../../static_analysis.md:217
+#: ../../static_analysis.md:229
+#: ../../static_analysis.md:239
+#: ../../static_analysis.md:247
+#: ../../static_analysis.md:257
+#: ../../static_analysis.md:269
+#: ../../static_analysis.md:284
+msgid "Example:"
+msgstr ""
+
+#: ../../static_analysis.md:37
+msgid "Check effects: Potential reentrancy bugs"
+msgstr ""
+
+#: ../../static_analysis.md:39
+msgid "Potential Violation of Checks-Effects-Interaction pattern can lead to re-entrancy vulnerability."
+msgstr ""
+
+#: ../../static_analysis.md:50
+msgid "Inline assembly: Inline assembly used"
+msgstr ""
+
+#: ../../static_analysis.md:52
+msgid "Use of inline assembly is advised only in rare cases."
+msgstr ""
+
+#: ../../static_analysis.md:61
+msgid "Block timestamp: Semantics maybe unclear"
+msgstr ""
+
+#: ../../static_analysis.md:63
+msgid "now does not mean current time. now is an alias for block.timestamp. block.timestamp can be influenced by miners to a certain degree, be careful."
+msgstr ""
+
+#: ../../static_analysis.md:74
+msgid "Low level calls: Semantics maybe unclear"
+msgstr ""
+
+#: ../../static_analysis.md:76
+msgid "Use of low level call, callcode or delegatecall should be avoided whenever possible. send does not throw an exception when not successful, make sure you deal with the failure case accordingly. Use transfer whenever failure of the ether transfer should rollback the whole transaction."
+msgstr ""
+
+#: ../../static_analysis.md:83
+msgid "Blockhash usage: Semantics maybe unclear"
+msgstr ""
+
+#: ../../static_analysis.md:85
+msgid "blockhash is used to access the last 256 block hashes. A miner computes the block hash by \"summing up\" the information in the current block mined. By summing up the information in a clever way a miner can try to influence the outcome of a transaction in the current block."
+msgstr ""
+
+#: ../../static_analysis.md:91
+msgid "Selfdestruct: Beware of caller contracts"
+msgstr ""
+
+#: ../../static_analysis.md:93
+msgid "selfdestruct can block calling contracts unexpectedly. Be especially careful if this contract is planned to be used by other contracts (i.e. library contracts, interactions). Selfdestruction of the callee contract can leave callers in an inoperable state."
+msgstr ""
+
+#: ../../static_analysis.md:100
+msgid "Category: Gas & Economy"
+msgstr ""
+
+#: ../../static_analysis.md:101
+msgid "Gas costs: Too high gas requirement of functions"
+msgstr ""
+
+#: ../../static_analysis.md:103
+msgid "If the gas requirement of a function is higher than the block gas limit, it cannot be executed. Please avoid loops in your functions or actions that modify large areas of storage"
+msgstr ""
+
+#: ../../static_analysis.md:115
+msgid "This on local calls: Invocation of local functions via 'this'"
+msgstr ""
+
+#: ../../static_analysis.md:117
+msgid "Never use this to call functions in the same contract, it only consumes more gas than normal local calls."
+msgstr ""
+
+#: ../../static_analysis.md:132
+msgid "Delete on dynamic Array: Use require/assert appropriately"
+msgstr ""
+
+#: ../../static_analysis.md:134
+msgid "The delete operation when applied to a dynamically sized array in Solidity generates code to delete each of the elements contained. If the array is large, this operation can surpass the block gas limit and raise an OOG exception. Also nested dynamically sized objects can produce the same results."
+msgstr ""
+
+#: ../../static_analysis.md:146
+msgid "For loop over dynamic array: Iterations depend on dynamic array's size"
+msgstr ""
+
+#: ../../static_analysis.md:148
+msgid "Loops that do not have a fixed number of iterations, for example, loops that depend on storage values, have to be used carefully: Due to the block gas limit, transactions can only consume a certain amount of gas. The number of iterations in a loop can grow beyond the block gas limit which can stall the complete contract at a certain point. Additionally, using unbounded loops can incur in a lot of avoidable gas costs. Carefully test how many items at maximum you can pass to such functions to make it successful."
+msgstr ""
+
+#: ../../static_analysis.md:164
+msgid "Ether transfer in loop: Transferring Ether in a for/while/do-while loop"
+msgstr ""
+
+#: ../../static_analysis.md:166
+msgid "Ether payout should not be done in a loop. Due to the block gas limit, transactions can only consume a certain amount of gas. The number of iterations in a loop can grow beyond the block gas limit which can cause the complete contract to be stalled at a certain point. If required, make sure that number of iterations are low and you trust each address involved."
+msgstr ""
+
+#: ../../static_analysis.md:189
+msgid "Category: ERC"
+msgstr ""
+
+#: ../../static_analysis.md:190
+msgid "ERC20: 'decimals' should be 'uint8'"
+msgstr ""
+
+#: ../../static_analysis.md:192
+msgid "ERC20 Contracts decimals function should have uint8 as return type."
+msgstr ""
+
+#: ../../static_analysis.md:202
+msgid "Category: Miscellaneous"
+msgstr ""
+
+#: ../../static_analysis.md:203
+msgid "Constant/View/Pure functions: Potentially constant/view/pure functions"
+msgstr ""
+
+#: ../../static_analysis.md:205
+msgid "It warns for the methods which potentially should be constant/view/pure but are not."
+msgstr ""
+
+#: ../../static_analysis.md:213
+msgid "Similar variable names: Variable names are too similar"
+msgstr ""
+
+#: ../../static_analysis.md:215
+msgid "It warns on the usage of similar variable names."
+msgstr ""
+
+#: ../../static_analysis.md:225
+msgid "No return: Function with 'returns' not returning"
+msgstr ""
+
+#: ../../static_analysis.md:227
+msgid "It warns for the methods which define a return type but never explicitly return a value."
+msgstr ""
+
+#: ../../static_analysis.md:235
+msgid "Guard conditions: Use 'require' and 'assert' appropriately"
+msgstr ""
+
+#: ../../static_analysis.md:237
+msgid "Use assert(x) if you never ever want x to be false, not in any circumstance (apart from a bug in your code). Use require(x) if x can be false, due to e.g. invalid input or a failing external component."
+msgstr ""
+
+#: ../../static_analysis.md:243
+msgid "Result not used: The result of an operation not used"
+msgstr ""
+
+#: ../../static_analysis.md:245
+msgid "A binary operation yields a value that is not used in the following. This is often caused by confusing assignment (=) and comparison (==)."
+msgstr ""
+
+#: ../../static_analysis.md:253
+msgid "String Length: Bytes length != String length"
+msgstr ""
+
+#: ../../static_analysis.md:255
+msgid "Bytes and string length are not the same since strings are assumed to be UTF-8 encoded (according to the ABI defintion) therefore one character is not nessesarily encoded in one byte of data."
+msgstr ""
+
+#: ../../static_analysis.md:265
+msgid "Delete from dynamic array: 'delete' on an array leaves a gap"
+msgstr ""
+
+#: ../../static_analysis.md:267
+msgid "Using delete on an array leaves a gap. The length of the array remains the same. If you want to remove the empty position you need to shift items manually and update the length property."
+msgstr ""
+
+#: ../../static_analysis.md:280
+msgid "Data Truncated: Division on int/uint values truncates the result"
+msgstr ""
+
+#: ../../static_analysis.md:282
+msgid "Division of integer values yields an integer value again. That means e.g. 10 / 100 = 0 instead of 0.1 since the result is an integer again. This does not hold for division of (only) literal values since those yield rational constants."
+msgstr ""
+
+#: ../../static_analysis.md:292
+msgid "Remix-analyzer"
+msgstr ""
+
+#: ../../static_analysis.md:294
+msgid "remix-analyzer is the library which works underneath of remix-ide Solidity Static Analysis plugin."
+msgstr ""
+
+#: ../../static_analysis.md:296
+msgid "remix-analyzer is an NPM package. It can be used as a library in a solution supporting node.js. Find more information about this type of usage in the remix-analyzer repository"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../support.md:1
+msgid "Support chat"
+msgstr ""
+
+#: ../../support.md:4
+msgid "We know that blockchain ecosystem is very new and that lots of information is scattered around the web. That is why we created a community support chat where we and other users try to answer your questions if you get stuck using Remix. Please, join the Remix channel and ask the community for help."
+msgstr ""
+
+#: ../../support.md:8
+msgid "For anyone who is interested in developing a custom plugin for Remix or who wants to contribute to the codebase, we've opened another channel specially for developers working on Remix tool."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../terminal.md:1
+msgid "Terminal"
+msgstr ""
+
+#: ../../terminal.md:6
+msgid "Features, available in the terminal:"
+msgstr ""
+
+#: ../../terminal.md:8
+msgid "It integrates a JavaScript interpreter and the web3 object. It enables the execution of the JavaScript script which interacts with the current context. (note that web3 is only available if the web provider or injected provider mode is selected)."
+msgstr ""
+
+#: ../../terminal.md:12
+msgid "It displays important actions made while interacting with the Remix IDE (i.e. sending a new transaction)."
+msgstr ""
+
+#: ../../terminal.md:14
+msgid "It displays transactions that are mined in the current context. You can choose to display all transactions or only transactions that refers to the contracts Remix knows (e.g transaction created from the Remix IDE)."
+msgstr ""
+
+#: ../../terminal.md:18
+msgid "It allows searching for the data and clearing the logs from the terminal."
+msgstr ""
+
+#: ../../terminal.md:20
+msgid "You can run scripts by inputting them at the bottom after the >."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../tutorial_debug.md:1
+msgid "Debugging Transactions"
+msgstr ""
+
+#: ../../tutorial_debug.md:4
+msgid "There are two ways to start debugging, each one corresponds to a different use case."
+msgstr ""
+
+#: ../../tutorial_debug.md:5
+msgid "from the transaction log in the Terminal - use this when you want to debug a transaction."
+msgstr ""
+
+#: ../../tutorial_debug.md:6
+msgid "from the Debugger - use this if you have a transaction hash."
+msgstr ""
+
+#: ../../tutorial_debug.md:8
+msgid "Initiate Debugging from the transaction log in the Terminal"
+msgstr ""
+
+#: ../../tutorial_debug.md:9
+msgid "Let's start with a basic contract ( or replace this one by your own ) :"
+msgstr ""
+
+#: ../../tutorial_debug.md:10
+msgid "create a blank file in the file explorer (by clicking the + icon) and give it a name."
+msgstr ""
+
+#: ../../tutorial_debug.md:11
+msgid "copy the code below."
+msgstr ""
+
+#: ../../tutorial_debug.md:12
+msgid "compile the code."
+msgstr ""
+
+#: ../../tutorial_debug.md:13
+msgid "click the Run & Deploy icon in the icon panel."
+msgstr ""
+
+#: ../../tutorial_debug.md:53
+msgid "For the purpose of this tutorial, we will run the JavaScript VM. This simulates a custom blockchain. You could do the same using a proper backend node."
+msgstr ""
+
+#: ../../tutorial_debug.md:56
+msgid "Let's deploy the contract:"
+msgstr ""
+
+#: ../../tutorial_debug.md:58
+msgid "Click the Deploy button"
+msgstr ""
+
+#: ../../tutorial_debug.md:62
+msgid "You'll see the deployed instance (AKA the udapp)."
+msgstr ""
+
+#: ../../tutorial_debug.md:66
+msgid "Then open it up (by clicking the caret)."
+msgstr ""
+
+#: ../../tutorial_debug.md:71
+msgid "We are going to call the Donate function and will send it ether."
+msgstr ""
+
+#: ../../tutorial_debug.md:73
+msgid "To do this: in the value input box put in 2 and select Ether as the unit (and not wei like I did in the image below - well you could - it won't really change anything)."
+msgstr ""
+
+#: ../../tutorial_debug.md:77
+msgid "Then click the Donate button."
+msgstr ""
+
+#: ../../tutorial_debug.md:79
+msgid "This will send Ether to the this function."
+msgstr ""
+
+#: ../../tutorial_debug.md:81
+msgid "Because we are using the JavaScript VM, everything happens almost instantly. (If we had been using Injected Web 3, then we would have to need to approve the transaction, pay for gas and wait for the transaction to get mined.)"
+msgstr ""
+
+#: ../../tutorial_debug.md:83
+msgid "Remix displays information related to each transaction result in the terminal."
+msgstr ""
+
+#: ../../tutorial_debug.md:85
+msgid "Check in the terminal where the transaction you just made is logged."
+msgstr ""
+
+#: ../../tutorial_debug.md:87
+msgid "Click the debug button to start debugging it."
+msgstr ""
+
+#: ../../tutorial_debug.md:91
+msgid "Before we get to the actual debugging tool, the next section show how to start debugging session directly from the Debugger."
+msgstr ""
+
+#: ../../tutorial_debug.md:93
+msgid "Initiate Debugging from the Debugger"
+msgstr ""
+
+#: ../../tutorial_debug.md:95
+msgid "Click the bug icon in the icon panel to get to the debugger in the side panel."
+msgstr ""
+
+#: ../../tutorial_debug.md:97
+msgid "If you don't see the bug icon, go to the plugin manager and activate the debugger."
+msgstr ""
+
+#: ../../tutorial_debug.md:99
+msgid "You can start a debug session by providing a transaction hash."
+msgstr ""
+
+#: ../../tutorial_debug.md:101
+msgid "To find a transaction hash:"
+msgstr ""
+
+#: ../../tutorial_debug.md:102
+msgid "Go to a transaction in the terminal."
+msgstr ""
+
+#: ../../tutorial_debug.md:103
+msgid "Click a line with a transaction - to exand the log."
+msgstr ""
+
+#: ../../tutorial_debug.md:104
+msgid "The transaction hash is there - copy it."
+msgstr ""
+
+#: ../../tutorial_debug.md:108
+msgid "Then click in the debugger paste the hash and click on the Start debugging button."
+msgstr ""
+
+#: ../../tutorial_debug.md:112
+msgid "Using the debugger"
+msgstr ""
+
+#: ../../tutorial_debug.md:117
+msgid "The debugger allows one to see detailed informations about the transaction's execution. It uses the editor to display the location in the source code where the current execution is."
+msgstr ""
+
+#: ../../tutorial_debug.md:121
+msgid "The navigation part contains a slider and buttons that can be used to step through the transaction execution."
+msgstr ""
+
+#: ../../tutorial_debug.md:125
+msgid "More explaination of what these buttons do."
+msgstr ""
+
+#: ../../tutorial_debug.md:126
+msgid "Step Into"
+msgstr ""
+
+#: ../../tutorial_debug.md:127
+msgid "Step Over Into"
+msgstr ""
+
+#: ../../tutorial_debug.md:130
+msgid "11 panels give detailed information about the execution:"
+msgstr ""
+
+#: ../../tutorial_debug.md:132
+msgid "Instructions"
+msgstr ""
+
+#: ../../tutorial_debug.md:134
+msgid "The Instructions panel displays the bytecode of the current executing contract- with the current step highlighted."
+msgstr ""
+
+#: ../../tutorial_debug.md:137
+msgid "Important note: When this panel is hidden, the slider will have a courser granularity and only stop at expression boundaries, even if they are compiled into multiple EVM instructions. When the panel is displayed, it will be possible to step over every instruction, even those that refers to the same expression."
+msgstr ""
+
+#: ../../tutorial_debug.md:143
+msgid "Solidity Locals"
+msgstr ""
+
+#: ../../tutorial_debug.md:145
+msgid "The Solidity Locals panel displays local variables associated with the current context."
+msgstr ""
+
+#: ../../tutorial_debug.md:148
+msgid "Solidity State"
+msgstr ""
+
+#: ../../tutorial_debug.md:150
+msgid "The Solidity State panel displays state variables of the current executing contract."
+msgstr ""
+
+#: ../../tutorial_debug.md:153
+msgid "Low level panels"
+msgstr ""
+
+#: ../../tutorial_debug.md:155
+msgid "These panels display low level informations about the execution:"
+msgstr ""
+
+#: ../../tutorial_debug.md:157
+msgid "Stack"
+msgstr ""
+
+#: ../../tutorial_debug.md:158
+msgid "Storages Changes"
+msgstr ""
+
+#: ../../tutorial_debug.md:159
+msgid "Memory"
+msgstr ""
+
+#: ../../tutorial_debug.md:160
+msgid "Call Data"
+msgstr ""
+
+#: ../../tutorial_debug.md:161
+msgid "Call Stack"
+msgstr ""
+
+#: ../../tutorial_debug.md:162
+msgid "Return Value (only if the current step is a RETURN opcode)"
+msgstr ""
+
+#: ../../tutorial_debug.md:163
+msgid "Full Storages Changes (only at the end of the execution - display every storage change of every modified contract)"
+msgstr ""
+
+#: ../../tutorial_debug.md:166
+msgid "Reverted Transaction"
+msgstr ""
+
+#: ../../tutorial_debug.md:168
+msgid "A transaction can be reverted (because of an out of gas exception or Solidity revert statement or because of a low level exception)."
+msgstr ""
+
+#: ../../tutorial_debug.md:171
+msgid "It is important to be aware of the exception and to locate where the exception is in the source code."
+msgstr ""
+
+#: ../../tutorial_debug.md:174
+msgid "Remix will warn you when the execution throws an exception. The warning button will jump to the last opcode before the exception happened."
+msgstr ""
+
+#: ../../tutorial_debug.md:178
+msgid "Breakpoints"
+msgstr ""
+
+#: ../../tutorial_debug.md:180
+msgid "The two last buttons from the navigation area are used to jump either back to the previous breakpoint or forward to the next breakpoint."
+msgstr ""
+
+#: ../../tutorial_debug.md:183
+msgid "Breakpoints can be added and removed by clicking on the line number in the Editor."
+msgstr ""
+
+#: ../../tutorial_debug.md:185
+msgid "When using debug session with breakpoints, the execution will jump to the first encountered breakpoint."
+msgstr ""
+
+#: ../../tutorial_debug.md:188
+msgid "Important note: If you add a breakpoint to a line that declares a variable, it might be triggered twice: Once for initializing the variable to zero and second time for assigning the actual value. As an example, assume you are debugging the following contract:"
+msgstr ""
+
+#: ../../tutorial_debug.md:206
+msgid "And let's says that breakpoints are set for the lines"
+msgstr ""
+
+#: ../../tutorial_debug.md:208
+msgid "uint p = 45;"
+msgstr ""
+
+#: ../../tutorial_debug.md:210
+msgid "m = 89;"
+msgstr ""
+
+#: ../../tutorial_debug.md:212
+msgid "uint l = 34;"
+msgstr ""
+
+#: ../../tutorial_debug.md:214
+msgid "then clicking on Jump to next breakpoint will stop at the following lines in the given order:"
+msgstr ""
+
+#: ../../tutorial_debug.md:217
+msgid "uint p = 45; (declaration of p)"
+msgstr ""
+
+#: ../../tutorial_debug.md:219
+msgid "uint l = 34; (declaration of l)"
+msgstr ""
+
+#: ../../tutorial_debug.md:221
+msgid "uint p = 45; (45 assigned to p)"
+msgstr ""
+
+#: ../../tutorial_debug.md:223
+msgid "m = 89; (89 assigned to m)"
+msgstr ""
+
+#: ../../tutorial_debug.md:225
+msgid "uint l = 34; (34 assigned to l)"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../udapp.md:1
+msgid "Run & Deploy (part 2)"
+msgstr ""
+
+#: ../../udapp.md:4
+msgid "Deployed contracts"
+msgstr ""
+
+#: ../../udapp.md:6
+msgid "This section in the Run tab contains a list of deployed contracts to interact with through autogenerated UI of the deployed contract (also called udapp)."
+msgstr ""
+
+#: ../../udapp.md:8
+msgid "The deployed contract appears but is in its collapsed form."
+msgstr ""
+
+#: ../../udapp.md:12
+msgid "Click the sideways caret to open it up."
+msgstr ""
+
+#: ../../udapp.md:16
+msgid "You will see the functions in the contract. The functions buttons can have different color buttons."
+msgstr ""
+
+#: ../../udapp.md:18
+msgid "Functions that are constant or pure functions in Solidity have a blue buttons. Clicking one of this type does not create a new transaction. So clicking will not cause state changes - it will only return a value stored in the contract - so it won't cost you anything in gas fees."
+msgstr ""
+
+#: ../../udapp.md:20
+msgid "Functions that change the state of the contract AND that do not accept Ether are called non-payable functions and have an orange button. Clicking on them will create a transaction and thus cost gas."
+msgstr ""
+
+#: ../../udapp.md:22
+msgid "Functions that have red buttons are payable functions in Solidity. Clicking one of these will create a new transaction and this transaction can accept a value. The value is put in in the Value field which is under the Gas Limit field."
+msgstr ""
+
+#: ../../udapp.md:27
+msgid "See more information about Solidity modifiers in the Solidity docs. ."
+msgstr ""
+
+#: ../../udapp.md:31
+msgid "If a function requires input parameters, well.. you gotta put them in."
+msgstr ""
+
+#: ../../udapp.md:33
+msgid "Inputting parameters"
+msgstr ""
+
+#: ../../udapp.md:37
+msgid "Inputting parameters in the collapsed view"
+msgstr ""
+
+#: ../../udapp.md:39
+msgid "(Inputting all the parameters in a single input box)"
+msgstr ""
+
+#: ../../udapp.md:40
+msgid "The input box tells you what type each parameter needs to be."
+msgstr ""
+
+#: ../../udapp.md:41
+msgid "Numbers and addresses do not need to be wrapped in double quotes."
+msgstr ""
+
+#: ../../udapp.md:42
+msgid "Strings need to be wrapped."
+msgstr ""
+
+#: ../../udapp.md:43
+msgid "Parameters are separated by commas."
+msgstr ""
+
+#: ../../udapp.md:45
+msgid "In the example above the \"delegate\" function has 3 parameters."
+msgstr ""
+
+#: ../../udapp.md:47
+msgid "Inputting parameters in the expanded view"
+msgstr ""
+
+#: ../../udapp.md:48
+msgid "Clicking the 'down' caret brings you to the Multi-param Manager - where you can input the parameters one at a time. Much less confusing!"
+msgstr ""
+
+#: ../../udapp.md:52
+msgid "In the expanded view, strings do not need to be wrapped."
+msgstr ""
+
+#: ../../udapp.md:54
+msgid "Clicking the clipboard icon will encode the inputs and will copy them. Only a valid set of inputs can be encoded."
+msgstr ""
+
+#: ../../udapp.md:56
+msgid "So if you made a mistake and put a uint8 where an address should have been, clicking the clipboard here will give you an error."
+msgstr ""
+
+#: ../../udapp.md:58
+msgid "Low level interactions"
+msgstr ""
+
+#: ../../udapp.md:60
+msgid "Low level interactions are used to send funds or calldata or funds & calldata to a contract through the recieve() or fallback() function. Typically, you should only need to implement the fallback function if you are following an upgrade or proxy pattern."
+msgstr ""
+
+#: ../../udapp.md:62
+msgid "The low level interactions section is below the functions in each deployed contract."
+msgstr ""
+
+#: ../../udapp.md:67
+msgid "Please note the following:"
+msgstr ""
+
+#: ../../udapp.md:69
+msgid "If you are executing a plain Ether transfer to a contract, you need to have the receive() function in your contract. If your contract has been deployed and you want to send it funds, you would input the amount of Ether or Wei etc. (see A in graphic below), and then input NOTHING in the calldata field of Low level interactions (see B in graphic) and click the Transact button (see C in graphic below)."
+msgstr ""
+
+#: ../../udapp.md:73
+msgid "If you are sending calldata to your contract with Ether, then you need to use the fallback() function and have it with the state mutability of payable."
+msgstr ""
+
+#: ../../udapp.md:75
+msgid "If you are not sending ether to the contract but are sending call data then you need to use the fallback() function."
+msgstr ""
+
+#: ../../udapp.md:77
+msgid "If you break the rules when using the Low level interactions you will be slapped with a warning."
+msgstr ""
+
+#: ../../udapp.md:79
+msgid "Please see the solidity docs for more specifics about using the fallback and receive functions."
+msgstr ""
+
+#: ../../udapp.md:81
+msgid "Passing in a tuple or a struct to a function"
+msgstr ""
+
+#: ../../udapp.md:82
+msgid "To pass a tuple in, you need to put in an array []."
+msgstr ""
+
+#: ../../udapp.md:84
+msgid "Similarly, to pass in a struct as a parameter of a function, it needs to be put in as an array []. Also note that the line pragma experimental ABIEncoderV2; needs to put in at the top of the solidity file."
+msgstr ""
+
+#: ../../udapp.md:88
+msgid "Example of passing nested struct to a function"
+msgstr ""
+
+#: ../../udapp.md:89
+msgid "Consider a nested struct defined like this:"
+msgstr ""
+
+#: ../../udapp.md:101
+msgid "If a function has the signature fertilizer(Garden memory gardenPlot) then the correct syntax is:"
+msgstr ""
+
+#: ../../udapp.md:106
+msgid "To continue on this example, here's a sample contract:"
+msgstr ""
+
+#: ../../udapp.md:133
+msgid "After compiling, deploying the contract and opening up the deployed instance, we can then add the following input parameters to the function named fertilizer :"
+msgstr ""
+
+#: ../../udapp.md:139
+msgid "The function fertilizer accepts a single parameter of the type Garden. The type Garden is a struct. Structs are wrapped in square brackets. Inside Garden is an array that is an array of structs named theFlowers. It gets a set of brackets for the array and another set for the struct. Thus the double square brackets."
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../unittesting_examples.md:1
+msgid "Testing by Example"
+msgstr ""
+
+#: ../../unittesting_examples.md:4
+msgid "Here are some examples which can give you better understanding to plan your tests."
+msgstr ""
+
+#: ../../unittesting_examples.md:6
+msgid "Note: Examples in this section are intended to give you a push for development. We don't recommend to rely on them without verifying at your end."
+msgstr ""
+
+#: ../../unittesting_examples.md:8
+msgid "1. Simple example"
+msgstr ""
+
+#: ../../unittesting_examples.md:9
+msgid "In this example, we test setting & getting variables."
+msgstr ""
+
+#: ../../unittesting_examples.md:11
+msgid "Contract/Program to be tested: Simple_storage.sol"
+msgstr ""
+
+#: ../../unittesting_examples.md:32
+msgid "Test contract/program: simple_storage_test.sol"
+msgstr ""
+
+#: ../../unittesting_examples.md:60
+msgid "2. Testing a method involving msg.sender"
+msgstr ""
+
+#: ../../unittesting_examples.md:61
+msgid "In Solidity, msg.sender plays a great role in access management of a smart contract methods interaction. Different msg.sender can help to test a contract involving multiple accounts with different roles. Here is an example for testing such case:"
+msgstr ""
+
+#: ../../unittesting_examples.md:63
+msgid "Contract/Program to be tested: Sender.sol"
+msgstr ""
+
+#: ../../unittesting_examples.md:85
+msgid "Test contract/program: Sender_test.sol"
+msgstr ""
+
+#: ../../unittesting_examples.md:137
+msgid "3. Testing method execution"
+msgstr ""
+
+#: ../../unittesting_examples.md:139
+msgid "With Solidity, one can directly verify the changes made by a method in storage by retrieving those variables from a contract. But testing for a successful method execution takes some strategy. Well that is not entirely true, when a test is successful - it is usually obvious why it passed. However, when a test fails, it is essential to understand why it failed."
+msgstr ""
+
+#: ../../unittesting_examples.md:141
+msgid "To help in such cases, Solidity introduced the try-catch statement in version 0.6.0. Previously, we had to use low-level calls to track down what was going on."
+msgstr ""
+
+#: ../../unittesting_examples.md:143
+msgid "Here is an example test file that use both try-catch blocks and low level calls:"
+msgstr ""
+
+#: ../../unittesting_examples.md:145
+msgid "Contract/Program to be tested: AttendanceRegister.sol"
+msgstr ""
+
+#: ../../unittesting_examples.md:174
+msgid "Test contract/program: AttendanceRegister_test.sol"
+msgstr ""
+
+#: ../../unittesting_examples.md:262
+msgid "4. Testing a method involving msg.value"
+msgstr ""
+
+#: ../../unittesting_examples.md:263
+msgid "In Solidity, ether can be passed along with a method call which is accessed inside contract as msg.value. Sometimes, multiple calculations in a method are performed based on msg.value which can be tested with various values using Remix's Custom transaction context. See the example:"
+msgstr ""
+
+#: ../../unittesting_examples.md:265
+msgid "Contract/Program to be tested: Value.sol"
+msgstr ""
+
+#: ../../unittesting_examples.md:285
+msgid "Test contract/program: Value_test.sol"
+msgstr ""
+
+msgid ""
+msgstr ""
+"Project-Id-Version: Remix, Ethereum-IDE 1\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2020-10-21 10:25+0200\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n"
+
+#: ../../unittesting.md:1
+msgid "Unit Testing Plugin"
+msgstr ""
+
+#: ../../unittesting.md:4
+msgid "Click the double check icon to get to the Solidity Unit Testing plugin."
+msgstr ""
+
+#: ../../unittesting.md:8
+msgid "If you haven't used this plugin before and are not seeing double check icon, you have to activate it from Remix plugin manager."
+msgstr ""
+
+#: ../../unittesting.md:10
+msgid "Go to the plugin manager (by click the plug icon) and load up the unit testing plugin."
+msgstr ""
+
+#: ../../unittesting.md:14
+msgid "Now double check icon will appear on the left side icon bar. Clicking on icon will load the unit testing module in the side panel."
+msgstr ""
+
+#: ../../unittesting.md:16
+msgid "Alternatively, just select Solidity environment from remix IDE home page. This will activate Solidity Unit Testing plugin along with Solidity Compiler, Deploy & Run Transactions & Solidity Static Analysis plugins."
+msgstr ""
+
+#: ../../unittesting.md:20
+msgid "Generate"
+msgstr ""
+
+#: ../../unittesting.md:22
+msgid "Select a solidity file which you want to test and click on the button Generate. It will generate a new sample solidity test file in the current folder suffixed with _test. This file contains the minimum you need for running unit testing."
+msgstr ""
+
+#: ../../unittesting.md:24
+msgid "Write Tests"
+msgstr ""
+
+#: ../../unittesting.md:26
+msgid "Write tests to check the functionality of your contract. Remix injects a built-in assert library which can be used for testing. Visit the library documentation here."
+msgstr ""
+
+#: ../../unittesting.md:28
+msgid "Apart from this, Remix allows usage of some special functions to make testing more structural. They are:"
+msgstr ""
+
+#: ../../unittesting.md:30
+msgid "beforeEach() - Runs before each test"
+msgstr ""
+
+#: ../../unittesting.md:31
+msgid "beforeAll() - Runs before all tests"
+msgstr ""
+
+#: ../../unittesting.md:32
+msgid "afterEach() - Runs after each test"
+msgstr ""
+
+#: ../../unittesting.md:33
+msgid "afterAll() - Runs after all tests"
+msgstr ""
+
+#: ../../unittesting.md:35
+msgid "To get started, see this simple example."
+msgstr ""
+
+#: ../../unittesting.md:37
+msgid "Run"
+msgstr ""
+
+#: ../../unittesting.md:39
+msgid "Once you are done with writing tests, select the _test.sol files in the list and click on the button Run to execute the tests in the selected files. The execution will run in a separate environment and the result will be displayed below."
+msgstr ""
+
+#: ../../unittesting.md:43
+msgid "Stop"
+msgstr ""
+
+#: ../../unittesting.md:45
+msgid "If you have selected multiple files to run the tests and want to stop the execution, click on Stop button. It will stop execution after running the tests for current file."
+msgstr ""
+
+#: ../../unittesting.md:47
+msgid "Customization"
+msgstr ""
+
+#: ../../unittesting.md:49
+msgid "Remix facilitates users with various types of customizations to test a contract properly."
+msgstr ""
+
+#: ../../unittesting.md:51
+msgid "1. Custom Compiler Context"
+msgstr ""
+
+#: ../../unittesting.md:53
+msgid "Solidity Unit Testing refers Solidity Compiler plugin for compiler configurations. One can provide customized inputs for Compiler, EVM Version & Enable Optimization and these will be the configuration settings used for contract compilation before running unit tests."
+msgstr ""
+
+#: ../../unittesting.md:57
+msgid "2. Custom Transaction Context"
+msgstr ""
+
+#: ../../unittesting.md:59
+msgid "For a contract method interaction, prime parameters of transaction are from address, value & gas. Usually, we need to test a method's behaviour under different values of these parameters."
+msgstr ""
+
+#: ../../unittesting.md:61
+msgid "Remix provides the functionality of custom msg.sender & msg.value of transaction using method devdoc like:"
+msgstr ""
+
+#: ../../unittesting.md:71
+msgid "Things to keep in mind while using custom transaction context:"
+msgstr ""
+
+#: ../../unittesting.md:73
+msgid "Parameters must be defined in devdoc of related method"
+msgstr ""
+
+#: ../../unittesting.md:74
+msgid "Each parameter key should be prefixed with a hash (#) and end with a colon following a space (: ) like #sender: & #value:"
+msgstr ""
+
+#: ../../unittesting.md:75
+msgid "For now, customization is available for parameters sender & value only"
+msgstr ""
+
+#: ../../unittesting.md:76
+msgid "Sender is from address of a transaction which is accessed using msg.sender inside a contract method. It should be defined in a fixed format as 'account-'"
+msgstr ""
+
+#: ../../unittesting.md:77
+msgid " varies from 0-2 before remix-ide release v0.10.0 and 0-9 afterwards"
+msgstr ""
+
+#: ../../unittesting.md:78
+msgid "remix_accounts.sol must be imported in your test file to use custom sender"
+msgstr ""
+
+#: ../../unittesting.md:79
+msgid "Value is value sent along with a transaction in wei which is accessed using msg.value inside a contract method. It should be a number."
+msgstr ""
+
+#: ../../unittesting.md:81
+msgid "Regarding gas, Remix estimates the required gas for each transaction internally. Still if a contract deployment fails with Out-of-Gas error, it tries to redeploy it by doubling the gas. Deployment failing with double gas will show error: contract deployment failed after trying twice: The contract code couldn't be stored, please check your gas limit"
+msgstr ""
+
+#: ../../unittesting.md:83
+msgid "Various test examples can be seen in examples section."
+msgstr ""
+
+#: ../../unittesting.md:86
+msgid "Points to remember"
+msgstr ""
+
+#: ../../unittesting.md:89
+msgid "A test contract cannot have a method with parameters. Having one such method will show error: Method 'methodname' can not have parameters inside a test contract"
+msgstr ""
+
+#: ../../unittesting.md:90
+msgid "Number of test accounts are 3 before remix-ide release v0.10.0 and 10 afterwards"
+msgstr ""
+
+#: ../../unittesting.md:91
+msgid "A test file which imports remix_accounts.sol might not compile successfully with Solidity Compiler plugin but it will work fine with Solidity Unit Testing plugin."
+msgstr ""
+
+#: ../../unittesting.md:93
+msgid "Remix-tests"
+msgstr ""
+
+#: ../../unittesting.md:96
+msgid "remix-tests is the module which works underneath of remix-ide Solidity Unit Testing plugin."
+msgstr ""
+
+#: ../../unittesting.md:98
+msgid "remix-tests is an NPM package. It can also be used as a CLI/CI solution, supporting node.js. Find more information about this type of usage in the remix-tests repository"
+msgstr ""
+
+#: ../../unittesting.md:100
+msgid "For CI implementation example, see Su Squares contract and Travis build that uses remix-tests for continuous integration testing."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/assert_library.po b/docs/locale/ko_KR/LC_MESSAGES/assert_library.po
new file mode 100644
index 00000000000..f442bbf53d3
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/assert_library.po
@@ -0,0 +1,127 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/assert_library.pot\n"
+"X-Crowdin-File-ID: 6458\n"
+"Language: ko_KR\n"
+
+#: ../../assert_library.md:1
+msgid "Remix Assert Library"
+msgstr ""
+
+#: ../../assert_library.md:4
+msgid "[Assert.ok(value[, message])](#assert-ok-value-message)"
+msgstr ""
+
+#: ../../assert_library.md:5
+msgid "[Assert.equal(actual, expected[, message])](#assert-equal-actual-expected-message)"
+msgstr ""
+
+#: ../../assert_library.md:6
+msgid "[Assert.notEqual(actual, expected[, message])](#assert-notequal-actual-expected-message)"
+msgstr ""
+
+#: ../../assert_library.md:7
+msgid "[Assert.greaterThan(value1, value2[, message])](#assert-greaterthan-value1-value2-message)"
+msgstr ""
+
+#: ../../assert_library.md:8
+msgid "[Assert.lesserThan(value1, value2[, message])](#assert-lesserthan-value1-value2-message)"
+msgstr ""
+
+#: ../../assert_library.md:11
+msgid "Assert"
+msgstr ""
+
+#: ../../assert_library.md:13
+msgid "Assert.ok(value[, message])"
+msgstr ""
+
+#: ../../assert_library.md:14
+msgid "`value`: \\"
+msgstr ""
+
+#: ../../assert_library.md:15
+#: ../../assert_library.md:30
+#: ../../assert_library.md:50
+#: ../../assert_library.md:66
+#: ../../assert_library.md:85
+msgid "`message`: \\"
+msgstr ""
+
+#: ../../assert_library.md:17
+msgid "Tests if value is truthy. `message` is returned in case of failure."
+msgstr ""
+
+#: ../../assert_library.md:19
+#: ../../assert_library.md:34
+#: ../../assert_library.md:54
+#: ../../assert_library.md:70
+#: ../../assert_library.md:89
+msgid "Examples:"
+msgstr ""
+
+#: ../../assert_library.md:27
+msgid "Assert.equal(actual, expected[, message])"
+msgstr ""
+
+#: ../../assert_library.md:28
+#: ../../assert_library.md:48
+msgid "`actual`: \\"
+msgstr ""
+
+#: ../../assert_library.md:29
+#: ../../assert_library.md:49
+msgid "`expected`: \\"
+msgstr ""
+
+#: ../../assert_library.md:32
+msgid "Tests if `actual` & `expected` values are same. `message` is returned in case of failure."
+msgstr ""
+
+#: ../../assert_library.md:47
+msgid "Assert.notEqual(actual, expected[, message])"
+msgstr ""
+
+#: ../../assert_library.md:52
+msgid "Tests if `actual` & `expected` values are not same. `message` is returned in case of failure."
+msgstr ""
+
+#: ../../assert_library.md:63
+msgid "Assert.greaterThan(value1, value2[, message])"
+msgstr ""
+
+#: ../../assert_library.md:64
+#: ../../assert_library.md:83
+msgid "`value1`: \\"
+msgstr ""
+
+#: ../../assert_library.md:65
+#: ../../assert_library.md:84
+msgid "`value2`: \\"
+msgstr ""
+
+#: ../../assert_library.md:68
+msgid "Tests if `value1` is greater than `value2`. `message` is returned in case of failure."
+msgstr ""
+
+#: ../../assert_library.md:82
+msgid "Assert.lesserThan(value1, value2[, message])"
+msgstr ""
+
+#: ../../assert_library.md:87
+msgid "Tests if `value1` is lesser than `value2`. `message` is returned in case of failure."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/code_contribution_guide.po b/docs/locale/ko_KR/LC_MESSAGES/code_contribution_guide.po
new file mode 100644
index 00000000000..9e418f241e7
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/code_contribution_guide.po
@@ -0,0 +1,35 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/code_contribution_guide.pot\n"
+"X-Crowdin-File-ID: 6460\n"
+"Language: ko_KR\n"
+
+#: ../../code_contribution_guide.md:1
+msgid "Code Contribution Guide"
+msgstr ""
+
+#: ../../code_contribution_guide.md:4
+msgid "Remix is an open source tool and we encourage everyone to help us improve it. Please open issues, give feedback or contribute by a pulling request to our codebase."
+msgstr ""
+
+#: ../../code_contribution_guide.md:8
+msgid "The Remix application is built with JavaScript and it doesn't use any frameworks. We rely on a selected set of npm modules, like `yo-yo`, `csjs-inject` among others. Check out the `package.json` files in the Remix submodules to learn more about the stack."
+msgstr ""
+
+#: ../../code_contribution_guide.md:10
+msgid "To learn more, please visit our [GitHub page](https://github.com/ethereum/remix-project)."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/community.po b/docs/locale/ko_KR/LC_MESSAGES/community.po
new file mode 100644
index 00000000000..1143a0f1938
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/community.po
@@ -0,0 +1,35 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/community.pot\n"
+"X-Crowdin-File-ID: 6462\n"
+"Language: ko_KR\n"
+
+#: ../../community.md:1
+msgid "Community Support"
+msgstr ""
+
+#: ../../community.md:4
+msgid "We know that blockchain ecosystem is very new and that lots of information is scattered around the web. That is why we created a community support channel where we and other users try to answer your questions if you get stuck using Remix. Please, join [the community](https://gitter.im/ethereum/remix) and ask for help."
+msgstr ""
+
+#: ../../community.md:8
+msgid "For anyone who is interested in developing a custom plugin for Remix or who wants to contribute to the codebase, we opened a [contributors' channel](https://gitter.im/ethereum/remix-dev) especially for developers working on Remix tools."
+msgstr ""
+
+#: ../../community.md:11
+msgid "We would kindly ask you to respect the space and to use it for getting help with your work and the developers' channel for discussions related to working on Remix codebase. If you have ideas for collaborations or you want to promote your project, try to find some more appropriate channels to do so. Or you can contact the main contributors directly on Gitter or Twitter."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/compile.po b/docs/locale/ko_KR/LC_MESSAGES/compile.po
new file mode 100644
index 00000000000..8b5b0c862f1
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/compile.po
@@ -0,0 +1,251 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/compile.pot\n"
+"X-Crowdin-File-ID: 6464\n"
+"Language: ko_KR\n"
+
+#: ../../compile.md:1
+msgid "Solidity Compiler"
+msgstr ""
+
+#: ../../compile.md:4
+msgid "Clicking the Solidity icon in the icon panel brings you to the Solidity Compiler. The default view of the Solidity Compiler shows the basic configuration. To open the Advanced Configuration panel, click the **Advanced Configuration** button (**C. in fig. 1**). For details on advanced features - see below."
+msgstr ""
+
+#: ../../compile.md:6
+msgid "Solidity Compiler Basics"
+msgstr ""
+
+#: ../../compile.md:8
+msgid "Selecting a contract to compile"
+msgstr ""
+
+#: ../../compile.md:9
+msgid "To select a contract to compile, choose a file in the File Explorer. Or if there are several files open, make sure the one you want to compile is the active file in the Editor."
+msgstr ""
+
+#: ../../compile.md:11
+msgid "If there is not an active file in the editor or a file has not already been compiled, then the Solidity compiler will look like this:"
+msgstr ""
+
+#: ../../compile.md:13
+msgid "![](images/a-sol-comp-no-file.png)"
+msgstr ""
+
+#: ../../compile.md:15
+msgid "Triggering compilation"
+msgstr ""
+
+#: ../../compile.md:16
+msgid "Compiling is triggered when you:"
+msgstr ""
+
+#: ../../compile.md:17
+msgid "click the compile button (**D. in fig. 1 below**)"
+msgstr ""
+
+#: ../../compile.md:18
+msgid "use the shortcut `control + s`."
+msgstr ""
+
+#: ../../compile.md:19
+msgid "right click on a file in the File Explorer and select the **Compile** option"
+msgstr ""
+
+#: ../../compile.md:21
+msgid "![](images/a-sol-comp-basic.png)"
+msgstr ""
+
+#: ../../compile.md:23
+msgid "Auto Compile"
+msgstr ""
+
+#: ../../compile.md:24
+msgid "If the auto compile checkbox (**B. in fig. 1 above**) is checked, compilation will occur every few seconds (when the file is auto-saved) as well as when another file is selected. If a contract has a lot of dependencies, it can take a while to compile - so you use autocompilation at your discretion."
+msgstr ""
+
+#: ../../compile.md:27
+msgid "Solidity versions & Remix functionality"
+msgstr ""
+
+#: ../../compile.md:28
+msgid "The compiler version is selected in the **COMPILER** dropdown list (**A. in fig. 1 above**)."
+msgstr ""
+
+#: ../../compile.md:30
+msgid "You can compile (and deploy) contracts with versions of Solidity **older than 0.4.12**. However, the older compilers use a legacy AST — which we no longer support. Consequently, some plugins may not work and some functionality - e.g. source highlighting in the Editor may only be partially working."
+msgstr ""
+
+#: ../../compile.md:34
+msgid "Using the Contract select box"
+msgstr ""
+
+#: ../../compile.md:36
+msgid "Because a Solidity file can include multiple contracts and because contracts can import other contracts, multiple contracts are often compiled. **However**, only 1 contract's compilation details can be retrieved at a time."
+msgstr ""
+
+#: ../../compile.md:38
+msgid "To select the desired contract, use the **Contract** select box (**F. in fig. 1**). Forgetting to select the right contract is a common mistake - so remember to verify that the contract you want is selected."
+msgstr ""
+
+#: ../../compile.md:40
+msgid "Compilation Details and Publishing"
+msgstr ""
+
+#: ../../compile.md:41
+msgid "Using the publish button, you can upload your contract to **IPFS** or **Swarm** (only non abstract contracts can be published to Swarm)."
+msgstr ""
+
+#: ../../compile.md:43
+msgid "When publishing a contract that imports other contracts, the main contract and all of its imported contracts will be published - each to their own address."
+msgstr ""
+
+#: ../../compile.md:45
+msgid "**Published data contains the contract's metadata and the solidity source code.**"
+msgstr ""
+
+#: ../../compile.md:47
+msgid "After either **Publish on IPFS** or **Publish on Swarm** is clicked a modal will pop up. This modal contains the contract's address as well as the addresses of the contracts that it imported and the address of the contract's **metadata**."
+msgstr ""
+
+#: ../../compile.md:49
+msgid "When the \"Compilation Details\" button is clicked (**G. in fig. 1**), a modal opens displaying detailed information about the current selected contract."
+msgstr ""
+
+#: ../../compile.md:51
+msgid "If you just want to get the **ABI** or the **Bytecode** - click the appropriate button see **H. in fig. 1**."
+msgstr ""
+
+#: ../../compile.md:53
+msgid "Passive Contract Verification"
+msgstr ""
+
+#: ../../compile.md:54
+msgid "When you publish your metadata to IPFS and deploy your code to the mainnet or a public testnet, the contract verification service **[Sourcify](https://sourcify.dev/)**, will verify your contracts without you needing to do anything."
+msgstr ""
+
+#: ../../compile.md:56
+msgid "Compile and Run script"
+msgstr ""
+
+#: ../../compile.md:57
+msgid "The Compile and Run script button (**E. in fig. 1**) is for compiling and then immediately running a script. It's a time saver so that you can write some code, automatically run script that sets state of the contract - thus allowing you to quickly understand how the code is working. ([more about Compile & Run](running_js_scripts.html?#compile-a-contract-and-run-a-script-on-the-fly))"
+msgstr ""
+
+#: ../../compile.md:59
+msgid "Compilation Errors and Warning"
+msgstr ""
+
+#: ../../compile.md:60
+msgid "Compilation Errors and Warning are displayed below the contract section. At each compilation, the static analysis tab builds a report."
+msgstr ""
+
+#: ../../compile.md:63
+msgid "It is important to address reported issues even if the compiler doesn't complain. ([more about static analysis](static_analysis.html))"
+msgstr ""
+
+#: ../../compile.md:65
+msgid "Advanced Compiler Configurations"
+msgstr ""
+
+#: ../../compile.md:66
+msgid "Clicking on Advanced Compiler Configurations will open this panel (**M. in fig. 2 below**)."
+msgstr ""
+
+#: ../../compile.md:68
+msgid "![](images/a-sol-comp-adv.png)"
+msgstr ""
+
+#: ../../compile.md:70
+msgid "There is a radio button to choose whether to configure the compiler through the interface (**N. in fig 2**) or to use a JSON file for the configuration (**R. in fig 2**)."
+msgstr ""
+
+#: ../../compile.md:72
+msgid "Solidity or YUL"
+msgstr ""
+
+#: ../../compile.md:73
+msgid "Since the Solidity version `0.5.7`, it is possible to compile `Yul` files. Please read the ([solidity documentation about Yul](https://docs.soliditylang.org/en/latest/yul.html)) which contain some code examples. You can use the language dropdown (**O. in fig 2**) to switch the language. **This dropdown list is only available for versions greater than or equal to `0.5.7`.**"
+msgstr ""
+
+#: ../../compile.md:76
+msgid "Select an EVM version"
+msgstr ""
+
+#: ../../compile.md:77
+msgid "The EVM dropdown list (**P. in fig 2**) allows to compile code against a specific **Ethereum hard fork**. The `compiler default` corresponds to the default hard fork used by a specific version."
+msgstr ""
+
+#: ../../compile.md:80
+msgid "To see the name of the hard fork used in the current compilation, click the \"Compilation Details\" button and in the `Metadata` section there will be a sub-section called **settings**. Open up the **settings** to see the EVM version's name."
+msgstr ""
+
+#: ../../compile.md:82
+msgid "Enable optimization"
+msgstr ""
+
+#: ../../compile.md:83
+msgid "According to the Solidity Docs, \"the optimizer tries to simplify complicated expressions, which reduces both code size and execution cost, i.e., it can reduce gas needed for contract deployment as well as for external calls made to the contract.\""
+msgstr ""
+
+#: ../../compile.md:85
+msgid "For recent versions of Solidity, it is [recommended to enable optimization](https://blog.soliditylang.org/2020/11/04/solidity-ama-1-recap/#why-do-you-think-people-are-generally-suspicious-of-the-optimizer-and-are-they-right-to-be)."
+msgstr ""
+
+#: ../../compile.md:87
+msgid "To learn more about optimization, (**Q. in the fig 2**) visit the [Solidity docs on the optimizer](https://docs.soliditylang.org/en/latest/internals/optimizer.html)."
+msgstr ""
+
+#: ../../compile.md:89
+msgid "To the right of the **Enable optimization** checkbox is the box to input the number of Optimization runs. The default value is 200."
+msgstr ""
+
+#: ../../compile.md:91
+msgid "You may ask — \"What is the right number of runs for my contract?\" And the Solidity docs say:"
+msgstr ""
+
+#: ../../compile.md:93
+msgid "If you want the initial contract deployment to be cheaper and the later function executions to be more expensive, set it to --optimize-runs=1. If you expect many transactions and do not care for higher deployment cost and output size, set --optimize-runs to a high number."
+msgstr ""
+
+#: ../../compile.md:95
+msgid "To learn more about the optimization runs, visit the [Solidity docs about Optimizer options](https://docs.soliditylang.org/en/latest/using-the-compiler.html?highlight=optimize-runs#optimizer-options)."
+msgstr ""
+
+#: ../../compile.md:97
+msgid "JSON file for Compiler configuration"
+msgstr ""
+
+#: ../../compile.md:98
+msgid "Selecting the radio button next to **Use configuration file** will let you set the configuration using a JSON file (**T. in fig 2**). When you switch to **compile with a config file**, a sample compiler config file is created. This file can be edited with all the available options."
+msgstr ""
+
+#: ../../compile.md:100
+msgid "Clicking the config file's name will open it up in the Editor. To change the config file click the **Change** button. If you update the text box with a file name of a file that does not exist, a new file will be created containing the default file's contents."
+msgstr ""
+
+#: ../../compile.md:103
+msgid "There is no error checking when using the .json file for configuration settings, so make sure your config file is correct."
+msgstr ""
+
+#: ../../compile.md:105
+msgid "Use a Custom Solidity Compiler"
+msgstr ""
+
+#: ../../compile.md:106
+msgid "For those writing your own custom solidity compiler, you can import that by clicking the **+** button (**X. in fig 1**) to open a modal where you can input the url of the compiler to be loaded."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/contract_metadata.po b/docs/locale/ko_KR/LC_MESSAGES/contract_metadata.po
new file mode 100644
index 00000000000..15b76cd8437
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/contract_metadata.po
@@ -0,0 +1,75 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/contract_metadata.pot\n"
+"X-Crowdin-File-ID: 6466\n"
+"Language: ko_KR\n"
+
+#: ../../contract_metadata.md:1
+msgid "Compilation Artifacts"
+msgstr ""
+
+#: ../../contract_metadata.md:4
+msgid "When a compilation for a Solidity file succeeds, Remix creates three JSON files for each compiled contract. Files can be seen in the `File Explorers plugin` as:"
+msgstr ""
+
+#: ../../contract_metadata.md:6
+msgid "`artifacts/.json`: contains the link to the libraries, the bytecode, the deployed bytecode, the gas estimation, the method identifiers, and the ABI. It is used for linking a library address to the file."
+msgstr ""
+
+#: ../../contract_metadata.md:7
+msgid "`artifacts/.json`: contains the metadata from the output of Solidity compilation."
+msgstr ""
+
+#: ../../contract_metadata.md:8
+msgid "`artifacts/build-info/.json`: contains info about `solc` compiler version, compiler input and output. This file is generated similar to the files generated through Hardhat compilation. You can also try [Hardhat compilation](https://remix-ide.readthedocs.io/en/latest/hardhat.html#enable-hardhat-compilation) from Remix."
+msgstr ""
+
+#: ../../contract_metadata.md:10
+msgid "Please note that in order to generate these artifact files, the **Generate contract metadata** box in the **General settings** section of the **Settings** module needs to be checked. By default, it is checked."
+msgstr ""
+
+#: ../../contract_metadata.md:12
+msgid "You can write scripts that can access either of these files."
+msgstr ""
+
+#: ../../contract_metadata.md:14
+msgid "Library Deployment with filename.json"
+msgstr ""
+
+#: ../../contract_metadata.md:17
+msgid "By default Remix automatically deploys needed libraries."
+msgstr ""
+
+#: ../../contract_metadata.md:19
+msgid "When you open the metadata file for the libraries - **artifact/filename.json** you will see the following sections:"
+msgstr ""
+
+#: ../../contract_metadata.md:21
+msgid "`linkReferences` contains a map representing libraries which depend on the current contract. Values are addresses of libraries used for linking the contract."
+msgstr ""
+
+#: ../../contract_metadata.md:24
+msgid "`autoDeployLib` defines if the libraries should be auto deployed by Remix or if the contract should be linked with libraries described in `linkReferences`"
+msgstr ""
+
+#: ../../contract_metadata.md:26
+msgid "Note that Remix will resolve addresses corresponding to the current network. By default, a configuration key follows the form: `:`, but it is also possible to define `` or `` as keys."
+msgstr ""
+
+#: ../../contract_metadata.md:30
+msgid "Here is a sample metadata file for linking a library:"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/contract_verification.po b/docs/locale/ko_KR/LC_MESSAGES/contract_verification.po
new file mode 100644
index 00000000000..303f8287469
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/contract_verification.po
@@ -0,0 +1,195 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/contract_verification.pot\n"
+"X-Crowdin-File-ID: 7943\n"
+"Language: ko_KR\n"
+
+#: ../../contract_verification.md:1
+msgid "Contract Verification"
+msgstr ""
+
+#: ../../contract_verification.md:4
+msgid "There are two contract verification services in Remix, Sourcify and Etherscan and the extended [Etherscan family](https://etherscan.io/eaas) of block explorers."
+msgstr ""
+
+#: ../../contract_verification.md:6
+msgid "Sourcify"
+msgstr ""
+
+#: ../../contract_verification.md:9
+msgid "Documentation about Sourcify is found [here]( https://docs.sourcify.dev/docs/how-to-verify/#remix-plugin)."
+msgstr ""
+
+#: ../../contract_verification.md:11
+msgid "Etherscan"
+msgstr ""
+
+#: ../../contract_verification.md:14
+msgid "The Etherscan plugin is called: **CONTRACT VERIFICATION - ETHERSCAN**."
+msgstr ""
+
+#: ../../contract_verification.md:16
+msgid "You can access it from the Plugin Manager."
+msgstr ""
+
+#: ../../contract_verification.md:18
+msgid "The plugin has 3 pages, the **verification** page, the **receipts** page, and the **settings** page."
+msgstr ""
+
+#: ../../contract_verification.md:20
+msgid "When you go to the plugin for the first time, the settings page will load for inputting the API key."
+msgstr ""
+
+#: ../../contract_verification.md:22
+msgid "![](images/a-cv-etherscan-plugin-api-needed.png)"
+msgstr ""
+
+#: ../../contract_verification.md:25
+msgid "Etherscan API Key - settings page"
+msgstr ""
+
+#: ../../contract_verification.md:26
+msgid "Etherscan is a block explorer for Ethereum mainnet and they make block explorers for other chains."
+msgstr ""
+
+#: ../../contract_verification.md:28
+msgid "For Ethereum testnets like Goerli or Sepolia, the same API key works."
+msgstr ""
+
+#: ../../contract_verification.md:30
+msgid "If you are trying to verify on L2 chains like Optimism, a different API key is needed for their block explorer. Not all of the block explorers made by Etherscan have API keys. The Remix Contract Verification - Etherscan plugin only works where you can login to that block explorer to get the API key."
+msgstr ""
+
+#: ../../contract_verification.md:32
+msgid "Once the API key is input, the verification page (the homepage) is opened."
+msgstr ""
+
+#: ../../contract_verification.md:34
+msgid "Verification page"
+msgstr ""
+
+#: ../../contract_verification.md:36
+msgid "![](images/a-cv-etherscan-verify-page1.png)"
+msgstr ""
+
+#: ../../contract_verification.md:38
+msgid "The network is NOT selected in the Etherscan plugin. The network is chosen in the Deploy & Run plugin and in your browser's wallet (if using)."
+msgstr ""
+
+#: ../../contract_verification.md:40
+msgid "The prerequisites for verification are:"
+msgstr ""
+
+#: ../../contract_verification.md:41
+msgid "The address of a deployed contract on a public network"
+msgstr ""
+
+#: ../../contract_verification.md:42
+msgid "That same contract compiled in Remix"
+msgstr ""
+
+#: ../../contract_verification.md:43
+msgid "Constructor parameters same as used during deployment (if required)"
+msgstr ""
+
+#: ../../contract_verification.md:46
+msgid "Receipts page"
+msgstr ""
+
+#: ../../contract_verification.md:47
+msgid "Verification receipts are found on the receipts page."
+msgstr ""
+
+#: ../../contract_verification.md:49
+msgid "![](images/a-cv-etherscan-receipts.png)"
+msgstr ""
+
+#: ../../contract_verification.md:51
+msgid "Verification with constructor arguments"
+msgstr ""
+
+#: ../../contract_verification.md:52
+msgid "When a contract has arguments in the constructor, a text box will show for inputting the same constructor inputs as the deployed contract."
+msgstr ""
+
+#: ../../contract_verification.md:54
+msgid "![](images/a-cv-etherscan-constructor-args.png)"
+msgstr ""
+
+#: ../../contract_verification.md:56
+msgid "Verifying a proxy contract"
+msgstr ""
+
+#: ../../contract_verification.md:57
+msgid "Before verifying a proxy contract, the associated implementation contract must already be verified."
+msgstr ""
+
+#: ../../contract_verification.md:59
+msgid "Just for review, the implementation contract is you wrote or adapted and the proxy is, for example, an ERC1967Proxy."
+msgstr ""
+
+#: ../../contract_verification.md:61
+msgid "**Do not check the proxy box when verifying the implementation.** Then after verifying the implementation contract:"
+msgstr ""
+
+#: ../../contract_verification.md:63
+msgid "Cut out the implementation contract's address from the Contract Address box."
+msgstr ""
+
+#: ../../contract_verification.md:64
+msgid "Click the \"It's a proxy contract address\" checkbox."
+msgstr ""
+
+#: ../../contract_verification.md:65
+msgid "Paste the verified implementation contract's address in the Expected Implementation Address box."
+msgstr ""
+
+#: ../../contract_verification.md:66
+msgid "Paste in the proxy contract address into the Contract Address box."
+msgstr ""
+
+#: ../../contract_verification.md:68
+msgid "To explain this visually, verify the implementation contract:"
+msgstr ""
+
+#: ../../contract_verification.md:70
+msgid "![](images/a-cv-etherscan-verify-implementation.png)"
+msgstr ""
+
+#: ../../contract_verification.md:72
+msgid "Then check the \"It's a proxy contract\" checkbox and cut and paste the implementation address from the contract address to the implementation contract box:"
+msgstr ""
+
+#: ../../contract_verification.md:74
+msgid "![](images/a-cv-etherscan-move-addr.png)"
+msgstr ""
+
+#: ../../contract_verification.md:76
+msgid "And then paste the address of the proxy contract into the Contract Address box. ![](images/a-cv-etherscan-verify-proxy2.png)"
+msgstr ""
+
+#: ../../contract_verification.md:79
+msgid "Generate Verification Scripts"
+msgstr ""
+
+#: ../../contract_verification.md:80
+msgid "Clicking the Generate Verification Scripts on the Verification page, will create a folder named etherscan in the Workspace's scripts folder that contains .ts files for verifying and returning the receipt status."
+msgstr ""
+
+#: ../../contract_verification.md:82
+msgid "![](images/a-cv-etherscan-gen-scripts.png)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/create_deploy.po b/docs/locale/ko_KR/LC_MESSAGES/create_deploy.po
new file mode 100644
index 00000000000..f24f4f678e5
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/create_deploy.po
@@ -0,0 +1,215 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/create_deploy.pot\n"
+"X-Crowdin-File-ID: 6468\n"
+"Language: ko_KR\n"
+
+#: ../../create_deploy.md:1
+msgid "Creating and Deploying a Contract"
+msgstr ""
+
+#: ../../create_deploy.md:4
+msgid "Let's go through a basic workflow:"
+msgstr ""
+
+#: ../../create_deploy.md:5
+msgid "create a new file"
+msgstr ""
+
+#: ../../create_deploy.md:6
+msgid "code a contract in the file"
+msgstr ""
+
+#: ../../create_deploy.md:7
+msgid "compile the contract"
+msgstr ""
+
+#: ../../create_deploy.md:8
+msgid "deploy it to the local simulated blockchain (Remix VM)"
+msgstr ""
+
+#: ../../create_deploy.md:9
+msgid "interact with the deployed contract's functions"
+msgstr ""
+
+#: ../../create_deploy.md:11
+msgid "Creating a new file"
+msgstr ""
+
+#: ../../create_deploy.md:13
+msgid "![](images/a-file-explorer-new-file2a.png)"
+msgstr ""
+
+#: ../../create_deploy.md:15
+msgid "In the File Explorer, create a new file by clicking on the new file icon, and name it. The `.sol` is default extension in Remix, if a file is named without an extension, `.sol` will appended."
+msgstr ""
+
+#: ../../create_deploy.md:17
+msgid "**NOTE:** For information about templates or workspaces, see the [File Explorer docs](file_explorer.html)."
+msgstr ""
+
+#: ../../create_deploy.md:19
+msgid "In the editor, paste in the following contract into the empty file:"
+msgstr ""
+
+#: ../../create_deploy.md:49
+msgid "When pasting in code, make sure you understand it before deploying or interacting with it. Don't get scammed!"
+msgstr ""
+
+#: ../../create_deploy.md:51
+msgid "Compile the Contract"
+msgstr ""
+
+#: ../../create_deploy.md:53
+msgid "With the contract above as the active tab in the Editor, compile the contract. A quick way to compile is to hit **ctrl + s**. You can also compile by going to the Solidity compiler and clicking the compile button, or by right clicking a file in the File Explorer, or by clicking the play button at the top of the Editor."
+msgstr ""
+
+#: ../../create_deploy.md:56
+msgid "**For More Info** see the docs on the [Solidity Compiler](compile.html)."
+msgstr ""
+
+#: ../../create_deploy.md:58
+msgid "Deploy the contract"
+msgstr ""
+
+#: ../../create_deploy.md:60
+msgid "Go to the **Deploy & Run Transactions** plugin."
+msgstr ""
+
+#: ../../create_deploy.md:62
+msgid "At the top of this plugin is the Environment select box. Here you can choose where you want to deploy your contract. There are many choices. For more info about these options see [this section](run.html#environment) of the docs."
+msgstr ""
+
+#: ../../create_deploy.md:64
+msgid "For a brief synopsis:"
+msgstr ""
+
+#: ../../create_deploy.md:66
+msgid "**Injected Provider** is used to connect Remix with a Browser Wallet (e.g. Metamask) which is generally for deploying to a public network."
+msgstr ""
+
+#: ../../create_deploy.md:68
+msgid "**Remix VM** is a test blockchain in the browser. There are quite a few \"flavors\" of the Remix VM. Each \"flavor\" is associated with a different hard fork with the name in parathesies - e.g. Remix VM (Shanghai) or for the choice of a chain to fork into the Remix VM."
+msgstr ""
+
+#: ../../create_deploy.md:70
+msgid "The **Remix VM** is convenient because it is a blockchain that runs in the browser and nothing else needs to be installed in order to run it."
+msgstr ""
+
+#: ../../create_deploy.md:72
+msgid "**Dev** is for connecting Remix to a local chain running on your computer."
+msgstr ""
+
+#: ../../create_deploy.md:74
+msgid "**L2** is for connecting Remix to Optimism or Abritrum via a browser wallet. Its essentially the same as Injected Provider, but it sets the wallet with the configuration of the specified L2."
+msgstr ""
+
+#: ../../create_deploy.md:76
+msgid "(For details see [Running transactions](https://remix-ide.readthedocs.io/en/latest/run.html))"
+msgstr ""
+
+#: ../../create_deploy.md:78
+msgid "Select the top Remix VM environment"
+msgstr ""
+
+#: ../../create_deploy.md:81
+msgid "Choose the top first Remix VM in the dropdown list."
+msgstr ""
+
+#: ../../create_deploy.md:83
+msgid "The Remix VM comes with 10 accounts funded with 100 ether."
+msgstr ""
+
+#: ../../create_deploy.md:85
+msgid "**NOTE:** When you are in the **Remix VM** and you reload the browser - the **Remix VM** will also restart to its fresh & default state. For a more realistic testing environment, use a public testnet."
+msgstr ""
+
+#: ../../create_deploy.md:87
+msgid "![](images/a-run-remix-vm-accounts.png)"
+msgstr ""
+
+#: ../../create_deploy.md:89
+msgid "Deploying a contract"
+msgstr ""
+
+#: ../../create_deploy.md:92
+msgid "![](images/a-run-testContract.png)"
+msgstr ""
+
+#: ../../create_deploy.md:94
+msgid "The constructor of `testContract` needs a parameter of the type `uint256`. Input a uint256 and click on `Deploy`."
+msgstr ""
+
+#: ../../create_deploy.md:97
+msgid "The transaction is created which deploys the instance of `testContract` ."
+msgstr ""
+
+#: ../../create_deploy.md:99
+msgid "In a more realistic blockchain, you would have to approve the transaction and then wait for the transaction to be mined. However, because we are using the `Remix VM`, the execution is immediate."
+msgstr ""
+
+#: ../../create_deploy.md:101
+msgid "The terminal will give information about the transaction."
+msgstr ""
+
+#: ../../create_deploy.md:103
+msgid "The newly created instance is displayed in the **Deployed Contracts** section."
+msgstr ""
+
+#: ../../create_deploy.md:105
+msgid "![](images/a-remix-vm-instance.png)"
+msgstr ""
+
+#: ../../create_deploy.md:107
+msgid "Interacting with the deployed instance"
+msgstr ""
+
+#: ../../create_deploy.md:109
+msgid "Clicking on the caret to the left of the instance of TESTCONTRACT will expand it so its functions are visible."
+msgstr ""
+
+#: ../../create_deploy.md:111
+msgid "This new instance contains the 3 functions (`setP`, `setPN`, `get`)."
+msgstr ""
+
+#: ../../create_deploy.md:113
+msgid "Clicking on `setP` or `setPN` will create a new transaction."
+msgstr ""
+
+#: ../../create_deploy.md:115
+msgid "`setP` is a `payable` function (payable functions have red buttons). With a payable function, value (ETH) can be sent to the contract. The amount of ETH is chosen in the VALUE input field and the unit of ETH is selected in the box to the right."
+msgstr ""
+
+#: ../../create_deploy.md:117
+msgid "![](images/a-remix-vm-value.png)"
+msgstr ""
+
+#: ../../create_deploy.md:119
+msgid "`setPN` is not payable (an orange button - depending on the theme). It is not possible to send value (Ether) to this function."
+msgstr ""
+
+#: ../../create_deploy.md:121
+msgid "`get` is a **view function** (a blue button - depending on the theme). It doesn't execute a transaction because a `get` does not modify the state (it is only returning the value of the variable `value`)."
+msgstr ""
+
+#: ../../create_deploy.md:123
+msgid "The value that gets returned appears just below the `get` button."
+msgstr ""
+
+#: ../../create_deploy.md:125
+msgid "![](images/a-remix-vm-view.png)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/debugger.po b/docs/locale/ko_KR/LC_MESSAGES/debugger.po
new file mode 100644
index 00000000000..91bb7117abc
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/debugger.po
@@ -0,0 +1,347 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/debugger.pot\n"
+"X-Crowdin-File-ID: 6470\n"
+"Language: ko_KR\n"
+
+#: ../../debugger.md:1
+msgid "Debugger"
+msgstr ""
+
+#: ../../debugger.md:4
+msgid "The Debugger shows the contract's state while stepping through a transaction."
+msgstr ""
+
+#: ../../debugger.md:6
+msgid "It can be used on transactions created on Remix or by providing a transaction's hash. The latter assumes that you have the contract's source code or that you have input the address of a verified contract."
+msgstr ""
+
+#: ../../debugger.md:8
+msgid "To start a debugging session either:"
+msgstr ""
+
+#: ../../debugger.md:9
+msgid "**Click** the debug button in the Terminal when a successful or failed transaction appears there. The Debugger will be activated and will gain the focus in the **Side Panel**."
+msgstr ""
+
+#: ../../debugger.md:11
+msgid "**Activate** the Debugger in the Plugin Manager and then click the bug in the icon panel. To start the debugging session, input the address of a deployed transaction - while having the source code in the editor and then click the **Start debugging** button."
+msgstr ""
+
+#: ../../debugger.md:13
+msgid "The debugger will highlight the relevant code in the Editor. If you want to go back to editing the code without the Debugger's highlights, then click the **Stop Debugging** button."
+msgstr ""
+
+#: ../../debugger.md:15
+msgid "To learn more about how to use this tool go to the [Debugging Transactions](tutorial_debug.html) page."
+msgstr ""
+
+#: ../../debugger.md:17
+msgid "This page will go over the Debugger's *Use generated sources* option, its navigation and its panels."
+msgstr ""
+
+#: ../../debugger.md:19
+msgid "![](images/a-debugger-overview.png)"
+msgstr ""
+
+#: ../../debugger.md:21
+msgid "Use generated sources"
+msgstr ""
+
+#: ../../debugger.md:22
+msgid "This option is available for contracts using Solidity 0.7.2 or greater. See the solidity blog for more details about [generated sources](https://blog.soliditylang.org/2020/09/28/solidity-0.7.2-release-announcement/#notable-new-features)."
+msgstr ""
+
+#: ../../debugger.md:24
+msgid "Using **generated sources** will make it easier to audit your contracts. When the option is checked, you can step into those compiler outputs — while debugging."
+msgstr ""
+
+#: ../../debugger.md:26
+msgid "![](images/a-debug-use-gen-sources.png)"
+msgstr ""
+
+#: ../../debugger.md:28
+msgid "These compiler outputs will appear in a separate .yul file in the Remix editor."
+msgstr ""
+
+#: ../../debugger.md:30
+msgid "The Debugger's Navigation"
+msgstr ""
+
+#: ../../debugger.md:31
+msgid "Slider & buttons"
+msgstr ""
+
+#: ../../debugger.md:32
+msgid "![](images/a-debug-nav.png)"
+msgstr ""
+
+#: ../../debugger.md:34
+msgid "Slider"
+msgstr ""
+
+#: ../../debugger.md:35
+msgid "Moving the slider will highlight the relevant code in the **Editor**. On the most granular level, it scrolls through a transaction's opcodes (**see the opcode section below**). At each opcode, the transaction's state changes and these changes are reflected in the **Debugger's panels**."
+msgstr ""
+
+#: ../../debugger.md:37
+msgid "Step over back"
+msgstr ""
+
+#: ../../debugger.md:38
+msgid "This button goes to the previous opcode. If the previous step involves a **function call**, function will not be entered."
+msgstr ""
+
+#: ../../debugger.md:39
+msgid "Step back"
+msgstr ""
+
+#: ../../debugger.md:40
+msgid "This button steps back to the previous opcode."
+msgstr ""
+
+#: ../../debugger.md:41
+msgid "Step into"
+msgstr ""
+
+#: ../../debugger.md:42
+msgid "This button advances to the next opcode. If the next line contains a function call, **Step into** will go into the function."
+msgstr ""
+
+#: ../../debugger.md:43
+msgid "Step over forward"
+msgstr ""
+
+#: ../../debugger.md:44
+msgid "This button advances to the next opcode. If the next step involves a **function call**, function will not be entered."
+msgstr ""
+
+#: ../../debugger.md:45
+msgid "Jump to the previous breakpoint"
+msgstr ""
+
+#: ../../debugger.md:46
+msgid "Breakpoints can be placed in the gutter of the Editor. If the current step in the call has passed a breakpoint, this button will move the slider to the most recently passed breakpoint."
+msgstr ""
+
+#: ../../debugger.md:48
+msgid "Jump out"
+msgstr ""
+
+#: ../../debugger.md:49
+msgid "When you are in a call and click on this button, the slider will be moved to the end of the call."
+msgstr ""
+
+#: ../../debugger.md:51
+msgid "Jump to the next breakpoint"
+msgstr ""
+
+#: ../../debugger.md:52
+msgid "If a breakpoint is ahead in the code, this button will advance to that point."
+msgstr ""
+
+#: ../../debugger.md:54
+msgid "The Debugger's Panels"
+msgstr ""
+
+#: ../../debugger.md:55
+msgid "Function Stack"
+msgstr ""
+
+#: ../../debugger.md:56
+msgid "The Function stack lists the functions that the transaction is interacting with."
+msgstr ""
+
+#: ../../debugger.md:58
+msgid "![](images/a-debug-func-stack.png)"
+msgstr ""
+
+#: ../../debugger.md:59
+msgid "Solidity Locals"
+msgstr ""
+
+#: ../../debugger.md:60
+msgid "The Solidity Locals are the local variables inside a function."
+msgstr ""
+
+#: ../../debugger.md:62
+msgid "![](images/a-debug-sol-locals.png)"
+msgstr ""
+
+#: ../../debugger.md:64
+msgid "Solidity State"
+msgstr ""
+
+#: ../../debugger.md:65
+msgid "These are the state variables of the contract."
+msgstr ""
+
+#: ../../debugger.md:67
+msgid "![](images/a-debug-sol-state.png)"
+msgstr ""
+
+#: ../../debugger.md:69
+msgid "Opcodes"
+msgstr ""
+
+#: ../../debugger.md:70
+msgid "This panel shows the step number and the **opcode** that the debugger is currently on."
+msgstr ""
+
+#: ../../debugger.md:72
+msgid "![](images/a-debug-opcodes1.png)"
+msgstr ""
+
+#: ../../debugger.md:74
+msgid "As you drag the **slider** (which is above the navigation buttons), the focussed step number & opcode changes."
+msgstr ""
+
+#: ../../debugger.md:75
+msgid "Step details"
+msgstr ""
+
+#: ../../debugger.md:76
+msgid "Step details shows more info about the opcode step."
+msgstr ""
+
+#: ../../debugger.md:78
+msgid "![](images/a-debug-step-detail.png)"
+msgstr ""
+
+#: ../../debugger.md:79
+msgid "Stack"
+msgstr ""
+
+#: ../../debugger.md:80
+msgid "This panel shows the EVM Stack."
+msgstr ""
+
+#: ../../debugger.md:82
+msgid "![](images/a-debugger-panel-stack.png)"
+msgstr ""
+
+#: ../../debugger.md:84
+msgid "For more info about the [stack](https://en.wikipedia.org/wiki/Stack_(abstract_data_type))."
+msgstr ""
+
+#: ../../debugger.md:85
+msgid "Memory"
+msgstr ""
+
+#: ../../debugger.md:87
+msgid "Memory is cleared for each new message call. Memory is linear and can be addressed at byte level. **Reads** are limited to a width of 256 bits while **writes** can be either 8 bits or 256 bits wide."
+msgstr ""
+
+#: ../../debugger.md:89
+msgid "The Memory panel consists of 3 columns. You might need to make Remix's side panel a bit wider to get the formatting to be correct. (Drag the border between the main panel and the side panel to the right)."
+msgstr ""
+
+#: ../../debugger.md:91
+msgid "The 1st column is the location in memory. The 2nd column is the hex encoded value. The 3rd column is the decoded value. If there is nothing, then the question marks (**?**) will show - like this:"
+msgstr ""
+
+#: ../../debugger.md:96
+msgid "Here is a full example of the **Memory** panel,"
+msgstr ""
+
+#: ../../debugger.md:98
+msgid "![](images/a-debugger-memory.png)"
+msgstr ""
+
+#: ../../debugger.md:100
+msgid "Some address slots have hex encoded values and those values are then decoded. For example, check position **0xa0** and **0x140**."
+msgstr ""
+
+#: ../../debugger.md:101
+msgid "Storage"
+msgstr ""
+
+#: ../../debugger.md:102
+msgid "This is the persistent storage."
+msgstr ""
+
+#: ../../debugger.md:104
+msgid "![](images/a-debug-storage.png)"
+msgstr ""
+
+#: ../../debugger.md:106
+msgid "Call Stack"
+msgstr ""
+
+#: ../../debugger.md:107
+msgid "All computations are performed on a data array called the **call stack**. It has a maximum size of 1024 elements and contains words of 256 bits."
+msgstr ""
+
+#: ../../debugger.md:109
+msgid "![](images/a-debug-call-stack.png)"
+msgstr ""
+
+#: ../../debugger.md:110
+msgid "Call Data"
+msgstr ""
+
+#: ../../debugger.md:111
+msgid "The call data contains the functions parameters."
+msgstr ""
+
+#: ../../debugger.md:113
+msgid "![](images/a-debug-call-data.png)"
+msgstr ""
+
+#: ../../debugger.md:114
+msgid "Return Value"
+msgstr ""
+
+#: ../../debugger.md:115
+msgid "The refers to the value that the function will return."
+msgstr ""
+
+#: ../../debugger.md:117
+msgid "![](images/a-debug-return.png)"
+msgstr ""
+
+#: ../../debugger.md:118
+msgid "Full Storage Changes"
+msgstr ""
+
+#: ../../debugger.md:119
+msgid "This shows the persistent storage at the end of the function."
+msgstr ""
+
+#: ../../debugger.md:121
+msgid "![](images/a-debug-full-store-change.png)"
+msgstr ""
+
+#: ../../debugger.md:122
+msgid "Breakpoints"
+msgstr ""
+
+#: ../../debugger.md:123
+msgid "Breakpoints can be placed in the gutter of the Editor to pause the debugger."
+msgstr ""
+
+#: ../../debugger.md:125
+msgid "Additional Info"
+msgstr ""
+
+#: ../../debugger.md:126
+msgid "The debugger's granular information gives users detailed information about what is happening in a transaction - so not only is the debugger good for debugging, it is also an excellent teaching tool."
+msgstr ""
+
+#: ../../debugger.md:128
+msgid "To learn about using the debugger, go to [Debugging Transactions](tutorial_debug.html)."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/file_explorer.po b/docs/locale/ko_KR/LC_MESSAGES/file_explorer.po
new file mode 100644
index 00000000000..9d0c4055c20
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/file_explorer.po
@@ -0,0 +1,436 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/file_explorer.pot\n"
+"X-Crowdin-File-ID: 6472\n"
+"Language: ko_KR\n"
+
+#: ../../file_explorer.md:1
+msgid "File Explorer"
+msgstr ""
+
+#: ../../file_explorer.md:3
+msgid "The File Explorer is for managing workspaces and files. This plugin also contains many shortcuts and commands. For a quick tour, right-click on a file to get a pop-up menu and also check the hamburger menu at the top right of the plugin."
+msgstr ""
+
+#: ../../file_explorer.md:5
+msgid "To find the File Explorer module - click the File Explorer icon."
+msgstr ""
+
+#: ../../file_explorer.md:7
+msgid "![](images/a-file-explorer1a.png)"
+msgstr ""
+
+#: ../../file_explorer.md:9
+msgid "The green checkmark at the top of the page means that this plugin is maintained by Remix Team. When the caret is clicked, more info about the plugin will be shown -including a link to this documentation."
+msgstr ""
+
+#: ../../file_explorer.md:11
+msgid "![](images/a-fe-top-caret.png)"
+msgstr ""
+
+#: ../../file_explorer.md:13
+msgid "File Storage"
+msgstr ""
+
+#: ../../file_explorer.md:15
+msgid "By default, Remix IDE stores files in **IndexedDB**."
+msgstr ""
+
+#: ../../file_explorer.md:17
+msgid "Coding in Remix IDE Online is different from writing in a Google doc."
+msgstr ""
+
+#: ../../file_explorer.md:18
+msgid "A Google doc saves your work to your account on Google’s servers."
+msgstr ""
+
+#: ../../file_explorer.md:19
+msgid "Remix has no user accounts. By default, files are ONLY saved locally in the browser’s storage. So tread carefully, browser storage is not permanent!"
+msgstr ""
+
+#: ../../file_explorer.md:21
+msgid "It is very important to have a file backup & file saving strategy."
+msgstr ""
+
+#: ../../file_explorer.md:23
+msgid "**Check the following techniques for:**"
+msgstr ""
+
+#: ../../file_explorer.md:24
+msgid "[saving to your hard drive](#file-storage-on-your-hard-drive)"
+msgstr ""
+
+#: ../../file_explorer.md:25
+msgid "using [remote Git repos](#connecting-remix-to-remote-git-repos)"
+msgstr ""
+
+#: ../../file_explorer.md:26
+msgid "[backing up workspaces](#backup)."
+msgstr ""
+
+#: ../../file_explorer.md:28
+msgid "**Important Note:** Clearing the browser storage & IndexedDB will **permanently delete** all the files stored there. It is prudent to backup your workspaces before deleting them...just in case."
+msgstr ""
+
+#: ../../file_explorer.md:30
+msgid "File Storage on your hard drive"
+msgstr ""
+
+#: ../../file_explorer.md:31
+msgid "Remixd"
+msgstr ""
+
+#: ../../file_explorer.md:32
+msgid "For storing files on your computer's hard drive when using Remix Online IDE, use **[Remixd](remixd.html)**"
+msgstr ""
+
+#: ../../file_explorer.md:33
+msgid "Remixd is an NPM module that runs on your computer. It allows you to share a specified folder on your computer with Remix IDE."
+msgstr ""
+
+#: ../../file_explorer.md:35
+msgid "Remix Desktop"
+msgstr ""
+
+#: ../../file_explorer.md:36
+msgid "Remix Desktop is a version of Remix IDE in an Electron app. Note that when using Remix Desktop, you cannot use a browser wallet like MetaMask, because Remix Desktop does not run in a browser. To connect to public networks, you need to use service like Infura and then use the WalletConnect plugin to approve transactions on your mobile device."
+msgstr ""
+
+#: ../../file_explorer.md:38
+msgid "Connecting Remix to remote Git repos"
+msgstr ""
+
+#: ../../file_explorer.md:39
+msgid "**If you are not using Remixd, it is highly recommended that you save to a remote repo.** (Browsers do crash causing localstorage & indexedDB to be corrupted)"
+msgstr ""
+
+#: ../../file_explorer.md:42
+msgid "Remix IDE can be connected to remote Git repos hosted in GitHub (or similar service) or in IPFS. Most of the Git operations are done in the **DGit** plugin. (DGit stands for Decentralized GIT)."
+msgstr ""
+
+#: ../../file_explorer.md:45
+msgid "[Branch management](#branch-management) is also available at the bottom of the File Explorer when the Workspace is Git initialized."
+msgstr ""
+
+#: ../../file_explorer.md:47
+msgid "Also see this article about [securing your files in Remix](https://medium.com/remix-ide/securing-you-file-in-remix-how-to-clone-and-push-f1350111aa13?source=friends_link&sk=a3dbd0d3b0b44a29a28e8c10f8821fde)"
+msgstr ""
+
+#: ../../file_explorer.md:49
+msgid "Workspaces"
+msgstr ""
+
+#: ../../file_explorer.md:52
+msgid "Workspaces in Remix are special folders that separate projects. Files in one workspace cannot import or access files in different workspace. Choosing a workspace is done with the **Workspaces** select box."
+msgstr ""
+
+#: ../../file_explorer.md:54
+msgid "![](images/a-fe-workspaces1.png)"
+msgstr ""
+
+#: ../../file_explorer.md:56
+msgid "New Workspace"
+msgstr ""
+
+#: ../../file_explorer.md:57
+msgid "Workspaces are created by clicking the + button or by going to the hamburger menu in the upper right side of the File Explorer."
+msgstr ""
+
+#: ../../file_explorer.md:59
+msgid "![](images/a-fe-workspaces-new.png)"
+msgstr ""
+
+#: ../../file_explorer.md:61
+msgid "When making a new workspace, Remix offers the following templates:"
+msgstr ""
+
+#: ../../file_explorer.md:63
+msgid "Blank"
+msgstr ""
+
+#: ../../file_explorer.md:64
+msgid "Remix Default"
+msgstr ""
+
+#: ../../file_explorer.md:65
+msgid "OpenZeppelin ERC20"
+msgstr ""
+
+#: ../../file_explorer.md:66
+msgid "OpenZeppelin ERC721"
+msgstr ""
+
+#: ../../file_explorer.md:67
+msgid "OpenZeppelin ERC1155"
+msgstr ""
+
+#: ../../file_explorer.md:68
+msgid "0xProject ERC20"
+msgstr ""
+
+#: ../../file_explorer.md:69
+msgid "Gnosis MultiSig"
+msgstr ""
+
+#: ../../file_explorer.md:71
+msgid "When choosing an OpenZeppelin template, additional functionality can be added. ![](images/a-fe-modal-oz.png)"
+msgstr ""
+
+#: ../../file_explorer.md:74
+msgid "Workspace operations"
+msgstr ""
+
+#: ../../file_explorer.md:76
+msgid "The **Workspace hamburger menu** is for operations that work on an entire workspace."
+msgstr ""
+
+#: ../../file_explorer.md:78
+msgid "![](images/a-fe-hamburger.png)"
+msgstr ""
+
+#: ../../file_explorer.md:80
+#: ../../file_explorer.md:167
+msgid "Clone"
+msgstr ""
+
+#: ../../file_explorer.md:81
+msgid "When clicking Clone, you’ll be asked for the url of a remote repo. A new workspace will be created that will contain the cloned repo. To manage the Git repo, go to the Dgit plugin."
+msgstr ""
+
+#: ../../file_explorer.md:82
+msgid "Backup"
+msgstr ""
+
+#: ../../file_explorer.md:83
+msgid "Backup is for downloading all the Workspaces in a .zip file. The zip file will have a folder called **.workspaces** that will contain a folder of each Workspace. Depending on your OS, you may need to change the preferences on .workspaces folder to make it visible."
+msgstr ""
+
+#: ../../file_explorer.md:85
+msgid "Restore"
+msgstr ""
+
+#: ../../file_explorer.md:86
+msgid "Restore is only for uploading the backup zip file."
+msgstr ""
+
+#: ../../file_explorer.md:88
+msgid "Create GitHub Actions"
+msgstr ""
+
+#: ../../file_explorer.md:89
+msgid "The Workspace operations to create **Solidity Test Workflow**, **Mocha Chai Test Workflow**, and **Slither Workflow** are for creating GitHub actions. When clicked, a .yml file is created in the .workflows folder of the active Workspace."
+msgstr ""
+
+#: ../../file_explorer.md:91
+msgid "Workspaces initialized with Git"
+msgstr ""
+
+#: ../../file_explorer.md:92
+msgid "Git initialized workspaces will have the Git icon next to them in the **Workspaces** select box."
+msgstr ""
+
+#: ../../file_explorer.md:94
+msgid "![](images/a-fe-select-git.png)"
+msgstr ""
+
+#: ../../file_explorer.md:96
+msgid "To initialize a new Workspace for GIT, check the box at the bottom of the Create Workspace modal. ![](images/a-fe-create-ws-modal.png)"
+msgstr ""
+
+#: ../../file_explorer.md:99
+msgid "Working with Files"
+msgstr ""
+
+#: ../../file_explorer.md:101
+msgid "When a file is clicked on it will appear in the Editor."
+msgstr ""
+
+#: ../../file_explorer.md:103
+msgid "Under the **Workspaces** select box are a number of icons that perform operations on files. More operations can be accessed by right-clicking on a file or folder ([see below](#right-click-on-a-file-or-folder))."
+msgstr ""
+
+#: ../../file_explorer.md:105
+msgid "![](images/a-fe-file-icons2.png)"
+msgstr ""
+
+#: ../../file_explorer.md:107
+msgid "**A.** Create a file "
+msgstr ""
+
+#: ../../file_explorer.md:108
+msgid "**B.** Create a folder "
+msgstr ""
+
+#: ../../file_explorer.md:109
+msgid "**C.** Publish all the file in this Workspace to a GIST "
+msgstr ""
+
+#: ../../file_explorer.md:110
+msgid "**D.** Upload a file into the current Workspace "
+msgstr ""
+
+#: ../../file_explorer.md:111
+msgid "**E.** Upload a folder into the current Workspace "
+msgstr ""
+
+#: ../../file_explorer.md:113
+msgid "Creating new files"
+msgstr ""
+
+#: ../../file_explorer.md:115
+msgid "There are 2 ways of creating files:"
+msgstr ""
+
+#: ../../file_explorer.md:116
+msgid "The first is to click on the new file icon (**H.** in fig.1), then an input for the new file’s name will appear in the **File Explorer**. Once a name is entered, a new empty file will open in the Editor. If the file's name is entered **without** a file extension, the extension **.sol** will be appended by default."
+msgstr ""
+
+#: ../../file_explorer.md:118
+msgid "![](images/a-file-explorer-new-file2.png)"
+msgstr ""
+
+#: ../../file_explorer.md:120
+msgid "The second way of creating a file is to right-click on a file or folder to get a popup menu."
+msgstr ""
+
+#: ../../file_explorer.md:122
+msgid "The new file will be placed in **the currently selected folder** of the Workspace. If a file and not a folder is selected, then the new file will be placed in that file’s folder. And if nothing is selected, then the file will be placed in the root of the current workspace's folder. Or to be brief — just be mindful of what folder it lands in."
+msgstr ""
+
+#: ../../file_explorer.md:124
+msgid "Publish to Gist"
+msgstr ""
+
+#: ../../file_explorer.md:127
+msgid "The icon (marked **J.** in fig.1) publishes all files from the current Workspace to a gist. **The Gist API requires users to be authenticated** to be able to publish a gist."
+msgstr ""
+
+#: ../../file_explorer.md:129
+msgid "Click [this link](https://github.com/settings/tokens) to Github tokens setup and select Generate new token. Then check the **Create gists** checkbox and generate a new token. Also make sure you check the box to enable the creation of Gists with this token."
+msgstr ""
+
+#: ../../file_explorer.md:131
+msgid "Take the token and paste it in Remix's **Settings** module in the **Github Access Token** section. And then click Save."
+msgstr ""
+
+#: ../../file_explorer.md:133
+msgid "You can also publish by right-clicking on the file or folder."
+msgstr ""
+
+#: ../../file_explorer.md:135
+msgid "Right-Click popup menu"
+msgstr ""
+
+#: ../../file_explorer.md:137
+msgid "Right-Click on a folder"
+msgstr ""
+
+#: ../../file_explorer.md:138
+msgid "![](images/a-fe-rtclick-file.png)"
+msgstr ""
+
+#: ../../file_explorer.md:140
+msgid "Right-clicking on a folder will bring a popup menu for operations you can do on that folder."
+msgstr ""
+
+#: ../../file_explorer.md:142
+msgid "The right-click popup menu also works with Remixd (which gives you access to a folder on your hard drive)."
+msgstr ""
+
+#: ../../file_explorer.md:144
+msgid "**Note:** When working with RemixD, and when adding files to the shared folder from your computer (and not from Remix), you'll need to open and close the containing folder or switch in and out of **localhost** workspace to refresh the view."
+msgstr ""
+
+#: ../../file_explorer.md:146
+msgid "Right-Click on a Solidity file"
+msgstr ""
+
+#: ../../file_explorer.md:148
+msgid "Right-clicking on a file with a .sol extension will bring up a popup menu - which includes options for compiling & flattening, creating UML diagrams, and generating documentation."
+msgstr ""
+
+#: ../../file_explorer.md:150
+msgid "![](images/a-fe-rtclick-sol-file.png)"
+msgstr ""
+
+#: ../../file_explorer.md:152
+msgid "Right-Click on a Script"
+msgstr ""
+
+#: ../../file_explorer.md:154
+msgid "![](images/a-fe-rtclick-script.png)"
+msgstr ""
+
+#: ../../file_explorer.md:156
+msgid "Right-click on any file with a .js or .ts extension to get the **Run** option in the popup menu to run the script."
+msgstr ""
+
+#: ../../file_explorer.md:158
+msgid "If the script you want to run is the active file in the Editor, you can also run it by using play button at the top left of the Editor or by inputting the command `remix.exeCurrent()` in the console."
+msgstr ""
+
+#: ../../file_explorer.md:160
+msgid "Git in the File Explorer"
+msgstr ""
+
+#: ../../file_explorer.md:162
+msgid "In Remix, a workspace can be initialized with Git. The Git commands then operate on the workspace."
+msgstr ""
+
+#: ../../file_explorer.md:164
+msgid "Initialize"
+msgstr ""
+
+#: ../../file_explorer.md:165
+msgid "For information about initializing a workspace, see this [section](#workspaces-initialized-with-git)."
+msgstr ""
+
+#: ../../file_explorer.md:168
+msgid "The clone command is located in the **Workspace hamburger menu**. For more information, see the section about [workspace operations](#workspace-operations)"
+msgstr ""
+
+#: ../../file_explorer.md:169
+msgid "Branch Management"
+msgstr ""
+
+#: ../../file_explorer.md:170
+msgid "When you are in a workspace that is initialized with Git, at the bottom of the File Explorer, you’ll see the place for managing branches."
+msgstr ""
+
+#: ../../file_explorer.md:172
+msgid "![](images/a-fe-branch-man1.png)"
+msgstr ""
+
+#: ../../file_explorer.md:174
+msgid "Then when you click on the branch name, this section will expand with an interface for switching branches and for creating a new branch."
+msgstr ""
+
+#: ../../file_explorer.md:176
+msgid "![](images/a-fe-branch-man2.png)"
+msgstr ""
+
+#: ../../file_explorer.md:178
+msgid "For the rest of the Git commands, go to the DGit plugin."
+msgstr ""
+
+#: ../../file_explorer.md:180
+msgid "For more info about the DGit plugin, see ![this article](https://medium.com/remix-ide/github-in-remix-ide-356de378f7da)."
+msgstr ""
+
+#: ../../file_explorer.md:180
+msgid "this article"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/foundry.po b/docs/locale/ko_KR/LC_MESSAGES/foundry.po
new file mode 100644
index 00000000000..111cdf19e8a
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/foundry.po
@@ -0,0 +1,83 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/foundry.pot\n"
+"X-Crowdin-File-ID: 7417\n"
+"Language: ko_KR\n"
+
+#: ../../foundry.md:1
+msgid "Foundry"
+msgstr ""
+
+#: ../../foundry.md:4
+msgid "_(Supported since Remix IDE v0.25.0)_"
+msgstr ""
+
+#: ../../foundry.md:6
+msgid "Foundry Provider"
+msgstr ""
+
+#: ../../foundry.md:9
+msgid "**Foundry Provider** is a plugin on Remix IDE which enables users to deploy the contract to the Foundry's built-in **Anvil** blockchain. `Foundry Provider` can be chosen from the list of environments in `Deploy & Run Transactions` plugin."
+msgstr ""
+
+#: ../../foundry.md:11
+msgid "![](images/a-foundry-provider.png)"
+msgstr ""
+
+#: ../../foundry.md:13
+msgid "As soon as you select `Foundry Provider`, a modal is opened asking for the `Anvil JSON-RPC Endpoint`."
+msgstr ""
+
+#: ../../foundry.md:15
+msgid "![](images/a-foundry-provider-modal.png)"
+msgstr ""
+
+#: ../../foundry.md:17
+msgid "If Foundry Anvil node is running with default options, the default endpoint value in modal will not need any change. In case, Anvil node host and port are different, JSON-RPC endpoint should be updated in the modal text box."
+msgstr ""
+
+#: ../../foundry.md:19
+msgid "Once the correct endpoint is filled in the modal, just click on `OK` and the accounts from the Anvil node will be loaded in the `ACCOUNT` section. Network id will also be shown."
+msgstr ""
+
+#: ../../foundry.md:21
+msgid "![](images/a-foundry-provider-connected.png)"
+msgstr ""
+
+#: ../../foundry.md:23
+msgid "Now, one can start deploying the contract from Remix IDE to the local Anvil node as usual."
+msgstr ""
+
+#: ../../foundry.md:25
+msgid "Foundry Remappings"
+msgstr ""
+
+#: ../../foundry.md:28
+msgid "Foundry manages dependencies using git submodules and can remap dependencies to make them easier to import. So import defined by remappings can have compilation errors on Remix IDE."
+msgstr ""
+
+#: ../../foundry.md:30
+msgid "To support such compilation, Remix suggests running [compilation using a compiler config file](https://remix-ide.readthedocs.io/en/latest/compile.html#json-file-for-compiler-configuration). Remix adds some default Forge remappings in the compiler config file when a Foundry project is loaded in Remix IDE using remixd."
+msgstr ""
+
+#: ../../foundry.md:32
+msgid "![](images/a-foundry-cc.png)"
+msgstr ""
+
+#: ../../foundry.md:34
+msgid "Further, more remappings can be added manually, if required."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/hardhat.po b/docs/locale/ko_KR/LC_MESSAGES/hardhat.po
new file mode 100644
index 00000000000..b75e3b7461b
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/hardhat.po
@@ -0,0 +1,215 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/hardhat.pot\n"
+"X-Crowdin-File-ID: 7419\n"
+"Language: ko_KR\n"
+
+#: ../../hardhat.md:1
+msgid "Hardhat"
+msgstr ""
+
+#: ../../hardhat.md:4
+msgid "_(Supported since Remix IDE v0.12.0 and Remixd v0.3.6)_"
+msgstr ""
+
+#: ../../hardhat.md:6
+msgid "Remixd and Hardhat"
+msgstr ""
+
+#: ../../hardhat.md:9
+msgid "**Note:** If you have not used `remixd` before, read more about it [here](./remixd.html)"
+msgstr ""
+
+#: ../../hardhat.md:11
+msgid "If `remixd` is running locally on your device and shared folder is a **Hardhat project**, an additional websocket plugin will be listening on port `65522`. According to its documentation,"
+msgstr ""
+
+#: ../../hardhat.md:13
+msgid "_Hardhat projects are npm projects with the hardhat package installed and a hardhat.config.js or hardhat.config.ts file._"
+msgstr ""
+
+#: ../../hardhat.md:15
+msgid "Remixd looks for the `hardhat.config.js` or `hardhat.config.ts` file in shared folder, and if it finds the file, the Hardhat websocket listener will run."
+msgstr ""
+
+#: ../../hardhat.md:17
+msgid "The Hardhat websocket listener is a websocket plugin similar to `remixd` and is used to perform Hardhat specific actions with Remix IDE."
+msgstr ""
+
+#: ../../hardhat.md:19
+msgid "It doesn't need any separate installation as it is shipped with [remixd NPM](https://www.npmjs.com/package/@remix-project/remixd) module."
+msgstr ""
+
+#: ../../hardhat.md:21
+msgid "![](images/a-hardhat-remixd.png)"
+msgstr ""
+
+#: ../../hardhat.md:23
+msgid "Enable Hardhat Compilation"
+msgstr ""
+
+#: ../../hardhat.md:26
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../hardhat.md:28
+msgid "To use Hardhat compilation with Remix IDE efficiently:"
+msgstr ""
+
+#: ../../hardhat.md:30
+msgid "**Hardhat** should be installed locally on the system [https://hardhat.org/getting-started/#installation](https://hardhat.org/getting-started/#installation)"
+msgstr ""
+
+#: ../../hardhat.md:31
+msgid "Shared folder should be a Hardhat project containing `hardhat.config.js` or `hardhat.config.ts`"
+msgstr ""
+
+#: ../../hardhat.md:32
+msgid "`Remixd` Hardhat websocket listener should be running at `65522`"
+msgstr ""
+
+#: ../../hardhat.md:34
+msgid "How to use"
+msgstr ""
+
+#: ../../hardhat.md:36
+msgid "If a hardhat project is shared through remixd and `localhost` workspace is loaded in Remix IDE, there will be an extra checkbox shown in `Solidity Compiler` plugin with the label `Enable Hardhat Compilation`."
+msgstr ""
+
+#: ../../hardhat.md:38
+msgid "![](images/a-hardhat-compilation.png)"
+msgstr ""
+
+#: ../../hardhat.md:40
+msgid "There is an info icon alongside the label which redirects to a specific section of Remix official documentation that explains how to use Hardhat compilation."
+msgstr ""
+
+#: ../../hardhat.md:42
+msgid "One can check the `Enable Hardhat Compilation` box to run the compilation for Hardhat along with the Remix using the compiler configuration in `Solidity Compiler` plugin."
+msgstr ""
+
+#: ../../hardhat.md:44
+msgid "On clicking `Compile` button, a file with `remix-compiler.config.js` will be created on the project root which will be storing compiler configuration set in Remix's `Solidity Compiler` plugin. It is passed to Hardhat for compilation."
+msgstr ""
+
+#: ../../hardhat.md:46
+msgid "The result of the compilation will be shown in the Remix IDE terminal"
+msgstr ""
+
+#: ../../hardhat.md:48
+msgid "![](images/a-hardhat-compilation-success.png)"
+msgstr ""
+
+#: ../../hardhat.md:50
+msgid "and also in the **remixd** terminal."
+msgstr ""
+
+#: ../../hardhat.md:52
+msgid "![](images/a-hardhat-compilation-success-remixd.png)"
+msgstr ""
+
+#: ../../hardhat.md:54
+msgid "Hardhat Provider"
+msgstr ""
+
+#: ../../hardhat.md:57
+msgid "_In Hardhat, contracts are deployed by starting a local node. Read more about it in [Hardhat documentation](https://hardhat.org/getting-started/#connecting-a-wallet-or-dapp-to-hardhat-network)_"
+msgstr ""
+
+#: ../../hardhat.md:59
+msgid "**Hardhat Provider** is a plugin on Remix IDE which enables users to deploy the contract to the Hardhat 'localhost' network. This can be chosen from the `ENVIRONMENT` dropdown of `Deploy and Run Transactions` plugin."
+msgstr ""
+
+#: ../../hardhat.md:61
+msgid "![](images/a-hardhat-provider-dropdown.png)"
+msgstr ""
+
+#: ../../hardhat.md:63
+msgid "As soon as you select `Hardhat Provider`, a modal is opened asking for the `Hardhat JSON-RPC Endpoint`."
+msgstr ""
+
+#: ../../hardhat.md:65
+msgid "![](images/a-hardhat-provider-modal.png)"
+msgstr ""
+
+#: ../../hardhat.md:67
+msgid "If Hardhat node is running with default options, then the default endpoint value in modal will not need any change. In case, Hardhat node host and port are different, JSON-RPC endpoint should be updated in the modal text box."
+msgstr ""
+
+#: ../../hardhat.md:69
+msgid "Once the correct endpoint is filled in the modal, just click on `OK` and the accounts from the Hardhat node will be loaded in the `ACCOUNT` section. Network id will also be shown."
+msgstr ""
+
+#: ../../hardhat.md:71
+msgid "![](images/a-hardhat-provider-connected.png)"
+msgstr ""
+
+#: ../../hardhat.md:73
+msgid "Now, one can start deploying the contract from Remix IDE to the Hardhat local node as usual."
+msgstr ""
+
+#: ../../hardhat.md:75
+msgid "`console.log` in Remix IDE"
+msgstr ""
+
+#: ../../hardhat.md:78
+msgid "_(Supported since Remix IDE v0.17.0)_"
+msgstr ""
+
+#: ../../hardhat.md:80
+msgid "Remix IDE supports hardhat console library while using `Remix VM`. It can be used while making a transaction or running unit tests."
+msgstr ""
+
+#: ../../hardhat.md:82
+msgid "Deploy and Run Transactions"
+msgstr ""
+
+#: ../../hardhat.md:84
+msgid "To try it out, you need to put an import statement and use `console.log` to print the value as shown in image."
+msgstr ""
+
+#: ../../hardhat.md:86
+msgid "![](images/hardhat-console-file.png)"
+msgstr ""
+
+#: ../../hardhat.md:88
+msgid "Further, once you execute the `changeOwner` method, the value from console statement will be shown in Remix terminal after transaction details as below:"
+msgstr ""
+
+#: ../../hardhat.md:90
+msgid "![](images/hardhat-tx-terminal.png)"
+msgstr ""
+
+#: ../../hardhat.md:92
+msgid "Solidity Unit Testing"
+msgstr ""
+
+#: ../../hardhat.md:94
+msgid "Similarly, `console.log` can be used while running unit tests using Remix Solidity Unit Testing plugin. See image below."
+msgstr ""
+
+#: ../../hardhat.md:96
+msgid "![](images/hardhat-utesting-file.png)"
+msgstr ""
+
+#: ../../hardhat.md:98
+msgid "For the tests including logging message, it will display in the Remix Terminal corresponding to test name."
+msgstr ""
+
+#: ../../hardhat.md:100
+msgid "![](images/hardhat-utesting-terminal.png)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/hardhat_console.po b/docs/locale/ko_KR/LC_MESSAGES/hardhat_console.po
new file mode 100644
index 00000000000..0185b941e3d
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/hardhat_console.po
@@ -0,0 +1,71 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-06-20 17:14-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/hardhat_console.pot\n"
+"X-Crowdin-File-ID: 7421\n"
+"Language: ko_KR\n"
+
+#: ../../hardhat_console.md:1
+msgid "Hardhat console.log Integration"
+msgstr ""
+
+#: ../../hardhat_console.md:4
+msgid "(Supported since Remix IDE v0.17.0)"
+msgstr ""
+
+#: ../../hardhat_console.md:6
+msgid "Prologue"
+msgstr ""
+
+#: ../../hardhat_console.md:8
+msgid "Hardhat Network allows you to print logging messages and contract variables by calling console.log() from your Solidity code. To use it, you simply import hardhat/console.sol and call it."
+msgstr ""
+
+#: ../../hardhat_console.md:10
+msgid "For more: https://hardhat.org/hardhat-network/reference/#console-log"
+msgstr ""
+
+#: ../../hardhat_console.md:12
+msgid "console.log in Remix IDE"
+msgstr ""
+
+#: ../../hardhat_console.md:15
+msgid "Remix IDE supports hardhat console library while using JavaScript VM. It can be used while making a transaction or running unit tests."
+msgstr ""
+
+#: ../../hardhat_console.md:17
+msgid "Deploy and Run Transactions"
+msgstr ""
+
+#: ../../hardhat_console.md:19
+msgid "To try it out, you need to put an import statement and use console.log to print the value as shown in image."
+msgstr ""
+
+#: ../../hardhat_console.md:23
+msgid "Further, once you execute the changeOwner method, value from console statement will be shown in Remix terminal after transaction details as below:"
+msgstr ""
+
+#: ../../hardhat_console.md:27
+msgid "Solidity Unit Testing"
+msgstr ""
+
+#: ../../hardhat_console.md:29
+msgid "Similarly, console.log can be used while running unit tests using Remix Solidity Unit Testing plugin. See image below."
+msgstr ""
+
+#: ../../hardhat_console.md:33
+msgid "For the tests including logging message, it will display in the Remix Terminal corresponding to test name."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/import.po b/docs/locale/ko_KR/LC_MESSAGES/import.po
new file mode 100644
index 00000000000..b2991d500da
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/import.po
@@ -0,0 +1,171 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/import.pot\n"
+"X-Crowdin-File-ID: 6474\n"
+"Language: ko_KR\n"
+
+#: ../../import.md:1
+msgid "Importing & Loading Source Files in Solidity"
+msgstr ""
+
+#: ../../import.md:4
+msgid "There are two main reasons for loading external files into Remix:"
+msgstr ""
+
+#: ../../import.md:5
+msgid "**to import a library or dependency** (for files you will NOT be editing)"
+msgstr ""
+
+#: ../../import.md:6
+msgid "**to load some files for manipulation, editing and play** (for files you might want to edit)"
+msgstr ""
+
+#: ../../import.md:8
+msgid "Importing a library or dependency"
+msgstr ""
+
+#: ../../import.md:10
+msgid "When importing from NPM, or a URL (like github, an IPFS gateway, or a Swarm gateway) you do not need to do anything more than use the `import` statement in your contract. The dependencies do not need to be \"preloaded\" into the File Explorer's current Workspace before the contract is compiled."
+msgstr ""
+
+#: ../../import.md:12
+msgid "Files loaded from the import statement are placed in the **Files Explorer's** current Workspace's `.deps` folder."
+msgstr ""
+
+#: ../../import.md:14
+msgid "Under the hood, Remix checks to see if the files are already loaded in the **.deps** directory. If not, it gets them via unpkg if it is an NPM lib."
+msgstr ""
+
+#: ../../import.md:16
+msgid "Here are some example import statements:"
+msgstr ""
+
+#: ../../import.md:18
+msgid "Import from NPM"
+msgstr ""
+
+#: ../../import.md:27
+msgid "**Note:** In the example above, **@openzeppelin** is the name of the npm library. In the following example the library's name does not begin with an @ - but Remix will go and check npm for a library of that name."
+msgstr ""
+
+#: ../../import.md:33
+msgid "Import from a Github URL"
+msgstr ""
+
+#: ../../import.md:37
+msgid "You should specify the release tag (where available), otherwise you will get the latest code in the master branch. For OpenZeppelin Contracts you should only use code published in an official release, the example above imports from OpenZeppelin Contracts v2.5.0."
+msgstr ""
+
+#: ../../import.md:39
+msgid "Import from Swarm"
+msgstr ""
+
+#: ../../import.md:45
+msgid "Import from IPFS"
+msgstr ""
+
+#: ../../import.md:51
+msgid "Importing a local file not in .deps"
+msgstr ""
+
+#: ../../import.md:53
+msgid "To import a file NOT in the **.deps** folder, use a relative path (**./**). For example:"
+msgstr ""
+
+#: ../../import.md:59
+msgid "**Note:** It is not possible to import across Workspaces."
+msgstr ""
+
+#: ../../import.md:61
+msgid "Importing a file from your computer's filesystem"
+msgstr ""
+
+#: ../../import.md:63
+msgid "This method uses **remixd** - the remix daemon. Please go to the [remixd docs](remixd.html) for instructions about how to bridge the divide between the browser and your computer's filesystem."
+msgstr ""
+
+#: ../../import.md:65
+msgid "More about the import keyword"
+msgstr ""
+
+#: ../../import.md:66
+msgid "For a detailed explanation of the `import` keyword see the [Solidity documentation](https://docs.soliditylang.org/en/latest/layout-of-source-files.html?highlight=import#importing-other-source-files)"
+msgstr ""
+
+#: ../../import.md:70
+msgid "Importing files for manipulation"
+msgstr ""
+
+#: ../../import.md:71
+msgid "When importing from the home tab widgets or with a remix command in the console, the files are placed in the **root of the current Workspace** inside a folder that shows their source - eg github or gists."
+msgstr ""
+
+#: ../../import.md:73
+msgid "Import buttons on the Remix home tab"
+msgstr ""
+
+#: ../../import.md:74
+msgid "The Gist, Github, Swarm, IPFS, & HTTPS buttons are to assist in getting files into Remix so you can explore."
+msgstr ""
+
+#: ../../import.md:76
+msgid "![](images/a-import-from.png)"
+msgstr ""
+
+#: ../../import.md:78
+msgid "Clicking on any of the Import buttons will bring up a modal like this one:"
+msgstr ""
+
+#: ../../import.md:80
+msgid "![](images/a-gist-modal.png)"
+msgstr ""
+
+#: ../../import.md:82
+msgid "No need to wrap the input in quotes."
+msgstr ""
+
+#: ../../import.md:83
+msgid "Loading with a remix command in the console"
+msgstr ""
+
+#: ../../import.md:84
+msgid "The 2 remix commands for loading are:"
+msgstr ""
+
+#: ../../import.md:85
+msgid "remix.loadurl(url)"
+msgstr ""
+
+#: ../../import.md:86
+msgid "remix.loadgist(id)"
+msgstr ""
+
+#: ../../import.md:95
+msgid "Accessing files loaded from the Home tab or from a remix command"
+msgstr ""
+
+#: ../../import.md:97
+msgid "When you load from github, a folder named `github` folder is created in the root of your current workspace. To import a file from the `github` folder, you would use a command like this:"
+msgstr ""
+
+#: ../../import.md:103
+msgid "Notice that this import statement doesn't include the version information that was in the remix.load(url) command. So it is recommended that you use the methods described at the top of this page for importing dependencies that you are not intending to edit."
+msgstr ""
+
+#: ../../import.md:105
+msgid "Assume the .sol file that contained the import statement above is in the contracts folder. Notice that this import statement didn't need to traverse back to the github folder with a relative path like: **../github**."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/index.po b/docs/locale/ko_KR/LC_MESSAGES/index.po
new file mode 100644
index 00000000000..71e394a843c
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/index.po
@@ -0,0 +1,131 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/index.pot\n"
+"X-Crowdin-File-ID: 6476\n"
+"Language: ko_KR\n"
+
+#: ../../index.rst:51
+msgid "Introduction"
+msgstr ""
+
+#: ../../index.rst:61
+msgid "Core Modules"
+msgstr ""
+
+#: ../../index.rst:73
+msgid "Solidity modules"
+msgstr ""
+
+#: ../../index.rst:84
+msgid "Unit Testing"
+msgstr ""
+
+#: ../../index.rst:94
+msgid "External Tool Integrations"
+msgstr ""
+
+#: ../../index.rst:103
+msgid "Guides"
+msgstr ""
+
+#: ../../index.rst:114
+msgid "Advanced"
+msgstr ""
+
+#: ../../index.rst:121
+msgid "Miscellaneous"
+msgstr ""
+
+#: ../../index.rst:2
+msgid "Welcome to Remix's documentation!"
+msgstr ""
+
+#: ../../index.rst:4
+msgid "**Remix IDE** is used for the entire journey of smart contract development by users at every knowledge level. It requires no setup, fosters a fast development cycle, and has a rich set of plugins with intuitive GUIs. The IDE comes in two flavors (web app or desktop app) and as a VSCode extension."
+msgstr ""
+
+#: ../../index.rst:8
+msgid "**Remix Online IDE**, see: `https://remix.ethereum.org `__"
+msgstr ""
+
+#: ../../index.rst:10
+msgid "Supported browsers: Firefox, Chrome, Brave. We do not support use of Remix on tablets or mobile devices."
+msgstr ""
+
+#: ../../index.rst:12
+msgid "**Remix Desktop IDE**, see releases: `https://github.com/ethereum/remix-desktop/releases `__"
+msgstr ""
+
+#: ../../index.rst:14
+msgid "**Ethereum Remix**, the VSCode extension, see `here `__. Documentation for the VSCode extension is located `here `__."
+msgstr ""
+
+#: ../../index.rst:17
+msgid "**Remix Documentation Translations** The Remix docs are currently in `English `__ and `Simplified Chinese `__. More languages are on the way."
+msgstr ""
+
+#: ../../index.rst:20
+msgid "Remix Project"
+msgstr ""
+
+#: ../../index.rst:21
+msgid "Remix IDE is part of the `Remix Project `__ which also includes the `Remix Plugin Engine `__ and `Remix Libraries `__, which are low-level tools for wider use."
+msgstr ""
+
+#: ../../index.rst:24
+msgid "Remix IDE is available at `remix.ethereum.org `__ and more information can be found in these docs. Our IDE tool is available at `our GitHub repository `__."
+msgstr ""
+
+#: ../../index.rst:29
+msgid "This set of documents covers instructions on how to use Remix. Additional information can be found in our `blog `__ and in our tutorial tool, `LearnEth `__ located inside of Remix IDE."
+msgstr ""
+
+#: ../../index.rst:32
+msgid "Useful links:"
+msgstr ""
+
+#: ../../index.rst:34
+msgid "`Solidity Documentation `__"
+msgstr ""
+
+#: ../../index.rst:36
+msgid "`Remix Alpha `__ - The version where we test new Remix release (not stable!)."
+msgstr ""
+
+#: ../../index.rst:38
+msgid "`Remix Desktop `__ - Remix Desktop's release page."
+msgstr ""
+
+#: ../../index.rst:40
+msgid "`Remix on Github `__"
+msgstr ""
+
+#: ../../index.rst:42
+msgid "`Remix on Medium `__"
+msgstr ""
+
+#: ../../index.rst:44
+msgid "`Remix on Twitter `__"
+msgstr ""
+
+#: ../../index.rst:46
+msgid "`Our Discord support channel `__"
+msgstr ""
+
+#: ../../index.rst:48
+msgid "`Ethereum.org's Developer resources `__"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/layout.po b/docs/locale/ko_KR/LC_MESSAGES/layout.po
new file mode 100644
index 00000000000..ede5fed1b36
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/layout.po
@@ -0,0 +1,115 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/layout.pot\n"
+"X-Crowdin-File-ID: 6478\n"
+"Language: ko_KR\n"
+
+#: ../../layout.md:1
+msgid "Navigating Remix"
+msgstr ""
+
+#: ../../layout.md:3
+msgid "Remix IDE is comprised of three panels and a terminal."
+msgstr ""
+
+#: ../../layout.md:5
+msgid "![](images/a-layout1c.png)"
+msgstr ""
+
+#: ../../layout.md:7
+msgid "Icon Panel - click to change which plugins appear in the Side Panel"
+msgstr ""
+
+#: ../../layout.md:8
+msgid "Side Panel - most but not all plugins have their interface here"
+msgstr ""
+
+#: ../../layout.md:9
+msgid "Main Panel - for editing files, large format tools, and the home tab"
+msgstr ""
+
+#: ../../layout.md:10
+msgid "Terminal - for viewing transaction receipts and various logs"
+msgstr ""
+
+#: ../../layout.md:12
+msgid "Default Tools"
+msgstr ""
+
+#: ../../layout.md:15
+msgid "When Remix is loaded - the icon panel shows these icons by default."
+msgstr ""
+
+#: ../../layout.md:17
+msgid "![](images/a-icons-at-load.png)"
+msgstr ""
+
+#: ../../layout.md:19
+msgid "To load more plugins go to the **[Plugin Manager](#plugin-manager)** or click on one of the featured plugins in the home tab."
+msgstr ""
+
+#: ../../layout.md:21
+msgid "Home tab"
+msgstr ""
+
+#: ../../layout.md:24
+msgid "![](images/a-hometab.png)"
+msgstr ""
+
+#: ../../layout.md:26
+msgid "The home tab is located in the Main Panel. It can be closed, just like any of the main panel tabs. You can also access it (even if closed) by clicking the Remix logo at the top of the icon panel."
+msgstr ""
+
+#: ../../layout.md:28
+msgid "The home tab contains links to resources, announcements, tutorials, featured plugins and methods for loading files into Remix and shortcuts for connecting Remix to your local filesystem."
+msgstr ""
+
+#: ../../layout.md:30
+msgid "Solidity"
+msgstr ""
+
+#: ../../layout.md:31
+msgid "Clicking the **Solidity button** in the featured plugins section of the home tab will activate **Solidity Static Analysis** and **Solidity Unit Testing** as well as the Solidity Compiler and Deploy & Run (which are there by default)."
+msgstr ""
+
+#: ../../layout.md:33
+msgid "To see all the plugins go to the **Plugin Manager** - by selecting the plug in the icon panel. ![](images/a-plug.png) You can also get there by clicking the **More** button in the featured plugin list."
+msgstr ""
+
+#: ../../layout.md:37
+msgid "Plugin Manager"
+msgstr ""
+
+#: ../../layout.md:40
+msgid "In Remix, you only need to load the functionality you need - and the Plugin Manager is where you manage what plugins are turned off or on."
+msgstr ""
+
+#: ../../layout.md:42
+msgid "The Plugin Manager is also the place you go when you are creating your own plugin and you want to load your local plugin into Remix. In that case you'd click on the \"Connect to a Local Plugin\" link at the top of the Plugin Manager panel."
+msgstr ""
+
+#: ../../layout.md:44
+msgid "Themes"
+msgstr ""
+
+#: ../../layout.md:47
+msgid "Themes are chosen at the bottom of the **Settings** plugin. These are Bootstrap-based themes. The Dark and Light themes are most customized for Remix."
+msgstr ""
+
+#: ../../layout.md:49
+msgid "![](images/a-themes.png)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/locations.po b/docs/locale/ko_KR/LC_MESSAGES/locations.po
new file mode 100644
index 00000000000..2198ae4f03c
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/locations.po
@@ -0,0 +1,303 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/locations.pot\n"
+"X-Crowdin-File-ID: 6480\n"
+"Language: ko_KR\n"
+
+#: ../../locations.md:1
+msgid "Remix URLs & Links with Parameters"
+msgstr ""
+
+#: ../../locations.md:4
+msgid "Main Remix URLs"
+msgstr ""
+
+#: ../../locations.md:6
+msgid "Remix IDE Online is located at [https://remix.ethereum.org](https://remix.ethereum.org)."
+msgstr ""
+
+#: ../../locations.md:8
+msgid "The alpha version of remix is located at [https://remix-alpha.ethereum.org](https://remix-alpha.ethereum.org). This is not a stable version."
+msgstr ""
+
+#: ../../locations.md:10
+msgid "Github repo: [https://github.com/ethereum/remix-project](https://github.com/ethereum/remix-project). The README contains instructions for running Remix-IDE locally."
+msgstr ""
+
+#: ../../locations.md:12
+msgid "Remix Desktop is an Electron App. Here is the [release page](https://github.com/ethereum/remix-desktop/releases)."
+msgstr ""
+
+#: ../../locations.md:14
+msgid "Remix has a VSCode extension called [Ethereum Remix](https://marketplace.visualstudio.com/items?itemName=RemixProject.ethereum-remix)."
+msgstr ""
+
+#: ../../locations.md:16
+msgid "The Remix twitter account is [EthereumRemix](https://twitter.com/EthereumRemix)."
+msgstr ""
+
+#: ../../locations.md:18
+msgid "The Remix Project Medium publication is: [https://medium.com/remix-ide](https://medium.com/remix-ide)."
+msgstr ""
+
+#: ../../locations.md:20
+msgid "The [Remix Project](https://remix-project.org) website introduces the different facets of our project."
+msgstr ""
+
+#: ../../locations.md:22
+msgid "The [Remix Gitter Channel](https://gitter.im/ethereum/remix) is a forum to post your questions about Remix."
+msgstr ""
+
+#: ../../locations.md:24
+msgid "Customize Remix with URL Parameters"
+msgstr ""
+
+#: ../../locations.md:26
+msgid "There are many ways to customize Remix IDE by using url parameters. Here are some options:"
+msgstr ""
+
+#: ../../locations.md:27
+msgid "Activate or deactivate a **list of plugins to be activated** - and specify which plugin gains the \"focus\". [SEE MORE](#activating-a-list-of-plugins)"
+msgstr ""
+
+#: ../../locations.md:28
+msgid "Send **commands to a plugin** - once the plugin loads. [SEE MORE](#pass-commands-to-a-plugin-s-api-via-a-url-param)"
+msgstr ""
+
+#: ../../locations.md:29
+msgid "[Load a GIST](#load-a-gist), [a file via a url](#load-a-file-via-a-url-into-the-editor) or a [base64 encoded string](#load-an-encoded-base64-string-into-a-sol-file-in-the-editor) into Remix's Editor."
+msgstr ""
+
+#: ../../locations.md:30
+msgid "Specify **the theme** (Dark or Light). [SEE MORE](#specifying-a-theme)"
+msgstr ""
+
+#: ../../locations.md:31
+msgid "Specify which panels should be **minimized** - useful when embedding Remix in your site. [SEE MORE](#minimizing-remix-panels)"
+msgstr ""
+
+#: ../../locations.md:32
+msgid "Select the **version of the Solidity** compiler, enable/disable the **optimizer**, turn on auto compile or choose the language for the Solidity compiler. [SEE MORE](#load-a-specific-version-of-the-solidity-compiler)"
+msgstr ""
+
+#: ../../locations.md:33
+msgid "Load **verified contracts from Etherscan** using contract address [SEE MORE](#load-contracts-from-etherscan-via-address)"
+msgstr ""
+
+#: ../../locations.md:35
+msgid "Activating a list of plugins"
+msgstr ""
+
+#: ../../locations.md:36
+msgid "The following example contains the url parameter **activate** followed by **a comma separated list of plugins**."
+msgstr ""
+
+#: ../../locations.md:38
+msgid "The last plugin in the list will gain the focus."
+msgstr ""
+
+#: ../../locations.md:40
+msgid "When you use the activate list, all other plugins that a user had loaded will be deactivated. This does not apply to the file explorer, the plugin manager, and the settings modules because these are never deactivated."
+msgstr ""
+
+#: ../../locations.md:46
+msgid "Note: a plugin is called by its **name** as specified in its profile. There are 3 types of plugins:"
+msgstr ""
+
+#: ../../locations.md:47
+msgid "**Native Mandatory Plugins** that are always loaded (so you don't need to activate them using the url parameter **activate**). These include: **fileManager**, **settings**, **manager** (the plugin manager), and **udapp** (deploy & run)."
+msgstr ""
+
+#: ../../locations.md:48
+msgid "**Native Optional Plugins** that are loaded on demand: **debugger**, **hardhat-provider**, **solidity**, **solidityStaticAnalysis**, **solidityUnitTesting**, and **vyper**"
+msgstr ""
+
+#: ../../locations.md:49
+msgid "**External Plugins** to get these plugins' names, please go to [https://github.com/ethereum/remix-plugins-directory/tree/master/plugins](https://github.com/ethereum/remix-plugins-directory/tree/master/plugins)."
+msgstr ""
+
+#: ../../locations.md:51
+msgid "Deactivating a list of plugins"
+msgstr ""
+
+#: ../../locations.md:56
+msgid "Minimizing Remix panels"
+msgstr ""
+
+#: ../../locations.md:58
+msgid "The following URL will **close everything except the main panel & the icon panel** (the side and terminal are minimized)."
+msgstr ""
+
+#: ../../locations.md:63
+msgid "To minimize just the side panel, use this URL:"
+msgstr ""
+
+#: ../../locations.md:68
+msgid "To minimize just the terminal, use this URL:"
+msgstr ""
+
+#: ../../locations.md:73
+msgid "Specifying a theme"
+msgstr ""
+
+#: ../../locations.md:74
+msgid "To link to Remix with a theme specified use this url:"
+msgstr ""
+
+#: ../../locations.md:79
+msgid "A URL example combining multiple parameters"
+msgstr ""
+
+#: ../../locations.md:80
+msgid "To link to Remix with the list of plugins activated and with:"
+msgstr ""
+
+#: ../../locations.md:82
+msgid "the Learneth gaining the side panel's focus (because it is the last in the list)"
+msgstr ""
+
+#: ../../locations.md:83
+msgid "the Light theme loaded"
+msgstr ""
+
+#: ../../locations.md:84
+msgid "the terminal minimized"
+msgstr ""
+
+#: ../../locations.md:85
+msgid "optimize off"
+msgstr ""
+
+#: ../../locations.md:87
+msgid "use this url:"
+msgstr ""
+
+#: ../../locations.md:92
+msgid "Pass commands to a plugin's API via a url param"
+msgstr ""
+
+#: ../../locations.md:93
+msgid "The URL parameter to issue a command is `call`. Following the `call` is a // (double slash) separated list of arguments."
+msgstr ""
+
+#: ../../locations.md:99
+msgid "An example using call"
+msgstr ""
+
+#: ../../locations.md:100
+msgid "The URL below uses `activate` & `call`. It **activates** a number of plugins and **calls** the File Explorers to tell it to load one of the default Remix files:"
+msgstr ""
+
+#: ../../locations.md:105
+msgid "Load a specific tutorial in the **LearnEth** plugin:"
+msgstr ""
+
+#: ../../locations.md:110
+msgid "Make calls to a number of different plugins' APIs"
+msgstr ""
+
+#: ../../locations.md:111
+msgid "Use the `calls` parameter to call a series of plugins. Use `///` to separate the calls."
+msgstr ""
+
+#: ../../locations.md:113
+msgid "For example, this command, after activating a list of plugins, calls the LearnEth plugin's API and then calls the File Explorer's API."
+msgstr ""
+
+#: ../../locations.md:118
+msgid "Load a file via a URL into the Editor"
+msgstr ""
+
+#: ../../locations.md:119
+msgid "The `url` parameter takes a URL, loads it into the Editor and saves it into the code-sample workspace of the File Explorer:"
+msgstr ""
+
+#: ../../locations.md:124
+msgid "Load an encoded base64 string into a .sol file in the Editor"
+msgstr ""
+
+#: ../../locations.md:125
+msgid "The `code` parameter takes an encoded base64 string and loads it into the Editor as a .sol file and saves to the code-sample workspace of the File Explorer:"
+msgstr ""
+
+#: ../../locations.md:129
+msgid "Load contracts from Etherscan via address"
+msgstr ""
+
+#: ../../locations.md:130
+msgid "The `address` parameter takes an address, loads all the **verified contracts** found for the address on different Ethereum networks and saves them into the `etherscan-code-sample` workspace of the File Explorer:"
+msgstr ""
+
+#: ../../locations.md:135
+msgid "Load a Solidity contract from Github"
+msgstr ""
+
+#: ../../locations.md:136
+msgid "With a github url of a Solidity contract like this one:"
+msgstr ""
+
+#: ../../locations.md:142
+msgid "Then delete the **github** part and type in **remix.ethereum.org** in its place, like this:"
+msgstr ""
+
+#: ../../locations.md:148
+msgid "Remix will fetch the Solidity file and open it up in the File Explorer in a Workspace named **code-sample**."
+msgstr ""
+
+#: ../../locations.md:150
+msgid "Load a GIST"
+msgstr ""
+
+#: ../../locations.md:151
+msgid "The URL parameter here is `gist`."
+msgstr ""
+
+#: ../../locations.md:156
+msgid "Load a GIST and have it be visible in the Editor:"
+msgstr ""
+
+#: ../../locations.md:157
+msgid "Using both `gist` & `call`"
+msgstr ""
+
+#: ../../locations.md:162
+msgid "Load a GIST, have it be visible in the Editor & load a list of plugins:"
+msgstr ""
+
+#: ../../locations.md:167
+msgid "Load a specific version of the Solidity compiler:"
+msgstr ""
+
+#: ../../locations.md:171
+msgid "**Note:** you need to specify both the Solidity version and the commit."
+msgstr ""
+
+#: ../../locations.md:173
+msgid "Load a custom Solidity compiler:"
+msgstr ""
+
+#: ../../locations.md:178
+msgid "Turn on autoCompile:"
+msgstr ""
+
+#: ../../locations.md:183
+msgid "Select the language for the Solidity Compiler"
+msgstr ""
+
+#: ../../locations.md:184
+msgid "Choose YUL or Solidity with the language parameter."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/plugin_list.po b/docs/locale/ko_KR/LC_MESSAGES/plugin_list.po
new file mode 100644
index 00000000000..ab8e7b54a20
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/plugin_list.po
@@ -0,0 +1,155 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/plugin_list.pot\n"
+"X-Crowdin-File-ID: 7423\n"
+"Language: ko_KR\n"
+
+#: ../../plugin_list.md:1
+msgid "Plugin List"
+msgstr ""
+
+#: ../../plugin_list.md:3
+msgid "Here is the list of Remix plugins that you will see in the Plugin Manager:"
+msgstr ""
+
+#: ../../plugin_list.md:5
+msgid "Core Plugins"
+msgstr ""
+
+#: ../../plugin_list.md:7
+msgid "**File Explorer** ![](images/pi-fe.png) The File Explorers is where you can see the files. profile name: **fileManager** [Documentation](file_explorer.html)"
+msgstr ""
+
+#: ../../plugin_list.md:12
+msgid "**Remixd** (No UI) Remixd (with an npm package running locally) connects a folder on your filesystem to the Remix website. Please see the docs for instructions. profile name: **remixd** [Documentation](https://remix-ide.readthedocs.io/en/latest/remixd.html)"
+msgstr ""
+
+#: ../../plugin_list.md:17
+msgid "**Solidity Compiler** ![](images/pi-sol.png) Compiles Solidity & YUL. profile name: **solidity** [Documentation](compile.html)"
+msgstr ""
+
+#: ../../plugin_list.md:22
+msgid "**Deploy & Run** ![](images/pi-deploy.png) Deploy & interact with smart contracts on the in-browser chain (JSVM), local nodes, and public networks. profile name: **udapp** [Documentation](run.html)"
+msgstr ""
+
+#: ../../plugin_list.md:27
+msgid "**Debugger** ![](images/pi-debug.png) Insert breakpoints, step through a contract, check high level and low level parameters, and fetch & debug a transaction of a verified contract. profile name: **debugger** [Documentation](debugger.html)"
+msgstr ""
+
+#: ../../plugin_list.md:32
+msgid "**Solidity Unit Testing** ![](images/pi-sut.png) Run unit test written in Solidity. profile name: **solidityUnitTesting** [Documentation](unittesting.html)"
+msgstr ""
+
+#: ../../plugin_list.md:37
+msgid "**Solidity Static Analysis** ![](images/pi-static.png) Static code analysis is a process to debug the code by examining it and without actually executing the code. This plugin also has integrations with [Slither](slither.html). profile name: **solidityStaticAnalysis** [Documentation](static_analysis.html)"
+msgstr ""
+
+#: ../../plugin_list.md:42
+msgid "Additional Plugins"
+msgstr ""
+
+#: ../../plugin_list.md:44
+msgid "(sorted alphabetically)"
+msgstr ""
+
+#: ../../plugin_list.md:46
+msgid "**Celo Compiler / Deployer** ![](images/pi-celo.png) Compile & Deploy to the Celo blockchain. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/celo/profile.json): celo-remix-plugin [Documentation](https://github.com/dexfair/celo-remix-plugin) [Make an issue](https://github.com/dexfair/celo-remix-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:52
+msgid "**Contract Deployer** ![](images/pi-deployer.png) Deploy a contract to multiple chains (1 at a time) with the same address. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/celo/profile.json): celo-remix-plugin [Documentation](https://github.com/hexdivision/remix-contract-deployer-plugin) [Make an issue](https://github.com/hexdivision/remix-contract-deployer-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:58
+msgid "**Contract Verification - Etherscan** ![](images/pi-etherscan.png) Verify contracts on Etherscan. [Profile name](https://github.com/ethereum/remix-project/blob/master/apps/etherscan/src/profile.json): etherscan [Documentation](https://remix-ide.readthedocs.io/en/latest/contract_verification.html#etherscan) [Make an issue](https://github.com/ethereum/remix-project/tree/master/apps/etherscan)"
+msgstr ""
+
+#: ../../plugin_list.md:64
+msgid "**Contract Verification - Sourcify** ![](images/pi-sourcify.png) Verify contracts and fetch verified contracts [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/source-verifier/profile.json): sourcify [Documentation](https://docs.sourcify.dev/docs/intro/) [Make an issue](https://github.com/sourcifyeth/remix-sourcify/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:70
+msgid "**Cookbook.dev - Find any contract** ![](images/cookbook.svg) Find any smart contract, build your project faster. [Profile name](https://github.com/ethereum/remix-plugins-directory/tree/master/plugins/cookbook.dev): cookbook.dev [Website](https://www.cookbook.dev) [Documentation](https://github.com/Breakthrough-Labs/cookbook-remix-plugin) [Make an issue](https://github.com/Breakthrough-Labs/cookbook-remix-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:77
+msgid "**Defi Explorer** ![](images/pi-defi-exp.png) The Defi Explorer loads the Uniswap V2 Protocol into the File Explorers. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/defi-explorer/profile.json): defiexplorer [Documentation](https://remix-defi-explorer-plugin.readthedocs.io/en/latest/) [Make an issue](https://github.com/Machinalabs/remix-defi-explorer-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:83
+msgid "**Defi Tutorials** (main panel) ![](images/pi-defi-tut.png) Learn about UMA. This plugin works with the UMA tutorials plugin. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/defi-tutorials/profile.json): defiTutorials [Make an issue](https://github.com/Machinalabs/remix-defi-tutorials-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:88
+msgid "**DGIT** ![](images/pi-dgit.png) Version Control Clone repos from github & create GIT repos & use standard git commands. Also export/import to IPFS. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/dgit/profile.json): dgit [Documentation](https://github.com/bunsenstraat/remix-storage-plugin) [Make an issue](https://github.com/bunsenstraat/remix-storage-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:94
+msgid "**Klaytn** ![](images/pi-klaytn.png) Deploy & interact with smart contracts to the Klaytn public network, local klaytn nodes. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/klaytn/profile.json): klaytn-remix-plugin [Documentation](https://github.com/klaytn-ozys/plug-and-klay) [Make an issue](https://github.com/klaytn-ozys/plug-and-klay/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:100
+msgid "**Learneth** ![](images/pi-learneth.png) Remix & Solidity Tutorials Tutorials that contain quizzes that teach users Solidity and Remix features. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/learneth/profile.json): learnEth [Documentation](https://remix-learneth-plugin.readthedocs.io/en/latest/index.html) [Make an issue](https://github.com/bunsenstraat/remix-learneth-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:106
+msgid "**Lexon** ![](images/pi-lexon.png) Lexon is a language that reads like a legal contract and compile into Solidity (and then bytecode). This plugin allows you to take Lexon code and to [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/lexon/profile.json): lexon [Documentation](https://gitlab.com/lexon-foundation/lexon-remix) [Make an issue](https://gitlab.com/lexon-foundation/lexon-remix/-/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:112
+msgid "**Moonbeam** ![](images/pi-moonbeam.png) Compile and Deploy to the Moonbeam network [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/moonbeam/profile.json): moonbeam-remix-plugin [Documentation](https://github.com/purestake/moonbeam-remix-plugin) [Make an issue](https://github.com/PureStake/moonbeam-remix-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:118
+msgid "**Mythx Security Verification** ![](images/pi-mythx.png) Free version and paid version for Mythx analysis. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/mythx/profile.json): mythx [Documentation](https://docs.mythx.io/tools-integrations/remix) [Make an issue](https://github.com/aquiladev/remix-mythx-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:124
+msgid "**Nahmii compiler** ![](images/pi-moonbeam.png) Compile solidity contracts for the Nahmii network [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/nahmii/profile.json): nahmii-compiler [Make an issue](https://github.com/nahmii-community/remix-nahmii-compiler-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:129
+msgid "**One Click Dapp** ![](images/pi-1click.png) Makes a basic front end for your contract once it is deployed on a public testnet. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/one-click-dapp/profile.json): oneClickDapp [Documentation](https://github.com/oneclickdapp/remix-plugin-one-click-dapp) [Make an issue](https://github.com/oneclickdapp/remix-plugin-one-click-dapp/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:135
+msgid "**Starknet** ![](images/pi-starknet.png) Compile contracts written in Cairo to Starknet [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/starknet-cairo1-compiler/profile.json): Starknet-cairo1-compiler [Documentation](https://github.com/NethermindEth/starknet-remix-plugin) [Make an issue](https://github.com/NethermindEth/starknet-remix-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:141
+msgid "**Tenderly** ![](images/pi-tenderly.png) Verify Contracts. Import To Remix From your Tenderly project. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/tenderly/profile.json): tenderly [Documentation](https://docs.tenderly.co/monitoring/integrations#remix) [Make an issue](/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:147
+msgid "**UMA Playground** (main panel) Learn about the UMA protocol. This plugin is loaded from the DEFI Tutorial plugin. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/uma-playground/profile.json): umaPlayground [Make an issue](https://github.com/Machinalabs/remix-uma-playground/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:152
+msgid "**UMA Tutorials** (main panel) This plugin is activated by the DEFI Tutorials [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/uma-tutorials/profile.json): umaTutorials [Make an issue](https://github.com/Machinalabs/remix-uma-tutorials-plugin/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:157
+msgid "**Vyper Compiler** ![](images/pi-vyper.png) Compile vyper code using local or remote Vyper compiler. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/vyper/profile.json): vyper [Documentation](https://github.com/GrandSchtroumpf/vyper-remix) [Make an issue](https://github.com/GrandSchtroumpf/vyper-remix)"
+msgstr ""
+
+#: ../../plugin_list.md:163
+msgid "**Wallet Connect** (main panel) Approve transactions on your mobile device [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/wallet-connect/profile.json): walletconnect [Make an issue](https://github.com/yann300/remix-walletconnect/issues)"
+msgstr ""
+
+#: ../../plugin_list.md:168
+msgid "**Zokrates** ![](images/pi-zok.png) ZoKrates is a toolbox for zkSNARKs on Ethereum. [Profile name](https://github.com/ethereum/remix-plugins-directory/blob/master/plugins/zokrates/profile.json): ZoKrates [Documentation](https://zokrates.github.io/) [Make an issue](https://github.com/Zokrates/zokrates-remix-plugin/issues)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/plugin_manager.po b/docs/locale/ko_KR/LC_MESSAGES/plugin_manager.po
new file mode 100644
index 00000000000..d65d6bf4976
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/plugin_manager.po
@@ -0,0 +1,87 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/plugin_manager.pot\n"
+"X-Crowdin-File-ID: 6482\n"
+"Language: ko_KR\n"
+
+#: ../../plugin_manager.md:1
+msgid "Plugin Manager"
+msgstr ""
+
+#: ../../plugin_manager.md:4
+msgid "![](images/a-plugin-man-overview.png)"
+msgstr ""
+
+#: ../../plugin_manager.md:6
+msgid "In Remix IDE you only load the functionality you need. Controlling which plugins are active or inactive happens in the **Plugin Manager**."
+msgstr ""
+
+#: ../../plugin_manager.md:8
+msgid "This plugin architecture has made it possible to integrate tools made by the Remix team with tools made by external teams. This architecture also allows Remix or just parts of Remix to be integrated into other projects."
+msgstr ""
+
+#: ../../plugin_manager.md:10
+msgid "Manage permissions"
+msgstr ""
+
+#: ../../plugin_manager.md:11
+msgid "When plugins need to access other plugins for their operation, a modal will appear to ask you for permission."
+msgstr ""
+
+#: ../../plugin_manager.md:13
+msgid "![](images/a-permission-modal.png)"
+msgstr ""
+
+#: ../../plugin_manager.md:15
+msgid "Often, the same plugin will want to do the same action multiple times. So when granting permission, it's helpful to click the **Remember this choice** box. If you don't, you might get this modal repeatedly popping up."
+msgstr ""
+
+#: ../../plugin_manager.md:17
+msgid "View permissions"
+msgstr ""
+
+#: ../../plugin_manager.md:18
+msgid "You can view the permissions that you have granted to plugins by clicking on the **Permissions** button at the bottom of the **Plugin Manager**."
+msgstr ""
+
+#: ../../plugin_manager.md:20
+msgid "![](images/a-plugin-man-permissions.png)"
+msgstr ""
+
+#: ../../plugin_manager.md:22
+msgid "A modal will appear like the one below where you can view and erase the granted permission."
+msgstr ""
+
+#: ../../plugin_manager.md:24
+msgid "![](images/a-plugin-manager-modal.png)"
+msgstr ""
+
+#: ../../plugin_manager.md:26
+msgid "Plugin Devs: Load a local plugin"
+msgstr ""
+
+#: ../../plugin_manager.md:28
+msgid "A plugin in development can be loaded into Remix IDE by clicking the \"Connect to a Local Plugin\" link at the top of the Plugin Manager panel."
+msgstr ""
+
+#: ../../plugin_manager.md:30
+msgid "![](images/a-plugin-man-local.png)"
+msgstr ""
+
+#: ../../plugin_manager.md:32
+msgid "To learn more about how to create your own plugin, go to [the README of remix-plugin repo](https://github.com/ethereum/remix-plugin)."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/remix_as_code_viewer.po b/docs/locale/ko_KR/LC_MESSAGES/remix_as_code_viewer.po
new file mode 100644
index 00000000000..b634f49d730
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/remix_as_code_viewer.po
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/remix_as_code_viewer.pot\n"
+"X-Crowdin-File-ID: 7425\n"
+"Language: ko_KR\n"
+
+#: ../../remix_as_code_viewer.md:1
+msgid "Remix as code viewer"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:4
+msgid "Through Etherscan"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:7
+msgid "Verified contracts on Etherscan can be viewed in Remix by making a simple change to the URL. Mostly for a mutiple part contract verification, Remix provides a quick way to load all the contracts."
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:9
+msgid "A typical Etherscan URL for a contract address looks like this:"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:11
+msgid "`https://etherscan.io/address/0xdac17f958d2ee523a2206206994597c13d831ec7`"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:13
+msgid "In the URL, change `etherscan.io` to `remix.ethereum.org`"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:15
+msgid "`https://remix.ethereum.org/address/0xdac17f958d2ee523a2206206994597c13d831ec7`"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:17
+msgid "and reload. It will fetch the contracts verified on Etherscan."
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:19
+msgid "Contracts verified on Ethereum mainnet and on other test networks (Ropsten, Rinkeby, Kovan & Goerli) will be loaded in respective directories under `etherscan-code-sample` workspace."
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:21
+msgid "![](images/a-code-viewer-etherscan.png)"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:23
+msgid "Tihs works for Etherscan testnet URLs `https://ropsten.etherscan.io`, `https://goerli.etherscan.io/` etc. If they are similarly updated, contracts will be loaded in Remix."
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:25
+msgid "Through GitHub"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:28
+msgid "Solidity files in GitHub can be loaded on Remix with a similar tweak. For a file with URL like:"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:30
+msgid "`https://github.com/ethereum/remix-project/blob/master/apps/remix-ide/contracts/app/solidity/mode.sol`"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:32
+msgid "change `github.com` to `remix.ethereum.org` like:"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:34
+msgid "`https://remix.ethereum.org/ethereum/remix-project/blob/master/apps/remix-ide/contracts/app/solidity/mode.sol`"
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:36
+msgid "and reload. It will open the same file in Remix IDE."
+msgstr ""
+
+#: ../../remix_as_code_viewer.md:38
+msgid "![](images/a-code-viewer-github.png)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/remix_commands.po b/docs/locale/ko_KR/LC_MESSAGES/remix_commands.po
new file mode 100644
index 00000000000..7608ea3b845
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/remix_commands.po
@@ -0,0 +1,108 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/remix_commands.pot\n"
+"X-Crowdin-File-ID: 6484\n"
+"Language: ko_KR\n"
+
+#: ../../remix_commands.md:1
+#: ../../remix_commands.md:14
+msgid "Remix Commands"
+msgstr ""
+
+#: ../../remix_commands.md:4
+msgid "In the console, you can run the commands listed below. Once you start to type a command, there is *auto complete*. These commands are using the following libraries:"
+msgstr ""
+
+#: ../../remix_commands.md:6
+msgid "**remix**: Remix has a number of CLI commands for loading & executing file in a workspace. See the list below."
+msgstr ""
+
+#: ../../remix_commands.md:8
+msgid "**ethers**: Remix IDE enables the use of ethersjs commands. See the [Ethers docs](https://docs.ethers.io/) for the full list."
+msgstr ""
+
+#: ../../remix_commands.md:10
+msgid "**web3**: Remix IDE enables the use of web3js commands. See the [Web3js docs](https://web3js.readthedocs.io/) for the full list."
+msgstr ""
+
+#: ../../remix_commands.md:12
+msgid "**swarmgw**: This library can be used to upload/download files to Swarm via https://swarm-gateways.net/."
+msgstr ""
+
+#: ../../remix_commands.md:16
+msgid "**remix.execute(filepath)**: Run the script specified by file path. If filepath is empty, script currently displayed in the editor is executed."
+msgstr ""
+
+#: ../../remix_commands.md:18
+msgid "**remix.exeCurrent()**: Run the script currently displayed in the editor."
+msgstr ""
+
+#: ../../remix_commands.md:20
+msgid "**remix.getFile(path)**: Returns the content of the file located at the given path"
+msgstr ""
+
+#: ../../remix_commands.md:22
+msgid "**remix.help()**: Display this help message."
+msgstr ""
+
+#: ../../remix_commands.md:24
+msgid "**remix.loadgist(id)**: Load a gist in the file explorer."
+msgstr ""
+
+#: ../../remix_commands.md:26
+msgid "**remix.loadurl(url)**: Load the given url in the file explorer. The url can be of type github, swarm or ipfs."
+msgstr ""
+
+#: ../../remix_commands.md:28
+msgid "A few Ethers JS examples"
+msgstr ""
+
+#: ../../remix_commands.md:29
+msgid "**ethers.providers**: A Provider abstracts a connection to the Ethereum blockchain, for issuing queries and sending state changing transactions."
+msgstr ""
+
+#: ../../remix_commands.md:31
+msgid "**ethers.utils**: The utility functions exposed in both the ethers umbrella package and the ethers-utils. eg ethers.utils.formatBytes32String( text )"
+msgstr ""
+
+#: ../../remix_commands.md:33
+msgid "A few Web3 JS examples"
+msgstr ""
+
+#: ../../remix_commands.md:35
+msgid "**web3.eth.abi**: The web3.eth.abi functions let you de- and encode parameters to ABI (Application Binary Interface) for function calls to the EVM (Ethereum Virtual Machine)."
+msgstr ""
+
+#: ../../remix_commands.md:37
+msgid "**web3.providers**: Contains the current available providers."
+msgstr ""
+
+#: ../../remix_commands.md:39
+msgid "**web3.utils**: This package provides utility functions for Ethereum dapps and other **web3.js packages."
+msgstr ""
+
+#: ../../remix_commands.md:41
+msgid "A few Swarm examples (these will be updated soon)"
+msgstr ""
+
+#: ../../remix_commands.md:43
+msgid "**swarmgw.get(url, cb)**: Download files from Swarm via https**://swarm-gateways.net/"
+msgstr ""
+
+#: ../../remix_commands.md:45
+msgid "**swarmgw.put(content, cb)**: Upload files to Swarm via https**://swarm-gateways.net/"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/remix_tutorials_github.po b/docs/locale/ko_KR/LC_MESSAGES/remix_tutorials_github.po
new file mode 100644
index 00000000000..f0f01e1ee4e
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/remix_tutorials_github.po
@@ -0,0 +1,59 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-10-21 10:25+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/remix_tutorials_github.pot\n"
+"X-Crowdin-File-ID: 6486\n"
+"Language: ko_KR\n"
+
+#: ../../remix_tutorials_github.md:1
+msgid "Remix Github Tutorials"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:4
+msgid "There are a series of tutorials in our github repo remix-workshops."
+msgstr ""
+
+#: ../../remix_tutorials_github.md:6
+msgid "We are in the process of upgrading these tutorials to use the new Remix layout."
+msgstr ""
+
+#: ../../remix_tutorials_github.md:8
+msgid "In this repo there tutorials for all levels."
+msgstr ""
+
+#: ../../remix_tutorials_github.md:10
+msgid "There are tutorials for specific remix functionalities like:"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:12
+msgid "Deploying"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:18
+msgid "Testing"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:23
+msgid "Remix Plugin Development"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:27
+msgid "Other"
+msgstr ""
+
+#: ../../remix_tutorials_github.md:35
+msgid "Additional external workshops"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/remix_tutorials_learneth.po b/docs/locale/ko_KR/LC_MESSAGES/remix_tutorials_learneth.po
new file mode 100644
index 00000000000..d20b4fde497
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/remix_tutorials_learneth.po
@@ -0,0 +1,95 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/remix_tutorials_learneth.pot\n"
+"X-Crowdin-File-ID: 7427\n"
+"Language: ko_KR\n"
+
+#: ../../remix_tutorials_learneth.md:1
+msgid "Tutorials in Remix"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:4
+msgid "**Learneth** is a tutorial platform integrated into Remix."
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:6
+msgid "Tutorials can contain quizzes for testing students' work. These quizzes are run by Solidity Unit Tests."
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:8
+msgid "![](images/a-learneth.png)"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:10
+msgid "We have a growing set of tutorials on our repo- but anyone can build tutorials on their own repos and have their students load them up!"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:12
+msgid "The tutorials contain .md files for instructions and can also contain example files, Solidity Unit Test files for quizzes, as well as answer files for quizzes."
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:14
+msgid "Opening Learneth & associated links"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:15
+msgid "Learneth is a plugin - so to access it, you need to activate the Learneth plugin in the Plugin Manager. Alternatively - this link will active it: click this link."
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:21
+msgid "This link will activate Learneth and then will open a specific tutorial - in this case it will load the **proxy contract** tutorial:"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:27
+msgid "**NOTE:** For other tricks about Remix URLs with parameters, go here: [locations](locations.html)."
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:29
+msgid "Learneth Tutorials"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:31
+msgid "Here is the current list of Learneth Tutorials"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:33
+msgid "***Beginner***"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:38
+msgid "***Intermediate***"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:43
+msgid "***Advanced***"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:50
+msgid "Learneth & Tutorial Repos"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:52
+msgid "The code for the Learneth plugin is located here: https://github.com/bunsenstraat/remix-learneth-plugin/blob/master/docs/index.rst"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:55
+msgid "Documentation for creating your own tutorials is located here: https://remix-learneth-plugin.readthedocs.io/en/latest/index.html"
+msgstr ""
+
+#: ../../remix_tutorials_learneth.md:58
+msgid "Remix maintains and curates this repo of Learneth tutorials: https://github.com/ethereum/remix-workshops"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/remixd.po b/docs/locale/ko_KR/LC_MESSAGES/remixd.po
new file mode 100644
index 00000000000..f3f317aa555
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/remixd.po
@@ -0,0 +1,255 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/remixd.pot\n"
+"X-Crowdin-File-ID: 6488\n"
+"Language: ko_KR\n"
+
+#: ../../remixd.md:1
+msgid "Remixd: Access your Local Filesystem"
+msgstr ""
+
+#: ../../remixd.md:4
+msgid "[![npm version](https://badge.fury.io/js/%40remix-project%2Fremixd.svg)](https://www.npmjs.com/package/@remix-project/remixd)"
+msgstr ""
+
+#: ../../remixd.md:4
+msgid "npm version"
+msgstr ""
+
+#: ../../remixd.md:6
+msgid "To give the Remix IDE (the web app) access to a folder on your computer, you need to use **Remixd** - the plugin along with **remixd** - the cli/npm module."
+msgstr ""
+
+#: ../../remixd.md:8
+msgid "The **Remixd** plugin can be activated from the plugin manager or in the **File Explorer** - see the image below. The **connect to localhost** - will activate the **Remixd** plugin."
+msgstr ""
+
+#: ../../remixd.md:10
+msgid "![](images/a-remixd-fe.png)"
+msgstr ""
+
+#: ../../remixd.md:12
+msgid "Once you click **connect to localhost** or activate Remixd from the **Plugin Manager**, a modal will come up:"
+msgstr ""
+
+#: ../../remixd.md:14
+msgid "![](images/a-remixd-modal.png)"
+msgstr ""
+
+#: ../../remixd.md:16
+msgid "The Remixd plugin is a **websocket plugin** and it has no UI other than this modal dialog box - so you won't see a Remixd icon in the icon panel."
+msgstr ""
+
+#: ../../remixd.md:18
+msgid "Before you hit **Connect**, you need to install the [remixd NPM module](https://www.npmjs.com/package/@remix-project/remixd) and run the **remixd** command."
+msgstr ""
+
+#: ../../remixd.md:20
+msgid "The code of `remixd` is [here](https://github.com/ethereum/remix-project/tree/master/libs/remixd) ."
+msgstr ""
+
+#: ../../remixd.md:23
+msgid "remixd Installation"
+msgstr ""
+
+#: ../../remixd.md:25
+msgid "**remixd** is an NPM module and can be globally installed using the following command: `npm install -g @remix-project/remixd`"
+msgstr ""
+
+#: ../../remixd.md:28
+msgid "Or just install it in the directory of your choice by removing the -g flag: `npm install @remix-project/remixd`"
+msgstr ""
+
+#: ../../remixd.md:31
+msgid "**NOTE:** When the remixd NPM module is installed, it also installs [Slither](https://github.com/crytic/slither), [solc-select](https://github.com/crytic/solc-select#quickstart) and sets [solc](https://docs.soliditylang.org/en/latest/installing-solidity.html) to latest version i.e. 0.8.15 currently."
+msgstr ""
+
+#: ../../remixd.md:33
+msgid "**ALSO NOTE:** `Python3.6+ (pip3)` needs to already be installed on the System. (This packaging of Slither with the remixd module is supported since Remixd v0.6.3). In case of any discrepancy, Slither can also installed along with other dependencies using command `remixd -i slither`"
+msgstr ""
+
+#: ../../remixd.md:36
+msgid "Find your version of remixd"
+msgstr ""
+
+#: ../../remixd.md:37
+msgid "The command: `remixd -v` or `remixd --version` will return your version number."
+msgstr ""
+
+#: ../../remixd.md:39
+msgid "**If this command does not work, then you have an outdated version!**"
+msgstr ""
+
+#: ../../remixd.md:40
+msgid "Update to the latest remixd"
+msgstr ""
+
+#: ../../remixd.md:41
+msgid "Because **remixd** creates a bridge from the browser to your local filesystem, it is important that you have the latest version of script."
+msgstr ""
+
+#: ../../remixd.md:43
+msgid "For users who had installed the version of remixd from the **VERY** old NPM address or for users who do not know which NPM address they had installed it from, run these 2 steps:"
+msgstr ""
+
+#: ../../remixd.md:45
+msgid "uninstall the old one: **npm uninstall -g remixd**"
+msgstr ""
+
+#: ../../remixd.md:46
+msgid "install the new: **npm install -g @remix-project/remixd**"
+msgstr ""
+
+#: ../../remixd.md:48
+msgid "**For Most Users** who know that they have a remixd version installed from @remix-project/remixd then just run:"
+msgstr ""
+
+#: ../../remixd.md:50
+msgid "**npm install -g @remix-project/remixd**"
+msgstr ""
+
+#: ../../remixd.md:52
+msgid "remixd command"
+msgstr ""
+
+#: ../../remixd.md:53
+msgid "The remixd command without options uses the terminal's current directory as the shared directory and the shared Remix domain will be `https://remix.ethereum.org`, `https://remix-alpha.ethereum.org`, or `https://remix-beta.ethereum.org`"
+msgstr ""
+
+#: ../../remixd.md:55
+msgid "The remixd command is: `remixd`"
+msgstr ""
+
+#: ../../remixd.md:58
+msgid "If you are using Remix from localhost or you are not running the command from your working directory, you'll need to use the command with flags."
+msgstr ""
+
+#: ../../remixd.md:60
+msgid "remixd options"
+msgstr ""
+
+#: ../../remixd.md:80
+msgid "**NOTE**: `remixd -i slither` can be used to install Slither along with its dependencies"
+msgstr ""
+
+#: ../../remixd.md:82
+msgid "HTTP vs HTTPS in the remixd command"
+msgstr ""
+
+#: ../../remixd.md:83
+msgid "If your browser is on https://remix.ethereum.org (**secure http**) then use https in the command: `remixd -s --remix-ide https://remix.ethereum.org`"
+msgstr ""
+
+#: ../../remixd.md:86
+msgid "Or if you are using **http** in the browser, then use **http** in the remixd command."
+msgstr ""
+
+#: ../../remixd.md:88
+msgid "Read/Write permission & Read-only mode"
+msgstr ""
+
+#: ../../remixd.md:89
+msgid "The folder is shared using **a websocket connection** between `Remix IDE` and `remixd`."
+msgstr ""
+
+#: ../../remixd.md:92
+msgid "Be sure the user executing `remixd` has read/write permission on the folder."
+msgstr ""
+
+#: ../../remixd.md:95
+msgid "Alternatively, there is an option to run remixd in read-only mode, use `--read-only` flag."
+msgstr ""
+
+#: ../../remixd.md:97
+msgid "Ports Usage"
+msgstr ""
+
+#: ../../remixd.md:99
+msgid "`remixd` functions by making websocket connections with Remix IDE on different ports. Ports are defined according to specific purpose. Port usage details are as:"
+msgstr ""
+
+#: ../../remixd.md:101
+msgid "**65520** : For `remixd` websocket listener, to share local file system with Remix IDE. Shared folder will be loaded in the Remix IDE `File Explorers` workspace named `localhost`"
+msgstr ""
+
+#: ../../remixd.md:102
+msgid "**65522** : For `hardhat` websocket listener, to enable the Hardhat Compilation using Remix IDE `Solidity Compiler` plugin, if shared folder is a Hardhat project."
+msgstr ""
+
+#: ../../remixd.md:103
+msgid "**65523** : For `slither` websocket listener, to enable the Slither Analysis using Remix IDE `Solidity Static Analysis` plugin"
+msgstr ""
+
+#: ../../remixd.md:104
+msgid "**65524** : For `truffle` websocket listener, to enable the Truffle Compilation using Remix IDE `Solidity Compiler` plugin, if shared folder is a Truffle project."
+msgstr ""
+
+#: ../../remixd.md:107
+msgid "**Note:** Please make sure your system is secured enough and these ports are not opened nor forwarded."
+msgstr ""
+
+#: ../../remixd.md:109
+msgid "Warning!"
+msgstr ""
+
+#: ../../remixd.md:110
+msgid "`remixd` **provides full read and write access** to the given folder **for any application** that can access the `TCP port 65520` on your local host."
+msgstr ""
+
+#: ../../remixd.md:113
+msgid "To minimize the risk, Remixd can **ONLY** bridge between your filesystem and the Remix IDE URLS - including:"
+msgstr ""
+
+#: ../../remixd.md:123
+msgid "(the package:// urls in the list above are for remix desktop)"
+msgstr ""
+
+#: ../../remixd.md:125
+msgid "Clicking Connect on the modal."
+msgstr ""
+
+#: ../../remixd.md:127
+msgid "Clicking on the **Connect** button on the Remixd modal (see the image above), will attempt to start a session where your browser can access the specified folder on your computer's filesystem."
+msgstr ""
+
+#: ../../remixd.md:129
+msgid "If you do not have `remixd` running in the background - another modal will open up and it will say:"
+msgstr ""
+
+#: ../../remixd.md:136
+msgid "Assuming you don't get the 2nd modal, your connection to the remixd daemon is successful. The shared folder will be visible in the File Explorer's workspace under **localhost**."
+msgstr ""
+
+#: ../../remixd.md:138
+msgid "![](images/a-ws-localhost.png)"
+msgstr ""
+
+#: ../../remixd.md:140
+msgid "Creating & deleting folders & files"
+msgstr ""
+
+#: ../../remixd.md:141
+msgid "Clicking on the **new folder** or **new file** icon under **localhost** will create a new file or folder in the shared folder. Similarly, if you **right click** on a file or folder you can **rename** or **delete** the file."
+msgstr ""
+
+#: ../../remixd.md:143
+msgid "Closing a remixd session"
+msgstr ""
+
+#: ../../remixd.md:144
+msgid "In the terminal where **remixd** is running, typing `ctrl-c` will close the session. Remix IDE will then put up a modal saying that **remixd** has stopped running."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/run.po b/docs/locale/ko_KR/LC_MESSAGES/run.po
new file mode 100644
index 00000000000..2d340fe2f1c
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/run.po
@@ -0,0 +1,335 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/run.pot\n"
+"X-Crowdin-File-ID: 6490\n"
+"Language: ko_KR\n"
+
+#: ../../run.md:1
+msgid "Deploy & Run"
+msgstr ""
+
+#: ../../run.md:4
+msgid "![](images/a-run-icon.png) The Deploy & Run module is for sending transactions to the current **Environment**."
+msgstr ""
+
+#: ../../run.md:6
+msgid "For deploying, you need to have a contract compiled. To check that there is a compiled contract, find the CONTRACT select box (which is under the VALUE input field), you can use this module."
+msgstr ""
+
+#: ../../run.md:8
+msgid "![](images/a-contract.png)"
+msgstr ""
+
+#: ../../run.md:10
+msgid "If nothing is there, you need to compile a file. If you do not see the contract you want, you need to select a contract in the editor to make it active."
+msgstr ""
+
+#: ../../run.md:12
+msgid "Environment"
+msgstr ""
+
+#: ../../run.md:15
+msgid "`Remix VM (Merge)` : Connects to a sandbox blockchain in the browser. The Remix VM (previously called JavaScript VM) is its own \"blockchain\" and on each reload the old chain will be cleared and a new blockchain will be started. **The old one will not be saved**. Merge refers to the fork of Ethereum when the Merge occurred. This fork is also known as the **Paris** fork."
+msgstr ""
+
+#: ../../run.md:17
+msgid "`Remix VM (London)` : Same as above except this chain is using the London fork of Ethereum."
+msgstr ""
+
+#: ../../run.md:19
+msgid "`Remix VM (Berlin)` : Same as above except this chain is using the Berlin fork of Ethereum."
+msgstr ""
+
+#: ../../run.md:21
+msgid "`Remix VM - Mainnet fork` : This will fork the Ethereum mainnet and will load it into the Remix VM. It is useful for developing contracts that need to access deployed mainnet contracts. (See below for more info about Forking)"
+msgstr ""
+
+#: ../../run.md:23
+msgid "`Remix VM - Goerli fork` : Same as above except this forks the Goerli testnet. (See below for more info about Forking)"
+msgstr ""
+
+#: ../../run.md:25
+msgid "`Remix VM - Sepolia fork` : Same as above except this forks the Sepolia testnet. (See below for more info about Forking)"
+msgstr ""
+
+#: ../../run.md:27
+msgid "`Remix VM - Custom fork` : Forks a chain, at block number, and in an EVM version of your choice. (See below for more info about Forking)"
+msgstr ""
+
+#: ../../run.md:29
+msgid "`Injected Provider - provider name`: Connects Remix to an injected web3 provider. The most common injected provider is `Metamask`."
+msgstr ""
+
+#: ../../run.md:31
+msgid "`Custom - External HTTP Provider`: Remix will connect to a remote node. You will need to provide the URL to the selected provider: geth, parity or any Ethereum client. This was previously called **Web3 Provider**. (See below for more info about External HTTP Provider)"
+msgstr ""
+
+#: ../../run.md:33
+msgid "`Dev - Hardhat Provider`: Connects Remix to a local Hardhat test chain."
+msgstr ""
+
+#: ../../run.md:35
+msgid "`Dev - Ganache Provider`: Connects Remix to a local Truffle Ganache test chain."
+msgstr ""
+
+#: ../../run.md:37
+msgid "`Dev - Foundry Provider`: Connects Remix to a local Foundry Anvil test chain."
+msgstr ""
+
+#: ../../run.md:39
+msgid "`L2 - Optimism Provider`: Connects Remix to an Injected Provider (usually Metamask) with the settings for the mainnet of Optimism."
+msgstr ""
+
+#: ../../run.md:41
+msgid "`L2 - Arbitrum One Provider`: Connects Remix to an Injected Provider (usually Metamask) with the settings for the Arbitrum One network."
+msgstr ""
+
+#: ../../run.md:43
+msgid "`WalletConnect`: Connects Remix to a wallet on a mobile device."
+msgstr ""
+
+#: ../../run.md:45
+msgid "Forking chains in Remix"
+msgstr ""
+
+#: ../../run.md:47
+msgid "Forking is a great technique for developing a contract that interacts with deployed contracts on a specific chain. By bringing in a chain to the Remix VM, you'll have the 10 accounts loaded with 100ETH."
+msgstr ""
+
+#: ../../run.md:49
+msgid "Careful though, if you refresh the browser, you’ll lose the forked chain."
+msgstr ""
+
+#: ../../run.md:51
+msgid "Custom Fork"
+msgstr ""
+
+#: ../../run.md:52
+msgid "The Custom fork option allows you to specify a chain's RPC server, a block number, and an EVM version."
+msgstr ""
+
+#: ../../run.md:54
+msgid "![](images/a-custom-fork.png)"
+msgstr ""
+
+#: ../../run.md:56
+msgid "You can get the **Node URL** from chainlist.org. If the chain does not load, you may need to choose a different RPC server. You will also need to choose an EVM version appropriate to the block number. So, if you choose a very low block number, the EVM with the Merge “flavor” won’t work because this version of the EVM came out later."
+msgstr ""
+
+#: ../../run.md:58
+msgid "More about External HTTP Provider"
+msgstr ""
+
+#: ../../run.md:60
+msgid "If you are using Geth & https://remix.ethereum.org, please use the following Geth command to allow requests from Remix:"
+msgstr ""
+
+#: ../../run.md:66
+msgid "Also see [Geth Docs about the http server](https://geth.ethereum.org/docs/rpc/server)"
+msgstr ""
+
+#: ../../run.md:68
+msgid "To run Remix using https://remix.ethereum.org & a local test node, use this Geth command:"
+msgstr ""
+
+#: ../../run.md:74
+msgid "If you are using remix-alpha or a local version of remix - replace the url of the --http.corsdomain with the url of Remix that you are using."
+msgstr ""
+
+#: ../../run.md:76
+msgid "To run Remix Desktop & a local test node, use this Geth command:"
+msgstr ""
+
+#: ../../run.md:82
+msgid "Also see [Geth Docs on Dev mode](https://geth.ethereum.org/getting-started/dev-mode)"
+msgstr ""
+
+#: ../../run.md:84
+msgid "The Web3 Provider Endpoint for a local node is **http://localhost:8545**"
+msgstr ""
+
+#: ../../run.md:88
+msgid "**WARNING:** Don't get lazy. It is a bad idea to use the Geth flag --http.corsdomain with a wildcard: `--http.corsdomain *`"
+msgstr ""
+
+#: ../../run.md:90
+msgid "If you put the wildcard `*`, it means everyone can request the node. Whereas, if you put a URL, it restricts the urls to just that one - e.g. `--http.corsdomain 'https://remix-alpha.ethereum.org'`"
+msgstr ""
+
+#: ../../run.md:92
+msgid "Only use `--http.corsdomain *` when using a **test chain** AND using only **test accounts**. For real accounts or on the mainchain **specify the url**."
+msgstr ""
+
+#: ../../run.md:97
+msgid "Account:"
+msgstr ""
+
+#: ../../run.md:99
+msgid "Account: the list of accounts associated with the current environment (and their associated balances). On the Remix VM, you have a choice of 5 accounts. If using Injected Web3 with MetaMask, you need to change the account in MetaMask."
+msgstr ""
+
+#: ../../run.md:102
+msgid "Gas Limit:"
+msgstr ""
+
+#: ../../run.md:104
+msgid "This sets the maximum amount of gas that will be allowed for all the transactions created in Remix."
+msgstr ""
+
+#: ../../run.md:107
+msgid "Value:"
+msgstr ""
+
+#: ../../run.md:109
+msgid "This sets the amount of ETH, WEI, GWEI etc that is sent to a contract or a payable function. **Note:** payable functions have a red button."
+msgstr ""
+
+#: ../../run.md:112
+msgid "The **Value** field is always reset to 0 after each transaction execution. The **Value** field is **NOT** for gas."
+msgstr ""
+
+#: ../../run.md:115
+msgid "![](images/a-Runtab-deploy-atAddress.png)"
+msgstr ""
+
+#: ../../run.md:117
+msgid "Deploy & AtAddress"
+msgstr ""
+
+#: ../../run.md:120
+msgid "In the image above, the select box is set to **Ballot**. This select box will contain the list of compiled contracts."
+msgstr ""
+
+#: ../../run.md:122
+msgid "`Deploy` sends a transaction that deploys the selected contract. When the transaction is mined, the newly created instance will be added (this might take several seconds). **Note:** If the contract's constructor function has parameters, you need to specify them."
+msgstr ""
+
+#: ../../run.md:126
+msgid "`At Address` is used to access a contract that has already been deployed. Because the contract is already deployed, accessing a contract with **AtAddress** does not cost gas."
+msgstr ""
+
+#: ../../run.md:128
+msgid "**Note:** When using AtAddress, be sure you trust the contract at that address."
+msgstr ""
+
+#: ../../run.md:130
+msgid "To use **AtAddress**, you need to have the **source code** or **ABI** of the deployed contract **in the active tab** of the editor. When using the source code, it must be compiled with the same compilation settings as the deployed contract that you are trying to access."
+msgstr ""
+
+#: ../../run.md:132
+msgid "Using the ABI with AtAddress"
+msgstr ""
+
+#: ../../run.md:135
+msgid "The **ABI** is a JSON array which describes the contract's interface."
+msgstr ""
+
+#: ../../run.md:137
+msgid "To interact with a contract using the ABI, create a new file in Remix with extension ***.abi** and copy the ABI content to it."
+msgstr ""
+
+#: ../../run.md:140
+msgid "Make sure this file is the active tab in the editor. Then, in the field next to `At Address`, input the contract's address and click on `At Address`. If successful, an instance of the contract will appear below - in the list of **Deployed Contracts**."
+msgstr ""
+
+#: ../../run.md:142
+msgid "**Note:** To generate the ABI, in the Solidity compiler, after a contract is compiled, click on the **Compilation Details** button. A modal will come up with that contains the ABI among other info."
+msgstr ""
+
+#: ../../run.md:144
+msgid "Pending Instances"
+msgstr ""
+
+#: ../../run.md:147
+msgid "Validating a transaction takes several seconds. During this time, the GUI shows it in a pending mode. When the transaction is mined, the number of pending transactions is updated and the transaction is added to the log ([see terminal](terminal.html))."
+msgstr ""
+
+#: ../../run.md:152
+msgid "Using the Recorder"
+msgstr ""
+
+#: ../../run.md:155
+msgid "The Recorder is a tool used to save a bunch of transactions in a JSON file and re-run them later either in the same environment or in another."
+msgstr ""
+
+#: ../../run.md:158
+msgid "Saving to the JSON file (by default it's called scenario.json) allows one to easily check the transaction list, tweak input parameters, change linked library, etc..."
+msgstr ""
+
+#: ../../run.md:160
+msgid "There are many use cases for the recorder."
+msgstr ""
+
+#: ../../run.md:162
+msgid "For instance:"
+msgstr ""
+
+#: ../../run.md:164
+msgid "After having coded and tested contracts in a constrained environment (like the Remix VM), you could then change the environment and redeploy it to a more realistic environment like a public testnet or to a Geth node. By using the generated **scenario.json** file, you will be using all the same settings that you used in the Remix VM. And this means that you won't need to click the interface 100 times or whatever to get the state that you achieved originally. So the recorder could be a tool to protect your sanity."
+msgstr ""
+
+#: ../../run.md:167
+msgid "You can also change the settings in the scenario.json file to customize the playback."
+msgstr ""
+
+#: ../../run.md:169
+msgid "Deploying contract does often require more than creating one transaction and so the recorder will automate this deployment."
+msgstr ""
+
+#: ../../run.md:172
+msgid "Working in a dev environment often requires setting up the state in the first place."
+msgstr ""
+
+#: ../../run.md:175
+msgid "![](images/a-recorder.png)"
+msgstr ""
+
+#: ../../run.md:177
+msgid "When checked, the option `Run transactions using the last compilation result` allows you to develop a contract and easily set the state using **the latest compiled versions of the contracts.**"
+msgstr ""
+
+#: ../../run.md:179
+msgid "scenario.json"
+msgstr ""
+
+#: ../../run.md:180
+msgid "To create this file in the recorder, you first of course need to have run some transactions. In the image above - it has a `0` next to **Transactions Recorded**. So this isn't the right moment to save transactions because - well because there aren't any. Each time you make a transaction, that number will increment. Then when you are ready, click the floppy disk icon and the scenario.json file will be created."
+msgstr ""
+
+#: ../../run.md:182
+msgid "The JSON file below is an example of the scenario.json file."
+msgstr ""
+
+#: ../../run.md:184
+msgid "In it, 3 transactions are executed:"
+msgstr ""
+
+#: ../../run.md:186
+msgid "The first corresponds to the deployment of the lib `testLib`."
+msgstr ""
+
+#: ../../run.md:188
+msgid "The second corresponds to the deployment of the contract `test` with the first parameter of the constructor set to 11. That contract depends on a library. The linkage is done using the property `linkReferences`. In that case we use the address of the previously created library : `created{1512830014773}`. The number is the id (timestamp) of the transaction that led to the creation of the library."
+msgstr ""
+
+#: ../../run.md:195
+msgid "The third record corresponds to the call to the function `set` of the contract `test` (the property to is set to: `created{1512830015080}`) . Input parameters are `1` and `0xca35b7d915458ef540ade6068dfe2f44e8fa733c`"
+msgstr ""
+
+#: ../../run.md:200
+msgid "All these transactions are created using the value of the accounts `account{0}`."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/run_proxy_contracts.po b/docs/locale/ko_KR/LC_MESSAGES/run_proxy_contracts.po
new file mode 100644
index 00000000000..cad5ac27476
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/run_proxy_contracts.po
@@ -0,0 +1,107 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/run_proxy_contracts.pot\n"
+"X-Crowdin-File-ID: 7429\n"
+"Language: ko_KR\n"
+
+#: ../../run_proxy_contracts.md:1
+msgid "Deploy & Run Proxy Contracts"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:4
+msgid "Remix IDE has the functionality to assist in the handling of proxy contracts that use the UUPS pattern."
+msgstr ""
+
+#: ../../run_proxy_contracts.md:6
+msgid "A UUPS proxy contract is the implementation side of an [ERC1967Proxy](https://eips.ethereum.org/EIPS/eip-1967)."
+msgstr ""
+
+#: ../../run_proxy_contracts.md:8
+msgid "Once you have deployed a UUPS implementation contract, Remix will deploy an ERC1967 with your implementation contract's address."
+msgstr ""
+
+#: ../../run_proxy_contracts.md:10
+msgid "To interact with the functions in the **implementation contract**, use the deployed instance of the **ERC1967 instance** not on the implementation contract."
+msgstr ""
+
+#: ../../run_proxy_contracts.md:12
+msgid "When it's time to upgrade your contract, Remix has a UI for this."
+msgstr ""
+
+#: ../../run_proxy_contracts.md:14
+msgid "To try this out, you will need to get a proxy contract. Go to wizard.openzeppelin.com and select a contract. Then, in the Upgradeability section, check the UUPS option. Then, copy and paste the file into Remix. Compile the file and go to Deploy & Run."
+msgstr ""
+
+#: ../../run_proxy_contracts.md:16
+msgid "Deploying"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:17
+msgid "When a UUPS contract is selected in Deploy & Run's Contract select box, you'll see some checkboxes below the Deploy button:"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:19
+msgid "![](images/a-proxy-deploy1-noParams.png)"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:21
+msgid "Check the box for **Deploy with Proxy**. This will create two transactions: one for the implementation (your contract) and the other for the ERC1967 proxy contract. You will get two modals to check through:"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:23
+msgid "![](images/a-proxy-modal1.png)"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:25
+msgid "and then"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:27
+msgid "![](images/a-proxy-modal2.png)"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:29
+msgid "If you are deploying to the **Remix VM**, these modals will appear one after the other. If you are connected to the mainnet or a public testnet, then the second modal will appear after the first transaction has gone through."
+msgstr ""
+
+#: ../../run_proxy_contracts.md:31
+msgid "After the ERC1967 proxy contract is deployed, in the Deployed Contracts section, you'll see two deployed instances."
+msgstr ""
+
+#: ../../run_proxy_contracts.md:33
+msgid "![](images/a-deployed-instances.png)"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:35
+msgid "To interact with your implementation contract **DO NOT** use the instance of your contract. Instead, you should **use the ERC1967 Proxy**. The proxy will have all the functions of your implementation."
+msgstr ""
+
+#: ../../run_proxy_contracts.md:37
+msgid "Upgrading"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:39
+msgid "To upgrade, check the Upgrade with Proxy box and dial down the caret to see the options:"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:41
+msgid "![](images/a-proxy-upgrade.png)"
+msgstr ""
+
+#: ../../run_proxy_contracts.md:43
+msgid "You'll either need to use the last deployed ERC1967 contract, or input the address of the ERC1967 contract that you want to use."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/running_js_scripts.po b/docs/locale/ko_KR/LC_MESSAGES/running_js_scripts.po
new file mode 100644
index 00000000000..3ba834acf3a
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/running_js_scripts.po
@@ -0,0 +1,167 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/running_js_scripts.pot\n"
+"X-Crowdin-File-ID: 7431\n"
+"Language: ko_KR\n"
+
+#: ../../running_js_scripts.md:1
+msgid "Running Scripts"
+msgstr ""
+
+#: ../../running_js_scripts.md:4
+msgid "_JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions._"
+msgstr ""
+
+#: ../../running_js_scripts.md:6
+msgid "Remix IDE supports execution of JS scripts."
+msgstr ""
+
+#: ../../running_js_scripts.md:8
+msgid "Write & Run a script"
+msgstr ""
+
+#: ../../running_js_scripts.md:10
+msgid "Create a file with `.js` extension and put your logic inside it. Once ready, there are two ways to run this script:"
+msgstr ""
+
+#: ../../running_js_scripts.md:12
+msgid "Make the script the active file in the editor and run `remix.exeCurrent()` from Remix terminal"
+msgstr ""
+
+#: ../../running_js_scripts.md:13
+msgid "Just right click on the script name in the `Files Explorers` plugin and click on the **Run** option. **ShortCut**: `Ctrl+Shift+S` when the script is displayed in the editor."
+msgstr ""
+
+#: ../../running_js_scripts.md:15
+msgid "Here is a sample script:"
+msgstr ""
+
+#: ../../running_js_scripts.md:29
+msgid "Running it using one of options mentioned above will show result in Remix terminal"
+msgstr ""
+
+#: ../../running_js_scripts.md:31
+msgid "![](images/a-running-scripts-run.png)"
+msgstr ""
+
+#: ../../running_js_scripts.md:33
+msgid "Why run JavaScript Scripts in Remix?"
+msgstr ""
+
+#: ../../running_js_scripts.md:34
+msgid "To mimic how the front-end of your dapp will use web3.js or ethers.js"
+msgstr ""
+
+#: ../../running_js_scripts.md:35
+msgid "To quickly deploy and interact with a bunch of instances of a contract without going through the Remix GUI."
+msgstr ""
+
+#: ../../running_js_scripts.md:36
+msgid "To run some tests on a previous deployed contract."
+msgstr ""
+
+#: ../../running_js_scripts.md:38
+msgid "Script to deploy a contract"
+msgstr ""
+
+#: ../../running_js_scripts.md:40
+msgid "Remix accepts async/await scripts to run [web3.js](https://web3js.readthedocs.io/) or [ethers.js](https://docs.ethers.io/) commands. The script needs to be wrapped in a self executing function."
+msgstr ""
+
+#: ../../running_js_scripts.md:42
+msgid "Setup"
+msgstr ""
+
+#: ../../running_js_scripts.md:43
+msgid "These scripts will need to access the contract's ABI. The ABI is located in the contract's metadata file. Make sure that this metadata file will be created by going to the **Settings** module and checking that the **Generate contract metadata** option is indeed **checked**."
+msgstr ""
+
+#: ../../running_js_scripts.md:45
+msgid "Compile a Solidity file - to generate the contract metadata."
+msgstr ""
+
+#: ../../running_js_scripts.md:47
+msgid "In the Deploy & Run plugin, choose the Environment."
+msgstr ""
+
+#: ../../running_js_scripts.md:48
+msgid "Async/await scripts work on in all of the Environments: the Remix VM, Injected Provider (usually MetaMask), and External HTTP Provider."
+msgstr ""
+
+#: ../../running_js_scripts.md:50
+msgid "JS Scripts in the File Explorers"
+msgstr ""
+
+#: ../../running_js_scripts.md:51
+msgid "In the **scripts** folder of a **workspace**, there are 2 example files: one using **web3.js** and the other using **ethers.js**."
+msgstr ""
+
+#: ../../running_js_scripts.md:53
+msgid "Compile a contract and run a script on the fly"
+msgstr ""
+
+#: ../../running_js_scripts.md:54
+msgid "It is often convenient when drafting a contract to run a script just after the compilation succeeded."
+msgstr ""
+
+#: ../../running_js_scripts.md:56
+msgid "That way one can quickly deploy and call several contracts in order to set them in a desired state for testing purpose."
+msgstr ""
+
+#: ../../running_js_scripts.md:58
+msgid "Also if the script contains Mocha tests, those will also be run."
+msgstr ""
+
+#: ../../running_js_scripts.md:60
+msgid "In order to do so, add the NatSpec tag `@custom:dev-run-script` to the contract followed by the absolute file path, like:"
+msgstr ""
+
+#: ../../running_js_scripts.md:71
+msgid "**ShortCut**: `Ctrl+Shift+S` , when editing a solidity file, will compile that file and then will run the script. In contrast, Ctrl+S will only start the compiling."
+msgstr ""
+
+#: ../../running_js_scripts.md:73
+msgid "An Example Script"
+msgstr ""
+
+#: ../../running_js_scripts.md:74
+msgid "The example below deploys a solidity contract named **CustomERC20.sol**. This example is using the web3.js library. Ethers.js could also be used."
+msgstr ""
+
+#: ../../running_js_scripts.md:76
+msgid "For more information about this example, please see: [running async/await scripts](https://medium.com/remix-ide/running-js-async-await-scripts-in-remix-ide-3115b5dd7687?source=friends_link&sk=04e650dfa65905fdab0ecd5b10513d41)"
+msgstr ""
+
+#: ../../running_js_scripts.md:106
+msgid "For more script examples, please see [Frequently Asked Scripts](FAS.html)."
+msgstr ""
+
+#: ../../running_js_scripts.md:108
+msgid "`require` in scripts at Remix"
+msgstr ""
+
+#: ../../running_js_scripts.md:110
+msgid "`require` statement is supported in a limited manner for Remix supported modules with Remix Scripts."
+msgstr ""
+
+#: ../../running_js_scripts.md:112
+msgid "For now, modules supported by Remix are ethers, web3, swarmgw, chai, remix and hardhat only for hardhat.ethers object/plugin."
+msgstr ""
+
+#: ../../running_js_scripts.md:114
+msgid "For unsupported modules, this error ` module require is not supported by Remix IDE` will be shown."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/search_in_fe.po b/docs/locale/ko_KR/LC_MESSAGES/search_in_fe.po
new file mode 100644
index 00000000000..fe2f8c47e67
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/search_in_fe.po
@@ -0,0 +1,47 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/search_in_fe.pot\n"
+"X-Crowdin-File-ID: 8043\n"
+"Language: ko_KR\n"
+
+#: ../../search_in_fe.md:1
+msgid "Search in Files"
+msgstr ""
+
+#: ../../search_in_fe.md:3
+msgid "The **Search in Files** plugin is loaded by default. It also includes functionality to search & replace as well as searching with regular expressions."
+msgstr ""
+
+#: ../../search_in_fe.md:5
+msgid "![](images/a-search.png)"
+msgstr ""
+
+#: ../../search_in_fe.md:7
+msgid "This plugin searches through text in the files of the current workspace. It does not search across workspaces."
+msgstr ""
+
+#: ../../search_in_fe.md:9
+msgid "Search and Replace"
+msgstr ""
+
+#: ../../search_in_fe.md:10
+msgid "Clicking on the caret to the left of the text input box will reveal the **replace** functionality."
+msgstr ""
+
+#: ../../search_in_fe.md:12
+msgid "![](images/a-search-open.png)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/security.po b/docs/locale/ko_KR/LC_MESSAGES/security.po
new file mode 100644
index 00000000000..16255ba6bb2
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/security.po
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/security.pot\n"
+"X-Crowdin-File-ID: 7433\n"
+"Language: ko_KR\n"
+
+#: ../../security.md:1
+msgid "Using Remix Safely"
+msgstr ""
+
+#: ../../security.md:4
+msgid "It is dangerous to send transactions on contracts you don't understand (even if it's a get rich quick scheme that you've copied & pasted from a Discord DM or a youtube video and you really really want to get rich)."
+msgstr ""
+
+#: ../../security.md:6
+msgid "Check our [article](https://medium.com/remix-ide/remix-in-youtube-crypto-scams-71c338da32d?source=friends_link&sk=bb6efbbf88bc3e496611943d282ad797) on a current scam promoting \"liquidity front runner bots\"."
+msgstr ""
+
+#: ../../security.md:8
+msgid "Always check that you are loading Remix over HTTPS unless you have a specific reason for accessing it with HTTP (e.g. for using Remix locally or for a connection you trust)."
+msgstr ""
+
+#: ../../security.md:10
+msgid "Make sure all your imports include the **version number** otherwise you don't know what version of files you are getting and the builds are not reproducible."
+msgstr ""
+
+#: ../../security.md:12
+msgid "So **do not** use an import like this: `import \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";`"
+msgstr ""
+
+#: ../../security.md:15
+msgid "Rather, **use one** like this: `import \"@openzeppelin/contracts@4.7.3/token/ERC20/ERC20.sol\";`"
+msgstr ""
+
+#: ../../security.md:18
+msgid "When connecting a contract to an existing deployment, ensure that the thing you are connecting to is correct AND is the correct version."
+msgstr ""
+
+#: ../../security.md:20
+msgid "Always be sure to address or understand every warning."
+msgstr ""
+
+#: ../../security.md:22
+msgid "Remix is a subdomain of ethereum.org - so the only valid Remix urls are:"
+msgstr ""
+
+#: ../../security.md:23
+msgid "remix.ethereum.org"
+msgstr ""
+
+#: ../../security.md:24
+msgid "remix-alpha.ethereum.org"
+msgstr ""
+
+#: ../../security.md:25
+msgid "remix-beta.ethereum.org"
+msgstr ""
+
+#: ../../security.md:27
+msgid "If you are directed to some site that looks like Remix but has a **similar but different URL** - it is NOT Remix and is likely a scam."
+msgstr ""
+
+#: ../../security.md:29
+msgid "Remix's ease makes its users a target"
+msgstr ""
+
+#: ../../security.md:30
+msgid "Because Remix has no setup, it has a large community of noobies to smart contract development. This is great, but it provides a target audience for scammers exploit. Without Remix, the scammers would first need to instruct victims to set up a local dev environment, which would severely limit the success rate of the scam."
+msgstr ""
+
+#: ../../security.md:32
+msgid "**Scams lose their effectiveness when potential victims are educated about scams and about how to read and understand code. Learn Solidity and learn it well!**"
+msgstr ""
+
+#: ../../security.md:34
+msgid "For Solidity Tutorials in Remix, go to the LearnEth plugin."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/settings.po b/docs/locale/ko_KR/LC_MESSAGES/settings.po
new file mode 100644
index 00000000000..f8ccb37f568
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/settings.po
@@ -0,0 +1,155 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/settings.pot\n"
+"X-Crowdin-File-ID: 6492\n"
+"Language: ko_KR\n"
+
+#: ../../settings.md:1
+msgid "Settings"
+msgstr ""
+
+#: ../../settings.md:4
+msgid "To get to **Settings** click the gear at the very bottom of the icon panel."
+msgstr ""
+
+#: ../../settings.md:6
+msgid "Reset Button"
+msgstr ""
+
+#: ../../settings.md:7
+msgid "The Reset button at the top of the Setting panel will reset all of the settings back to the default."
+msgstr ""
+
+#: ../../settings.md:8
+msgid "General Settings"
+msgstr ""
+
+#: ../../settings.md:10
+msgid "![](images/a-settings-general.png)"
+msgstr ""
+
+#: ../../settings.md:12
+msgid "Generate contract metadata is used for deploying with libraries. See our blog post on the subject: [Deploying with Libraries](https://medium.com/remix-ide/deploying-with-libraries-on-remix-ide-24f5f7423b60?sk=68f9c2bf318e85e129e46fe44683a730)"
+msgstr ""
+
+#: ../../settings.md:13
+msgid "Always use Remix VM at Load: will make the Remix VM the selected **environment** when Remix loads."
+msgstr ""
+
+#: ../../settings.md:14
+msgid "Text wrap: controls if the text in the editor should be wrapped."
+msgstr ""
+
+#: ../../settings.md:15
+msgid "Personal mode: can be used when one is connecting to a **local node**. It is used to have Remix temporarily save the passphrase - so that you don't need to **unlock** the account in GETH. Remix will not persist the passphrase - so if you refresh your browser the passphrase will be gone."
+msgstr ""
+
+#: ../../settings.md:16
+msgid "Matomo Analytics: This is where you can turn off and on your approval for us to use Matomo. We do not collect any personally identifiable information (PII) and our reports are public. See our [blog post on the subject](https://medium.com/remix-ide/help-us-improve-remix-ide-66ef69e14931?source=friends_link&sk=cf9c62fbe1270543eb4bd912e567e2d6)."
+msgstr ""
+
+#: ../../settings.md:18
+msgid "Github Access Token"
+msgstr ""
+
+#: ../../settings.md:20
+msgid "When performing Git operations on Github and when creating GISTs, it may be necessary to input an access token. This token has the specific permissions for your Git commands. Depending on the operation, you may also need to input your Github username & email address. Remix does not save your password info outside of your browser's localstorage. [https://github.com/settings/tokens](https://github.com/settings/tokens)"
+msgstr ""
+
+#: ../../settings.md:22
+msgid "![](images/a-settings-gh-token.png)"
+msgstr ""
+
+#: ../../settings.md:24
+msgid "Etherscan Access Token"
+msgstr ""
+
+#: ../../settings.md:26
+msgid "You need to input your Etherscan access token when debugging verified contracts with the Remix Debugger. When verifying a contract with the Etherscan plugin, you need to put the API key in that plugin and not in the Settings panel."
+msgstr ""
+
+#: ../../settings.md:28
+msgid "Click [here](https://etherscan.io/myapikey) to get your Etherscan API key."
+msgstr ""
+
+#: ../../settings.md:30
+msgid "![](images/a-settings-etherscan.png)"
+msgstr ""
+
+#: ../../settings.md:32
+msgid "Swarm Settings"
+msgstr ""
+
+#: ../../settings.md:34
+msgid "In the Solidity Compiler, after the compilation is completed, there is a button to publish to Swarm."
+msgstr ""
+
+#: ../../settings.md:36
+msgid "![](images/a-settings-pub-swarm.png)"
+msgstr ""
+
+#: ../../settings.md:38
+msgid "Without putting in an address & postage stamp, you'll be using the public gateway, which may not persist your content as surely as if you put in your own info."
+msgstr ""
+
+#: ../../settings.md:40
+msgid "![](images/a-settings-swarm.png)"
+msgstr ""
+
+#: ../../settings.md:42
+msgid "IPFS Settings"
+msgstr ""
+
+#: ../../settings.md:44
+msgid "Just like the Swarm settings above, IPFS settings are for publishing your contracts to IPFS from the Solidity Compiler."
+msgstr ""
+
+#: ../../settings.md:45
+msgid "If you do not put in any settings here, you will be using the public INFURA node. This will not guarantee your data will persist."
+msgstr ""
+
+#: ../../settings.md:47
+msgid "Other options are to:"
+msgstr ""
+
+#: ../../settings.md:48
+msgid "Use your own INFURA IPFS node. This requires a subscription. [Learn more](https://infura.io/product/ipfs)"
+msgstr ""
+
+#: ../../settings.md:49
+msgid "Use any external IPFS which doesn’t require any authentification."
+msgstr ""
+
+#: ../../settings.md:50
+msgid "Use your own local ipfs node (which usually runs under http://localhost:5001)"
+msgstr ""
+
+#: ../../settings.md:52
+msgid "![](images/a-settings-ipfs.png)"
+msgstr ""
+
+#: ../../settings.md:54
+msgid "Themes"
+msgstr ""
+
+#: ../../settings.md:55
+msgid "Choose themes here. The Dark & Light themes are the themes that the Remix team actively maintains."
+msgstr ""
+
+#: ../../settings.md:57
+msgid "![](images/a-settings-themes.png)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/slither.po b/docs/locale/ko_KR/LC_MESSAGES/slither.po
new file mode 100644
index 00000000000..68f84761861
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/slither.po
@@ -0,0 +1,175 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/slither.pot\n"
+"X-Crowdin-File-ID: 7435\n"
+"Language: ko_KR\n"
+
+#: ../../slither.md:1
+msgid "Slither"
+msgstr ""
+
+#: ../../slither.md:4
+msgid "_(Supported since Remix IDE v0.15.0 and Remixd v0.5.0)_"
+msgstr ""
+
+#: ../../slither.md:6
+msgid "Remixd and Slither"
+msgstr ""
+
+#: ../../slither.md:9
+msgid "**Note:** If you have not used `remixd` before, read more about it [here](./remixd.html)"
+msgstr ""
+
+#: ../../slither.md:11
+msgid "When [remixd NPM](https://www.npmjs.com/package/@remix-project/remixd) module is installed, it also installs [Slither](https://github.com/crytic/slither) and [solc-select](https://github.com/crytic/solc-select#quickstart) and latest version of [solc](https://docs.soliditylang.org/en/latest/installing-solidity.html)."
+msgstr ""
+
+#: ../../slither.md:13
+msgid "`Python3.6+ (pip3)` needs to already be installed on the System. In case of any discrepancy, Slither can also be installed along with other dependencies using command `remixd -i slither` _(This packaging of Slither with the remixd module is supported since Remixd `v0.6.3`)_"
+msgstr ""
+
+#: ../../slither.md:16
+msgid "when `remixd` is running locally on your device, an additional websocket plugin will be listening on port `65523` which will be dedicated for Slither integration. (Supported since Remixd `v0.5.0`)"
+msgstr ""
+
+#: ../../slither.md:18
+msgid "The remixd Slither listener is a websocket plugin similar to remixd and is used to perform Slither analysis with Remix IDE."
+msgstr ""
+
+#: ../../slither.md:20
+msgid "![](images/a-slither-remixd.png)"
+msgstr ""
+
+#: ../../slither.md:22
+msgid "Enable Slither Analysis"
+msgstr ""
+
+#: ../../slither.md:25
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../slither.md:27
+msgid "To use Slither analysis with Remix IDE efficiently, following tools should be installed locally on the system:"
+msgstr ""
+
+#: ../../slither.md:29
+msgid "**Slither:** [https://github.com/crytic/slither#how-to-install](https://github.com/crytic/slither#how-to-install)"
+msgstr ""
+
+#: ../../slither.md:30
+msgid "**Solc:** [https://docs.soliditylang.org/en/latest/installing-solidity.html](https://docs.soliditylang.org/en/latest/installing-solidity.html)"
+msgstr ""
+
+#: ../../slither.md:31
+msgid "**Solc-select:** [https://github.com/crytic/solc-select#quickstart](https://github.com/crytic/solc-select#quickstart)"
+msgstr ""
+
+#: ../../slither.md:33
+msgid "There are setup with [remixd](https://www.npmjs.com/package/@remix-project/remixd) installation or can be done using `remixd -i slither` commmand."
+msgstr ""
+
+#: ../../slither.md:35
+msgid "How to use"
+msgstr ""
+
+#: ../../slither.md:37
+msgid "If a project is shared through remixd and `localhost` workspace is loaded in Remix IDE, there will be an extra checkbox shown in `Solidity Static Analysis` plugin with the label `Enable Slither Analysis`."
+msgstr ""
+
+#: ../../slither.md:39
+msgid "![](images/a-slither-analysis.png)"
+msgstr ""
+
+#: ../../slither.md:41
+msgid "There is an info icon on the right side of the label which redirects to a specific section of Remix official documentation that explains how to use Slither Analysis and prerequisites for it."
+msgstr ""
+
+#: ../../slither.md:43
+msgid "One can check the `Enable Slither Analysis` box to run the analysis using Slither along with the Remix's analysis library."
+msgstr ""
+
+#: ../../slither.md:45
+msgid "Latest report of Slither analysis will be stored locally on project root with a file named as `remix-slither-report.json`."
+msgstr ""
+
+#: ../../slither.md:47
+msgid "Slither Analysis report will also be displayed on the Remix IDE side after the Remix analysis report for better user readability."
+msgstr ""
+
+#: ../../slither.md:49
+msgid "![](images/a-slither-analysis-success.png)"
+msgstr ""
+
+#: ../../slither.md:51
+msgid "The result of the analysis will be shown in the Remix IDE terminal"
+msgstr ""
+
+#: ../../slither.md:53
+msgid "![](images/a-slither-analysis-success-terminal.png)"
+msgstr ""
+
+#: ../../slither.md:55
+msgid "and also in the **remixd** console."
+msgstr ""
+
+#: ../../slither.md:57
+msgid "![](images/a-slither-analysis-success-remixd.png)"
+msgstr ""
+
+#: ../../slither.md:59
+msgid "To only run Slither Analysis, deselect `Select all` checkbox and click on `Run`. Now it will show only the Slither Analysis report."
+msgstr ""
+
+#: ../../slither.md:61
+msgid "![](images/a-slither-analysis-only.png)"
+msgstr ""
+
+#: ../../slither.md:63
+msgid "By default, it doesn't show the warnings for external libraries like remix-tests.sol, hardhat/console.sol etc. To have a look at them, check the box with label `Show warnings for external libraries`."
+msgstr ""
+
+#: ../../slither.md:65
+msgid "![](images/a-slither-analysis-ext-libs.png)"
+msgstr ""
+
+#: ../../slither.md:67
+msgid "More Details"
+msgstr ""
+
+#: ../../slither.md:69
+msgid "Analysis for Slither is run using the version set in `Solidity Compiler` plugin on Remix IDE. Slither is a CLI tool and requires `solc` to run the analysis. Before running the analysis, Slither websocket plugin checks if current version of solc is same as the version set in Remix IDE."
+msgstr ""
+
+#: ../../slither.md:71
+msgid "If the compiler version set in Solidity Compiler is different from current version of solc installed locally, the Slither websocket plugin will update the `solc` to be the same as the required version `solc-select`."
+msgstr ""
+
+#: ../../slither.md:73
+msgid "For example, if current `solc` version on the system is 0.8.4 and on the Remix IDE 0.8.6 is set, `remixd` logs explain remote solc version selection"
+msgstr ""
+
+#: ../../slither.md:75
+msgid "![](images/a-slither-analysis-select.png)"
+msgstr ""
+
+#: ../../slither.md:77
+msgid "After successful analysis run:"
+msgstr ""
+
+#: ../../slither.md:79
+msgid "![](images/a-slither-analysis-select-success.png)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/solidity_editor.po b/docs/locale/ko_KR/LC_MESSAGES/solidity_editor.po
new file mode 100644
index 00000000000..941bc449d41
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/solidity_editor.po
@@ -0,0 +1,359 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-10-23 08:59-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/solidity_editor.pot\n"
+"X-Crowdin-File-ID: 6494\n"
+"Language: ko_KR\n"
+
+#: ../../solidity_editor.md:1
+msgid "Editor"
+msgstr ""
+
+#: ../../solidity_editor.md:4
+msgid "Remix uses the Monaco editor. This is the same editor used by VSCode."
+msgstr ""
+
+#: ../../solidity_editor.md:5
+msgid "Remix saves the current file every 5 seconds."
+msgstr ""
+
+#: ../../solidity_editor.md:6
+msgid "The Remix Editor will highlight keywords in Solidity, JS, and TS."
+msgstr ""
+
+#: ../../solidity_editor.md:8
+msgid "Editor displays information from other plugins"
+msgstr ""
+
+#: ../../solidity_editor.md:9
+msgid "The main purpose of the Editor is, of course, to edit code. But it also works with other plugins, notably, the Solidity Compiler and the Debugger."
+msgstr ""
+
+#: ../../solidity_editor.md:11
+msgid "The Solidity Compiler will display warnings and errors in the Editor's gutter at the problematic line."
+msgstr ""
+
+#: ../../solidity_editor.md:12
+msgid "Breakpoints for the Debugger are input in the Editor's gutter."
+msgstr ""
+
+#: ../../solidity_editor.md:13
+msgid "When stepping through code in the Debugger, the relevant code will be highlighted in the Editor."
+msgstr ""
+
+#: ../../solidity_editor.md:15
+msgid "![](images/a-editor-general.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:17
+msgid "General Operations"
+msgstr ""
+
+#: ../../solidity_editor.md:18
+msgid "Files are open as tabs. When there are too many tabs to display, scrolling with a mouse wheel will horizontally scroll the tabs."
+msgstr ""
+
+#: ../../solidity_editor.md:20
+msgid "![](images/a-editor-tabs.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:22
+msgid "The Play button works on the active tab. If a Solidity file is active, clicking Play will compile it. If a TS or JS file is active, Play will run the script."
+msgstr ""
+
+#: ../../solidity_editor.md:23
+msgid "The magnifying glass icons (+/-) on the top left corner are to increase/decrease the font size."
+msgstr ""
+
+#: ../../solidity_editor.md:24
+msgid "The small type on the far right of the Editor is clickable to jump to a section."
+msgstr ""
+
+#: ../../solidity_editor.md:26
+msgid "TypeScript"
+msgstr ""
+
+#: ../../solidity_editor.md:28
+msgid "The Editor and Script Runner support TypeScript, which means that you can write TypeScript, have some auto-completion, and run it straight from Remix. As stated above, there is syntax highlighting in TS."
+msgstr ""
+
+#: ../../solidity_editor.md:30
+msgid "The default Workspace contains example TypeScript files."
+msgstr ""
+
+#: ../../solidity_editor.md:32
+msgid "Editor & Autocompile"
+msgstr ""
+
+#: ../../solidity_editor.md:33
+msgid "When autocompile is enabled (in the Settings panel), compilation will occur each time the current file is changed, or another file is selected."
+msgstr ""
+
+#: ../../solidity_editor.md:35
+msgid "![](images/a-editor-settings.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:36
+msgid "Autocomplete"
+msgstr ""
+
+#: ../../solidity_editor.md:37
+msgid "Autocompleting Solidity code happens when you start typing in the Editor. The Compiler will run in the background, and process any imports you have. You will see these imports appear in the .deps directory in the File Explorer."
+msgstr ""
+
+#: ../../solidity_editor.md:39
+msgid "![](images/a-editor-autocomplete1.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:41
+msgid "**Tip:** If you start with a Solidity file that contains errors, the Compiler might not be able to compile it. In that case, the Editor's autocomplete features will not fully work until after the file is successfully compiled. After that, autocomplete will work even if there are errors, but only for the elements the Compiler already understands. For example, if you add a new function in a file that contains errors, autocomplete will not be able to find that function because it can’t compile the file."
+msgstr ""
+
+#: ../../solidity_editor.md:43
+msgid "![](images/a-editor-autocomplete.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:45
+msgid "Auto complete on imports"
+msgstr ""
+
+#: ../../solidity_editor.md:46
+msgid "The Editor's autocomplete will offer the option to bring in OpenZeppelin contracts, Uniswap contracts, and the paths to all the files in the current Workspace."
+msgstr ""
+
+#: ../../solidity_editor.md:48
+msgid "![](images/a-editor-auto-import1.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:50
+msgid "So, when choosing @openzeppelin, you’ll get this:"
+msgstr ""
+
+#: ../../solidity_editor.md:52
+msgid "![](images/a-editor-auto-oz-import2.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:54
+msgid "And the same with Uniswap:"
+msgstr ""
+
+#: ../../solidity_editor.md:56
+msgid "![](images/a-editor-auto-uni-import3.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:58
+msgid "Errors and Warnings"
+msgstr ""
+
+#: ../../solidity_editor.md:59
+msgid "You can tell the file was successfully compiled if no errors or warnings are displayed in the Editor. Errors are displayed using squiggly lines. A red line indicates an error, a yellow line is a warning."
+msgstr ""
+
+#: ../../solidity_editor.md:61
+msgid "![](images/a-editor-error-red-squiggles.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:63
+msgid "Hovering over the squiggly line shows you the message from the Compiler."
+msgstr ""
+
+#: ../../solidity_editor.md:65
+msgid "![](images/a-editor-error-hover.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:67
+msgid "Tabs and the File Explorer will also will also display whether a file contains errors or warnings."
+msgstr ""
+
+#: ../../solidity_editor.md:69
+msgid "![](images/a-editor-errors-tabs-fe.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:71
+msgid "Errors on Imported Files"
+msgstr ""
+
+#: ../../solidity_editor.md:73
+msgid "A file with errors in one of the files that it imports will also trigger an error in the Editor. Your main file might not compile, but you will see there is a problem immediately."
+msgstr ""
+
+#: ../../solidity_editor.md:75
+msgid "Hovering over an Error Number in the File Explorer"
+msgstr ""
+
+#: ../../solidity_editor.md:76
+msgid "The number of errors in a file is also reported in the File Explorer. Hovering over the number, which indicates the amount of errors/warnings, will display the information from the Compiler."
+msgstr ""
+
+#: ../../solidity_editor.md:78
+msgid "![](images/a-editor-error-fe-num.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:80
+msgid "Quick Fixes for common mistakes"
+msgstr ""
+
+#: ../../solidity_editor.md:81
+msgid "The Remix editor offers solutions to the following missing keywords & code:"
+msgstr ""
+
+#: ../../solidity_editor.md:82
+msgid "License"
+msgstr ""
+
+#: ../../solidity_editor.md:83
+msgid "Pragma"
+msgstr ""
+
+#: ../../solidity_editor.md:84
+msgid "Visibility"
+msgstr ""
+
+#: ../../solidity_editor.md:85
+msgid "Mutability"
+msgstr ""
+
+#: ../../solidity_editor.md:86
+msgid "Data Location (storage, memory, etc)"
+msgstr ""
+
+#: ../../solidity_editor.md:87
+msgid "Add virtual or override"
+msgstr ""
+
+#: ../../solidity_editor.md:88
+msgid "Marking a contract abstract"
+msgstr ""
+
+#: ../../solidity_editor.md:90
+msgid "A Quick Fix option is available when there is a blue dot in Editor - like in the image below."
+msgstr ""
+
+#: ../../solidity_editor.md:92
+msgid "In this example, the license has been left out. After compilation, a warning is triggered and a Quick Fix blue dot appears."
+msgstr ""
+
+#: ../../solidity_editor.md:94
+msgid "![](images/a-editor-qf-license.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:96
+msgid "When you click on the blue dot, a popup menu appears. In this case of a missing license, these are the options:"
+msgstr ""
+
+#: ../../solidity_editor.md:98
+msgid "![](images/a-editor-qf-license-options5.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:100
+msgid "If you can’t get the Quick Fix blue dot to appear, try clicking on the number for the line where the error occurs."
+msgstr ""
+
+#: ../../solidity_editor.md:102
+msgid "Gas Estimates"
+msgstr ""
+
+#: ../../solidity_editor.md:104
+msgid "Gas estimates are displayed on the same line where a function is declared."
+msgstr ""
+
+#: ../../solidity_editor.md:106
+msgid "![](images/a-editor-i-got-gas.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:108
+msgid "Constructor gas estimates are also displayed, and consist of two components: creation cost and code deposit cost."
+msgstr ""
+
+#: ../../solidity_editor.md:111
+msgid "Go to Definition and References"
+msgstr ""
+
+#: ../../solidity_editor.md:113
+msgid "Definitions"
+msgstr ""
+
+#: ../../solidity_editor.md:114
+msgid "By right-clicking, you can go to a definition. You can also use the shortcut displayed."
+msgstr ""
+
+#: ../../solidity_editor.md:116
+msgid "You can also right-click on the filename of an import statement and jump to that file."
+msgstr ""
+
+#: ../../solidity_editor.md:118
+msgid "![](images/a-editor-goto-def.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:120
+msgid "You can also ‘peek’ at the definition inline in the Editor. You can then jump to a definition by double-clicking on the right hand side of the line."
+msgstr ""
+
+#: ../../solidity_editor.md:122
+msgid "References"
+msgstr ""
+
+#: ../../solidity_editor.md:123
+msgid "By right-clicking, you can display all the references. You can also use the shortcut displayed."
+msgstr ""
+
+#: ../../solidity_editor.md:125
+msgid "![](images/a-editor-refs1.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:127
+msgid "You can jump to a reference by double-clicking on the right hand side of the line."
+msgstr ""
+
+#: ../../solidity_editor.md:129
+msgid "![](images/a-editor-ref2.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:130
+msgid "Highlighted References"
+msgstr ""
+
+#: ../../solidity_editor.md:132
+msgid "References are highlighted in the Editor."
+msgstr ""
+
+#: ../../solidity_editor.md:134
+msgid "![](images/a-editor-ref-highlight.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:135
+msgid "Hovering"
+msgstr ""
+
+#: ../../solidity_editor.md:137
+msgid "When you hover over a term with a definition, the definition will pop up. Hovering over code that has triggered an error (underlined with a red squiggly line) will show the error message."
+msgstr ""
+
+#: ../../solidity_editor.md:139
+msgid "![](images/a-editor-hover.png)"
+msgstr ""
+
+#: ../../solidity_editor.md:140
+msgid "Files with Errors turn Red"
+msgstr ""
+
+#: ../../solidity_editor.md:142
+msgid "When a file contains an error, its name will turn red, both in the File Explorer and on its tab at the top of the Editor."
+msgstr ""
+
+#: ../../solidity_editor.md:144
+msgid "More about the Editor updates in this article: Major Updates to Remix Editor"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/static_analysis.po b/docs/locale/ko_KR/LC_MESSAGES/static_analysis.po
new file mode 100644
index 00000000000..cca54c340ed
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/static_analysis.po
@@ -0,0 +1,355 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/static_analysis.pot\n"
+"X-Crowdin-File-ID: 6496\n"
+"Language: ko_KR\n"
+
+#: ../../static_analysis.md:1
+msgid "Solidity Analyzers"
+msgstr ""
+
+#: ../../static_analysis.md:4
+msgid "Static code analysis is a process of debugging code by examining it without executing it."
+msgstr ""
+
+#: ../../static_analysis.md:6
+msgid "The `Solidity Analyzers` plugin gangs three analysis tools together to perform static analysis on Solidity smart contracts. Each tool checks for security vulnerabilities and bad development practices, among other issues. It can be activated from Remix `Plugin Manager`."
+msgstr ""
+
+#: ../../static_analysis.md:8
+msgid "![](images/a-ssa-activate.png)"
+msgstr ""
+
+#: ../../static_analysis.md:10
+msgid "`Solidity Analyzers` can also be loaded by clicking on the `Solidity` icon in the featured plugins section of Remix's home tab. This button loads the following plugins: Solidity Compiler, Solidity Unit Testing, and Static Analyzers."
+msgstr ""
+
+#: ../../static_analysis.md:12
+msgid "`Solidity Analyzers` uses these tools:"
+msgstr ""
+
+#: ../../static_analysis.md:13
+msgid "[Remix Analysis](#remix-analysis): a basic analysis tool"
+msgstr ""
+
+#: ../../static_analysis.md:14
+msgid "[Solhint linter](https://github.com/protofire/solhint#rules): a Solidity linter for code and style guide validations"
+msgstr ""
+
+#: ../../static_analysis.md:15
+msgid "[Slither Static Analysis](https://github.com/crytic/slither#slither-the-solidity-source-analyzer): a comprehensive static analysis tool"
+msgstr ""
+
+#: ../../static_analysis.md:17
+msgid "**NOTE:** Slither can only be used when Remix is connected to the local computer's filesystem with [Remixd](remix.html)."
+msgstr ""
+
+#: ../../static_analysis.md:19
+msgid "How to use"
+msgstr ""
+
+#: ../../static_analysis.md:22
+msgid "**A contract must be compiled before analysis can be run.**"
+msgstr ""
+
+#: ../../static_analysis.md:24
+msgid "At the top of the panel, check the tools that you want to use."
+msgstr ""
+
+#: ../../static_analysis.md:26
+msgid "![](images/a-ssa-1.png)"
+msgstr ""
+
+#: ../../static_analysis.md:28
+msgid "Errors & Warnings"
+msgstr ""
+
+#: ../../static_analysis.md:29
+msgid "By default, `Solidity Analyzers` will show both errors and warnings. The combined number of errors and warnings are shown in the badge in that tools tab."
+msgstr ""
+
+#: ../../static_analysis.md:31
+msgid "![](images/a-ssa-err-warn.png)"
+msgstr ""
+
+#: ../../static_analysis.md:33
+msgid "If you check `Hide warnings`, warnings will be hidden and you'll exclusively see the errors."
+msgstr ""
+
+#: ../../static_analysis.md:35
+msgid "**NOTE:** Remix Analysis does not flag error - it only shows warnings so if you check `Hide warnings`, nothing will show in the Remix Analysis tab."
+msgstr ""
+
+#: ../../static_analysis.md:37
+msgid "![](images/a-ssa-show-hide-warnings.png)"
+msgstr ""
+
+#: ../../static_analysis.md:39
+msgid "Warnings from external libraries"
+msgstr ""
+
+#: ../../static_analysis.md:41
+msgid "By default, warnings from external libraries are not shown. If you check the box `Show warnings for external libraries`, the tools will also analyse the external libraries for warnings."
+msgstr ""
+
+#: ../../static_analysis.md:43
+msgid "Slither"
+msgstr ""
+
+#: ../../static_analysis.md:45
+msgid "To run [Slither](https://github.com/crytic/slither#slither-the-solidity-source-analyzer) with this plugin, you need to connect Remix IDE to your filesystem with [Remixd](remix.html). Once Remixd is running, Slither is automatically loaded."
+msgstr ""
+
+#: ../../static_analysis.md:47
+msgid "Solhint"
+msgstr ""
+
+#: ../../static_analysis.md:49
+msgid "The [Solhint](https://github.com/protofire/solhint#rules) linter can be run without connecting Remix to your filesystem."
+msgstr ""
+
+#: ../../static_analysis.md:51
+msgid "Remix Analysis"
+msgstr ""
+
+#: ../../static_analysis.md:54
+msgid "Remix Analysis has 4 categories: `Security`, `Gas & Economy`, `ERC` & `Miscellaneous`."
+msgstr ""
+
+#: ../../static_analysis.md:56
+msgid "Here is the list of modules under each category along with the example code which **should be avoided or used very carefully while development**:"
+msgstr ""
+
+#: ../../static_analysis.md:58
+msgid "Category: Security"
+msgstr ""
+
+#: ../../static_analysis.md:59
+msgid "**Transaction origin: 'tx.origin' is used**"
+msgstr ""
+
+#: ../../static_analysis.md:61
+msgid "`tx.origin` is useful only in very exceptional cases. If you use it for authentication, you usually want to replace it by \"msg.sender\", because otherwise any contract you call can act on your behalf."
+msgstr ""
+
+#: ../../static_analysis.md:63
+#: ../../static_analysis.md:72
+#: ../../static_analysis.md:85
+#: ../../static_analysis.md:96
+#: ../../static_analysis.md:109
+#: ../../static_analysis.md:118
+#: ../../static_analysis.md:126
+#: ../../static_analysis.md:136
+#: ../../static_analysis.md:150
+#: ../../static_analysis.md:167
+#: ../../static_analysis.md:181
+#: ../../static_analysis.md:199
+#: ../../static_analysis.md:225
+#: ../../static_analysis.md:238
+#: ../../static_analysis.md:248
+#: ../../static_analysis.md:260
+#: ../../static_analysis.md:270
+#: ../../static_analysis.md:278
+#: ../../static_analysis.md:288
+#: ../../static_analysis.md:300
+#: ../../static_analysis.md:315
+msgid "_Example:_"
+msgstr ""
+
+#: ../../static_analysis.md:68
+msgid "**Check effects: Potential reentrancy bugs**"
+msgstr ""
+
+#: ../../static_analysis.md:70
+msgid "Potential Violation of Checks-Effects-Interaction pattern can lead to re-entrancy vulnerability."
+msgstr ""
+
+#: ../../static_analysis.md:81
+msgid "**Inline assembly: Inline assembly used**"
+msgstr ""
+
+#: ../../static_analysis.md:83
+msgid "Use of inline assembly is advised only in rare cases."
+msgstr ""
+
+#: ../../static_analysis.md:92
+msgid "**Block timestamp: Semantics may be unclear**"
+msgstr ""
+
+#: ../../static_analysis.md:94
+msgid "`now` does not mean current time. `now` is an alias for `block.timestamp`. `block.timestamp` can be influenced by miners to a certain degree, be careful."
+msgstr ""
+
+#: ../../static_analysis.md:105
+msgid "**Low level calls: Semantics may be unclear**"
+msgstr ""
+
+#: ../../static_analysis.md:107
+msgid "Use of low level `call`, `callcode` or `delegatecall` should be avoided whenever possible. `send` does not throw an exception when not successful, make sure you deal with the failure case accordingly. Use `transfer` whenever failure of the ether transfer should rollback the whole transaction."
+msgstr ""
+
+#: ../../static_analysis.md:114
+msgid "**Blockhash usage: Semantics maybe unclear**"
+msgstr ""
+
+#: ../../static_analysis.md:116
+msgid "`blockhash` is used to access the last 256 block hashes. A miner computes the block hash by \"summing up\" the information in the current block mined. By summing up the information in a clever way a miner can try to influence the outcome of a transaction in the current block."
+msgstr ""
+
+#: ../../static_analysis.md:122
+msgid "**Selfdestruct: Beware of caller contracts**"
+msgstr ""
+
+#: ../../static_analysis.md:124
+msgid "`selfdestruct` can block calling contracts unexpectedly. Be especially careful if this contract is planned to be used by other contracts (i.e. library contracts, interactions). Selfdestruction of the callee contract can leave callers in an inoperable state."
+msgstr ""
+
+#: ../../static_analysis.md:131
+msgid "Category: Gas & Economy"
+msgstr ""
+
+#: ../../static_analysis.md:132
+msgid "**Gas costs: Too high gas requirement of functions**"
+msgstr ""
+
+#: ../../static_analysis.md:134
+msgid "If the gas requirement of a function is higher than the block gas limit, it cannot be executed. Please avoid loops in your functions or actions that modify large areas of storage"
+msgstr ""
+
+#: ../../static_analysis.md:146
+msgid "**This on local calls: Invocation of local functions via 'this'**"
+msgstr ""
+
+#: ../../static_analysis.md:148
+msgid "Never use `this` to call functions in the same contract, it only consumes more gas than normal local calls."
+msgstr ""
+
+#: ../../static_analysis.md:163
+msgid "**Delete on dynamic Array: Use require/assert appropriately**"
+msgstr ""
+
+#: ../../static_analysis.md:165
+msgid "The `delete` operation when applied to a dynamically sized array in Solidity generates code to delete each of the elements contained. If the array is large, this operation can surpass the block gas limit and raise an OOG exception. Also nested dynamically sized objects can produce the same results."
+msgstr ""
+
+#: ../../static_analysis.md:177
+msgid "**For loop over dynamic array: Iterations depend on dynamic array's size**"
+msgstr ""
+
+#: ../../static_analysis.md:179
+msgid "Loops that do not have a fixed number of iterations, for example, loops that depend on storage values, have to be used carefully: Due to the block gas limit, transactions can only consume a certain amount of gas. The number of iterations in a loop can grow beyond the block gas limit which can stall the complete contract at a certain point. Additionally, using unbounded loops can incur in a lot of avoidable gas costs. Carefully test how many items at maximum you can pass to such functions to make it successful."
+msgstr ""
+
+#: ../../static_analysis.md:195
+msgid "**Ether transfer in loop: Transferring Ether in a for/while/do-while loop**"
+msgstr ""
+
+#: ../../static_analysis.md:197
+msgid "Ether payout should not be done in a loop. Due to the block gas limit, transactions can only consume a certain amount of gas. The number of iterations in a loop can grow beyond the block gas limit which can cause the complete contract to be stalled at a certain point. If required, make sure that number of iterations are low and you trust each address involved."
+msgstr ""
+
+#: ../../static_analysis.md:220
+msgid "Category: ERC"
+msgstr ""
+
+#: ../../static_analysis.md:221
+msgid "**ERC20: 'decimals' should be 'uint8'**"
+msgstr ""
+
+#: ../../static_analysis.md:223
+msgid "ERC20 Contracts `decimals` function should have `uint8` as return type."
+msgstr ""
+
+#: ../../static_analysis.md:233
+msgid "Category: Miscellaneous"
+msgstr ""
+
+#: ../../static_analysis.md:234
+msgid "**Constant/View/Pure functions: Potentially constant/view/pure functions**"
+msgstr ""
+
+#: ../../static_analysis.md:236
+msgid "It warns for the methods which potentially should be constant/view/pure but are not."
+msgstr ""
+
+#: ../../static_analysis.md:244
+msgid "**Similar variable names: Variable names are too similar**"
+msgstr ""
+
+#: ../../static_analysis.md:246
+msgid "It warns on the usage of similar variable names."
+msgstr ""
+
+#: ../../static_analysis.md:256
+msgid "**No return: Function with 'returns' not returning**"
+msgstr ""
+
+#: ../../static_analysis.md:258
+msgid "It warns for the methods which define a return type but never explicitly return a value."
+msgstr ""
+
+#: ../../static_analysis.md:266
+msgid "**Guard conditions: Use 'require' and 'assert' appropriately**"
+msgstr ""
+
+#: ../../static_analysis.md:268
+msgid "Use `assert(x)` if you never ever want x to be false, not in any circumstance (apart from a bug in your code). Use `require(x)` if x can be false, due to e.g. invalid input or a failing external component."
+msgstr ""
+
+#: ../../static_analysis.md:274
+msgid "**Result not used: The result of an operation not used**"
+msgstr ""
+
+#: ../../static_analysis.md:276
+msgid "A binary operation yields a value that is not used in the following. This is often caused by confusing assignment (=) and comparison (==)."
+msgstr ""
+
+#: ../../static_analysis.md:284
+msgid "**String Length: Bytes length != String length**"
+msgstr ""
+
+#: ../../static_analysis.md:286
+msgid "Bytes and string length are not the same since strings are assumed to be UTF-8 encoded (according to the ABI definition) therefore one character is not necessarily encoded in one byte of data."
+msgstr ""
+
+#: ../../static_analysis.md:296
+msgid "**Delete from dynamic array: 'delete' on an array leaves a gap**"
+msgstr ""
+
+#: ../../static_analysis.md:298
+msgid "Using `delete` on an array leaves a gap. The length of the array remains the same. If you want to remove the empty position you need to shift items manually and update the length property."
+msgstr ""
+
+#: ../../static_analysis.md:311
+msgid "**Data Truncated: Division on int/uint values truncates the result**"
+msgstr ""
+
+#: ../../static_analysis.md:313
+msgid "Division of integer values yields an integer value again. That means e.g. 10 / 100 = 0 instead of 0.1 since the result is an integer again. This does not hold for division of (only) literal values since those yield rational constants."
+msgstr ""
+
+#: ../../static_analysis.md:323
+msgid "Remix-analyzer"
+msgstr ""
+
+#: ../../static_analysis.md:325
+msgid "`remix-analyzer` is the library which works underneath the Remix Analysis tool."
+msgstr ""
+
+#: ../../static_analysis.md:327
+msgid "`remix-analyzer` is an [NPM package](https://www.npmjs.com/package/@remix-project/remix-analyzer). It can be used as a library in a solution supporting node.js. Find more information about this type of usage in the [remix-analyzer repository](https://github.com/ethereum/remix-project/tree/master/libs/remix-analyzer#how-to-use)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/support.po b/docs/locale/ko_KR/LC_MESSAGES/support.po
new file mode 100644
index 00000000000..9e871b6896b
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/support.po
@@ -0,0 +1,31 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-10-21 10:25+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/support.pot\n"
+"X-Crowdin-File-ID: 6498\n"
+"Language: ko_KR\n"
+
+#: ../../support.md:1
+msgid "Support chat"
+msgstr ""
+
+#: ../../support.md:4
+msgid "We know that blockchain ecosystem is very new and that lots of information is scattered around the web. That is why we created a community support chat where we and other users try to answer your questions if you get stuck using Remix. Please, join the Remix channel and ask the community for help."
+msgstr ""
+
+#: ../../support.md:8
+msgid "For anyone who is interested in developing a custom plugin for Remix or who wants to contribute to the codebase, we've opened another channel specially for developers working on Remix tool."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/terminal.po b/docs/locale/ko_KR/LC_MESSAGES/terminal.po
new file mode 100644
index 00000000000..f56743d61f1
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/terminal.po
@@ -0,0 +1,51 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/terminal.pot\n"
+"X-Crowdin-File-ID: 6500\n"
+"Language: ko_KR\n"
+
+#: ../../terminal.md:1
+msgid "Terminal"
+msgstr ""
+
+#: ../../terminal.md:4
+msgid "![](images/a-terminal-and-more.png)"
+msgstr ""
+
+#: ../../terminal.md:6
+msgid "Features, available in the terminal:"
+msgstr ""
+
+#: ../../terminal.md:8
+msgid "It integrates a JavaScript interpreter and the `web3` object. It enables the execution of the JavaScript script which interacts with the current context. (note that `web3` is only available if the `web provider` or `injected provider` mode is selected)."
+msgstr ""
+
+#: ../../terminal.md:12
+msgid "It displays important actions made while interacting with the Remix IDE (i.e. sending a new transaction)."
+msgstr ""
+
+#: ../../terminal.md:14
+msgid "It displays transactions that are mined in the current context. You can choose to display all transactions or only transactions that refers to the contracts Remix knows (e.g transaction created from the Remix IDE)."
+msgstr ""
+
+#: ../../terminal.md:18
+msgid "It allows searching for the data and clearing the logs from the terminal."
+msgstr ""
+
+#: ../../terminal.md:20
+msgid "You can run scripts by inputting them at the bottom after the `>`."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/testing_using_Chai_&_Mocha.po b/docs/locale/ko_KR/LC_MESSAGES/testing_using_Chai_&_Mocha.po
new file mode 100644
index 00000000000..8334d44a35c
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/testing_using_Chai_&_Mocha.po
@@ -0,0 +1,120 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/testing_using_Chai_&_Mocha.pot\n"
+"X-Crowdin-File-ID: 7437\n"
+"Language: ko_KR\n"
+
+#: ../../testing_using_Chai_&_Mocha.md:1
+msgid "Testing using Chai & Mocha"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:4
+msgid "_(Supported since Remix IDE v0.22.0)_"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:6
+msgid "Remix supports testing of your files in JavaScript using assertion library [Chai](https://www.chaijs.com/) & test framework [Mocha](https://mochajs.org/)"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:8
+msgid "_Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework._"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:10
+msgid "_Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun._"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:12
+msgid "Write tests"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:14
+msgid "Create a js file in your project workspace. Better to create it inside `scripts` folder. Let's name it `sample.test.js`."
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:16
+msgid "Write your tests in the file. Here is a sample:"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:33
+msgid "Run tests"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:35
+msgid "Once done with writing the tests, right click on file name in `File Explorers` plugin. It will show some options along with option to `Run`. This `Run` option is used to run the JS scripts"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:37
+msgid "![](images/run_with_mocha_option.png)"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:39
+msgid "Click on `Run`, tests will be executed and result will be shown on Terminal."
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:41
+msgid "![](images/run_with_mocha_result.png)"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:43
+msgid "Test a contract"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:45
+msgid "Similarly unit tests can be written to test the functionality of a smart contract. An example to test default `1_Storage.sol` contract can be as:"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:86
+#: ../../testing_using_Chai_&_Mocha.md:158
+msgid "Result will be as:"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:88
+msgid "![](images/run_with_mocha_storage_test.png)"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:90
+msgid "Debugging a test transaction"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:92
+msgid "To debug a transaction in one of the tests, print the transaction hash and input that in the [Remix Debugger plugin](https://remix-ide.readthedocs.io/en/latest/tutorial_debug.html)."
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:94
+msgid "![](images/run_with_mocha_print_hash.png)"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:96
+msgid "Hardhat-ethers support"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:98
+msgid "Remix also supports methods of [hardhat-ethers](https://hardhat.org/plugins/nomiclabs-hardhat-ethers.html#hardhat-ethers) plugin of Hardhat framework. Available methods under this plugin are:"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:131
+msgid "With this, one can run the tests for a hardhat project easily using Remix."
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:133
+msgid "Example to test `Storage` contract with this plugin methods can be as:"
+msgstr ""
+
+#: ../../testing_using_Chai_&_Mocha.md:160
+msgid "![](images/run_with_mocha_hhethers.png)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/truffle.po b/docs/locale/ko_KR/LC_MESSAGES/truffle.po
new file mode 100644
index 00000000000..ce8947ab8c5
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/truffle.po
@@ -0,0 +1,159 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/truffle.pot\n"
+"X-Crowdin-File-ID: 7439\n"
+"Language: ko_KR\n"
+
+#: ../../truffle.md:1
+msgid "Truffle"
+msgstr ""
+
+#: ../../truffle.md:4
+msgid "_(Supported since Remix IDE v0.23.0 and Remixd v0.6.0)_"
+msgstr ""
+
+#: ../../truffle.md:6
+msgid "Remixd and Truffle"
+msgstr ""
+
+#: ../../truffle.md:9
+msgid "**Note:** If you have not used `remixd` before, read more about it [here](./remixd.html)"
+msgstr ""
+
+#: ../../truffle.md:11
+msgid "If `remixd` is running locally on your device and shared folder is a **Truffle project**, an additional websocket plugin will be listening on port `65524`. According to its documentation,"
+msgstr ""
+
+#: ../../truffle.md:13
+msgid "_Truffle projects are projects with a truffle-config.js file._"
+msgstr ""
+
+#: ../../truffle.md:15
+msgid "Remixd looks for the `truffle-config.js` file in shared folder. If found, the Truffle websocket listener will run."
+msgstr ""
+
+#: ../../truffle.md:17
+msgid "The Truffle websocket listener is a websocket plugin similar to `remixd` and is used to perform Truffle specific actions with Remix IDE."
+msgstr ""
+
+#: ../../truffle.md:19
+msgid "It doesn't need any separate installation as it is shipped with [remixd NPM](https://www.npmjs.com/package/@remix-project/remixd) module."
+msgstr ""
+
+#: ../../truffle.md:21
+msgid "![](images/a-truffle-remixd.png)"
+msgstr ""
+
+#: ../../truffle.md:23
+msgid "Enable Truffle Compilation"
+msgstr ""
+
+#: ../../truffle.md:26
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../truffle.md:28
+msgid "To use Truffle compilation with Remix IDE efficiently:"
+msgstr ""
+
+#: ../../truffle.md:30
+msgid "**Truffle** should be installed locally on the system [https://trufflesuite.com/docs/truffle/getting-started/installation/](https://trufflesuite.com/docs/truffle/getting-started/installation/)"
+msgstr ""
+
+#: ../../truffle.md:31
+msgid "Shared folder should be a Truffle project containing `truffle-config.js`"
+msgstr ""
+
+#: ../../truffle.md:32
+msgid "`Remixd` Truffle websocket listener should be running at `65524`"
+msgstr ""
+
+#: ../../truffle.md:34
+msgid "How to use"
+msgstr ""
+
+#: ../../truffle.md:36
+msgid "If a truffle project is shared through remixd and `localhost` workspace is loaded in Remix IDE, there will be an extra checkbox shown in `Solidity Compiler` plugin with the label `Enable Truffle Compilation`."
+msgstr ""
+
+#: ../../truffle.md:38
+msgid "![](images/a-truffle-compilation.png)"
+msgstr ""
+
+#: ../../truffle.md:40
+msgid "There is an info icon alongside the label which redirects to a specific section of Remix official documentation that explains how to use Truffle compilation."
+msgstr ""
+
+#: ../../truffle.md:42
+msgid "One can check the `Enable Truffle Compilation` box to run the compilation for Truffle along with the Remix using the compiler configuration in `Solidity Compiler` plugin."
+msgstr ""
+
+#: ../../truffle.md:44
+msgid "On clicking `Compile` button, a file named as `remix-compiler.config.js` will be created on the project root which will be storing compiler configuration set in Remix's `Solidity Compiler` plugin. It is passed to Truffle for compilation."
+msgstr ""
+
+#: ../../truffle.md:46
+msgid "The result of the compilation will be shown in the Remix IDE terminal"
+msgstr ""
+
+#: ../../truffle.md:48
+msgid "![](images/a-truffle-compilation-success.png)"
+msgstr ""
+
+#: ../../truffle.md:50
+msgid "and also in the **remixd** terminal."
+msgstr ""
+
+#: ../../truffle.md:52
+msgid "Ganache Provider"
+msgstr ""
+
+#: ../../truffle.md:55
+msgid "_In Truffle, contracts are deployed by connecting to a built-in personal blockchain, i.e. Ganache. Read more about it in [Truffle documentation](https://trufflesuite.com/docs/truffle/quickstart/#migrating-with-truffle-develop)_"
+msgstr ""
+
+#: ../../truffle.md:57
+msgid "**Ganache Provider** is a plugin on Remix IDE which enables users to deploy the contract to the Truffle's built-in Ganache blockchain. `Ganache Provider` can be chosen from the list of environments in `Deploy & Run Transactions` plugin."
+msgstr ""
+
+#: ../../truffle.md:59
+msgid "![](images/a-truffle-provider.png)"
+msgstr ""
+
+#: ../../truffle.md:61
+msgid "As soon as you select `Ganache Provider`, a modal is opened asking for the `Ganache JSON-RPC Endpoint`."
+msgstr ""
+
+#: ../../truffle.md:63
+msgid "![](images/a-truffle-provider-modal.png)"
+msgstr ""
+
+#: ../../truffle.md:65
+msgid "If Ganache node is running with default options, the default endpoint value in modal will not need any change. In case, Ganache node host and port are different, JSON-RPC endpoint should be updated in the modal text box."
+msgstr ""
+
+#: ../../truffle.md:67
+msgid "Once the correct endpoint is filled in the modal, just click on `OK` and the accounts from the Ganache node will be loaded in the `ACCOUNT` section. Network id will also be shown."
+msgstr ""
+
+#: ../../truffle.md:69
+msgid "![](images/a-truffle-provider-connected.png)"
+msgstr ""
+
+#: ../../truffle.md:71
+msgid "Now, one can start deploying the contract from Remix IDE to the local Ganache node as usual."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/tutorial_debug.po b/docs/locale/ko_KR/LC_MESSAGES/tutorial_debug.po
new file mode 100644
index 00000000000..cb0afa6e46d
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/tutorial_debug.po
@@ -0,0 +1,375 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-09-12 15:08-0400\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/tutorial_debug.pot\n"
+"X-Crowdin-File-ID: 6502\n"
+"Language: ko_KR\n"
+
+#: ../../tutorial_debug.md:1
+msgid "Debugging Transactions"
+msgstr ""
+
+#: ../../tutorial_debug.md:4
+msgid "(also see this page's companion: [the Debugger Tour](debugger.html))"
+msgstr ""
+
+#: ../../tutorial_debug.md:6
+msgid "There are two ways to start a debugging session, each one corresponds to a different use case."
+msgstr ""
+
+#: ../../tutorial_debug.md:7
+msgid "Use Case 1: for debugging a transaction made in Remix - click the **Debug button** in the transaction log in Remix's Terminal."
+msgstr ""
+
+#: ../../tutorial_debug.md:9
+msgid "Use Case 2: for debugging a transaction where you have a **txn hash** from **verified contract** or where you have the txn hash and the compiled source code with the same compilation settings as the deployed contract."
+msgstr ""
+
+#: ../../tutorial_debug.md:11
+msgid "Initiate Debugging from the transaction log in the Terminal"
+msgstr ""
+
+#: ../../tutorial_debug.md:12
+msgid "Let's start with a basic contract ( or replace the contract below with your own )"
+msgstr ""
+
+#: ../../tutorial_debug.md:52
+msgid "Make a new file in Remix and copy the code above into it."
+msgstr ""
+
+#: ../../tutorial_debug.md:53
+msgid "Compile the code."
+msgstr ""
+
+#: ../../tutorial_debug.md:54
+msgid "Go to the Run & Deploy module."
+msgstr ""
+
+#: ../../tutorial_debug.md:56
+msgid "For the purpose of this tutorial, we will run the `Remix VM`."
+msgstr ""
+
+#: ../../tutorial_debug.md:58
+msgid "Deploy the contract:"
+msgstr ""
+
+#: ../../tutorial_debug.md:60
+msgid "Click the `Deploy` button"
+msgstr ""
+
+#: ../../tutorial_debug.md:62
+msgid "![](images/a-debug1-deploy.png)"
+msgstr ""
+
+#: ../../tutorial_debug.md:64
+msgid "You'll see the deployed instance (AKA the udapp)."
+msgstr ""
+
+#: ../../tutorial_debug.md:66
+msgid "![](images/a-debug2-udapp1a.png)"
+msgstr ""
+
+#: ../../tutorial_debug.md:68
+msgid "Then open it up (by clicking the caret)."
+msgstr ""
+
+#: ../../tutorial_debug.md:70
+msgid "![](images/a-debug3-udapp2.png)"
+msgstr ""
+
+#: ../../tutorial_debug.md:73
+msgid "We are going to call the `Donate` function and will send 2 Ethers."
+msgstr ""
+
+#: ../../tutorial_debug.md:75
+msgid "To do this: in the value input box put in **2** and **select Ether** as the unit (DO NOT LEAVE THE DEFAULT unit as **gwei** or the change will be hard to detect)."
+msgstr ""
+
+#: ../../tutorial_debug.md:77
+msgid "![](images/a-debug4-value-loc.png)"
+msgstr ""
+
+#: ../../tutorial_debug.md:79
+msgid "Then click the `Donate` button."
+msgstr ""
+
+#: ../../tutorial_debug.md:81
+msgid "This will send the Ether to the function."
+msgstr ""
+
+#: ../../tutorial_debug.md:83
+msgid "Because we are using the `Remix VM`, everything happens almost instantly. (If we had been using Injected Web 3, then we would have needed to approve the transaction, pay for gas and wait for the transaction to get mined.)"
+msgstr ""
+
+#: ../../tutorial_debug.md:85
+msgid "Remix displays information related to each transaction result in the terminal."
+msgstr ""
+
+#: ../../tutorial_debug.md:87
+msgid "Check in the **terminal** where the transaction you just made is logged."
+msgstr ""
+
+#: ../../tutorial_debug.md:89
+msgid "Click the **debug button**."
+msgstr ""
+
+#: ../../tutorial_debug.md:91
+msgid "![](images/a-debug5-term-debug-but.png)"
+msgstr ""
+
+#: ../../tutorial_debug.md:93
+msgid "But before we get to the actual debugging tool, the next section shows how to start a debugging session directly from the Debugger."
+msgstr ""
+
+#: ../../tutorial_debug.md:95
+msgid "Initiate Debugging from the Debugger"
+msgstr ""
+
+#: ../../tutorial_debug.md:97
+msgid "Click the bug icon in the icon panel to get to the debugger in the side panel."
+msgstr ""
+
+#: ../../tutorial_debug.md:99
+msgid "If you don't see the bug icon, go to the plugin manager and activate the debugger."
+msgstr ""
+
+#: ../../tutorial_debug.md:101
+msgid "You can start a debug session by providing a `transaction hash`."
+msgstr ""
+
+#: ../../tutorial_debug.md:103
+msgid "To find a transaction hash:"
+msgstr ""
+
+#: ../../tutorial_debug.md:104
+msgid "Go to a transaction in the terminal."
+msgstr ""
+
+#: ../../tutorial_debug.md:105
+msgid "Click a line with a transaction - to expand the log."
+msgstr ""
+
+#: ../../tutorial_debug.md:106
+msgid "The transaction hash is there - copy it."
+msgstr ""
+
+#: ../../tutorial_debug.md:108
+msgid "![](images/a-debug6-term-txn-hash.png)"
+msgstr ""
+
+#: ../../tutorial_debug.md:110
+msgid "Then click in the debugger paste the hash and click on the `Start debugging` button."
+msgstr ""
+
+#: ../../tutorial_debug.md:112
+msgid "![](images/a-debug7-debugger.png)"
+msgstr ""
+
+#: ../../tutorial_debug.md:114
+msgid "Using the debugger"
+msgstr ""
+
+#: ../../tutorial_debug.md:117
+msgid "![](images/a-debug8-top3.png)"
+msgstr ""
+
+#: ../../tutorial_debug.md:119
+msgid "The debugger allows one to see detailed informations about the transaction's execution. It uses the editor to display the location in the source code where the current execution is."
+msgstr ""
+
+#: ../../tutorial_debug.md:123
+msgid "The navigation part contains a slider and buttons that can be used to step through the transaction execution."
+msgstr ""
+
+#: ../../tutorial_debug.md:127
+msgid "Explanation of Debugger button capabilities"
+msgstr ""
+
+#: ../../tutorial_debug.md:129
+msgid "Step Over Back Returns to the previous step, but ignores/steps over function calls: the debugger WILL NOT enter a function"
+msgstr ""
+
+#: ../../tutorial_debug.md:131
+msgid "Step Back Returns to the previous step. Does not ignore function calls: the debugger WILL enter any function along the way"
+msgstr ""
+
+#: ../../tutorial_debug.md:133
+msgid "Step Into Forwards to the next step. Does not ignore function calls: the debugger WILL enter any function along the way"
+msgstr ""
+
+#: ../../tutorial_debug.md:135
+msgid "Step Over Forward Forwards to the next step, but ignores/steps over function calls: the debugger WILL NOT enter a function"
+msgstr ""
+
+#: ../../tutorial_debug.md:137
+msgid "Jump to the Previous Breakpoint Sends the debugger to the last visited breakpoint. Note that breakpoints may be set by clicking the line number in source code"
+msgstr ""
+
+#: ../../tutorial_debug.md:139
+msgid "Jump Out Sends the debugger to the function's end"
+msgstr ""
+
+#: ../../tutorial_debug.md:141
+msgid "Jump to the Next Breakpoint Sends the debugger to the next breakpoint"
+msgstr ""
+
+#: ../../tutorial_debug.md:145
+msgid "11 panels give detailed information about the execution:"
+msgstr ""
+
+#: ../../tutorial_debug.md:147
+msgid "Instructions"
+msgstr ""
+
+#: ../../tutorial_debug.md:149
+msgid "The Instructions panel displays the bytecode of the current executing contract- with the current step highlighted."
+msgstr ""
+
+#: ../../tutorial_debug.md:152
+msgid "Important note: When this panel is hidden, the slider will have a coarser granularity and only stop at *expression boundaries*, even if they are compiled into multiple EVM instructions. When the panel is displayed, it will be possible to step over every instruction, even those that refers to the same expression."
+msgstr ""
+
+#: ../../tutorial_debug.md:158
+msgid "Solidity Locals"
+msgstr ""
+
+#: ../../tutorial_debug.md:160
+msgid "The Solidity Locals panel displays local variables associated with the current context."
+msgstr ""
+
+#: ../../tutorial_debug.md:163
+msgid "Solidity State"
+msgstr ""
+
+#: ../../tutorial_debug.md:165
+msgid "The Solidity State panel displays state variables of the current executing contract."
+msgstr ""
+
+#: ../../tutorial_debug.md:168
+msgid "Low level panels"
+msgstr ""
+
+#: ../../tutorial_debug.md:170
+msgid "These panels display low level informations about the execution:"
+msgstr ""
+
+#: ../../tutorial_debug.md:172
+msgid "Stack"
+msgstr ""
+
+#: ../../tutorial_debug.md:173
+msgid "Storages Changes"
+msgstr ""
+
+#: ../../tutorial_debug.md:174
+msgid "Memory"
+msgstr ""
+
+#: ../../tutorial_debug.md:175
+msgid "Call Data"
+msgstr ""
+
+#: ../../tutorial_debug.md:176
+msgid "Call Stack"
+msgstr ""
+
+#: ../../tutorial_debug.md:177
+msgid "Return Value (only if the current step is a RETURN opcode)"
+msgstr ""
+
+#: ../../tutorial_debug.md:178
+msgid "Full Storages Changes (only at the end of the execution & it displays all the storage changes)"
+msgstr ""
+
+#: ../../tutorial_debug.md:180
+msgid "Reverted Transaction"
+msgstr ""
+
+#: ../../tutorial_debug.md:182
+msgid "A transaction can be `reverted` (because of an *out of gas exception*, a Solidity `revert` statement or a low level exception)."
+msgstr ""
+
+#: ../../tutorial_debug.md:184
+msgid "It is important to be aware of the exception and to locate where the exception is in the source code."
+msgstr ""
+
+#: ../../tutorial_debug.md:186
+msgid "Remix will warn you when the execution throws an exception. The `warning` button will jump to the last opcode before the exception happened."
+msgstr ""
+
+#: ../../tutorial_debug.md:189
+msgid "Breakpoints"
+msgstr ""
+
+#: ../../tutorial_debug.md:191
+msgid "The two last buttons from the navigation area are used to jump either back to the previous breakpoint or forward to the next breakpoint."
+msgstr ""
+
+#: ../../tutorial_debug.md:194
+msgid "Breakpoints can be added and removed by clicking on the line number in the **Editor**."
+msgstr ""
+
+#: ../../tutorial_debug.md:196
+msgid "When using a debug session with breakpoints, the execution will jump to the first encountered breakpoint."
+msgstr ""
+
+#: ../../tutorial_debug.md:199
+msgid "**Important note:** If you add a breakpoint to a line that declares a variable, it might be triggered twice: Once for initializing the variable to zero and a second time for assigning the actual value."
+msgstr ""
+
+#: ../../tutorial_debug.md:203
+msgid "Here's an example of this issue. If you are debugging the following contract:"
+msgstr ""
+
+#: ../../tutorial_debug.md:218
+msgid "And breakpoints are set for the lines"
+msgstr ""
+
+#: ../../tutorial_debug.md:220
+msgid "`uint p = 45;`"
+msgstr ""
+
+#: ../../tutorial_debug.md:222
+msgid "`m = 89;`"
+msgstr ""
+
+#: ../../tutorial_debug.md:224
+msgid "`uint l = 34;`"
+msgstr ""
+
+#: ../../tutorial_debug.md:226
+msgid "then clicking on the `Jump to the next breakpoint` button will stop at the following lines in the given order:"
+msgstr ""
+
+#: ../../tutorial_debug.md:229
+msgid "`uint p = 45;` (declaration of p)"
+msgstr ""
+
+#: ../../tutorial_debug.md:231
+msgid "`uint l = 34;` (declaration of l)"
+msgstr ""
+
+#: ../../tutorial_debug.md:233
+msgid "`uint p = 45;` (45 assigned to p)"
+msgstr ""
+
+#: ../../tutorial_debug.md:235
+msgid "`m = 89;` (89 assigned to m)"
+msgstr ""
+
+#: ../../tutorial_debug.md:237
+msgid "`uint l = 34;` (34 assigned to l)"
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/udapp.po b/docs/locale/ko_KR/LC_MESSAGES/udapp.po
new file mode 100644
index 00000000000..733f5f59dd0
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/udapp.po
@@ -0,0 +1,212 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/udapp.pot\n"
+"X-Crowdin-File-ID: 6504\n"
+"Language: ko_KR\n"
+
+#: ../../udapp.md:1
+msgid "Deploy & Run (part 2)"
+msgstr ""
+
+#: ../../udapp.md:4
+msgid "Deployed contracts"
+msgstr ""
+
+#: ../../udapp.md:6
+msgid "This section in the Run tab contains a list of deployed contracts to interact with through autogenerated UI of the deployed contract (also called udapp)."
+msgstr ""
+
+#: ../../udapp.md:8
+msgid "The deployed contract appears but is in its collapsed form."
+msgstr ""
+
+#: ../../udapp.md:10
+msgid "![](images/a-debug2-udapp1a.png)"
+msgstr ""
+
+#: ../../udapp.md:12
+msgid "Click the sideways caret to open it up."
+msgstr ""
+
+#: ../../udapp.md:14
+#: ../../udapp.md:64
+msgid "![](images/a-udapp1.png)"
+msgstr ""
+
+#: ../../udapp.md:16
+msgid "You will see the functions in the contract. The functions buttons can have different color buttons."
+msgstr ""
+
+#: ../../udapp.md:18
+msgid "Functions that are `constant` or `pure` functions in Solidity have a blue buttons. Clicking one of this type does not create a new transaction. So clicking will not cause state changes - it will only return a value stored in the contract - so it won't cost you anything in gas fees."
+msgstr ""
+
+#: ../../udapp.md:20
+msgid "Functions that change the state of the contract AND that do not accept Ether are called `non-payable` functions and have an orange button. Clicking on them will create a transaction and thus cost gas."
+msgstr ""
+
+#: ../../udapp.md:22
+msgid "Functions that have red buttons are `payable` functions in Solidity. Clicking one of these will create a new transaction and this transaction can accept a **value**. The **value** is put in in the Value field which is under the Gas Limit field."
+msgstr ""
+
+#: ../../udapp.md:24
+msgid "![](images/a-jvm-calling-instance.png)"
+msgstr ""
+
+#: ../../udapp.md:27
+msgid "See more information about [Solidity modifiers](https://solidity.readthedocs.io/en/develop/miscellaneous.html?highlight=pure#modifiers) in the Solidity docs. ."
+msgstr ""
+
+#: ../../udapp.md:31
+msgid "If a function requires input parameters, well.. you gotta put them in."
+msgstr ""
+
+#: ../../udapp.md:33
+msgid "Inputting parameters"
+msgstr ""
+
+#: ../../udapp.md:35
+msgid "![](images/a-udapp-inputs.png)"
+msgstr ""
+
+#: ../../udapp.md:37
+msgid "Inputting parameters in the collapsed view"
+msgstr ""
+
+#: ../../udapp.md:39
+msgid "(Inputting all the parameters in a single input box)"
+msgstr ""
+
+#: ../../udapp.md:40
+msgid "The input box tells you what type each parameter needs to be."
+msgstr ""
+
+#: ../../udapp.md:41
+msgid "Numbers and addresses do not need to be wrapped in double quotes."
+msgstr ""
+
+#: ../../udapp.md:42
+msgid "Strings do not need to be wrapped."
+msgstr ""
+
+#: ../../udapp.md:43
+msgid "Parameters are separated by commas."
+msgstr ""
+
+#: ../../udapp.md:45
+msgid "In the example above the \"delegate\" function has 3 parameters."
+msgstr ""
+
+#: ../../udapp.md:47
+msgid "Inputting parameters in the expanded view"
+msgstr ""
+
+#: ../../udapp.md:48
+msgid "Clicking the 'down' caret brings you to the *Multi-param Manager* - where you can input the parameters one at a time. **Much less confusing!**"
+msgstr ""
+
+#: ../../udapp.md:50
+msgid "![](images/a-udapp-multi-param-man.png)"
+msgstr ""
+
+#: ../../udapp.md:52
+msgid "In the expanded view, strings do not need to be wrapped."
+msgstr ""
+
+#: ../../udapp.md:54
+msgid "Clicking the clipboard icon will encode the inputs and will copy them. Only a valid set of inputs can be encoded."
+msgstr ""
+
+#: ../../udapp.md:56
+msgid "So if you made a mistake and put a uint8 where an address should have been, clicking the clipboard here will give you an error."
+msgstr ""
+
+#: ../../udapp.md:58
+msgid "Low level interactions"
+msgstr ""
+
+#: ../../udapp.md:60
+msgid "Low level interactions are used to send funds or calldata or funds & calldata to a contract through the **receive()** or **fallback()** function. Typically, you should only need to implement the fallback function if you are following an upgrade or proxy pattern."
+msgstr ""
+
+#: ../../udapp.md:62
+msgid "The low level interactions section is below the functions in each deployed contract."
+msgstr ""
+
+#: ../../udapp.md:67
+msgid "Please note the following:"
+msgstr ""
+
+#: ../../udapp.md:69
+msgid "If you are executing a plain Ether transfer to a contract, you need to have the receive() function in your contract. If your contract has been deployed and you want to send it funds, you would input the amount of Ether or Wei etc. (see **A** in graphic below), and then input **NOTHING** in the calldata field of **Low level interactions** (see **B** in graphic) and click the Transact button (see **C** in graphic below)."
+msgstr ""
+
+#: ../../udapp.md:71
+msgid "![](images/a-receive-fun.png)"
+msgstr ""
+
+#: ../../udapp.md:73
+msgid "If you are sending calldata to your contract with Ether, then you need to use the fallback() function and have it with the state mutability of **payable**."
+msgstr ""
+
+#: ../../udapp.md:75
+msgid "If you are not sending ether to the contract but **are** sending call data then you need to use the fallback() function."
+msgstr ""
+
+#: ../../udapp.md:77
+msgid "If you break the rules when using the **Low level interactions** you will be slapped with a warning."
+msgstr ""
+
+#: ../../udapp.md:79
+msgid "Please see the [solidity docs](https://solidity.readthedocs.io/en/latest/contracts.html#receive-ether-function) for more specifics about using the **fallback** and **receive** functions."
+msgstr ""
+
+#: ../../udapp.md:81
+msgid "Passing in a tuple or a struct to a function"
+msgstr ""
+
+#: ../../udapp.md:82
+msgid "To pass a tuple in, you need to put in an array []."
+msgstr ""
+
+#: ../../udapp.md:84
+msgid "Similarly, to pass in a struct as a parameter of a function, it needs to be put in as an array []. Also note that the line `pragma experimental ABIEncoderV2;` needs to put in at the top of the solidity file."
+msgstr ""
+
+#: ../../udapp.md:88
+msgid "Example of passing nested struct to a function"
+msgstr ""
+
+#: ../../udapp.md:89
+msgid "Consider a nested struct defined like this:"
+msgstr ""
+
+#: ../../udapp.md:101
+msgid "If a function has the signature `fertilizer(Garden memory gardenPlot)` then the correct syntax is:"
+msgstr ""
+
+#: ../../udapp.md:106
+msgid "To continue on this example, here's a sample contract:"
+msgstr ""
+
+#: ../../udapp.md:133
+msgid "After compiling, deploying the contract and opening up the deployed instance, we can then add the following input parameters to the function named **fertilizer** :"
+msgstr ""
+
+#: ../../udapp.md:139
+msgid "The function **fertilizer** accepts a single parameter of the type **Garden**. The type **Garden** is a **struct**. Structs are wrapped in **square brackets**. Inside **Garden** is an array that is an array of structs named **theFlowers**. It gets a set of brackets for the array and another set for the struct. Thus the double square brackets."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/unittesting.po b/docs/locale/ko_KR/LC_MESSAGES/unittesting.po
new file mode 100644
index 00000000000..20f458a1550
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/unittesting.po
@@ -0,0 +1,243 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/unittesting.pot\n"
+"X-Crowdin-File-ID: 6506\n"
+"Language: ko_KR\n"
+
+#: ../../unittesting.md:1
+msgid "Unit Testing Plugin"
+msgstr ""
+
+#: ../../unittesting.md:4
+msgid "Click the ![](images/a-user-testing-icon.png) (double check) icon from icon bar to move to the `Solidity Unit Testing` plugin."
+msgstr ""
+
+#: ../../unittesting.md:8
+msgid "If you haven't used this plugin before and are not seeing `double check` icon, you have to activate it from Remix plugin manager."
+msgstr ""
+
+#: ../../unittesting.md:10
+msgid "Go to the plugin manager by clicking the ![](images/a-plug.png) (plug) icon and activate `Solidity Unit Testing` plugin."
+msgstr ""
+
+#: ../../unittesting.md:12
+msgid "![](images/a-unit-testing-from-pm.png)"
+msgstr ""
+
+#: ../../unittesting.md:14
+msgid "Now `double check` icon will appear on the left side icon bar. Clicking on icon will load the plugin in the side panel."
+msgstr ""
+
+#: ../../unittesting.md:16
+msgid "Alternatively, just select `Solidity` environment from Remix IDE `Home` tab. This will activate `Solidity Unit Testing` plugin along with `Solidity Compiler`, `Deploy & Run Transactions` & `Solidity Static Analysis` plugins."
+msgstr ""
+
+#: ../../unittesting.md:18
+msgid "After successful loading, plugin looks like this:"
+msgstr ""
+
+#: ../../unittesting.md:20
+msgid "![](images/a-unit-testing-feature.png)"
+msgstr ""
+
+#: ../../unittesting.md:22
+msgid "Test directory"
+msgstr ""
+
+#: ../../unittesting.md:24
+msgid "Plugin asks you to provide a directory which will be your workspace only for this plugin. To select directory, as soon as you add `/` to the path, it shows the possible options."
+msgstr ""
+
+#: ../../unittesting.md:26
+msgid "![](images/a-unit-testing-test-directory.png)"
+msgstr ""
+
+#: ../../unittesting.md:28
+msgid "Once selected, this directory will be used to load test files and to store newly generated test files."
+msgstr ""
+
+#: ../../unittesting.md:30
+msgid "Default test directory is `browser/tests`."
+msgstr ""
+
+#: ../../unittesting.md:32
+msgid "Generate"
+msgstr ""
+
+#: ../../unittesting.md:34
+msgid "Select a solidity file which you want to test and click on the button `Generate`. It will generate a test file dedicated to selected file **in the test directory**."
+msgstr ""
+
+#: ../../unittesting.md:36
+msgid "If no file is selected, it will still create a file with generic name as `newFile_test.sol`."
+msgstr ""
+
+#: ../../unittesting.md:38
+msgid "This file contains sufficient information to give better understanding about developing tests for a contract."
+msgstr ""
+
+#: ../../unittesting.md:40
+msgid "Generic file looks as:"
+msgstr ""
+
+#: ../../unittesting.md:86
+msgid "Write Tests"
+msgstr ""
+
+#: ../../unittesting.md:88
+msgid "Write sufficient unit tests to ensure that your contract works as expected under different scenarios."
+msgstr ""
+
+#: ../../unittesting.md:90
+msgid "Remix injects a built-in `assert` library which can be used for testing. You can visit the library documentation [here](./assert_library)."
+msgstr ""
+
+#: ../../unittesting.md:92
+msgid "Apart from this, Remix allows usage of some special functions in the test file to make testing more structural. They are as:"
+msgstr ""
+
+#: ../../unittesting.md:94
+msgid "`beforeEach()` - Runs before each test"
+msgstr ""
+
+#: ../../unittesting.md:95
+msgid "`beforeAll()` - Runs before all tests"
+msgstr ""
+
+#: ../../unittesting.md:96
+msgid "`afterEach()` - Runs after each test"
+msgstr ""
+
+#: ../../unittesting.md:97
+msgid "`afterAll()` - Runs after all tests"
+msgstr ""
+
+#: ../../unittesting.md:99
+msgid "To get started, see [this simple example](./unittesting_examples.html#simple-example)."
+msgstr ""
+
+#: ../../unittesting.md:101
+msgid "Run"
+msgstr ""
+
+#: ../../unittesting.md:103
+msgid "Once you are done with writing tests, select the file(s) and click on `Run` to execute the tests. The execution will run in a separate environment. After completing the execution of one file, a test summary will be shown as below:"
+msgstr ""
+
+#: ../../unittesting.md:105
+msgid "![](images/a-unit-testing-run-result.png)"
+msgstr ""
+
+#: ../../unittesting.md:107
+msgid "For failed tests, there will be more assertion details to analyze the issue. Clicking on failed test will highlight the relevant line of code in the editor."
+msgstr ""
+
+#: ../../unittesting.md:109
+msgid "Stop"
+msgstr ""
+
+#: ../../unittesting.md:111
+msgid "If you have selected multiple files to run the tests and want to stop the execution, click on `Stop` button. It will stop execution after running the tests for current file."
+msgstr ""
+
+#: ../../unittesting.md:113
+msgid "Customization"
+msgstr ""
+
+#: ../../unittesting.md:115
+msgid "Remix facilitates users with various types of customizations to test a contract properly."
+msgstr ""
+
+#: ../../unittesting.md:117
+msgid "**1. Custom Compiler Context**"
+msgstr ""
+
+#: ../../unittesting.md:119
+msgid "`Solidity Unit Testing` refers to the `Solidity Compiler` plugin for compiler configurations. Configure `Compiler`, `EVM Version`, `Enable Optimization` & `runs` in the `Solidity Compiler` plugin and this will be used in the `Solidity Unit Testing` plugin for contract compilation before running unit tests."
+msgstr ""
+
+#: ../../unittesting.md:123
+msgid "![](images/a-unit-testing-custom-compiler-config.png)"
+msgstr ""
+
+#: ../../unittesting.md:125
+msgid "**2. Custom Transaction Context**"
+msgstr ""
+
+#: ../../unittesting.md:127
+msgid "For interacting with a contract's method, the prime parameters of a transaction are `from` address, `value` & `gas`. Typically, a method's behaviour is tested with different values of these parameters."
+msgstr ""
+
+#: ../../unittesting.md:129
+msgid "One can input custom values for `msg.sender` & `msg.value` of transaction using NatSpec comments, like:"
+msgstr ""
+
+#: ../../unittesting.md:139
+msgid "Instructions to use:"
+msgstr ""
+
+#: ../../unittesting.md:141
+msgid "Parameters must be defined in the method's NatSpec"
+msgstr ""
+
+#: ../../unittesting.md:142
+msgid "Each parameter key should be prefixed with a hash (**#**) and end with a colon following a space (**: **) like `#sender: ` & `#value: `"
+msgstr ""
+
+#: ../../unittesting.md:143
+msgid "For now, customization is only available for parameters `sender` & `value`"
+msgstr ""
+
+#: ../../unittesting.md:144
+msgid "Sender is the `from` address of a transaction which is accessed using `msg.sender` inside a contract method. It should be defined in a fixed format as '**account-**'"
+msgstr ""
+
+#: ../../unittesting.md:145
+msgid "`` varies from `0-2` before remix-ide release v0.10.0 and `0-9` afterwards"
+msgstr ""
+
+#: ../../unittesting.md:146
+msgid "`remix_accounts.sol` must be imported in your test file to use custom `sender`"
+msgstr ""
+
+#: ../../unittesting.md:147
+msgid "Value is `value` sent along with a transaction in `wei` which is accessed using `msg.value` inside a contract method. It should be a number."
+msgstr ""
+
+#: ../../unittesting.md:149
+msgid "Regarding `gas`, Remix estimates the required gas for each transaction internally. Still if a contract deployment fails with `Out-of-Gas` error, it tries to redeploy it by doubling the gas. Deployment failing with double gas will show error: ```contract deployment failed after trying twice: The contract code couldn't be stored, please check your gas limit```"
+msgstr ""
+
+#: ../../unittesting.md:151
+msgid "Various test examples can be seen in [examples](./unittesting_examples) section."
+msgstr ""
+
+#: ../../unittesting.md:154
+msgid "Points to remember"
+msgstr ""
+
+#: ../../unittesting.md:157
+msgid "A test contract cannot have a method with parameters. Having one such method will show error: `Method 'methodname' can not have parameters inside a test contract`"
+msgstr ""
+
+#: ../../unittesting.md:158
+msgid "Number of test accounts are `3` before remix-ide release v0.10.0 and `10` afterwards"
+msgstr ""
+
+#: ../../unittesting.md:159
+msgid "While a test file which imports `remix_accounts.sol` might not compile successfully with `Solidity Compiler` plugin, do not worry, this will have no bearing on its success with `Solidity Unit Testing` plugin."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/unittestingAsCLI.po b/docs/locale/ko_KR/LC_MESSAGES/unittestingAsCLI.po
new file mode 100644
index 00000000000..7e9e4a77ec0
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/unittestingAsCLI.po
@@ -0,0 +1,131 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/unittestingAsCLI.pot\n"
+"X-Crowdin-File-ID: 7441\n"
+"Language: ko_KR\n"
+
+#: ../../unittestingAsCLI.md:1
+msgid "Command Line Interface"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:3
+msgid "remix-tests [![](https://badge.fury.io/js/%40remix-project%2Fremix-tests.svg)](https://www.npmjs.com/package/@remix-project/remix-tests)"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:6
+msgid "`remix-tests` is a tool which can be used as a CLI (Command Line Interface) solution to run the solidity unit tests. This is the same tool which works as a library underneath Remix's `Solidity Unit Testing` plugin. It is available on NPM as `@remix-project/remix-tests`."
+msgstr ""
+
+#: ../../unittestingAsCLI.md:8
+msgid "Get started"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:11
+msgid "You can install it using NPM:"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:13
+msgid "As a dev dependency:"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:15
+msgid "`npm install --save-dev @remix-project/remix-tests`"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:17
+msgid "As a global NPM module:"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:19
+msgid "`npm install -g @remix-project/remix-tests`"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:21
+msgid "To confirm installation, run:"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:26
+msgid "Version should be same as on NPM."
+msgstr ""
+
+#: ../../unittestingAsCLI.md:28
+msgid "How to use"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:31
+msgid "You can see all available options using `help` command."
+msgstr ""
+
+#: ../../unittestingAsCLI.md:51
+msgid "General structure of a command is as:"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:53
+msgid "`$ remix-tests `"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:55
+msgid "To run all test files inside `examples` directory"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:59
+msgid "To run single test file named `simple_storage_test.sol` inside `examples` directory"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:63
+msgid "**NOTE:** `remix-tests` will assume that name of test(s) file ends with `\"_test.sol\"`. e.g `simple_storage_test.sol`"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:65
+msgid "Example"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:67
+msgid "Consider for a simple storage contract named `simple_storage.sol`:"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:89
+msgid "Test file `simple_storage_test.sol` can be as:"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:123
+msgid "Running `simple_storage_test.sol` file will output as:"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:149
+msgid "Custom compiler context"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:152
+msgid "Most of the `remix-tests` options are there to define a custom compiler context. With an extended custom compiler context, execution of above test file will go as:"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:183
+msgid "Rememeber, custom compiler version will require internet connection to load compiler."
+msgstr ""
+
+#: ../../unittestingAsCLI.md:185
+msgid "As a CI solution"
+msgstr ""
+
+#: ../../unittestingAsCLI.md:188
+msgid "`remix-tests` can also be used for continuous integration (CI) testing."
+msgstr ""
+
+#: ../../unittestingAsCLI.md:190
+msgid "For implementation example, see [Su Squares contract](https://github.com/su-squares/ethereum-contract/tree/e542f37d4f8f6c7b07d90a6554424268384a4186) and [Travis build](https://travis-ci.org/su-squares/ethereum-contract/builds/446186067) that uses `remix-tests` for continuous integration."
+msgstr ""
+
diff --git a/docs/locale/ko_KR/LC_MESSAGES/unittesting_examples.po b/docs/locale/ko_KR/LC_MESSAGES/unittesting_examples.po
new file mode 100644
index 00000000000..ddf62650560
--- /dev/null
+++ b/docs/locale/ko_KR/LC_MESSAGES/unittesting_examples.po
@@ -0,0 +1,119 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: remix-translation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-24 17:10+0200\n"
+"PO-Revision-Date: 2024-05-31 13:50\n"
+"Last-Translator: \n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: remix-translation\n"
+"X-Crowdin-Project-ID: 431830\n"
+"X-Crowdin-Language: ko\n"
+"X-Crowdin-File: /[ethereum.remix-ide] master/docs/_build/gettext/unittesting_examples.pot\n"
+"X-Crowdin-File-ID: 6508\n"
+"Language: ko_KR\n"
+
+#: ../../unittesting_examples.md:1
+msgid "Testing by Example"
+msgstr ""
+
+#: ../../unittesting_examples.md:4
+msgid "Here are some examples which can give you better understanding to plan your tests."
+msgstr ""
+
+#: ../../unittesting_examples.md:6
+msgid "**Note:** Examples in this section are intended to give you a push for development. We don't recommend to rely on them without verifying at your end."
+msgstr ""
+
+#: ../../unittesting_examples.md:8
+msgid "1. Simple example"
+msgstr ""
+
+#: ../../unittesting_examples.md:9
+msgid "In this example, we test setting & getting variables."
+msgstr ""
+
+#: ../../unittesting_examples.md:11
+msgid "Contract/Program to be tested: `Simple_storage.sol`"
+msgstr ""
+
+#: ../../unittesting_examples.md:32
+msgid "Test contract/program: `simple_storage_test.sol`"
+msgstr ""
+
+#: ../../unittesting_examples.md:60
+msgid "2. Testing a method involving `msg.sender`"
+msgstr ""
+
+#: ../../unittesting_examples.md:61
+msgid "In Solidity, `msg.sender` plays a great role in access management of a smart contract methods interaction. Different `msg.sender` can help to test a contract involving multiple accounts with different roles. Here is an example for testing such case:"
+msgstr ""
+
+#: ../../unittesting_examples.md:63
+msgid "Contract/Program to be tested: `Sender.sol`"
+msgstr ""
+
+#: ../../unittesting_examples.md:85
+msgid "Test contract/program: `Sender_test.sol`"
+msgstr ""
+
+#: ../../unittesting_examples.md:137
+msgid "3. Testing method execution"
+msgstr ""
+
+#: ../../unittesting_examples.md:139
+msgid "With Solidity, one can directly verify the changes made by a method in storage by retrieving those variables from a contract. But testing for a successful method execution takes some strategy. Well that is not entirely true, when a test is successful - it is usually obvious why it passed. However, when a test fails, it is essential to understand why it failed."
+msgstr ""
+
+#: ../../unittesting_examples.md:141
+msgid "To help in such cases, Solidity introduced the `try-catch` statement in version `0.6.0`. Previously, we had to use low-level calls to track down what was going on."
+msgstr ""
+
+#: ../../unittesting_examples.md:143
+msgid "Here is an example test file that use both **try-catch** blocks and **low level calls**:"
+msgstr ""
+
+#: ../../unittesting_examples.md:145
+msgid "Contract/Program to be tested: `AttendanceRegister.sol`"
+msgstr ""
+
+#: ../../unittesting_examples.md:174
+msgid "Test contract/program: `AttendanceRegister_test.sol`"
+msgstr ""
+
+#: ../../unittesting_examples.md:262
+msgid "4. Testing a method involving `msg.value`"
+msgstr ""
+
+#: ../../unittesting_examples.md:263
+msgid "In Solidity, ether can be passed along with a method call which is accessed inside contract as `msg.value`. Sometimes, multiple calculations in a method are performed based on `msg.value` which can be tested with various values using Remix's Custom transaction context. See the example:"
+msgstr ""
+
+#: ../../unittesting_examples.md:265
+msgid "Contract/Program to be tested: `Value.sol`"
+msgstr ""
+
+#: ../../unittesting_examples.md:285
+msgid "Test contract/program: `Value_test.sol`"
+msgstr ""
+
+#: ../../unittesting_examples.md:331
+msgid "5. Testing a method involving `msg.sender` and `msg.value`"
+msgstr ""
+
+#: ../../unittesting_examples.md:332
+msgid "In the following test, we will be emulating multiple accounts making deposits in a smart contract to the same recipient and finally having the recipient withdraw the lump sum of all donations. We are also verifying that the donations match the expected amounts. This example really drives home how could you switch between different accounts, while using a set of different msg.value amounts."
+msgstr ""
+
+#: ../../unittesting_examples.md:334
+msgid "Contract/Program to be tested: `Donations.sol`"
+msgstr ""
+
+#: ../../unittesting_examples.md:379
+msgid "Test contract/program: `Donations_test.sol`"
+msgstr ""
+