반응형
프로젝트에서 우클릭 -> Nuget 패키지 관리
DeepL.net 찾아서 설치
using DeepL;
// api key
Translator translator = new Translator("your deepL api key here");
api key 를 받아야되는데,
아래 DeepL 사이트에 가입하면 확인 가능합니다.
- 무료 가입 가능
- 카드 정보 입력 필수 ( 결제되지 않음 )
- 계정 -> 계정 탭 -> 페이지 최하단에 key 확인
기본적인 코드
var translatedText = await translator.TranslateTextAsync(
"Hello, world!",
LanguageCode.English,
LanguageCode.Korean);
Console.WriteLine(translatedText); // "안녕하세요, 세상 여러분!"
await !!
사용 예제는 [여기]에 더 자세히 나와있지만 async만으로 호출이 가능합니다.
async 가 아닌 함수에서 호출하고 동기식으로 결과를 받아오려면,
동기식으로 사용하는 방법
using DeepL;
using System.Threading.Tasks;
public void test(){
task = Task.Run(async () => await runTranslator("Hello, World!!", LanguageCode.English, LanguageCode.Korean));
task.Wait(); // 기다림. 이거 없으면 코드 계속 실행
Console.WriteLine(task.Result); // "안녕하세요, 세상 여러분!"
}
async public Task<string> runTranslator(string text, string from, string to)
{
try
{
DeepL.Model.TextResult textResult = await translator.TranslateTextAsync(text, from, to);
return textResult.Text;
}
catch (Exception ex)
{
// 오류처리는 self
throw new Exception($"deepL error : {ex.Message}");
}
}
deepL 의 translateTextAsync 를 호출 할 함수를 하나 만들고 (runTranslator)
test() 함수와 같이 비동기 함수가 아닌곳에서 Task 를 사용하여 호출하는 방법입니다.
다른 방법도 많이 있습니다.
상황에 맞게 쓰세요~
728x90
반응형
'C# 기술' 카테고리의 다른 글
[Selenium] input text 입력 및 삭제 방법 (0) | 2023.02.25 |
---|---|
[Selenium] Page Load Timeout 설정하기 (0) | 2022.09.25 |
[C#] ChromeDriver only supports characters in the bmp 해결하기 (0) | 2022.04.06 |
[C#] Callback, Action으로 간단히 사용하기 (delegate 사용안함) (0) | 2021.11.25 |
[C#] 크롤링에 유용한 라이브러리 HtmlAgilityPack (0) | 2021.10.31 |
댓글