11
votes

Code "Internationalisation"

J'ai travaillé sur différents projets de différents pays et a fait remarquer que parfois le Code est devenu internationalisé, comme

SET GRANDÉTHAUTEUR () (Pour SetWidDHandheight, FR )
DIM _LISDEOBIELE AS LISTE (OF Object) (pour _Objectlist, RO )
Vide interne SOHRANENIE UTILISATEUR OV () (Pour SauveRusters, RU )
c.

Il arrive que dans les pays d'alphabet latin, ce mélange est plus prononcé, car il n'y a pas besoin de translittération.

Plus que cela, la programmation "Jargon" est souvent inspirée par la langue des spécifications du projet. Il existe des cas que les termes de «langue du projet» ont un sens qui n'est pas «traduisible» en anglais.

Il existe également des projets sur lesquels fonctionne uniquement, disons une équipe française, utilise des mots français (disons, personnse, véhicule, projet, etc.).

Dans ce cas, j'ajoute personnellement aux spécifications un "dictionnaire" qui explique tous les noms d'objet métier et seuls ces objets sont utilisés dans une autre langue (française).

dire:

Collectif - Ensemble des Personnes ;

Toutes les actions (obtenez, définir, mettre à jour, modifier, charger, etc.) sont en anglais.

Maintenant que les noms "forts" pourraient être utilisés dans le code: ajouter personne à collectif .

  • Quelle est votre approche de "internationalisation"?

    ps.
    J'étais amusé que VisualStudio compile et exécute des projets dans .NET avec des boutons nommés à la "BTNADD É L È VE" ou "КПКСТОП" ... < / p>


0 commentaires

8 Réponses :


14
votes

Mon approche personnelle, qui est partagée par beaucoup, mais pas dans la communauté de la programmation, est que code source devrait être en anglais et, si possible, tous les outils de développement devraient également être en anglais.

La raison la plus importante pour cela est de pouvoir Partager vos problèmes et vos solutions avec le monde (comme nous nous faisons maintenant dans Stackoverflow, pas moins) sans avoir à traduire les noms de classe, les messages d'erreur, chemins et autres artefacts à chaque fois.

Cela aide également la cohérence, car la plupart des bibliothèques sont écrites en anglais et que les noms d'éléments qui mélangent deux langues n'oublent pas vraiment quiconque, en plus d'être une concentration constante de conflits internes lorsqu'un verbe comme ajoutez n'est pas toujours trasélé.

Le code anglais facilite également l'ajout de personnel étranger à un projet sans se soucier de la compréhension et des malentendus ( en particulier entre les langages étroitement liés, comme l'espagnol et le portugais, qui ont beaucoup de faux connexions)

Un bon lien sur ce sujet: http: / /www.codinghorror.com/blog/2009/03/Le-ugly-american-programmer.html

(au cas où quelqu'un se demande, je suis sud-américain et anglais est pas ma langue principale)


6 commentaires

À propos des outils de développement: Parfois, je devrais forcer le cadre à me donner des erreurs en anglais (si mon studio visuel est en français), car il est plus facile de trouver une solution sur Internet.


100% d'accord. Le code source doit être en anglais et je déteste lire des noms de méthodes même dans ma propre langue parce que vous ne savez jamais qui veut lire le code par la suite


D'une part autre partie, il est parfois difficile de mettre à jour un projet existant, ou de tout traduire en anglais. Les programmeurs avec des connaissances anglaises faibles trouveront le code difficile à lire après des spécifications.


En fait, il n'est pas difficile de créer un dictionnaire de termes anglais et / ou d'utiliser les spécifications. Je l'ai fait dans le passé.


@Diego Mijelshon: Si les spécifications sont en espagnol, comment expliquerez-vous les mots du dictionnaire, en espagnol ou en anglais?


@serhio, si les spécifications sont en espagnol, elles utiliseraient les conditions anglaises chaque fois que vous faites référence à des entités, actions ou tout autre élément spécifique à l'entreprise qui entraînerait un code; Les traductions nécessaires (quand elles ne sont pas évidentes, comme cela serait le cas de User = Usuario ) pourrait être au même endroit ou dans un glossaire séparé.



1
votes

Je pense que j'appellerais une base de code comme celle-ci "abyssante" plutôt que "internationalisée", mais la règle générale que j'ai toujours entendue est que si vous pensez jamais que quelqu'un d'autre que celui qui parle votre langue pourrait jamais toucher votre langue. Le code, le faire en anglais.


3 commentaires

Même si personne n'est que l'équipe française va travailler dessus, nous aurons obtenu voila mélange ...


C'est terrible. Choisissez le français ou l'anglais mais soit cohérent!


Vous ne pouvez pas consister e NT avec une autre langue que l'anglais en raison de la syntaxe de langues obtenez, définir, alors



2
votes

J'ai le même problème avec norvégien actuellement. Je suppose que cela dépend de votre position dans le projet, du temps disponible et du rôle du logiciel.

Dans mon cas, j'ai décidé de conserver tous les termes dans un protocole et une bibliothèque existants, je travaille avec Norvégien, car je peux raisonnablement vous attendre à ce que les générations de travailleurs administratifs soient habituées à celles-ci et que la bibliothèque dépend de la protocole. Dans une emballage de bibliothèque pour un projet international, j'ai traduit chaque nom de méthode littéralement et ajouté une documentation en anglais de la méthode.

Commentaires et documentation sur le code sont en anglais.

Si concevez un logiciel à partir de zéro, j'essaierais de trouver des termes anglais pour tous les noms de méthodes et même des conditions commerciales (si raisonnables. Je ne peux guère penser à un exemple où aucun terme ne peut être trouvé.), pour le garder " portable".


0 commentaires

5
votes

Même si tout le monde de l'équipe est un bon orateur anglais (qui n'est pas donné), ils ne connaissent pas nécessairement l'équivalent anglais de toute la terminologie des entreprises.

