Developing Arabic Applications with Visual Studio 2005 Dina Lasheen Program Manager – Developer Division
Agenda What is special about Arabic What’s new in Windows forms What’s new in localizing ASP.NET 2.0 What’s new in the.NET framework Conclusion & Questions
A complex script is one that requires special processing, such as: Arabic is a complex scripts Bi-directional (BiDi) reordering (Arabic) Contextual shaping (Arabic, Indic family) Display of combining characters (Arabic, Thai, Indic)
Agenda What is special about Arabic What’s new in Windows forms What’s new in localizing ASP.NET 2.0 What’s new in the.NET framework Conclusion & Questions
What’s new in Windows Forms New Controls: –Strip Controls: ToolStrip MenuStrip ContextMenuStrip StatusStrip
What’s new in Windows Forms New Controls: Layout Controls SplitContainer FlowLayoutPanel TableLayoutPanel More new Controls…
What’s new in existing controls Some controls had problems in displaying RightToLeft content. For example: Treeview, Listview, DateTimePicker, MonthCalendar, Form, ProgressBar, Tabcontrol, TrackBar. They didn’t layout from the right and didn’t produce the expected rtl behavior. Solution: New property, RightToLeftLayout
Highlights of RightToLeftLayout Set both RightToLeft and RightToLeftLayout Does not inherit down control hierarchy Mirrors images – if this is not a desired behavior, you need to supply a mirrored image set. Form.BackgroundImage is not supported while RightToLeftLayout= True. Should use GDI to render text instead of GDI+: –TextRenderer.DrawText( …) instead of Graphics.DrawString
Demo (Windows From)
Agenda What is special about Arabic What’s new in Windows forms What’s new in localizing ASP.NET 2.0 What’s new in the.NET framework Conclusion & Questions
ASP.NET 2.0 and right-to-left Full right-to-left pages –Set DIR attribute on HTML tag using an explicit resource expression Direction property on –Can be explicitly defined –Can be loaded using a resource expression –Useful for mixed left-to-right/right-to-left pages أهلا و مرحباً
ASP.NET Localization v. 1.0/1.1 –Uses.NET resource model –No design time assistance v. 2.0 –Uses.NET resource model –Provides a simple declarative model for localization –Design time resource generation –Edit using the resource editor –Server side compile of.resx files –Auto-detection of browser culture
Explicit Expressions Used on any control or object property Fine-grained handling for properties which are not localizable by default Access application or local resources Runtime –Used to obtain resource value and perform property assignment Design-time –Developer can create expressions against control properties in “Expressions…” dialog
Non-explicit Expressions Used to partially or fully localize an ‘object’ with minimal syntax –Controls, sub-objects, page directive Only used to access local resources Generated by the designer
Demo (ASP.NET 2.0 localization)
Change the page direction Programmatic Declarative <html xmlns=" dir= " "> void Page_Load(object sender, EventArgs e) { if (CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft) html.Attributes["dir"] = "rtl"; }
Demo (ASP.NET 2.0 localization, cont…)
Agenda What is special about Arabic What’s new in Windows forms What’s new in localizing ASP.NET 2.0 What’s new in the.NET runtime Conclusion & Questions
.NET runtime improvements Custom Cultures –Replacement Cultures –Supplemental Cultures –Defining and Using Custom Cultures Improved Unicode Standard Support –International Domain Names –Normalization –Supplementary and Combining Characters –Unicode Character Data Information
More … New Calendars –6 New Calendar classes Shortest day names –ShortestDayNames in DateTimeFormatInfo –Enables display of compact date strings/calendars UmmAlQura calendar support
Demo (Calendar)
Agenda What is special about Arabic What’s new in Windows forms What’s new in localizing ASP.NET 2.0 What’s new in the.NET framework Conclusion & Questions
More information Arabic & International Support Get Involved! Product Feedback Center aspx MSDN Forums
Agenda What is special about Arabic What’s new in Windows forms What’s new in localizing ASP.NET 2.0 What’s new in the.NET framework Conclusion & Questions