For display purposes, I've only included English, Spanish, German, and Italian. You may notice that some of the special characters in certain languages do not render properly in your browser. The spreadsheet mentioned above has all of the proper characters for these instances. |
If you have never written a mult-lingual application, I strongly suggest purchasing a book that covers building multi-lingual applications in .NET. There are ton of important things that you don't know. I've included a few below. |
|
A Few Things To Think About |
1. | Text Width Varies From Language To Language |
| Looking at the text table below, you can clearly see a need to consider the amount of space the same text string in one language takes up compared to the same text string in another language. You may even need to use separate language specific stylesheets to accomodate Asian oriented languages in order to make their symbols large enough for a normal person to read. You will want to consider placing your labels above data entry items versus the common practice of placing them to the left. Also, all of the colum headings in your datagrid are going to be affected by text width. Your graphics arts people will want to tighten up their layouts but beware, the text width variances are almost certain to create serious problems with how your pages look. |
2. | Colors |
| Colors have different meanings in different cultures. For instance the color red commonly means: Passion (US), love Death (Mexico), (Greece), luck (China), bloodshed (Africa), truth (India), and danger (Israel). This issue typically shows up with button colors and html font colors. |
3. | Text Alignment |
| Certain cultures read/write text from right to left instead of left to right the way English is read. This may create issues when you use css from a hard coded file reference. You may want to consider culture specific stylesheets. |
4. | Free Machine Language Translation Sites |
| These sites are virtually worthless. They are often completely off base. That said, you are going to have to pay a professional company to translate your text. Be aware that these companies often have a minimum price per quote per language. So, they are going to stick it to you if you have say 90% of your application translated and then come back two days later and translate the remaining 10% you forgot to send them. Read your contract very carefully... The running rate (in the year 2008) is roughly $.25 to $.40 per word depending on the language. The number of words per language will not be identical. Some languages can increase your word count 20%. |
5. | Number & Date Formatting |
| There are many places where the .NET Framework just takes care of this for you. However, it doesn't cover all situations. Also, you will need to test any third party controls you are using to be certain they behave as you would expect. |
| If your application is multi-lingual and supports multiple currencies, you'll need to manually account for number and currency formatting that doesn't necessarily match the current thread's culture settings. This will require additional parameters such as CultureInfo to some of your formatting methods that were previously dependent on the current thread's culture settings. |
6. | Error Messages |
| Your testers are going to drive you nuts with bug reports stating that your .NET framework messages or custom messages aren't translated. This will also show up in your JavaScript messages. |
7. | Database |
| You will want to try and create a generic reusable approach to populating your drop down lists from your cross reference tables in the database. Anything short of that will require constant schema changes anytime you add a new language to the application. You'll also want to tie this approach into other primary tables which aren't just lookup tables that you may display in a datagrid or on a form. Any English string column you ever plan to display will need a translation. Many of your business logic methods will need to have a language identifier added as a parameter. |
| You may want to try and save your number, currency, and date oriented data in a single static culture. This may make it easier to reformat the data based on which culture info is using the data in your application. |
8. | Testing |
| You need to budget for external software testing. Trust me, if you can't read/write Chinese, you are not going to be able to adequately test your software either. You will need to plan how you intend to interact with your testing company and what they need to know. Be sure to test how your application behaves when the regional settings are different than on your development machine! |
No comments:
Post a Comment