Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add function to compare translated strings between two commits #138

Open
wants to merge 8 commits into
base: 3.12
Choose a base branch
from

Conversation

guilhermesrc
Copy link

No description provided.

try:
commit_hash1_count = get_translated_commit_strings(commit_hash1)
commit_hash2_count = get_translated_commit_strings(commit_hash2)
return abs(commit_hash1_count - commit_hash2_count)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rffontenelle faz sentido esse abs aqui?

Esse commits tanto podem ser novas strings quanto strings traduzidas, certo?
Neste caso, saber o sinal eu acho válido.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Faz sentido, me esqueci que poderiam chegar novas strings

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neste caso específico, acredito que "se negativo, retorna 0" seria mais adequado. Significa, provavelmente, que temos novas strings não traduzidas

@adorilson
Copy link
Contributor

Este PR é pra resolver #135, certo?

@guilhermesrc
Copy link
Author

isso

@rffontenelle
Copy link
Collaborator

Ao invés de executar pocount para cada arquivo PO e ir adicionando as strings, que tal executar pocount em todos de uma só vez e pegar apenas o total?

$ pocount *.po **/*.po
Processing file : about.po
Type               Strings      Words (source)    Words (translation)
Translated:      10 (100%)        166 (100%)             170
Fuzzy:            0 (  0%)          0 (  0%)             n/a
Untranslated:     0 (  0%)          0 (  0%)             n/a
Total:           10               166                    170

Unreviewed:      10 (100%)        166 (100%)             170

# ....
# pulei para o final

Processing file : whatsnew/index.po
Type               Strings      Words (source)    Words (translation)
Translated:       3 (100%)         69 (100%)              78
Fuzzy:            0 (  0%)          0 (  0%)             n/a
Untranslated:     0 (  0%)          0 (  0%)             n/a
Total:            3                69                     78

Unreviewed:       3 (100%)         69 (100%)              78

Processing file : TOTAL:
Type               Strings      Words (source)    Words (translation)
Translated:   27887 ( 50%)     476230 ( 42%)          503086
Fuzzy:            0 (  0%)          0 (  0%)             n/a
Untranslated: 27775 ( 49%)     653717 ( 57%)             n/a
Total:        55662           1129947                 503086

File count:     483

Pode-se corresponder ao texto "TOTAL:" como marcador de inicío para considerar a leitura de conteúdo e aí buscar correspondência do padrão pattern_translated_strings. Seria, assim, uma execução do pocount por commit.

Nota: git ls-files é uma alternativa para assegurar que apenas arquivos .po rastreados pelo repositório git sejam inclusivos. Mas talvez não seja necessário.

@guilhermesrc
Copy link
Author

Nessa ideia, como poderia ser pego o pocount total de um commit antigo? não consegui achar nada a respeito.

@rffontenelle
Copy link
Collaborator

Nessa ideia, como poderia ser pego o pocount total de um commit antigo? não consegui achar nada a respeito.

git switch com --detach. Por exemplo: git switch d16bd17181b2cc50d822eecbca9b13c51903dc7e --detach. Para voltar: git switch 3.12.

Para obter o branch atual, use git branch --show-current (me parece melhor que forçar via código um branch).

Outra opção é usar a biblioteca GitPython.

@guilhermesrc
Copy link
Author

refatorei sobre aqueles aspectos do git switch, acredito que ainda falte o "se negativo, retorna 0"

@adorilson
Copy link
Contributor

refatorei sobre aqueles aspectos do git switch, acredito que ainda falte o "se negativo, retorna 0"

Isso faz mesmo sentido, @rffontenelle ? Pra mim, não faz. Qual é a informação que você tem que eu não tenho? :)

@adorilson
Copy link
Contributor

@guilhermesrc

E eu acho que tá dando uma exagerada no uso de try...except. Quais são as exceções possíveis?
Capturar Exception não é uma boa prática.

E depois retornar 0 pode dar algum tipo de confusão com "se negativo" ou "nada mudou mesmo".

@rffontenelle
Copy link
Collaborator

refatorei sobre aqueles aspectos do git switch, acredito que ainda falte o "se negativo, retorna 0"

Isso faz mesmo sentido, @rffontenelle ? Pra mim, não faz. Qual é a informação que você tem que eu não tenho? :)

Vamos para um exemplo.

Quinta-feira temos 20000 traduzidas. Sexta-feira as strings fontes foram atualizadas e alterações resultaram agora em termos 19900 porque pequenas alterações em strings existentes, "apagando" a tradução.

Neste caso, subtrair 19900 de 20000 (atual menos o anterior) vai dar 100 negativo. Aqui a diferença não é zero somente porque "perdemos tradução" (ainda aparecem como sugestões do Transifex). Neste caso, acho que podemos considerar zero tradução.

@adorilson
Copy link
Contributor

refatorei sobre aqueles aspectos do git switch, acredito que ainda falte o "se negativo, retorna 0"

Isso faz mesmo sentido, @rffontenelle ? Pra mim, não faz. Qual é a informação que você tem que eu não tenho? :)

Vamos para um exemplo.

Quinta-feira temos 20000 traduzidas. Sexta-feira as strings fontes foram atualizadas e alterações resultaram agora em termos 19900 porque pequenas alterações em strings existentes, "apagando" a tradução.

Neste caso, subtrair 19900 de 20000 (atual menos o anterior) vai dar 100 negativo. Aqui a diferença não é zero somente porque "perdemos tradução" (ainda aparecem como sugestões do Transifex). Neste caso, acho que podemos considerar zero tradução.

Então... isso não deveria ser -100?

Porque agora temos a certeza que há 100 novas strings pra traduzir, seja porque são realmente novas, seja porque algo que estava traduzido deixou de estar (o motivo me parece irrelevante). E aí sabemos que há trabalho de tradução pra ser feito. Se eu vejo 0, vou ignorar.

Isto é, tou pensando no caso de uso disso ser útil pra saber o que precisa ser traduzido. De repente, você tá pensando em outro caso de uso.

Vendo o título do PR e também a descricao em #135 parece que é isso mesmo... você focou no caso pontual de saber quanto traduzimos em uma sprint (e aí não faz sentido dizer "destraduzimos X strings") e eu pensei em comparar dois commits quaisquer...

Se possível, eu agora quero os dois. :D

Deixaria essas funções já feitas como estão, para esse cenários mais amplo que eu pensei, e escreveria nova(s) para esse caso do "se negativo, retorna 0"

@guilhermesrc
Copy link
Author

@guilhermesrc

E eu acho que tá dando uma exagerada no uso de try...except. Quais são as exceções possíveis? Capturar Exception não é uma boa prática.

E depois retornar 0 pode dar algum tipo de confusão com "se negativo" ou "nada mudou mesmo".

Nossa realmente ficou bem genérico revisando, mais tarde reescrevo. Agora pensando, talvez no regex e ao manipular o OS ali seriam as exceções mais validas.

@guilhermesrc
Copy link
Author

Tirei quase todos os exceptions, exceto a de manipulação do sistema, somente alterei a biblioteca.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants