ggarra13 / mrv2

Professional player and review tool for vfx, animation and computer graphics.
https://mrv2.sourceforge.io
BSD 3-Clause "New" or "Revised" License
200 stars 14 forks source link

Installer issues - Strings untranslated #280

Open bovirus opened 1 month ago

bovirus commented 1 month ago

@ggarra13

Describe the bug In the instalelr there somne strings untranslated.

To Reproduce Steps to reproduce the behavior:

  1. Run the installer'
  2. Seelkct the Italian language.'
  3. Continue the instalaltion

Expected behavior Add relative strings in NSIS installer script.

Screenshots

image

image

image

Desktop (please complete the following information):

Additional context

ggarra13 commented 1 month ago

Same as #252. I have not forgotten but it is difficult and will take quite some time to fix.

bovirus commented 1 month ago

@ggarra13

If you like I can help to fix this.

In which file is included the nsis script?

ggarra13 commented 1 month ago

@bovirus I would appreciate any help. Let me describe how the CMake/NSIS installer is setup, because due to the need to use cmake, it is an unfortunate mess:

The Makefile system (CMake) sets the installation targets with install() commands and with components like "applications", "python_tk", etc. This I don't think we should change, as development may need more customization.

Further CMake extensions (links, file associations, etc) for NSIS using NSIS' Modern UI template are added in the cmake/nsis directory. CMake's NSIS standard pages are automatically translated by Modern UI, but some seem to be missing as you found out.

CMake takes all that information and creates a project.nsi which is the actual full NSIS installer and runs makensis on it.

bovirus commented 1 month ago

@ggarra13

Which is the cmake script file name that contains NSIS variables and strings definitions? Where can I get project.nsi?

ggarra13 commented 1 month ago

Which is the cmake script file name that contains NSIS variables and strings definitions? Where can I get project.nsi?

Sadly, most of the string definitions come mainly from NSIS installer itself, the Modern UI (MUI) include, which is in the NSIS installation directory.

CMake's configuration for NSIS is in:

cmake/nsis/

NSISRegistry.cmake - contains the CMake's NSIS exensions to add the shortcuts on install and remove them on uninstall.  It also adds an include for adding the file associations code on install.
fileext.nsh - the code to add the file associations
mrv2_translations.nsh - Translations for fileext.nsh.

project.nsi is only available when you actually build mrv2 as cmake creates it on the fly, and is not in the repository.

See the build instructions on the main github page of mrv2 for the requirements.

For the full compile of mrv2, you have to use:

runme.sh -t package

The full mrv2 build can take like 40 mins on a 16 CPU. For a faster compilation, that should take 5 minis on 16 CPUs, you can use:

bin/runme_minimal.sh -t package

With either one, the packaging of NSIS and the project.nsi file will then be located in:

BUILD-Msys-amd64/Release/mrv2/src/mrv2-build/_CPack_Packages/win64/NSIS/

bovirus commented 1 month ago

Where did you define strings like

ggarra13 commented 1 month ago

Where did you define strings like

  • Install option (title and description)

cmake/packaging.cmake - CPACK_NSIS_* variables and main title and description seems to be hard-coded.

  • Section name/component name

cmake/packaging.cmake - CPACK_COMPONENT_<component>_DISPLAY_NAME

  • mrv already instaleld strings

Comes from NSIS/CMake when this variable is on:

set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON )

For the cmake/cpack variable definitions, you should check and search:

https://cmake.org/cmake/help/latest/