Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Gestione sito multilingua

    Ciao a tutti, dovrei realizzare da zero la struttura di un portale/sito multilungua (usando .NET 2.0, Visual Dev Express ed SQL Server Express); che soluzione mi consigliate di adottare per gestire al meglio la traduzioni delle varie aree (ogni singolo testo presente)?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Fossi in te mi guardere come funzionano i file di risorse resx.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ...ed il NameSpace System.Globalizazion con la classe ResourceManager. (ti rispondo x la vers. 1.1 ma non credo sia cambiato granchè)

    In poche parole, a seconda della lingua dell'utente corrente, cioe':

    codice:
    Imports System.Globalization
    Imports System.Resources
    Imports System.Threading
    
    Dim lingua as String = Request.UserLanguages(0)
    dovresti settare, nel Page_Load :

    1 - La formattazione delle date, dei validators e delle valute, con :
    codice:
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lingua)
    2 - La formattazione degli elementi della User Interface (UI), caricata dai file ".resx" relativi, con:
    codice:
    Thread.CurrentThread.CurrentUICulture = New CultureInfo(lingua)
    la proprietà CurrentUICulture "cerca" l'assembly di risorse (il file resx, appunto) e provvede alla formattazione di tutti gli elementi HTML sulla pagina dichiarati come HtmlGenericControl, ad esempio :

    codice:
    aspx:
    <span id="titolopagina" runat=server>
    
    VB:
    protected withevents titolopagina as System.Web.Ui.HtmlGenericControl
    Per la formattazione degli elementi cosi' dichiarati, infine, non ti resta che caricare le risorse memorizzate nei .resx :

    codice:
    Protected risorse as new ResourceManager("nomeProgetto.NomeBaseFileRisorse", GetType(NomeClassePagina).Assembly)
    ..ed assegnarle ai relativi elementi presenti sulla pagina:

    codice:
    titolopagina.InnerHtml = risorse.GetString("NomeClassePagina.titolopagina")
    (nel file .resx per l'italiano, ad esempio ci sara' nella colonna "name": "webform1.titolopagina" e nella colonna "value": "Benvenuto nella mia applicazione")

    so che sembra un casino ma ci devi solo smanettare un po'....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.