forked from 1b-agent/opencadstudio-upstream
Complete application localization across all supported languages
This commit is contained in:
1 parent
96c794c072
commit
d66e89ca19
78 files changed
+26043
-877
No files matched your search
+15
-90
@@ -1,26 +1,4 @@
|
||||
<?xml version='1.0' encoding='windows-1252'?>
|
||||
<!--
|
||||
WiX source for the Windows MSI installer.
|
||||
|
||||
Build (CI / locally with WiX Toolset 3.x in PATH):
|
||||
candle.exe -arch x64 -dVersion=<x.y.z> -dSource=target\release\OpenCADStudio.exe \
|
||||
-dIcon=packaging\windows\AppIcon.ico packaging\windows\main.wxs \
|
||||
-out packaging\windows\main.wixobj
|
||||
light.exe packaging\windows\main.wixobj -ext WixUIExtension -out OpenCADStudio.msi
|
||||
|
||||
Provides:
|
||||
* Per-machine install under Program Files\Open CAD Studio.
|
||||
* Start Menu shortcut under Programs\Open CAD Studio.
|
||||
* Desktop shortcut.
|
||||
* File associations for .dwg and .dxf via a single ProgID; both
|
||||
route through `OpenCADStudio.exe "%1"` so the OS hands the file
|
||||
path to the app as argv[1] (consumed in OpenCADStudio::boot).
|
||||
* Default Programs registration (Capabilities + RegisteredApplications)
|
||||
so the app shows up in Settings > Default Apps and can be set as the
|
||||
default handler for .dwg / .dxf.
|
||||
* Standard Add/Remove Programs entry with icon.
|
||||
* MajorUpgrade — installing a newer MSI replaces the old version.
|
||||
-->
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
|
||||
<Product
|
||||
Id='*'
|
||||
@@ -33,8 +11,8 @@
|
||||
|
||||
<Package
|
||||
Id='*'
|
||||
Keywords='Installer'
|
||||
Description='Open CAD Studio Installer'
|
||||
Keywords='!(loc.Installer)'
|
||||
Description='!(loc.InstallerDescription)'
|
||||
Manufacturer='Hakan Seven'
|
||||
InstallerVersion='450'
|
||||
Languages='1033'
|
||||
@@ -44,7 +22,7 @@
|
||||
|
||||
<MajorUpgrade
|
||||
Schedule='afterInstallInitialize'
|
||||
DowngradeErrorMessage='A newer version of [ProductName] is already installed. Setup will now exit.' />
|
||||
DowngradeErrorMessage='!(loc.DowngradeError)' />
|
||||
|
||||
<Media Id='1' Cabinet='product.cab' EmbedCab='yes' />
|
||||
|
||||
@@ -54,12 +32,7 @@
|
||||
<Property Id='ARPURLINFOABOUT' Value='https://github.com/HakanSeven12/OpenCADStudio' />
|
||||
<Property Id='ARPURLUPDATEINFO' Value='https://github.com/HakanSeven12/OpenCADStudio/releases' />
|
||||
<Property Id='ARPCONTACT' Value='Hakan Seven' />
|
||||
<Property Id='ARPCOMMENTS' Value='2D/3D CAD application for DWG and DXF drawings.' />
|
||||
<!--
|
||||
Hide "Repair" from the Apps & Features entry — there is no repair flow.
|
||||
"Modify" is deliberately left enabled: WixUI_FeatureTree supports it, so
|
||||
users can add/remove the optional Desktop shortcut feature later.
|
||||
-->
|
||||
<Property Id='ARPCOMMENTS' Value='!(loc.ApplicationDescription)' />
|
||||
<Property Id='ARPNOREPAIR' Value='1' />
|
||||
|
||||
<Directory Id='TARGETDIR' Name='SourceDir'>
|
||||
@@ -77,70 +50,40 @@
|
||||
Id='StartMenuShortcut'
|
||||
Directory='ProgramMenuDir'
|
||||
Name='Open CAD Studio'
|
||||
Description='Launch Open CAD Studio'
|
||||
Description='!(loc.Launch)'
|
||||
WorkingDirectory='APPLICATIONROOTDIRECTORY'
|
||||
Icon='AppIcon.ico'
|
||||
IconIndex='0'
|
||||
Advertise='yes' />
|
||||
</File>
|
||||
|
||||
<!-- DWG/DXF file-type icons, generated from the mimetype SVGs
|
||||
(CI: magick image-vnd.{dwg,dxf}.svg -> {dwg,dxf}.ico). -->
|
||||
<File Id='DwgIco' Name='dwg.ico' DiskId='1' Source='packaging\windows\dwg.ico' />
|
||||
<File Id='DxfIco' Name='dxf.ico' DiskId='1' Source='packaging\windows\dxf.ico' />
|
||||
|
||||
<!-- DWG thumbnail provider (IThumbnailProvider). Ships beside the
|
||||
exe; OpenCADStudio self-registers it under HKCU on startup
|
||||
(see file_association::install_thumbnailer). -->
|
||||
<File
|
||||
Id='DwgThumbDll'
|
||||
Name='dwg_thumbnailer_win.dll'
|
||||
DiskId='1'
|
||||
Source='target\release\dwg_thumbnailer_win.dll' />
|
||||
|
||||
<!--
|
||||
File associations. Two ProgIDs (one per extension) so the
|
||||
`<Verb Id='open'>` rows don't collide on the same registry
|
||||
primary key — both ProgIDs invoke the same exe with the
|
||||
file path as `argv[1]`.
|
||||
-->
|
||||
<ProgId
|
||||
Id='OpenCADStudio.DWG'
|
||||
Description='DWG Drawing'
|
||||
Description='!(loc.DwgDrawing)'
|
||||
Icon='DwgIco'
|
||||
IconIndex='0'>
|
||||
<Extension Id='dwg' ContentType='image/vnd.dwg'>
|
||||
<Verb Id='open' Command='Open' TargetFile='OpenCADStudioEXE' Argument='"%1"' />
|
||||
<Verb Id='open' Command='!(loc.Open)' TargetFile='OpenCADStudioEXE' Argument='"%1"' />
|
||||
</Extension>
|
||||
</ProgId>
|
||||
|
||||
<ProgId
|
||||
Id='OpenCADStudio.DXF'
|
||||
Description='DXF Drawing'
|
||||
Description='!(loc.DxfDrawing)'
|
||||
Icon='DxfIco'
|
||||
IconIndex='0'>
|
||||
<Extension Id='dxf' ContentType='image/vnd.dxf'>
|
||||
<Verb Id='open' Command='Open' TargetFile='OpenCADStudioEXE' Argument='"%1"' />
|
||||
<Verb Id='open' Command='!(loc.Open)' TargetFile='OpenCADStudioEXE' Argument='"%1"' />
|
||||
</Extension>
|
||||
</ProgId>
|
||||
</Component>
|
||||
|
||||
<!--
|
||||
Default Programs registration. The ProgId/Extension rows above
|
||||
register the handlers, but modern Windows (8+) guards the actual
|
||||
default via a per-user UserChoice hash an installer can't forge.
|
||||
Publishing Capabilities + a RegisteredApplications entry is the
|
||||
supported way in: it makes Open CAD Studio appear in Settings >
|
||||
Default Apps and the "Open with" list, so .dwg / .dxf can be set
|
||||
to it. The keys are HKLM-wide, so the shell picks them up on its
|
||||
next association query without a forced refresh.
|
||||
-->
|
||||
<Component Id='DefaultPrograms' Guid='6f3e9b2a-1c4d-4f8a-9b7e-2d5a8c1f0e63' Win64='yes'>
|
||||
<!--
|
||||
Applications\<exename>\DefaultIcon is what Windows shows in the
|
||||
"Open with" context-menu list and "Choose another app" picker.
|
||||
Without it the entry appears with a blank generic document icon.
|
||||
-->
|
||||
<RegistryValue
|
||||
Root='HKLM'
|
||||
Key='SOFTWARE\Classes\Applications\OpenCADStudio.exe\DefaultIcon'
|
||||
@@ -181,7 +124,7 @@
|
||||
Key='Software\Open CAD Studio\Capabilities'
|
||||
Name='ApplicationDescription'
|
||||
Type='string'
|
||||
Value='2D/3D CAD application for DWG and DXF drawings.' />
|
||||
Value='!(loc.ApplicationDescription)' />
|
||||
<RegistryValue
|
||||
Root='HKLM'
|
||||
Key='Software\Open CAD Studio\Capabilities\FileAssociations'
|
||||
@@ -219,18 +162,12 @@
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
|
||||
<!--
|
||||
Desktop shortcut. A non-advertised shortcut with an explicit Target;
|
||||
the HKCU registry value is the component KeyPath (a shortcut on its own
|
||||
cannot be a KeyPath for a per-user resource).
|
||||
-->
|
||||
<Directory Id='DesktopFolder' Name='Desktop'>
|
||||
<Directory Id='DesktopFolder' Name='!(loc.Desktop)'>
|
||||
<Component Id='DesktopShortcutComp' Guid='c5c7f1c4-3d8a-4efd-b049-4662d9143dcd'>
|
||||
<Shortcut
|
||||
Id='DesktopShortcut'
|
||||
Name='Open CAD Studio'
|
||||
Description='Launch Open CAD Studio'
|
||||
Description='!(loc.Launch)'
|
||||
Target='[APPLICATIONROOTDIRECTORY]OpenCADStudio.exe'
|
||||
WorkingDirectory='APPLICATIONROOTDIRECTORY'
|
||||
Icon='AppIcon.ico'
|
||||
@@ -250,25 +187,15 @@
|
||||
<ComponentRef Id='MainExecutable' />
|
||||
<ComponentRef Id='DefaultPrograms' />
|
||||
<ComponentRef Id='ProgramMenuDirComp' />
|
||||
<!-- Optional, user-deselectable in the feature tree (default on). -->
|
||||
<Feature
|
||||
Id='DesktopShortcut'
|
||||
Title='Desktop shortcut'
|
||||
Description='Add a shortcut to Open CAD Studio on the desktop.'
|
||||
Title='!(loc.DesktopShortcut)'
|
||||
Description='!(loc.DesktopShortcutDescription)'
|
||||
Level='1'
|
||||
Absent='allow'>
|
||||
<ComponentRef Id='DesktopShortcutComp' />
|
||||
</Feature>
|
||||
</Feature>
|
||||
|
||||
<!--
|
||||
Refresh the shell after install so the new .dwg / .dxf file-type icons
|
||||
and associations appear immediately instead of only after a reboot or an
|
||||
icon-cache rebuild. `ie4uinit -show` rebuilds the per-user icon cache.
|
||||
Immediate execution keeps property access ([SystemFolder]); Return='ignore'
|
||||
means it can never fail the install, and the NOT REMOVE condition skips it
|
||||
on uninstall.
|
||||
-->
|
||||
<CustomAction
|
||||
Id='RefreshShellIcons'
|
||||
Directory='APPLICATIONROOTDIRECTORY'
|
||||
@@ -278,8 +205,6 @@
|
||||
<InstallExecuteSequence>
|
||||
<Custom Action='RefreshShellIcons' After='InstallFinalize'>NOT REMOVE</Custom>
|
||||
</InstallExecuteSequence>
|
||||
|
||||
<!-- Installer UI + finish-screen launch checkbox (see ui.wxs). -->
|
||||
<UIRef Id='OpenCADStudioUI' />
|
||||
|
||||
</Product>
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<WixLocalization xmlns="http://schemas.microsoft.com/wix/2006/localization" Culture="en-US" Codepage="1252">
|
||||
<String Id="Launch">Launch Open CAD Studio</String>
|
||||
<String Id="InstallerDescription">Open CAD Studio Installer</String>
|
||||
<String Id="Installer">Installer</String>
|
||||
<String Id="DwgDrawing">DWG Drawing</String>
|
||||
<String Id="DxfDrawing">DXF Drawing</String>
|
||||
<String Id="DesktopShortcut">Desktop shortcut</String>
|
||||
<String Id="DesktopShortcutDescription">Add a shortcut to Open CAD Studio on the desktop.</String>
|
||||
<String Id="DowngradeError">A newer version of [ProductName] is already installed. Setup will now exit.</String>
|
||||
<String Id="Open">Open</String>
|
||||
<String Id="Desktop">Desktop</String>
|
||||
<String Id="ApplicationDescription">2D/3D CAD application for DWG and DXF drawings</String>
|
||||
</WixLocalization>
|
||||
@@ -1,39 +1,9 @@
|
||||
<?xml version='1.0' encoding='windows-1252'?>
|
||||
<!--
|
||||
Installer UI for the Windows MSI, kept separate from the package/feature
|
||||
definition in main.wxs. Linked in via `<UIRef Id='OpenCADStudioUI' />`
|
||||
there; both files are compiled together by candle and linked by light
|
||||
(which needs `-ext WixUIExtension` for the WixUI_Minimal dialog set).
|
||||
|
||||
Provides:
|
||||
* WixUI_FeatureTree wizard (Welcome → License → Features → Progress →
|
||||
Finish). The Features page lets the user deselect the optional Desktop
|
||||
shortcut feature (default on).
|
||||
* A pre-ticked "Launch Open CAD Studio" checkbox on the finish screen
|
||||
that starts the freshly installed exe when the user clicks Finish.
|
||||
-->
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
|
||||
<Fragment>
|
||||
<!--
|
||||
Finish-screen "Launch Open CAD Studio" checkbox.
|
||||
WIXUI_EXITDIALOGOPTIONALCHECKBOX=1 pre-ticks the checkbox; the Publish
|
||||
below fires the launch action when the user clicks Finish with it checked.
|
||||
-->
|
||||
<Property Id='WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT' Value='Launch Open CAD Studio' />
|
||||
<Property Id='WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT' Value='!(loc.Launch)' />
|
||||
<Property Id='WIXUI_EXITDIALOGOPTIONALCHECKBOX' Value='1' />
|
||||
|
||||
<!--
|
||||
License shown on the WixUI_Minimal EULA page. Without this variable WiX
|
||||
falls back to its built-in placeholder (Lorem ipsum) RTF. Point it at the
|
||||
project's GPL-3 text (License.rtf, generated from the repo LICENSE).
|
||||
-->
|
||||
<WixVariable Id='WixUILicenseRtf' Value='$(var.License)' />
|
||||
|
||||
<!--
|
||||
Start the installed exe after the wizard closes. FileKey points at the
|
||||
File defined in main.wxs (light resolves the cross-fragment reference).
|
||||
asyncNoWait lets the installer exit cleanly while the app starts.
|
||||
-->
|
||||
<CustomAction
|
||||
Id='LaunchApplication'
|
||||
FileKey='OpenCADStudioEXE'
|
||||
|
||||
Reference in new issue
Block a user