Traduction en fonction de la langue de l'utilisateur
3 participants
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1 • Partagez
Traduction en fonction de la langue de l'utilisateur
Détails techniques
Version du forum : phpBB2Poste occupé : Administrateur
Navigateur(s) concerné(s) : Opera
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : https://altitudetropicale.forums-actifs.com/
Description du problème
Bonjour à tous,Suite à quelques demandes de la part de certains membres, je vais d'ici peu mettre en application ce tutoriel
https://forum.forumactif.com/t387673-traduction-en-plusieurs-langues#3256327
Le tutoriel fonctionne à merveille sur mon forum d'essai mais, il manque une fonctionnalité primordiale pour que le système soit viable : une traduction automatique des textes insérées dans les messages.
Le tutoriel spécifie "Cette astuce peut également être utilisée dans les messages" mais en insérant le html spécifique à chaque langue donc, en ayant traduit par avance le texte.
Pour des textes servant de base aux discussions, cela n'est pas un problème mais pour ce qui est des écrits des membres, je ne vois mal en assurer systématiquement la traduction.
Admettons par exemple qu'un anglais, un espagnol et un italien participent à une discussion en écrivant dans leur langue natale, est-il possible que chaque participant puisse avoir une traduction des écrits dans sa propre langue ?
Le module de traduction de google ne fonctionnera pas dans ce cas vu qu'il assure la traduction d'une seule langue. Autre soucis avec ce traducteur, on est systématiquement déconnecté lors de son utilisation.
Si quelqu'un a une idée pour sortir nos forums de leur carcan linguistique!!!!!!
Dernière édition par demeter1 le Ven 17 Jan 2020 - 16:50, édité 3 fois
Re: Traduction en fonction de la langue de l'utilisateur
Bonjour @demeter1
Il me semble que l'API google translate est devenu payante et de plus je ne suis pas sur que l'on puisse la mettre en place sur FA.(pour avoir une détection auto)
Il y a sinon Yandex qui propose une Api gratuite.
J'avais déjà bidouillé un peu avec cette API une sorte de panel escamotable donnant accès à une traduction automatique avec détection de la langue d'origine. ( si je remet la main dessus je posterai le code )
Cdt.
Il me semble que l'API google translate est devenu payante et de plus je ne suis pas sur que l'on puisse la mettre en place sur FA.(pour avoir une détection auto)
Il y a sinon Yandex qui propose une Api gratuite.
J'avais déjà bidouillé un peu avec cette API une sorte de panel escamotable donnant accès à une traduction automatique avec détection de la langue d'origine. ( si je remet la main dessus je posterai le code )
Cdt.
Re: Traduction en fonction de la langue de l'utilisateur
Bonjour Adam,
merci c'est sympa
Je vais aller de ce pas lire la documentation.
merci c'est sympa
Je vais aller de ce pas lire la documentation.
Re: Traduction en fonction de la langue de l'utilisateur
Hello Demeter
J'ai retrouvé un code que j'avais avec google translate et qui est toujours fonctionnel qui permet de traduire directement les posts malheureusement que vers une seule langue cela donne ceci si le code t’intéresse dis moi le
J'ai pas encore remis la main sur le code Yandex mais je vais le retrouver ;-)
*edit je viens de le retrouver ;-)
le voici pour une page html mais on peut le faire fonctionner sur le forum je pense en mettant les différentes parties css, html et script aux bons endroits.. et l'améliorer c'est un peu moche ;-)
il faut mettre une clé api dans le code pour qu'il fonctionne
https://translate.yandex.com/developers/keys
Cdt
J'ai retrouvé un code que j'avais avec google translate et qui est toujours fonctionnel qui permet de traduire directement les posts malheureusement que vers une seule langue cela donne ceci si le code t’intéresse dis moi le
J'ai pas encore remis la main sur le code Yandex mais je vais le retrouver ;-)
*edit je viens de le retrouver ;-)
le voici pour une page html mais on peut le faire fonctionner sur le forum je pense en mettant les différentes parties css, html et script aux bons endroits.. et l'améliorer c'est un peu moche ;-)
il faut mettre une clé api dans le code pour qu'il fonctionne
https://translate.yandex.com/developers/keys
- Code:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('.pull-me').click(function() {
$('.panel').slideToggle('slow');
});
});
$(document).ready(function() {
var url = "https://translate.yandex.net/api/v1.5/tr.json/translate", keyAPI = "ICI LA CLE API";
document.querySelector("#translate").addEventListener("click", function() {
var xhr = new XMLHttpRequest, textAPI = document.querySelector("#source").value, langAPI = document.querySelector("#lang").value;
data = "key=" + keyAPI + "&text=" + textAPI + "&lang=" + langAPI;
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(data);
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var res = this.responseText;
document.querySelector("#json").innerHTML = res;
var json = JSON.parse(res);
if (json.code == 200) {
document.querySelector("#output").innerHTML = json.text[0];
} else {
document.querySelector("#output").innerHTML = "Error Code: " + json.code;
}
}
};
}, false);
});
</script>
<style>
body {
margin: 0 auto;
padding: 0;
text-align: center;
}
.panel {
background: #155F9E;
background-size: 90% 90%;
height: 600px;
display: none;
font-family: garamond, times-new-roman, serif;
}
.panel p {
text-align: center;
color: white;
}
.slide {
margin: 0;
padding: 0;
border-top: solid 2px #0D395E;
}
.pull-me {
display: block;
position: relative;
right: -125px;
width: 150px;
height: 20px;
font-family: arial, sans-serif;
font-size: 14px;
color: #ffffff;
background: #0A2B4A;
text-decoration: none;
-moz-border-bottom-left-radius: 5px;
-moz-border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
}
.pull-me p {
text-align: center;
}
.bx {
width: 100%;
display: block;
margin: 10px 0;
padding: 10px;
border: 1px dashed #000;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
</style>
</head>
<body><div class="panel">
<br />
<br />
<p>Source</p>
<textarea id="source" class="bx">Привет, Адам, спасибо-это очень хорошо, я пойду, чтобы не читать документацию.
</textarea>
<select name="to" id="lang">
<option value="fr">French</option>
<option value="es">Spanish</option>
<option value="it">Italian</option>
<option value="de">Deutsch</option>
<option value="hy">Armenian</option>
<option value="be">Belorussian</option>
<option value="bg">Bulgarian</option>
<option value="hu">Hungarian</option>
<option value="nl">Dutch</option>
<option value="el">Greek</option>
<option value="da">Danish</option>
<option value="az">Azerbaijani</option>
<option value="sq">Albanian</option>
<option value="tr">Turkish</option>
<option value="ca">Catalan</option>
<option value="lv">Latvian</option>
<option value="lt">Lithuanian</option>
<option value="mk">Macedonian</option>
<option value="en" selected="selected">English</option>
<option value="no">Norwegian</option>
<option value="pl">Polish</option>
<option value="pt">Portuguese</option>
<option value="ro">Romanian</option>
<option value="ru">Russian</option>
</select>
<button id="translate">Translate</button>
<p>json</p><div id="json" class="bx"></div>
<p>Output</p><div id="output" class="bx"></div>
</div>
<p class="slide"><a href="#" class="pull-me">TRANSLATE</a></p>
</body>
</html>
Cdt
Re: Traduction en fonction de la langue de l'utilisateur
Bonjour Adam,
super , un grand merci merci pour ce code
Je vais voir si j'arrive à l'appliquer aux messages.
super , un grand merci merci pour ce code
Je vais voir si j'arrive à l'appliquer aux messages.
Re: Traduction en fonction de la langue de l'utilisateur
Bonjour à tous,
Bon, j'arrive à quelque chose de plus ou moins concluant.
1/La traduction en français se fait bien lorsqu'il ne s'agit que d'un texte mais dés qu'une image est rajoutée, la traduction ne se fait plus. Bizarrement, avec les autres langues le soucis n'est pas effectif.
2/La traduction ne se fait que sur le premier message
3/Le panneau de traduction s'ouvre sur tous les messages même s'il l'on ne souhaite n'en ouvrir qu'un seul.
css
viewtopic_body mis sous hide vu qu'il contient mon identifiant de chez Yandex
Le script est inséré dans la premiére partie du template.
J'ai doublé la partie message pour conserver un affichage direct.
la partie
Pour un visuel qui sera très certainement plus explicatif
https://crevettes-passion.forumgratuit.org/t24-phpbb2widget-afficher-les-derniers-message-d-un-forum-specifique#
Si vous voyez ce qui cloche.
Merci par avance pour votre aide.
Bon, j'arrive à quelque chose de plus ou moins concluant.
1/La traduction en français se fait bien lorsqu'il ne s'agit que d'un texte mais dés qu'une image est rajoutée, la traduction ne se fait plus. Bizarrement, avec les autres langues le soucis n'est pas effectif.
2/La traduction ne se fait que sur le premier message
3/Le panneau de traduction s'ouvre sur tous les messages même s'il l'on ne souhaite n'en ouvrir qu'un seul.
css
- Code:
.panel {
background: #155F9E;
background-size: 90% 90%;
height: 600px;
display: none;
font-family: garamond, times-new-roman, serif;
}
.panel p {
text-align: center;
color: white;
}
.slide {
margin: 0;
padding: 0;
border-top: solid 2px #0D395E;
}
.pull-me {
display: block;
position: relative;
right: -125px;
width: 150px;
height: 20px;
font-family: arial, sans-serif;
font-size: 14px;
color: #ffffff;
background: #0A2B4A;
text-decoration: none;
-moz-border-bottom-left-radius: 5px;
-moz-border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
}
.pull-me p {
text-align: center;
}
.bx {
width: 100%;
display: block;
margin: 10px 0;
padding: 10px;
border: 1px dashed #000;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
viewtopic_body mis sous hide vu qu'il contient mon identifiant de chez Yandex
Le script est inséré dans la premiére partie du template.
J'ai doublé la partie message pour conserver un affichage direct.
la partie
- Code:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
Pour un visuel qui sera très certainement plus explicatif
https://crevettes-passion.forumgratuit.org/t24-phpbb2widget-afficher-les-derniers-message-d-un-forum-specifique#
Si vous voyez ce qui cloche.
Merci par avance pour votre aide.
Re: Traduction en fonction de la langue de l'utilisateur
Hello Demeter
J'ai tenté de mon coté en enlevant le panel et j'arrive au même résultat cela traduit que le premier post.
Pas d'erreurs dans la console ou c'est vraiment tout bête et je passe à coté ,-) sinon ça dépasse mes compétences ;-)
Peut être que @ea @no_way si ils passent par la ;-)
*une possibilité de mettre le panel disponible sur toutes les pages comme outil mais il faudra copier coller le code à traduire..
J'ai tenté de mon coté en enlevant le panel et j'arrive au même résultat cela traduit que le premier post.
Pas d'erreurs dans la console ou c'est vraiment tout bête et je passe à coté ,-) sinon ça dépasse mes compétences ;-)
Peut être que @ea @no_way si ils passent par la ;-)
*une possibilité de mettre le panel disponible sur toutes les pages comme outil mais il faudra copier coller le code à traduire..
Re: Traduction en fonction de la langue de l'utilisateur
Bonjour Adam,
merci pour cet essai et le code initial.
J'ai pensé également à cette possibilité de mettre le panneau de traduction à disponibilité des membres. Hélas, je sais d'avance qu'un simple copier/coller sera limite insurmontable pour au moins 80% de la communauté.
Dans l'idéal, il faudrait presque une traduction simultanée en fonction de la langue choisie dans le profil tout en conservant au dessus le texte d'origine (pure utopie à mon avis ou alors c'est digne d'un génie du codage ).
merci pour cet essai et le code initial.
J'ai pensé également à cette possibilité de mettre le panneau de traduction à disponibilité des membres. Hélas, je sais d'avance qu'un simple copier/coller sera limite insurmontable pour au moins 80% de la communauté.
Dans l'idéal, il faudrait presque une traduction simultanée en fonction de la langue choisie dans le profil tout en conservant au dessus le texte d'origine (pure utopie à mon avis ou alors c'est digne d'un génie du codage ).
Re: Traduction en fonction de la langue de l'utilisateur
Bonjour, Attention, cela fait 6 jours que nous n'avons pas de nouvelles concernant votre demande, si vous ne voulez pas voir votre sujet déplacé à la corbeille, merci de poster dans les 24h qui suivent ce message. Si votre sujet est résolu, merci d'éditer votre premier message et de cocher l'icône « résolu » |
Re: Traduction en fonction de la langue de l'utilisateur
Bonjour, Attention, cela fait 6 jours que nous n'avons pas de nouvelles concernant votre demande, si vous ne voulez pas voir votre sujet déplacé à la corbeille, merci de poster dans les 24h qui suivent ce message. Si votre sujet est résolu, merci d'éditer votre premier message et de cocher l'icône « résolu » |
Re: Traduction en fonction de la langue de l'utilisateur
Bonjour, Attention, cela fait 6 jours que nous n'avons pas de nouvelles concernant votre demande, si vous ne voulez pas voir votre sujet déplacé à la corbeille, merci de poster dans les 24h qui suivent ce message. Si votre sujet est résolu, merci d'éditer votre premier message et de cocher l'icône « résolu » |
Re: Traduction en fonction de la langue de l'utilisateur
Bonjour, Nous n'avons plus de nouvelle de l'auteur de ce sujet depuis plus de 8 jours. Nous considérons donc ce problème comme résolu ou abandonné. La prochaine fois, merci de nous tenir au courant de l'évolution de votre problème, ou pensez à faire un UP régulièrement ! Ce sujet est archivé afin de ne pas perdre les réponses apportées. |
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum