#1,116 – An Example of Output that Obeys CurrentCulture
July 17, 2014 1 Comment
The first step in internationalizing an application is to respect the current regional settings when outputting numeric, date/time, or currency values.
Below is an example of an application that displays numeric and date/time values, using the ToString method for instances of double and DateTime.
<StackPanel> <StackPanel Margin="10" Orientation="Horizontal"> <StackPanel> <Label Name="lbl1"/> <Label Name="lbl2"/> <Label Name="lbl3"/> <Label Name="lbl4"/> <Label Name="lbl5"/> </StackPanel> <StackPanel> <Label Name="lbl6"/> <Label Name="lbl7"/> </StackPanel> </StackPanel> <Button Content="Gen Strings" Padding="10,5" Margin="10" Click="Button_Click"/> </StackPanel>
In the Click event handler, we set the labels’ content.
private void Button_Click(object sender, RoutedEventArgs e) { DateTime rightNow = DateTime.Now; lbl1.Content = rightNow.ToString(); lbl2.Content = rightNow.ToString("d"); // short date lbl3.Content = rightNow.ToString("D"); // long date lbl4.Content = rightNow.ToString("t"); // short time lbl5.Content = rightNow.ToString("T"); // long time double num = 123456.789; lbl6.Content = num.ToString(); lbl7.Content = num.ToString("n"); }
With regional settings set to English (United States), the output looks like this:
If I change my region to French (France), the formatting changes as expected.