Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installer issues - Strings untranslated #280

Open
bovirus opened this issue Aug 5, 2024 · 7 comments
Open

Installer issues - Strings untranslated #280

bovirus opened this issue Aug 5, 2024 · 7 comments
Assignees
Labels
bug Something isn't working

Comments

@bovirus
Copy link
Contributor

bovirus commented Aug 5, 2024

@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):

  • OS: Windows 10 22H2 64bit Italian
  • Version [e.g. mrv2 v1.1.6]

Additional context

@bovirus bovirus added the bug Something isn't working label Aug 5, 2024
@ggarra13
Copy link
Owner

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

@bovirus
Copy link
Contributor Author

bovirus commented Aug 15, 2024

@ggarra13

If you like I can help to fix this.

In which file is included the nsis script?

@ggarra13
Copy link
Owner

@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
Copy link
Contributor Author

bovirus commented Aug 16, 2024

@ggarra13

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

@ggarra13
Copy link
Owner

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
Copy link
Contributor Author

bovirus commented Aug 17, 2024

Where did you define strings like

  • Install option (title and description)
  • Section name/component name
  • mrv already instaleld strings

@ggarra13
Copy link
Owner

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/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants