diff --git a/src/localization/bn/cheatsheet.json b/src/localization/bn/cheatsheet.json new file mode 100644 index 00000000..98f55cc7 --- /dev/null +++ b/src/localization/bn/cheatsheet.json @@ -0,0 +1,70 @@ +{ + "cheatsheet.section.title": "Regex Cheatsheet", + "cheatsheet.section.description": "Explore all Regex patterns and symbols with the Regex cheatsheet.", + + "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": "Asterisk", + "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." +} diff --git a/src/localization/bn/general.json b/src/localization/bn/general.json new file mode 100644 index 00000000..73ce436a --- /dev/null +++ b/src/localization/bn/general.json @@ -0,0 +1,39 @@ +{ + "general.prev": "পূর্ববর্তি", + "general.next": "পরবর্তী", + "general.result": "ফলাফল", + "general.regex": "রিজেক্স", + "general.text": "টেক্সট", + "general.watch": "দেখুন", + "general.start": "শুরু", + "general.continue": "চালিয়ে যান", + "general.completedStep": "ধাপ সম্পন্ন!", + "general.hintQuestion": "উত্তর দেখুন", + "general.reportStep": "সমস্যা জানান", + "general.startLearning": "শেখা শুরু করুন", + "general.comingSoon": "আসছে", + "general.becomeSponsor": "স্পনসর হওন", + "general.learn": "শিখুন", + "general.playground": "প্লেগ্রাউন্ড", + "general.cheatsheet": "চিটশিট", + "general.ourSponsors": "আমাদের স্পনসরগণ", + "general.share": "শেয়ার", + "general.shareLinkCopied": "শেয়ার লিংক কপি হয়েছে!", + "general.somethingWentWrong": "কোনো গন্ডগোল হয়েছে!", + + "notFound.intro": "আপনি যে পেজটি খুঁজছেন, সেটি পাওয়া যায়নি", + "notFound.button": "নীড়পাতায় ফিরে যান", + + "page.landing.title": "Regex Learn - শিখুন ধাপে ধাপে, শুন্য থেকে এডভান্সড পর্যন্ত", + "page.learn.title": "Regex Learn - রিজেক্স ইন্টারএকটিভ কোর্স", + "page.cheatsheet.title": "Regex Learn - রিজেক্স চিটশিট", + "page.playground.title": "Regex Learn - প্লেগ্রাউন্ড", + "page.404.title": "Regex Learn - পাওয়া যায়নি", + + "page.landing.description": "রিজেক্স শিখুন ইন্টারেকটিভ উপায়ে, নিজের মত চর্চা করুন এবং অন্যদের সাথে শেয়ার করুন আপনার রিজেক্স।", + "page.learn.description": "ধাপে ধাপে রিজেক্স শিখুন। এই রিজেক্স ইন্টারএকটিভ টিউটোরিয়ালটির মাধ্যমে আপনি দ্রুততর ও সহজতরভাবে রিজেক্স শিখতে পারবেন।", + "page.cheatsheet.description": "কিছু কিছু সময় আপনাকে রিজেক্স মনে করতে হবে। এই চিটশিটের মাধ্যমে আপনি সহজে রিজেক্স বুঝতে ও মনে করতে পারবেন।", + "page.playground.description": "প্লেগ্রাউন্ডের মাধ্যমে আপনি সহজেই আপনার রিজেক্স প্যাটার্ন অনলাইনে তৈরি করতে পারবেন।", + + "learn.safari.unsupportWarning": "এই ধাপের রিজেক্স কিছু কিছু ব্রাউজারে সমর্থিত নয়। এই ধাপ পার হতে যদি আপনি সমস্যা বোধ করেন, তাহলে এখানে ক্লিক করতে পারেন।" +} diff --git a/src/localization/bn/index.js b/src/localization/bn/index.js new file mode 100644 index 00000000..a30a668d --- /dev/null +++ b/src/localization/bn/index.js @@ -0,0 +1,17 @@ +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, + ...learn, + ...lessons, + ...regexForSeo, +}; + +export default messages; diff --git a/src/localization/bn/landing.json b/src/localization/bn/landing.json new file mode 100644 index 00000000..0f97b7d4 --- /dev/null +++ b/src/localization/bn/landing.json @@ -0,0 +1,26 @@ +{ + "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.imageAltText": "Illustration of a relaxed man with his legs on the table.", + + "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.imageAltText": "Illustration of a mountain with a flag on its summit.", + + "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.cheatsheet.imageAltText": "Illustration of a man viewing pages through binoculars.", + + "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.", + "section.playground.imageAltText": "Illustration of a cat about to drop a full glass.", + + "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.practice.imageAltText": "Illustration of a woman taking notes from a book.", + + "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/bn/learn.json b/src/localization/bn/learn.json new file mode 100644 index 00000000..c2d6cc72 --- /dev/null +++ b/src/localization/bn/learn.json @@ -0,0 +1,163 @@ +{ + "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. Type a period `.` in the Regex field to proceed.", + + "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 `*` after a character to indicate that the character may either 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 `+` after a character. 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 after a character. 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, at the end we write curly braces `{n}` along with how many times we want it to occur. 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, immediately after the character we write at least how many times we want it to occur followed by a comma `,` and wrapped 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 one or more.", + + "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 `{}` that will find texts containing `4` numbers side by side. Remember that the range `[0-9]` will match a single digit.", + + "examples.quantifierMin.title": "Practice: Curly Braces - 2", + "examples.quantifierMin.description": "Write the expression using curly braces `{}` that will find texts containing at least `2` numbers side by side.", + + "examples.quantifierRange.title": "Practice: Curly Braces - 3", + "examples.quantifierRange.description": "Write the expression using curly braces `{}` that will find texts containing at least `1` and at most `4` numbers side by side.", + + "steps.grouping.title": "Parentheses `( )`: Grouping", + "steps.grouping.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.nonCapturingGrouping.title": "Parentheses `(?: )`: Non-capturing Grouping", + "steps.nonCapturingGrouping.description": "You can group an expression and ensure that it is not captured by references. For example, below are two groups. However, the first group reference we denote with `\\1` actually indicates the second group, as the first is a non-capturing 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 `rat`. Add another pipe sign `|` to the end of the expression and type `dog` 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 are preceded by `$`, we need to write the positive lookbehind expression `(?<=)` before our expression. Add `\\$` after the `=` sign inside the parenthesis.", + + "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 are not preceded by `$`, we need to write the negative lookbehind `(?<!)` before our expression. Add `\\$` after the `!` inside the parenthesis.", + + "steps.flags.title": "Flags", + "steps.flags.description": "Flags change the output of the expression. That's why flags are also called `modifiers`. Flags determine 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 to identify patterns at the end of lines work 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-sensitivity 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." +} diff --git a/src/localization/bn/lessons.json b/src/localization/bn/lessons.json new file mode 100644 index 00000000..e218a553 --- /dev/null +++ b/src/localization/bn/lessons.json @@ -0,0 +1,7 @@ +{ + "lessons.regex101.title": "Regex 101 - BN", + "lessons.regex101.description": "এই টিউটোরিয়ালটির মাধ্যমে আপনি রিজেক্সের বেসিক শিখতে পারবেন।", + + "lessons.regexForSeo.title": "Regex for SEO - BN", + "lessons.regexForSeo.description": "এই টিউটোরিয়ালটিতে SEO এর জন্য কোথায় এবং কিভাবে রিজেক্স ব্যবহার করতে হয়, তা শিখতে পারবেন।" +} diff --git a/src/localization/bn/lessons/regexForSeo.json b/src/localization/bn/lessons/regexForSeo.json new file mode 100644 index 00000000..bcf22cc2 --- /dev/null +++ b/src/localization/bn/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." +} diff --git a/src/localization/index.ts b/src/localization/index.ts index 16a32e6a..d6db28b5 100644 --- a/src/localization/index.ts +++ b/src/localization/index.ts @@ -7,6 +7,7 @@ export const langNames = { ru: '🇷🇺', 'zh-cn': '🇨🇳', uk: '🇺🇦', + bn: '🇧🇩', }; export const defaultLocale = 'en';