Top 10 Tips for Internationalization
by: Adam Asnes
There are two kinds of software internationalization you can refer to - built in to the product from the start, and performed on existing code. The kind of internationalization (i18n) this article invokes isn’t the sort that’s designed into a product right from conception. That is less common, though the pull of global markets is changing that tide. Few application development teams have historically had the opportunity to incorporate world market foresight. They had to produce a product to market for the most immediate business requirements. So then most internationalization happens on existing code because someone sells something, a global company buys another company, or a strategic initiative has taken form. Suddenly there is a new requirement for software to work in any number of new languages and locales. Business requirements drive technical schedules first, rather than involving a creative path of inventing new cool functionality or products from the ground up.
I’m tempted to just write Don’t Panic, carry a towel and avoid Vogon poetry - and while you’re at it, Unicode’s pretty good stuff. I’m being flippant because internationalization efforts tend to each have their own unique challenges when you get into the details. I’ll instead provide this article as a series of i18n process tips that apply across the board. In general Internationalization (i18n) is messy, full of exceptions, and generally not considered optimally from a development perspective. Maybe that should be tip one.
Tip One: Internationalization is ugly. Expect that from the start. You are reverse engineering basic logic of how your software inputs, stores, retrieves, transforms and displays data. You are adding user interaction functionality that your product wasn’t originally designed to do. It’s rarely just about embedded strings. There are a lot of things that can go wrong. It’s a lot of work. In some cases you can run into weird stuff from areas such as compilers, middleware, database connectivity, and even low level operating system issues.
Tip Two: Get the big picture questions handled quickly. That is, what are the high level requirements, how much time do you have, how much time do you need and how much budget can you get? Be prepared to ask for what you need in the CFO’s or CEO’s language.
Tip Three: Remember what’s driving this - Revenue. Internationalizing a complex application is a big new requirement. Don’t underestimate. Being late will cause delays in revenue, stall marketing and sales investments and make you very unpopular. Do it poorly and rushed, and your product will be shabby for the very new customers you seek.
Tip Four: Do some good research or get help identifying requirements. For instance, consider language only as one aspect of a locale. English is a language. Yet England is a different locale, with different expected behavior than the States. Consider numerical formats, dates, times, postal addresses, phone numbers, paper size, currencies and more. Then add the specifics that your application may need, like any possible customizations of workflow, locale selection and more. Consider what the optimal character encoding implementation strategy is for your computer platforms, application tiers, programming languages, database requirements, etc.
Tip Five: Get some good code intelligence. Tools like our Globalyzer software let you comb through your source and identify all kinds of internationalization issues right up front. It’s way better to get a good inventory of what you need to inspect and change, rather than hunting through your myriad lines of code trying to anticipate all kinds of variable conditions using grep, and then trial and error your way through the boatloads of issues you’ll miss.
We are just adding a new capability to Globalyzer called Diagnostics. It will give you summary information internationalization readiness and issues found in your code. It’s fully functional even with just a trial Globalyzer license. No excuses, it’s free to use all you want.
Tip Six: Prepare for nests of difficulties depending upon your programming language(s), database and third party products. Programming languages rate differently in terms of difficulty to internationalize. For instance C and C++ are harder, with many hundreds of potential issues, compared to Java and C#, which have quite a bit of internationalization baked in. But Java and C# don’t internationalize themselves. You have to use their frameworks, which are very capable. The good thing is that when a programming language has well designed internationalization capability, the work goes faster.
Tip Seven: Third party products can cause some challenges. They are not always built for your new internationalization needs. For instance, a couple of years ago we worked on a product that used a third party product for displaying animations in a kid’s game. At first glance, you wouldn’t think it would be an issue, as there was no text being processed or displayed. But when we looked at things more closely, user name and file path info was being passed into the animation tool, which in this case could very well involve wide characters (e.g. Chinese). But the particular version of the animation product, could not support this and so it would always crash. The fix took time and some inventiveness.
Another example involved a third party product that generated a spreadsheet view. While data within the cells was handling Kanji just fine, tabs were corrupting. The third party product provider had declared their product Unicode compliant, but in practice it wasn’t done all the way through. The choice became to find a better third party product to replace this one, or get the spreadsheet provider to fix their product -which they may or may not want to do on your schedule.
Tip Eight: Remember your i18n fundamentals. Don’t embed strings or concatenate them. Watch out for sorting. A and Z are not the beginning and end of all alphabets - some languages don’t use the concept of alphabets. Don’t hardcode fonts. Remember your interface Geometry will need to expand. Use functions, methods or classes that adapt to locale needs. Use Locale adapting sorting (i.e. java.text.Collator class in Java) or let your database perform sorting for you whenever possible.
You can automate aspects of repetitive like string externalization using Globalyzer. It makes that tedious job go much faster.
Tip Nine: Account for merging code with parallel feature developments. This can be tricky, as your new feature development cycles could be quite different from your internationalization milestones. In most cases, be prepared to branch the code for internationalization efforts.
Tip Ten: Use Pseudo Localization (PseudoJudo in Globalyzer) to perform many internationalization functional tests before your localize. That means you add pad characters from target locales to the beginning and end of strings, and stretch the whole string based on target requirements. You’ll then be able to see how those strings behave in your display and moving through application tiers, without your engineers needing to understand the target language.
Bonus Tip Eleven: Plan for QA to take longer than it did when your app was just monolingual. Remember, you have internationalization functional testing and bug fixing, with new testing cases, and then, should you be localizing, you have linguistic testing.
About The Author
Adam Asnes is the president and CEO of Lingoport, a company helping global software publishers rapidly take advantage of international market opportunities and control global software maintenance costs when entering i18n business endeavors.
http://www.lingoport.com/
Saturday, May 24, 2008
Tips for Internationalization
Software Localization
Software Localization
by: Gary Muddyman
Software localization: Beyond translation of a product's User Interface.
Effective software localization requires a thorough understanding of not only string translation and adaptation, but also of local cultural issues and barriers to entry as well as the linguistic requirements of the market you are trying to reach.
Conversisglobal.com specializes in localized delivery of multi-tier, enterprise applications. We can implement our solutions directly into your development environment, without disabling code or content. Our expert team can meet all of your software localization needs including localization of UI, on-line help and all collaterals and documentation.
Some of our technology solutions include:
* Localization Kits provide clients with the information they need to localize their products while guiding them through the localization process. From project management, software testing, to documentation support, the kits save time and reduce the number of project queries.
* The Conversisglobal.com Bug Manager is a Web-based bug management tool designed to cost effectively manage debugging software undergoing translation and localization for foreign markets.
The end result is a cost-effective and turnkey approach to adapting your software for the local market.
About The Author
Gary Muddyman
A founding member of http://conversisglobal.com/, I specialize in business-to-business services and bring more than 15 years of experience in operations, sales and marketing.
Pay Per Click Jobs
Pay Per Click Jobs - Your Checklist To Finding The Right Job For You
by: Derek Rogers
When it comes to making a living online, the chances have never been brighter! You already see that there are plenty of people who are seeing a great deal of success when it comes to making money online, but what might not be immediately apparent is how you can join them. Search engine marketing, particularly through pay per click services, is becoming quite popular when it comes to earning a living from the comfort of your own home, but remember, you need to be critical of the opportunities that you will find. Take a look below for some tips that will steer you towards the right opportunity, and don't go forward until you can tick every single one off of your list.
Find out how much time you can devote to this opportunity.
The best opportunity for you will be one that will fit into the time that you have slotted for it. It doesn't matter how great an opportunity is if you are constantly trying to get more work, or it constantly expects more from you than you can give.
Think about the salary.
What are your current needs? Do you have a job that you are looking to get rid of, but does it currently pay the bills? Are you unemployed and need a situation fast? There is often a time period when search engine marketing opportunities and pay per click services will need to wait before they pay you. Ask how long it will be before you receive your first pay check and how much they think it will be.
Do you have the capabilities to do the job?
Think about your internet set up at home. Do you have a reliable connection and can you clock time on your own on the computer? Too many people need to fight for a turn to use the computer, and this can be quite detrimental to your plans. Take some time to really sort through your resources and what they will be for the foreseeable future. Think about any disruptions (visits, vacations, the busy time at your other job) and make sure you take them into consideration.
Do your research!
What do you know about the company that is hiring you? Do they have a good reputation online and what do people who have worked for them in the past say? Take some time to find out what people are saying in reviews and on forums about your new company. How much did the other people make, and were they paid in a regular and timely fashion? There are many points to consider when you are starting a new job, and you want to make sure that your newest opportunity is a good one.
By keeping to a checklist, you can make sure that you have criteria for judging the opportunities that you come across. This is a good rubric to use when you are choosing between pay per click opportunities because it gives you a place to start from. Take some time and make sure that this opportunity is the one that helps you succeed!
About The Author
Derek Rogers is a freelance writer who represents a number of UK businesses. For Recruitment, he recommends SEM Recruitment, one of the UK's leading suppliers of SEO Recruitment: http://www.semrecruitment.co.uk/
Security And The Auto Complete Feature
Security And The Auto Complete Feature
by: Scott Lindsay
The security of your computer is important on both private as well as business applications.
Many have found the use of the auto complete features associated with many browsers a popular way to avoid keystrokes. After all what could be more convenient than simply filling in a form for informational purposes and allow that saved information to be brought up with a single click?
The auto complete feature is especially popular with email programs. You simply type a few letters related to the email address and if it is in your system you may receive multiple choices that include those letters. You choose the correct email address and click send. The process is quick and has found many appreciative users.
Even word processors can use auto complete technology. For instance if you begin to type today’s date you may find a suggested date that you simply click saving some typing time. Many have come to rely on the feature to make checkout in ecommerce quick and painless. I’d like to provide an argument for refraining from using some auto complete technology in the world of online business.
The use of this technology in a word processor is generally a great tool simply because it does not rely on any personal data and is primarily designed to assist in popular words, dates and letter writing.
However, when it comes to filling in a one-click web browser auto complete feature there are a couple of scenarios I’d like you to consider.
Barb owns a small, but growing online business. She hired Pam on a part time basis to help with product fulfillment. Pam was a good worker and was allowed to use the company computer from time to time. Without intending to do so Pam clicked a box that filled in auto complete data and she was able to view personal data that Barb might not have shared with Pam under other circumstances. Perhaps nothing ever happens with the data, but if Barb had to do it over again she may not have used auto complete.
Brian is a hacker. He doesn’t consider himself malicious although his actions may say otherwise. He tries to find ways into other computers to explore the holes that may exist in a system. As he is exploring one afternoon he found a vulnerability in Barb’s computer security. One of the pieces of data Brian may be looking for is to see if Barb has used an auto complete feature. He can gain plenty of information and has the potential to gain password information because Barb settled for convenience over caution.
Barb would never have given out this information to just anyone, yet more than one person has access to her computer and this information was easily obtained.
Many businesses are also disabling the ability for their computers to store and remember passwords. If a site is accessed where a password is stored it becomes very easy for a third party to investigate online accounts, buying habits and potentially make an online purchase under your name and using your credit information.
It may seem a small thing, but evaluating your use of auto complete technology may be an issue worth your attention.
About The Author
Scott Lindsay is a web developer and entrepreneur. Make your own website in just 5 minutes with HighPowerSites at: http://www.highpowersites.com/ or Build A Website at: http://www.buildagreatsite.com/. Start your own ebook business with BooksWealth at: http://www.bookswealth.com/
