Il y a quelques semaines, ma classe a été chargée de traduire en portugais le livre Real World Haskell. Pendant que je faisais la traduction du texte et des commentaires, j'ai commencé à me demander si je devais également traduire le code, comme l'a suggéré l'instructeur. Par exemple:
data BookInfo = Book Int String [Chaîne] dériver Show
deviendrait
data InfoLivro = Livro Int String [Chaîne] dériver Show
Comme je n'ai lu aucun livre sur le logiciel en portugais, je ne sais pas si c'est une pratique courante, ni si cela doit être fait de cette façon. En fin de compte, le code est un mélange de langues (peut-être que l'exemple de Haskell n'est pas bon, car vous pouvez créer rapidement des synonymes comme type CadeiaDeCaracteres = String
, mais vous obtenez le point). Donc peu importe à quel point vous essayez, vous devrez vous fier à l'expérience précédente du lecteur avec une sorte de mots anglais de base.
Sachant cela, je ne vois vraiment pas l'intérêt de traduire du code, car nous apprenons dans les premiers jours de notre vie de codage qu'il devrait être écrit dans le langage universel. Néanmoins, si le texte environnant (commentaires, par exemple, et le texte lui-même dans un livre) doit être traduit, qu'est-ce qui est possible et faisable en la matière? Pouvez-vous me donner quelques conseils sur la marche à suivre?
Réponses:
À mon avis, non. La plupart des programmeurs sont contraints, qu'ils le veuillent ou non, d'apprendre l'anglais, et de nos jours c'est la lingua franca du monde du logiciel.
D'après mon expérience, cependant, les livres écrits par des auteurs dans l'une des langues les plus fortes ont tendance à le faire - jusqu'à présent, j'ai vu la pratique dans les livres en allemand, français et russe (enfin, le russe est un peu différent d'un car ils utilisent également un alphabet différent). C'est une règle d'or que cela dépend de la dépendance du pays à l'anglais.
Le texte est bien sûr traduit, les plus gros commentaires aussi (un qui décrit le fonctionnement d'un programme plus en détail), puis un peu plus rares, des commentaires plus petits et des noms de variables. J'ai également vu le cas où les noms de variables ont été traduits, mais de petits commentaires ont été laissés en anglais. Je crois cependant que l'auteur, dans ce cas particulier, comptait sur son public pour avoir une connaissance pratique de l'anglais.
Désolé si cela n'a pas résolu votre dilemme, mais il n'y a toujours pas de consensus sur celui-ci: - /
la source
Je suis brésilien [nous parlons portugais ici, ofc] et, quand je peux choisir entre l'original ou la version traduite, je prends toujours l'original, car presque tous les livres sont traduits pour des gens qui ne sont pas programmeurs, donc les commandes et les expressions perdent leur signification originale après la traduction.
Une autre raison de vouloir des livres en anglais est que tout sur le Web [ou les meilleures choses, comme ce site] est écrit en anglais, donc vous serez familiarisé avec le terme anglais et vous pourrez mieux comprendre le code des autres ... [puisqu'un bon programmeur coderait en anglais, au moins à partir de mon POV]
Si vous avez besoin de lire des livres en portugais [ou dans une autre langue], préférez ceux écrits dans cette langue [non traduits].
Pour être clair: si vous allez traduire ce livre, essayez de garder tout le code en anglais [les commentaires peuvent être traduits, mais pas les vars ou les funcs] et n'essayez pas de traduire des choses comme 'array' en 'arranjo' ou «souris» à «rato» [au moins je préférerais le terme anglais, les portugais préfèrent le second, je suppose].
la source
En tant que locuteur anglais non natif, je n'aime pas le code traduit.
Renforce les bonnes pratiques. En tant que professionnel, non seulement l'anglais est la langue principale du domaine, mais des personnes d'horizons différents partagent et travaillent sur le même code. Vous écrire du code dans une autre langue réduit considérablement le nombre de personnes qui peuvent travailler avec votre code - je me suis amusé avec du code écrit dans une autre langue et c'est affreux. Alors, pourquoi ne pas encourager les bonnes habitudes?
Ça a l'air moche. La plupart des langages de programmation utilisent des mots-clés en anglais et, avec un bon choix pour les identifiants, la lecture d'un programme peut être une expérience proche du langage naturel. Sauf si vous utilisez une autre langue pour les identifiants, ce qui la rend similaire à la lecture en 2 langues en même temps.
Je ne crois pas que ça aide beaucoup. Même pour une personne non anglophone, l'anglais utilisé pour les identifiants dans un programme régulier est assez simple et peut être appris très rapidement.
la source
Un bon point contre la traduction d'exemples de code est que, si vous le faites, vous devrez les tester , car les exemples de code traduits devraient être corrects tout comme les originaux.
L'effort de test est-il inclus dans le coût de la traduction? Je suppose que non, dans la plupart des cas.
Si vous ne testez pas le code traduit, vous risquez de le casser ou de le rendre incorrect, ce qui nuirait à la réputation du matériel traduit et de l'original.
Si vous ne voulez pas encourir d'efforts pour tester les exemples de code, vous devez uniquement traduire les commentaires, mais pas modifier le code en aucune façon.
Une autre chose à considérer est le fait que l'auteur d'origine avait très probablement une base de code, peut-être une application ou une bibliothèque complète qui compile dans son ensemble. Les exemples de code sont extraits d'une telle base de code et répartis dans tout le livre. Vous ne l'aurez pas, vous pourriez donc, après avoir traduit les exemples de code, vous retrouver avec des exemples de code qui, dans le livre traduit, se contredisent, en raison de différentes décisions de traduction dans différentes parties du livre, alors que dans le livre d'origine, ils pas parce qu'ils ont été extraits de la même base de code.
la source
Je ne parle aucune langue autre que l'anglais. (Eh bien, je suis latin au lycée. Utile si jamais je visite l'Amérique latine. :-) Dans ce contexte, je dirais:
Comme d'autres l'ont fait remarquer, beaucoup d'informations sur la programmation, sur le Web et dans les livres, sont en anglais, donc cela aiderait certainement si vous apprenez l'anglais.
Certains langages informatiques utilisent beaucoup de mots anglais, comme Visual Basic, par exemple. D'autres utilisent principalement des symboles, comme C / C ++ / C #. Donc, si vous allez programmer, vous devrez apprendre QUELQUE Anglais. Mais je ne pense pas que ce soit beaucoup. SI, PENDANT, RETOUR, etc. Selon la langue, peut-être 10 ou 20 mots pour quelques dizaines. Visual Basic est la langue la plus verbeuse à laquelle je puisse penser, et je viens de vérifier une liste et elle a, par un comptage rapide, environ 160 mots réservés, mais il y a beaucoup de duplication là-dedans. Comme END et WHILE, puis END WHILE répertorié comme trois «mots» distincts. Je peux voir que cela n'est pas pratique pour un non-anglophone, mais ces mots sont souvent utilisés avec des significations qui ne sont que vaguement liées à leurs significations anglaises communes, donc je pense que dans de nombreux cas, c'est ' s pas beaucoup plus difficile pour un non-anglophone que pour un anglophone. Par exemple, la signification de HANDLER ou CAST n'est probablement pas plus évidente pour un nouveau programmeur qui parle anglais que pour un nouveau programmeur qui parle portugais. Si à la place certaines de ces choses étaient appelées par des mots qui n'ont pas de sens en anglais, comme si au lieu de dire CAST, nous disions FOOBAR, cela aurait-il été plus difficile pour moi d'apprendre la programmation? Je doute que cela aurait fait beaucoup de différence. cela aurait-il rendu plus difficile pour moi d'apprendre la programmation? Je doute que cela aurait fait beaucoup de différence. cela aurait-il rendu plus difficile pour moi d'apprendre la programmation? Je doute que cela aurait fait beaucoup de différence.
Vous mentionnez que certaines langues ont des options pour définir des mots alternatifs pour les mots clés d'une manière ou d'une autre. Alors oui, vous pouvez définir des mots de votre propre langue comme synonymes des mots-clés anglais. Je ne le ferais pas. Maintenant, vos programmes ont un tas de termes non standard que vous avez créés. Il est peu probable que quelqu'un d'autre qui essaie la même chose utilise exactement le même ensemble de mots que vous. Alors maintenant, en lisant le programme de quelqu'un d'autre, vous devez comprendre ce qu'il entendait par ses «traductions». Je suppose que si tout le monde dans l'entreprise utilisait le même ensemble, vous les apprendriez et pourriez facilement travailler sur les programmes des autres. Mais que se passe-t-il lorsque vous déménagez dans une autre entreprise ou téléchargez un logiciel sur le Web? Il me semble que vous ne faites que vous tendre un piège. Mieux vaut simplement apprendre les mots standard.
Si vous écrivez un programme en portugais et que les seules personnes susceptibles de le lire sont les autres Brésiliens, et vous parlez probablement tous portugais, mais vous ne maîtrisez peut-être pas particulièrement l'anglais, il est tout simplement logique de donner des noms variables au portugais. Je ne vois pas ce qui est gagné en essayant de créer des noms de variables dans une langue dans laquelle vous n'êtes pas particulièrement doué.
la source