Skip to content

Multilingual Interface (MUI) Implementation & Language Selector#221

Open
nbb1967 wants to merge 37 commits intobailey27:masterfrom
nbb1967:lang-switch
Open

Multilingual Interface (MUI) Implementation & Language Selector#221
nbb1967 wants to merge 37 commits intobailey27:masterfrom
nbb1967:lang-switch

Conversation

@nbb1967
Copy link

@nbb1967 nbb1967 commented Mar 5, 2026

Description

This PR provides full Internationalization (i18n) support for the project. It supersedes and includes all changes from #214, #218, and #220.

Key features of this stage:

  • Added Form to select the application language.
  • The user's selection is saved in the Windows Registry.
  • Application automatically loads the interface in the language selected by the user at startup.

Build Status:

The project compiles without errors in both Debug and Release modes.

For the app author:

  • A concise "how-to" comment has been added to the cppcryptfs.rc header. It provides a simple, zero-code procedure for integrating new languages in the future.

For Translators:

  • Translation Kit: Entire /en/ folder.
  • Guide: The header of Resources_EN.rc file contains directives for translators.
language

@bailey27
Copy link
Owner

Thanks for the localization work. This is great.

One thing I'd prefer to keep unchanged is the copyright notices and license texts. Open-source licenses are generally considered legally authoritative in their original (e.g. English) form, and translations can introduce ambiguity or unintended legal differences. Because of that, most projects keep the license and copyright strings in English even when the UI itself is localized.

For this project I'd rather leave the copyright and license text as-is and only translate the UI strings. That also avoids the extra maintenance burden of keeping translated license texts in sync if they change.

Everything else in the localization work looks good. Thanks again for contributing this.

@nbb1967
Copy link
Author

nbb1967 commented Mar 14, 2026

An open-source license is, first and foremost, a gesture of respect toward the people whose work (code) you have used. And it’s best to leave the legal bullshit to the lawyers and proprietary software. The MIT License in English in the About section—formally, from a legal standpoint, it’s absolutely perfect, but in essence, it’s like a prayer in dead Latin...
However, it’s your program, so I won’t argue.

Will you roll back the file yourself or should I?
Need to move RCDATA and VERSION to the non-localized cppcryptfs.rc. Move the lic folder to the res folder. Restore the array of 8 Copyright in the code and remove them from STRINGS. Correct the comment for translators in the Resources_EN header (remove the mention of RCDATA).

Migrating licenses to RCDATA greatly simplifies maintenance: when you switch from the dual OpenSSL license to their new Apache 2.0 license, it will only take a couple of minutes to make the change.

@bailey27
Copy link
Owner

I'll make the changes myself. I think I'll keep the external project copyright notices as a strings in the non-localized rc also.

@nbb1967
Copy link
Author

nbb1967 commented Mar 18, 2026

OK. Please note the cppcryptfs copyright: the second line from the top on the About tab: it is linked to VERSION, although a similar line is included in STRINGS:

Resources_EN.rc (377):

IDS_COPYRIGHT "Copyright (C) 2016-2025 Bailey Brown. All Rights Reserved."

@nbb1967
Copy link
Author

nbb1967 commented Mar 20, 2026

//The terms "Copyright" and "All rights reserved" are included in Microsoft's terminology database recommended for localizing Windows programs. They are usually translated...
Microsoft Terminology Search

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants