If you look for internationalization it's common to use the abbreviation i18n. Internatiolization is the topic of translation of messages. If you are interested in using different units, date formats, number notations that's called Localization L10n.
Things to look at:
- Libraries :
- http://www.mono-project.com/I18N_with_Mono.Unix Based on the posix standard. Uses gettext library to get translations.
- Castle Framework MonoRail Resources and Localisation
- Spring.Net, localisation for web applications
- GetText: http://www.gnu.org/software/gettext/manual/gettext.html#Introduction
- Example .NET applications available with sources where localisation is implemented nicely:
- SharpDevelop - check user interface translated to many languages
- Paint.NET
- MonoDevelop, source code can be checked out using the following command line: svn co svn://anonsvn.mono-project.com/source/trunk/monodevelop monodevelop
Overview Examples
Example |
Localization change |
Method |
Architecture |
|
---|---|---|---|---|
SharpDevelop |
runtime |
|
|
|
Paint.NET |
restart |
|
||
MonoDevelop |
? |
|
? |
|
Spring.Net |
runtime |
|
http://msdn2.microsoft.com/en-us/library/aa478974.aspx]]]></ac:plain-text-body></ac:structured-macro>
|
- |
MonoRail |
runtime |
|
|
^Architecture_MonoRail_Resources.png]]]></ac:plain-text-body></ac:structured-macro>
|
Singleton versus Static Class
- In C#, Singleton class as the name implies creates only one instance of the class and its member, whereas, static class creates a new instance of the static members everytime it is being accessed.
- Adds a level of indirection. This allows the creation of more than one instance of the class at a later date without breaking client code.
- Encapsulates data and methods into a separate namespace, the singleton class.
- Allows sub-classing.
- Provides access control to the single instance.
- Thread safe.
Gena, would you like to comment/check "Singleton versus Static Class"? Thanks, Alex.
Overview Methods
Method |
Maintenance |
Remarks |
---|---|---|
Resources (.NET) |
Satellite assembly: editors -Zeta Resource Editor,Resource Builder |
|
gettext |
|
|
DelftLanguage |
text-files(lng) |
|
- More info Internationalisation - Open Source vs Microsoft,
Localization of Microsoft NET Applications, Developping Global Applications in Java
Suggestion
Architecture
Work method
Automatic Localization Using Localizers = property window Visual Studio [resource on class (Form/UserControl)s level]
- Applying Resources Manually = resourceService.getString(indexname) for using the Lookup hierarchy.
Lookup hierarchy
- Class (Form/UserControl) languagecode-country/regioncode
- Class (Form/UserControl) languagecode
- Application (Plugin) languagecode-country/regioncode
- Application (Plugin) languagecode
- DelftShell (DelftShell.Resource, a new project in DelftShell for all common translations like save, delete, remove etc.) languagecode-country/regioncode
- DelftShell (DelftShell.Resource, a new project in DelftShell for all common translations like save, delete, remove etc.) languagecode
Maintenance
Remarks
- Resources and WPF: