Script traduttore - Versione stampabile +- Forum di Matriz (https://www.matriz.it/forum) +-- Forum: Programmazione Web (https://www.matriz.it/forum/forum-26.html) +--- Forum: PHP e altri linguaggi lato server (https://www.matriz.it/forum/forum-27.html) +--- Discussione: Script traduttore (/thread-330.html) |
Script traduttore - Chandler - 05/07/2011 Ciao Mattia! Se ad esempio volessi realizzare un traduttore che traduce delle parole in altro parole... si potrebbe fare con uno script php?? Se si, come funzionerebbe in linea di base?? Grazie Saluti RE: Script traduttore - Mattia - 05/07/2011 Una versione basilare potrebbe essere quella di avere un elenco di parole con il corrispettivo tradotto e sostituire le parole che hanno una traduzione. Lo script potrebbe essere così: Codice PHP: <?php RE: Script traduttore - Chandler - 07/07/2011 (05/07/2011 07:14)Mattia Ha scritto: Una versione basilare potrebbe essere quella di avere un elenco di parole con il corrispettivo tradotto e sostituire le parole che hanno una traduzione. Ok, ma se per comodità creassi uno script dal quale inserire la parola in una lingua e la corrispondente nell'altra?? RE: Script traduttore - Mattia - 08/07/2011 Non ho capito cosa intendi. RE: Script traduttore - Chandler - 08/07/2011 Per comodità collegare lo script di traduzione (con alcune parole già inserite) ad un'altra pagina con un form che ti consente di inserire nel traduttore le parole di una lingua e le corrispondenti tradotte nell'altra lingua...mi spiego?? Un pò come se fosse un content management del traduttore...così ogni volta posso aggiungere nuove parole e arricchire il traduttore... RE: Script traduttore - Mattia - 11/07/2011 Per fare una cosa del genere dovresti salvare le parole in un database o in un file di testo. Il codice sarà più o meno così: Codice PHP: <?php RE: Script traduttore - Naroku95 - 31/10/2011 Ma scusate, perchè dovete creare uno script di traduzione se ne esistono a centinaia sulla rete di professionali e c'è anche Google Translator? RE: Script traduttore - Chandler - 11/03/2012 Ciao Naroku, la tua domanda è giustissima... ma quello che voglio fare io è un tipo di traduttore diverso dai "classici" che si trovano su web... volevo fare una prova sulla realizzazione di traduzione da un dialetto ad un altro dialetto... è una cosa simpatica e per far si che funzioni...dovrei realizzarlo ad hoc per come stavo cercando di spiegare... Metti che funziona solo con 2 lingue (i dialetti), lingua 1 e lingua 2. Tramite uno script (es. content management) voglio poter inserire la parola/frase della lingua1 e la corrispondente della lingua2...e arricchire, a mano a mano, il traduttore con frasi e detti...mi spiego? RE: Script traduttore - Mattia - 11/03/2012 Hai provato la soluzione che ti ho proposto io o hai avuto dei problemi? RE: Script traduttore - Chandler - 09/09/2012 Ciao Mattia, scusa la grossa parentesi ma mi ci sono potuto mettere solo adesso... Allora...cominciamo dall'inizio: -ho creato la pagina "traduttore.html" con il seguente codice Codice: <html> Codice PHP: <?php Inoltre, come mi hai suggerito tu, ho fatto anche la pagina "edit_trad.html" che serve per "aggiugnere da un pannello a parte le parole e le corrispondenti (con il codice che hai postato su) ma non sono riuscito a collegarlo ad un file txt per memorizzare le parole (ma non si potrebbe collegare direttamente a translate.php oppure si devono collegare entrambi al file di testo??). Lo scopo sarebbe di collegare i tre file e farli funzionare Saluti RE: Script traduttore - Mattia - 10/09/2012 La cosa migliore sarebbe quella di salvare i testi in un database. Quindi, premettendo che il salvataggio avverrà in un database MySQL, al posto del commento "Qui si deve inserire la parola e la relativa traduzione nel database o nel file di testo", puoi inserire questo codice: Codice PHP: mysql_connect(/*Dati di connessione al database*/); //Ti conviene fare un file esterno dove effettui la connessione al database e includerlo all'inizio di ogni pagina dove ti serve La tabella "tabella_traduzioni" avrà i due campi TEXT "word" e "translation". La chiave primaria sarà "word", così, facendo il REPLACE, esegue automaticamente l'aggiornamento se la parola è già presente nel database o l'inserimento non è ancora presente. Nel file "translate.php" devi sostituire il codice dove crei l'array $trans con questo: Codice PHP: $trans = array(); RE: Script traduttore - Chandler - 10/09/2012 Ciao Mattia, credi che l'uso del database mysql sia indispensabile?? Ci sono altre soluzioni?? (10/09/2012 06:25)Mattia Ha scritto: La cosa migliore sarebbe quella di salvare i testi in un database. Quindi, premettendo che il salvataggio avverrà in un database MySQL, al posto del commento "Qui si deve inserire la parola e la relativa traduzione nel database o nel file di testo", puoi inserire questo codice: RE: Script traduttore - Mattia - 11/09/2012 Se non vuoi creare l'array a mano, devi salvare le traduzioni da qualche parte. Se non puoi utilizzare un database MySQL, puoi utilizzare un file di testo, ma è molto più difficile da gestire, oppure un database SQLite che puoi interrogare come un normale database, ma è composto da un unico file che sarà presente sul tuo server. Se vuoi utilizzare SQLite, non devi cambiare molto il codice che ti ho proposto prima. Ecco le funzioni che devi sostituire:
RE: Script traduttore - Chandler - 11/09/2012 prima di fare ciò, però, come creo il database sqlite?? Come lod evo chiamare?? lo devo attivare da qualche parte?? (di sqlite nn ci capisco davvero una cippa) RE: Script traduttore - Mattia - 12/09/2012 Su AlterVista, dove stai facendo le prove, SQLite dovrebbe essere già attivo senza dover fare nulla. Per gestire il database SQLite puoi utilizzare Adminer che è un software simile a PhpMyAdmin con le differenze che è formato da un solo file e puoi gestire oltre ai database MySQL anche PostgreSQL, SQLite, MS SQL e Oracle. Dopo che hai scaricato Adminer, caricalo sul tuo server ed eseguilo via browser. Seleziona la lingua italiana in alto a sinistra, se non è già selezionata, e nell'autenticazione seleziona "SQLite 3" (mi sembra che sia questa la versione presente su AlterVista, ma, se ti dà problemi, prova con la versione 2). A questo punto puoi creare il database cliccando su "Crea nuovo database", inserisci il nome del database che vuoi creare (possibilmente tutto in minuscolo e senza spazi e altri caratteri strani; per esempio, "traduzioni.db") e premi il pulsante "Salva". Se tutto va a buon fine, dovresti essere all'interno del database vuoto. Clicca su "Crea tabella" per creare una nuova tabella e inserisci il nome della tabella (se non vuoi modificare lo script che ti ho scritto sopra, puoi inserire "tabella_traduzioni") e più sotto i due campi. Il primo campo sarà "word" di tipo text e il secondo sarà "translation" sempre di tipo text. Dopo aver creato la tabella bisogna modificarne gli indici per far funzionare correttamente il REPLACE. Quindi devi creare l'indice sulla colonna "word" di tipo UNIQUE. Con questo hai creato correttamente il database e ti ritroverai il file "traduzioni.db" (o con un altro nome che hai scelto) nella cartella. RE: Script traduttore - Chandler - 12/09/2012 All'autenticazione, sia se seleziono SQLite 2 che 3, mi da "Estensioni non presenti"... è possibile che sqlite non sia attivo? RE: Script traduttore - Mattia - 13/09/2012 Su un sito che ho su AlterVista ho utilizzato SQLite e continua a funzionare correttamente. Ho provato anche ad accedere al database di quel sito e crearne uno nuovo tramite Adminer e non ho avuto problemi. Forse il problema è dovuto al fatto che AlterVista utilizza ancora come default PHP 4 e non PHP 5. Prova a creare un file .htaccess nella root del tuo sito con all'interno il seguente codice: Codice: AddHandler av-php5 .php RE: Script traduttore - Chandler - 14/09/2012 (13/09/2012 06:30)Mattia Ha scritto: Su un sito che ho su AlterVista ho utilizzato SQLite e continua a funzionare correttamente. Ho provato anche ad accedere al database di quel sito e crearne uno nuovo tramite Adminer e non ho avuto problemi. Ho fatto il file ed effettivamente adesso entra ma non mi permette comunque di creare il database...in allegat gli stamp: RE: Script traduttore - Mattia - 14/09/2012 Prova ad entrare senza inserire il nome del database. Crea il database come ti ho spiegato nel messaggio precedente. RE: Script traduttore - Chandler - 16/09/2012 Ok, ci sono riuscito!! Ho sistemato il codice come mi hai detto tu...ma sicuramente c'è qualcosa che non va...riesci a dar eun'occhiata ai files?? Thanks RE: Script traduttore - Mattia - 17/09/2012 Nel file "traduttore.html" devi chiudere il tag form dopo tutti i campi del form e non prima. Inoltre mancano anche i tag body. Codice: <html> RE: Script traduttore - Chandler - 18/09/2012 Grazie, ma se clicco su traduci mi stampa "questo è il testo da tradurre" RE: Script traduttore - Mattia - 18/09/2012 Dove c'è: Codice PHP: $text = 'Questo è il testo da tradurre.'; //Assegno a una variabile il testo da tradurre Devi sostituirlo con: Codice PHP: $text = isset($_POST['testo']) && is_string($_POST['testo']) ? $_POST['testo'] : ''; //Assegno a una variabile il testo da tradurre RE: Script traduttore - Chandler - 18/09/2012 Ma dovrebbe tradurre la parola nell'altro box input della pagina traduttore.html... p.s. se guardi il file edit_trad.html c'è qualche errore... RE: Script traduttore - Mattia - 18/09/2012 Per compilare l'altra textarea con la traduzione si può fare in due modi:
Nel file "edit_trad.html" ci sono problemi, perché contiene codice PHP, ma l'estensione è ".html". RE: Script traduttore - Chandler - 19/09/2012 Io opterei per la prima opzione...tu che dici?? Ho rinominato edit_trad.php e adesso mi da errore con la parte html... ma essendo fuori dal <? php ?> non dovrebbe dare problemi: Citazione:Parse error: syntax error, unexpected $end in /membri/aiele/Translator/edit_trad.php on line 17 RE: Script traduttore - Mattia - 19/09/2012 La prima soluzione è quella più semplice. Basta che:
L'errore che ti esce è di sintassi e dovresti pubblicare il codice di quel file per fare in modo che possa aiutarti a risolverlo. RE: Script traduttore - Chandler - 20/09/2012 Questo è il codice di edit_trd.php: Codice: <?php 1) Il codice php che fa la traduzione, e che metterò in alto nella pagina del form, è quello che c'è già in translate.php?? 2) adesso l'action del pulsante e della traduzione punta sulla pagina stessa 3) attendo di capire lo script php per cambiare l'estensione 4 e 5) saranno successivi al punto 3 In ogni caso ho modificato traduttore.html così: Codice: <html> Saluti RE: Script traduttore - Mattia - 20/09/2012 L'errore del file "edit_trd.php" è che hai dimenticato di chiudere la parentesi del primo if. Il codice diventa: Codice PHP: <?php Sì, il codice da inserire è quello di "translate.php". Il form è sbagliato e diventa così (sempre che "traduttore.php" sia il nome del file stesso): Codice: <form action="traduttore.php" method="post"> RE: Script traduttore - Chandler - 20/09/2012 Quindi, se non ho capito male, traduttore.php viene così: Codice: <?php |