Newsgroup: it.lavoro.professioni.webmaster
Titolo: ci sono standard/best practices per file di testo di traduzioni? (semplificare la vita ai traduttori)

descrivo brevemente il problema.
 
sto preparando un sito "fatto a mano" (php ma no cms e no db, al
massimo file di testo di configurazione) multilingua.  sono diverse
pagine statiche perfettamente identiche a parte ovviamente i testi
tradotti.  questi testi sono in genere brevi stringhe, ad esempio
titolo della pagina, alt delle immagini e via così.
 
ora, a me rompe molto il cazzo dover stare tutte le volte a ricevere
email dai traduttori che mi dicono aggiungi questo cambia quello
eccetera.
 
vorrei dar loro un bel file di testo dove loro scrivono direttamente
il cazzo che gli pare e lo uploadano senza starmi a scassare i maroni
tutte le volte.
 
una cosa tipo:
 
<titolo-01>
<titolo-01-it>Questo è il titolo della pagina</titolo-01-it>
<titolo-01-en>This is the title of the page</titolo-01-en>
 
oppure anche fare un file 
traduzioni.it
, traduzioni.en ecc. che abbia
soltanto la stringa di traduzione per quella specifica lingua.
 
dopodiché io ficco <titolo-01> nel template php della pagina e in
qualche modo (che non mi creerà problemi immaginare) mi vado a pescare
la traduzione.
 
il file dovrebbe essere manovrabile anche da persone stupide,
testedicazzo, incapaci, rompicoglioni con gli altri su dettagli
irrilevanti ma approssimative e malaccorte quando devono lavorare
loro, insomma, ci siamo capiti (non è il caso specifico di questo
lavoro ma con traduttori ho avuto a che fare e alcuni bisognerebbe
impiccarli con le budella dei grafici).  per cui file di testo il più
semplici possibile senza complicazioni tipo xml ben strutturato (se no
era facile...).
 
adesso che ci penso, mi pare che alcuni cms usino qualcosa tipo un
file translation.qualcosa che mi carico dinamicamente a seconda della
lingua e dentro il quale scrivere:
 
define("TITOLO-01", "Li meglio mortacci sua");
 
ma magari le teste di minchia fano casino con virgolette, apici,
parentesi e punti e virgola.
 
mi domandavo se c'erano già standard consolidati, best-practices
eccetera.  vorrei anche fare in modo di ridurre il più possibile in
numero e tempo le operazioni di accesso ai file.

  [cut]
 
 
Hai provato a guardare gettext? 
http://php.net/manual/en/book.gettext.php
 
 
J.

 define("TITOLO-01", "Li meglio mortacci sua");
 
