# 번역기 플러그인으로 번역 비용 추정하는 방법

**URL:** https://meta.discourse.org/t/how-to-estimate-the-cost-of-translation-using-the-translator-plugin/171120
**Category:** Support
**Tags:** translator
**Created:** [11월 19, 2020, 3:45오후 UTC](https://meta.discourse.org/t/how-to-estimate-the-cost-of-translation-using-the-translator-plugin/171120 "2020-11-19T15:45:01Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![loginerror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/loginerror/32/156605_2.png) [@loginerror](https://meta.discourse.org/u/loginerror)
#### Post date: [11월 19, 2020, 3:45오후 UTC](https://meta.discourse.org/t/how-to-estimate-the-cost-of-translation-using-the-translator-plugin/171120/1 "2020-11-19T15:45:01Z")

</div>

> 특정 범주로 기능을 제한할 이유는 없습니다…

다만, 토론이 매우 많고 모든 것을 번역하는 비용을 고려한다면 😅  
그래서 우리는 하나의 범주로 한정하는 방안을 고려하고 있었습니다.

> [@tobiaseigen](#):
>
> 선택한 인터페이스 언어가 게시글 작성 언어와 동일하면 번역이 제공되지 않습니다.

이 부분만으로도 첫 번째 게시글의 이 내용을 떠올리게 했습니다:  
 ![image](https://global.discourse-cdn.com/meta/original/3X/6/6/66c2799c069f8f67a1e689b43c3e1e1258bc7a65.png)

모든 범위에 대해 이 기능을 활성화할 경우 우리 포럼에는 상당한 비용이 발생할 것 같습니다 😅  
이 비용을 추정하는 방법에 대해 조언을 구할 수 있을까요? 글자 수에 기반한다고 생각하는데, 플러그인이 백엔드에서 어떻게 동작하는지는 잘 모르겠습니다. 언어 감지 비용을 줄이기 위해 각 게시글의 처음 X자만 가져오는 방식일까요?

따라서 우리는 우리의 사용 사례를 고려해, 영어 사용자들이 특정 한 범위의 비영어 게시글을 번역하여 영어로 답변할 수 있도록 하고, 그 후 토론 작성자가 이 답변들을 자신의 언어(=첫 번째 게시글의 언어)로 번역할 수 있도록 하는 방안을 생각하고 있습니다.

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [11월 19, 2020, 4:23오후 UTC](https://meta.discourse.org/t/how-to-estimate-the-cost-of-translation-using-the-translator-plugin/171120/2 "2020-11-19T16:23:56Z")

</div>

비용 문제는 제가 고려하지 못했던 좋은 지적입니다. 저희는 Microsoft의 번역 서비스를 사용하는데, 지금까지 별도로 비용을 지불한 적이 없습니다. 다만 이 서비스를 설정한 사이트가 비교적 규모가 작기 때문일 수도 있습니다. 범주별로 번역을 제한하는 기능은 실제로 유효한 기능 요청일 수 있겠네요.

개인적으로도 번역기에 정확히 어떤 내용이 전송되는지, 실제로 어떻게 작동하는지에 대해 완전히 이해한 적이 없습니다. 그냥 "동작"하니까요.

---

<div class="post-metadata">

### Author: ![lee-dohm](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lee-dohm/32/113511_2.png) [@lee-dohm](https://meta.discourse.org/u/lee-dohm)
#### Post date: [11월 23, 2020, 7:00오후 UTC](https://meta.discourse.org/t/how-to-estimate-the-cost-of-translation-using-the-translator-plugin/171120/3 "2020-11-23T19:00:00Z")

</div>

다음은 내 포럼에 대한 비용 추정 방법을 설명한 것입니다. 모든 쿼리는 [Data Explorer](https://meta.discourse.org/t/32566?silent=true)를 위한 것입니다.

## 게시글당 평균 글자 수 추정

마지막으로 확인했을 때, 플러그인은 번역 서비스에 cooked 텍스트를 전송합니다.

```sql
SELECT AVG(LENGTH(p.cooked))
  FROM posts AS p
  JOIN topics AS t ON p.topic_id = t.id
 WHERE t.archetype != 'private_message'

```

## 사용자 방문당 읽은 게시글 수 추정

상대적으로 최근의 추정치를 얻기 위해 최근 30일 데이터를 사용했습니다.

```sql
-- [params]
-- int :from_days_ago = 0
-- int :duration_days = 30

WITH t AS (
    SELECT CURRENT_TIMESTAMP - ((:from_days_ago + :duration_days) * (INTERVAL '1 days')) AS START,
        CURRENT_TIMESTAMP - (:from_days_ago * (INTERVAL '1 days')) AS END
)

SELECT AVG(posts_read)
  FROM user_visits
  JOIN t ON visited_at > t.START AND visited_at < t.END

```

## 최근 30일간의 사용자 방문 횟수

```sql
-- [params]
-- int :from_days_ago = 0
-- int :duration_days = 30

WITH t AS (
    SELECT CURRENT_TIMESTAMP - ((:from_days_ago + :duration_days) * (INTERVAL '1 days')) AS START,
        CURRENT_TIMESTAMP - (:from_days_ago * (INTERVAL '1 days')) AS END
)

SELECT COUNT(1)
  FROM user_visits
  JOIN t ON visited_at > t.START AND visited_at < t.END

```

## 최근 30일간 읽은 글자 수 추정

앞서 계산한 세 수치를 곱하면 최근 30일간 읽힌 게시글의 cooked 글자 수를 추정할 수 있습니다.

## 비(非)주요 언어 사용자 수 추정

우리 포럼의 주요 언어가 영어이므로, Google Analytics를 사용하여 브라우저가 영어 이외의 언어로 설정된 사용자의 비율을 확인했습니다.

## 최종 추정치

그 후, 현재 비영어권 방문자 비율을 '일반적인 경우’로 가정하여 하한/중간/상한 추정을 수행했습니다. 하한 추정치는 이 비율을 절반으로 줄이고, 상한 추정치는 두 배로 늘렸습니다. 이를 통해 30일간의 글자 수 하한/중간/상한 값을 산출한 뒤, 번역 서비스의 X글자당 단가와 곱했습니다.

도움이 되길 바랍니다!

---

<div class="post-metadata">

### Author: ![osioke](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/osioke/32/238946_2.png) [@osioke](https://meta.discourse.org/u/osioke)
#### Post date: [11월 24, 2020, 6:13오전 UTC](https://meta.discourse.org/t/how-to-estimate-the-cost-of-translation-using-the-translator-plugin/171120/4 "2020-11-24T06:13:33Z")

</div>

이 답변은 정말 멋져요! @lee-dohm 님의 답변이 매우 상세해서 번역기 토픽에서 따로 빼왔어요. 삭제되지 않고 다른 사람들에게도 유용하게 쓰이길 바라며요.

---

<div class="post-metadata">

### Author: ![loginerror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/loginerror/32/156605_2.png) [@loginerror](https://meta.discourse.org/u/loginerror)
#### Post date: [11월 24, 2020, 9:07오전 UTC](https://meta.discourse.org/t/how-to-estimate-the-cost-of-translation-using-the-translator-plugin/171120/5 "2020-11-24T09:07:42Z")

</div>

이 가이드에 감사드립니다. 두 가지 질문이 있습니다:

- 다음 내용을 근거로 할 때:

- 이 기반에서 플러그인을 처음 출시했을 때 눈에 띄는 급증을 목격했습니까?  
 ![image](https://global.discourse-cdn.com/meta/original/3X/b/8/b8d4d7b2e728c9786191b0a96976af598fe360b3.png)

---

<div class="post-metadata">

### Author: ![lee-dohm](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lee-dohm/32/113511_2.png) [@lee-dohm](https://meta.discourse.org/u/lee-dohm)
#### Post date: [11월 24, 2020, 6:19오후 UTC](https://meta.discourse.org/t/how-to-estimate-the-cost-of-translation-using-the-translator-plugin/171120/6 "2020-11-24T18:19:34Z")

</div>

> [@loginerror](#):
>
> 이 기반의 플러그인을 처음 출시했을 때 상당한 스파이크를 확인하셨나요?

출시를 결정하고 나서 트래킹을 하지 않았기 때문에, 그것이 어떤 영향을 미쳤는지는 잘 모르겠습니다. 하지만 네, 비용 추정치에 쿼리를 포함하는 것이 좋겠습니다 👍
