원문 캡처 · swiftling.pro
원문 캡처 · swiftling.pro

브루노 코스(Bruno Kos)는 SwiftLing Pro의 명령줄 기능으로 웹사이트 54페이지와 카테고리를 독일어·프랑스어·크로아티아어·스페인어·아랍어로 번역했다. 다섯 언어 작업을 동시에 실행해 가장 오래 걸린 크로아티아어 기준 12분 33초가 걸렸으며, 법률 페이지는 기계 번역에서 제외했다.

사용한 명령은 wp swiftling translate --all --kind=post --lang=de --again=machine --user=admin이다. 실제로는 법률 페이지 두 개를 제외하려고 --all 대신 페이지 목록을 넣었다. --again=machine은 기존 기계 번역을 다시 번역하는 옵션으로, 앞서 DeepL로 번역했던 내용을 OpenAI 번역으로 바꾸는 데 썼다. 옵션을 빼면 아직 번역되지 않은 텍스트만 채운다. 브루노 코스는 OpenAI와 gpt-6-sol을 선택했고, 이전 DeepL 번역보다 OpenAI 번역이 낫다고 판단했다.

번역 대상은 5,870개 텍스트, 전송한 문자는 622,050자였다. 가장 빨랐던 프랑스어는 9분 47초, 가장 느렸던 크로아티아어는 12분 33초가 걸렸다. 다섯 언어를 차례로 처리했다면 각 작업 시간을 합쳐 약 55분이 걸렸을 것으로 추산했다.

OpenAI 사용량 페이지에는 해당 날짜 전체 사용량이 4.67달러로 표시됐다. 여기에는 번역 작업 외에 더 비싼 모델 gpt-6-astra로 진행한 사전 테스트도 포함돼 있어, 사이트 전체 번역 비용은 4.67달러보다 적고 브루노 코스는 약 3달러로 추정했다. 다만 사용량을 따로 분리하지 않아 정확한 비용은 확인하지 못했다.

이미지 주소와 코드 샘플은 번역 대상이 아니어서 원문을 유지했다. 아랍어 표시에는 워드프레스의 아랍어 언어 팩이 필요하다. 홈페이지와 머리글·바닥글은 이전에 DeepL로 번역한 뒤 다시 처리하지 않았다. 페이지 로드 후 스크립트가 만드는 텍스트도 명령이 스크립트를 실행하지 않기 때문에 찾아내지 못한다.

다섯 작업을 동시에 실행하면서 SwiftLing의 검색 색인 행이 중복 기록되고 사용량 집계가 일부 누락되는 문제가 드러났다. 브루노 코스는 플러그인을 수정해 색인 행을 삽입하는 대신 교체하고, 각 프로세스가 다른 프로세스의 집계 기록을 덮어쓰지 않도록 했다고 밝혔다. 언어별로 차례로 실행하면 두 문제가 발생하지 않았다고 덧붙였다.

번역은 아직 사람이 검토하지 않은 기계 번역이며, SwiftLing은 편집기에서 검토할 수 있도록 이를 표시한다. 브루노 코스는 아랍어를 읽지 못해 원어민의 검토가 필요하다고 밝혔다. 법률 페이지도 의도적으로 번역하지 않았다.

명령은 WP-CLI 문서에서 확인할 수 있으며, 문제 신고는 GitHub에서 받는다.