-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Translations update from Hosted Weblate #9996
Conversation
Currently translated at 99.7% (998 of 1001 strings) Translation: CircuitPython/main Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/fr/
Currently translated at 100.0% (1001 of 1001 strings) Translation: CircuitPython/main Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/en_GB/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Dan,
A short message to inform you that I am working to reduce the size of all strings to minimize the impact on the firmware size.
There is a better way to translate ‘broche or broches’ in most of the messages; in fact, we use ‘Pin’ like native English speakers. In the same spirit, for ‘microcontroller’ we use ‘board’.
We should be able to save about 100 bytes for all the translations with this request.
Best regards,
Franck
De : Dan Halbert ***@***.***>
Envoyé : dimanche 26 janvier 2025 16:23
À : adafruit/circuitpython ***@***.***>
Cc : FK-sauve ***@***.***>; Mention ***@***.***>
Objet : Re: [adafruit/circuitpython] Translations update from Hosted Weblate (PR #9996)
@dhalbert approved this pull request.
Thanks @FK-sauve <https://github.com/FK-sauve> and @andibing <https://github.com/andibing> !
—
Reply to this email directly, view it on GitHub <#9996 (review)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/A6CGLFKAPBDX5ZIVDGHNGM32MT4WBAVCNFSM6AAAAABV3E5RSOVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDKNZUGMYTANRTGA> .
You are receiving this because you were mentioned. <https://github.com/notifications/beacon/A6CGLFJMBQJIXB4S4QMMC232MT4WBA5CNFSM6AAAAABV3E5RSOWGG33NNVSW45C7OR4XAZNRKB2WY3CSMVYXKZLTORJGK5TJMV32UY3PNVWWK3TUL5UWJTUZODOOM.gif> Message ID: ***@***.*** ***@***.***> >
|
@FK-sauve The error messages are compressed when they are stored. A highly-repeated word like Thank you for looking at this, since it helps a lot making the translation more complete and yet still fit on smaller boards. |
Thank’s Dan, i doesn’t know that all this stuff was compressed, I will try to use the same word as possible to save space.
Have a good day,
Franck
De : Dan Halbert ***@***.***>
Envoyé : lundi 27 janvier 2025 15:26
À : adafruit/circuitpython ***@***.***>
Cc : FK-sauve ***@***.***>; Mention ***@***.***>
Objet : Re: [adafruit/circuitpython] Translations update from Hosted Weblate (PR #9996)
@FK-sauve <https://github.com/FK-sauve> broche is fine if it's the more common usage (at least, say, when I look at French-language Arduino sites). Your grammatical changes are probably the most effective changes in terms of saving space.
The error messages are compressed when they are stored. A highly-repeated word like broche will be well-compressed.
Thank you for looking at this, since it helps a lot making the translation more complete and yet still fit on smaller boards.
—
Reply to this email directly, view it on GitHub <#9996 (comment)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/A6CGLFMV7ZWCPXIROYGORGL2MY6W5AVCNFSM6AAAAABV3E5RSOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMMJVHEYDGNZUGM> .
You are receiving this because you were mentioned. <https://github.com/notifications/beacon/A6CGLFNYXMVLQWHYI57SNFD2MY6W5A5CNFSM6AAAAABV3E5RSOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTU35OC76.gif> Message ID: ***@***.*** ***@***.***> >
|
@jepler if you have anything to say about frequency and size of words and messagesand compression, please chime in. |
Compression by "words" is enabled for builds where translation compression level (CIRCUITPY_MESSAGE_COMPRESSION_LEVEL) is above 5. This level is not applied to all boards, because it does increase build time. During the build, the translation compression code uses a heuristic algorithm to choose common character sequences (which need not be aligned at word boundaries, even though the code calls them "words") to represent as a node in the huffman encoding tree: It estimates the savings for each possible n-gram, repeating until a maximum number is reached or it can't find any n-gram which saves space. Just for curiosity, I did a build of the trinket_m0 board in the French language and checked the list of "words" at the top of the generated file
It looks like "broche" is not here, but "roch" is. This choice probably occurs because "brochage" and capitalized "Broche" both appear, and the heuristic thinks that more matches of a shorter substring are better. There's no simple way to check this list that is going to be transparent to translators. The list is dynamically generated during each build and depends which modules are enabled/disabled, so the list will be different on another board. The intent is not for translators to know or monitor what is on the list, but for the list of words to be helpful in reducing total firmware size when translators use consistent terminology. |
I have finished reviewing the 1001 messages for your project. I understood Jeff's remark about compression. It is delicate to apply it during translation; however, a certain effort, which you will notice, has been made to limit the vocabulary while preserving the spirit and meaning of the message.
Very instructive, Jeff. Thank you for these clarifications regarding the construction.
Wishing you a good reception,
Franck
De : Jeff Epler ***@***.***>
Envoyé : lundi 27 janvier 2025 17:54
À : adafruit/circuitpython ***@***.***>
Cc : FK-sauve ***@***.***>; Mention ***@***.***>
Objet : Re: [adafruit/circuitpython] Translations update from Hosted Weblate (PR #9996)
Compression by "words" is enabled for builds where translation compression level (CIRCUITPY_MESSAGE_COMPRESSION_LEVEL) is above 5. This level is not applied to all boards, because it does increase build time.
During the build, the translation compression code uses a heuristic algorithm to choose common character sequences (which need not be aligned at word boundaries, even though the code calls them "words") to represent as a node in the huffman encoding tree: It estimates the savings for each possible n-gram, repeating until a maximum number is reached or it can't find any n-gram which saves space.
Just for curiosity, I did a build of the trinket_m0 board in the French language and checked the list of "words" at the top of the generated file ports/atmel-samd/build-trinket_m0/genhdr/compressed_translations.generated.h:
'on', 'ou', '%q', '\r\n', "l'", 'ent', 'le ', 'es ', 'un ', " d'", 'ant', 'ble', 'de ', ' à ', 'la ', 'ez ', 'age', ' de ', 'tion', 'une ', 'pas ', ' en ', 'hors', 'doiv', 'que ', 'loca', 'roch', 'comp', 'ance', 'objet', 'être ', 'trouv', ' est ', 'inter', ' non ', 'dans ', ' sur ', ' trop', 'avec ', 'octet', 'doit ', ' pour ', 'valeur', 'utilis', 'chaîne', 'ichier', 'démarr', 'rateur', 'nombre', 'classe', 'ystème', 'charge', 'assign', 'Erreur', ' nommé', 'attend', 'support', 'mauvais', 'équence', 'syntaxe', 'argument', 'ne peut ', 'longueur', 'paramètr', 'converti', 'attribut', 'caractèr', ' invalide', 'mpossible', ' doit être ', " n'est pas ", 'obligatoire', ' par défaut'
It looks like "broche" is not here, but "roch" is. This choice probably occurs because "brochage" and capitalized "Broche" both appear, and the heuristic thinks that more matches of a shorter substring are better.
There's no simple way to check this list that is going to be transparent to translators. The list is dynamically generated during each build and depends which modules are enabled/disabled, so the list will be different on another board. The intent is not for translators to know or monitor what is on the list, but for the list of words to be helpful in reducing total firmware size when translators use consistent terminology.
—
Reply to this email directly, view it on GitHub <#9996 (comment)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/A6CGLFL53S7CKP6XRJLIYW32MZQCBAVCNFSM6AAAAABV3E5RSOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMMJWGM2TINZXGA> .
You are receiving this because you were mentioned. <https://github.com/notifications/beacon/A6CGLFKWRKFRTMIR3QOOJX32MZQCBA5CNFSM6AAAAABV3E5RSOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTU36JT5E.gif> Message ID: ***@***.*** ***@***.***> >
|
No doubt the folks writing the English original text would also have benefited from a little more consistency. |
Translations update from Hosted Weblate for CircuitPython/main.
Current translation status: