Developing auto translation for MFC interfaces - c++

I developed an application with Visual C + + and MFC, I need to translate the help files (one file per language), I'm looking for a solution similar to i18n in PHP.
When the application is installed on the windows, it is necessary that the application detects the language settings of "Windows" and display the corresponding translation, if the Windows language is not supported, it should set the default language (English).

If you use dialogs, you can create language specific versions of the dialogs. For normal strings you can use language specific string table resources.
If you need more direct control you can use the various national language support apis.

Related

Need to adapt MFC, c++ native application to OS Font Scaling,

We need to adapt an existing MFC, C++ native application (GUI) so the text will enlarge with user preference in system preference:
Windows Settings|Ease of Access|Display|Make text bigger.
Nowadays application will scale their text depending on this user preference. I have found links explaining how to do this using C# or C++/WinRT:
https://learn.microsoft.com/en-gb/uwp/api/windows.ui.viewmanagement.uisettings.textscalefactor
https://learn.microsoft.com/en-us/windows/uwp/design/input/text-scaling
We would like to use a native C++ API in order to ease the development effort. Building bridges to C# or c++/WinRT would also complexify our solution.
We have already adapted our application to DPI scaling.
Thanks for your help

How to write your own input tool software for windows for my language?

My language Kachhi has no official Unicode support but I have developed my own fonts in ttf, otf , svg etc format.
I already run a website using same fonts.
I want users to be able to write or input in my language using my fonts
(preferably on all platforms but if not then mainly on windows)
So how can I develop a input tool software for windows?
to input custom fonts designed for my language
Can anyone help by pointing out how to build you own windows IME. Link to some tutorial or books or anything?
I apologise if I misunderstood the question - however I think you may consider using the Unicode private use area
The idea of this part of Unicode is to allow for exactly this situation (I remember someone used it for the fictional Klingon language at one point).
You can use these zones of the Unicode-tables, then provide input/output mechanisms though traditional Unicode methods.
Obviously enough, without a custom font (such as the one you've developed), these sections of the table have no meaning.
What you're aiming for is called an Input Method Editor. Essentially, this is a small program with a standardized interface, to translate user input into Unicode text.
You can pick pretty much any language that has decent Windows support. IOW, VC++.

Mac App Development: How to select app language while installing?

I am currently developing a Mac app using C++.
In this app, we have provided language selections for users.
But for some resource files, users can change it while using the app. So I want the the language version of the resource files to be chosen during installation and can not be changed after installation.
I have tried to package the app as a .pkg file using packagemaker and iceberg, but I can not find a way to provide a dialog to let users choose language.
For example, when I use iceberg to package a Mac App, it provides those options:
Settings/Documents/Scripts/plugins/Files
I can not find any way to give a language selection for end users.
So, my question is, how can I implement this requirement?
As a rule, this just is not done. On the Mac, and within iOS, there is a nearly thirty-year history of supporting a single binary with multiple user interface languages. The reason that there are few, if any, tools that support installation of just one is that it is considered to be against e way the platform is supposed to work.
Consider, just as an example, a computer in a lab in Quebec where it is not uncommon to have a mix if students speaking English and French. In is case, lab computers installed with just French would be useful only to users who speak Frennche, as changing the language to English for a new user (at login for example) would result in your application continuing to run in French.
With few exceptions, Applications should contain all languages available and gracefully handle language changes during use (often waiting until they are restarted to change the interface language, but your tactic may very).

Multi language support for application , mfc

I have made windows MFC application which currently has English language only. What i want to do is give support for other languages also(E.G: Adobe on new language selection makes every text of application in that language.).
I have a clue for this , that i have to make resource.dll and use it according to selected language or checking for systems current language and select that language. But I am wondering on this 2 points.
How to create this resource dll
How to use this resource dll.
I require this because in future if i want to add more language support for my application i have to just create a resource dll and just upload that.
Thanks in advance.
You're going to want to take a look at localizing your resources. the first step in that is creating a resource only dll.

Looking for a way to translate an application

I'm starting to design an application and I'd like it to support several languages from the beginning to avoid having to change big amounts of code later on to enable multiple languages.
I've written early a C application for which the messages were in a struct so I'd have several header files with the translated strings which would be integrated into the application itself, so to add a new language I'd have to recompile.
What I'd like is to be able to have a localization system that allows me to translate the application and add new languages easily without having to recompile the application. Ideally with a pretty straightforward way of translating and testing the translation (like editing a text file and seeing the results back in the app), without having to depend on 3rd party tools for the translation.
I'm thinking about writing my own system for it, maybe based on XML for the files containing the translations for example, but I wonder if anybody has experience with this and would recommend a lightweight library that provides that I'd like (even if the translation is not so direct as editing a text file). I emphasize lightweight because I think the application itself is not going to weight more than a couple of megabytes.
It's going to be a Windows application, if that's relevant for the matter. As of now I still haven't decided on the graphic toolkit I use but it's probably that I'll use the default Windows offers without using a cross platform one (like wxWidgets, Qt, GTK+, ...). But it's not set in stone, if one offered significant advantages it'd consider it.
I am not sure how lightweight is, but qt has a good support for internationalization.
Then you can use QtLinguist to simply translate your text.
Don't invent your own system. Internationalization (i18n) and localization (l10n) are almost always covered in some existing library.
If you develop for Windows, this link, Globalizing and Localizing .NET Framework Applications, might prove useful.