Skip to content

[Translation] Does the Portuguese translation sound right to you? | Português: Procura-se ajuda #59

Open

Description

@ColinGPT9

Portuguese is fully translated, and nobody who speaks Portuguese has ever read it.

All 116 strings are present, so this one needs checking rather than
finishing. The maintainer only speaks English and cannot tell whether the
result sounds like something a person would say.

What to look for

  • Words that are technically correct but that no native speaker would use
  • Video editing terms: clip, render, timeline, caption, watermark. These often
    have an established word among editors that is not the dictionary one
  • The same English word translated three different ways on three screens
  • Text that outgrows its button
  • A label that does not match what the button actually does

Reporting

Current:   [what the app says now]
Suggested: [what it should say]
Why:       [one line]

One string is worth reporting. So is a hundred.

To fix it yourself: edit ui/src/renderer/src/locales/pt.json and open a
pull request mentioning this issue. Change only that file.

Full guide: docs/TRANSLATING.md

Optional: does the AI work in Portuguese?

Much bigger job, entirely optional. Run a video naturally spoken in Portuguese and
say whether transcription got the words right, whether the clips chosen made
sense, and whether the generated titles came out in Portuguese rather than English.

Two caveats before you spend time: only gemma:7b, gemma3:4b and
gemma3:12b have ever been tested, so anything else is unmeasured rather than
endorsed (see #38). And AI dubbing cannot be tested from an installed copy at
all, because the speech engine is not bundled.


Português

O programador desta aplicação só fala inglês e não consegue avaliar se a tradução portuguesa soa natural nem se usa os termos habituais de edição de vídeo.

Se alguma frase se percebe mas ninguém a diria assim, refira-a mesmo assim. Basta um comentário com o texto atual e o texto correto; não é preciso abrir um pull request.

https://github.com/ColinGPT9/clips-studio/blob/main/docs/TRANSLATING.md


Pull requests are welcome

Spotting the problem is the hard part, and if you can spot it you can almost
certainly fix it. Edit ui/src/renderer/src/locales/pt.json, change only
that file, and open a pull request that mentions this issue.

It is a good first pull request: one file, no build to set up, no code to
understand, and quick to review. If it is your first contribution to anything,
that is fine — say so and I will help.

Commenting is still a complete contribution if you would rather not. Both are
genuinely useful.

Português: Pull requests são bem-vindos — fique à vontade para corrigir você mesmo.

Activity

  1. added
    help wantedExtra attention is needed
    translationWording in a language other than English
    localizationLocale files, formatting, and language support
    testingVerifying behaviour rather than changing it
    on Aug 10, 2026
  2. changed the title [-][Translation] Does the Portuguese translation sound right to you?[/-] [+][Translation] Does the Portuguese translation sound right to you? | Português: Procura-se ajuda[/+] on Aug 10, 2026
  3. espinafr commented on Aug 14, 2026

    @espinafr
    Contributor

    Hey, I was looking through the app to start collecting context and reviewing the Portuguese translation, but it seems like there are some texts that just aren't in pt.json, like these:
    Image
    I even tried just copy-pasting them into the translation file, but this approach doesn't work for every text
    Image
    (In this example, neither of the two entries was in the translation file)

  4. ColinGPT9 commented on Aug 14, 2026

    @ColinGPT9
    OwnerAuthor

    I might have added that part after the multilingual section, or I may have missed it. If you want, feel free to make any fixes or changes to that section and submit a pull request, and I can merge it. I am currently trying to list the app on the Microsoft store for discoverability.

  5. ColinGPT9 commented on Aug 18, 2026

    @ColinGPT9
    OwnerAuthor

    Reopening — @espinafr's #70 is merged and Brazilian Portuguese is now fully translated, 208 of 208 phrases. This auto-closed on merge; it stays open for the same reason #60 did after the Russian work: one native speaker is a huge improvement on machine translation, and two is the standard.

    Two specific things a Brazilian Portuguese speaker could settle in a minute, both context errors that no mechanical check can catch:

    1. "About": "Sobre" — Queue.tsx:194 builds the ETA line as {About|Roughly} {time} {to go}. "About" here means approximately, so it currently reads "Sobre 25 minutos". Should it be "Cerca de"? This is the branch shown once the estimate is confident, so it is the common case.

    2. The content-language hint may have the advice backwards. English: "Auto works for most streams; force it if a bilingual stream gets the wrong captions" — meaning override auto. Current Portuguese: "A detecção automática funciona para a maioria; use-a se um vídeo bilíngue estiver com as legendas erradas", which reads as use auto-detection when auto-detection is wrong.

    3. Does anything overflow its button? Portuguese runs longer than English and the layout does not grow. "Rodar a configuração de instalação novamente" is 29 characters longer than "Run setup again". This needs eyes on the running app, which is the one thing no test here can do.


    Português (Brasil)

    Tradução com auxílio de máquina — o desenvolvedor não fala português. Correções são bem-vindas, inclusive neste texto.

    Reabrindo: o #70 do @espinafr foi aceito e o português brasileiro está totalmente traduzido, 208 de 208 frases. Esta issue continua aberta para que um segundo falante nativo possa revisar — o mesmo critério aplicado ao russo em #60.

    Três pontos concretos:

    1. "About" está como "Sobre". Na tela da fila, essa palavra significa aproximadamente ("About 25 minutes to go"), então aparece como "Sobre 25 minutos". Deveria ser "Cerca de" ou "Aproximadamente"?
    2. A dica sobre o idioma do conteúdo parece ter invertido o sentido. O original diz para forçar um idioma quando a detecção automática erra em vídeos bilíngues; a tradução atual diz "use-a", o que soa como usar a detecção automática justamente quando ela está errando.
    3. Algum texto ultrapassa o tamanho do botão? O português é mais longo que o inglês e o layout não se ajusta. Isso só dá para ver com o aplicativo aberto.

    Comentar aqui já é uma contribuição completa — não é necessário abrir uma pull request.

  6. espinafr commented on Aug 18, 2026

    @espinafr
    Contributor

    Oh, my bad! My Docker was struggling a bit when testing the program so I never got to see the "Sobre" error!
    Anyways:

    Yes, "cerca de" or "aproximadamente" would both be right in this context, but in Portuguese, an equivalent to "to go" in this context would be something like "restante", but that word works as a post-nominal modifier and needs to agree in number depending on the amount of time remaining, which is why I didn't use it the first time... Since we would still have that problem now, I would suggest changing "Sobre" to "Concluirá em cerca de" (finishes in about...) and leaving "to go" as is.

    Now, about the second topic. Yes, I completely missed that meaning xd
    An accurate translation would be "Transcrições e legendas gravadas usam este idioma. A detecção automática funciona para a maioria, entretanto caso um vídeo bilíngue esteja com as legendas erradas, force o idioma correto."

    And finally, about the overflow:
    Image
    Even though it works for the button here, being 29 characters longer is something we could prevent (at the cost of some clarity).
    Image
    The new translation could be "Reconfigurar instalação inicial"

  7. ColinGPT9 commented on Aug 18, 2026

    @ColinGPT9
    OwnerAuthor

    thanks for your help write what you think is better if you want to contribute. I only speak english so I am not entirely sure about the languages I added to the app. It's why I asked for help with this to see if it was translated correctly.

  8. ColinGPT9 commented on Aug 18, 2026

    @ColinGPT9
    OwnerAuthor

    It is being translated in my claude code when I added other languages.

  9. espinafr commented on Aug 18, 2026

    @espinafr
    Contributor

    Also, one more note about the translation...

    These two lines (180 and 181) are only correct if the number of attempts is greater than 1:

    "attempts": "tentativas",
    "left": "restantes",

    That's not something to worry about, since the code that uses them apparently only runs when the number of attempts is greater than one... But if I'm mistaken, please let me know and I'll think of a way to work around it.

    {took && !running && (
      <p className="text-sm text-muted mt-0.5">
        {job.status === 'done' ? t('Finished in') : t('Ran for')} {took}
        {job.attempts > 1 && ` · ${job.attempts} ${t('attempts')}`}
      </p>
    )}

    EDIT: Oh nevermind. Even though I clearly missed t('left') I still posted the comment xd

    {running && live && (
      <div className="mt-1.5">
        <div className="flex items-baseline gap-2 text-sm">
          <span className="text-accent">{live.label || t('Starting…')}</span>
          <span className="text-muted tabular-nums">
            {Math.round(live.fraction * 100)}%
          </span>
          {eta !== null && (
            <span className="text-muted tabular-nums">· {formatEta(eta)} {t('left')}</span> /* <-------- here */
          )}
        </div>
        <div className="mt-1 h-1.5 rounded-full bg-raised overflow-hidden">
          <div
            className="h-full bg-accent transition-[width] duration-500"
            style={{ width: `${Math.round(live.fraction * 100)}%` }}
          />
        </div>
      </div>
    )}

    Welp, in this case there are three alternatives:

    1. The ideal solution would be to create a second key for plurals ("restante" and "restantes").

    2. Another solution that does not involve creating a second key would be to shift the position of the current key from right to left ({formatEta(eta)} {t('left')} -> {t('left')} {formatEta(eta)}), so the translation could be something like "Tempo restante: " (Time remaining). However, for compatibility with the other existing languages and to avoid unnecessary overhead, this is probably the worst option.

    3. Finally, an alternative that doesn't break anything but is simply not elegant would be to translate it as "restante(s)".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is neededlocalizationLocale files, formatting, and language supporttestingVerifying behaviour rather than changing ittranslationWording in a language other than English

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions