Comparison I18N
Jump to navigation
Jump to search
Criteria
- easy for translators (do they need the full IDE? poedit?)
- easy to update translations
- easy for users to switch between UI languages; restart should be ok
- GUI size changes (some languages need more space)
- support asian languages
- not only language, but also culture settings
Winforms resources
- Example: SharpDevelop uses resource files
- http://www.computer-books.us/csharp_3.php free book: Dissecting a C# Application - Inside SharpDevelop, Chapter 7, Internationalization (link at http://www.icsharpcode.net/OpenSource/SD/InsideSharpDevelop.aspx does not work)
- Accessing Resources: centralized vs decentralized resource management model (PDF page 190)
- online: they have an online translation application; it is proprietary (PDF page 194); offline: download xml file, translate, upload
- not sure what they do about different sizes of controls; but it does resize somehow; even possible to switch language at runtime
- http://www.codeproject.com/KB/dotnet/Localization.aspx describes 2 approaches with resource files:
- Creating a satellite assembly for culture specific resource file and using it in the executing assembly
- Creating a file based resource manager which enables accessing and reading a resource file from a location outside the assembly manifest
gettext
- http://lukeplant.me.uk/articles.php?id=6 Internationalisation - Open Source vs Microsoft
- compares gettext (po files) vs Microsoft resources, also mentions problem with missing layout managers
- MonoDevelop uses gettext: http://monodevelop.com/index.php?title=Developers/Articles/Translations
- http://anonsvn.mono-project.com/viewvc/trunk/monodevelop/main/src/addins/MonoDevelop.Gettext/
- they are using GTK and therefore the position/size of controls can automatically adjust to different string lengths?
- poedit on Linux has a parser for C#: easy update of new strings
- GNU Gettext for C#: http://www.gnu.org/software/hello/manual/gettext/C_0023.html
- generating resource files, using either dlls or resources files; can add after compilation
- Mono sample for gettext: http://mono-project.com/I18N_with_Mono.Unix and http://mono-project.com/I18nGettext
- recommended Mono.Unix; for GUI: GTK
- on Windows
- can use Mono.Posix.dll from C:\Program Files\Mono-2.4\lib\mono\2.0
- can use xgettext from PoEdit for Windows
- can use programs in C:\Programme\Mono-2.4\lib\gettext, eg msgfmt.net.exe
- see ICT\Common\Testing\I18N
Flexible Layout vs Fixed Layout
TODO
Culture Settings
TODO: Date format etc