Visualizzazione risultati 1 fino 26 di 26

Discussione: Creare un "traduttore"

  1. #1
    Guest

    Predefinito Creare un "traduttore"

    Salve,volevo creare un traduttore,e da quanto ho capito si può fare sul proprio sito altervista.Mi sono appena registrato,e non so NULLA riguardo php e roba varia.Potete spiegarmi come creare questo traduttore PASSO PASSO?Ah,è un traduttore che sostituisce le lettere,ad esempio invece di M->N e così via...spero possiate aiutarmi

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Passo passo sarebbe una camminata di parecchi chilometri. Magari ti diamo delle indicazioni sulla strada, e poi fai da te

    Per traduttore assumo tu intenda qualcosa che prende un testo e ne mostra una versione in qualche modo modificata. Quindi ti serve un form per scrivere il testo, e poi uno script php che elabora questo testo, e lo mostra in una pagina.

    Puoi fare questo in un solo file, all'incirca così:

    Codice PHP:
    <?php

    function traduci($testo)
    {
    // questa funzione esegue la traduzione, e mette in $testo il risultato
    // ...
    // ...

    return $testo;
    }

    ?>
    <!doctype html>
    <html><head>
    <title>Traduttore</title>
    <head><body>

    <? if (isset($_POST['testo'])): // è stato già inviato un testo da tradurre? ?>

    <h2>Testo tradotto</h2>
    <p><?= htmlentities( traduci($_POST['testo']) ) ?>

    <? endif; ?>

    <form method="post">
    <textarea name="testo"></textarea>
    <input type="submit" >
    </form>

    </body></html>
    Questo è il minimo che ti serve come contorno. Il sugo però è la funzione traduci(), che ti devi scrivere tu. Magari prima leggiti la documentazione sulle stringhe, le funzioni disponibili, e probabilmente la guida per str_replace.

  3. #3
    Guest

    Predefinito

    ....solo che non ho capito come inserire il codice php in un sito.E da prendo il "form"?Perchè poi come tradurre più o meno avevo letto qualcosa...

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Uno script php non è che una pagina con estensione .php. Dentro ci puoi scrivere normalmente in html, ed il codice php finisce nei tag <? .... ?>.

    Il contenuto del form (in quell'esempio) ti arriva in $_POST['testo']. Nell'esempio, inoltre, lo passo alla funzione traduci() per fare il lavoro sporco, quindi ti basterebbe scrivere il codice per la "traduzione" li dentro.

  5. #5
    Guest

    Predefinito

    Bene,ora ho capito...ma il fatto è che,anche andando sul mio sito,dice:"Crea la tua home page, devi chiamarla: index.html, index.htm oppure index.php, tutto minuscolo",ma se aggiungo /index.php all'indirizzo,mi dice che la pagina non esiste

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Beh, devi creare il file, e metterci dentro lo script. Poi farlo via pannello di controllo \ gestione file.

  7. #7
    Guest

    Predefinito

    Ora ho capito...ho inserito il tuo codice:
    Codice PHP:
    <?php

    function traduci($testo)
    {
    // questa funzione esegue la traduzione, e mette in $testo il risultato
    // ...
    // ...

    return $testo;
    }

    ?>
    <!doctype html>
    <html><head>
    <title>Traduttore</title>
    <head><body>

    <? if (isset($_POST['testo'])): // è stato già inviato un testo da tradurre? ?>

    <h2>Testo tradotto</h2>
    <p><?= htmlentities( traduci($_POST['testo']) ) ?>

    <? endif; ?>

    <form method="post">
    <textarea name="testo"></textarea>
    <input type="submit" >
    </form>

    </body></html>
    Scrivendo qualsiasi cosa,dopo naturalmente esce "Testo tradotto".Ho bisogno di sapere due cose:
    1.Quale codice devo inserire per far sì che ad una certa lettera ne corrispondi un'altra?Per esempio se scrivo A,tradotto diventa B...
    2.Nella pagina index c'è solo lo spazio dove scrivere:quale codice serve per mettere un titolo,magari "colorato" o in corsivo?

  8. #8
    Guest

    Predefinito

    Allora,ho creato il file index.php:
    Codice PHP:
    <html>
    <
    head>
    <
    title>Cerca</title>
    </
    head>
    <
    body>
    <
    form action="cerca.php" method="post">
    <
    textarea name="parola"></textarea>
    <
    input type="submit" name="Cerca">
    </
    form>
    </
    body>
    </
    html>
    E fin qui nessun problema:non riesco però a capire cosa devo mettere nel file cerca.php per far in modo che ad una lettera ne corrisponda un'altra!

  9. #9
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Vedi l'ultimo paragrafo nel mio primo post.

  10. #10
    Guest

    Predefinito

    Ci ho provato,ma non riesco a farlo :(

  11. #11
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Non capisco a che ti serva spendere giorni e giorni (anche molto di più) a creare uno script che esiste già.
    Comunque, come ti è già stato detto, dovresti creare una funzione.
    Ad esempio:
    Codice PHP:
    function traduci($testo){
    // rilevi ogni parola
    // traduci parola per parola, cercando il suo significato nel database
    return $testo; // $testo corrisponde all'insieme delle parola tradotte
    }
    echo
    traduci("ciao come stai?");
    Questo script traduce parola per parole e mi sembra una perdita di tempo perfezionarlo...
    Comunque, chi vuole ti può benissimo aiutare... questo è un forum!

  12. #12
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    @radiodelmomento

    a parte che per imparare è la miglior motivazione di tutte, almeno avresti potuto leggere con attenzione il primo post, prima di rispondere. Riporto qua il pezzo utile:
    Citazione Originalmente inviato da baratozzo Visualizza messaggio
    [...] Ah,è un traduttore che sostituisce le lettere,ad esempio invece di M->N e così via...spero possiate aiutarmi
    @baratozzo

    se spieghi cosa vuoi fare E i problemi che hai incontrato, se ne può discutere qua.

  13. #13
    Guest

    Predefinito

    Insomma,come ho già precisato,non so niente di php e roba varia...Allora,devo creare un traduttore che sostituisce le lettere.Ad esempio se e=r e r=s se si scrive "ererererere" il risultato sarà "rsrsrsrsrsr".Poi non ho capito se creare sia il file index che il cerca,o fare tutto in uno stesso file....quello che vorrei sapere,cosa dovrei mettere in index.php in modo da avere questo traduttore che sostituisce le lettere?Siccome sono poco pratico,mi servirebbe direttamente tutto il file index.php,modificando solo il modo in cui vanno sostituite (ad es. se nel codice che mi date ad a corrisponde c,io scriverò che ad a corrisponde una precisa lettera)...spero di non pretendere troppo

  14. #14
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Cosa ne dici della funzione strtr()? Vedi spiegazione ed esempi più in basso.

  15. #15
    Guest

    Predefinito

    Si,è l'ideale!Quindi ora come devo procedere?

  16. #16
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Guardi gli esempi sulla guida, guardi il codice che hai in mano, fai 1+1. Buon lavoro!

  17. #17
    Guest

    Predefinito

    Mmh,ho un problema.ho messo questo codice:
    Codice PHP:
    <?php
    echo strtr("baab", "ab", "01"),"\n";

    $trans = array("ab" => "01");
    echo
    strtr("baab", $trans);

    ?>
    <!doctype html>
    <html><head>
    <title>Traduttore</title>
    <head><body>

    <? if (isset($_POST['testo'])): // è stato già inviato un testo da tradurre? ?>

    <h2>Testo tradotto</h2>
    <p><?= htmlentities(isset($_POST['testo'])) ?>

    <? endif; ?>

    <form method="post">
    <textarea name="testo"></textarea>
    <input type="submit" >
    </form>

    </body></html>
    (ho messo,giusto per vedere,l'esempio della strtr()
    e il risultato è che sopra il box dove mettere il testo da tradurre c'è la scritta 1001 ba01 e poi,qualunque testo invio,il risultato è sempre "1".Cosa ho sbagliato?

  18. #18
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Sono un tipo un po' distratto...
    Comunque per imparare diciamo che solitamente si comincia da qualche guida e poi si passa alla fase pratica, e non da un traduttore.
    Comunque l'errore sta qui:
    Codice PHP:
    <?= htmlentities(isset($_POST['testo'])) ?>
    La funzione isset() restituisce 1 (TRUE) se è settata o 0 (FALSE) se non è settata.
    Inoltre dovresti creare una funzione, perché in questo modo lo script non ha senso.
    Ciao!

  19. #19
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    @baratozzo:

    Considera il primo codice che ti ho scritto in alto. C'è una funzione traduci che riceve il testo in una variabile $testo, dello spazio vuoto, ed una riga che rimanda il $testo al resto della pagina, per poi essere visualizzato.

    Nello spazio vuoto vanno messe le chiamate a strtr() per tradurre quello che vuoi.

    strtr() prende tre parametri: il testo da tradurre, i caratteri da sostituire, ed i caratteri con cui sostituirli. Il risultato è il testo con quei caratteri rimpiazzati.

    Ad esempio, per trasformare tre maiuscole in minuscole, scriveresti:
    Codice PHP:
    $testo = strtr($testo, 'ABC', 'abc');
    Pari pari l'esempio #1 nella guida di strtr(), qualcosa che avresti potuto leggere anche da solo eh

  20. #20
    Guest

    Predefinito

    Sto andando in una confusione pazzesca...
    Potrei sapere l'INTERO codice da mettere in index.php? spero di non pretendere troppo

  21. #21
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    l'errore sta qui:
    Codice PHP:
    <?= htmlentities(isset($_POST['testo'])) ?>
    Non credo che questa frase sia confusionaria.
    Dato che isset() restituisce 0 o 1, devi eliminarlo.
    Inoltre devi creare una funzione: in questo modo restituisci all'utente quello che egli ha scritto.
    Ciao!

  22. #22
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Citazione Originalmente inviato da baratozzo Visualizza messaggio
    Sto andando in una confusione pazzesca...
    Potrei sapere l'INTERO codice da mettere in index.php? spero di non pretendere troppo
    L'intero codice è quello che ti ho scritto nel mio primo post. Al posto dei puntini di sospensione, ci metto una o più righe come questa

    Codice PHP:
    $testo = strtr($testo, 'ABC', 'abc');
    che traducano quel che vuoi tradurre.

  23. #23
    Guest

    Predefinito

    Grazie...alla fine ce l'ho fatta!!Mi è bastato fare (ad esempio):
    Codice PHP:
    <?php

    function traduci($testo)
    {
    $testo = strtr($testo, 'abcde', 'bcdef');
    // ...
    // ...

    return $testo;
    }

    ?>
    <!doctype html>
    <html><head>
    <title>Traduttore</title>
    <head><body>

    <? if (isset($_POST['testo'])): // è stato già inviato un testo da tradurre? ?>

    <h2>Testo tradotto</h2>
    <p><?= htmlentities( traduci($_POST['testo']) ) ?>

    <? endif; ?>

    <form method="post">
    <textarea name="testo"></textarea>
    <input type="submit" >
    </form>

    </body></html>
    Un'ultima cosa: quando dovrebbe apparire la scritta "è stato già inviato un testo da tradurre?"

  24. #24
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Non appare mai, è un commento del codice php.

  25. #25
    Guest

    Predefinito

    Ok,ora ho bisogno dell'ultima cosa: Vorrei spostare il box dove inserire la parola più sotto e al centro,per poter scrivere anche un titolo appena sopra...per poter mosdificare poi carattere/colore al testo si usa il codice html?E come inserisco uno sfondo con due colori?

  26. #26
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    L'html si usa per modificare gli elementi e la struttura di una pagina, per l'aspetto puoi usare il css.

    C'è una sezione apposita qua sul forum, e la ricerca ti aiuterà. Suggerisco magari di guardarti una guida o due prima.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •