optimiser google traduction

bonjour,
pour utiliser google traduction (http://translate.google.com/) au mieux et comme indiqué dans la doc il faut utiliser la classe *notranslate* dans les balises html pour que le soft ne traduise pas le contenu (pour les noms propres par exemple).

Comment encadrer le texte par un span avec cette classe par exemple :

<pastraduire>Texte a ne pas traduire</pastraduire>

ou

[pastraduire]Texte a ne pas traduire[/pastraduire]

pour obtenir après traitement :

<span class="notranslate">Texte a ne pas traduire</span>

sans utiliser le couteau suisse et la lame décoration (me semble t-il).

auriez vous des pistes a m'indiquer ?

cordialement

--
Signalez vos spams d'un simple clic. www.signal-spam.fr
<https://www.signal-spam.fr/>

bonjour, pas la moindre petite piste pour cette question ?
cordialement

bobof a écrit :

bonjour,
pour utiliser google traduction (http://translate.google.com/) au mieux et comme indiqué dans la doc il faut utiliser la classe *notranslate* dans les balises html pour que le soft ne traduise pas le contenu (pour les noms propres par exemple).

Comment encadrer le texte par un span avec cette classe par exemple :

<pastraduire>Texte a ne pas traduire</pastraduire>

ou

[pastraduire]Texte a ne pas traduire[/pastraduire]

pour obtenir après traitement :

<span class="notranslate">Texte a ne pas traduire</span>

sans utiliser le couteau suisse et la lame décoration (me semble t-il).

auriez vous des pistes a m'indiquer ?

cordialement

--
Signalez vos spams d'un simple clic. www.signal-spam.fr
<https://www.signal-spam.fr/&gt;

Le 25/03/10 15:42, bobof a écrit :

bonjour, pas la moindre petite piste pour cette question ?

un modèle ?

modeles/notrad.html :
   <span class="notranslate">#ENV{u}</span>

et dans le corps du texte, saisir :
   la route qui longe la mer de <notrad|u=Saint-Pierre-Port> au valle
   était toute blanche.

bonjour,
ça serai pour moi je m’en contenterai, mais pour les utilisateurs destinataires c’est compliqué,
déjà avec une balise genre <img|center> c’est pas évident, avec deux balises genre c’est galère,
alors là, ça passera pas, à coup sûr.
merci tout de même denisb
cordialement

denisb a écrit :

Salut,

Le 25/03/2010 18:58, bobof a écrit :

bonjour,
ça serai pour moi je m’en contenterai, mais pour les utilisateurs destinataires c’est compliqué,
déjà avec une balise genre <img|center> c’est pas évident, avec deux balises genre c’est galère,
alors là, ça passera pas, à coup sûr.
merci tout de même denisb
cordialement

j’avais le même souci et je l’ai résolu avec 2 balises et 2 modèles. Ca te donnerait ça :
<pastraduire|debut>Le texte qu’il ne faut pas traduire<pastraduire|fin>
et 2 modèles :

  • pastraduire_debut.html qui contient
  • pastraduire_fin.html qui contient

Sylvain

bonjour,
merci sylvain, j’essaie ça sur le champ !
cordialement

Sylvain a écrit :

Le 27/03/10 12:53, Sylvain a écrit :

<pastraduire|debut>Le texte qu'il ne faut pas traduire<pastraduire|fin>
et 2 modèles :
* pastraduire_debut.html qui contient <span class="notranslate">
* pastraduire_fin.html qui contient </span>

quel intérêt par rapport à
   <span class="notranslate">Le texte qu'il ne faut pas traduire</span>
directement dans l'article ?

Le 27/03/2010 16:24, denisb a écrit :

quel intérêt par rapport à
<span class="notranslate">Le texte qu'il ne faut pas traduire</span>
directement dans l'article ?

C'est plus facile à retenir pour des rédacteurs qui ne connaissent pas du tout HTML, mais sont un peu familiarisés avec la syntaxe spip...

Hum ! En même temps, il y a de grandes chances qu'ils fassent un copier/coller, donc tu n'as pas tort d'être dubitatif... :wink:

Sylvain

Je dirais, juste comme ça que

  • si google décide que class=« notranslate » s’appellera désormais class=« gnotranslate »… ben il faudra modifier soit tous les articles, soit seulement le modèle
  • si microsoft sort un traducteur avec « msnotrad », alors … pareil
  • si un matin on décide de mettre les éléments non traduits en italique, avec un modèle c’est plus simple

Paul (5eBleu)

Le 27 mars 2010 16:55, Sylvain <servicesnet@sylvain-mary.net> a écrit :

Le 27/03/2010 16:24, denisb a écrit :

quel intérêt par rapport à
Le texte qu’il ne faut pas traduire
directement dans l’article ?

C’est plus facile à retenir pour des rédacteurs qui ne connaissent pas du tout HTML, mais sont un peu familiarisés avec la syntaxe spip…

Hum ! En même temps, il y a de grandes chances qu’ils fassent un copier/coller, donc tu n’as pas tort d’être dubitatif… :wink:

Sylvain


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc

bonjour,
exact, bien vu !!!
cordialement

Paul a écrit :

bonjour,
à partir de http://doc.spip.org/@traiter_echap_code_dist
avec quelques adaptations il est possible d'appliquer la classe notranslate dans du texte avec cette fonction adaptée :
define('_PROTEGE_BLOCS', ',<(html|code|cadre|frame|script|pastraduire)(\s[^>]*)?>(.*)</\1>,UimsS');

function traiter_echap_pastraduire($regs) {
      list(,$att,$corps) = $regs;
      $echap = htmlspecialchars($corps); // il ne faut pas passer dans entites_html, ne pas transformer les &#xxx; du code !
      // ne pas mettre le <div...> s'il n'y a qu'une ligne
      if (is_int(strpos($echap,"\n"))) {
          // supprimer les sauts de ligne debut/fin
          // (mais pas les espaces => ascii art).
          $echap = preg_replace("/^[\n\r]+|[\n\r]+$/s", "", $echap);
          $echap = nl2br($echap);
          $echap = "<div class='' dir='ltr'><code$att class='notranslate'>"
          .$echap."</code></div>";
      } else {
          $echap = "<code$att class='notranslate' dir='ltr'>".$echap."</code>";
      }
      $echap = str_replace("\t", "&nbsp; &nbsp; &nbsp; &nbsp; ", $echap);
      $echap = str_replace(" ", " &nbsp;", $echap);
      return $echap;
  }

avec le raccourcis <pastraduire> </pastraduire>
la fonction est à placer dans mes_fonctions.php
c'est en test y a peu être des bugs à venir.
cordialement

bobof a écrit :

bonjour,
pour utiliser google traduction (http://translate.google.com/) au mieux et comme indiqué dans la doc il faut utiliser la classe *notranslate* dans les balises html pour que le soft ne traduise pas le contenu (pour les noms propres par exemple).

Comment encadrer le texte par un span avec cette classe par exemple :

<pastraduire>Texte a ne pas traduire</pastraduire>

ou

[pastraduire]Texte a ne pas traduire[/pastraduire]

pour obtenir après traitement :

<span class="notranslate">Texte a ne pas traduire</span>

sans utiliser le couteau suisse et la lame décoration (me semble t-il).

auriez vous des pistes a m'indiquer ?

cordialement

--
Signalez vos spams d'un simple clic. www.signal-spam.fr
<https://www.signal-spam.fr/&gt;

bonjour,
une première correction est à faire pour la validité xhtml et pour passer cette classe dans les tableaux, intertitre, liste à puces ou numérotées, etc.

modifier :
$echap = "<code$att class='notranslate' dir='ltr'>".$echap."</code>";

en :
$echap = "<span$att class='notranslate' dir='ltr'>".$echap."</span>";

en l'état cette classe est supprimée par la balise #INTRODUCTION, donc attention aussi avec <intro>.....</intro>

cordialement

bobof a écrit :

bonjour,
à partir de http://doc.spip.org/@traiter_echap_code_dist
avec quelques adaptations il est possible d'appliquer la classe notranslate dans du texte avec cette fonction adaptée :
define('_PROTEGE_BLOCS', ',<(html|code|cadre|frame|script|pastraduire)(\s[^>]*)?>(.*)</\1>,UimsS');

function traiter_echap_pastraduire($regs) {
        list(,$att,$corps) = $regs;
        $echap = htmlspecialchars($corps); // il ne faut pas passer dans entites_html, ne pas transformer les &#xxx; du code !
        // ne pas mettre le <div...> s'il n'y a qu'une ligne
        if (is_int(strpos($echap,"\n"))) {
            // supprimer les sauts de ligne debut/fin
            // (mais pas les espaces => ascii art).
            $echap = preg_replace("/^[\n\r]+|[\n\r]+$/s", "", $echap);
            $echap = nl2br($echap);
            $echap = "<div class='' dir='ltr'><code$att class='notranslate'>"
            .$echap."</code></div>";
        } else {
            $echap = "<code$att class='notranslate' dir='ltr'>".$echap."</code>";
        }
        $echap = str_replace("\t", "&nbsp; &nbsp; &nbsp; &nbsp; ", $echap);
        $echap = str_replace(" ", " &nbsp;", $echap);
        return $echap;
    }

avec le raccourcis <pastraduire> </pastraduire>
la fonction est à placer dans mes_fonctions.php
c'est en test y a peu être des bugs à venir.
cordialement

bobof a écrit :

bonjour,
pour utiliser google traduction (http://translate.google.com/) au mieux et comme indiqué dans la doc il faut utiliser la classe *notranslate* dans les balises html pour que le soft ne traduise pas le contenu (pour les noms propres par exemple).

Comment encadrer le texte par un span avec cette classe par exemple :

<pastraduire>Texte a ne pas traduire</pastraduire>

ou

[pastraduire]Texte a ne pas traduire[/pastraduire]

pour obtenir après traitement :

<span class="notranslate">Texte a ne pas traduire</span>

sans utiliser le couteau suisse et la lame décoration (me semble t-il).

auriez vous des pistes a m'indiquer ?

cordialement

--
Signalez vos spams d'un simple clic. www.signal-spam.fr
<https://www.signal-spam.fr/&gt;