Ecco, questa potrebbe essere una strada, ma come ben hai detto chi non fa 
il programmatore ha grosse difficoltà a capire il perchè di una parentesi 
o di un apice... Francamente temo ti tocchi comunque un po' di lavoro, a 
meno di non voler scrivere un po' di script che verificano il testo e lo 
"purgano" per darlo in pasto al PHP (e a quel punto mi chiedo perchè non 
usare WP, che ha il vantaggio dell'interfaccia decisamente amichevole)
 
Anni fa avevo usato MD-PRO per un sito italiano/tedesco e avevo dato al 
traduttore la matrice dei define per la traduzione... ci ho messo una 
settimana a mettere a posto accenti al posto di apostrofi... un delirio.
 
ciao
Filippo B.
 
PS: niente da fare per il momento per il junior. Cerco ancora. 
-- 
http://www.danzainsieme.it
 
http://www.boschetti.info
 

ha scritto nel messaggio 
news:70f65bae-61e0-4094...@a5g2000vbl.googlegroups.com...
<quote on>
descrivo brevemente il problema.
 
sto preparando un sito "fatto a mano" (php ma no cms e no db, al
massimo file di testo di configurazione) multilingua.  sono diverse
pagine statiche perfettamente identiche a parte ovviamente i testi
tradotti.  questi testi sono in genere brevi stringhe, ad esempio
titolo della pagina, alt delle immagini e via cosě.
 
ora, a me rompe molto il cazzo dover stare tutte le volte a ricevere
email dai traduttori che mi dicono aggiungi questo cambia quello
eccetera.
 
vorrei dar loro un bel file di testo dove loro scrivono direttamente
il cazzo che gli pare e lo uploadano senza starmi a scassare i maroni
tutte le volte.
 
una cosa tipo:
 
<titolo-01>
<titolo-01-it>Questo č il titolo della pagina</titolo-01-it>
<titolo-01-en>This is the title of the page</titolo-01-en>
 
oppure anche fare un file 
traduzioni.it
, traduzioni.en ecc. che abbia
soltanto la stringa di traduzione per quella specifica lingua.
 
dopodiché io ficco <titolo-01> nel template php della pagina e in
qualche modo (che non mi creerŕ problemi immaginare) mi vado a pescare
la traduzione.
 
il file dovrebbe essere manovrabile anche da persone stupide,
testedicazzo, incapaci, rompicoglioni con gli altri su dettagli
irrilevanti ma approssimative e malaccorte quando devono lavorare
loro, insomma, ci siamo capiti (non č il caso specifico di questo
lavoro ma con traduttori ho avuto a che fare e alcuni bisognerebbe
impiccarli con le budella dei grafici).  per cui file di testo il piů
semplici possibile senza complicazioni tipo xml ben strutturato (se no
era facile...).
 
adesso che ci penso, mi pare che alcuni cms usino qualcosa tipo un
file translation.qualcosa che mi carico dinamicamente a seconda della
lingua e dentro il quale scrivere:
 
define("TITOLO-01", "Li meglio mortacci sua");
 
ma magari le teste di minchia fano casino con virgolette, apici,
parentesi e punti e virgola.
 
mi domandavo se c'erano giŕ standard consolidati, best-practices
eccetera.  vorrei anche fare in modo di ridurre il piů possibile in
numero e tempo le operazioni di accesso ai file.
</quote off>
 
Penso che ti stai complicando il problema inutilmente.
Usa un file di testo formattato diviso in tre colonne:
 
1a colonna: Variabile di riferimento (es: titolo, immagine, etc);
2a colonna: Lingua (es: IT, EN, ES etc);
3a colonna: Contenuto (es: La storia di Pincopallino)
 
ottenendo un file del tipo:
 
TITOLO    IT    La storia di Pincopallino
TITOLO    EN    Pincopallino's history
 
e usi questo criterio per tutte le lingue.
A questo punto ti crei in php un parser che memorizzi in un array dinamico 
(o in una lista) tutte le righe del file in questione (oppure soltanto le 
righe contenenti la medesima lingua) e per ciascuna riga tutti i campi ad 
essa connessi.
 
Quindi, dopo aver fatto questo, nel template richiami la variabile 
corrispondente al tuo array dinamico (o alla tua lista) che va a sostituire 
la parte mancante col contenuto che a te serve.
Se hai l'esigenza di usare file diversi, uno per ciascuna lingua puoi 
benissimo assegnare dei nomi standard ai file (es: lang-it, 
lang.es
, lang.en 
etc) e su questo anzichč memorizzare tre colonne per ogni riga ne memorizzi 
soltanto due, ad esempio:
 
lang-it.txt
TITOLO    La storia di Pincopallino
 
lang-en.txt
TITOLO    Pincopallino's history
 
e in tal caso prima di caricare l'intero file dovrai in base alla lingua 
selezionata, individuare il file equivalente (che avrai memorizzato in un 
array) e quindi caricarlo in memoria (questa volta senza l'esigenza di 
doverlo filtrare).
 
Se poi il cliente vuole aggiungere di volta in volta ulteriori righe in 
corrispondenza del testo a questo punto potresti aggiungere una colonna 
ulteriore, avente un numero progressivo; nel primo caso:
 
TITOLO    IT    00    La storia di Pincopallino
CONTENUTO    IT    01    Riga1
CONTENUTO     IT    02    Riga2
TITOLO    EN    00    Pincopallino's history
CONTENUTO     EN    01    Row1
CONTENUTO     EN    02    Row2
 
oppure nel secondo caso:
 
lang-it.txt
TITOLO    00    La storia di Pincopallino
CONTENUTO    01    Riga1
CONTENUTO    02    Riga2
 
lang-en.txt
TITOLO    00    Pincopallino's history
CONTENUTO    01    Row1
CONTENUTO    02    Row2
 
nota che in corrispondenza di TITOLO in entrambi gli esempi il valore 00 non 
č utilizzato ma č inizializzato per allineare le righe con le colonne di 
tutti i campi.
Quindi nel tuo parser in corrispondenza del contenuto creerai una lista che 
va a caricare tutti i contenuti identificati con 01, 02 etc.
In fase di lettura andrai a pescare tale contenuto.
 
La struttura del file di testo, puoi anche definirla in formato xml, ma per 
il cliente potrebbe apparire di piů complessa comprensione.
 
 

grazie a tutti per i suggerimenti.
 
non ho pensato ad usare un cms perché il sito è fatto veramente di una
dozzina di pagine assolutamente statiche.  inoltre la richiesta di
particolarità varie avrebbe reso poco produttivo mettersi lì a
smanettare su un template, tanto valeva scrivere direttamente il
codice.  inoltre è il solito lavoro che si è sedimentato nel tempo,
insomma, rifarlo su un cms ci ho anche provato/pensato, ma è troppa
fatica.
 
per ora ho messo su un file per lingua con una struttura del genere:
 
 
$$$ titolo-home
Lorem ipsum dolor sit amet
<br />
consectetuer nunc quis elit sed et.
 
$$$ alt-immagine-1
Un bel panorama
 
$$$ alt-immagine-2
Uh, ma che bello
 
$$$ alt-immagine-3
accidenti ma è davvero un bel panorama, ma chi l'ha fatto sto sito,
mo' me ne faccio fare uno pure io
 
$$$ testo-home
<p>Ut lacus amet consectetuer dapibus odio pretium elit velit eu
tellus. Quis turpis dictum id justo Phasellus et Vestibulum ante eu
magna. Consectetuer urna laoreet id lacinia turpis sagittis quis urna
sed quis. Magnis convallis eget urna quis cursus euismod Phasellus
tempor auctor nunc. Semper dictumst Sed dui at Pellentesque
consectetuer convallis augue wisi ac. </p>
 
 
in sostanza parso il file che contiene sta roba e lo carico in un
array nel quale uso come chiavi i testi col prefisso $$$ (vediamo se
lo capiscono che il tempo è denaro) e come valore tutto quello che c'è
sotto fino al prossimo $$$ o all'EOF.
 
dopodiché ho scritto una funzioncina che prende in ingresso quella che
si spera sia una chiave esistente ed un valore di default opzionale se
non si trova il valore e restituisce il valore dell'array, o il valore
di default se è stato dato o la chiave stessa se manca tutto.
 
avevo pensato a tenere tutte le lingue in un unico file, ma poi ho
pensato che è inutile caricare tutto, e che magari un traduttore fa
prima a scrivere in quel modo lì.  siccome i testi possono anche
essere lunghi, ho dovuto rinunciare all'idea di avere righe e colonne
strutturate.
 
adesso sto pensando a quali casini possono combinare i deficienti.
direi che editare il file con uord nonostante io gli dica che è un
file di testo e che lo devono maneggiare solo con notepad o simili
direi che ci sta tutto.  poi lo uploadano e svaccano tutto quanto e mi
domandano come mai non si vede il grassetto e le tabelle con le celle
colorate, che loro le hanno messe, e poi uord può salvare in
accatiemmelle.  mi sa che se gli metto un editor online è anche meglio.

 se gli metto un editor online è anche meglio.
 
+1
 
ciao
Filippo B.


 PS: niente da fare per il momento per il junior. Cerco ancora.
 
mah guarda, a questo punto anche una junior di età legale va bene.  ma
pure una 40enne ben tenuta e benestante, che mica siamo più
giovanottelli neanche noi. :-)

Il Wed, 25 Apr 2012 10:00:21 -0700, 
l...@email.it
, nel pieno possesso delle
sue facoltà mentali (o forse no) ha scritto:
 

ah, non avevo capito che c'era una preferenza di genere... la cosa si fa 
ardua...
 
 
ciao
Filippo B.
PS: io ho intorno solo <25 ed è un dramma, un vero dramma.


 ha scritto 
nel messaggio 
news:70f65bae-61e0-4094...@a5g2000vbl.googlegroups.com
...


descrivo brevemente il problema.
il file 
dovrebbe essere manovrabile anche da persone stupide,
testedicazzo, incapaci, 
rompicoglioni con gli altri su dettagli
irrilevanti ma approssimative e 
malaccorte quando devono lavorare
loro, insomma, ci siamo capiti (non è il 
caso specifico di questo
lavoro ma con traduttori ho avuto a che fare e 
alcuni bisognerebbe
impiccarli con le budella dei grafici).  



 


 


Questo me lo stampo .. ah ah 


 


 


 


adesso che ci penso, mi pare che alcuni 
cms usino qualcosa tipo un
file translation.qualcosa che mi carico 
dinamicamente a seconda della
lingua e dentro il quale 
scrivere:
define("TITOLO-01", "Li meglio mortacci sua");
ma magari 
le teste di minchia fano casino con virgolette, apici,
parentesi e punti e 
virgola.


 


 


Esatto!


 


Non te lo consiglio.


E' lo standard ad es di osCommerce.


 


Ho lavorato con alcuni traduttori e non ti dico i 
casini con le virgolette apici e cazzivari ... un incubo!


 


 


 


 



 parentesi e punti e virgola.
 
Io ho a che fare con questa situazione e naturalmente il problema apici 
e virgolette è presente.
 
In un caso per poter far tradurre i prodotti, i cui inserimenti sono 
molto frequenti, ho creato un tool ajax+php+mysql per la compilazione 
dei vari campi.
 
Questa esperienza mi ha fatto riflettere sul fatto che anche in casi 
come il tuo, sarebbe opportuno stipare tutto nel db e gestire come sopra.
 
I vantaggi sono tanti:
 
- nessun problema apici / virgolette / caratteri strani
- editor html per le parti 'visibili'
- Individuazione istantanea di pagine / campi non tradotti (ti crei un 
alert per le pagine e per i campi, imposti o un alert o l'obbligatorietà)
- Facilitazione delle traduzioni (questo vale soprattutto nel caso di 
frequenti inserimenti come per le schede prodotto, dove ho fatto in modo 
che ad esempio per i meta tag title e description il sistema clonasse 
via ajax, quindi senza metterlo effettivamente nel db, i campi nome 
prodotto e descrizione per agevolare l'immissione (limitandosi quindi a 
semplici correttivi del testo clonato onde evitare duplicazioni, 
salvando poi si nel db). Inoltre sempre via ajax, per ogni campo da 
tradurre ho inserito un popup mouseover con chiusura a click che fa 
vedere il contenuto da tradurre)
 
 
-- 
Paolo De Dionigi

 come il tuo, sarebbe opportuno stipare tutto nel db e gestire come sopra.
 
in effetti avresti ragione, ma questo è stato un classico caso di
sviluppo "agile" (agiail...) nel quale il committente prima chiedeva
una cosa poi la vedeva e ne chiedeva un'altra eccetera, quindi siamo
andati avanti a bozzetti html che alla fine, visto che il sito una
volta che si decidono resterà scolpito ed immutabile, sono diventate
proprio lepagine definitive.
 
come dicevo anche altrove, ho considerato l'idea di portarlo su un
qualche cms una volta che le cose fossero quagliate, ma onestamente se
va bene a loro così io non vorrei fare fatica inutile e non
retribuita, anche perché poi se mi fanno qualche richiesta visuale
strana magari non si riesce a fare.
 
penso però che mi inventerò un sistema magari con qualche editor tipo
fck per fargli modificare i file di configurazione di cui parlavo
sopra ed evitare il rischio che lo smanettino con strumenti inadatti e
comunque evitare di dare in giro accessi ftp.

 proprio lepagine definitive.
 
[cut]
 
Ciao,
 
ho letto tutto il thread e visto che da quel che ho capito il sito
avrà poche pagine, sarà statico e penso che non lo farai tradurre in
10 lingue diverse, non fai prima a gestire tutto "a mano"?
Intendo dire che una volta che hai i testi, li mandi in email da
tradurre e poi copi-incolli :)
Il traduttore riceve solo testo e ti rimanda solo testo, te ne freghi
di eventuali "abbellimenti" che ti scriveranno nelle email e anche se
dovessero spedirti degli allegati Word, tu sempre copia-incolla in
puro txt farai dentro le pagine...
 
Gabriele