Newsgroup: it.comp.www.php
Titolo: Aiuto generazione codice lingua ISO639-1 da nome completo in italiano

Ciao a tutti, qualcuno saprebbe indicarmi una classe o un metodo per 
poter calcolare il codice a tre lettere per una lingua partendo dal suo 
nome completo in italiano?
Esempio:
italiano === it
tedesco === de
inglese === en
e cosï¿œ via.
Grazie a chiunque mi aiuterï¿œ

inglese === en
http://simap.europa.eu/codes-and-nomenclatures/countries/index_it.htm
Leonardo
-- 
Surstangas via akcipitr', la ceval' fojnumas nur:
Jen vigla damo en brakum', kaj vi pensas pri forkur'?
Do li turnis sin, kaj turnis sin, kaj ekdormis sen singard';
Kaj lin apudis je l' vekigx, soldatoj kaj Barnard'.


http://simap.europa.eu/codes-and-nomenclatures/countries/index_it.htm
Link sbagliato, questi sono i codici nazione ISO 3166. Sorry.
Qui ce n'e' qualcuno,
http://publications.europa.eu/code/it/it-370200.htm
integrabile qua
http://www.loc.gov/standards/iso639-2/php/code_list.php


 Link sbagliato, questi sono i codici nazione ISO 3166. Sorry.
OT, ma può essere utile:
http://www.grana.to/elenco_nazioni.sql
casomai ne manca qualcuna e me la segnalate mi fate una cortesia.
-- 
ValeRyo
XT600 "Katoki Pajama" - 
http://www.slimmit.com/go.asp?7Y9
GamerTag: 
http://card.mygamercard.net/IT/nxe/ValeRyo76.png
 

 
Di sicuro manca il Sud Sudan nato l'altro ieri, ma ad occhio mi sembra 
manchi anche qualche altra cosa...
Piï¿œ tardi spulcio i miei bookmarks e vedo cosa trovo.

 Più tardi spulcio i miei bookmarks e vedo cosa trovo.
Manca anche il Kosovo perché non so che codice ISO mettere.
Certo che potrebbero starsene tutti un po' più calmi :-)



Grazie mille Leonado, per quanto riguarda l' errore grazie per avermelo 
fatto notare � che sono partito con la iso639-2 per poi dover usare la 
639-1. Dato che devo per forza usare un array per poter gestire il tutto 
metto un paio di link con i vari codici:
- 
http://www.w3schools.com/tags/ref_language_codes.asp
- 
http://www.prato.linux.it/~lmasetti/seriamente/index.php?sez=materiali&subsect=iso639
Grazie comunque a tutti per la disponibilit�

metto un paio di link con i vari codici:
OK, quanto al come fare è molto facile:
function ISO_from_Country($country)
{
	$countries = array(
		'italiano'	=> 'it',
		'francese'	=> 'fr',
		...
	);
	if (isset($countries[$country]))
		return $countries[$country];
	trigger_error("La lingua: '$country' non è conosciuta");
	return 'xx';



Grazie mille per questa funzione, mi è utile per tornare il codice della 
lingua.
Data la tua disponibilità, ti chiedo un altro aiuto, sai se esiste un 
editor per file tmx in php?

 editor per file tmx in php?
Il post su tmx era mio :-)
Comunque tmx richiede un semplice file XML in cui usa specifici tag per
definire le traduzioni.
L'XML lo editi con quel che vuoi.
Se la domanda significa "voglio dare agli utenti la possibilità di
editare il file xml delle traduzioni" ... uhm... ho paura che tmx non
faccia proprio al caso tuo.
La "palla" è che a ogni modifica dell'XML i file di cache delle
traduzioni vanno rigenerati. Per questo mi sono creato una funzione che
dato l'elenco delle lingue supportate, richiama ciclicamente la classe
tmx per ricreare i file di cache (preventivamente cancellati).
Se il tuo provider lo permette (il mio no) i file possono essere
cancellati e ricreati nell'ambiente /live/. Per questa funzionalità è
necessario che il web server possa scrivere nella directory dove tmx
scrive i file di cache. Io invece li aggiorno in locale e poi ne faccio
l'ftp.
-- 
Aiuta l'Alleanza Ribelle :
http://vwdarkside.com/it/jedi/maestro-padulo-132140


Grazie mau per la risposta, so che il post su tmx era tuo, ma ho chiesto 
anche a Leonardo, comunque il tmx per ora non mi serve, la funzione che 
ha scritto Leonardo mi è più che sufficente per calcolare i codici delle 
lingue a due lettere, e ovviamente prendendo quell' array e invertendo 
la coppia chiave valore si può ottenere anche l' atro verso di lettura. 
Mentre per quanto riguarda tmx mi serviva un qualcosa che dato in mano 
all' amministratore del sito gli permettesse di caricarsi le varie 
traduzioni per l' interfaccia utente, senza dover ogni volta chiamarmi 
per aggiornargli il file delle traduzioni.
PS, cercando il termine tmx nei vecchi post ho trovato una tua 
discussione con Alessandro Pellizzari riguardo la generazione dei file 
direttamente in mo, ed ho trovato una classe in php che converte i 
comuni po in mo a questo indirizzo:
- 
http://www.josscrowcroft.com/2011/code/php-mo-convert-gettext-po-file-to-binary-mo-file-php/
Saluti Patrick.

per aggiornargli il file delle traduzioni.
E' brutto, è schifoso, è reinventare l'acqua calda, c'è di meglio e faccio
piangere a la Madonnina e financo il Bambin Gesù.
E detto tutto questo, io mi trovo veramente bene mettendo tutti i testi in
un database (da cui comunque passare a TMX per dare la roba ai traduttori,
nei casi professionali, è bere un bicchier d'acqua): una tabella alla boia
	lang	char(2)
	key	varchar(64)
	value	text
...dopodiché l'amministratore ha una interfaccia dove seleziona la lingua,
e gli compare una tabella paginabile con tutti i testi traducibili. Qui, i
valori di lang sono fissi in un array dentro config, ma volendo, uno si fa
una seconda tabellina.
Due query in croce trovano i valori per cui "la key X esiste in lang A, ma
non esiste in lang B", e posso far vedere un trabagài con (per esempio) la
lingua "it" che c'e' sempre, con una textarea dove tradurre in una diversa
lingua.
Poi nel codice HTML compare una sequenza a piacere (a volte ad esempio uso
<omegat>key</omegat>, altre volte {{{key}}}, o <int>key</int>), ed un giro
di preg_replace /e come ultimissima cosa traduce la pagina.
Il vantaggio è che ho il completo controllo dell'interfaccia admin e posso
addirittura loggarne le operazioni con tanto di undo  e IP (serve, voi non
vi immaginate neppure quanto serve... sigh). Per esempio l'amministratore,
volendo, può "triggerare" una traduzione diversa, nel senso che
	<int>antani</int>
non viene tradotto con
	blinda la supercazzola brematurata a destra, per due
ma con (e ce l'ho anche in AJAX)
	<a target="_babel17"
         href="/admin/babel17.php?cmd=edit&lang=en&key=antani"
	 style="border: 1px dotted red">blinda la supercazzola brematurata
a destra, per due</a>
così un admin può andare a editarsi comodamente le singole frasi, nel caso
che abbia tempo e voglia.


 Saluti Patrick.
Leonardo Serni mi ha preceduto e ha già dato l'hint corretto.
TMX è utile come formato d'interscambio ma alla fin fine il modo più
comodo per gestire le traduzioni senza impazzire è quello di appoggiarsi
al db.
L'import / export massivi possono essere gestiti in mille modi, fra cui TMX.
Potenziali svantaggi nell'uso del db, ma non mi sembra il tuo caso, è ad
esempio la visulizzazione di un elenco ciccio di item di cui si richiede
la traduzione della descrizione (mi è capitato) con massiccio overhead
di interrogazioni SQL. Anche in questo caso le soluzioni alternative,
come ad esempio gettext, se da una parte possono esibire prestazioni
migliori poi sono ingestibili in fase di manutenzione.
In aggiunta a quanto detto da Leonardo, io metteri il campo 'key' come
primo record della tabella, non come secondo. Eseguendo la query con key
e language è più efficiente, in molti casi e con engine diversi, usare
la chiave doppia con la 'key' come record primario e 'language' come
secondario.
