133 messaggi dal 22 febbraio 2006
Ciao a tutti devo realizare un sito multilingua e volevo partire con il piede giusto e magari farmi un pò di codice riutilizzabile in futuro.

Ho letto gli articoli sulla localizzazione ecc e pensavo di usare il metodo standard con i file di risorse... ma i miei dubbi erano anche altri:

- dove salvare la lingua selezionata? Cookie, Session... io pensavo di recuperarla ogni volta dalla barra degli indirizzi e caricare la cultura relativa in InitializeCulture (in una PageBase), può essere?

- sui famosi link/menù a tendina per la scelta della lingua, come rimando al file corretto ma nella lingua selezioanta? es.: sono in www.miosito.it/it/azienda.aspx, come rimando a www.miosito.it/en/company.aspx? Come posso associare azienda.aspx a company.aspx e viceversa?

- ed in fine, per file che caricano dati dinamicamente, che quindi non sono associati ad una lingua e presenti in ogni cartella in lingua, come mi comporto a livello di reindirizzamento della pagina?

Spero di essere stato chiaro.

Grazie a tutti,

Matteo
mattew wrote:
Ciao a tutti devo realizare un sito multilingua e volevo partire con il piede giusto e magari farmi un pò di codice riutilizzabile in futuro. Ho letto gli articoli sulla localizzazione ecc e pensavo di usare il metodo standard con i file di risorse... ma i miei dubbi erano anche altri: - dove salvare la lingua selezionata? Cookie, Session... io pensavo di recuperarla ogni volta dalla barra degli indirizzi e caricare la cultura relativa in InitializeCulture (in una PageBase), può essere?

sì. è una possibile strada, che molti praticano.

- sui famosi link/menù a tendina per la scelta della lingua, come rimando al file corretto ma nella lingua selezioanta? es.: sono in
http://www.miosito.it/it/azienda.aspx, come rimando a
http://www.miosito.it/en/company.aspx? Come posso associare azienda.aspx a company.aspx e viceversa?

facendoti un dizionario anche per gli url, sì
generalmente, almeno per gli url si usa l'inglese, così tagli la testa al toro.

- ed in fine, per file che caricano dati dinamicamente, che quindi non sono associati ad una lingua e presenti in ogni cartella in lingua, come mi comporto a livello di reindirizzamento della pagina?

che comunque passi per una sottodir, usando rewriting o router o un httphandler, così da avere sempre comunque la lingua passata. tipo /it/details.aspx?ID=121
/en/details.aspx?ID=124
etc.
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
133 messaggi dal 22 febbraio 2006
Grazie per la risposta...


facendoti un dizionario anche per gli url, sì
generalmente, almeno per gli url si usa l'inglese, così tagli la testa al toro.


Cosa intendi per dizionario? Una cosa del tipo (ad es. salvata su DB):
pagina corrente - lingua - traduzione
azienda.aspx - it - azienda.aspx
azienda.aspx - en - company.aspx
azienda.aspx - fr - entreprise.aspx
company.aspx - it - azienda.aspx
company.aspx - en - company.aspx
company.aspx - fr - entreprise.aspx
... e così via

da cui pescare la traduzione del nome_file in cui mi trovo e a cui dovrò rimandare cliccando sui famosi link e poi così per ogni file, contatti.aspx,dove_siamo.aspx, ecc?


che comunque passi per una sottodir, usando rewriting o router o un httphandler, così da avere sempre comunque la lingua passata. tipo /it/details.aspx?ID=121
/en/details.aspx?ID=124
etc.


ok, ma come potrei ricostruire l'url con URL rewiting?

Es.: sono in /it/121/biscotti.aspx (invece di /it/details.aspx?id=121), dove "biscotti" è il contenuto del campo "nome_articolo" (con id=121) recuperato da DB in lingua IT e clicco sul famoso link "INGLESE" che dovrebbe mandarmi alla stessa pagina in cui mi trovo ma in lingua inglese, quindi /en/121/biscuits.aspx con "nome_articolo" in lingua inglese, e questo per ogni pagina del sito che usa URL rewrite, con la sua logioca di URL Rewrite.

E' possibile fare qls del genere in modo anche da riutilizzare per i prossimi lavori un pò codice?

Grazie a tuti,

Matteo
mattew wrote:
Cosa intendi per dizionario? Una cosa del tipo (ad es. salvata su D : pagina corrente - lingua - traduzione

qualcosa di simile. da qualche parte devi pur sapere dove andare.
E' possibile fare qls del genere in modo anche da riutilizzare per i prossimi lavori un pò codice?

certo. scrivi codice che lo faccia. ad esempio, un bel metodo GetLink(int id, string language), che fai il lavoro di costruirti sempre l'url. magari lo puoi appoggiare all'URL Routing di ASP.NET 4, che è meglio. ma il concetto è lo stesso.
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
133 messaggi dal 22 febbraio 2006
OK, grazie per le risposte.

Ho dato un'occhiata al URL Routing di ASP.NET 4 (http://www.aspitalia.com/script/1041/Utilizzare-URL-Routing-Web-Forms-ASP.NET-4.0.aspx ) e a tal proposito non ho a disposizione il metodo MapPageRoute di RouteCollection come nell'esempio, è un problema di versione del Framework? Ho il framework 4.0 installato ma se referenzio l'assembly System.Web.Routing mi dice che è di versione 3.5.

Cosa potrebbe essere?

Ciao e grazie

Matteo
mattew wrote:
Cosa potrebbe essere?

non serve referenziare niente, la reference c'è già.
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.