Prev: The DataTable connection object.
Next: Opinion: FileSystemWatcher robust enough for server app?
From: eBob.com on 16 Apr 2010 16:06 I'm writing an application which I'd like to work in either of two languages. I'd like the end user to be able to switch between the two languages at any point in time. But I have found MS documentation which ways ... Add the following code. In Visual Basic, it should go in the New function, before calling the InitializeComponent function. ... ' Visual Basic ' Sets the UI culture to French (France). Thread.CurrentThread.CurrentUICulture = New CultureInfo("fr-FR") This sounds to me like the language is determined once and for all when the application is initializing. I guess I should just believe the MS documentation and move on. But I am hoping that the doc is wrong and the language can be changed on the fly. Thanks, Bob
From: Cor Ligthert[MVP] on 17 Apr 2010 08:33 Yea written probably by Americans, but for sure not Canadians. The UI culture is gotten from the settings of the user, if you set it, then you are probably in trouble trouble. In a French computer the setting is mostly fr-Fr or fr-BE or fr-CH etc. Keep it that way, as the software is used on a let say Dutch computer in Belgium, then it will use by instance nl-BE This you can test (now simply in the same way as your showed code), if you have used the standard in build language methods in forms, then is will be used like that. Cor "eBob.com" <eBob.com(a)totallybogus.com> wrote in message news:eE76$Aa3KHA.5588(a)TK2MSFTNGP06.phx.gbl... > I'm writing an application which I'd like to work in either of two > languages. I'd like the end user to be able to switch between the two > languages at any point in time. But I have found MS documentation which > ways ... > > Add the following code. In Visual Basic, it should go in the New function, > before calling the InitializeComponent function. ... > > ' Visual Basic > ' Sets the UI culture to French (France). > Thread.CurrentThread.CurrentUICulture = New CultureInfo("fr-FR") > > > This sounds to me like the language is determined once and for all when > the application is initializing. I guess I should just believe the MS > documentation and move on. But I am hoping that the doc is wrong and the > language can be changed on the fly. > > Thanks, Bob > >
From: Grant Frisken on 17 Apr 2010 22:55 > This sounds to me like the language is determined once and for all when the > application is initializing. I guess I should just believe the MS > documentation and move on. But I am hoping that the doc is wrong and the > language can be changed on the fly. You can change the CurrentUICulture at any time however this won't affect forms that are already open. So by default you need to close any open forms and reopen them to force them to reload using resources for the new culture. There are some solutions that address this issue and allow you to change the culture on the fly. See the following code project articles: http://www.codeproject.com/KB/cs/CultureManager.aspx - for windows forms projects http://www.codeproject.com/KB/WPF/WPF_Resx_Localization.aspx - for WPF projects
From: eBob.com on 17 Apr 2010 23:55 "Grant Frisken" <grant(a)infralution.com> wrote in message news:66b8dde2-a9eb-4c8e-909d-7f31e82bf876(a)z6g2000yqz.googlegroups.com... > This sounds to me like the language is determined once and for all when > the > application is initializing. I guess I should just believe the MS > documentation and move on. But I am hoping that the doc is wrong and the > language can be changed on the fly. You can change the CurrentUICulture at any time however this won't affect forms that are already open. So by default you need to close any open forms and reopen them to force them to reload using resources for the new culture. There are some solutions that address this issue and allow you to change the culture on the fly. See the following code project articles: http://www.codeproject.com/KB/cs/CultureManager.aspx - for windows forms projects http://www.codeproject.com/KB/WPF/WPF_Resx_Localization.aspx - for WPF projects Thank you Grant. But I still must be missing something because it's still not working. In my Form1 code I have the following ... Private Sub Button1_Click(ByVal sender As System.Object, ... Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US") Dim dtf As New Define_New_Template 'define template form ... dtf.Show() Then in my Define_New_Template code I have ... Private Sub Define_New_Template_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ... Dim LocRM As New ResourceManager("FL658323 Invoice Doc Parser 0.WinFormStrings", _ GetType(Form1).Assembly) Try MessageBox.Show(LocRM.GetString("define_new_template_form_title")) Catch ex As Exception MsgBox(ex.Message) End Try So I am executing Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US") before I Dim dtf. But still the call to LocRM.GetString is blowing up as described in my other recent post ("ResourceManager.GetString"). If you can offer any further help I would sure appreciate it. Thanks, Bob
|
Pages: 1 Prev: The DataTable connection object. Next: Opinion: FileSystemWatcher robust enough for server app? |