TeamDesk respects user’s locale and time zone – numbers, dates and times presented and parsed in a format familiar to the user.
However, there are number of scenarios when user-specific settings are not available: public part of the application, web-to-record forms, time dependent and periodic workflow rules and notifications sent to e-mail addresses. In absence of user-specific information we took locale and time zone settings of the application owner.
However, "implicit" locale handling may cause problems. Imagine you have created the web-to-record form and provided instruction to enter dates in month/day/year format as per app owner’s settings. Then, the owner of the application decided to switch her locale from English (US) to English (UK). TeamDesk then would expect dates in day/month/year format despite of – now misleading – instructions.
To cope with this problem, the application now has own locale and time zone that are used instead of the settings of the owner. To preserve compatibility with current functionality all existing applications are initialized to use settings identical to their owner’s.
This change would enable us to do many interesting things. For example, locale has an associated calendar, so, knowing the day the week starts we could handle weeks without using complex formulas and present consistent results to all users despite their own calendar settings. We could try using applications’ language encoding for ANSI files during the import process. We could properly handle applications built in right-to-left languages too.
One step we’ve made in this direction is subtle change in keyword search behavior.
Both indexing and search now respect application language setting. Knowing the language enables us to handle queries for inflectional word forms in more reliable way: for example, with application language set to German, given the query "wissen" (know) we find both "wissen" and "wusste" (knew). Also, we can properly break the sentence into words for complex scripts like Arabian, Hebrew, Japanese or Thai.