diff --git a/CSharp-Multilingual-Markdown-Generator/.vs/CSharp-Multilingual-Markdown-Generator/FileContentIndex/d9b69bb9-c84c-45c4-b25a-9194a68d08cc.vsidx b/CSharp-Multilingual-Markdown-Generator/.vs/CSharp-Multilingual-Markdown-Generator/FileContentIndex/d9b69bb9-c84c-45c4-b25a-9194a68d08cc.vsidx new file mode 100644 index 0000000..746aa99 Binary files /dev/null and b/CSharp-Multilingual-Markdown-Generator/.vs/CSharp-Multilingual-Markdown-Generator/FileContentIndex/d9b69bb9-c84c-45c4-b25a-9194a68d08cc.vsidx differ diff --git a/CSharp-Multilingual-Markdown-Generator/.vs/CSharp-Multilingual-Markdown-Generator/FileContentIndex/read.lock b/CSharp-Multilingual-Markdown-Generator/.vs/CSharp-Multilingual-Markdown-Generator/FileContentIndex/read.lock new file mode 100644 index 0000000..e69de29 diff --git a/CSharp-Multilingual-Markdown-Generator/.vs/CSharp-Multilingual-Markdown-Generator/v17/.suo b/CSharp-Multilingual-Markdown-Generator/.vs/CSharp-Multilingual-Markdown-Generator/v17/.suo new file mode 100644 index 0000000..599a2f0 Binary files /dev/null and b/CSharp-Multilingual-Markdown-Generator/.vs/CSharp-Multilingual-Markdown-Generator/v17/.suo differ diff --git a/CSharp-Multilingual-Markdown-Generator/MarkDownParser.cs b/CSharp-Multilingual-Markdown-Generator/MarkDownParser.cs index 1b0b69f..e5c46d1 100644 --- a/CSharp-Multilingual-Markdown-Generator/MarkDownParser.cs +++ b/CSharp-Multilingual-Markdown-Generator/MarkDownParser.cs @@ -43,29 +43,41 @@ public enum LanguageType } private const string KeyLanguageStart = ""; - private const string KeyKo = ""; - private const string KeyJp = ""; - private const string KeyFr = ""; + private const string KeyEn = ""; + private const string KeyKr = ""; + private const string KeyJp = ""; + private const string KeyFr = ""; + + private const string KeyEnFull = ""; + private const string KeyKrFull = ""; + private const string KeyJpFull = ""; + private const string KeyFrFull = ""; + private const string KeyCommon = ""; private const string KeyIgonre = ""; private const string KeyLink = ""; + private const string KeyIgonoreParse = "```"; + private Dictionary _usingLanguage = new Dictionary(); private Dictionary _dataDic = new Dictionary(); private Dictionary _infoDic = new Dictionary(); private string _baseFileName; + private bool _igonoreParse; + + private void Init() { + _igonoreParse = false; _infoDic.Clear(); _usingLanguage.Clear(); _dataDic.Clear(); - _infoDic.Add(LanguageType.Kr, new LanguageInformation(LanguageType.Kr, "ko-KR", "한국어")); - _infoDic.Add(LanguageType.En, new LanguageInformation(LanguageType.En, "en-US", "English")); - _infoDic.Add(LanguageType.Jp, new LanguageInformation(LanguageType.Jp, "ja-JP", "日本語")); - _infoDic.Add(LanguageType.Fr, new LanguageInformation(LanguageType.Fr, "fr-FR", "Français")); + _infoDic.Add(LanguageType.Kr, new LanguageInformation(LanguageType.Kr, "kr", "한국어")); + _infoDic.Add(LanguageType.En, new LanguageInformation(LanguageType.En, "en", "English")); + _infoDic.Add(LanguageType.Jp, new LanguageInformation(LanguageType.Jp, "ja", "日本語")); + _infoDic.Add(LanguageType.Fr, new LanguageInformation(LanguageType.Fr, "fr", "Français")); } @@ -114,6 +126,24 @@ public void GenerateDocument(string filePath, string baseFileName, LanguageType private CommandType ParaseCommand(string line) { + if(line == KeyIgonoreParse) + { + if(!_igonoreParse) + { + _igonoreParse = true; + return CommandType.None; + } + else + { + _igonoreParse = false; + } + } + + if(_igonoreParse) + { + return CommandType.None; + } + if (line == KeyIgonre) { return CommandType.Igonore; @@ -137,15 +167,19 @@ private LanguageType ParseLanguage(string line) switch (line) { case KeyEn: + case KeyEnFull: return LanguageType.En; - case KeyKo: + case KeyKr: + case KeyKrFull: return LanguageType.Kr; case KeyJp: + case KeyJpFull: return LanguageType.Jp; case KeyFr: + case KeyFrFull: return LanguageType.Fr; case KeyCommon: @@ -163,25 +197,49 @@ private void InitializeLanguage(string[] lines) { string line = readLine.Replace(" ", "").ToLower(); + if (line == KeyIgonoreParse) + { + if (!_igonoreParse) + { + _igonoreParse = true; + continue; + } + else + { + _igonoreParse = false; + } + } + + if(_igonoreParse) + { + continue; + } + switch (line) { case KeyEn: + case KeyEnFull: _usingLanguage[LanguageType.En] = true; break; - case KeyKo: + case KeyKr: + case KeyKrFull: _usingLanguage[LanguageType.Kr] = true; break; case KeyJp: + case KeyJpFull: _usingLanguage[LanguageType.Jp] = true; break; case KeyFr: + case KeyFrFull: _usingLanguage[LanguageType.Fr] = true; break; } } + + _igonoreParse = false; } private void ParseLines(string[] lines) diff --git a/README.base.md b/README.base.md new file mode 100644 index 0000000..eea1b5f --- /dev/null +++ b/README.base.md @@ -0,0 +1,152 @@ +# CSharp-Multilingual-Markdown-Generator + + + +다국어 마크다운 문서 생성기 + +이 프로젝트는 ryul1206님의 multilingual-markdown 프로젝트를 기반으로 만들어 졌습니다. + +Multilingual Markdown Generator + +This project is based on ryul1206's multilingual-markdown project. + + +[Link : https://github.com/ryul1206/multilingual-markdown ](https://github.com/ryul1206/multilingual-markdown) + + +## 개요 +코드 키워드를 이용해 각 언어별 문서를 생성해줍니다. + +## Overview +It creates documents for each language using code keywords. + + +## 사용법 + +## How to Use + +### 파일 규칙 + +### File Rule + +{FileName}.base.md 으로 되어 있어야 합니다. 예시는 [example.base.md](example/example.base.md)을 보시면 됩니다 + +ex : Readme.base.md + +It should be {FileName}.base.md . For an example, see this documnet [example.base.md](example/example.base.md) + +ex : Readme.base.md + + +### 문서 생성 + +### Generate Documnet + +문서 생성 / Generate 버튼을 이용해 파일을 선택후 만듭니다 + +Use '문서 생성 / Generate' button to select a file and create it + + +### 주 언어 설정 + +### Select Main Language + +주 언어 / Main Language 의 라디오 버튼을 이용해 주 언어를 설정합니다. +주 언어로 선택된 언어는 파일 이름에서 .base. 가 제거되어서 나옵니다 + +(ex :Readme.base.md -> Readme.md) + +Use '주 언어 / Main Language' radio button to set the primary language. +The language selected as the primary language is the .base. is removed and comes out + +(ex :Readme.base.md -> Readme.md) + + + +## 코드 키워드 + +## Code Keyword + +**언어 키워드** + + +**Language Keyword** + + +언어별 텍스트 영역을 구분하는 키워드입니다. +언어 키워드를 인식한 후 다음 언어 키워드나 공통 영역 키워드를 만날때가지 해당 언어로 처리됩니다. + +아래는 현재 지원하는 언어입니다 + +A keyword that separates language-specific text areas. +After recognizing a language keyword, it is processed in that language until the next language keyword or common area keyword is encountered. + +currently supported language list + +``` + + + + +``` + + +**공통 영역** + + +**Common Area** + + +모든 언어에 공통으로 들어갈 텍스트 영역을 구분하는 키워드입니다. + +A keyword that delimits a text area common to all languages. + + +``` + +``` + + + +**무시 영역** + + +**Igonore Area** + + +주석용으로 쓰는 영역입니다. 이 영역에 지정된 텍스트는 파일에 포함되지 않습니다 + +This area is used for comments. Text specified in this area will not be included in the file + + +``` + +``` + + + +**언어 링크 키워드** + + +**Language Link** + + + +이 키워드가 있는 곳는 언어별 문서 링크 텍스트로 대체됩니다. 문서에 포함된 언어를 자동으로 링크해 줍니다 + +Wherever this keyword appears, it will be replaced with the language-specific document link text. +Automatically links to languages embedded in documents + + +``` + +``` + + + + + + + + + diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..0df5d28 --- /dev/null +++ b/README.en.md @@ -0,0 +1,80 @@ +# CSharp-Multilingual-Markdown-Generator + +🌏[한국어](README.kr.md) | [English](README.en.md) + + +Multilingual Markdown Generator + +This project is based on ryul1206's multilingual-markdown project. + +[Link : https://github.com/ryul1206/multilingual-markdown ](https://github.com/ryul1206/multilingual-markdown) + +## Overview +It creates documents for each language using code keywords. + +## How to Use +### File Rule +It should be {FileName}.base.md . For an example, see this documnet [example.base.md](example/example.base.md) + +ex : Readme.base.md + +### Generate Documnet +Use '문서 생성 / Generate' button to select a file and create it + +### Select Main Language +Use '주 언어 / Main Language' radio button to set the primary language. +The language selected as the primary language is the .base. is removed and comes out + +(ex :Readme.base.md -> Readme.md) + + +## Code Keyword +**Language Keyword** + +A keyword that separates language-specific text areas. +After recognizing a language keyword, it is processed in that language until the next language keyword or common area keyword is encountered. + +currently supported language list +``` + + + + +``` + +**Common Area** + +A keyword that delimits a text area common to all languages. + +``` + +``` + + +**Igonore Area** + +This area is used for comments. Text specified in this area will not be included in the file + +``` + +``` + + +**Language Link** + + +Wherever this keyword appears, it will be replaced with the language-specific document link text. +Automatically links to languages embedded in documents + +``` + +``` + + + + + + + + + diff --git a/README.kr.md b/README.kr.md new file mode 100644 index 0000000..c19000a --- /dev/null +++ b/README.kr.md @@ -0,0 +1,70 @@ +# CSharp-Multilingual-Markdown-Generator + +🌏[한국어](README.kr.md) | [English](README.en.md) + + +다국어 마크다운 문서 생성기 + +이 프로젝트는 ryul1206님의 multilingual-markdown 프로젝트를 기반으로 만들어 졌습니다. + +[Link : https://github.com/ryul1206/multilingual-markdown ](https://github.com/ryul1206/multilingual-markdown) + +## 개요 +코드 키워드를 이용해 각 언어별 문서를 생성해줍니다. +## 사용법 +### 파일 규칙 +{FileName}.base.md 으로 되어 있어야 합니다. 예시는 [example.base.md](example/example.base.md)을 보시면 됩니다 + +ex : Readme.base.md +### 문서 생성 +문서 생성 / Generate 버튼을 이용해 파일을 선택후 만듭니다 +### 주 언어 설정 +주 언어 / Main Language 의 라디오 버튼을 이용해 주 언어를 설정합니다. +주 언어로 선택된 언어는 파일 이름에서 .base. 가 제거되어서 나옵니다 + +(ex :Readme.base.md -> Readme.md) +## 코드 키워드 +**언어 키워드** + +언어별 텍스트 영역을 구분하는 키워드입니다. +언어 키워드를 인식한 후 다음 언어 키워드나 공통 영역 키워드를 만날때가지 해당 언어로 처리됩니다. + +아래는 현재 지원하는 언어입니다 +``` + + + + +``` + +**공통 영역** + +모든 언어에 공통으로 들어갈 텍스트 영역을 구분하는 키워드입니다. +``` + +``` + + +**무시 영역** + +주석용으로 쓰는 영역입니다. 이 영역에 지정된 텍스트는 파일에 포함되지 않습니다 +``` + +``` + + +**언어 링크 키워드** + +이 키워드가 있는 곳는 언어별 문서 링크 텍스트로 대체됩니다. 문서에 포함된 언어를 자동으로 링크해 줍니다 +``` + +``` + + + + + + + + + diff --git a/README.md b/README.md index 57e5453..c19000a 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,28 @@ # CSharp-Multilingual-Markdown-Generator + +🌏[한국어](README.kr.md) | [English](README.en.md) + + 다국어 마크다운 문서 생성기 이 프로젝트는 ryul1206님의 multilingual-markdown 프로젝트를 기반으로 만들어 졌습니다. [Link : https://github.com/ryul1206/multilingual-markdown ](https://github.com/ryul1206/multilingual-markdown) - ## 개요 코드 키워드를 이용해 각 언어별 문서를 생성해줍니다. - - ## 사용법 ### 파일 규칙 {FileName}.base.md 으로 되어 있어야 합니다. 예시는 [example.base.md](example/example.base.md)을 보시면 됩니다 ex : Readme.base.md - ### 문서 생성 문서 생성 / Generate 버튼을 이용해 파일을 선택후 만듭니다 - - ### 주 언어 설정 주 언어 / Main Language 의 라디오 버튼을 이용해 주 언어를 설정합니다. 주 언어로 선택된 언어는 파일 이름에서 .base. 가 제거되어서 나옵니다 (ex :Readme.base.md -> Readme.md) - - ## 코드 키워드 **언어 키워드** @@ -60,7 +56,6 @@ ex : Readme.base.md **언어 링크 키워드** 이 키워드가 있는 곳는 언어별 문서 링크 텍스트로 대체됩니다. 문서에 포함된 언어를 자동으로 링크해 줍니다 - ``` ``` diff --git a/example/example.base.md b/example/example.base.md index 323b589..0f71f05 100644 --- a/example/example.base.md +++ b/example/example.base.md @@ -9,7 +9,6 @@ Hear Ye! Hear Ye! This project is based on ryul1206's multilingual-markdown project. - [Link : https://github.com/ryul1206/multilingual-markdown ](https://github.com/ryul1206/multilingual-markdown)