Come stimare il costo della traduzione utilizzando il plugin per traduttore

Non c’è motivo di cercare di limitare la funzionalità a una sola categoria…

A meno che tu non abbia molti argomenti e consideri il costo della traduzione di tutto :sweat_smile:
Per questo motivo stavamo pensando di attenerci a una sola categoria.

Questo in sé mi ha ricordato un passaggio del primo post:
image

Penso che abilitarla per tutte le categorie rappresenterebbe un costo sostanziale per il nostro Forum :sweat_smile:
Potresti dare qualche consiglio su come stimare tale costo? Credo che sia basato sul numero di caratteri, ma non so come funzioni il plugin sul backend. Forse estrae solo i primi X caratteri di ogni post per ridurre il costo del rilevamento della lingua?

Quindi, stavamo pensando al nostro caso d’uso: l’obiettivo sarebbe permettere ai parlanti inglese di tradurre i post non inglesi in una categoria specifica, così da poter rispondere in inglese, e successivamente permettere agli autori dei topic di tradurre queste risposte nella loro lingua (ovvero la lingua del primo post).

Il costo è un punto valido che non avevo considerato. Usiamo il servizio di traduzione di Microsoft e non abbiamo mai dovuto pagare, ma il sito per cui ho configurato tutto è piuttosto piccolo. Forse limitare le traduzioni per categoria è effettivamente una richiesta di funzionalità valida.

Personalmente, non ho mai capito davvero quanto viene inviato al traduttore e come funziona nella pratica. Funziona semplicemente.

Ecco come ho calcolato la stima dei costi per il mio forum. Tutte le query sono destinate al Data Explorer.

Stima della media di caratteri per post

L’ultimo controllo ha rilevato che il plugin invia il testo “cotto” (cooked) al servizio di traduzione.

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

Stima del numero di post letti per visita utente

Ho preso in considerazione gli ultimi 30 giorni per ottenere una stima 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

Numero di visite utente negli ultimi 30 giorni

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

Stima del numero di caratteri letti negli ultimi 30 giorni

Moltiplicando tra loro le tre cifre precedenti, ho ottenuto una stima del numero di caratteri “cotti” (cooked) dei post letti negli ultimi 30 giorni.

Stima del numero di utenti con lingua diversa da quella primaria

Poiché l’inglese è la lingua primaria del nostro forum, ho utilizzato Google Analytics per determinare la percentuale di utenti che avevano il browser configurato per una lingua diversa dall’inglese.

Stima finale

Ho quindi elaborato una stima bassa/media/alta ipotizzando che l’attuale tasso di visitatori non anglofoni rappresentasse il “caso comune”; ho dimezzato tale valore per la stima bassa e raddoppiato per quella alta. Ciò mi ha fornito un numero basso/media/alto di caratteri in 30 giorni, che ho moltiplicato per la tariffa per X caratteri del servizio di traduzione.

Spero che questo sia d’aiuto!

Questa risposta è fantastica! Molto dettagliata, @lee-dohm, quindi l’ho spostata fuori dall’argomento del traduttore per evitare che venga cancellata e perché può essere utile ad altri.

Grazie per questa guida. Ho due domande:

  • basandosi su questo:

    Potrebbe essere utile correlare comunque i dati dal campo users.locale e ottenere la percentuale di utenti che lo hanno impostato su un valore diverso dall’inglese (se il tuo sito non si adatta automaticamente in base all’ambiente dell’utente, il che credo sia un’opzione nelle impostazioni di amministrazione)

  • hai notato un picco significativo quando hai lanciato per la prima volta il plugin basandoti su questo?
    image

    Credo che qualcosa del genere potrebbe comunque essere aggiunto per completare la stima:

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

Non ho effettuato alcun monitoraggio dopo aver deciso di lanciarlo, quindi non sono sicuro che abbia avuto un impatto, no. Ma sì, includere la tua query nella stima dei costi sarebbe una buona idea :+1: