Configurazione Multilingua SQLSERVER2005

mercoledì 21 maggio 2008 - 09.28

tarabasch84 Profilo | Junior Member

Salve,
ho un problema nella gestione del multilingua nell'applicazione web che sto progettando. Il contenuto è dinamico e dovrà gestire 4 lingue: italiano, inglese, francese e russo. Dando uno sguardo ai books online di sql server 2005 non posso installare sulla stessa istanza due regole di confronto diverse che nel mio caso servono in quanto gestirei con il latin_general l'italiano, il francese e l'inglese mentre con il cirillico il russo. Ora mi chiedo: dovrei pensare di lavorare con due database diversi, quindi due istanze diverse? Avete altre soluzioni?
Grazie
Saluti Aldo
Credo che parte della colpa sia di billy...

alx_81 Profilo | Guru

>Salve,
Ciao!

>ho un problema nella gestione del multilingua nell'applicazione
>web che sto progettando. Il contenuto è dinamico e dovrà gestire
>4 lingue: italiano, inglese, francese e russo. Dando uno sguardo
>ai books online di sql server 2005 non posso installare sulla
>stessa istanza due regole di confronto diverse che nel mio caso
>servono in quanto gestirei con il latin_general l'italiano, il
>francese e l'inglese mentre con il cirillico il russo. Ora mi
>chiedo: dovrei pensare di lavorare con due database diversi,
>quindi due istanze diverse? Avete altre soluzioni?
Personalmente, quando faccio un multilingua, lascio latin_general, poichè i campi in multilingua sono solo stringhe relative a contenuti di pagine, controlli, menu, ecc.. Di conseguenza, imposto tutti i campi da gestire in lingua come nvarchar (in modo da racchiudere anche cirillico, cinese, ecc.) e creo strutture ad hoc per ogni entità:

Ad esempio, se volessi fare un menu in multilingua:

Una tabella VociMenu (idvocemenu, codiceinterno)
Una tabella Lingua (idlingua, culture, lingua)
Una tabella VociMenuMultilingua (idvocemenu, idlingua, valorestringa)

In questo modo poi, tramite l'id lingua e l'eventuale codice interno del record, ottengo la traduzione.


>Grazie
di nulla!
Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

tarabasch84 Profilo | Junior Member

Grazie per l'immediatezza della tua risposta. Quindi basterebbe utilizzare l'nvarchar per gestire qualsiasi codifica multilingua? L'applicazione web dovrebbe dare la possibilità al mio cliente di inserire dei testi in queste quattro lingue. Serve una tastiera adatta o sbaglio?
Credo che parte della colpa sia di billy...

alx_81 Profilo | Guru

>Grazie per l'immediatezza della tua risposta. Quindi basterebbe
>utilizzare l'nvarchar per gestire qualsiasi codifica multilingua?
l'inserimento e il salvataggio sì.. Non credo tu abbia bidogno di confrontarle o di stabilire il case sensitive, ecc..
Immagino tu debba immagazzinarle e poi visualizzarle sull'applicazione in base alla lingua scelta.

>L'applicazione web dovrebbe dare la possibilità al mio cliente
>di inserire dei testi in queste quattro lingue. Serve una tastiera
>adatta o sbaglio?
Chi inserisce deve sapere cosa sta inserendo
Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

tarabasch84 Profilo | Junior Member

>Chi inserisce deve sapere cosa sta inserendo
Il mio cliente conosce le lingue soprattutto il russo... Per questo ti chiedevo se ha bisogno di una tastiera che supporti l'inserimento dei caratteri cirillici oppure ci sono altri modi..

Credo che parte della colpa sia di billy...

alx_81 Profilo | Guru

>>Chi inserisce deve sapere cosa sta inserendo
>Il mio cliente conosce le lingue soprattutto il russo...
>Per questo ti chiedevo se ha bisogno di una tastiera che supporti
>l'inserimento dei caratteri cirillici oppure ci sono altri modi..
Era una battuta . Sì ha bisogno della tastiera.. Oppure un bel copia incolla da documenti preesistenti..
Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

tarabasch84 Profilo | Junior Member

Grazie per l'aiuto...
Saluti Aldo
Credo che parte della colpa sia di billy...

tarabasch84 Profilo | Junior Member

Ciao,
dimenticai di chiederti che nel caso avessi bisogno di indicizzare i caratteri russi memorizzati nel database ad esempio facendo una ricerca con like, avrei problemi?
Saluti Aldo
Credo che parte della colpa sia di billy...

alx_81 Profilo | Guru

>Ciao,
Ciao!

>dimenticai di chiederti che nel caso avessi bisogno di indicizzare
>i caratteri russi memorizzati nel database ad esempio facendo
>una ricerca con like, avrei problemi?
Se ti servono ricerche sul campo la collation va cambiata..
Però ti consiglio di eseguire le ricerche su una lingua di base (ad esempio l'inglese) e poi, ricavare il legame con le lingue non standard.
In questo modo ricerchi sempre per una lingua e ricavi le correlazioni alle altre lingue come risultato..

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

tarabasch84 Profilo | Junior Member

Ciao,
e se assegnassi una collation diversa per ogni colonna della tabella che contiene i testi in diverse lingue potrei risolvere il problema della ricerca in diverse lingue?
Credo che parte della colpa sia di billy...

alx_81 Profilo | Guru

>Ciao,
>e se assegnassi una collation diversa per ogni colonna della
>tabella che contiene i testi in diverse lingue potrei risolvere
>il problema della ricerca in diverse lingue?
Sì ma ne creeresti N altri di manutenibilità, normalizzazione, semplicità di implementazione..

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

tarabasch84 Profilo | Junior Member

Potresti essere più chiaro se puoi?
Credo che parte della colpa sia di billy...

alx_81 Profilo | Guru

>Potresti essere più chiaro se puoi?
Il concetto è che se crei N colonne, intanto rischi di non aggiungerne abbastanza, e se ti chiedono una nuova lingua l'implementazione diventa problematica. Poi, ammesso che siano fisse, pensa alle query che devono ricavare la lingua. Devi selezionare colonne diverse per lingue diverse e quindi o fai dell'sql dinamico oppure tanti IF quante sono le lingue.
Puoi ben capire che la gestione diventa molto macchinosa e non rispetti le regole di normalizzazione, mettendo in orizzontale (n colonne) quello che potresti ottenere in verticale (tabella).
Fai bene la tua analisi, se ritieni che il gioco valga la candela, prova pure la soluzione delle colonne
Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

tarabasch84 Profilo | Junior Member

Ciao e Grazie,
saluti Aldo
Credo che parte della colpa sia di billy...

alx_81 Profilo | Guru

>Ciao e Grazie,
di nulla!
Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5