Skip to main content

Content Localization of website in asp.net

Localization of content of website


Objective: To reach globally, every organization planned to localized the website which means that content of the website would be available in the user own language, which will give comfort to end user and it will be easy to communicate.

Points need to follow:
To localize a website successfully, there should be very clear defined policy from functional and clearly adapted by technical. Since localization mistakes and oversights can be awkward for website users and potentially embarrassing for the company, make sure to get it right — it's absolutely worth the time and effort.
We need to pay attention on some couple of points:
-              Dates: Need to have clear understanding that which date format is being used at which place and should get displayed in that format. E.g. Month, day, year vs. day, month, year.
-              Time: Weather  the time cycle should be 12-hour vs. 24-hour time.
-              Color: Avoid local color sensitivities.
-              Currency: Pay attention to conversions and formats.
-              Phone Numbers: Formats are different around the world.
-              National Holidays: Holidays are country and region specific.
-              Geographic Examples: Keep it relevant for your audience.
-              Website Language Codes: ISO codes are important to know.
-              Brand Identity: Consistency plays an important role in maintaining a company’s image.Having a carefully localized slogan/tagline for company can be an effective way to foster relationships with potential customers in new markets.
-              Language Lengths: Some languages appear longer when written or typed. So we need to be artistic for same content in different language to fit in same space. Make no mistake; a one-size-fits-all approach doesn’t work with website localization. People do things differently around the world; therefore, companies going global must adapt and adjust to succeed.
-              Risk Assessment: Aim to avoid any unintended consequences that could be embarrassing or potentially hazardous to the company.
-              Cultural Sensitivity: People have strong feelings about things like colors, symbols and metaphors. Does the color white symbolize purity or death for your intended audience?

Note: When the aim is to make it look like you've developed the website in your target market, the details are incredibly important.

Technical Challenge

While translating existing text to other languages may seem easy, it is more difficult to maintain the parallel versions of texts throughout the life of the product. For instance, if a message displayed to the user is modified, all of the translated versions must be changed. This in turn results in a somewhat longer development cycle.
There is big responsibility on QA team to assure that whatever the translated data is being displayed is correct, developer does not having any idea of data which he is inserting into database or writing into resource file, the small typo mistake can be big embarrassment.
There is no advance technical skills required to do localization but definitely there are good amount of manual development effort to push the content into the system and make sure that they are being displayed correctly.
Lot of back and forth time consuming activity is involved in development.
There is good amount of cost is involved in localization. Providing a localization package for a given language is in itself a non-trivial undertaking, requiring specialized technical writers to construct a culturally appropriate syntax for potentially complicated concepts, coupled with engineering resources to deploy and test the localization elements. Further, business operations must adapt to manage the production, storage and distribution of multiple discrete localized products/service, which are often being sold/used in completely different currencies, regulatory environments and tax regimes.

Development Approach
The content localization is done in multiple steps:
1.       Stable application -The application should be stable in parent language(e.g. English)
2.       Requirement – Very clearly defined requirement what should be localized or what should not. What is the localization for functional team:
a.     Does localization means certain content like label of control/header/static data will get localized based on user profile and rest of the content (i.e. dynamic content) will be available in website parent language only?
b.     Does localization mean that application supports multiple languages but each language is configured at setup time?  
c.      Does localization mean that the user can switch between a few predefined languages?
d.     Are they expecting an auto-adapting behavior from application that figures out the language to use from some context? 
3.      Based on point no 2 approach we can decide the best suited methodology, I am explaining solution based on 2.a, we can change the approach based on your input.
4.       Content availability – The localized resource should be available from trusted source i.e. fully verified from functional team.
5.       The static content/label/headings would be available in resource file , there would be separate resource file for each language
6.       There would be some master data which is being displayed in dropdown or checkbox or any control will be stored in table against respective languages.
7.       All transactional data ( user input will be captured in “As-It Is” format i.e. whatever the format of data end user will input the system will be able to capture and store it and will display back in same fashion without making changes
8.       For the dynamic data pulled from system(database) will be displayed in English format only to end user, if we wanted to display the dynamic content into localized format then we can put the all localized content into database and pull it from the db to display at UI
9.       Culture for date/time, regional settings , currency, symbol usage and other UICulture will be configured, .net framework supports the culture and make the changes at runtime .
10.   We can opt for separate View for localizing the content in different language for the scenario where we need different markup for different cultures.
11.   In this context the View naming convention matters a lot to keep maintainability high
12.    We can  extend the RazorViewEngine to make the view engine searching for language dependent views before taking the default ones.
13.    The localized views reside in one subfolder per language.
14.    The used language is determined by the current Thread’s UI culture.

IMPLEMENTATION

 The localization framework has been developed as reusable component. To use this framework we
 need to following set of rules & facts:

1. Make sure main application is in stable condition in default language.

2. Should have all language respective resource file in application, these resource file should be placed in App_Resource folder.
3. TimeZone will be getting of end user system timezone and convert the DateTime data which must be stored back in UTC format in database and display the user local date & time at UI, for implementation.

4. The number format will be based on culture from which user belongs, and will be displaying the number format in same, for implementation - refer the sample code in project

5. Display the currency format along with converted data based on the culture


Comments

Popular posts from this blog

Sitecore Site Creation: A Comparison of SXA and Headless SXA

  Objective: Are you thinking about using Sitecore for your website development? If so, you might be wondering whether to use Sitecore Experience Accelerator (SXA) or Headless SXA. In this post, we'll examine the differences between these two methods and help you determine which one is best for your project. Its totally depend on the business context and load model. To design your site using SXA: Sitecore SXA brings Sitecore in competition with other easy to use CMS with enterprise capability. SXA empowers teams to collaborate effectively, streamline website creation, and maintain brand consistency. Its flexibility and scalability make it an excellent choice for enterprise CMS solutions. Few of SXA core enterprise CMS capabilities are: Parallel Work Streams Responsive Grid Layouts Reusable Renderings and Components Themes for Brand Consistency Page Designs for Consistency and Flexibility Customizing Renderings with Variants   But what about Headless SXA? This approach is in hi...

Quickest way to setup Sitecore 10.1 Vanilla instance

Sitecore 10.1 Vanilla installation on Developer machine   Step 1. Install Visual studio 2019 Step 2. Install SQL server 2019 (Developer edition) Step 3. Copy all the setup files and tools at shared location with full rights   Step 4. Browse “Sitecore 10.1.1 rev. 005862 (Setup XP0 Developer Workstation rev. 1.2.3-r6)” folder and run setup.exe in admin mode Step 5. You should be able to see SIA installation screen, click on Start button to start installation Step 6. SIA complete the entire process in 3 parts, first part installed all required Sitecore 10.1 prerequisites. Step 7. Once Prerequisites are installed restart the development machine and open setup.exe again in admin mode (refer step #4). Once SIA will be started then don’t click on Install button again for “Prerequisites”, just click on Skip. Step 8. As I said in Step #6 that Sitecore does installation in three parts, so this is second parts where you will have to pass require parameter to setup sol...

Other aspects of HTML5

There is great feature embedded with HTML5 that is multimedia support without any plugin at end user.The best part of this tag is that it support wide range of quality audio/video format. The tags which we use for audio and video are: <audio> <video> The code snippet for same: <audio id=“audio” controls preload="auto" autobuffer>   <source src="source1.mp3" />   <source src=" source2.ogg" /> </audio> <video id=“video” poster=”poster.jpg" src=”source.mp4" width="2" height="1" x-webkit-airplay="allow” autoplay controls> </video> HTML5 is enriched with other input type tag which is having great ability to enrich the mobile interface,this input type tag along with Jquery UI plugin give them very strong presence on mobile where end user get very lucrative look and feel. <input type="number" pattern="[0-9]*" /> <input type=...