Wiele modułów scalania języka
Wiele modułów językowych może dostarczać składniki z kilkoma różnymi językami jako pojedynczy plik złożony. Projektowanie i funkcjonalność wielu modułów scalania języków jest podobna do modułów z jednym językiem. Moduł scalania wielu języków zawiera więcej niż jeden język wymieniony w Właściwości podsumowania szablonu. Baza danych modułu scalania wielu języków zawiera wszystkie informacje o konfiguracji dla wielu języków. Szafa MergeModule.CABinet wewnątrz modułu scalania wielu języków zawiera wszystkie pliki dla wszystkich obsługiwanych języków.
Podczas stosowania pliku msm w wielu językach do pliku .msi należy wskazać końcowy język pakietu instalacyjnego po scaleniu. W przypadku modułu scalania pojedynczego języka tabela File (Plik) modułu scalania zawiera listę wszystkich plików znajdujących się w szafie MergeModule.CABinet. W przypadku modułu scalania wielu języków Scalmodule.CABinet zawiera wszystkie pliki dla każdego języka obsługiwanego przez moduł, ale tylko podzbiór plików dla języka końcowego przechodzi do tabeli Plik modułu. Narzędzie scalania musi zapewnić, że moduł udostępnia podzbiór informacji i plików wymaganych dla żądanego języka końcowego.
Każdy moduł scalania ma domyślny język określony w kolumnie Language tabeli ModuleSignature. Domyślny język modułu scalania jest również wyświetlany jako pierwszy lub tylko język w właściwości Podsumowanie szablonu. W zależności od żądanego języka końcowego i domyślnego języka modułu narzędzie scalania może stosować przekształcenia języka do modułu scalania wielu języków, aby można było go otworzyć w żądanym języku lub przybliżenie żądanego języka. Przekształcenia języka są osadzone w module scalania. Narzędzia scalania muszą stosować przekształcenia języka w celu zachowania zgodności z następującymi ogólnymi regułami:
- Jeśli języki domyślne i końcowe są takie same, moduł można scalić bez używania przekształceń języka.
- Jeśli domyślny język to 0 (moduł neutralny dla języka), moduł można scalić bez użycia przekształceń języka.
- Jeśli język końcowy nie jest językiem domyślnym, narzędzie scalania musi zastosować jeden z przekształceń języka osadzonych w module, aby zmienić moduł na język końcowy lub przybliżyć język końcowy.
Na przykład nie są wymagane żadne przekształcenia językowe, jeśli język końcowy to 1033 (angielski USA), a domyślny język modułu to 1033 (angielski USA), 0 (neutralny język) lub 9 (ogólny angielski).
Przekształcenia języka są wymagane, jeśli język końcowy to 1033 (angielski USA), a domyślnym językiem jest 1031 (niemiecki). W takim przypadku narzędzie scalania może najpierw wyszukać wiele modułów językowych w celu przekształcenia języka osadzonego na 1033 (angielski STANY USA). Jeśli to się nie powiedzie, może wyszukać przekształcenie w języku z pasującym podstawowym identyfikatorem LANGID, nawet jeśli pomocniczy identyfikator LANGID nie jest zgodny. Jeśli na przykład narzędzie nie może odnaleźć przekształcenia na 1033 (angielski usa), wyszukuje przekształcenie na 9 (ogólny angielski). Jeśli to nie powiedzie się, narzędzie scalania wyszukuje przekształcenie na 0 (neutralne język). Jeśli wszystkie te wyszukiwania dla odpowiedniego przekształcenia nie powiedzie się, nie można otworzyć modułu.
Aby uzyskać więcej informacji, zobacz Tworzenie wielu modułów scalania języka.