Como estimar o custo de tradução usando o plugin tradutor

Não há razão para tentar limitar o recurso a uma categoria…

A menos que você tenha muitos tópicos e considere o custo de traduzir tudo :sweat_smile:
É por isso que estávamos pensando em nos ater a uma única categoria.

Isso em si me lembrou um trecho do primeiro post:
image

Acho que seria uma quantia substancial para nosso Fórum se o ativássemos para todas as categorias :sweat_smile:
Poderia oferecer algum conselho sobre como estimar esse custo? Acredito que seja baseado no número de caracteres, mas não sei como o plugin funciona no backend. Será que ele talvez capture apenas os primeiros X caracteres de cada postagem para reduzir o custo da detecção de idioma?

Assim, estávamos pensando em nosso caso de uso, e ele seria permitir que falantes de inglês traduzam postagens em outros idiomas em uma categoria específica, para poderem responder em inglês e, em seguida, os autores dos tópicos poderem traduzir essas respostas para seu idioma (= o idioma do primeiro post).

O custo é um ponto válido que eu não havia considerado. Usamos o serviço de tradução da Microsoft e nunca precisamos pagar por ele, mas o site para o qual configurei isso é bastante pequeno. Talvez limitar as traduções por categoria seja, de fato, uma solicitação de recurso válida.

Pessoalmente, também nunca entendi completamente quanto é enviado ao tradutor e como isso funciona na prática. Simplesmente “funciona”.

Veja como fiz a estimativa de custos para meu fórum. Todas as consultas são para o Data Explorer.

Estime a média de caracteres por postagem

O plugin envia o texto formatado para o serviço de tradução, pelo menos na última verificação.

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

Estime o número de postagens lidas por visita de usuário

Utilizei os últimos 30 dias para obter uma estimativa relativamente recente.

-- [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

Número de visitas de usuários nos últimos 30 dias

-- [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

Estimativa do número de caracteres lidos nos últimos 30 dias

Multiplicando os três valores anteriores, obtive uma estimativa do número de caracteres formatados das postagens lidas nos últimos 30 dias.

Estimativa do número de usuários sem o idioma principal

Como o inglês é o idioma principal do nosso fórum, utilizei o Google Analytics para determinar a porcentagem de usuários cujos navegadores estavam configurados para um idioma diferente do inglês.

Estimativa final

Em seguida, fiz uma estimativa baixa/média/alta, assumindo que a taxa atual de visitantes não falantes de inglês seria o “caso comum”, dividi esse valor pela metade para a estimativa baixa e o dobrei para a estimativa alta. Isso me deu um número baixo/médio/alto de caracteres em 30 dias, que multipliquei pela taxa por X caracteres do serviço de tradução.

Espero que isso ajude!

Essa resposta é incrível! Muito detalhada, @lee-dohm. Por isso, movi-a para fora do tópico de tradutores, para que não seja excluída e possa ser útil a outros.

Obrigado por este guia. Tenho duas perguntas:

  • com base nisso:

    Seria bom ainda correlacionar os dados do campo users.locale e obter uma porcentagem de usuários que o configuraram para um valor diferente do inglês (caso seu site não se adapte automaticamente com base no ambiente do usuário, o que, acredito, é uma opção nas configurações de administração).

  • você notou um aumento significativo quando lançou o plugin pela primeira vez com base nisso?
    image

    Acredito que algo assim ainda poderia ser adicionado para completar a estimativa:

    SELECT  LENGTH(COALESCE(string_agg(posts.cooked, ''),''))
    FROM    posts
    JOIN    topics on posts.topic_id = topics.id
    WHERE   topics.archetype <> 'private_message'
    

Não fiz nenhum acompanhamento depois que decidimos lançar, então não tenho certeza se isso afetou algo, não. Mas sim, incluir sua consulta na estimativa de custo seria bom :+1: