IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Traduction Anglais->Français d'une application de gestion de strings sur l'échange de genre(homme/femme)


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web en Formation
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Intégrateur Web en Formation

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut Traduction Anglais->Français d'une application de gestion de strings sur l'échange de genre(homme/femme)
    Bonjour à toutes & tous.

    Je suis en formation d'intégrateur Web.

    Dans le cadre de mon stage, et pour une exposition sur le thème du genre, j'ai pour tâche de traduire une extension Chrome anglaise en français.
    C'est une extension Open-Source, le code natif se trouvant ici (lien GitHub).
    Ici se trouvent les fichiers de ma version, en cours de traduction.

    La version anglaise est téléchargeable ici, la mienne n'étant pas en ligne (en dehors de l'accès aux fichiers).

    Il s'agit d'une extension qui inverse le genre (homme/femme) dans toutes les phrases de la page affichée, avec un bouton on/off dans la barre de menu de Chrome.

    L'ensemble du code "important" se trouve dans le fichier myscript.js .

    La principale difficulté dans cette tâche n'est pas le développement mais l'adaptation des règles de langue anglaises en français. Étant plus que débutant en Java, j'ai donc besoin de certains conseils avisés et d'une légère aide sur la compréhension de certaines fonctions.

    Pour éviter de surcharger ce message, je vais uniquement noter les points que je souhaiterai comprendre ainsi que la ligne (ligne propre aux fichiers en cours de traduction, donc uniquement pour la version FR) dans le fichier myscript.js.

    ---------------------------------------------------------------------------------------------

    Premier point :
    La traduction des mots genrés : Tout les mots duc/duchesse, adapté/adaptée, etc... (et leurs pluriels), qui sont inscrits (la liste est loin d'être finie) de la ligne 1 à la ligne 1264, sont divisés dans 4 variables, qui sont 'complete', 'end', 'start' et 'anywhere'.
    Pour avoir testé l'extension (dans sa version anglaise) sur un fichier en localhost, j'ai remarqué que la position des mots ne changeait pas la manière dont ils sont traduits. Ces variables sont utilisées pour créer la var 'maps' en ligne 1267 et la var 'regex' en ligne 1283.

    Question : Est-il donc nécessaire de conserver ces différentes variables dans le code, ou puis-je réunir tout les mots dans une seule et même variable, étant donné qu'elles ne gèrent en rien l'ordre des mots ?

    ---------------------------------------------------------------------------------------------

    Second point (le plus important sur le plan fonctionnel et technique) :
    Je ne comprend pas vraiment le fonctionnement des fonctions 'genderswap' (ligne 1314), 'translateHim' (ligne 1327) & 'translateHer' (ligne 1338), ce qui est particulièrement gênant étant donné qu'il s'agit des fonctions permettant l'échange de genre entre les pronoms, sa compréhension étant donc nécessaire pour mener la traduction à bien.

    Question : J'aimerai donc savoir si l'un de vous peut m'expliquer le fonctionnement de ces fonctions afin que je sois capable de les adapter en français et/ou (si vous êtes motivés) fournir en partie le code adapté pour la langue française (ou une exquisse).

    ---------------------------------------------------------------------------------------------

    Ma dernière question serait surtout de savoir si j'ai besoin de retravailler toutes les fonctions dont je n'ai pas parlé au dessus pour que le code soit fonctionnel, ou si je peux les laisser tel quel.


    Merci d'avance pour les différentes réponses que vous pourrez m'apporter, je me sens actuellement un peu bloqué dans mon projet de stage (à part rajouter les listes de mots masculin/féminin).
    (PS : J'espère avoir posté ce message au bon endroit.)

    Cordialement,
    Yoann.

  2. #2
    Membre confirmé
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Points : 549
    Points
    549
    Billets dans le blog
    1
    Par défaut
    Alors pour la première question je pense qu'il serait judicieux de ne pas joindre les différentes variables en une seule uniquement à cause de la création de la regex à la ligne 1283. Sur une aussi large quantité de donnée il ne serait pas judicieux de casser un code qui fonctionne surtout que l'on peut comprendre pourquoi les traductions ont été découpés de cette manière.

    Pour ce qui est des fonctions, la fonction genderswap permet simplement de changer le contexte "genre" d'un texte:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function genderswap(text) {
      return text
        .replace(/\b([a-z][\w']+)\b/gi, swapWord) // Ici on remplace tout ce qui ressemble à un mot via la fonction swapWord. Cette dernière permet de tester le mot récupérer avec la regEx constitué des variables précendentes (complete, end, start, anywhere) si les mots concordes alors un traitement est effectué pour renvoyer le mot dans le nouveau contexte.
        .replace(/\b(hers?|hi[ms])\b[\.\,\;\:\]\}\)\?]?(\s+\S+)?/gim, function(match) { // Ici on s'occupe tout simplement de modifier le pronom, la fonction translateHer va juste modifier tout les him, his, etc en her, hers... et de même pour translateHim
          if (/hers?/i.test(match)) {
            return translateHer(match);
          } else {
            return translateHim(match);
          }
        })
        .replace(/\b([a-z]+[,;:'".]*)\s+Miss(?= [A-Z][a-z])/g, "$1 Mr."); // Ici on gère les M. et Mme
    }

    Avec les commentaires ajoutés je te laisse deviner la réponse à ta dernière question

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web en Formation
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Intégrateur Web en Formation

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Ok, merci pour ta réponse.

    A propos de ma 2eme question, c'est surtout que j'aimerai comprendre l'utilité de tous ces caractères et de ces lettres perdues au milieu de nul part ^^

    Sur le chat, on m'a suggéré une idée :
    Etant donné qu'en français, les pronoms sont "définis", j'entend par la que contrairement aux anglais, nous n'avons qu'on mot par utilisation (son/sa/ma/mon/il/elle, etc..), alors que les anglais utilisent Him, Her, His, etc... dans plusieurs cas.

    Ne serait-il donc pas plus 'simple' et judicieux de supprimer les 2 fonctions TranslateHer et TranslateHim et de simplement rajouter les son/sa, etc... dans les variables de mots ?

  4. #4
    Membre confirmé
    Avatar de Darkaurora
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Points : 549
    Points
    549
    Billets dans le blog
    1
    Par défaut
    Je pense qu'il serait mieux de les garder mais de les adapter. Les variables de mot doivent rester indépendantes les unes des autres. Si tu commences à les modifier alors tu vas au devant de gros problème de traduction je pense.

    En anglais le contexte de la phrase nous permet de comprendre l'utilisation de his ou de her. En français c'est certes plus explicite mais il y a toujours cette notion de contexte. Toutefois ce contexte est régis par des règles que les regexp te permettent de mettre en place. C'est fastidieux mais nécessaire je pense.

    Pour ce qui est de t'expliquer les regExp je te conseil de lire cet article qui devrait te permettre de mieux te familiariser avec les regExp: http://javascript.developpez.com/tut...-rationnelles/

  5. #5
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Le problème avec les pronoms possessifs, c'est qu'ils ne fonctionnent pas de la même manière en anglais et en français. En anglais, un pronom possessif est déterminé par celui qui possède l'objet en ce qui concerne sa forme et son genre, alors qu'en français il est déterminé par celui qui possède l'objet pour ce qui est de sa forme (mon, ton, son) et par le nom auquel il se rapporte pour ce qui est de son genre (son, sa) et de son nombre (ses): she kills her brother, elle tue son frère. (elle tue pas "sa frère".)

    Pour ma part, je ne pense pas qu'on puisse utiliser translateHim ou translateHer en les adaptant à peu de frais au français. Peut-être serait-il préférable de capturer un groupe nominal complet, puis de le scinder pour pouvoir faire l'accord de manière adéquate pour chaque élément. Car si les pronoms peuvent être dans une certaine mesure facilement traduits, qu'en est t-il de l'accord des adjectifs qualificatifs et du participe passé?

    D'une manière générale, je te déconseille de prendre le code tel quel en tentant des modifications de ci de là au petit bonheur la chance. Il faut clairement recomposer un code de zéro en piochant des éléments qui peuvent s'avérer utiles du code d'origine, que ce soit le squelette, une fonction ou une structure de données.

    Avant de rentrer dans le code, je pense que la meilleur chose à faire pour le moment c'est d'avoir une vue précise des règles d'accords du français aussi bien en genre qu'en nombre, et d'établir une liste de cas de figures. Ensuite et seulement ensuite, tu peux te pencher sur le code pour voir de quelle manière l'auteur du code s'y est pris pour implémenter une règle et éventuellement t'en inspirer pour implémenter les tiennes.

    Effectivement, tu auras besoin des expressions régulières plus tard pour mener à bien ton projet (ne serait-ce que pour découper ta phrase), et tu as intérêt à t'y coller dés maintenant:

    NB: ne prend pas les patterns du code d'origine pour paroles d'évangile, car elles sont truffées de maladresses. D'autre part, garde à l'esprit que les expressions régulières sont juste un outil, pas la solution à tous les maux de l'univers.

    Maintenant, une langue est quelque chose de tellement complexe (et le français est réputé pour l'être en particulier) qu'il me semble difficile de produire un code waterproof capable de faire face à tous les cas de figure en un temps et avec des moyens raisonnables. Donc mieux vaut, du moins pour le moment, circonscrire tes objectifs à quelque chose de basique sans chercher à tout résoudre, quitte à affiner plus tard.

    M'est avis qu'un Bescherelle serait un allié précieux.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web en Formation
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Intégrateur Web en Formation

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Le problème avec les pronoms possessifs, c'est qu'ils ne fonctionnent pas de la même manière en anglais et en français. En anglais, un pronom possessif est déterminé par celui qui possède l'objet en ce qui concerne sa forme et son genre, alors qu'en français il est déterminé par celui qui possède l'objet pour ce qui est de sa forme (mon, ton, son) et par le nom auquel il se rapporte pour ce qui est de son genre (son, sa) et de son nombre (ses): she kills her brother, elle tue son frère. (elle tue pas "sa frère".)
    Je t'envoie une première réponse rapide, n'ayant pas été dispo ce matin :
    Le principe, justement, de cette extension, est de TOUT inverser. Comme exemple de base donné directement par la développeuse américaine, c'est que "Il aime sa mère" devient "Elle aime son père".

    Les pronoms possessifs deviennent donc un mot a transcrire comme les autres, ce qui rend la chose possible, si je ne m'abuse ?

    Après, évidemment, les expressions régulières seront nécessaires, il ne fait aucun doute la-dessus. Si tu as moyen de me confirmer ce que j'ai dit à propos des pronoms possessifs, cela me permettra d'être sûr de ce que j'avance.

  7. #7
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    ça simplifie un peu le problème, mais qu'en est il avec un nom qui n'a pas d'équivalent féminin ou masculin: il aime sa voiture => "elle aime son voiture"

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web en Formation
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Intégrateur Web en Formation

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Certes, mais je n'ai "malheureusement" que maximum 1 mois et demi pour travailler dessus, et je dois lancer un premier jet en partie fonctionnel en fin de semaine...

    Mais je ne vois pas trop comment gérer ces exceptions... A moins de forcer a ce que "voiture" devienne "vehicule" ou "camion"

  9. #9
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Malheureusement, je ne crois pas que ce soit une exception, en y réfléchissant on trouve des exemples à la pelle. Je te conseille de faire des recherches sur l'analyse syntaxique du langage, je suis tombé sur ce blog

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web en Formation
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Intégrateur Web en Formation

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Ah oui je vais lire ça.
    Tout ce que j'avais moi c'était ça, mais ça m’embêtait un poil de devoir lire 164 pages de texte brut ^^

    Merci pour le lien, je vais voir ce que je peux faire à partir de ça.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web en Formation
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Intégrateur Web en Formation

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Hum oui... Je ne vois pas à quel niveau pourrait m'aider l'article que tu m'as envoyé... D'autant plus que la moitié des mots incompréhensibles aux débutants ne sont expliqués qu'à la fin, et que l'autre moitié n'est pas expliquée.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web en Formation
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Intégrateur Web en Formation

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Bonjour à tou(te)s !

    J'ai plutôt bien avancé sur mon code.

    Cependant, il subsiste quelques erreurs que je ne sais pas trop comment résoudre :

    - Dans l'une de mes variables dictionnaire, pour les verbes à accorder, il y a la ligne 'lu': 'lue', 'lus': 'lues', le problème est qu'avec la variable 'regex' (2ème partie du code), le mot 'lutte' devient 'luette'... J'aimerai donc savoir comme modifier mon code pour que, directement dans la gestion des variables, il prenne en compte le fait qu'il n'y ai pas de lettres autour. Je me doute qu'il faudra ajouter des options d'expression régulière, mais je ne sais pas comment les mettre en place dans ce code qui n'est absolument pas commenté...

    - Les mots qui sont dans mes dictionnaires sont entièrement écris en minuscules. Le problème est qu'il ne traduit donc pas les mots avec une majuscule (je n'ai pas testé pour les mots entièrement en majuscule). Cependant, il traduit bien le premier mot d'une phrase qui commence par une majuscule. J'aimerai donc savoir comment arranger le code pour qu'il traduise bien tout les mots.


    Mes variables 'start', 'end', 'anywhere' et 'complete' (affichées dans le 2ème code) sont dans ce format la : (json)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var complete = {
      // -A-
       'acteur': 'actrice','acteurs': 'actrices','actrice': 'acteur','actrices': 'acteurs',
       'archiduc': 'archiduchesse','archiducs': 'archiduchesses', 'archiduchesse': 'archiduc', 'archiduchesses': 'archiducs', 
      // -B-
       'baron': 'baronne','baronne': 'baron','baronnes': 'barons','barons': 'baronnes',
      // -C-
      'campagne': 'pays', 'pays': 'campagne',
       'cercueil': 'tombe', 'cercueils': 'tombes',
       'compagne': 'compagnon','compagnes': 'compagnons','compagnon': 'compagne','compagnons': 'compagnes',

    Et les fonctions qui me posent problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
     
    var map = {};
    var maps = [ start, end, complete, anywhere ];
    for (var i = 0; i < maps.length; i++) {
      for (attr in maps[i]) {
        map[attr] = maps[i][attr];
      }
    }
     
     
    var concatString = function(obj) {
      var parts = [];
      for (key in obj) {
        parts.push(key);
      }
      return parts.join('|');
    };
     
    var regex = '^(' + concatString(start) + ')|(' + concatString(end) + ')$|(' + concatString(anywhere) + ')|( ' + concatString(complete) + ' )';
     
    var searchFor = new RegExp(regex, 'i');
     
    function capitalize(word) {
      var first = word.charAt(0);
      var rest = word.slice(1);
     
      return first.toUpperCase() + rest.toLowerCase();
    }
     
    function matchCase(old_word, replacement) {
      if (replacement.toLowerCase() == old_word.toLowerCase()) return old_word;
     
      var first = old_word.charAt(0);
      var second = old_word.charAt(1);
     
      if (/[a-z]/.test(first)) return replacement.toLowerCase();
      if (/[A-Z]/.test(second)) return replacement.toUpperCase();
     
      return capitalize(replacement);
    }
     
    function findMatch(word) {
      return map[word];
    }
     
    function swapWord(word) {
      return matchCase(word, word.toLowerCase().replace(searchFor, findMatch));
    }
     
    function genderswap(text) {
      return text
        .replace(/\b([a-z][\w']+)\b/gi, swapWord)
        .replace(/\b(hers?|hi[ms])\b[\.\,\;\:\]\}\)\?]?(\s+\S+)?/gim, function(match) {
          if (/hers?/i.test(match)) {
            return translateHer(match);
          } else {
            return translateHim(match);
          }
        })
        .replace(/\b([a-z]+[,;:'".]*)\s+Miss(?= [A-Z][a-z])/g, "$1 Mr.");
    }
     
    function translateHim(text) {
      return text
        .replace(/\bhim\b/g,"her")
        .replace(/\bhis(?=[\.\,\;\:\]\}\)\?])/g,"hers")
        .replace(/\bhis\b/g,"her")
        .replace(/\bHim\b/g,"Her")
        .replace(/\bHis(?=[\.\,\;\:])/g,"Hers")
        .replace(/\bHis\b/g,"Her")
      ;
    }
     
    function translateHer(text) {
      return text
        .replace(/\bher\b(?=[\.\,\;\:\]\}\)\?])/g, 'him')
        .replace(/\bher\sher\b/g, "him his")
        .replace(/\bher\b(?=\s(?=a\b|an\b|the\b|some\b|any\b|0|1|2|3|4|5|6|7|8|9|one|two|three|thirt|four|five|fift|six|seven|eight|nine|ten|eleven|twelve|twenty))/g, "him")
        .replace(/\bher\b(?=\s(?=aboard|about|above|across|after|against|along|amid|among|around|as|at|before|behind|below|beneath|beside|besides|between|beyond|but\b|by\b|concerning|considering|despite|down|during|except|excepting|excluding|following|for|from|in\b|inside|into|like|minus|of\b|off\b|often|on\b|onto|opposite|outside|over|past|per\b|plus|regarding|since\b|than\b|through|to\b|toward|towards|under\b|underneath|unlike|until|up\b|upon|versus|via\b|with\b|within|without|not|and\b|feel\b))/g,"him")
        .replace(/\bit\sher\sall\b/g,"it his all")
        .replace(/\bher\sall\b/g,"him all")
        .replace(/\bher\b/g,"his")
        .replace(/\bhers\b/g,"his")
        .replace(/\bHer\b(?=[\.\,\;\:\]\}\)\?])/g,"Him")
        .replace(/\bHer\sher\b/g,"Him His")
        .replace(/\bHer\b(?=\s(?=a\b|an\b|the\b|some\b|any\b|many\b|0|1|2|3|4|5|6|7|8|9|one|two|three|thirt|four|five|fift|six|seven|eight|nine|ten|eleven|twelve|twenty))/g, "Him")
        .replace(/\bHer\b(?=\s(?=aboard|about|above|across|after|against|along|amid|among|around|as|at|before|behind|below|beneath|beside|besides|between|beyond|but\b|by\b|concerning|considering|despite|down|during|except|excepting|excluding|following|for|from|in\b|inside|into|like|minus|of\b|off\b|often|on\b|onto|opposite|outside|over|past|per\b|plus|regarding|since\b|than\b|through|to\b|toward|towards|under\b|underneath|unlike|until|up\b|upon|versus|via\b|with\b|within|without|not|and\b|feel\b))/g,"Him")
        .replace(/\bit\sHer\sall\b/g,"it His all")
        .replace(/\bHer\sall\b/g,"Him all")
        .replace(/\bHer\b/g,"His")
        .replace(/\bHers\b/g,"His");
    }
     
    function jailbreak(node){
      var treeWalker = document.createTreeWalker(
          node,
          NodeFilter.SHOW_TEXT,
          null,
          false
      );
      while(treeWalker.nextNode()) {
        var current = treeWalker.currentNode;
        current.textContent = genderswap(current.textContent);
      }
    }
     
    chrome.runtime.sendMessage({name: "isPaused?"}, function(response) {
      if (response.value != 'true') {
        jailbreak(document.body);
     
        document.body.addEventListener('DOMNodeInserted', function(event) {
            jailbreak(event.target);
        });
      }
    });

    Merci d'avance pour vos réponses

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web en Formation
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Intégrateur Web en Formation

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    - Dans l'une de mes variables dictionnaire, pour les verbes à accorder, il y a la ligne 'lu': 'lue', 'lus': 'lues', le problème est qu'avec la variable 'regex' (2ème partie du code), le mot 'lutte' devient 'luette'... J'aimerai donc savoir comme modifier mon code pour que, directement dans la gestion des variables, il prenne en compte le fait qu'il n'y ai pas de lettres autour. Je me doute qu'il faudra ajouter des options d'expression régulière, mais je ne sais pas comment les mettre en place dans ce code qui n'est absolument pas commenté...
    Par rapport à cette question la, je me demande si je peux faire de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var regex = '(' + concatString(start) + ')|(' + concatString(end) + ')|(' + concatString(anywhere) + ')|( ' + concatString(complete) + ' )';
     
     
    var regex = '([^a-z^A-Z]' + concatString(start) + '[^a-z^A-Z])|([^a-z^A-Z]' + concatString(end) + '[^a-z^A-Z])|([^a-z^A-Z]' + concatString(anywhere) + '[^a-z^A-Z])|([^a-z^A-Z]' + concatString(complete) + '[^a-z^A-Z])';
    La première ligne est celle 'd'origine', la deuxième dispose des expressions régulières pour demande à ce qu'il n'y ai pas de caractères autour de mes occurences pour qu'elles soient prises en charge.

    Je ne sais pas entre [^a-z^A-Z] et [^a-zA-Z] lequel est fonctionnel, et je ne sais pas si je dois les mettre dans les parenthèses comme montré à la 2eme ligne, ou juste autour des | ...

    Si quelqu'un à la réponse...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Traduction anglais-français dans une application
    Par shirya dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/11/2008, 10h21
  2. Réponses: 1
    Dernier message: 09/04/2008, 17h20
  3. Quel langage pour une application de réservation de voiture sur internet ?
    Par Zhebulon dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 25/01/2007, 14h25
  4. Traduction en plusieurs langues d'une application
    Par Furlaz dans le forum C++Builder
    Réponses: 5
    Dernier message: 08/06/2006, 10h07
  5. Choix d'un langage pour une application de gestion
    Par mister3957 dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 18/02/2006, 04h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo