From 88a1df4dcbd10d7cba7602c0236b8eb628177da7 Mon Sep 17 00:00:00 2001 From: KeonWoo Ro <84064207+ro-ko@users.noreply.github.com> Date: Tue, 7 Dec 2021 21:17:47 +0900 Subject: [PATCH 01/14] Update index.js --- src/localization/index.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/localization/index.js b/src/localization/index.js index 4c4febfb..a65e16d8 100644 --- a/src/localization/index.js +++ b/src/localization/index.js @@ -1,17 +1,20 @@ import en from './en'; import tr from './tr'; import ru from './ru'; +import ko from './ko'; const messages = { en, tr, ru, + ko, }; export const langNames = { en: 'EN', tr: 'TR', ru: 'RU', + ko: 'KO', }; export const defaultLocale = 'en'; From e3de0d40a358c44d905922c9e752fbcc3490b51e Mon Sep 17 00:00:00 2001 From: KeonWoo Ro <84064207+ro-ko@users.noreply.github.com> Date: Tue, 7 Dec 2021 21:22:13 +0900 Subject: [PATCH 02/14] add Korean section --- src/localization/ko/cheatsheet.json | 67 ++++++++++++ src/localization/ko/general.json | 32 ++++++ src/localization/ko/index.js | 13 +++ src/localization/ko/landing.json | 20 ++++ src/localization/ko/learn.json | 164 ++++++++++++++++++++++++++++ 5 files changed, 296 insertions(+) create mode 100644 src/localization/ko/cheatsheet.json create mode 100644 src/localization/ko/general.json create mode 100644 src/localization/ko/index.js create mode 100644 src/localization/ko/landing.json create mode 100644 src/localization/ko/learn.json diff --git a/src/localization/ko/cheatsheet.json b/src/localization/ko/cheatsheet.json new file mode 100644 index 00000000..7c7de12a --- /dev/null +++ b/src/localization/ko/cheatsheet.json @@ -0,0 +1,67 @@ +{ + "cheatsheet.anchors": "Anchors", + "cheatsheet.caret.title": "Start of string or line", + "cheatsheet.caret.description": "Matches the beginning of the string or line.", + "cheatsheet.dollar.title": "End of string or line", + "cheatsheet.dollar.description": "Matches the end of the string or line.", + "cheatsheet.wordBoundary.title": "Word Boundary", + "cheatsheet.wordBoundary.description": "Matches the word character or position at the end of a word.", + "cheatsheet.notWordBoundary.title": "Not Word Boundary", + "cheatsheet.notWordBoundary.description": "Matches a word character or position that is not at the end of a word.", + + "cheatsheet.characterClasses": "Character Classes", + "cheatsheet.characterSet.title": "Character Set", + "cheatsheet.characterSet.description": "Matches any character in the set.", + "cheatsheet.negatedCharacterSet.title": "Negated Character Set", + "cheatsheet.negatedCharacterSet.description": "Matches any character not in the set.", + "cheatsheet.range.title": "Range", + "cheatsheet.range.description": "Matches all characters between two characters, including themselves.", + "cheatsheet.dot.title": "Dot", + "cheatsheet.dot.description": "Matches any character except line breaks.", + "cheatsheet.word.title": "Word", + "cheatsheet.word.description": "Matches any alphanumeric character. Including the underline.", + "cheatsheet.notWord.title": "Not Word", + "cheatsheet.notWord.description": "Matches any non-alphanumeric character.", + "cheatsheet.digit.title": "Digit", + "cheatsheet.digit.description": "Matches any numeric character.", + "cheatsheet.notDigit.title": "Not Digit", + "cheatsheet.notDigit.description": "Matches any non-numeric character.", + "cheatsheet.space.title": "Whitespace", + "cheatsheet.space.description": "Matches any whitespace character.", + "cheatsheet.notSpace.title": "Not Whitespace", + "cheatsheet.notSpace.description": "Matches any non-whitespace character.", + + "cheatsheet.flags": "Flags", + "cheatsheet.caseInsensitiveFlag.title": "Ignore Case", + "cheatsheet.caseInsensitiveFlag.description": "Makes the expression case insensitive.", + "cheatsheet.globalFlag.title": "Global", + "cheatsheet.globalFlag.description": "Ensures that the expression does not stop on the first match.", + "cheatsheet.multilineFlag.title": "Multiline", + "cheatsheet.multilineFlag.description": "If not enabled, line start and end equals the beginning and end of the entire string. It doesn't work for each row individually.", + + "cheatsheet.groupAndReferences": "Group & References", + "cheatsheet.group.title": "Group", + "cheatsheet.group.description": "Groups an expression.", + "cheatsheet.reference.title": "Reference", + "cheatsheet.reference.description": "References a grouped expression.", + "cheatsheet.nonCapturingGroup.title": "Non Capturing Group", + "cheatsheet.nonCapturingGroup.description": "Makes a grouping that cannot be referenced.", + + "cheatsheet.lookarounds": "Lookarounds", + "cheatsheet.positiveLookahead.title": "Positive Lookahead", + "cheatsheet.negativeLookahead.title": "Negative Lookahead", + "cheatsheet.positiveLookbehind.title": "Positive Lookbehind", + "cheatsheet.negativeLookbehind.title": "Negative Lookbehind", + + "cheatsheet.quantifiersAndAlternation": "Quantifiers And Alternation", + "cheatsheet.plus.title": "Plus", + "cheatsheet.plus.description": "Expression matches one or more.", + "cheatsheet.asterisk.title": "Astekrisk", + "cheatsheet.asterisk.description": "Expression matches zero or more.", + "cheatsheet.quantifier.title": "Quantifier", + "cheatsheet.quantifier.description": "Expression matches within specified ranges.", + "cheatsheet.optional.title": "Optional", + "cheatsheet.optional.description": "Makes the expression optional.", + "cheatsheet.alternation.title": "Alternation", + "cheatsheet.alternation.description": "Or it works like. It waits for one of the expressions it reserved to match." +} \ No newline at end of file diff --git a/src/localization/ko/general.json b/src/localization/ko/general.json new file mode 100644 index 00000000..7747b37e --- /dev/null +++ b/src/localization/ko/general.json @@ -0,0 +1,32 @@ +{ + "general.prev": "Previous", + "general.next": "Next", + "general.result": "Result", + "general.regex": "Regex", + "general.text": "Text", + "general.completedStep": "Step Completed!", + "general.hintQuestion": "Show Answer", + "general.reportStep": "Report a Problem", + "general.startLearning": "Start Learning", + "general.comingSoon": "Coming Soon", + "general.becomeSponsor": "Become a Sponsor", + "general.learn": "Learn", + "general.playground": "Playground", + "general.cheatsheet": "Cheatsheet", + "general.ourSponsors": "Our Sponsors", + + "notFound.intro": "The page you are looking for does not exist.", + "notFound.button": "Back to home", + + "page.landing.title": "Regex Learn - Step by step, from zero to advanced.", + "page.learn.title": "Regex Learn - RegEx Interactive Course", + "page.cheatsheet.title": "Regex Learn - RegEx Cheatsheet", + "page.404.title": "Regex Learn - Not Found", + + "page.landing.description": "Learn RegEx interactively, practice at your level, test and share your own RegEx.", + "page.learn.description": "Learn RegEx step by step. Complete the interactive tutorial that will make your learning easier and faster.", + "page.cheatsheet.description": "Sometimes you just need to remember RegEx. Try the cheatsheet that will make it easier for you to understand and remember better.", + + "alert.site.under.development": "This site is still under development. What you see now may change.", + "learn.safari.unsupportWarning": "Regular expressions in this step are not supported by the Safari browser. If you have trouble getting past this step. You can click here." +} \ No newline at end of file diff --git a/src/localization/ko/index.js b/src/localization/ko/index.js new file mode 100644 index 00000000..b44cd1c2 --- /dev/null +++ b/src/localization/ko/index.js @@ -0,0 +1,13 @@ +import general from "./general.json"; +import landing from "./landing.json"; +import cheatsheet from "./cheatsheet.json"; +import learn from "./learn.json"; + +const messages = { + ...general, + ...landing, + ...cheatsheet, + ...learn +} + +export default messages; \ No newline at end of file diff --git a/src/localization/ko/landing.json b/src/localization/ko/landing.json new file mode 100644 index 00000000..77548a2e --- /dev/null +++ b/src/localization/ko/landing.json @@ -0,0 +1,20 @@ +{ + "landing.title": "Learn RegEx step by step, from zero to advanced.", + "landing.description": "Learning RegEx is easier than you think. You can use this tool to easily `learn`, `practice`, `test` and `share` RegEx.", + + "section.learn.title": "Learn", + "section.learn.content": "`Regular Expressions`, abbreviated as RegEx or RegExp, are a string of characters created within the framework of RegEx syntax rules. You can easily manage your data with RegEx, which uses commands like finding, matching, and editing. Regex can be used in programming languages such as Python, SQL, Javascript, R, Google Analytics, Google Data Studio, and throughout the coding process. Learn regex online with examples and tutorials on RegexLearn now.", + + "section.cheatsheet.button": "Review Now", + "section.cheatsheet.title": "Cheatsheet", + "section.cheatsheet.content": "With `RegexLearn Cheatsheet`, you can see all of the usages you need at once and check them directly from the one page. Explore all RegEx patterns and symbols with the RegEx cheat sheet.", + + "section.playground.title": "Playground", + "section.playground.content": "If you want to generate a RegEx, you can easily build and test your RegEx pattern via the Playground. As a RegEx tester, you can validate and share your RegEx with others for collaborative work. Soon.", + + "section.practice.title": "Practice", + "section.practice.content": "If you complete the learning part, it's time to PRACTICE! In the practice section, you can test your RegEx knowledge and practice with RegEx tutorials based on your level. Soon.", + + "section.opensource.title": "Open Source", + "section.opensource.content": "Regex Learn is an open-source project that welcomes community contributions and is free to use. Working on this project allows you to hone your skills, study, and collaborate. You can contribute & support here." +} \ No newline at end of file diff --git a/src/localization/ko/learn.json b/src/localization/ko/learn.json new file mode 100644 index 00000000..cf4986ae --- /dev/null +++ b/src/localization/ko/learn.json @@ -0,0 +1,164 @@ +{ + "examples.starter.title": "Practice", + "examples.starter.description": "Now it's time to do some practice to consolidate what we've learned.", + + "examples.finish.title": "Practice completed!", + "examples.finish.description": " ", + + "steps.starter.title": "Intro", + "steps.starter.description": "RegEx is short for `Regular Expression`. It helps to match, find or manage text. Start by typing `OK` in the RegEx field to proceed to the first step and access the more detailed description..", + + "steps.whatIsRegex.title": "What is Regular Expressions `RegEx`?", + "steps.whatIsRegex.description": "Regular Expressions are a string of characters that express a search pattern. Often abbreviated as `RegEx` or `RegExp`. It is especially used to find or replace words in texts. In addition, we can test whether a text complies with the rules we set.\\n\\n For example, let's say you have a list of filenames. And you only want to find files with the `pdf` extension. Following typing an expression `^\\w+\\.pdf$` will work. The meaning of the definitions in this expression will become clearer as the steps progress.", + + "steps.basicMatchers.title": "Basic Matchers", + "steps.basicMatchers.description": "The character or word we want to find is written directly. It is similar to a normal search process. For example, to find the word `curious` in the text, type the same.", + + "steps.dotCharacter.title": "Dot `.`: Any Character", + "steps.dotCharacter.description": "The period `.` allows selecting any character, including special characters and spaces.", + + "steps.characterSet.title": "Character Sets `[abc]`", + "steps.characterSet.description": "If one of the characters in a word can be various characters, we write it in square brackets `[]` with all alternative characters. For example, to write an expression that can find all the words in the text, type the characters `a`, `e`, `i`, `o`, `u` adjacently within square brackets `[]`.", + + "steps.negatedCharacterSet.title": "Negated Character Sets `[^abc]`", + "steps.negatedCharacterSet.description": "To find all words in the text below, except for `ber` and `bor`, type `e` and `o` side by side after the caret `^` character inside square brackets `[]`.", + + "steps.range.title": "Letter Range`[a-z]`", + "steps.range.description": "To find the letters in the specified range, the starting letter and the ending letter are written in square brackets `[]` with a dash between them `-`. It is case-sensitive. Type the expression that will select all lowercase letters between `e` and `o`, including themselves.", + + "steps.rangeNumber.title": "Number Range`[0-9]`", + "steps.rangeNumber.description": "To find the numbers in the specified range, the starting number and the ending number are written in square brackets `[]` with a dash `-` between them. Write an expression that will select all numbers between `3` and `6`, including themselves.", + + "examples.basicMatchers.title": "Practice: Basic Matcher", + "examples.basicMatchers.description": "Write the expression that will select the words `of` in the text.", + + "examples.dotCharacter.title": "Practice: Any Character", + "examples.dotCharacter.description": "Type the expression to select individual letters, numbers, spaces, and special characters in the text. The expression you type must match any character.", + + "examples.characterSet.title": "Practice: Character Sets", + "examples.characterSet.description": "Write the phrase that matches each word in the text. The only characters that change are the initials of the words.", + + "examples.negatedCharacterSet.title": "Practice: Negated Character Sets", + "examples.negatedCharacterSet.description": "Write down the expression that will match anything other than the words `beor` and `beur` in the text. Do this using the negated character set.", + + "examples.range.title": "Practice: Letter Range", + "examples.range.description": "Write the expression that will select the letters from `g` to `k` in the text.\\n`g` and `k` letters should also be included in this range.", + + "examples.rangeNumber.title": "Practice: Number Range", + "examples.rangeNumber.description": "Type an expression to select numbers from `2` to `7` in the text.\\n`2` and `7` should also be included in this range.", + + "steps.repetitions.title": "Repetitions", + "steps.repetitions.description": "Some special characters are used to specify how many times a character will be repeated in the text. These special characters are the plus `+`, the asterisk `*`, and the question mark `?`.", + + "steps.asterisk.title": "Asterisk `*`", + "steps.asterisk.description": "We put an asterisk `*` at the end to indicate that a character does not match at all or can match many times. For example, indicate that the letter `e` should never occur in the text, or it can occur once or more side by side.", + + "steps.plusCharacter.title": "Plus Sign `+`", + "steps.plusCharacter.description": "To indicate that a character can occur one or more times, we put a plus sign `+` at the end. For example, indicate that the letter `e` can occur one or more times in the text.", + + "steps.questionMark.title": "Question Mark `?`", + "steps.questionMark.description": "To indicate that a character is optional, we put a `?` question mark at the end. For example, indicate that the following letter `u` is optional.", + + "steps.quantifier.title": "Curly Braces - 1", + "steps.quantifier.description": "To express a certain number of occurrences of a character, we write curly braces `{n}` along with how many times we want it to occur at the end. For example, indicate that the following letter `e` can occur only `2` times.", + + "steps.quantifierMin.title": "Curly Braces - 2", + "steps.quantifierMin.description": "To express at least a certain number of occurrences of a character, we write the end of the character at least how many times we want it to occur, with a comma `,` at the end, and inside curly braces `{n, }`. For example, indicate that the following letter `e` can occur at least `3` times.", + + "steps.quantifierRange.title": "Curly Braces - 3", + "steps.quantifierRange.description": "To express the occurrence of a character in a certain number range, we write curly braces `{x,y}` with the interval we want to go to the end. For example, indicate that the following letter `e` can only occur between `1` and `3`.", + + "examples.asterisk.title": "Practice: Asterisk `*`", + "examples.asterisk.description": "Use the asterisk `*` to write the expression that will select each word, suitable for the absence of the letter `e` in the text and the presence of more than one.", + + "examples.plusCharacter.title": "Practice: Plus Sign `+`", + "examples.plusCharacter.description": "Write the expression using the plus sign `+` to select words in which the letter `e` occurs one or more times in the text.", + + "examples.questionMark.title": "Practice: Question Mark `?`", + "examples.questionMark.description": "Write the expression indicating that the letter `n` is optional in the text, using the question mark `?`. Thus, both the words `a` and `an` can be selected.", + + "examples.quantifier.title": "Practice: Curly Braces - 1", + "examples.quantifier.description": "Write the expression using curly braces `{}` to select `4` digit numbers from `0` to `9` in the text.", + + "examples.quantifierMin.title": "Practice: Curly Braces - 2", + "examples.quantifierMin.description": "Type the expression using curly braces `{}` to select numbers between `0` and `9` that occur at least `2` times in the text.", + + "examples.quantifierRange.title": "Practice: Curly Braces - 3", + "examples.quantifierRange.description": "Write the expression using curly braces `{}` to select the numbers from `0` to `9` in the text that is at least between `1` and `4`.", + + "steps.groupping.title": "Parentheses `( )`: Grouping", + "steps.groupping.description": "We can group an expression and use these groups to reference or enforce some rules. To group an expression, we enclose `()` in parentheses. For now just group `haa` below.", + + "steps.groupReference.title": "Referencing a Group", + "steps.groupReference.description": "The words `ha` and `haa` are grouped below. The first group is used by writing `\\1` to avoid rewriting. Here `1` denotes the order of grouping. Type `\\2` at the end of the expression to refer to the second group.", + + "steps.nonCapturingGroupping.title": "Parentheses `(?: )`: Non-capturing Grouping", + "steps.nonCapturingGroupping.description": "You can group an expression and ensure that it is not caught by references. For example, below are two groups. However, the first group reference we denote with `\\1` actually points to the second group, as the first is an uncaught group.", + + "steps.pipeCharacter.title": "Pipe Character `|`", + "steps.pipeCharacter.description": "It allows to specify that an expression can be in different expressions. Thus, all possible statements are written separated by the pipe sign `|`. This differs from charset `[abc]`, charsets operate at the character level. Alternatives are at the expression level. For example, the following expression would select both `cat` and `Cat`. Add another pipe sign `|` to the end of the expression and type `rat` so that all words are selected.", + + "steps.escapeCharacter.title": "Escape Character `\\`", + "steps.escapeCharacter.description": "There are special characters that we use when writing regex. `{ } [ ] / \\ + * . $^ | ?` Before we can select these characters themselves, we need to use an escape character `\\`. For example, to select the dot `.` and asterisk `*` characters in the text, let's add an escape character `\\` before it.", + + "steps.caret.title": "Caret Sign `^`:\\nSelecting by Line Start", + "steps.caret.description": "We were using `[0-9]` to find numbers. To find only numbers at the beginning of a line, prefix this expression with the `^` sign.", + + "steps.dollar.title": "Dollar Sign `$`:\\nSelecting by End of Line", + "steps.dollar.description": "Let's use the `$` sign after the `html` value to find the `html` texts only at the end of the line.", + + "steps.wordCharacter.title": "Word Character `\\w`: Letter, Number and Underscore", + "steps.wordCharacter.description": "The expression `\\w` is used to find letters, numbers and underscore characters. Let's use the expression `\\w` to find word characters in the text.", + + "steps.withoutWordCharacter.title": "Except Word Character `\\W`", + "steps.withoutWordCharacter.description": "The expression `\\W` is used to find characters other than letters, numbers, and underscores.", + + "steps.numberCharacter.title": "Number Character `\\d`", + "steps.numberCharacter.description": "`\\d` is used to find only number characters.", + + "steps.withoutNumberCharacter.title": "Except Number Character `\\D`", + "steps.withoutNumberCharacter.description": "`\\D` is used to find non-numeric characters.", + + "steps.spaceCharacter.title": "Space Character `\\s`", + "steps.spaceCharacter.description": "`\\s` is used to find only space characters.", + + "steps.withoutSpaceCharacter.title": "Except Space Character `\\S`", + "steps.withoutSpaceCharacter.description": "`\\S` is used to find non-space characters.", + + "steps.lookarounds.title": "Lookarounds", + "steps.lookarounds.description": "If we want the phrase we're writing to come before or after another phrase, we need to \"lookaround\". Take the next step to learn how to \"lookaround\".", + + "steps.positiveLookahead.title": "Positive Lookahead: `(?=)`", + "steps.positiveLookahead.description": "For example, we want to select the hour value in the text. Therefore, to select only the numerical values that have `PM` after them, we need to write the positive look-ahead expression `(?=)` after our expression. Include `PM` after the `=` sign inside the parentheses.", + + "steps.negativeLookahead.title": "Negative Lookahead: `(?!)`", + "steps.negativeLookahead.description": "For example, we want to select numbers other than the hour value in the text. Therefore, we need to write the negative look-ahead `(?!)` expression after our expression to select only the numerical values that do not have `PM` after them. Include `PM` after the `!` sign inside the parentheses.", + + "steps.positiveLookbehind.title": "Positive Lookbehind: `(?<=)`", + "steps.positiveLookbehind.description": "For example, we want to select the price value in the text. Therefore, to select only the number values that preceded by `$`, we need to write the positive lookbehind expression `(?<=)` before our expression. Add `\\$` after the `=` sign inside the brackets.", + + "steps.negativeLookbehind.title": "Negative Lookbehind: `(?<!)`", + "steps.negativeLookbehind.description": "For example, we want to select numbers in the text other than the price value. Therefore, to select only numeric values that do not preceded by `$`, we need to write the negative lookbehind `(?<!)` before our expression. Add `\\$` after the `!` inside the brackets.", + + "steps.flags.title": "Flags", + "steps.flags.description": "Flags change the output of the expression. That's why flags are also called `modifiers`. Determines whether the typed expression treats text as separate lines, is case sensitive, or finds all matches. Continue to the next step to learn the flags.", + + "steps.flagsGlobal.title": "Global Flag", + "steps.flagsGlobal.description": "The `global` flag causes the expression to select all matches. If not used it will only select the first match. Now enable the `global` flag to be able to select all matches.", + + "steps.flagsMultiline.title": "Multiline Flag", + "steps.flagsMultiline.description": "RegEx sees all text as one line. But we use the `multiline` flag to handle each line separately. In this way, the expressions we write according to the end of the linework separately for each line. Now enable the `multiline` flag to find all matches.", + + "steps.flagsCaseInsensitive.title": "Case-insensitive Flag", + "steps.flagsCaseInsensitive.description": "In order to remove the case-sensitiveness of the expression we have written, we must activate the `case-insensitive` flag.", + + "steps.greedyMatching.title": "Greedy Matching", + "steps.greedyMatching.description": "RegEx does a greedy match by default. This means that the matchmaking will be as long as possible. Check out the example below. It refers to any match that ends in `r` and can be any character preceded by it. But it does not stop at the first letter `r`.", + + "steps.lazyMatching.title": "Lazy Matching", + "steps.lazyMatching.description": "Lazy matchmaking, unlike greedy matching, stops at the first matching. For example, in the example below, add a `?` after `*` to find the first match that ends with the letter `r` and is preceded by any character. It means that this match will stop at the first letter `r`.", + + "steps.completeAllSteps.title": "Congratulations you have completed all the steps.", + "steps.completeAllSteps.description": "You can return to the previous steps whenever you want, and you can easily navigate through all the steps you have passed." +} + From 6623e947129c8e45ab5daa0c4eba1984e3d0ed25 Mon Sep 17 00:00:00 2001 From: KeonWoo Ro <84064207+ro-ko@users.noreply.github.com> Date: Tue, 7 Dec 2021 21:49:05 +0900 Subject: [PATCH 03/14] general.json change into Korean --- src/localization/ko/general.json | 48 ++++++++++++++++---------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/localization/ko/general.json b/src/localization/ko/general.json index 7747b37e..b007c91a 100644 --- a/src/localization/ko/general.json +++ b/src/localization/ko/general.json @@ -1,32 +1,32 @@ { - "general.prev": "Previous", - "general.next": "Next", - "general.result": "Result", + "general.prev": "이전", + "general.next": "다음", + "general.result": "결과", "general.regex": "Regex", - "general.text": "Text", - "general.completedStep": "Step Completed!", - "general.hintQuestion": "Show Answer", - "general.reportStep": "Report a Problem", - "general.startLearning": "Start Learning", - "general.comingSoon": "Coming Soon", - "general.becomeSponsor": "Become a Sponsor", - "general.learn": "Learn", + "general.text": "문자", + "general.completedStep": "단계 성공!", + "general.hintQuestion": "답안 보기", + "general.reportStep": "오류 제기", + "general.startLearning": "학습 시작", + "general.comingSoon": "곧", + "general.becomeSponsor": "후원자가 되어주세요", + "general.learn": "학습", "general.playground": "Playground", "general.cheatsheet": "Cheatsheet", - "general.ourSponsors": "Our Sponsors", + "general.ourSponsors": "후원자들", - "notFound.intro": "The page you are looking for does not exist.", - "notFound.button": "Back to home", + "notFound.intro": "찾고자 하는 페이지가 없습니다.", + "notFound.button": "홈으로 돌아가기", - "page.landing.title": "Regex Learn - Step by step, from zero to advanced.", - "page.learn.title": "Regex Learn - RegEx Interactive Course", - "page.cheatsheet.title": "Regex Learn - RegEx Cheatsheet", - "page.404.title": "Regex Learn - Not Found", + "page.landing.title": "Regex 배우기 - 처음부터 차근차근.", + "page.learn.title": "Regex 배우기 - RegEx 중간 과정", + "page.cheatsheet.title": "Regex 배우기 - RegEx Cheatsheet", + "page.404.title": "Regex 배우기 - 찾을 수 없음", - "page.landing.description": "Learn RegEx interactively, practice at your level, test and share your own RegEx.", - "page.learn.description": "Learn RegEx step by step. Complete the interactive tutorial that will make your learning easier and faster.", - "page.cheatsheet.description": "Sometimes you just need to remember RegEx. Try the cheatsheet that will make it easier for you to understand and remember better.", + "page.landing.description": "RegEx를 상호작용하며 배우고 당신의 level에 맞추어 실험, 연습하고 당신만의 RegEX를 공유하세요.", + "page.learn.description": "RegEX를 차근차근 배우세요. 튜토리얼을 마치면 좀 더 이해하기 쉽고 용이할 것입니다.", + "page.cheatsheet.description": "가끔 RegEx를 기억할 필요가 있습니다. cheatsheet를 시도해보세요. 당신을 이해하기 쉽고 오래 기억하게 해줄 것입니다.", - "alert.site.under.development": "This site is still under development. What you see now may change.", - "learn.safari.unsupportWarning": "Regular expressions in this step are not supported by the Safari browser. If you have trouble getting past this step. You can click here." -} \ No newline at end of file + "alert.site.under.development": "이 사이트는 아직 개발중입니다. 변화하는 것을 함께 지켜봐주세요.", + "learn.safari.unsupportWarning": "Regular expressionsare 단계는 Safari 브라우저 지원을 받지 않습니다. 이 단계 이전에 문제가 있다면 여기를 클릭해주세요." +} From 6bd7678373f02f7fb8bb8e706d34fefdcb4f2627 Mon Sep 17 00:00:00 2001 From: KeonWoo Ro <84064207+ro-ko@users.noreply.github.com> Date: Tue, 7 Dec 2021 22:04:27 +0900 Subject: [PATCH 04/14] landing.json into Korean --- src/localization/ko/landing.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/localization/ko/landing.json b/src/localization/ko/landing.json index 77548a2e..9a7a48e8 100644 --- a/src/localization/ko/landing.json +++ b/src/localization/ko/landing.json @@ -1,20 +1,20 @@ { - "landing.title": "Learn RegEx step by step, from zero to advanced.", - "landing.description": "Learning RegEx is easier than you think. You can use this tool to easily `learn`, `practice`, `test` and `share` RegEx.", + "landing.title": "RegEx를 처음부터 차근차근 배우세요.", + "landing.description": "RegEx 을 배우는 것은 생각보다 쉽습니다. 당신은 RegEx 를 쉽게 `배우고`, `연습하고`, `실험해보고` 그리고 `나눌 수` 있습니다.", - "section.learn.title": "Learn", - "section.learn.content": "`Regular Expressions`, abbreviated as RegEx or RegExp, are a string of characters created within the framework of RegEx syntax rules. You can easily manage your data with RegEx, which uses commands like finding, matching, and editing. Regex can be used in programming languages such as Python, SQL, Javascript, R, Google Analytics, Google Data Studio, and throughout the coding process. Learn regex online with examples and tutorials on RegexLearn now.", + "section.learn.title": "학습하기", + "section.learn.content": "`Regular Expressions`, 축약해서 RegEx 혹은 RegExp 로 불리며, RegEx 구문 규칙 프레임워크안에서 생성된 문자열입니다. RegEx와 함께 검색,매칭,편집 명령어를 이용하여 데이터를 쉽게 관리하고 처리할수 있습니다. Regex는 Python, SQL, Javascript, R, Google Analytics, Google Data Studio와 같은 모든 코딩 프로세스 프로그래밍 언어안에서 사용될 수 있습니다. 지금 당장 RegexLearn에서 예제와 튜토리얼을 통해 regex를 배우세요.", - "section.cheatsheet.button": "Review Now", + "section.cheatsheet.button": "지금 리뷰하기", "section.cheatsheet.title": "Cheatsheet", - "section.cheatsheet.content": "With `RegexLearn Cheatsheet`, you can see all of the usages you need at once and check them directly from the one page. Explore all RegEx patterns and symbols with the RegEx cheat sheet.", + "section.cheatsheet.content": "하나의 페이지안에서 `RegexLearn Cheatsheet`로 모든 사용법을 알 수 있습니다. RegEx cheat sheet과 함께 모든 RegEx 패턴과 기호를 찾아보세요.", "section.playground.title": "Playground", - "section.playground.content": "If you want to generate a RegEx, you can easily build and test your RegEx pattern via the Playground. As a RegEx tester, you can validate and share your RegEx with others for collaborative work. Soon.", + "section.playground.content": "RegEx를 만들고 싶다면, Playground를 통해 당신의 RegEx 패턴을 쉽게 만들고 실험해 볼 수 있습니다. RegEx tester로서, 곧 다른사람들과 당신의 RegEx를 공유하며 협업 할 수 있을 것입니다.", - "section.practice.title": "Practice", + "section.practice.title": "실습", "section.practice.content": "If you complete the learning part, it's time to PRACTICE! In the practice section, you can test your RegEx knowledge and practice with RegEx tutorials based on your level. Soon.", - "section.opensource.title": "Open Source", - "section.opensource.content": "Regex Learn is an open-source project that welcomes community contributions and is free to use. Working on this project allows you to hone your skills, study, and collaborate. You can contribute & support here." -} \ No newline at end of file + "section.opensource.title": "오픈 소스", + "section.opensource.content": "Regex 배우기는 자유롭게 이용 가능하고 모든 커뮤니티의 contributions을 환영하는 오픈소스 프로젝트입니다. 이 프로젝트를 통해 능력을 연마하고 공부하고 협업할 수 있습니다. 여기서 contribute & support 할 수 있습니다." +} From 3849bd1d40e31a7c9ead9e2448217953d3a7dd09 Mon Sep 17 00:00:00 2001 From: KeonWoo Ro <84064207+ro-ko@users.noreply.github.com> Date: Tue, 7 Dec 2021 22:23:26 +0900 Subject: [PATCH 05/14] Update learn.json --- src/localization/ko/learn.json | 66 +++++++++++++++++----------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/localization/ko/learn.json b/src/localization/ko/learn.json index cf4986ae..0ba887b8 100644 --- a/src/localization/ko/learn.json +++ b/src/localization/ko/learn.json @@ -1,35 +1,35 @@ { - "examples.starter.title": "Practice", - "examples.starter.description": "Now it's time to do some practice to consolidate what we've learned.", + "examples.starter.title": "실습", + "examples.starter.description": "이제 배운 내용을 시도하는 연습을 해볼 차례입니다", - "examples.finish.title": "Practice completed!", + "examples.finish.title": "실습 완료!", "examples.finish.description": " ", - "steps.starter.title": "Intro", - "steps.starter.description": "RegEx is short for `Regular Expression`. It helps to match, find or manage text. Start by typing `OK` in the RegEx field to proceed to the first step and access the more detailed description..", + "steps.starter.title": "개요", + "steps.starter.description": "RegEx는 `Regular Expression`의 줄임말입니다. 이것은 내용을 찾거나 관리하는 데 도움이 됩니다. RegEx 필드에 'OK'를 입력하여 첫 번째 단계를 진행하고 자세한 설명에 접근합니다...", - "steps.whatIsRegex.title": "What is Regular Expressions `RegEx`?", - "steps.whatIsRegex.description": "Regular Expressions are a string of characters that express a search pattern. Often abbreviated as `RegEx` or `RegExp`. It is especially used to find or replace words in texts. In addition, we can test whether a text complies with the rules we set.\\n\\n For example, let's say you have a list of filenames. And you only want to find files with the `pdf` extension. Following typing an expression `^\\w+\\.pdf$` will work. The meaning of the definitions in this expression will become clearer as the steps progress.", + "steps.whatIsRegex.title": "Regular Expressions, `RegEx`는 무슨 뜻일까?", + "steps.whatIsRegex.description": "Regular Expressions 검색패턴을 표현하는 문자열입니다. 자주 `RegEx` 혹은 `RegExp`로 불립니다. 이것은 내용의 단어를 찾거나 대체하는데 용이합니다. 추가적으로, 내용이 우리가 설정한 규칙에 부합하는지 확인할 수 있습니다.\\n\\n 예를 들어, 파일이름들이 있다고 가정해봅시다. 이때 'pdf'형식의 파일만 찾고싶을때, 이 `^\\w+\\.pdf$` 표현을 입력하면 찾을 수 있을 것 입니다. 진행 단계가 거듭될수록 표현의 정의의 의미는 더 정확해질 것입니다.", - "steps.basicMatchers.title": "Basic Matchers", - "steps.basicMatchers.description": "The character or word we want to find is written directly. It is similar to a normal search process. For example, to find the word `curious` in the text, type the same.", + "steps.basicMatchers.title": "기본 매칭", + "steps.basicMatchers.description": "우리가 찾고자 하는 단어 내용을 직접 작성합니다. 이는 기본 검색 과정과 동일합니다. 예를 들어, 문단에 'curious'이라는 단어를 찾기 위해서 똑같이 작성하면 됩니다.", - "steps.dotCharacter.title": "Dot `.`: Any Character", - "steps.dotCharacter.description": "The period `.` allows selecting any character, including special characters and spaces.", + "steps.dotCharacter.title": "점 `.`: 아무 문자", + "steps.dotCharacter.description": "이 `.`기호는 특수문자나 여백을 포함한 아무 문자를 구분합니다.", - "steps.characterSet.title": "Character Sets `[abc]`", - "steps.characterSet.description": "If one of the characters in a word can be various characters, we write it in square brackets `[]` with all alternative characters. For example, to write an expression that can find all the words in the text, type the characters `a`, `e`, `i`, `o`, `u` adjacently within square brackets `[]`.", + "steps.characterSet.title": "문자열 `[abc]`", + "steps.characterSet.description": "한단어가 여러 문자열인 경우, 우리는 이를 모두 대괄호`[]`안에 작성합니다. 예를 들어, 문단 안에 있는 모든 단어를 작성하기 위해서, 대괄호 `[]` 안에 `a`, `e`, `i`, `o`, `u` 문자들을 작성합니다..", - "steps.negatedCharacterSet.title": "Negated Character Sets `[^abc]`", - "steps.negatedCharacterSet.description": "To find all words in the text below, except for `ber` and `bor`, type `e` and `o` side by side after the caret `^` character inside square brackets `[]`.", + "steps.negatedCharacterSet.title": "문자열`[^abc]` 검색하기", + "steps.negatedCharacterSet.description": "아래 문단에서 'ber'와 'bo'를 제외한 모든 단어를 찾으려면 대괄호 '[]' 안에 캐럿 '^' 문자 뒤에 'e'와 'o'를 나란히 입력하세요.", - "steps.range.title": "Letter Range`[a-z]`", - "steps.range.description": "To find the letters in the specified range, the starting letter and the ending letter are written in square brackets `[]` with a dash between them `-`. It is case-sensitive. Type the expression that will select all lowercase letters between `e` and `o`, including themselves.", + "steps.range.title": "문자 범위`[a-z]`", + "steps.range.description": "지정된 범위의 글자를 찾으려면 시작 글자와 끝 글자를 대괄호 '[]' 사이에 대시 '-'로 작성하세요. 이는 대소문자를 구분합니다. 'e'와 'o' 사이의 모든 소문자를 선택하는 식을 입력합니다.", - "steps.rangeNumber.title": "Number Range`[0-9]`", - "steps.rangeNumber.description": "To find the numbers in the specified range, the starting number and the ending number are written in square brackets `[]` with a dash `-` between them. Write an expression that will select all numbers between `3` and `6`, including themselves.", + "steps.rangeNumber.title": "숫자 범위`[0-9]`", + "steps.rangeNumber.description": "특정 범위내의 숫자를 찾기 위해서, 시작하는 숫자와 끝 숫자가 두 숫자 사이에`-`와 함께 `[]`안에 입력됩니다. 3,6을 포함한 그 사이의 숫자를 찾는 표현을 작성해보세요." - "examples.basicMatchers.title": "Practice: Basic Matcher", + "examples.basicMatchers.title": "실습: Basic Matcher", "examples.basicMatchers.description": "Write the expression that will select the words `of` in the text.", "examples.dotCharacter.title": "Practice: Any Character", @@ -141,24 +141,24 @@ "steps.negativeLookbehind.description": "For example, we want to select numbers in the text other than the price value. Therefore, to select only numeric values that do not preceded by `$`, we need to write the negative lookbehind `(?<!)` before our expression. Add `\\$` after the `!` inside the brackets.", "steps.flags.title": "Flags", - "steps.flags.description": "Flags change the output of the expression. That's why flags are also called `modifiers`. Determines whether the typed expression treats text as separate lines, is case sensitive, or finds all matches. Continue to the next step to learn the flags.", + "steps.flags.description": "Flags는 표현의 결과는 바꿉니다. 이는 `modifiers`로도 불리는 이유입니다. 입력된 식이 문단을 별도의 줄로 처리할지, 대소문자를 구분할지, 모든 일치 항목을 찾을지를 결정하세요. flags을 배우기 위한 다음 단계로 진행하세요.", - "steps.flagsGlobal.title": "Global Flag", - "steps.flagsGlobal.description": "The `global` flag causes the expression to select all matches. If not used it will only select the first match. Now enable the `global` flag to be able to select all matches.", + "steps.flagsGlobal.title": "global flag" + "steps.flagsGlobal.description": "`global` flag causes the expression to select all matches. If not used it will only select the first match. Now enable the `global` flag to be able to select all matches.", - "steps.flagsMultiline.title": "Multiline Flag", - "steps.flagsMultiline.description": "RegEx sees all text as one line. But we use the `multiline` flag to handle each line separately. In this way, the expressions we write according to the end of the linework separately for each line. Now enable the `multiline` flag to find all matches.", + "steps.flagsMultiline.title": "다중문자열 Flag", + "steps.flagsMultiline.description": "RegEx는 모든것을 한 문장으로 봅니다. 하지만 우리는 각 문장을 보기위해 multiline` flag를 사용합니다. 이런 식으로 표현들은 각 줄마다 따로 적용됩니다. 이제 `multiline` flag 모든 매칭을 찾기위해 사용할수 있게 되었습니다.", - "steps.flagsCaseInsensitive.title": "Case-insensitive Flag", - "steps.flagsCaseInsensitive.description": "In order to remove the case-sensitiveness of the expression we have written, we must activate the `case-insensitive` flag.", + "steps.flagsCaseInsensitive.title": "대소문자 비구분 Flag", + "steps.flagsCaseInsensitive.description": "우리가 쓴 표현의 대/소문자를 구분하지 않으려면 대/소문자를 구분하지 않는 flag를 활성화해야 합니다.", - "steps.greedyMatching.title": "Greedy Matching", - "steps.greedyMatching.description": "RegEx does a greedy match by default. This means that the matchmaking will be as long as possible. Check out the example below. It refers to any match that ends in `r` and can be any character preceded by it. But it does not stop at the first letter `r`.", + "steps.greedyMatching.title": "greedy 매칭", + "steps.greedyMatching.description": "RegEx 는 기본적으로 greedy 매칭이 아닙니다. 이는 매칭을 가능한만큼 한다는 것을 의미합니다. 아래 예시를 보면, 이것은 `r`로 끝나는 모든 문자와 매칭하므로 그 앞에 있는 모든 단어들이 가능하다는 뜻입니다. 그러나 이는 첫 글자 'r'로 끝나지 않습니다.", - "steps.lazyMatching.title": "Lazy Matching", - "steps.lazyMatching.description": "Lazy matchmaking, unlike greedy matching, stops at the first matching. For example, in the example below, add a `?` after `*` to find the first match that ends with the letter `r` and is preceded by any character. It means that this match will stop at the first letter `r`.", + "steps.lazyMatching.title": "Lazy 매칭", + "steps.lazyMatching.description": "Lazy 매칭은 greedy과 다르게 처음 매칭에서 종료합니다. 예를 들어, 아래 예시에서 문자 'r'로 끝나고 문자 뒤에 오는 첫 번째 일치를 찾으려면 '*' 뒤에 '?'를 추가하여야 합니다. 이는 매치가 `r`앞에서 멈춘다는 것을 의미합니다.", - "steps.completeAllSteps.title": "Congratulations you have completed all the steps.", - "steps.completeAllSteps.description": "You can return to the previous steps whenever you want, and you can easily navigate through all the steps you have passed." + "steps.completeAllSteps.title": "축하합니다. 모든 단계를 완료하셨습니다.", + "steps.completeAllSteps.description": "원할 때마다 이전 단계로 돌아갈 수 있으며, 통과한 모든 단계를 쉽게 탐색할 수 있습니다." } From 335878bdd06e479b1665498b0965bb57ca9f5e4a Mon Sep 17 00:00:00 2001 From: KeonWoo Ro <84064207+ro-ko@users.noreply.github.com> Date: Tue, 7 Dec 2021 23:04:39 +0900 Subject: [PATCH 06/14] Update learn.json --- src/localization/ko/learn.json | 130 ++++++++++++++++----------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/src/localization/ko/learn.json b/src/localization/ko/learn.json index 0ba887b8..65b92d0b 100644 --- a/src/localization/ko/learn.json +++ b/src/localization/ko/learn.json @@ -20,7 +20,7 @@ "steps.characterSet.title": "문자열 `[abc]`", "steps.characterSet.description": "한단어가 여러 문자열인 경우, 우리는 이를 모두 대괄호`[]`안에 작성합니다. 예를 들어, 문단 안에 있는 모든 단어를 작성하기 위해서, 대괄호 `[]` 안에 `a`, `e`, `i`, `o`, `u` 문자들을 작성합니다..", - "steps.negatedCharacterSet.title": "문자열`[^abc]` 검색하기", + "steps.negatedCharacterSet.title": "부정 문자 집합`[^abc]`", "steps.negatedCharacterSet.description": "아래 문단에서 'ber'와 'bo'를 제외한 모든 단어를 찾으려면 대괄호 '[]' 안에 캐럿 '^' 문자 뒤에 'e'와 'o'를 나란히 입력하세요.", "steps.range.title": "문자 범위`[a-z]`", @@ -29,104 +29,104 @@ "steps.rangeNumber.title": "숫자 범위`[0-9]`", "steps.rangeNumber.description": "특정 범위내의 숫자를 찾기 위해서, 시작하는 숫자와 끝 숫자가 두 숫자 사이에`-`와 함께 `[]`안에 입력됩니다. 3,6을 포함한 그 사이의 숫자를 찾는 표현을 작성해보세요." - "examples.basicMatchers.title": "실습: Basic Matcher", - "examples.basicMatchers.description": "Write the expression that will select the words `of` in the text.", + "examples.basicMatchers.title": "실습: 기본 매칭", + "examples.basicMatchers.description": "문단안에 `of`와 함께 쓰이는 단어들을 선택할 표현을 작성하세요.", - "examples.dotCharacter.title": "Practice: Any Character", - "examples.dotCharacter.description": "Type the expression to select individual letters, numbers, spaces, and special characters in the text. The expression you type must match any character.", + "examples.dotCharacter.title": "실습: 아무 문자", + "examples.dotCharacter.description": "문단에서 개별 문자, 숫자, 공백 및 특수 문자를 선택하기 위한 표현식을 입력합니다. 당신이 작성한 표현법은 어떤 문자든지 매칭되어야 합니다.", - "examples.characterSet.title": "Practice: Character Sets", - "examples.characterSet.description": "Write the phrase that matches each word in the text. The only characters that change are the initials of the words.", + "examples.characterSet.title": "실습: ", + "examples.characterSet.description": "문단에 각 단어와 일치하는 문구를 쓰세요. 변경되는 문자는 오직 단어의 이니셜뿐입니다.", - "examples.negatedCharacterSet.title": "Practice: Negated Character Sets", - "examples.negatedCharacterSet.description": "Write down the expression that will match anything other than the words `beor` and `beur` in the text. Do this using the negated character set.", + "examples.negatedCharacterSet.title": "실습: 부정 문자 집합", + "examples.negatedCharacterSet.description": "beor와 beur 이외의 다른 표현과 일치하는 표현을 본문에 적어주세요. 부정 문자 집합을 이용하여 표현해주세요.", - "examples.range.title": "Practice: Letter Range", - "examples.range.description": "Write the expression that will select the letters from `g` to `k` in the text.\\n`g` and `k` letters should also be included in this range.", + "examples.range.title": "실습: 문자 범위", + "examples.range.description": "글에서 'g'에서 'k'까지 선택할 수 있는 표현을 쓰세요.\\n`g` 및 'k' 문자도 이 범위에 포함되어야 합니다.", - "examples.rangeNumber.title": "Practice: Number Range", - "examples.rangeNumber.description": "Type an expression to select numbers from `2` to `7` in the text.\\n`2` and `7` should also be included in this range.", + "examples.rangeNumber.title": "실습: 숫자 범위", + "examples.rangeNumber.description": "문단에서 '2'부터 '7'까지의 숫자를 선택하는 식을 입력합니다.\\n`2` 와 `7`또한 범위에 포함되어야 합니다.", - "steps.repetitions.title": "Repetitions", - "steps.repetitions.description": "Some special characters are used to specify how many times a character will be repeated in the text. These special characters are the plus `+`, the asterisk `*`, and the question mark `?`.", + "steps.repetitions.title": "반복", + "steps.repetitions.description": "일부 특수 문자는 텍스트에서 문자가 반복되는 횟수를 지정하는 데 사용됩니다. 이러한 특수 문자들은 `+`, `*`, `?` 입니다.", - "steps.asterisk.title": "Asterisk `*`", - "steps.asterisk.description": "We put an asterisk `*` at the end to indicate that a character does not match at all or can match many times. For example, indicate that the letter `e` should never occur in the text, or it can occur once or more side by side.", + "steps.asterisk.title": "별모양기호 `*`", + "steps.asterisk.description": "문자가 전혀 일치하지 않거나 여러 번 일치했음을 나타내기 위해 끝에 별기호 '*'를 붙입니다. 예를 들어, 문자 'e'가 본문에서 나타나면 안됨을 의미하거나, 한 번 이상 나란히 나타남을 의미합니다.", - "steps.plusCharacter.title": "Plus Sign `+`", - "steps.plusCharacter.description": "To indicate that a character can occur one or more times, we put a plus sign `+` at the end. For example, indicate that the letter `e` can occur one or more times in the text.", + "steps.plusCharacter.title": "덧셈기호 `+`", + "steps.plusCharacter.description": "문자가 한 번 이상 발생할 수 있음을 나타내기 위해 끝에 더하기 기호 '+'를 붙입니다. 예를 들어, 문자 'e'가 본문에서 한 번 이상 나타날 수 있음을 의미합니다.", - "steps.questionMark.title": "Question Mark `?`", - "steps.questionMark.description": "To indicate that a character is optional, we put a `?` question mark at the end. For example, indicate that the following letter `u` is optional.", + "steps.questionMark.title": "물음표기호 `?`", + "steps.questionMark.description": "문자가 선택 사항임을 나타내기 위해 끝에 물음표를 붙입니다. 예를 들어, 다음 문자 'u'가 선택 사항임을 나타냅니다.", - "steps.quantifier.title": "Curly Braces - 1", - "steps.quantifier.description": "To express a certain number of occurrences of a character, we write curly braces `{n}` along with how many times we want it to occur at the end. For example, indicate that the following letter `e` can occur only `2` times.", + "steps.quantifier.title": "중괄호 - 1", + "steps.quantifier.description": "우리는 문자의 발생 횟수를 표현하기 위해 마지막에 몇 번이 일어나길 원하는지 중괄호 '{n}'로 나타냅니다. 예를 들어, 다음 문자 'e'는 '2'번만 나타남을 의미합니다.", - "steps.quantifierMin.title": "Curly Braces - 2", - "steps.quantifierMin.description": "To express at least a certain number of occurrences of a character, we write the end of the character at least how many times we want it to occur, with a comma `,` at the end, and inside curly braces `{n, }`. For example, indicate that the following letter `e` can occur at least `3` times.", + "steps.quantifierMin.title": "중괄호 - 2", + "steps.quantifierMin.description": "최소한 문자의 발생 횟수를 표현하기 위해, 우리는 끝에는 쉼표 ''와, 안쪽에는 중괄호 '{n, }'를 붙여서 문자가 최소한 몇번 나타나는지 표현합니다. 예를 들어, 다음 문자 'e'는 '3'번이상 나타남을 의미합니다", - "steps.quantifierRange.title": "Curly Braces - 3", - "steps.quantifierRange.description": "To express the occurrence of a character in a certain number range, we write curly braces `{x,y}` with the interval we want to go to the end. For example, indicate that the following letter `e` can only occur between `1` and `3`.", + "steps.quantifierRange.title": "중괄호 - 3", + "steps.quantifierRange.description": "특정 숫자 범위에서 문자의 발생을 표현하기 위해 범위내에 중괄호 '{x,y}'를 씁니다. 예를 들어, `e`는 `1` 과 `3`사이에서만 나타날 수 있습니다.", - "examples.asterisk.title": "Practice: Asterisk `*`", - "examples.asterisk.description": "Use the asterisk `*` to write the expression that will select each word, suitable for the absence of the letter `e` in the text and the presence of more than one.", + "examples.asterisk.title": "실습: 별기호 `*`", + "examples.asterisk.description": "별기호 '*'를 사용하여 문단에 문자 'e'가 없거나 두 개 이상의 단어가 있는 경우에 적합한 각 단어를 선택하는 식을 작성합니다.", - "examples.plusCharacter.title": "Practice: Plus Sign `+`", - "examples.plusCharacter.description": "Write the expression using the plus sign `+` to select words in which the letter `e` occurs one or more times in the text.", + "examples.plusCharacter.title": "실습: 덧셈기호 `+`", + "examples.plusCharacter.description": "더하기 기호 '+'를 사용하여 문단에서 문자 'e'가 한 번 이상 나타나는 단어를 선택합니다.", - "examples.questionMark.title": "Practice: Question Mark `?`", - "examples.questionMark.description": "Write the expression indicating that the letter `n` is optional in the text, using the question mark `?`. Thus, both the words `a` and `an` can be selected.", + "examples.questionMark.title": "실습: 물음표기호 `?`", + "examples.questionMark.description": "문자 'n'이 선택 사항임을 나타내는 식을 물음표 '?'를 통해 사용하세요. 그러면 a와 an을 모두 선택할 수 있습니다.", - "examples.quantifier.title": "Practice: Curly Braces - 1", - "examples.quantifier.description": "Write the expression using curly braces `{}` to select `4` digit numbers from `0` to `9` in the text.", + "examples.quantifier.title": "실습: 중괄호 - 1", + "examples.quantifier.description": "중괄호{}를 사용하여 문단에서 '0'부터 '9'까지의 4'자리 숫자를 선택하기 위해 식을 쓰세요.", - "examples.quantifierMin.title": "Practice: Curly Braces - 2", - "examples.quantifierMin.description": "Type the expression using curly braces `{}` to select numbers between `0` and `9` that occur at least `2` times in the text.", + "examples.quantifierMin.title": "실습: 중괄호 - 2", + "examples.quantifierMin.description": "중괄호 '{}'을(를) 사용하여 문단에서 '2'회 이상 발생하는 숫자 '0'과 '9' 사이의 숫자를 선택하세요.", - "examples.quantifierRange.title": "Practice: Curly Braces - 3", - "examples.quantifierRange.description": "Write the expression using curly braces `{}` to select the numbers from `0` to `9` in the text that is at least between `1` and `4`.", + "examples.quantifierRange.title": "실습: 즁괄호 - 3", + "examples.quantifierRange.description": "중괄호 '{}'를 사용하여 최소한 1에서 4 사이의 문단에서 '0'에서 '9' 사이의 숫자를 선택하세요.", - "steps.groupping.title": "Parentheses `( )`: Grouping", - "steps.groupping.description": "We can group an expression and use these groups to reference or enforce some rules. To group an expression, we enclose `()` in parentheses. For now just group `haa` below.", + "steps.groupping.title": "소괄호 `( )`: 그룹화", + "steps.groupping.description": "우리는 어떤 규칙을 참조하거나 적용시키기위헤 표현을 그룹화 할 수 있습니다. 표현을 그룹화하기 위해 `()` 소괄호를 사용합니다. 아래와 같이`haa` 를 그룹화 할 수 있습니다.", - "steps.groupReference.title": "Referencing a Group", - "steps.groupReference.description": "The words `ha` and `haa` are grouped below. The first group is used by writing `\\1` to avoid rewriting. Here `1` denotes the order of grouping. Type `\\2` at the end of the expression to refer to the second group.", + "steps.groupReference.title": "그룹 참조", + "steps.groupReference.description": "단어 `ha` 와 `haa`는 그룹화 되었습니다. 첫번째 그룹은 중복을 피하기 위해 `\\1`로 쓰입니다. 여기서 `1`는 그룹의 순서를 의미합니다. 표현 끝의 형식 `\\2`는 두번째 그룹을 의미합니다.", - "steps.nonCapturingGroupping.title": "Parentheses `(?: )`: Non-capturing Grouping", - "steps.nonCapturingGroupping.description": "You can group an expression and ensure that it is not caught by references. For example, below are two groups. However, the first group reference we denote with `\\1` actually points to the second group, as the first is an uncaught group.", + "steps.nonCapturingGroupping.title": "소괄호 `(?: )`: 확인되지 않는 그룹화", + "steps.nonCapturingGroupping.description": "표현식을 그룹화하여 참조에 의해 걸리지 않도록 할 수 있습니다. 예를 들어, 아래 그룹들을 보세요. 그러나 우리가 '\\1'로 나타내는 첫 번째 그룹 참조는 사실 두 번째 그룹을 가리키는데, 첫 번째 그룹은 학습되지 않은 그룹이기 때문입니." - "steps.pipeCharacter.title": "Pipe Character `|`", - "steps.pipeCharacter.description": "It allows to specify that an expression can be in different expressions. Thus, all possible statements are written separated by the pipe sign `|`. This differs from charset `[abc]`, charsets operate at the character level. Alternatives are at the expression level. For example, the following expression would select both `cat` and `Cat`. Add another pipe sign `|` to the end of the expression and type `rat` so that all words are selected.", + "steps.pipeCharacter.title": "파이프 문자 `|`", + "steps.pipeCharacter.description": "표현이 다른 표현 안에 있을 수 있도록 지정할 수 있습니다. 그러므로, 가능한 모든 진술은 파이프 기호 `|`로 구분되어 작성됩니다. 이것은 문자 집합 '[abc]'와 다르며 문자 집합은 문자 수준에서 작동합니다. 대안은 표현 수준에 있습니다. 예를 들어,다음 표현은 'cat'과 'cat'을 모두 선택합니다. 표현식의 끝에 파이프 기호 '|'를 하나 더 추가하고 'rat'를 입력하여 모든 단어가 선택되도록 합니다." - "steps.escapeCharacter.title": "Escape Character `\\`", + "steps.escapeCharacter.title": "탈출 문자 `\\`", "steps.escapeCharacter.description": "There are special characters that we use when writing regex. `{ } [ ] / \\ + * . $^ | ?` Before we can select these characters themselves, we need to use an escape character `\\`. For example, to select the dot `.` and asterisk `*` characters in the text, let's add an escape character `\\` before it.", - "steps.caret.title": "Caret Sign `^`:\\nSelecting by Line Start", - "steps.caret.description": "We were using `[0-9]` to find numbers. To find only numbers at the beginning of a line, prefix this expression with the `^` sign.", + "steps.caret.title": "캐럿 문자 `^`:\\n라인 시작 선택", + "steps.caret.description": "우리는 숫자를 찾기 위해 [0-9]를 사용하고 있었습니다. 의 시작 부분에 있는 숫자만 찾으려면 이 식에 '^' 기호를 붙입니다", - "steps.dollar.title": "Dollar Sign `$`:\\nSelecting by End of Line", - "steps.dollar.description": "Let's use the `$` sign after the `html` value to find the `html` texts only at the end of the line.", + "steps.dollar.title": "달러 문자 `$`:\\n라인 끝 선택", + "steps.dollar.description": "html 값 뒤에 '$' 기호를 사용하여 줄 끝에만 있는 html 문단를 찾아봅시다.", - "steps.wordCharacter.title": "Word Character `\\w`: Letter, Number and Underscore", - "steps.wordCharacter.description": "The expression `\\w` is used to find letters, numbers and underscore characters. Let's use the expression `\\w` to find word characters in the text.", + "steps.wordCharacter.title": "단어 문자`\\w`: 문자, 숫자 및 밑줄", + "steps.wordCharacter.description": "표현 `\\w` 는 문자, 숫자 및 밑줄을 찾기 위해 사용됩니다. 문단에 단어들을 찾기위해 `\\w`표현을 사용해 봅시다.", - "steps.withoutWordCharacter.title": "Except Word Character `\\W`", - "steps.withoutWordCharacter.description": "The expression `\\W` is used to find characters other than letters, numbers, and underscores.", + "steps.withoutWordCharacter.title": "단어 문자 제외 `\\W`", + "steps.withoutWordCharacter.description": "표현 `\\W`는 문자, 숫자 및 밑줄를 제외하고 찾기 위해 사용됩니다.", - "steps.numberCharacter.title": "Number Character `\\d`", - "steps.numberCharacter.description": "`\\d` is used to find only number characters.", + "steps.numberCharacter.title": "숫자 문자 `\\d`", + "steps.numberCharacter.description": "`\\d`는 숫자를 찾기 위해 사용됩니다.", - "steps.withoutNumberCharacter.title": "Except Number Character `\\D`", - "steps.withoutNumberCharacter.description": "`\\D` is used to find non-numeric characters.", + "steps.withoutNumberCharacter.title": "숫자 문자 제외 \\D`", + "steps.withoutNumberCharacter.description": "`\\D`는 숫자가 아닌 문자를 찾기 위해 사용됩니다.", - "steps.spaceCharacter.title": "Space Character `\\s`", - "steps.spaceCharacter.description": "`\\s` is used to find only space characters.", + "steps.spaceCharacter.title": "공백문자 `\\s`", + "steps.spaceCharacter.description": "`\\s`는 공백문자만을 찾기 위해 사용됩니다.", - "steps.withoutSpaceCharacter.title": "Except Space Character `\\S`", - "steps.withoutSpaceCharacter.description": "`\\S` is used to find non-space characters.", + "steps.withoutSpaceCharacter.title": "공백문자 제외 `\\S`", + "steps.withoutSpaceCharacter.description": "`\\S` 는 공백 문자를 제외하고 찾기 위해 사용됩니다.", "steps.lookarounds.title": "Lookarounds", - "steps.lookarounds.description": "If we want the phrase we're writing to come before or after another phrase, we need to \"lookaround\". Take the next step to learn how to \"lookaround\".", + "steps.lookarounds.description": "우리가 쓰고 있는 구절이 다른 구절 앞이나 뒤에 오기를 원한다면, 우리는 \"둘러볼 필요가 있다\". Take the next step to learn how to \"lookaround\".", "steps.positiveLookahead.title": "Positive Lookahead: `(?=)`", "steps.positiveLookahead.description": "For example, we want to select the hour value in the text. Therefore, to select only the numerical values that have `PM` after them, we need to write the positive look-ahead expression `(?=)` after our expression. Include `PM` after the `=` sign inside the parentheses.", From 66d914c46051d27939a076659fb59b3181bdf26f Mon Sep 17 00:00:00 2001 From: KeonWoo Ro <84064207+ro-ko@users.noreply.github.com> Date: Tue, 7 Dec 2021 23:10:08 +0900 Subject: [PATCH 07/14] learn.json into Korean --- src/localization/ko/learn.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/localization/ko/learn.json b/src/localization/ko/learn.json index 65b92d0b..49bea6e0 100644 --- a/src/localization/ko/learn.json +++ b/src/localization/ko/learn.json @@ -126,19 +126,19 @@ "steps.withoutSpaceCharacter.description": "`\\S` 는 공백 문자를 제외하고 찾기 위해 사용됩니다.", "steps.lookarounds.title": "Lookarounds", - "steps.lookarounds.description": "우리가 쓰고 있는 구절이 다른 구절 앞이나 뒤에 오기를 원한다면, 우리는 \"둘러볼 필요가 있다\". Take the next step to learn how to \"lookaround\".", + "steps.lookarounds.description": "우리가 쓰고 있는 구절이 다른 구절 앞이나 뒤에 오기를 원한다면, 우리는 \"lookaround\"가 필요합니다. \"lookaround\"를 사용하기 위한 다음단계로 진행하세요.", "steps.positiveLookahead.title": "Positive Lookahead: `(?=)`", - "steps.positiveLookahead.description": "For example, we want to select the hour value in the text. Therefore, to select only the numerical values that have `PM` after them, we need to write the positive look-ahead expression `(?=)` after our expression. Include `PM` after the `=` sign inside the parentheses.", + "steps.positiveLookahead.description": "예를 들어, 문단에서 시간 값을 선택하려고 합니다. 그러면 그 뒤에 'PM'이 있는 숫자 값만 선택하기 위해서는 우리의 표현 뒤에 긍정적인 예측 표현 '(?=)'를 써야 합니다. 괄호 안의 '=' 기호 뒤에 'PM'을 넣으세요", "steps.negativeLookahead.title": "Negative Lookahead: `(?!)`", - "steps.negativeLookahead.description": "For example, we want to select numbers other than the hour value in the text. Therefore, we need to write the negative look-ahead `(?!)` expression after our expression to select only the numerical values that do not have `PM` after them. Include `PM` after the `!` sign inside the parentheses.", + "steps.negativeLookahead.description": "예를 들어, 문단에서 시간 값 이외의 숫자를 선택하려고 합니다. 그러면 음의 예측식 '(?)'을 표현 뒤에 써서 뒤에 'PM'이 없는 숫자 값만 선택해야 합니다. 괄호 안쪽에 '!' 기호 뒤에 'PM'을 넣으십시오.", "steps.positiveLookbehind.title": "Positive Lookbehind: `(?<=)`", - "steps.positiveLookbehind.description": "For example, we want to select the price value in the text. Therefore, to select only the number values that preceded by `$`, we need to write the positive lookbehind expression `(?<=)` before our expression. Add `\\$` after the `=` sign inside the brackets.", + "steps.positiveLookbehind.description": "예를 들어, 우리는 문단에서 가격 값을 선택하기를 원합니다. 따라서 '$' 앞에 오는 숫자 값만 선택하기 위해서는 양의 뒷모습 표현 '(?)을 써야 한다.우리 표현 앞에 <=)>. 괄호 안의 '=' 기호 뒤에 '\$'를 추가합니다.", "steps.negativeLookbehind.title": "Negative Lookbehind: `(?<!)`", - "steps.negativeLookbehind.description": "For example, we want to select numbers in the text other than the price value. Therefore, to select only numeric values that do not preceded by `$`, we need to write the negative lookbehind `(?<!)` before our expression. Add `\\$` after the `!` inside the brackets.", + "steps.negativeLookbehind.description": "예를 들어, 우리는 문단에서 가격 값 이외의 숫자를 선택하기를 원합니다.Therefore, '$' 앞에 없는 숫자 값만 선택하려면 표현 앞에 `(?<!)` 뒤에 음의 모양을 써야 합니다. 괄호 안의 '!' 뒤에 '\$'를 추가합니다.", "steps.flags.title": "Flags", "steps.flags.description": "Flags는 표현의 결과는 바꿉니다. 이는 `modifiers`로도 불리는 이유입니다. 입력된 식이 문단을 별도의 줄로 처리할지, 대소문자를 구분할지, 모든 일치 항목을 찾을지를 결정하세요. flags을 배우기 위한 다음 단계로 진행하세요.", From 97ee4a1e1b12003876523442db9d1b7bac66dcee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aykut=20Karda=C5=9F?= Date: Sat, 6 Aug 2022 13:31:41 +0300 Subject: [PATCH 08/14] Fix translate (korean) --- src/localization/en/landing.json | 2 +- src/localization/index.ts | 1 + src/localization/ko/general.json | 14 ++++-- src/localization/ko/landing.json | 10 +++- src/localization/ko/learn.json | 13 +++--- src/localization/ko/lessons/regexForSeo.json | 49 ++++++++++++++++++++ 6 files changed, 74 insertions(+), 15 deletions(-) create mode 100644 src/localization/ko/lessons/regexForSeo.json diff --git a/src/localization/en/landing.json b/src/localization/en/landing.json index 13cb0e27..a6d6aa36 100644 --- a/src/localization/en/landing.json +++ b/src/localization/en/landing.json @@ -23,4 +23,4 @@ "section.opensource.title": "Open Source", "section.opensource.content": "Regex Learn is an open-source project that welcomes community contributions and is free to use. Working on this project allows you to hone your skills, study, and collaborate. You can contribute & support here.", "section.opensource.imageAltText": "Illustration of a woman, a man, and a cat putting together puzzle pieces." -} \ No newline at end of file +} diff --git a/src/localization/index.ts b/src/localization/index.ts index 16a32e6a..8139159a 100644 --- a/src/localization/index.ts +++ b/src/localization/index.ts @@ -7,6 +7,7 @@ export const langNames = { ru: '🇷🇺', 'zh-cn': '🇨🇳', uk: '🇺🇦', + ko: '🇰🇷', }; export const defaultLocale = 'en'; diff --git a/src/localization/ko/general.json b/src/localization/ko/general.json index b007c91a..329c69db 100644 --- a/src/localization/ko/general.json +++ b/src/localization/ko/general.json @@ -4,6 +4,9 @@ "general.result": "결과", "general.regex": "Regex", "general.text": "문자", + "general.watch": "손목 시계", + "general.start": "시작", + "general.continue": "계속하다", "general.completedStep": "단계 성공!", "general.hintQuestion": "답안 보기", "general.reportStep": "오류 제기", @@ -18,15 +21,16 @@ "notFound.intro": "찾고자 하는 페이지가 없습니다.", "notFound.button": "홈으로 돌아가기", - "page.landing.title": "Regex 배우기 - 처음부터 차근차근.", - "page.learn.title": "Regex 배우기 - RegEx 중간 과정", - "page.cheatsheet.title": "Regex 배우기 - RegEx Cheatsheet", - "page.404.title": "Regex 배우기 - 찾을 수 없음", + "page.landing.title": "Regex Learn - 처음부터 차근차근.", + "page.learn.title": "Regex Learn - RegEx 중간 과정", + "page.cheatsheet.title": "Regex Learn - RegEx Cheatsheet", + "page.playground.title": "Regex Learn - Playground", + "page.404.title": "Regex Learn - 찾을 수 없음", "page.landing.description": "RegEx를 상호작용하며 배우고 당신의 level에 맞추어 실험, 연습하고 당신만의 RegEX를 공유하세요.", "page.learn.description": "RegEX를 차근차근 배우세요. 튜토리얼을 마치면 좀 더 이해하기 쉽고 용이할 것입니다.", "page.cheatsheet.description": "가끔 RegEx를 기억할 필요가 있습니다. cheatsheet를 시도해보세요. 당신을 이해하기 쉽고 오래 기억하게 해줄 것입니다.", + "page.playground.description": "Playground를 통해 온라인으로 정규식 패턴을 쉽게 빌드하고 테스트할 수 있습니다.", - "alert.site.under.development": "이 사이트는 아직 개발중입니다. 변화하는 것을 함께 지켜봐주세요.", "learn.safari.unsupportWarning": "Regular expressionsare 단계는 Safari 브라우저 지원을 받지 않습니다. 이 단계 이전에 문제가 있다면 여기를 클릭해주세요." } diff --git a/src/localization/ko/landing.json b/src/localization/ko/landing.json index 9a7a48e8..b4897298 100644 --- a/src/localization/ko/landing.json +++ b/src/localization/ko/landing.json @@ -1,20 +1,26 @@ { "landing.title": "RegEx를 처음부터 차근차근 배우세요.", "landing.description": "RegEx 을 배우는 것은 생각보다 쉽습니다. 당신은 RegEx 를 쉽게 `배우고`, `연습하고`, `실험해보고` 그리고 `나눌 수` 있습니다.", + "landing.imageAltText": "", "section.learn.title": "학습하기", "section.learn.content": "`Regular Expressions`, 축약해서 RegEx 혹은 RegExp 로 불리며, RegEx 구문 규칙 프레임워크안에서 생성된 문자열입니다. RegEx와 함께 검색,매칭,편집 명령어를 이용하여 데이터를 쉽게 관리하고 처리할수 있습니다. Regex는 Python, SQL, Javascript, R, Google Analytics, Google Data Studio와 같은 모든 코딩 프로세스 프로그래밍 언어안에서 사용될 수 있습니다. 지금 당장 RegexLearn에서 예제와 튜토리얼을 통해 regex를 배우세요.", + "section.learn.imageAltText": "", "section.cheatsheet.button": "지금 리뷰하기", "section.cheatsheet.title": "Cheatsheet", "section.cheatsheet.content": "하나의 페이지안에서 `RegexLearn Cheatsheet`로 모든 사용법을 알 수 있습니다. RegEx cheat sheet과 함께 모든 RegEx 패턴과 기호를 찾아보세요.", + "section.cheatsheet.imageAltText": "", "section.playground.title": "Playground", "section.playground.content": "RegEx를 만들고 싶다면, Playground를 통해 당신의 RegEx 패턴을 쉽게 만들고 실험해 볼 수 있습니다. RegEx tester로서, 곧 다른사람들과 당신의 RegEx를 공유하며 협업 할 수 있을 것입니다.", + "section.playground.imageAltText": "", "section.practice.title": "실습", - "section.practice.content": "If you complete the learning part, it's time to PRACTICE! In the practice section, you can test your RegEx knowledge and practice with RegEx tutorials based on your level. Soon.", + "section.practice.content": "학습 부분을 완료했다면 이제 연습할 시간입니다! 연습 섹션에서는 레벨에 따라 RegEx 튜토리얼을 통해 RegEx 지식과 연습을 테스트할 수 있습니다. 곧.", + "section.practice.imageAltText": "", "section.opensource.title": "오픈 소스", - "section.opensource.content": "Regex 배우기는 자유롭게 이용 가능하고 모든 커뮤니티의 contributions을 환영하는 오픈소스 프로젝트입니다. 이 프로젝트를 통해 능력을 연마하고 공부하고 협업할 수 있습니다. 여기서 contribute & support 할 수 있습니다." + "section.opensource.content": "Regex 배우기는 자유롭게 이용 가능하고 모든 커뮤니티의 contributions을 환영하는 오픈소스 프로젝트입니다. 이 프로젝트를 통해 능력을 연마하고 공부하고 협업할 수 있습니다. 여기서 contribute & support 할 수 있습니다.", + "section.opensource.imageAltText": "" } diff --git a/src/localization/ko/learn.json b/src/localization/ko/learn.json index 49bea6e0..b2a3c9b7 100644 --- a/src/localization/ko/learn.json +++ b/src/localization/ko/learn.json @@ -27,7 +27,7 @@ "steps.range.description": "지정된 범위의 글자를 찾으려면 시작 글자와 끝 글자를 대괄호 '[]' 사이에 대시 '-'로 작성하세요. 이는 대소문자를 구분합니다. 'e'와 'o' 사이의 모든 소문자를 선택하는 식을 입력합니다.", "steps.rangeNumber.title": "숫자 범위`[0-9]`", - "steps.rangeNumber.description": "특정 범위내의 숫자를 찾기 위해서, 시작하는 숫자와 끝 숫자가 두 숫자 사이에`-`와 함께 `[]`안에 입력됩니다. 3,6을 포함한 그 사이의 숫자를 찾는 표현을 작성해보세요." + "steps.rangeNumber.description": "특정 범위내의 숫자를 찾기 위해서, 시작하는 숫자와 끝 숫자가 두 숫자 사이에`-`와 함께 `[]`안에 입력됩니다. 3,6을 포함한 그 사이의 숫자를 찾는 표현을 작성해보세요.", "examples.basicMatchers.title": "실습: 기본 매칭", "examples.basicMatchers.description": "문단안에 `of`와 함께 쓰이는 단어들을 선택할 표현을 작성하세요.", @@ -93,10 +93,10 @@ "steps.groupReference.description": "단어 `ha` 와 `haa`는 그룹화 되었습니다. 첫번째 그룹은 중복을 피하기 위해 `\\1`로 쓰입니다. 여기서 `1`는 그룹의 순서를 의미합니다. 표현 끝의 형식 `\\2`는 두번째 그룹을 의미합니다.", "steps.nonCapturingGroupping.title": "소괄호 `(?: )`: 확인되지 않는 그룹화", - "steps.nonCapturingGroupping.description": "표현식을 그룹화하여 참조에 의해 걸리지 않도록 할 수 있습니다. 예를 들어, 아래 그룹들을 보세요. 그러나 우리가 '\\1'로 나타내는 첫 번째 그룹 참조는 사실 두 번째 그룹을 가리키는데, 첫 번째 그룹은 학습되지 않은 그룹이기 때문입니." + "steps.nonCapturingGroupping.description": "표현식을 그룹화하여 참조에 의해 걸리지 않도록 할 수 있습니다. 예를 들어, 아래 그룹들을 보세요. 그러나 우리가 '\\1'로 나타내는 첫 번째 그룹 참조는 사실 두 번째 그룹을 가리키는데, 첫 번째 그룹은 학습되지 않은 그룹이기 때문입니.", "steps.pipeCharacter.title": "파이프 문자 `|`", - "steps.pipeCharacter.description": "표현이 다른 표현 안에 있을 수 있도록 지정할 수 있습니다. 그러므로, 가능한 모든 진술은 파이프 기호 `|`로 구분되어 작성됩니다. 이것은 문자 집합 '[abc]'와 다르며 문자 집합은 문자 수준에서 작동합니다. 대안은 표현 수준에 있습니다. 예를 들어,다음 표현은 'cat'과 'cat'을 모두 선택합니다. 표현식의 끝에 파이프 기호 '|'를 하나 더 추가하고 'rat'를 입력하여 모든 단어가 선택되도록 합니다." + "steps.pipeCharacter.description": "표현이 다른 표현 안에 있을 수 있도록 지정할 수 있습니다. 그러므로, 가능한 모든 진술은 파이프 기호 `|`로 구분되어 작성됩니다. 이것은 문자 집합 '[abc]'와 다르며 문자 집합은 문자 수준에서 작동합니다. 대안은 표현 수준에 있습니다. 예를 들어,다음 표현은 'cat'과 'cat'을 모두 선택합니다. 표현식의 끝에 파이프 기호 '|'를 하나 더 추가하고 'rat'를 입력하여 모든 단어가 선택되도록 합니다.", "steps.escapeCharacter.title": "탈출 문자 `\\`", "steps.escapeCharacter.description": "There are special characters that we use when writing regex. `{ } [ ] / \\ + * . $^ | ?` Before we can select these characters themselves, we need to use an escape character `\\`. For example, to select the dot `.` and asterisk `*` characters in the text, let's add an escape character `\\` before it.", @@ -135,15 +135,15 @@ "steps.negativeLookahead.description": "예를 들어, 문단에서 시간 값 이외의 숫자를 선택하려고 합니다. 그러면 음의 예측식 '(?)'을 표현 뒤에 써서 뒤에 'PM'이 없는 숫자 값만 선택해야 합니다. 괄호 안쪽에 '!' 기호 뒤에 'PM'을 넣으십시오.", "steps.positiveLookbehind.title": "Positive Lookbehind: `(?<=)`", - "steps.positiveLookbehind.description": "예를 들어, 우리는 문단에서 가격 값을 선택하기를 원합니다. 따라서 '$' 앞에 오는 숫자 값만 선택하기 위해서는 양의 뒷모습 표현 '(?)을 써야 한다.우리 표현 앞에 <=)>. 괄호 안의 '=' 기호 뒤에 '\$'를 추가합니다.", + "steps.positiveLookbehind.description": "예를 들어, 우리는 문단에서 가격 값을 선택하기를 원합니다. 따라서 '$' 앞에 오는 숫자 값만 선택하기 위해서는 양의 뒷모습 표현 '(?)을 써야 한다.우리 표현 앞에 <=)>. 괄호 안의 '=' 기호 뒤에 '\\$'를 추가합니다.", "steps.negativeLookbehind.title": "Negative Lookbehind: `(?<!)`", - "steps.negativeLookbehind.description": "예를 들어, 우리는 문단에서 가격 값 이외의 숫자를 선택하기를 원합니다.Therefore, '$' 앞에 없는 숫자 값만 선택하려면 표현 앞에 `(?<!)` 뒤에 음의 모양을 써야 합니다. 괄호 안의 '!' 뒤에 '\$'를 추가합니다.", + "steps.negativeLookbehind.description": "예를 들어, 우리는 문단에서 가격 값 이외의 숫자를 선택하기를 원합니다.Therefore, '$' 앞에 없는 숫자 값만 선택하려면 표현 앞에 `(?<!)` 뒤에 음의 모양을 써야 합니다. 괄호 안의 '!' 뒤에 '\\$'를 추가합니다.", "steps.flags.title": "Flags", "steps.flags.description": "Flags는 표현의 결과는 바꿉니다. 이는 `modifiers`로도 불리는 이유입니다. 입력된 식이 문단을 별도의 줄로 처리할지, 대소문자를 구분할지, 모든 일치 항목을 찾을지를 결정하세요. flags을 배우기 위한 다음 단계로 진행하세요.", - "steps.flagsGlobal.title": "global flag" + "steps.flagsGlobal.title": "global flag", "steps.flagsGlobal.description": "`global` flag causes the expression to select all matches. If not used it will only select the first match. Now enable the `global` flag to be able to select all matches.", "steps.flagsMultiline.title": "다중문자열 Flag", @@ -161,4 +161,3 @@ "steps.completeAllSteps.title": "축하합니다. 모든 단계를 완료하셨습니다.", "steps.completeAllSteps.description": "원할 때마다 이전 단계로 돌아갈 수 있으며, 통과한 모든 단계를 쉽게 탐색할 수 있습니다." } - diff --git a/src/localization/ko/lessons/regexForSeo.json b/src/localization/ko/lessons/regexForSeo.json new file mode 100644 index 00000000..bcf22cc2 --- /dev/null +++ b/src/localization/ko/lessons/regexForSeo.json @@ -0,0 +1,49 @@ +{ + "lesson.regexForSeo.starter.title": "Regex for SEO", + "lesson.regexForSeo.starter.description": "Regex is a set of regular expressions frequently used in many fields, especially by people who want to increase their productivity. The advantages of using Regex for SEO are that it makes it easier to analyze big data and write richer filters. We recommend starting with the `Regex 101` tutorial if you are new to Regex. \\n\\nStart by typing `OK` in the Regex field to proceed to the first step and access more detailed explanations.", + + "lesson.regexForSeo.usage.title": "Use Cases", + "lesson.regexForSeo.usage.description": "You can use Regex for SEO on platforms such as `Google Analytics`, `Google Data Studio`, `Google Sheets`, `Google Search Console`, `Ahrefs`, `Deepcrawl`, `Screaming Frog`. It is also frequently used in `.htaccess` and `robots.txt (regex-like syntax)` files.\\n\\nBelow is a sample regex that will select only texts in the list that start with `Google`.", + + "lesson.regexForSeo.basics.title": "Basics", + "lesson.regexForSeo.basics.description": "Let's take a look at some Regexes that you will use frequently. We recommend that you review the `Regex 101` tutorial to learn more about these. Type `Yes` to get started.", + + "lesson.regexForSeo.or.title": "Or Operator `|`", + "lesson.regexForSeo.or.description": "We use the Or operator `|` to filter out multiple expressions. For example, filter text containing `seo` and `regex` by writing the two words, separating them with the Or operator `|`.", + + "lesson.regexForSeo.optional.title": "Optional Operator `?`", + "lesson.regexForSeo.optional.description": "We use it to express that an expression or character is optional. For example, we want to filter text containing both `http` and `https`. We can use the Or operator `|` for this operation, but there is a better way for these two almost identical words.\\n\\nIn this example, the letter `s` is optional. Instead, add a question mark `?` to the end of the letter `s`.", + + "lesson.regexForSeo.any.title": "Anything `.*`", + "lesson.regexForSeo.any.description": "In regex, the period `.` can match anything, including spaces. But this match is only for a single character where it is used. The asterisk character `*` means that the preceding item does not exist at all or occurs more than once in the text. When the two are used together, it means that there can be an element of unlimited length where used.\\n\\nBelow are various keywords. Add `.*` to the end of the regex to write the expression that starts with `how to write` and matches everything after it.", + + "lesson.regexForSeo.contains.title": "Contains", + "lesson.regexForSeo.contains.description": "To filter the text that contains the words or phrases we're looking for, we write the word we're looking for between our two phrases `.*` that match everything. For example, type `.*buy.*` to filter out what includes `buy`.", + + "lesson.regexForSeo.negated.title": "Negated Character Sets `[^abc]`", + "lesson.regexForSeo.negated.description": "We use the negated character sets `[^]` to denote characters we don't want to be included. The characters we do not want to be included are written in square brackets with a caret at the beginning. Below are both `http` and `https`. Since `http` occurs in both, it will also choose `https`. Type `[^s]` after the letter `p` to exclude the letter `s`.", + + "lesson.regexForSeo.caret.title": "Caret Sign `^`", + "lesson.regexForSeo.caret.description": "Let's say we have a list of URLs, and we want to find only those URLs that start with `http`. But URLs also contain `http` in different parts other than their beginning. So add a caret `^` to the beginning of the following expression to filter out only those starting with `http`.", + + "lesson.regexForSeo.dollarAndEscape.title": "Dollar Sign `$` and Escape Character `\\`", + "lesson.regexForSeo.dollarAndEscape.description": "Again we have a list of URLs. We want to find only those URLs ending in `.htm`.\\n\\nSince the period `.` is a special character that matches everything, we first need to disable the period before `htm` using the escape character `\\`. This applies to all special characters.\\n\\nThen add a `$` sign to the end of the expression. This ensures that the text to be filtered ends with the expression written before it.", + + "lesson.regexForSeo.limitation.title": "Length Restrictions `{n}`", + "lesson.regexForSeo.limitation.description": "We may want to filter the results by character lengths. For example, to filter URLs that are `35` characters long, type the number you want to use for the length, `{35}`, using curly braces at the end of the period `.`.", + + "lesson.regexForSeo.maxLimitation.title": "Length Restrictions (Maximum) `{n,m}`", + "lesson.regexForSeo.maxLimitation.description": "To filter URLs with a maximum length of `35` characters, type `{1,35}` the minimum and maximum number values we will use for the length, using curly braces at the end of the period `.`.", + + "lesson.regexForSeo.minLimitation.title": "Length Restrictions (Minumum) `{n,}`", + "lesson.regexForSeo.minLimitation.description": "To filter URLs with a minimum length of `35` characters, type `{35,}` using curly braces at the end of the period and ending with a comma for the minimum number value we will use for the length.", + + "lesson.regexForSeo.robots.title": "robots.txt (regex-like syntax)", + "lesson.regexForSeo.robots.description": "Here is an example of regex-like usage in the `robots.txt` file. The example states that bots should not crawl links with the extension `pdf`.", + + "lesson.regexForSeo.htaccess.title": ".htaccess", + "lesson.regexForSeo.htaccess.description": "Here is an example of using regex in the `.htaccess` file. In the example, `php` extension links are directed to `html` extensions with `301` code.", + + "lesson.regexForSeo.outro.title": "Outro", + "lesson.regexForSeo.outro.description": "Regex knowledge is a skill that increases productivity on any platform that allows you to use regex. Once you start using it and improve this skill, it will help you complete many repetitive tasks faster and save time for other things. To better understand the basics of Regex, you can visit the `Regex 101` tutorial. You can use the `Playground` page to test your expressions on your texts." +} From bbdabf67d9e47f4f977db55774d11d8ca2154df5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aykut=20Karda=C5=9F?= Date: Sat, 6 Aug 2022 13:41:04 +0300 Subject: [PATCH 09/14] Add missing translation --- scripts/html-lang-fixer.js | 2 +- src/localization/ko/index.js | 20 ++++++++++++-------- src/localization/ko/landing.json | 2 +- src/localization/ko/lessons.json | 7 +++++++ 4 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 src/localization/ko/lessons.json diff --git a/scripts/html-lang-fixer.js b/scripts/html-lang-fixer.js index 39d42c54..f598907e 100644 --- a/scripts/html-lang-fixer.js +++ b/scripts/html-lang-fixer.js @@ -15,7 +15,7 @@ function htmlLangFixer(path) { const stats = fs.lstatSync(currentPath); if (stats.isFile() && el.endsWith('.html')) { - const result = currentPath.match(/^\.\/out\/(en|es|de|tr|uk|fr|ru|zh-cn)\/?/); + const result = currentPath.match(/^\.\/out\/(en|es|de|tr|uk|fr|ru|zh-cn|ko)\/?/); if (result) { replaceLangTag(currentPath, result[1]); diff --git a/src/localization/ko/index.js b/src/localization/ko/index.js index b44cd1c2..a30a668d 100644 --- a/src/localization/ko/index.js +++ b/src/localization/ko/index.js @@ -1,13 +1,17 @@ -import general from "./general.json"; -import landing from "./landing.json"; -import cheatsheet from "./cheatsheet.json"; -import learn from "./learn.json"; +import cheatsheet from './cheatsheet.json'; +import general from './general.json'; +import landing from './landing.json'; +import learn from './learn.json'; +import lessons from './lessons.json'; +import regexForSeo from './lessons/regexForSeo.json'; const messages = { + ...cheatsheet, ...general, ...landing, - ...cheatsheet, - ...learn -} + ...learn, + ...lessons, + ...regexForSeo, +}; -export default messages; \ No newline at end of file +export default messages; diff --git a/src/localization/ko/landing.json b/src/localization/ko/landing.json index b4897298..4060d62e 100644 --- a/src/localization/ko/landing.json +++ b/src/localization/ko/landing.json @@ -13,7 +13,7 @@ "section.cheatsheet.imageAltText": "", "section.playground.title": "Playground", - "section.playground.content": "RegEx를 만들고 싶다면, Playground를 통해 당신의 RegEx 패턴을 쉽게 만들고 실험해 볼 수 있습니다. RegEx tester로서, 곧 다른사람들과 당신의 RegEx를 공유하며 협업 할 수 있을 것입니다.", + "section.playground.content": "Regex를 생성하려면 Playground를 통해 Regex 패턴을 쉽게 빌드하고 테스트할 수 있습니다. 정규식 테스터는 공동 작업을 위해 정규식을 검증하고 다른 사람들과 공유할 수 있습니다.", "section.playground.imageAltText": "", "section.practice.title": "실습", diff --git a/src/localization/ko/lessons.json b/src/localization/ko/lessons.json new file mode 100644 index 00000000..e4f7601d --- /dev/null +++ b/src/localization/ko/lessons.json @@ -0,0 +1,7 @@ +{ + "lessons.regex101.title": "Regex 101 - KO", + "lessons.regex101.description": "이 자습서에서 Regex의 기본 사항을 배울 수 있습니다.", + + "lessons.regexForSeo.title": "SEO를 위한 Regex - KO", + "lessons.regexForSeo.description": "이 튜토리얼에서는 SEO에 Regex를 사용할 수 있는 방법과 위치를 배울 수 있습니다." +} \ No newline at end of file From cc2b078255a2287db785a659a664788eeaa649fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aykut=20Karda=C5=9F?= Date: Sat, 6 Aug 2022 13:49:15 +0300 Subject: [PATCH 10/14] Fix some highlights (ko/regex-101) --- src/localization/ko/learn.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/localization/ko/learn.json b/src/localization/ko/learn.json index b2a3c9b7..dade5d9c 100644 --- a/src/localization/ko/learn.json +++ b/src/localization/ko/learn.json @@ -6,13 +6,13 @@ "examples.finish.description": " ", "steps.starter.title": "개요", - "steps.starter.description": "RegEx는 `Regular Expression`의 줄임말입니다. 이것은 내용을 찾거나 관리하는 데 도움이 됩니다. RegEx 필드에 'OK'를 입력하여 첫 번째 단계를 진행하고 자세한 설명에 접근합니다...", + "steps.starter.description": "RegEx는 `Regular Expression`의 줄임말입니다. 이것은 내용을 찾거나 관리하는 데 도움이 됩니다. RegEx 필드에 `OK`를 입력하여 첫 번째 단계를 진행하고 자세한 설명에 접근합니다...", "steps.whatIsRegex.title": "Regular Expressions, `RegEx`는 무슨 뜻일까?", "steps.whatIsRegex.description": "Regular Expressions 검색패턴을 표현하는 문자열입니다. 자주 `RegEx` 혹은 `RegExp`로 불립니다. 이것은 내용의 단어를 찾거나 대체하는데 용이합니다. 추가적으로, 내용이 우리가 설정한 규칙에 부합하는지 확인할 수 있습니다.\\n\\n 예를 들어, 파일이름들이 있다고 가정해봅시다. 이때 'pdf'형식의 파일만 찾고싶을때, 이 `^\\w+\\.pdf$` 표현을 입력하면 찾을 수 있을 것 입니다. 진행 단계가 거듭될수록 표현의 정의의 의미는 더 정확해질 것입니다.", "steps.basicMatchers.title": "기본 매칭", - "steps.basicMatchers.description": "우리가 찾고자 하는 단어 내용을 직접 작성합니다. 이는 기본 검색 과정과 동일합니다. 예를 들어, 문단에 'curious'이라는 단어를 찾기 위해서 똑같이 작성하면 됩니다.", + "steps.basicMatchers.description": "우리가 찾고자 하는 단어 내용을 직접 작성합니다. 이는 기본 검색 과정과 동일합니다. 예를 들어, 문단에 `curious`이라는 단어를 찾기 위해서 똑같이 작성하면 됩니다.", "steps.dotCharacter.title": "점 `.`: 아무 문자", "steps.dotCharacter.description": "이 `.`기호는 특수문자나 여백을 포함한 아무 문자를 구분합니다.", From 399681e0217a61a2759e9d0748c71384d0b5aeda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aykut=20Karda=C5=9F?= Date: Sat, 6 Aug 2022 13:55:24 +0300 Subject: [PATCH 11/14] Fix EOL --- src/localization/ko/cheatsheet.json | 2 +- src/localization/ko/lessons.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/localization/ko/cheatsheet.json b/src/localization/ko/cheatsheet.json index 7c7de12a..5072f976 100644 --- a/src/localization/ko/cheatsheet.json +++ b/src/localization/ko/cheatsheet.json @@ -64,4 +64,4 @@ "cheatsheet.optional.description": "Makes the expression optional.", "cheatsheet.alternation.title": "Alternation", "cheatsheet.alternation.description": "Or it works like. It waits for one of the expressions it reserved to match." -} \ No newline at end of file +} diff --git a/src/localization/ko/lessons.json b/src/localization/ko/lessons.json index e4f7601d..58b286c4 100644 --- a/src/localization/ko/lessons.json +++ b/src/localization/ko/lessons.json @@ -4,4 +4,4 @@ "lessons.regexForSeo.title": "SEO를 위한 Regex - KO", "lessons.regexForSeo.description": "이 튜토리얼에서는 SEO에 Regex를 사용할 수 있는 방법과 위치를 배울 수 있습니다." -} \ No newline at end of file +} From 000ef20272c3c8f7f0f42272d3abc5ee07a09336 Mon Sep 17 00:00:00 2001 From: JaeRyang Yu Date: Wed, 16 Nov 2022 23:35:01 +0900 Subject: [PATCH 12/14] cheatsheet.json translated to Korean --- src/localization/ko/cheatsheet.json | 118 ++++++++++++++-------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/src/localization/ko/cheatsheet.json b/src/localization/ko/cheatsheet.json index 5072f976..93f02de8 100644 --- a/src/localization/ko/cheatsheet.json +++ b/src/localization/ko/cheatsheet.json @@ -1,67 +1,67 @@ { - "cheatsheet.anchors": "Anchors", - "cheatsheet.caret.title": "Start of string or line", - "cheatsheet.caret.description": "Matches the beginning of the string or line.", - "cheatsheet.dollar.title": "End of string or line", - "cheatsheet.dollar.description": "Matches the end of the string or line.", - "cheatsheet.wordBoundary.title": "Word Boundary", - "cheatsheet.wordBoundary.description": "Matches the word character or position at the end of a word.", - "cheatsheet.notWordBoundary.title": "Not Word Boundary", - "cheatsheet.notWordBoundary.description": "Matches a word character or position that is not at the end of a word.", + "cheatsheet.anchors": "앵커", + "cheatsheet.caret.title": "문자열 또는 라인의 앞 부분", + "cheatsheet.caret.description": "문자열 또는 라인의 앞 부분을 탐색합니다.", + "cheatsheet.dollar.title": "문자열 또는 라인의 끝 부분", + "cheatsheet.dollar.description": "문자열 또는 라인의 끝 부분을 탐색합니다.", + "cheatsheet.wordBoundary.title": "문장 경계선", + "cheatsheet.wordBoundary.description": "전체 문장에서 모든 단어 또는 위치를 탐색합니다.", + "cheatsheet.notWordBoundary.title": "문장 경계선 아님", + "cheatsheet.notWordBoundary.description": "전체 문장에서 가장 먼저 보이는 단어 또는 위치를 탐색합니다.", - "cheatsheet.characterClasses": "Character Classes", - "cheatsheet.characterSet.title": "Character Set", - "cheatsheet.characterSet.description": "Matches any character in the set.", - "cheatsheet.negatedCharacterSet.title": "Negated Character Set", - "cheatsheet.negatedCharacterSet.description": "Matches any character not in the set.", - "cheatsheet.range.title": "Range", - "cheatsheet.range.description": "Matches all characters between two characters, including themselves.", - "cheatsheet.dot.title": "Dot", - "cheatsheet.dot.description": "Matches any character except line breaks.", - "cheatsheet.word.title": "Word", - "cheatsheet.word.description": "Matches any alphanumeric character. Including the underline.", - "cheatsheet.notWord.title": "Not Word", - "cheatsheet.notWord.description": "Matches any non-alphanumeric character.", - "cheatsheet.digit.title": "Digit", - "cheatsheet.digit.description": "Matches any numeric character.", - "cheatsheet.notDigit.title": "Not Digit", - "cheatsheet.notDigit.description": "Matches any non-numeric character.", - "cheatsheet.space.title": "Whitespace", - "cheatsheet.space.description": "Matches any whitespace character.", - "cheatsheet.notSpace.title": "Not Whitespace", - "cheatsheet.notSpace.description": "Matches any non-whitespace character.", + "cheatsheet.characterClasses": "문자 클래스", + "cheatsheet.characterSet.title": "문자 집합", + "cheatsheet.characterSet.description": "집합내의 문자를 포함하는 단어를 모두 탐색합니다.", + "cheatsheet.negatedCharacterSet.title": "부정 문자 집합", + "cheatsheet.negatedCharacterSet.description": "집합내의 문자를 포함하지 않는 단어를 모두 탐색합니다.", + "cheatsheet.range.title": "범위", + "cheatsheet.range.description": "두 문자 사이중 자기 자신을 포함한 모든 문자를 탐색합니다.", + "cheatsheet.dot.title": "점", + "cheatsheet.dot.description": "줄 바꿈을 제외한 모든 문자를 탐색합니다.", + "cheatsheet.word.title": "단어", + "cheatsheet.word.description": "영어, 숫자, 밑줄을 포함한 모든 문자를 탐색합니다.", + "cheatsheet.notWord.title": "단어 아님", + "cheatsheet.notWord.description": "영어, 숫자, 밑줄이 아닌 모든 문자를 탐색합니다.", + "cheatsheet.digit.title": "숫자", + "cheatsheet.digit.description": "모든 숫자를 탐색합니다.", + "cheatsheet.notDigit.title": "숫자 아님", + "cheatsheet.notDigit.description": "숫자가 아닌 모든 문자를 탐색합니다.", + "cheatsheet.space.title": "공백", + "cheatsheet.space.description": "모든 공백을 탐색합니다", + "cheatsheet.notSpace.title": "공백 아님", + "cheatsheet.notSpace.description": "공백이 아닌 모든 문자를 탐색합니다.", - "cheatsheet.flags": "Flags", - "cheatsheet.caseInsensitiveFlag.title": "Ignore Case", - "cheatsheet.caseInsensitiveFlag.description": "Makes the expression case insensitive.", - "cheatsheet.globalFlag.title": "Global", - "cheatsheet.globalFlag.description": "Ensures that the expression does not stop on the first match.", - "cheatsheet.multilineFlag.title": "Multiline", - "cheatsheet.multilineFlag.description": "If not enabled, line start and end equals the beginning and end of the entire string. It doesn't work for each row individually.", + "cheatsheet.flags": "플래그", + "cheatsheet.caseInsensitiveFlag.title": "대소문자 무시", + "cheatsheet.caseInsensitiveFlag.description": "표현식이 대소문자를 구별하도록 합니다.", + "cheatsheet.globalFlag.title": "전체", + "cheatsheet.globalFlag.description": "처음 문자열을 찾아내도 다음 탐색을 계속 진행하도록 합니다.", + "cheatsheet.multilineFlag.title": "다중라인", + "cheatsheet.multilineFlag.description": "사용하지 않을 경우, 줄의 시작과 끝은 전체 문자열의 시작과 끝과 같습니다. 각 문자 라인의 끝마다 작동하지 않습니다.", - "cheatsheet.groupAndReferences": "Group & References", - "cheatsheet.group.title": "Group", - "cheatsheet.group.description": "Groups an expression.", - "cheatsheet.reference.title": "Reference", - "cheatsheet.reference.description": "References a grouped expression.", - "cheatsheet.nonCapturingGroup.title": "Non Capturing Group", - "cheatsheet.nonCapturingGroup.description": "Makes a grouping that cannot be referenced.", + "cheatsheet.groupAndReferences": "그룹 & 참조", + "cheatsheet.group.title": "그룹", + "cheatsheet.group.description": "표현식을 그룹화 합니다.", + "cheatsheet.reference.title": "참조", + "cheatsheet.reference.description": "그룹화된 식을 참조합니다.", + "cheatsheet.nonCapturingGroup.title": "캡처링 되지 않은 그룹", + "cheatsheet.nonCapturingGroup.description": "참조할 수 없는 그룹식을 만듭니다.", - "cheatsheet.lookarounds": "Lookarounds", - "cheatsheet.positiveLookahead.title": "Positive Lookahead", - "cheatsheet.negativeLookahead.title": "Negative Lookahead", - "cheatsheet.positiveLookbehind.title": "Positive Lookbehind", - "cheatsheet.negativeLookbehind.title": "Negative Lookbehind", + "cheatsheet.lookarounds": "찾아보기", + "cheatsheet.positiveLookahead.title": "앞에서 부터 맞는것 찾기 (Positive Lookahead)", + "cheatsheet.negativeLookahead.title": "앞에서 부터 다른것 찾기 (Negative Lookahead)", + "cheatsheet.positiveLookbehind.title": "뒤에서 부터 맞는것 찾기 (Positive Lookbehind)", + "cheatsheet.negativeLookbehind.title": "뒤에서 부터 다른것 찾기 (Negative Lookbehind)", - "cheatsheet.quantifiersAndAlternation": "Quantifiers And Alternation", - "cheatsheet.plus.title": "Plus", - "cheatsheet.plus.description": "Expression matches one or more.", + "cheatsheet.quantifiersAndAlternation": "수량 및 대체", + "cheatsheet.plus.title": "더하기", + "cheatsheet.plus.description": "표현식이 하나 또는 그 이상을 탐색하도록 합니다.", "cheatsheet.asterisk.title": "Astekrisk", - "cheatsheet.asterisk.description": "Expression matches zero or more.", - "cheatsheet.quantifier.title": "Quantifier", - "cheatsheet.quantifier.description": "Expression matches within specified ranges.", - "cheatsheet.optional.title": "Optional", - "cheatsheet.optional.description": "Makes the expression optional.", - "cheatsheet.alternation.title": "Alternation", - "cheatsheet.alternation.description": "Or it works like. It waits for one of the expressions it reserved to match." + "cheatsheet.asterisk.description": "표현식이 0개 또는 그 이상을 탐색하도록 합니다.", + "cheatsheet.quantifier.title": "수량자", + "cheatsheet.quantifier.description": "표현식이 명시된 범위를 탐색하도록 합니다.", + "cheatsheet.optional.title": "선택적", + "cheatsheet.optional.description": "표현식을 선택적 탐색을 하도록 합니다.", + "cheatsheet.alternation.title": "대안", + "cheatsheet.alternation.description": "닮은 것을 탐색합니다. 예약된 식중 하나와 일치할때 까지 탐색합니다." } From f6cef6f3c8ecf59977c10048a4cc1c8d99e98eb8 Mon Sep 17 00:00:00 2001 From: JaeRyang Yu Date: Wed, 16 Nov 2022 23:35:23 +0900 Subject: [PATCH 13/14] regexForSeo.json translated to Korean --- src/localization/ko/lessons/regexForSeo.json | 62 ++++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/src/localization/ko/lessons/regexForSeo.json b/src/localization/ko/lessons/regexForSeo.json index bcf22cc2..3b62f7a4 100644 --- a/src/localization/ko/lessons/regexForSeo.json +++ b/src/localization/ko/lessons/regexForSeo.json @@ -1,49 +1,49 @@ { - "lesson.regexForSeo.starter.title": "Regex for SEO", - "lesson.regexForSeo.starter.description": "Regex is a set of regular expressions frequently used in many fields, especially by people who want to increase their productivity. The advantages of using Regex for SEO are that it makes it easier to analyze big data and write richer filters. We recommend starting with the `Regex 101` tutorial if you are new to Regex. \\n\\nStart by typing `OK` in the Regex field to proceed to the first step and access more detailed explanations.", + "lesson.regexForSeo.starter.title": "SEO를 위한 Regex", + "lesson.regexForSeo.starter.description": "Regex는 정규 표현식의 집합이며, 특히 생산성을 끌어올리고 싶은 사람들이 다방면에서 활용합니다. SEO를 위한 Regex의 장점은 빅데이터를 더 쉽게 분석하고 더 풍부한 필터를 사용할 수 있다는 것입니다. 당신이 초심자일 경우 `Regex 101`를 먼저 시작하길 추천합니다. \\n\\n먼저 Regex 필드에 `OK`를 입력하여 첫 번째 단계로 이동해 보다 자세한 설명을 확인해보세요.", - "lesson.regexForSeo.usage.title": "Use Cases", - "lesson.regexForSeo.usage.description": "You can use Regex for SEO on platforms such as `Google Analytics`, `Google Data Studio`, `Google Sheets`, `Google Search Console`, `Ahrefs`, `Deepcrawl`, `Screaming Frog`. It is also frequently used in `.htaccess` and `robots.txt (regex-like syntax)` files.\\n\\nBelow is a sample regex that will select only texts in the list that start with `Google`.", + "lesson.regexForSeo.usage.title": "유즈 케이스", + "lesson.regexForSeo.usage.description": "SEO를 위한 Regex는 `Google 애널리틱스`, `Google 데이터 스튜디오`, `Google 시트`, `Google 웹마스터 도구`, `Ahrefs`, `Deepcrawl`, `Screaming Frog` 등에서 사용할 수 있습니다. 또한 `.htaccess 확장자` 또는 `robots.txt (정규식과 유사한 문법)` 파일에도 자주 사용됩니다.\\n\\n아래 예제는 리스트에서 `Google`로 시작하는 문자열만 선택하는 정규식입니다.", - "lesson.regexForSeo.basics.title": "Basics", - "lesson.regexForSeo.basics.description": "Let's take a look at some Regexes that you will use frequently. We recommend that you review the `Regex 101` tutorial to learn more about these. Type `Yes` to get started.", + "lesson.regexForSeo.basics.title": "기본", + "lesson.regexForSeo.basics.description": "자주 사용하게 될 몇 가지 정규 표현들을 살펴보겠습니다. 자세한 내용은 `Regex 101` 튜토리얼을 다시 보시는 것을 추천드립니다. `Yes` 를 입력해 시작합니다.", - "lesson.regexForSeo.or.title": "Or Operator `|`", - "lesson.regexForSeo.or.description": "We use the Or operator `|` to filter out multiple expressions. For example, filter text containing `seo` and `regex` by writing the two words, separating them with the Or operator `|`.", + "lesson.regexForSeo.or.title": "Or 연산자 `|`", + "lesson.regexForSeo.or.description": "Or 연산자 `|` 로 여러 표현식을 나눠 사용할 수 있습니다. 예를 들어, `seo` 와 `regex` 라는 단어를 찾으려면 Or 연산자 `|` 를 두 문구 사이에 넣으면 됩니다.", - "lesson.regexForSeo.optional.title": "Optional Operator `?`", - "lesson.regexForSeo.optional.description": "We use it to express that an expression or character is optional. For example, we want to filter text containing both `http` and `https`. We can use the Or operator `|` for this operation, but there is a better way for these two almost identical words.\\n\\nIn this example, the letter `s` is optional. Instead, add a question mark `?` to the end of the letter `s`.", + "lesson.regexForSeo.optional.title": "조건 연산자 `?`", + "lesson.regexForSeo.optional.description": "이 연산자는 표현식이나 문자가 선택적임을 나타내기 위해 사용합니다. 예를 들면, `http` 와 `https` 두 단어를 찾으려고 합니다. Or 연산자 `|` 를 사용할 수도 있지만, 두 단어가 비슷하므로 더 나은 방법을 사용할 수 있습니다.\\n\\n이 예제에서 `s` 는 선택적인 문자입니다. 그저 `s` 문자 뒤에 물음표 `?` 를 붙이면 됩니다.", - "lesson.regexForSeo.any.title": "Anything `.*`", - "lesson.regexForSeo.any.description": "In regex, the period `.` can match anything, including spaces. But this match is only for a single character where it is used. The asterisk character `*` means that the preceding item does not exist at all or occurs more than once in the text. When the two are used together, it means that there can be an element of unlimited length where used.\\n\\nBelow are various keywords. Add `.*` to the end of the regex to write the expression that starts with `how to write` and matches everything after it.", + "lesson.regexForSeo.any.title": "모든 것 `.*`", + "lesson.regexForSeo.any.description": "표현식에서 마침표 `.` 는 공백을 포함한 모든 것을 찾을 수 있습니다. 하지만 한 개의 문자밖에 찾지 못합니다. 별표 `*` 는 선행 문구가 아예 없거나 단어에서 한 번 이상 발생함을 의미합니다. 두 문자를 같이 사용하게 되면 문자가 끝없이 있다는 말이 됩니다.\\n\\n아래에 여러 키워드들이 있습니다. `how to write` 라는 포현식 뒤에 `.*` 를 추가해 모든 문자열을 찾도록 써보세요.", - "lesson.regexForSeo.contains.title": "Contains", - "lesson.regexForSeo.contains.description": "To filter the text that contains the words or phrases we're looking for, we write the word we're looking for between our two phrases `.*` that match everything. For example, type `.*buy.*` to filter out what includes `buy`.", + "lesson.regexForSeo.contains.title": "포함", + "lesson.regexForSeo.contains.description": "우리가 찾는 단어나 구절이 포함된 텍스트를 찾기 위해선, `.*` 라는 두 표현식 사이에 찾고 싶은 단어를 쓰면 됩니다. 예를 들어, `.*buy.*` 라고 쓰면 `buy` 를 모두 찾아낼 수 있습니다.", - "lesson.regexForSeo.negated.title": "Negated Character Sets `[^abc]`", - "lesson.regexForSeo.negated.description": "We use the negated character sets `[^]` to denote characters we don't want to be included. The characters we do not want to be included are written in square brackets with a caret at the beginning. Below are both `http` and `https`. Since `http` occurs in both, it will also choose `https`. Type `[^s]` after the letter `p` to exclude the letter `s`.", + "lesson.regexForSeo.negated.title": "부정 문자 집합 `[^abc]`", + "lesson.regexForSeo.negated.description": "찾고 싶지 않은 문자를 나타내기 위해 부정 문자 집합 `[^]` 를 사용합니다. 포함하지 않으려는 문자는 대괄호 안 첫머리에 캐럿(^)이 있습니다. 아래에 `http` 와 `https` 가 있습니다. `http` 는 두 문자열이 갖고 있으므로 `https` 도 선택됩니다. `s` 를 제외하려면 `p` 뒤에 `[^s]` 를 입력하면 됩니다.", - "lesson.regexForSeo.caret.title": "Caret Sign `^`", - "lesson.regexForSeo.caret.description": "Let's say we have a list of URLs, and we want to find only those URLs that start with `http`. But URLs also contain `http` in different parts other than their beginning. So add a caret `^` to the beginning of the following expression to filter out only those starting with `http`.", + "lesson.regexForSeo.caret.title": "캐럿 기호 `^`", + "lesson.regexForSeo.caret.description": "아래 URL 목록중에서 `http` 로만 시작하는 URL만 찾으려고 합니다. 하지만 URL의 경우 첫 부분 외에도 `http` 가 포함되는 경우도 있습니다. 따라서 다음 표현식의 시작 부분에 캐럿 `^` 을 추가하면 `http` 로만 시작하는 문자열을 찾을 수 있습니다.", - "lesson.regexForSeo.dollarAndEscape.title": "Dollar Sign `$` and Escape Character `\\`", - "lesson.regexForSeo.dollarAndEscape.description": "Again we have a list of URLs. We want to find only those URLs ending in `.htm`.\\n\\nSince the period `.` is a special character that matches everything, we first need to disable the period before `htm` using the escape character `\\`. This applies to all special characters.\\n\\nThen add a `$` sign to the end of the expression. This ensures that the text to be filtered ends with the expression written before it.", + "lesson.regexForSeo.dollarAndEscape.title": "달러 기호 `$` 와 탈출 문자 `\\`", + "lesson.regexForSeo.dollarAndEscape.description": "우리는 이번에도 URL 목록을 갖고 있습니다. 이번엔 `.htm` 으로만 끝나는 URL을 찾으려고 합니다.\\n\\n마침표 `.` 는 모든 것을 찾는 특수 문자이므로 `htm` 앞에 탈출 문자 `\\` 를 추가하여 마침표를 비활성화 시켜야 합니다. 탈출 문자는 모든 특수 문자에 적용됩니다.\\n\n그런 다음 표현식 끝에 `$` 기호를 붙이면 됩니다. 이렇게 하면 찾을 텍스트가 앞에 써진 식으로 끝납니다.", - "lesson.regexForSeo.limitation.title": "Length Restrictions `{n}`", - "lesson.regexForSeo.limitation.description": "We may want to filter the results by character lengths. For example, to filter URLs that are `35` characters long, type the number you want to use for the length, `{35}`, using curly braces at the end of the period `.`.", + "lesson.regexForSeo.limitation.title": "길이 제한 `{n}`", + "lesson.regexForSeo.limitation.description": "우린 문자열 길이로 필터링을 하려고 합니다. 예를 들어, 길이가 `35` 자인 URL을 찾으려면 마침표 `.` 뒤에 중괄호를 열고 `{35}` 처럼 입력하면 됩니다.", - "lesson.regexForSeo.maxLimitation.title": "Length Restrictions (Maximum) `{n,m}`", - "lesson.regexForSeo.maxLimitation.description": "To filter URLs with a maximum length of `35` characters, type `{1,35}` the minimum and maximum number values we will use for the length, using curly braces at the end of the period `.`.", + "lesson.regexForSeo.maxLimitation.title": "길이 제한 (최대) `{n,m}`", + "lesson.regexForSeo.maxLimitation.description": "최대 길이가 `35` 자인 URL을 찾으려면 마침표 `.` 뒤에 중괄호를 열고 `{1,35}` 와 같이 최소 및 최대 길이를 입력하면 됩니다.", - "lesson.regexForSeo.minLimitation.title": "Length Restrictions (Minumum) `{n,}`", - "lesson.regexForSeo.minLimitation.description": "To filter URLs with a minimum length of `35` characters, type `{35,}` using curly braces at the end of the period and ending with a comma for the minimum number value we will use for the length.", + "lesson.regexForSeo.minLimitation.title": "길이 제한 (최소) `{n,}`", + "lesson.regexForSeo.minLimitation.description": "최소 길이가 `35` 자인 URL을 찾으려면 마침표 `.` 뒤에 중괄호를 열고 `{35,}` 와 같이 최소 길이를 입력하고 쉼표로 끝내면 됩니다.", - "lesson.regexForSeo.robots.title": "robots.txt (regex-like syntax)", - "lesson.regexForSeo.robots.description": "Here is an example of regex-like usage in the `robots.txt` file. The example states that bots should not crawl links with the extension `pdf`.", + "lesson.regexForSeo.robots.title": "robots.txt (정규식-같은 문법)", + "lesson.regexForSeo.robots.description": "이 예제는 `robots.txt` 파일에서 정규식 처럼 사용되는 예제입니다. 이 예제는 봇이 `pdf` 로 끝나는 링크를 크롤링 할 수 없음을 명시하고 있습니다.", "lesson.regexForSeo.htaccess.title": ".htaccess", - "lesson.regexForSeo.htaccess.description": "Here is an example of using regex in the `.htaccess` file. In the example, `php` extension links are directed to `html` extensions with `301` code.", + "lesson.regexForSeo.htaccess.description": "다음은 `.htaccess` 파일에서 정규식을 사용하는 예제입니다. 예제에서 `php` 확장자를 가진 링크는 `301` 코드가 있는 `html` 링크로 연결되도록 합니다.", - "lesson.regexForSeo.outro.title": "Outro", - "lesson.regexForSeo.outro.description": "Regex knowledge is a skill that increases productivity on any platform that allows you to use regex. Once you start using it and improve this skill, it will help you complete many repetitive tasks faster and save time for other things. To better understand the basics of Regex, you can visit the `Regex 101` tutorial. You can use the `Playground` page to test your expressions on your texts." + "lesson.regexForSeo.outro.title": "마치며", + "lesson.regexForSeo.outro.description": "정규식은 정규식을 사용할 수 있는 모든 플랫폼에서 생산성을 높여줄 수 있는 기술입니다. 정규식 실력이 향상될 수록, 많은 반복작업들을 빨리 끝낼 수 있으며 시간을 절약하는데 도움이 될 것입니다. 정규식의 기본을 더 이해하기 위해서는 `Regex 101` 튜토리얼을 확인하면 됩니다. 또한 `Playground` 페이지에서 당신의 정규식 실력을 테스트해 볼 수 있습니다." } From eceb50368956c78d89d8fd6eb87347377ff5db8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aykut=20Karda=C5=9F?= Date: Sun, 13 Aug 2023 16:05:58 +0300 Subject: [PATCH 14/14] fix: remove description --- src/localization/ko/cheatsheet.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/localization/ko/cheatsheet.json b/src/localization/ko/cheatsheet.json index 93f02de8..4da1b61c 100644 --- a/src/localization/ko/cheatsheet.json +++ b/src/localization/ko/cheatsheet.json @@ -48,10 +48,10 @@ "cheatsheet.nonCapturingGroup.description": "참조할 수 없는 그룹식을 만듭니다.", "cheatsheet.lookarounds": "찾아보기", - "cheatsheet.positiveLookahead.title": "앞에서 부터 맞는것 찾기 (Positive Lookahead)", - "cheatsheet.negativeLookahead.title": "앞에서 부터 다른것 찾기 (Negative Lookahead)", - "cheatsheet.positiveLookbehind.title": "뒤에서 부터 맞는것 찾기 (Positive Lookbehind)", - "cheatsheet.negativeLookbehind.title": "뒤에서 부터 다른것 찾기 (Negative Lookbehind)", + "cheatsheet.positiveLookahead.title": "앞에서 부터 맞는것 찾기", + "cheatsheet.negativeLookahead.title": "앞에서 부터 다른것 찾기", + "cheatsheet.positiveLookbehind.title": "뒤에서 부터 맞는것 찾기", + "cheatsheet.negativeLookbehind.title": "뒤에서 부터 다른것 찾기", "cheatsheet.quantifiersAndAlternation": "수량 및 대체", "cheatsheet.plus.title": "더하기",