Più moduli di unione del linguaggio
Più moduli linguistici possono fornire componenti con diverse lingue come singolo file composto. La progettazione e la funzionalità di più moduli di unione del linguaggio sono simili ai moduli a linguaggio singolo. Un modulo di unione di più lingue include più lingue elencate nella Riepilogo modelli Proprietà. Il database di un modulo di unione multilingue contiene tutte le informazioni di configurazione per più lingue. Il cabinet MergeModule.CABinet all'interno di un modulo di unione di più lingue contiene tutti i file per tutte le lingue supportate.
Quando si applica un file msm in più lingue a un file .msi, è necessario indicare la lingua finale del pacchetto di installazione dopo l'unione. Nel caso di un singolo modulo di unione del linguaggio, la tabella file del modulo di merge elenca ogni file presente nell'archivio MergeModule.CABinet. Nel caso di un modulo merge in più lingue, MergeModule.CABinet contiene tutti i file per ogni lingua supportata dal modulo, ma solo il sottoinsieme di file per la lingua finale viene inserito nella tabella File del modulo. Lo strumento di unione deve assicurarsi che il modulo fornisca il sottoinsieme di informazioni e file necessari per la lingua finale richiesta.
Ogni modulo di merge ha una lingua predefinita specificata nella colonna Language della tabella ModuleSignature . La lingua predefinita di un modulo di unione viene visualizzata anche come prima lingua o solo nella Riepilogo modelli Proprietà. A seconda della lingua finale richiesta e della lingua predefinita del modulo, lo strumento di unione può applicare trasformazioni della lingua a un modulo di unione multilingue in modo che possa essere aperto nella lingua richiesta o un'approssimazione della lingua richiesta. Le trasformazioni del linguaggio vengono incorporate all'interno del modulo di merge. Gli strumenti di merge devono applicare trasformazioni del linguaggio in conformità alle regole generali seguenti:
- Se le lingue predefinite e finali sono le stesse, il modulo può essere unito senza usare trasformazioni della lingua.
- Se la lingua predefinita è 0 (un modulo indipendente dalla lingua), il modulo può essere unito senza usare trasformazioni della lingua.
- Se la lingua finale non è la lingua predefinita, lo strumento di unione deve applicare una delle trasformazioni del linguaggio incorporate nel modulo per modificare il modulo alla lingua finale o a un'approssimazione della lingua finale.
Ad esempio, non sono necessarie trasformazioni di lingua se la lingua finale è 1033 (inglese statunitense) e la lingua predefinita del modulo è 1033 (inglese statunitense), 0 (lingua neutra) o 9 (inglese generico).
Le trasformazioni della lingua sono necessarie se la lingua finale è 1033 (inglese statunitense) e la lingua predefinita è 1031 (tedesco). In questo caso, lo strumento di unione può prima cercare nel modulo di più lingue una trasformazione della lingua incorporata in 1033 (inglese statunitense). In caso di errore, potrebbe quindi cercare una trasformazione in una lingua con un LANGID primario corrispondente, anche se il LANGID secondario non corrisponde. Ad esempio, se lo strumento non riesce a trovare una trasformazione in 1033 (inglese statunitense), cerca una trasformazione in 9 (inglese generico). Se l'operazione ha esito negativo, lo strumento di unione cerca una trasformazione in 0 (indipendente dalla lingua). Se tutte queste ricerche hanno esito negativo per una trasformazione appropriata, l'apertura del modulo non riesce.
Per altre informazioni, vedere creazione di più moduli di unione del linguaggio.