GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Showroom SA:MP => Discussion démarrée par: MrFredo le 09 Septembre 2009, 03:17:03
-
Description
Suite au topic de xTig3rZx (http://www.gtaonline.fr/forums/index.php/topic,8435.0.html) j'ai réfléchi a la maniere la plus simple de faire un systeme de traduction j'ai donc penser envoyer depuis sa-mp des requete sur une page web que j'ai cree qui renvoi la requete vers le service de traduction de google (translate.google.com) cette page PHP recupere le code HTML de la page de google, recupere la traduction qu'on lui a demander , et l'affiche, ensuite sa-mp via le plugin pwncurl de dracoblue sur le forum sa-mp recupere donc se resultat, vous pouvez donc traduire des phrase directement depuis votre serveur
Avec l'include est fourni un FS de demonstration d'utilisation de la fonction de traduction
Téléchargement
(http://solidfiles.com/info_imgs/tkoh.jpg) (http://solidfiles.com/d/tkoh)
Installation
- Placer le fichier translate.php (qui se situe dans le dossier 'Votre Site') sur votre site et recuperer le lien pour acceder a la page
- Placer le fichier translate.pwn (qui se situe dans le dossier 'filterscripts') dans le dossier filterscripts de votre serveur
- Placer le plugins pwncurl (qui se situe dans le dossier 'plugins') dans le dossier plugins de votre serveur (attention pour windows utiliser le pwncurl.dll, pour linux utiliser pwncurl.so)
- Ouvrer le fichier translate.inc modifier la define 'URL_PAGE_TRANSLATE' en i indiquant l'url de votre page de traduction
- Ajouter 'pwncurl' a la ligne plugins de votre servers.cfg (si vous n'avez pas de ligne plugins ajouter la ;))
- Ajouter 'translate' a la ligne filterscripts de votre server.cfg (uniquement si vous voulez utiliser le FS de demo)
Utilisation
La fonction de traduction est tres simple a utilise:
native TranslateText(text[],const langText[], const langTranslate[]);
-> text = Le texte a traduire
-> langText = La langue du texte a traduire
-> langTranslate = La langue dans laquel on veux traduire le texte
/!\ pour les langue c'est en general les 2 premiere lettre de la langue, perso je n'utilise que fr et en pour francais et anglais, si vous voulez traduire d'autre langue allé sur google faire une traduction dans la langue que vous souhaiter et ensuite analyser l'url pour connaitre le racourcis de la langue dans laquel vous souhaiter traduire ;)
Utilisation du FS:
Taper /translate [langText] [langTranslate] [text]
Exemple 1: pour traduire un texte francais en anglais: /translate fr en Mon texte
Exemple 2: pour traduire un texte anglais en francais: /translate en fr Mon texte
-
Salut,
très beau fs, bravo^^
sinon, j'aurais une petite question, es-ce que le fs gèle le serveur au cours de la requête?
++Sim++
-
La j'sais pas trop te repondre faudrait posé la question sur le topic du plugin pwncurl desolé ^^
-
GG, sinon s' il gele le serveur c' est un peu dommage car deja que la syncro et un peu mal alors des freeze de qque seconde ca tuerais le serveur lol
Sinon GG
-
Je tient juste a vous signaler un bug au niveau des caractere speciaux il sont renvoyer par la page google comme entité HTML je vais sortir d'ici se soir normalement une correction de la page PHP qui decodera bien les entité HTML :)
-
Gagné frenchement sa fais plaisirs d'avoir un FS comme cela ... Merci beaucoup ...
++TZ++
-
J'ai ptet trouver un autre systeme que celui que j'utilisait pour recuperer la traduction aparament il existe une class PHP de google pour utiliser leur systeme de traduction :)
-
Rien à dire. GG
Il y en à ici ils sont née pour ça... :lmao
-
je t' avais dit que sur le site de dracoblue il y a un truc qui permet de le recuperer sans creer de page php ou autre mais juste avec la ligne de plugin =)
-
GG MrFredo sa va être utile a plus d'un :) dont moi.
++
Raiden
-
je t' avais dit que sur le site de dracoblue il y a un truc qui permet de le recuperer sans creer de page php ou autre mais juste avec la ligne de plugin =)
Oui j'vient de voir donc en gros z'avez plus qua prendre le systeme de dracoblue le mien ne sert plus a rien mdr
-
Mais bon t' as quand même fait du bon boulot lol
-
Euh J'arive pas a le mettre dans le pannel ... de mon server ...
Rajout xD : XD je veut pas me faire reconaissant mais se FS aurai jamais ete creer sans mon interpelation xD ... erci MrFredo pour tooooouuuut
-
Ba la mtn vu que ya une fonction plus simple qui a été trouvé (c'elle sur le site de dracoblue) mon systeme devient obselete XD
-
Lol je fait quoi alors ??
-
béh rien mdr
-
Oui mais je veut un traducteur u_u je fais comment S.V.P. Merci ...
++TZ++
-
Tu choisit un des deux ... :dry
++
MrT®
-
soit tu fais le tien avec un dictonnaire de mots c' est la méthode la plus complexe soit tu prend celui dr MrFredo
-
Ou plus simplement vous utiliser celui de dracoblue avec sont plugin pawncurl -> http://www.sourcepod.com/ikehuw82-224 (http://www.sourcepod.com/ikehuw82-224)
N'oublier pas que le plugin pawncurl est tjr indispensable pour cette fonction qui fait exactement la meme chose que la mienne mais en beaucoup plus simple ^^ (pas besoin de fichier PHP pour interpreter le resultat de la traduction google)
-
le voila le fameux code =)
-
Re all...
FS de .... cher plus comment xD ...
Errors :
C:Documents and SettingsAurélienBureauserver 1filterscripts rad.pwn(6) : warning 203: symbol is never used: "GoogleTranslate"
C:Documents and SettingsAurélienBureauserver 1filterscripts rad.pwn(6 -- 40) : error 013: no entry point (no public functions)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Script :
//googletranslate.inc
//by 0rb (yom)
//26-04-09 14:06
GoogleTranslate(text[], from[], to[], size = sizeof text)
{
new
tmp[384],
idx = -1,
pos
;
while (text[++idx])
{
switch (text[idx])
{
case ' ' : tmp[idx] = '+';
default : tmp[idx] = text[idx];
}
}
format(tmp, sizeof tmp, "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=%s&langpair=%s%%7C%s", tmp, from, to);
pwncurl_get(tmp, tmp, sizeof tmp);
pos = strfind(tmp,"ext":"");
if (pos != -1)
{
strdel(tmp, 0, pos + 6);
strdel(tmp, strfind(tmp, ""}, "res"), sizeof tmp);
else
{
format(tmp, size, text);
}
return tmp;
}
Double post
Aidez moi SVP ... Merci ...
++TZ++
Double post
On peut m'aidez Merci ...
-
Salut,
commence par utiliser la fonction edit, suffit les triple post....
ensuite, tu dois comprend que le fs de MrFredo est bon, tu n'a qu'à remplacer sa fonction qui va chercher le résultat par celle-ci
Ton problème est que tu n'as aucune fonction public, bref ton code ne fera jamais rien, il ne sera jamais appelé
++Sim++