2015-04-15 29 views
7

Ho bisogno di cambiare la cultura corrente dell'applicazione a TH-TH Ho provato a farlo per creare un oggetto del tipo seguente e intendo assegnare al thread corrente CurrentCulture proprietàModificare la cultura corrente dell'intera applicazione di moduli Windows. NET Compact Edition

System.Threading.Thread.CurrentThread.CurrentCulture = 
    new System.Globalization.CultureInfo("en-US"); 

Ma l'edizione .NET Compact che sto usando non ha la proprietà CurrentCulture disponibile nella proprietà System.Threading.Thread.CurrentThread.

C'è un modo in cui possiamo fare questo?

Edit: posso cambiare l'impostazione regionale del dispositivo mobile e poi quando eseguo l'applicazione sono in grado di ottenere il testo corretto dal file di risorse corretti.

ma io non sono in grado di ottenere la risorsa corretto quando installare l'applicazione utilizzando un progetto di installazione

Questo è quello che ho fatto.

  1. ho creato il progetto di installazione e ho incluso le risorse localizzate, uscita primaria e anche il file contenuti nella cartella dell'applicazione nella directory di sistema di file del progetto di installazione.
  2. L'ho quindi creato in modalità debug e sono stati generati i file Cab richiesti.
  3. Ho trasferito il file sul mio dispositivo, quindi ho eseguito il file CAB e l'installazione ha avuto esito positivo.
  4. Quando eseguo l'applicazione mostra le stringhe solo in lingua inglese indipendentemente dalle impostazioni regionali sul dispositivo (ma le string corrette dalla risorsa di lingua vengono visualizzate nell'app quando eseguo la stessa applicazione in modalità Debug di selezionando direttamente il dispositivo in studio visivo e distribuire l'applicazione su di esso)

ho anche verificato che le cartelle reqired quali fr-CA, th-tH ecc vengono creati nella stessa directory in cui il. exe della mia domanda è presente

risposta

1

Secondo MSDN, questo è impossibile.

Non è possibile impostare la cultura corrente a livello di programmazione su un dispositivo. Sono impostati dal produttore del dispositivo o configurabili manualmente dall'utente del dispositivo, ad esempio con Impostazioni internazionali su un Pocket PC con Windows CE o Windows CE .NET, le impostazioni di cultura correnti sono su base periferica.

Tuttavia, ho trovato un articolo su Code Project che ha proposto una soluzione a questo problema.
Fondamentalmente, l'autore ha creato il proprio ResourceManager e il modulo di base, il che significa che probabilmente questa soluzione non sarà molto facile da applicare alle applicazioni framework compatte esistenti.

A seconda della complessità dell'applicazione, è possibile prendere in considerazione l'implementazione di qualche tipo di ResourceManager o utilizzare quello dell'articolo del progetto di codice.