VB.Net - How to build a language translation application

We have a transport office receiving multiple deliveries and collections each day from foreign drivers. Many of them speak English but some don't which causes a bottleneck due to translation errors.
I have been asked to create a touch screen application which first presents them with their national flag and then ask a series of standard questions. None of their responses need to be recorded.

I am searching for the most efficient way to build this but as I have only learnt VB.NET by creating simpler apps I am unsure of how to proceed. The questions and statements will almost certainly change over time so I also need it to be easy to look after.
It has already been suggested I use an XML file for the questions but this seems a bit clunky.

Does anyone have any suggestions on where to begin? There's 7 languages at the moment which may grow over time.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.


What you could do is create a language look-up table where each bit of text is given a unique ID. One row for each ID, one column for each language. When you call your ID the code lookups the appropriate text and writes it back.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Luis PérezSoftware Architect in .NetCommented:
Maybe you should start reading about .Net resources for Globalizing and Localizing applications:


Hope that helps.
.Net Resources are suited for UI bits. But when it comes to the questions which users will be asked... I think the suggestion by Rgonzo would work best. A language table might look like:
QuestionID, Language, Question
001        , en         ,  What is your name?
001        , fr         ,  Quel est votre nom?
002        , en         ,  What is your age?
002       , fr         ,  Quel âge as-tu?

Open in new window

Using standard locale names might help integrate with .NET resources mroe easily
Jacques Bourgeois (James Burger)PresidentCommented:
.NET resources are more than for filling user interface. The link presented by MlandaT shows but one way of using them.

You can add global resource files that are not linked with a UI, and use them for anything that can change between languages, be it a string, an image (such as a flag), a sound, you name it.

You can use these in your code anywhere you might need a string, an image... You can use them to display MessageBox and the likes.

It takes only one line of code for the application to switch from one language to another.

Because all the features of each specific language are kept in an external dll file, you can modify these or add a new language without having to recompile the application.

A user can install only the dlls for the languages that he uses, without having to fill his hard diks with resources that he does not need.

And you are following the recommended way of dealing with multilingual applications in .NET. Microsoft builds his applications that way. So you can expect that should it change eventually, there will be a conversion tool to migrate your .NET resources to anything new that could arise.

Luis link is a good starting point.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.