Multi-Language support


Could you please suggest -
How to organize switching between different languages in application?

I need to develop single application for English and Russian users.
Ideally I want to have seamless switching in real-time.
Therefore, all elements (Buttons, Labels, Messages, etc) should be represented in two languages(basic and translation). But - as I realize now - manually organized (in Blocks), it will be ugly looking solution and also - it could be not really comfortable to use during future development.

What is proper solution?

1 Like

There is one way to do it.

Create your app in a single screen by using arrangements.

For each language create seperate arrangement.

When user first time open app then show him choose language.

When user selects language then show him those arrangements which are in selected language. Also store a value in tiny db so that when user open app for second time, same language layout will be shown to him.

1 Like

You can use Resource Utilities component to make multilingual app.

1 Like


Thank you for your suggestions.

I already found both approaches - Resource Utilities and Arrangements, but I think, these methods are not really good, because in this case we are loosing main idea of visual UI design: once we will want to change something on the screen, we will need to change not actual value of object on the Screen (for example) Label536->Text, but - some value in some hidden table or even - duplicate our design.
So, we are falling back to some kind of text-based UI coding, which could handle such things more effectively.

I feel, we need to have some automatic way for multi-language support. Not sure, if it could be easily implemented in Kodular base. The point is - if all strings in application will have optional values, based on some global variable (LanguageID or other rule/tag), different languages and other behavior could be handled automatically.

Another way, is - changing names in real-time by some extension, which will parse and substitute all strings in blocks with values from “translator” or static table in DB/File.
Is it possible technically in extension - walk through all objects in application and change its values if application started?

@The_K_Studio How to design like you say? How to do block?