Global NetSuite Locale Based Content Generation

Infrastructure NetSuite Reporting

Tags:

This article is relevant if you are seeking to use NetSuite to generate content (html, PDFs or other) in language and / or region specific contexts.

Background

We led a recent NetSuite implementation for a client that has a hot (in-high demand) product that is sold worldwide via both direct and whole distribution.  The client appreciated the ability to get control over the generation of their emails and PDF documents using our Content Renderer Engine application.  However, they were not satisfied with NetSuite’s built-in capacity for language preference control offered native in the platform.  The client recognized that language is region specific and a language preference alone does not supply enough contextual information about how their customers want to see information.

A simple example is the language English.  While NetSuite offers two English language preferences, “English (US)” and “English (International)”, our client needed to be able to output invoices specific to their customers’ region.  For example, using our Advanced Customer Deposit application, they were able to send invoices to customers to request funds in advance of shipment.  However, these invoices need to have different document heading titles.  When the invoices are sent to Australia, they need to say “Proforma Tax Invoice”.  However, when sending the invoices to Great Britain, they want them called “Proforma Invoice”.  Finally, in the United States, these same invoices are simply called “Invoice”.

Going further, the content itself needs to fit the specific language preference for the intended customer.  For example, invoices all had information about payment remittance.  “Please remit payment” needs to be translated to “Por favor, envíe el pago” when in Spanish.  Dates must be formatted according to local customs.  Currency formats also need to address concerns for region specific requirements.

Bottomline, the client needed a locale based system to get full control over all content generated and distributed from NetSuite as NetSuite’s simple language preference was simply insufficient.

Content Renderer Engine with Locale Content Generation

To solve the client’s concerns, we extended our Content Renderer Engine application to include a complete Locale based sub system.  Anyone seeking to produce flexible yet easy to maintain content understands the challenge to get content to present correctly without having a locale system.  Here are the key capacities that pull it all together:

  1. Countries:  NetSuite’s built-in country list doesn’t allow extension for additional attributes.  So we supply a table of all countries with standard country code and telephone prefixes.  Edit and extend as you need to.
  2. Locales: Others have solved the problem of different regional language dialects using international locale codes.    We simply bring that concept into a locale table that allows for adaptation as needed.
  3. Locale Elements: We developed a database sub system within NetSuite that allows the definition of terms in a locale specific context.  Think of it as a dictionary of terms expressed in multiple languages.
  4. Locale Template Functions:  Content is developed using familiar Advanced PDF techniques; however now you can reference your dictionary of user-defined terms which then can be translated into any language. No more hard coding into templates different language content.

  1. Locale Formatting Functions: Not only must content be expressed in different languages, numbers and dates must also be formatted for presentation specific to a person (entity)’s locale preference.

Example Template with Locale Based Function

To help illustrate the concept, below is a basic HTML template that is driven by the locale system.  The content developer thinks in terms of dictionary terms and layout.  While another business user (typically the Marketing department) can work on developing the locale based content.  The key here is that we supply localized based functions and you can reference made-up dictionary terms that pull locale content out of the custom database.  Thus, your content is a combination of NetSuite business data (such as transaction number, item, price, shipping address) and locale content (such as the labels on an order: Name, Item, Description, Quantity in English or Nombre, Artículo, Descripción, Cantidad in Spanish).

<html><body>
Modify the locale referenced to see different values:
<hr/>invoice Total native reference: ${invoice.total}
<hr/>invoice Total with JavaScript numberWithCommas function: ${invoice.total.numberWithCommas()}
<hr/>invoice Total with Trimpath |commas modifier: ${invoice.total|commas}
<hr/>invoice Total spelled out: using Trimpath |words modifier: ${invoice.total|words}
<hr/>invoice Total Localed _formatCurrency function: ${_formatCurrency(invoice.total,invoice.currency.internalid)}

<hr/>Formatted Date via formatDate function: ${invoice.trandate.formatDate("mm/dd/yyyy")}
<hr/>Formatted Date via format function: ${new Date(invoice.trandate).format("mm/dd/yyyy")}
<hr/>Formatted Date via Locale based _formatDate function: ${_formatDate(invoice.trandate,"mm/dd/yyyy")}
<hr/>Formatted Date via _localiedDate function: ${_localizedDate(new Date())}
<hr/>Formatted Date via localized() function: ${new Date().localized()}

{var fld = "additional_information"}
<hr/>Localized Text Lookup Element: ${"telephone_number".localized()}
<hr/>Localized Text Lookup Element with |br modifier: ${fld.localized()|br}
</body></html>

Get the Locale Based Content Renderer Engine

The Content Renderer Engine is available for use free-of-license charge for all of our clients use.  Typically, we lead our client administrators so they can learn how to generate locale based content using the application.  Many times, we will kickstart their projects by producing a few templates solving their most immediate requirements.  These resulting kickstarter templates then “connect the dots” so they can generate their own templates with us on standby support if needed.  If you have a content that needs internationalization, let’s have a conversation.

 

Be Sociable, Share!

Marty Zigman

Holding all three official certifications, Marty is regarded as the top NetSuite expert and leads a team of senior professionals at Prolecto Resources, Inc. He is a former Deloitte & Touche CPA and has held CTO roles. For over 30 years, Marty has produced leadership in ERP, CRM and eCommerce business systems. Contact Marty to set up a conversation.

More Posts - Website - Twitter - Facebook - LinkedIn - YouTube

About Marty Zigman

Holding all three official certifications, Marty is regarded as the top NetSuite expert and leads a team of senior professionals at Prolecto Resources, Inc. He is a former Deloitte & Touche CPA and has held CTO roles. For over 30 years, Marty has produced leadership in ERP, CRM and eCommerce business systems. Contact Marty to set up a conversation.

Biography • Website • X (Twitter) • Facebook • LinkedIn • YouTube

2 thoughts on “Global NetSuite Locale Based Content Generation

  1. Christopher Miller says:

    Genius.

  2. Marty Zigman says:

    Thank you Christopher. Especially coming from a professional inside NetSuite!

Leave a Reply

Your email address will not be published. Required fields are marked *