Contact Information
- Email: ctoohey@dominoguru.com
- BleedYelow.com: Chris Toohey
- Skype: ChrisToohey
- Gizmo: ChrisToohey
- Yahoo!: ChrsToohey
- Google: ChristopherToohey
(ctoohey@dominoguru.com) - AIM: ChrisToohey
- Twitter: ChrisToohey
- Facebook: ChrisToohey
- LinkedIn: Chris Toohey
- Videos:vimeo.com/christoohey
- Podcast Information
http://www.yellowcast.net
YellowCast @ Twitter - RSS:

- Guru Tag:

Like what you see? Help feed-the-beast by donating to the site and it's humbly thankful author!
My Twitpic Updates
My Twitter Updates
Publishings
Domino Development and Data Store Architecture 06/06/2008Domino Development RIM's Blackberry Connections Client - First Impressions (Part 2) 05/19/2008
My Gear RIM's Blackberry Connections Client - First Impressions 05/19/2008
My Gear Remove my name from the Domino Directory!! 02/05/2008
Lotus Notes Quick and Dirty Mail Application Document Importing 01/24/2008
Methods and Strategies Publishings Archive
Examples & Downloads
Showtime: Blackberry Enterprise Server Push Utility for the Lotus Notes Client - Release v0.1 11/13/2008Examples and Downloads MixMaster v0.1 - Remote NotesItem Manager 10/06/2008
Examples and Downloads No-View NotesDocument Lookups, UNID Logic, and Environment Variables - Example Application and Video Tutorial 09/16/2008
Examples and Downloads xCopy v0.2 - OS xcopy Client for Lotus Notes 08/07/2008
Examples and Downloads xCopy - Local Archiving and File Copying Utility for Lotus Notes 07/22/2008
Examples and Downloads E & D Archive
Resources
PlanetLotus.org [ Community ] Alan Lepofsky's Notes Tips [ Community ] Chris' The Business Controls Caddy [ Community ] Petr Stanicek [pixy] [ CSS ] JoeLitton.net [ Community ] Resources ArchivePoll: How many of us need to develop multilingual UIs for our Lotus Notes and/or Domino Applications?
09/17/2008 11:35:23 AM | Chris Toohey | Bethlehem, PA
My current 40+ Hours/Week Customer happens to be a larger and globally dispersed Notes Shop. In my going-on-two-years with this customer, I have yet to have a project where one of the requirements were multilingual user interfaces for a given Lotus Notes or Domino Application. Now, there are applications that span multiple countries and regions... but we've always just gone with English-based UIs.
So... do you have to deal with supporting multiple languages in your Lotus Notes and/or Domino Applications? If so, what is your preferred method?
I'll share mine once/if we get a few answers, and you can leave your answer in the comments section - but I'll give you a quick preview:
For Lotus Notes Client Applications:
For Forms this is easy - a simple hidden field that renders a key:translation paired list of all defined translations. Then, each UI component does a lookup to that field and renders the translation.
The problem I've run into in the past is Views - specifically View Columns...
For Domino / Browser Client Applications:
I tend to "roll my own", so this really isn't a problem. Forms are handled the same way, as are Views: I typically have my markup View tables render without headers and footers, which I add via Computed Subform logic in the ViewTemplate for my particular View.
I will elaborate more on this in the follow-up article...
Like what you see? Help feed-the-beast by donating to the site and it's humbly thankful author!
Chris Toohey | Domino Guru

Comments
http://blog.xceed.be
09/17/2008 01:32:30 PM
I do the same for forms (2 lists: code for doing @member to get position, translation list for getting translation using []). I let the (power)user enter the translations, 1 doc for each translation. And save the lists (code + 1 field for each language) in a profile doc, for faster access on a form. I use the same profile info for looking up translations for e.g. scripts/agents, outlines, action buttons, ....
View titles remains a pain. I (and I'm not alone) have been begging for years, at each LS to make view titles computed (like action buttons). To no avail. My customers usually agreed to settle for a 'common' language (e.g. English) for the view titles. Annoying !
A tip for form translations: I use e.g. a computed for display field called 'xPhone', and use @thisname to create a label based on the fieldname after 'x'. This way, you can create labels using the same formula everywhere. You just need to change the name for the field.
Looking forward for your follow-up article.
www.greyduck.com
09/17/2008 05:14:06 PM
Multi-lingual forms are really great, but they only got me so far. There are still messageboxes, errors, status values, etc. I've found good luck with having all LotusScript being language independent except for a "Language-Dependent Globals" script library per language containing:
libfstrTranslateErrNumthat's just a huge case statement converting custom error numbers into language-specific textConst libcstrStringSeparator = "|"So, let's say we're using my English script library, and calling
libfstrTranslateErrNum(ciErrConfigDbNotOpen)returns"Could not find the configuration database. (Expected at | - |)"In that case the following code... (and please excuse the inconsistent method naming standards...)
If the config db wasn't where it was expected, GetConfigDb would throw an error where Error$ is
Could not find the configuration database. (Expected at Server1/Org - myapp/config.nsf)But with someone in Japan, they'd have loaded the "Language-Dependent Globals" that's tagged as Japanese and so the message would be in their language.
Using the same libfstrMixin function, I have an activity log at the bottom of documents that is, internally, all numbers and context arguments (i.e. who, when, etc) but is converted and displayed into the user's language at PostOpen.
The really nasty part is keeping it all straight because now you've got several strings you can't forget at design time. 98% of my "Language-Dependent Globals" libraries' code is generated using a spreadsheet containing all of my constants and strings in a central location. I have a column for the constant name, numeric value, strings for each language, and then other columns that have concatenated it into LotusScript code that I can cut & paste into the appropriate script library. If I need to translate into another language, I just need to spin up another few columns and add the language strings and I'm already more than halfway done.
I also use the event binding techniques Tim Tripcony recently blogged about so that I have one script library per form and each language's form's PostOpen is like "Set oForm = New MainDocumentFormCode(Source)" and then let the class constructor bind itself to the other form events.
09/18/2008 05:50:28 AM
Does anyone use Global Workbench for translating and generating multilingual databases?
http://www.vitor-pereira.com
09/18/2008 05:39:34 PM
Did any of you ever tried setting a database as a 'Multilingual Database' and creating multilingual design elements? I think that could solve the view column titles problem but it means you must have a set of views for every language.
10/29/2008 03:23:18 PM
I anxiously await a solution. My biggest area of concern are input validation formulas. Thanks.