Index: installer/src/documentation/source_code.dox |
=================================================================== |
new file mode 100644 |
--- /dev/null |
+++ b/installer/src/documentation/source_code.dox |
@@ -0,0 +1,108 @@ |
+/*! |
+ |
+\page source_code Source Code |
+ |
+## Localization Source ## |
+ |
+See \subpage localization for all the relevant MSI data structures. |
+ |
+\par WiX `.loc` localization files |
+ |
+- WiX |
+ [WixLocalization Element] (http://wixtoolset.org/documentation/manual/v3/xsd/wixloc/wixlocalization.html) |
+ |
+\par WiX sources for SIS strings |
+ |
+The WiX documentation isn't always very explicit about how it maps WiX elements and attributes to MSI values. |
+Most of them are in the WiX elements `Product` and `Package`. |
+The documentation for `Package` elements states that it is "properties about the package to be placed in the Summary Information Stream." |
+That, however, is misleading, since it's not the only source of such properties. |
+ nor does quite every attribute in the element appear in the SIS. |
+ |
+- MSDN |
+ [Summary Property Descriptions] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa372049%28v=vs.85%29.aspx) |
+- WiX |
+ [Product Element] (http://wixtoolset.org/documentation/manual/v3/xsd/wix/product.html) |
+- WiX |
+ [Package Element] (http://wixtoolset.org/documentation/manual/v3/xsd/wix/package.html) |
+ |
+This section enumerates the properties in the SIS and shows where they originate in the source code. |
+They are listed in order of their property index numbers, the same order used by the `msiinfo`. |
+The properties in the SIS appear in the Control Panel tool _Programs and Features_. |
+ |
+- **Codepage**. |
+ In the attribute `Package/@SummaryCodepage`. |
+ This is the code page used to display strings in the Summary Information. |
+- **Title**. |
+ The fixed string "Installation Database". |
+- **Subject**. |
+ In the attribute `Package/@Description`. |
+ Appears as the "Name" field in the tabular listing in Programs and Features. |
+- **Author**. |
+ In the attribute `Package/@Manufacturer`. |
+ If omitted, (apparently) defaults to `Product/@Manufacturer`. |
+ Appears as the "Publisher" field in the tabular listing in Programs and Features. |
+ Related to this, there's a property "Manufacturer" in the installer database. |
+- **Keywords**. |
+ In the attribute `Package/@Keywords`. |
+ Appears at the bottom of Programs and Features when the package is selected. (?) |
+- **Comments**. |
+ In the attribute `Package/@Comments`. |
+ Appears at the bottom of Programs and Features when the package is selected. |
+- **Template**. |
+ This single SIS property is the concatenation of two fields. |
+ The first is the value of the `-arch` command line option of the compiler `candle`. |
+ If that's not specified, it's in `Package/@Platform` or `Package/@Platforms`. |
+ The second is in `Package/@Languages`. |
+- **Revision**. |
+ Used to store the package GUID |
+ In attribute `Package/@Id`, but is automatically generated if absent, |
+ which is the recommended usage. |
+- **Last Printed**. |
+ Used for administrative images. |
+ Not a concern for us, but set by a tool. |
+- **Create Time/Date**. |
+ The linker sets this value. |
+ So does the embedding tool, which is arguably a defect in the Automation interface. |
+- **Last Saved Time/Date**. |
+ The linker sets this value, as do the other tools that modify the MSI. |
+- **Page Count**. |
+ Used to store the minimum installer version required to install. |
+ In the attribute `Package/@InstallerVersion`. |
+- **Word Count**. |
+ A bit field in attributes `Package/@ShortNames`, `Package/@Compressed`, `Package/@AdminImage`, and `Package/@InstallPrivileges`. |
+- **Creating Application**. |
+ Set by the linker to "Windows Installer XML" and a version number. |
+- **Security**. |
+ A bit field in attribute `Package/@ReadOnly`. |
+ |
+\par Localization of the WiX UI extension. |
+ |
+We are using the WiX UI extension for the installer. |
+It already has localizations for many languages, |
+ including most of the ones that we already support in the plugin. |
+There are a few, however, that do not have localizations, yet, and we'll have to provide them. |
+The source code location for these WiX localizations is `src/ext/UIExtension/wixlib` |
+ with files named `WixUI_<language-code>.wxl`. |
+These lists were checked against both WiX 3.7 and WiX 3.8. |
+ |
+The WiX UI extension DOES NOT support the following languages that we do. |
+ |
+- fil-PH. Filipino - Phillipines. |
+- kn-IN. Kanada - India. |
+- mr-IN. Maratha - India. |
+- ms. Malaysian - generic. |
+- nn-NO. Nynorsk - Norway. |
+- ur-PK. Urdu - Pakistan. |
+ |
+The WiX UI extension supports the following languages that we do not yet support. |
+ |
+- kk-KZ. Kazakh - Kazakhstan. |
+- ko-KR. Korean - Korea. |
+- lt-LT. Lithuanian - Lithuania. |
+- lv-LV. Latvian - Latvia. |
+- sl-SI. Slovenian - Slovenia. |
+- sr-Latn-CS. Serbian, Latin alphabet - Serbia and Montenegro. |
+- zh-HK. China - Hong Kong |
+ |
+*/ |