Je pense que c'est une décision spécifique au projet, quoi permettre, mais je tolérerais généralement et encouragerais des termes métier (par exemple, les noms d'entités) dans la langue locale, mais pas des termes techniques (c'est-à-dire pas grandeur / Hauteduc au lieu de la largeur. /Hauteur).

Par exemple dans le monde financier en France, tout le monde sait ce que l'on entend par OPCVM et FCP - si vous essayez des traductions anglaises, vous risquez de vous retrouver avec plus de malentendus que vous ne le faites en laissant des langages mixtes.


2 commentaires

J'ai le même "problème" avec traduire "HautlePied" du français pour les chauffeurs de bus.


OMI, les conditions commerciales doivent être encouragées dans la terminologie locale lorsqu'une traduction n'existe pas (comme OPVCM dans votre exemple.)



2
votes

Si vous écrivez le code que vous pouvez être utilisé à l'échelle internationale un jour, écrivez-le en anglais. De doute, écrivez-le en anglais, même des commentaires si vous le pouvez (bien que je suppose que vous pouvez ajouter quelques commentaires dans la langue de votre lieu de travail).

Ce n'est pas spécifique au codage malheureusement. L'anglais n'est pas ma langue maternelle, mais j'ai été en mesure de lire un certain nombre de documents techniques et de participer à des conférences internationales avec des personnes du monde entier. Ces collaborations ne fonctionnaient tout simplement pas si toutes les personnes publiaient dans leurs langues indigènes respectives.

Cela peut être triste si vous avez envie de défendre votre langue à tout prix, mais vous devez être réaliste à ce sujet. Je suppose que l'anglais a l'avantage d'être relativement simple pour atteindre un niveau de base: pas de sexe pour les noms, aucune conjugaison, aucun cas.


2 commentaires

Plus important encore que d'être simple pour obtenir une saisie de base est le fait que presque tous les principaux systèmes de traduction de langage automatisés facilitent l'anglais.


Potentiellement, tout projet d'entreprise peut être internationalement un jour, et je pense que nous ne nous réservons pas ici sur les applications à domicile "Hello World". Même si j'écris un site Web national de Bugundi, dois-je l'écrire en anglais, si je suis un développeur de Bugundian ?! :)



2
votes

Généralement, le code faisant référence aux concepts de langue devrait être dans la même langue maternelle que le langage de programmation (c'est-à-dire anglais - pour, tandis que la chaîne sont tous des mots anglais).

C'est bien (mais pas génial) d'avoir des variables et des concepts de domaine dans une langue locale, mais vous ne voulez certainement pas traduire la liste, l'objet, la décimale, etc. dans des termes qui entraînent davantage les programmeurs de réconcilier deux langues . Même toujours, je serais fortement lobby pour limiter les concepts de domaine très courants tels que la collection, l'adhésion, la personne, l'utilisateur et éventuellement des concepts de domaine moins commun tels que la facturation, la réception à l'anglais, où cela est possible.

Il serait comme coder la moitié de vos classes en VB et la moitié en C # - votre cerveau doit faire un changement cognitif. Bien que cela soit bon pour les applications hybrides (JavaScript sur le Web et C # sur le backend) car cela vous aide à garder ce qui fonctionne si clair, ce n'est pas bon pour une programmation générale.

En outre, l'utilisation de l'anglais pour tout fait fonctionner le domaine et les mots de langue fonctionnent mieux.

Il y a toujours des exceptions. Il y a certains cas où vous utiliseriez de toute façon un mot natif - où le mot décrit le mieux le domaine. Par exemple, dans notre base de code (anglais), nous avons eu des références aux conditions espagnoles mexicaines pour certains concepts qui n'étaient que pertinents pour les personnes qui exécutent nos logiciels au Mexique. Typiquement, les termes japonais ont été épelés phonétiquement / romaji, cependant, il était difficile pour les non-japonais de pouvoir prononcer les pictogrammes; -).


0 commentaires

0
votes

garder les choses cohérentes, je ferais le code la même langue (humaine) que la langue (programmation). C'est-à-dire que si le langage de programmation utilise des mots-clés anglais (comme pour , commutateur , public , etc) puis gardez le reste du code en anglais . Si vous utilisez un compilateur qui reconnaît (disons) les traductions swahili des mots-clés, alors gardez le reste du code dans Swahili.

De nombreuses API ont des schémas de dénomination normalisés suivis quelle que soit la langue (humaine) et la documentation ci-jointe est traduite au besoin (au lieu du code source).

Peu importe la langue (humaine) que vous choisissez, choisissez-en une et colle avec elle. Je préférerais beaucoup essayer de faire l'eau à travers le code source en allemand que le code qui était un mélange d'allemand et d'anglais.


5 commentaires

"Si vous utilisez un compilateur qui reconnaît le swahili, gardez le reste du code dans Swahili." Et s'il reconnaît le swahili et le mbuhili, quelle langue devrais-je choisir? :)


De l'autre côté, je n'ai jamais vu (seulement entendu) un langage de programmation utilisant des mots-clés autres que l'anglais.


@ Serhio - Si votre compilateur / langage de programmation utilise des mots-clés à partir de plusieurs langues, je dirais en choisir un et (le plus importateur) être cohérent. Pour les meilleurs résultats, choisissez le plus courant des deux langues, ou celui qui dispose des meilleurs outils de traduction disponibles.


Ouais ... "cohérent", "Plus courant", "Meilleurs outils" ... Donc, quel compilateur vous connaissez en utilisant plusieurs langues?


J'ai vu Perl en latin, Python en mandarin et C en plusieurs langues. Je n'ai pas vu de compilateur qui gère plusieurs langues, mais encore une fois, je n'ai pas encore vu que de nombreux compilateurs différents :) plus important est qu'il s'agit d'un exemple purement hypothétique d'un concept général. Le point de ma réponse est le garder cohérent . Si tous les compilateurs que vous avez utilisez des mots-clés anglais, il y a votre réponse.



1
votes

Je pense que la bonne guide de conception consiste à écrire du code avec l'utilisation de noms anglais et avec des commentaires anglais uniquement (bien sûr si votre équipe est capable de le faire, mais en cas d'anglais international, l'anglais semble être un choix naturel. , puisque c'est une langue la plus populaire, de manière appropriée dans le monde informatique).

Une bonne explication de ces lignes directrices est que Mots-clés de la plupart des langages de programmation est pris à partir de l'anglais de sorte que votre code à l'aide de noms anglais donne un look plus cohérent et grâce à cela, vous avez terminé avec le code qui est plus facile à Lire.

Une autre raison est que la plupart des compilateurs ne peuvent gérer que des caractères ASCII en tant que noms de classes, méthodes, etc., vous vous terminerez probablement avec des noms étranges lorsque vous décidez d'utiliser une langue avec des caractères alphabet contenant des caractères non ascii < / fort>.

Troisième raison qui me suis venu à l'esprit consiste à partager votre code sur site comme vous. Aujourd'hui, j'ai ouvert un message avec un code de code où les classes avaient des noms espagnols. Il était difficile pour moi de deviner quel était le but de cette classe (même si cela n'est parfois pas nécessaire, il est bon lorsque vous lisez du code et que vous comprenez tous les mots utilisés :)).

résumer, je pense que l'internationalisation du code n'est pas une bonne idée. Vous pouvez imaginer que des mots-clés dans les langages de programmation (par exemple la classe, essayer, tandis que) pourraient également être localisés et que vous pouvez probablement imaginer aussi la dureté de la vie ...


0 commentaires