Title: Script Python para criar/atualizar arquivo TRANSLATORS · Issue #51 · python/python-docs-pt-br · GitHub
Open Graph Title: Script Python para criar/atualizar arquivo TRANSLATORS · Issue #51 · python/python-docs-pt-br
X Title: Script Python para criar/atualizar arquivo TRANSLATORS · Issue #51 · python/python-docs-pt-br
Description: Introdução Seria interessante termos um script que extraísse a relação de tradutores que contribuíram para a documentação do Python, para fins de registro centralizado de crédito. Armazenar em um arquivo chamado TRANSLATORS parece ser o ...
Open Graph Description: Introdução Seria interessante termos um script que extraísse a relação de tradutores que contribuíram para a documentação do Python, para fins de registro centralizado de crédito. Armazenar em um a...
X Description: Introdução Seria interessante termos um script que extraísse a relação de tradutores que contribuíram para a documentação do Python, para fins de registro centralizado de crédito. Armazenar em um a...
Opengraph URL: https://github.com/python/python-docs-pt-br/issues/51
X: @github
Domain: redirect.github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Script Python para criar/atualizar arquivo TRANSLATORS","articleBody":"## Introdução\r\n\r\nSeria interessante termos um script que extraísse a relação de tradutores que contribuíram para a documentação do Python, para fins de registro centralizado de crédito. Armazenar em um arquivo chamado TRANSLATORS parece ser o mais adequado, já que isso já é mencionado pelo Documentation Contribution Agreement no README.\r\n\r\nPor que script Python? Primeiramente porque se trata de documentação do Python ;-) Mas o mais importante é que o Python é uma linguagem muito poderosa e multiplataforma, de forma que seria possível fazer um script de alto nível que funciona não apenas no Linux.\r\n\r\nIdealmente, tal script Python seria utilizado em um ambiente de CI (integração contínua) para automatizar a atualização do arquivo TRANSLATORS, talvez iniciando uma pull request no caso de se achar alguma diferença para o script atual. Porém, o foco desta sugestão é apenas o script.\r\n\r\n## Sugestão de funcionamento do script\r\n\r\nSugere-se um script, digamos \"get_translators.py\", que a simples execução sem argumentos de linha de comando resulte em criar/atualizar um arquivo chamado \"TRANSLATORS\". Alternativamente, enviar o resultado para a saída padrão porém aceitando que se informe o arquivo de saída como parâmetro de linha de comando.\r\n\r\nO script deve encontrar todos os arquivos PO no repositório. Isso poderia ser feito usando PathLib para encontrar os arquivos PO a partir da raiz do repositório, ou usando a biblioteca [GitPython](https://gitpython.readthedocs.io) para obter os arquivos rastreados no repositório git. A primeira opção parece ser mais simples e fácil de implementar.\r\n\r\n## Detalhes técnicos dos créditos nos arquivos PO\r\n\r\n- Transifex sempre insere os créditos de tradução no início dos arquivos PO, como um comentário (iniciando com \\#) antes do primeiro msgid que serve de cabeçalho. As linhas com a relação de tradutores aparece entre uma linha `# Translators:` e `#`, algo que facilita determinar o início e o fim da área de créditos de tradução.\u003cbr\u003e\u003cbr\u003ePor exemplo, o arquivo sphinx.po tem os seguintes créditos:\u003cbr\u003e\r\n```\r\n# Translators:\r\n# Marco Rougeth \u003cmarco@rougeth.com\u003e, 2021\r\n# Welington Carlos \u003cwcarlos3@gmail.com\u003e, 2021\r\n# Claudio Rogerio Carvalho Filho \u003cexcriptbrasil@gmail.com\u003e, 2021\r\n# And Past \u003candrepgs@gmail.com\u003e, 2021\r\n# Adorilson Bezerra \u003cadorilson@gmail.com\u003e, 2021\r\n# Rafael Fontenelle \u003crffontenelle@gmail.com\u003e, 2021\r\n#\r\n```\r\n- Nem sempre e-mail está presente no arquivo PO. Neste caso, aparece somente o nome e ano de contribuição. Por exemplo:\r\n```\r\n# Foo \u003cfoo@example.com\u003e, 2021\r\n# Bar, 2021\r\n```\r\n- Contas Transifex excluídas aparecem como hashes no nome e no e-mail (se estiver presente). Por exemplo:\r\n```\r\n01419cbcade949a3bc5433893a160e74, 2021\r\n2c4b5a73177ea5ea1d3324f10df471a7_b8aeba7 \u003c7df8a60bac356f3b148ac94f3c2796f6_834576\u003e, 2021\r\n```\r\n- Um(a) contribuidor(a) pode aparecer mais de uma vez com diferenças no nome ou no e-mail, sendo interessante filtrar essas ocorrências para evitar adição duplicada. Por sorte, devem ser raros os casos. Exemplo de duplicidade:\r\n```\r\nWillian C Lopes \u003cwillclbr@gmail.com\u003e\r\nWillian Lopes\r\n```\r\n- Excluir da saída do script o \"tradutor\" `i17obot \u003ci17obot@rougeth.com\u003e`, visto se tratar de uma conta de bot e não uma pessoa.\r\n- Um combinação de comandos Shell do Linux para obter a lista de contribuidores de todos os arquivos PO, executado da raiz do repositório, seria:\r\n```shell\r\nfor pofile in $(find -name '*.po')\r\ndo\r\n sed -n '/# Translators:/,/^#$/p' $pofile | sed 's|^# ||;s|, [0-9][0-9][0-9][0-9]$||'\r\ndone | sort -u | sed '/# Translators:/d;/^#$/d;/i17obot \u003ci17obot@rougeth.com\u003e/d'\r\n```","author":{"url":"https://github.com/rffontenelle","@type":"Person","name":"rffontenelle"},"datePublished":"2021-12-15T11:30:30.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/51/python-docs-pt-br/issues/51"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:4c7bc9c7-9a00-a269-80a9-ae74f00f9118 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | BBB6:B7306:4CFF41:6BCE4F:696A6BFC |
| html-safe-nonce | feba1c317cc0d9952dfd33e1dca9034ca69f6e5a8c6a7b0230a0321ac141ade8 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCQkI2OkI3MzA2OjRDRkY0MTo2QkNFNEY6Njk2QTZCRkMiLCJ2aXNpdG9yX2lkIjoiNjgzMDg5MjQ1MjM1MzMwNTU5NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 390dc5823410f5fab17c4dcc88df3a712c2f00bae20325067de117f481ee1dcb |
| hovercard-subject-tag | issue:1080926543 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/python-docs-pt-br/51/issue_layout |
| twitter:image | https://opengraph.githubassets.com/f30932258acd5fb98f16c19e0186d863dd3658f96dd21f6bc0b82e0f43f69d93/python/python-docs-pt-br/issues/51 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/f30932258acd5fb98f16c19e0186d863dd3658f96dd21f6bc0b82e0f43f69d93/python/python-docs-pt-br/issues/51 |
| og:image:alt | Introdução Seria interessante termos um script que extraísse a relação de tradutores que contribuíram para a documentação do Python, para fins de registro centralizado de crédito. Armazenar em um a... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | rffontenelle |
| hostname | github.com |
| expected-hostname | github.com |
| None | 6fea32d5b7276b841b7a803796d9715bc6cfb31ed549fdf9de2948ac25d12ba6 |
| turbo-cache-control | no-preview |
| go-import | github.com/python/python-docs-pt-br git https://github.com/python/python-docs-pt-br.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 95158375 |
| octolytics-dimension-repository_nwo | python/python-docs-pt-br |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 95158375 |
| octolytics-dimension-repository_network_root_nwo | python/python-docs-pt-br |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | f2d9f6432a5a115ec709295ae70623f33bb80aee |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width