Condividi tramite


Localizzazione delle applicazioni ClickOnce

La localizzazione è il processo di adattamento di un'applicazione a impostazioni cultura specifiche. Questo processo consiste nel tradurre il testo dell'interfaccia utente in una lingua specifica di un paese/regione, usare la formattazione di data e valuta corretta, regolare la dimensione dei controlli di un form e, se necessario, eseguire il mirroring dei controlli da destra verso sinistra.

La localizzazione di un'applicazione comporta la creazione di uno o più assembly satellite. In ogni assembly sono contenute stringhe dell'interfaccia utente, immagini e altre risorse specifiche di determinate impostazioni cultura. Nel file eseguibile principale dell'applicazione sono contenute le stringhe delle impostazioni cultura predefinite dell'applicazione.

Questo argomento descrive tre modi per distribuire un'applicazione ClickOnce per altre impostazioni cultura:

  • Includere tutti gli assembly satellite in una sola distribuzione.

  • Generare una distribuzione per le singole impostazioni cultura, con un solo assembly satellite incluso in ognuna di esse.

  • Scaricare gli assembly satellite su richiesta.

Inclusione di tutti gli assembly satellite in una sola distribuzione

Anziché pubblicare più distribuzioni ClickOnce, è possibile pubblicare una singola distribuzione ClickOnce che contiene tutti gli assembly satellite.

Questo metodo è l'impostazione predefinita in Visual Studio. Per usare questo metodo in Visual Studio, non è necessario eseguire operazioni aggiuntive.

Per usare questo metodo con MageUI.exe è necessario configurare le impostazioni cultura per l'applicazione su neutral in MageUI.exe. e quindi includere manualmente tutti gli assembly satellite nella distribuzione. In MageUI.exe è possibile aggiungere gli assembly satellite usando il pulsante Popola nella scheda File del manifesto dell'applicazione.

Il vantaggio di questo approccio è dato dalla possibilità di creare un'unica distribuzione e di semplificare il processo della distribuzione localizzata. In fase di esecuzione verrà usato l'assembly satellite appropriato, a seconda delle impostazioni cultura predefinite del sistema operativo Windows dell'utente. L'inconveniente di questo approccio riguarda il fatto che, ogni volta che l'applicazione viene installata o aggiornata in un computer client, vengono scaricati tutti gli assembly satellite. Se nell'applicazione è contenuto un numero elevato di stringhe o i clienti hanno una connessione di rete lenta, questo processo può influire sulle prestazioni durante l'aggiornamento dell'applicazione.

Nota

Con questo approccio si presuppone che l'applicazione regoli automaticamente l'altezza, la larghezza e la posizione dei controlli per adattare dimensioni diverse delle stringhe di testo nelle varie impostazioni cultura. In Windows Form è disponibile un'ampia gamma di controlli e tecnologie che consentono di progettare il form in modo da facilitarne la localizzazione, inclusi i controlli FlowLayoutPanel e TableLayoutPanel e la proprietà AutoSize. Vedi anche Procedura: Supportare la localizzazione in Windows Form usando AutoSize e il controllo TableLayoutPanel.

Generare una distribuzione per le singole impostazioni cultura

In questa strategia di distribuzione vengono generate più distribuzioni. In ogni distribuzione viene incluso solo l'assembly satellite necessario per impostazioni cultura specifiche e la distribuzione viene contrassegnata come specifica di tali impostazioni cultura.

Per usare questo metodo in Visual Studio, impostare la proprietà Pubblica lingua nella scheda Pubblica sull'area desiderata. Visual Studio includerà automaticamente l'assembly satellite necessario per l'area selezionata e escluderà tutti gli altri assembly satellite dalla distribuzione.

Nota

In ClickOnce per .NET Core 3.1 e .NET 5 o versione successiva è possibile impostare le proprietà di distribuzione usando lo strumento Pubblica anziché la pubblicazione guidata e la pagina Pubblica di Progettazione progetti. Per altre informazioni, vedere Distribuire un'applicazione Windows .NET con ClickOnce e ClickOnce per .NET.

È possibile eseguire la stessa operazione usando lo strumento MageUI.exe in Microsoft Windows Software Development Kit (SDK). Usare il pulsante Popola nella scheda File del manifesto dell'applicazione per escludere tutti gli altri assembly satellite dalla directory dell'applicazione, quindi impostare il campo Impostazioni cultura nella scheda Nome per il manifesto della distribuzione in MageUI.exe. Questi passaggi non consentono solo di includere l'assembly satellite corretto, ma anche di impostare l'attributo language dell'elemento assemblyIdentity nel manifesto della distribuzione sul valore delle impostazioni cultura corrispondenti.

Dopo aver pubblicato l'applicazione, è necessario ripetere questo passaggio per tutte le impostazioni cultura aggiuntive supportate dall'applicazione. È necessario assicurarsi di pubblicare in una directory del server Web o di una directory di condivisione file diversa ogni volta, perché ogni manifesto dell'applicazione farà riferimento a un assembly satellite diverso e ogni manifesto della distribuzione avrà un valore diverso per l'attributo language .

Scaricare gli assembly satellite su richiesta

Se si decide di includere tutti gli assembly satellite in un'unica distribuzione, è possibile migliorare le prestazioni usando il download su richiesta, che consente di contrassegnare gli assembly come facoltativi. Gli assembly contrassegnati non verranno scaricati quando viene installata o aggiornata l'applicazione. Sarà possibile installarli in qualunque momento chiamando il metodo DownloadFileGroup nella classe ApplicationDeployment.

Nota

La ApplicationDeployment classe e le API nello System.Deployment.Application spazio dei nomi non sono supportate in .NET Core e .NET 5 e versioni successive. In .NET 7 è supportato un nuovo metodo di accesso alle proprietà di distribuzione dell'applicazione. Per altre informazioni, vedere Accedere alle proprietà di distribuzione ClickOnce in .NET. .NET 7 non supporta l'equivalente dei metodi ApplicationDeployment.

Il download degli assembly satellite su richiesta differisce leggermente dal download degli altri tipi di assembly su richiesta. Per altre informazioni ed esempi di codice su come abilitare questo scenario usando gli strumenti di Windows SDK per ClickOnce, vedere Procedura dettagliata: Download di assembly satellite su richiesta con l'API di distribuzione ClickOnce.

È anche possibile abilitare questo scenario in Visual Studio. Per altre informazioni, vedere Procedura dettagliata: Download di assembly satellite su richiesta con l'API di distribuzione ClickOnce tramite la finestra di progettazione.

Verifica delle applicazioni ClickOnce localizzate prima della distribuzione

Un assembly satellite verrà usato per un'applicazione Windows Forms solo se la proprietà CurrentUICulture per il thread principale dell'applicazione è impostata sulle impostazioni cultura dell'assembly satellite. È probabile che i clienti nei mercati locali eseguano già una versione localizzata di Windows con il valore predefinito appropriato specificato per le impostazioni cultura.

Sono disponibili tre opzioni per la verifica delle distribuzioni localizzate prima di rendere disponibile l'applicazione ai clienti:

  • È possibile eseguire l'applicazione ClickOnce nelle versioni localizzate appropriate di Windows.

  • È possibile impostare la proprietà CurrentUICulture a livello di codice nell'applicazione. Questa proprietà deve essere impostata prima di chiamare il metodo Run.