none
Change the language on buttons and labels. RRS feed

  • Question

  • I have a program for Swedish users. How can I most easily change the language on buttons, labels and headings for Norwegian, German and English users.
    A multilingual software.

    Lennart Ahlengren

    Saturday, February 18, 2017 10:09 PM

All replies

  • Hi,

    The only suggestion I have is to keep the language translations in a table and have a settings option to select the language to use. Then, in the Open event of your forms and report, you can set the labels based on the settings selected by the user.

    Hope it helps...

    Saturday, February 18, 2017 10:54 PM
  • I have a program for Swedish users. How can I most easily change the language on buttons, labels and headings for Norwegian, German and English users.
    A multilingual software.

    Hi Lennart,

    Without any doubt there will be a couple of ways to make the User Interface multilingual. All what the user sees in the UI can easily be changed in the Open event of the forms.

    Anyway you have to make a table with the translation to the different languages. The difference is how you address the table. When using coded entries, as with error codes, then the selecting software is hard to read, and thus to understand.

    For simple words, like headings, captions, labels, buttons, etc, I would program it in the native language of the programmer (Swedish) or English, and translate it to other languages using the translation table using these simple texts as entry.

    I you have to translate larger sentences, then I would program with a small descriptive keyword, and use that keyword as the entry of the translation table.

    Imb.

    Saturday, February 18, 2017 11:01 PM
  • You have a couple options.

    Duplicate the forms, reports, one per language, but this adds to the maintenance of the database

    Create a translation table and then use code to dynamically change label captions, etc... based on a user setting.

    Similarly to the previous options, you can have the DB edit the forms based on the users setting and save the design change instead of a dynamic change at runtime.

    Similarly to most web applications, I've use text files (one per language) instead of a table.  At startup the files are read into memory and used to dynamically alter the captions ... Using the forms open events.

    I have a very complicated DB and found dynamic translations to impact form opening times, so I created a translation routine that goes through the entire DB a translates everything.  This way I can pump out multiple version of the DB after development and my launching script serves out the DB version or the user's setting but they don't have losing time issues.

     

    Also, always do you development using the most verbose language, this will ensure your translations fit in the same space and you don't end up with issue.  For instance, many of my solutions are English and French, I always set things up in French knowing that the English translations will take far less room.


    Daniel Pineault, 2010-2016 Microsoft MVP Professional Support: http://www.cardaconsultants.com MS Access Tips and Code Samples: http://www.devhut.net


    Saturday, February 18, 2017 11:32 PM
  • Hi Karl Ahlengren,

    I agree with all the suggestions given by .theDBguy , Imb-hb , Daniel  Pineault .

    they mentioned everything that you need to implement in your project to fulfil your requirement.

    now it's upon to you whether you are capable enough to implement this suggestions.

    if you are not able to implement then you can check the link below.

    WSI Multi Language Code Framework

    with the help of that you can support multi language in your db.

    With the WSI Multi Language Code Framework, you will have the functions and code to setup your Microsoft Access database application with multi-language support!  using this powerful framework will allow you to localize your database application for users that speak different languages.

    Note :- it is a paid Framework. it is not free, you need to buy it if you want to use. (you can try to download free demo trial version for test.)

    if you are capable enough to implement the community members suggestion, then I recommend you to give it high priority. because with that approach you not need to spend money.

    in case, you don't know how to do that , then and then you can go for this paid framework. I just try to show you a possibility to solve your issue.

    Disclaimer: This response contains a reference to a third party World Wide Web site. Microsoft is providing this information as a convenience to you. Microsoft does not control these sites and has not tested any software or information found on these sites; therefore, Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there. There are inherent dangers in the use of any software found on the Internet, and Microsoft cautions you to make sure that you completely understand the risk before retrieving any software from the Internet.

    Regards

    Deepak


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Monday, February 20, 2017 3:07 AM
    Moderator
  • Thanks, this is how we do it today. Was looking for a smarter way to do it.

    /Lennart

    Monday, February 20, 2017 12:28 PM
  • Hi. Thank you for your advice!

    /Lennart

    Monday, February 20, 2017 12:32 PM
  • Hi. Thank you for your advice!

    /Lennart

    Monday, February 20, 2017 12:33 PM
  • Hi. Thank you for your advice!

    Interesting, I will try this.

    /Lennart

    Monday, February 20, 2017 12:34 PM
  • Thanks, this is how we do it today. Was looking for a smarter way to do it.

    /Lennart

    Hi Lennart,

    From the answers it is not clear how you do it today.

    Besides, it also depends on the systematics you use to develop applications. In my applications I use generalised forms, that are tuned using meta data tables, with already an intrinsic translation. It would not make much difference to choose a different language.

    Imb.

    Monday, February 20, 2017 12:53 PM
  • "Thanks, this is how we do it today. Was looking for a smarter way to do it."

    Smarter how?  What is the problem with your current approach?  If you would elaborate, perhaps we could offer some ideas.

    I mentioned 4-5 approaches, as I have used about every possible approach over the years.  Dynamic translation works fine for simple objects (forms, reports) but can negatively impact load times of complex one and this is where translating the entire db in one shot and saving multiple versions can become beneficial.


    Daniel Pineault, 2010-2016 Microsoft MVP
    Professional Support: http://www.cardaconsultants.com
    MS Access Tips and Code Samples: http://www.devhut.net


    Monday, February 20, 2017 2:09 PM
  • I mentioned 4-5 approaches, as I have used about every possible approach over the years.  Dynamic translation works fine for simple objects (forms, reports) but can negatively impact load times of complex one and this is where translating the entire db in one shot and saving multiple versions can become beneficial.

    Hi Daniel,

    A little off-topic, and just for curiosity: when do you consider an application as complex?

    Imb.

    Tuesday, February 21, 2017 11:28 AM
  • Actually, the issue was the main form was very busy.  My comment is based on performance, load times.  When the user has to sit around for 3+ seconds waiting for a form to load, then it is time to see how things can be improved (dynamically loading forms, ...). 

    In the specific case I was referencing, the form had 20+ subforms and some of those had subforms.  The real time translation was adding about 15 second to the form opening.  By performing a static one time translation, making a version per language, I eliminated that issue.


    Daniel Pineault, 2010-2016 Microsoft MVP
    Professional Support: http://www.cardaconsultants.com
    MS Access Tips and Code Samples: http://www.devhut.net


    Tuesday, February 21, 2017 12:10 PM