Creating software people love!

Saved by the Framework - Multilingual Support Made Simple

Tuesday, February 21, 2017
Derek Maciak / Software Superhero

Saved by the Framework
Multilingual Support Made Simple

Once again, I have been saved by using a framework that incorporates a well-thought-out architecture and programming best practices. Whether developing with a 3rd party framework or your own, I believe every developer should be using some kind of development framework. For all my projects, I use Surround Technologies’ Accelerator, a comprehensive, end-to-end software development solution specifically geared to drive faster development with better quality and more functionality. Key to the Accelerator solution is its robust framework.

Investing in your framework pays off time-and-time again.

Creating a framework is a long, painful, costly, and seemingly unrewarding up-front effort that produces little-to-no business-related functionality and takes many iterations to get right. No wonder it is often avoided or cut short. However, once established, a good framework will provide many multiples in return by significantly reducing future development and long-term maintenance time and costs while delivering overall better solutions.

Countless hours were spent on innumerable iterations of designing, architecting, and developing Accelerator’s future-proof framework. All with the primary directive to support both our current development as well as be able to adapt to ever-evolving future needs. An investment that has paid us back time-and-time again as well as saved our clients immeasurable development time and costs, often times in ways we hadn’t even foreseen.

Can you do that in Japanese?

Northwind Web App Demo in JapaneseNorthwind Web App Demo in Japanese.

Let me share a recent example of how Accelerator saved me a lot of time and money. Several weeks ago, a company in Japan asked if we supported the Japanese language. The answer was, of course, “Yes! Culture support is built right into the framework.”

I quickly reflected on my long-time best practice use of resource files (.resx) and the hours I spent with the Surround team discussing support for globalization and localization. We established the best practice to remove all textual content from the code base and use resource files many years ago, but it wasn't to support localization or even multiple languages. At the time, we started using resource files to reuse and centralize column headings, labels, tool tips, descriptions, messages, etc. We even decided to put the resources into a shared assembly to further promote reuse and to make it easier to maintain and deploy text changes from a single dll. We understood that supporting multiple languages would be an added benefit, but it was not yet a business priority. However, many decisions in developing the Accelerator framework are about tactically delivering on immediate need while strategically future-proofing development. We knew this would be a part of our long-term strategy for handling globalization with Accelerator.

My confidence level was very high in responding to this Japanese client. I knew that we could support localization across the entire system because Accelerator’s robust architecture incorporates both front-end and back-end frameworks that support business and data access layers, complete with entities and data maps. This best practice of using resources was implemented across Accelerator’s core components, helper classes, wrappers, and development tools including the code generation engine. That means any system created using Accelerator also benefits from our decision to support globalization and localization.

Eating my own dog food.

To demonstrate the capability, I updated our demo systems to support Japanese. With little time and effort, I was able to get all of our demo systems up and running with not only Japanese, but also Spanish, French, Portuguese, and Chinese.

No, I don’t speak all those languages! I used Google translate to create the culture-specific resources. Accelerator provides a tool to translate an entire library with the single click of a button using Google translate. You can review the effort involved to see just how easy it was by reviewing this multilingual support post. You can also check out our unbelievable demos. These basic demos show what you get from Accelerator’s default generation with little to no coding. Be sure to go through the registration process and check out the entire application as it is all built into the framework.

The framework must continually evolve too.

While the bulk of the work is an up-front investment, the development of your framework must continually evolve over time as well and it is important to architect it so that is possible. Doing so will minimize refactoring work in the future. At Surround, we look at framework development and application development as parallel tracks that push each other’s limits. As the business needs push application development, you should look for patterns and architectural improvements that can be put into the higher-level framework where it can be reused across other projects. Those framework enhancements are implemented into the business applications elevating its level of functionality, quality, and adaption.

Accelerator's evolution throughout the yearsAccelerator's evolution throughout the years.
The Accelerator Framework has adapted and evolved over the last 18 years to the point where there is nothing left of those early versions within it. Originally called Framework for Windows, even the name has evolved. The only thing that has persisted is its objective to accelerate development and the acceptance that change is indeed the only constant.

Recently, we released our new MVC Line of Business UX. We continued this best practice of centralizing text into resources including any text that was embedded directly within the razor template HTML views. The MVC UX is also fully responsive and looks great and performs well on any device. You can even use Cordova to put it in the different app stores. This new UX compliments our already-popular windows-based desktop UX developed using Windows Presentation Foundation (WPF). Both front-ends use the same back-end and the same resource files.

The bottom line.

I think every developer should be using a well-thought-out development framework. In the big picture, the payoff in future-proofing your development is huge. You can develop it yourself, but when you come to understand the know-how, time, money, and frustration to do it right, I think you’ll want to take advantage of the jump start and savings you get from a 3rd party framework. I encourage you to check out our Accelerator. It contains everything you need to develop your windows, web, and mobile applications. It uses best practices along with widely-accepted, non-proprietary technologies. You can download the free trial today and test it for yourself. And, be sure to check out the application demos. Think about our recent business need to support a different culture besides U.S. English. The bottom line is that it could have been a timely, tedious and cost prohibitive task, but ended up being quite simple. Wow, saved by the Power of a Framework again!