Best way to make website for multiple languages

I have made a website using(Asp.net, c#) and its content in English.
Now i have a requirement to make this website in such a way that is support multiple languages ie (German,French).
Lable/Textbox/ string all values will display respective selected languages
While searching i came to know there are some ways like

  • Using localization
  • Use resource file.
  • Database(every thing is saved in database for different language).

frankly speaking I am not agree with 3rd option.

I want to know which is the best way to go or is there any other better way?

Note:Current Website was built using .NET framework 4.0/ vs 2010.

Thanks

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Resx:

http://msdn.microsoft.com/en-us/library/ms227427.aspx

http://dreamdotnet.blogspot.com/2007/01/tutorial-translating-aspnet-web.html

You can use resx files for multiple languages and use the ResXResourceWrite to update them (if you want users to be able to update the files: http://msdn.microsoft.com/en-us/library/system.resources.resxresourcewriter.aspx)

This solution is only good for static content. If you want to be able to translate content from the database (for example if you have products stored in your database, and you want that the description of the product to be multilingual too). In this case you’ll need to change you DB Scheme in order to support multilingual content.

PS
you can use GetLocalResourceObject("key") in order to retrieve values without using web controls.

If you’re using MVC, see the following question: How to localize ASP.NET MVC application?

Method 2

Sample code i have done using resource file add global.asax

 void Application_BeginRequest(Object sender, EventArgs e)
        {
            // Code that runs on application startup
            HttpCookie cookie = HttpContext.Current.Request.Cookies["CultureInfo"];
            if (cookie != null && cookie.Value != null)
            {
                System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(cookie.Value);
                System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cookie.Value);
            }
            else
            {
                System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
                System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en");
            }
        }

Method 3

For dynamic content a thrid party plugin or a adding something such as Google translate would do it;

http://translate.google.com/translate_tools

FYI; Google Chrome has built in auto-translate and Chrome’s popularity is growing fast… wow imagine a web where regardless of language you have access to ALL content this isn’t that but I though I would share my thoughts


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x