Microsoft 서비스를 사용하는 Translator 플러그인을 사용하고 있습니다. 게시글이 충분히 길 경우, 다음과 같은 오류로 번역이 되지 않습니다:
이 게시글은 번역기로 번역할 수 없을 정도로 너무 깁니다.
이 문제를 우회하기 위해 단락별 번역 기능을 구현해 주실 수 있을까요?
Microsoft 서비스를 사용하는 Translator 플러그인을 사용하고 있습니다. 게시글이 충분히 길 경우, 다음과 같은 오류로 번역이 되지 않습니다:
이 게시글은 번역기로 번역할 수 없을 정도로 너무 깁니다.
이 문제를 우회하기 위해 단락별 번역 기능을 구현해 주실 수 있을까요?
그것은 Google 번역의 일반적인 동작이며, 단어 한도가 500단어 정도라고 생각합니다.
매번 그보다 큰 콘텐츠를 처리해야 한다면, 몇 가지 옵션을 제안합니다:
어떤 방법이 효과적이었는지 알려주세요.
저는 Google이 아니라 Microsoft API를 사용합니다.
Microsoft는 단일 요청당 10,000자 제한이 있는 것 같습니다: Service limits - Translator - Foundry Tools | Microsoft Learn
가장 쉬운 방법은 단락(“\r\n\r\n” 또는 <p>) 기준으로 게시물을 분할하는 것일 텐데, 단락이 10,000자를 초과하지 않는다고 가정할 수 있을까요?
저는 Microsoft Translate를 사용해 본 적이 없어서 그 부분은 당신보다 뒤처져 있습니다. 다만 이론적으로는 방법이 같을 것이라고 추측합니다.
문단 구분자를 파싱하는 당신의 아이디어는 좋습니다. 다만 모든 문서가 CR/LF 줄바꿈을 사용한다고 가정하기는 어렵습니다. 'nix 계열은 LF 문자만 사용하고, Mac은 CR 문자만, Windows는 둘 다 사용합니다. 다른 문서들은 EOL 문자로 널 바이트(null byte)를 사용할 수도 있습니다.
유니코드는 모든 문자가 2바이트 길이를 가지기 때문에 그 자체로 문제를 야기합니다.
가능한 해결책: 첫 번째 문장이나 두 번째 문장의 줄바꿈을 확인하고 그 값을 저장한 뒤, 문서를 파싱하기 전에 모든 줄바꿈을 "\n"으로 변환합니다. 문서 처리가 완료된 후에는 원래의 올바른 줄바꿈으로 자동으로 되돌릴 수 있습니다.
하나의 방법은 10,000단어까지 앞으로 스캔한 뒤, 문단 구분자를 찾기 위해 뒤로 스캔하는 것입니다. 현재 블록의 머리 부분에 헤드 포인터를 놓고 앞으로 스캔하다가, 10,000단어 이전의 마지막 문단 구분자를 찾으면 테일 포인터를 배치합니다. 해당 블록을 잘라내서 번역하고 결과 문서로 이동한 뒤, 헤드 포인터를 테일 포인터 위치로 이동시키고 이 과정을 반복합니다.
==============================
부연 설명으로, 번역 소프트웨어가 형편없는 경우가 많은 이유는 번역이 종종 문맥에 크게 의존하거나, 속어를 포함하거나, 전문 용어를 사용하기 때문입니다. 마찬가지로 특정 직업이나 기술에 고유한 기술 용어나 단어는 많은 경우 번역되어서는 안 되는데, 이러한 것들이 엉망으로 번역되는 경우가 많습니다. 법률, 의학, 그리고 엔지니어링/기술 문서가 대표적인 예입니다.
저는 복잡한 의학 문서(어떤 사람의 뇌 수술 기록)를 러시아어로 번역하기 위해 Google과 Yandex라는 두 가지 다른 번역기를 사용해 보았습니다. 두 번역의 결과는 읽을 수 있는 문서보다는 더러운 라자냐에 가까웠습니다!
@jharris1993, 이 기능이 제가 구현하라는 제안을 하는 것으로 이해했습니다. 불행히도 저는 Ruby 경험이 없어서, 경험 있는 사람이 하는 것보다 훨씬 더 오래 걸릴 것입니다.
물론 어찌어찌 해볼 수는 있지만, 그렇게 만든 코드는 머지되지 않을 것입니다.
제 포럼에서 가장 많이 요청되는 번역은 기술 관련 게시물의 러시아어에서 영어로 번역하는 것입니다. 마이크로소프트는 이 부분에서 꽤 잘하고 있습니다.
멋진 비니들이네요!
어떤 포럼인지 여쭤봐도 될까요? 만약 영어에서 러시아어로 번역할 수 있다면, 다음에 길고 복잡한 문서를 보내서 사용해 볼지도 모르겠습니다!
번역은 discourse-translator 플러그인을 통해 수행됩니다. 이 주제를 플러그인 카테고리에 생성한 줄 알았는데, 카테고리가 지정되지 않은 상태로 남아 있습니다.