Skip to main content

Localization

Dime.Scheduler ships fully translated, but the vocabulary it ships with is generic on purpose. A field called "Free Text 1" means nothing to a planner; once you rename it "Customer Invoice Reference", the same field suddenly tells the user what to type in it. That gap - between the system's generic terms and the customer's actual business language - is what this page is for.

The localizationLocalizationThe settings page that translates captions, maps localized country names to ISO codes for geocoding, and sets date and decimal formatting per language. view does two related jobs: it lets you override the wording for any translatable field, group, or section in every language the tenant supports, and it lets you control formatting for how dates and numbers are displayed to each locale. Together they are what makes the application feel native rather than translated.

The page has two tabs, reached from the rail on the left: Fields, where captions and formats live, and Languages, where you decide which languages the tenant exposes.

Captions​

Most localization work is captionsCaptionThe label shown for a field or entity in the interface, translatable per language. A tenant that calls jobs "projects" changes the caption, not the data model.. The Fields tab lists every translatable field on the left; select one and the Captions pane on the right shows one row per language that has a caption for it. The same field's caption can read differently in English, Dutch, and German, because the underlying data binding is the same in all three. The divider between the two panes can be dragged if the field names are long.

Translations

Add creates a caption for a language that does not have one yet; the language dropdown only offers languages that are switched on for the tenant and not already used by this field, so you cannot create two captions for the same language by accident. The pencil icon on a row (or a double-click) changes the text. The trash icon on a row, the Delete button for a multi-selection, or the Delete key removes captions after a confirmation, and the field falls back to the built-in wording for that language.

The Context column tells you what kind of thing you are translating. The three most common contexts:

  • DATABASEFIELD - fields shown in grids and the Task Details panel.
  • TARGETPANEGROUP - the section groups in the Task Details panel.
  • APPOINTMENTFIELDVALUE - sections and fields created via Appointment Templates.

Contexts are part of the product, not data you maintain: you cannot add, rename or remove one, and the same context means the same thing in every tenant. The full list is in the API reference, since the numbers matter when captions are pushed from a back officeBack officeThe ERP or business system Dime.Scheduler plans for - most often Microsoft Dynamics 365 Business Central. It owns the master data and remains authoritative over what it receives..

With several hundred fields in a tenant, finding the right one is half the work. The Context column has a dropdown filter (showing All contexts until you pick one) that only offers the contexts that actually occur in your own fields, so it cannot present you with an option that would return nothing; a tenant that has never used appointment templates simply has no APPOINTMENTFIELDVALUE entry. The source table and field name columns filter on text, and the grid can be grouped, by source table for instance, to walk through one entity at a time.

Formatting​

Translation gets the words right; formatting gets the shape right. A Belgian planner expects 08/05/2018 with the day first, an American expects 5/8/2018; a Belgian expects 1 234,56, an American expects 1,234.56. The Format column on the fields grid is where you control this per field: open a field with the pencil icon or a double-click and type the format string. A format is at most 10 characters, and the dialog counts them as you type.

Date and time​

Format strings combine the codes below. For example, D - d/m/Y renders as Mon - 08/05/2018.

FormatDescriptionExample returned values
dDay of the month, 2 digits with leading zeros01 to 31
DA short textual representation of the day of the weekMon to Sun
jDay of the month without leading zeros1 to 31
lA full textual representation of the day of the weekSunday to Saturday
NISO-8601 numeric representation of the day of the week1 (for Monday) through 7 (for Sunday)
wNumeric representation of the day of the week0 (for Sunday) to 6 (for Saturday)
zThe day of the year (starting from 0)0 to 364 (365 in leap years)
WISO-8601 week number of year, weeks starting on Monday01 to 53
FA full textual representation of a month, such as January or MarchJanuary to December
mNumeric representation of a month, with leading zeros01 to 12
MA short textual representation of a monthJan to Dec
nNumeric representation of a month, without leading zeros1 to 12
tNumber of days in the given month28 to 31
LWhether it's a leap year1 if it is a leap year, 0 otherwise.
YA full numeric representation of a year, 4 digitsExamples: 1999 or 2003
yA two digit representation of a yearExamples: 99 or 03
aLowercase Ante meridiem and Post meridiemam or pm
AUppercase Ante meridiem and Post meridiemAM or PM
g12-hour format of an hour without leading zeros1 to 12
G24-hour format of an hour without leading zeros0 to 23
h12-hour format of an hour with leading zeros01 to 12
H24-hour format of an hour with leading zeros00 to 23
iMinutes, with leading zeros00 to 59
sSeconds, with leading zeros00 to 59
ODifference to Greenwich time (GMT) in hours and minutesExample: +1030
PDifference to Greenwich time (GMT) with colon between hours and minutesExample: -08:00
TTimezone abbreviation of the machine running the codeExamples: EST, MDT, PDT ...

Decimal​

Numbers are simpler. Watch one trap, though: when you write a format string, a comma is the thousand separator and a dot is the decimal separator. The user's locale then swaps those for what they expect at render time, so the same format string renders correctly in both en-US and nl-BE.

FormatDescriptionExample returned values for 123456,789
0Show only digits, no precision123457
0.00Show only digits, 2 precision
  • en-US: 123456.79
  • nl-BE: 123456,79
0.0000Show only digits, 4 precision
  • en-US: 123456.7890
  • nl-BE: 123456,7890
0,000Thousand separator, no precision
  • en-US: 123,457
  • nl-BE: 123 457
0,000.00Thousand separator, 2 precision
  • en-US: 123,456.79
  • nl-BE: 123 456,79
0.####Allow maximum 4 decimal places, but do not fill with zeroes at the end
  • en-US: 123456.789
  • nl-BE: 123456,789
0.00##Show at least 2 decimal places, maximum 4, but do not fill with zeroes at the end
  • en-US: 123456.78
  • nl-BE: 123456,789

Languages​

The Languages tab is where you pick which languages this tenant actually exposes. Dime.Scheduler supports the full set below out of the box, but most tenants only want a subset visible to their users. Languages cannot be added or removed here, and a language's code is fixed; what you edit, from the pencil icon or a double-click, is the display name and whether the language is shown in the menu bar. A language that is switched off disappears from the language selector in the top menu and from the dropdown when adding captions.

A note on locales versus languages: a locale combines a language code with a culture code, so en-GB and en-US are both "English" but they format dates and numbers differently. If your users span the Atlantic, expose both - they will pick the one that matches their muscle memory.

Supported languages​

Language nameCode
Bosnianbs
Croatianhr
Czechcs
Danishdk
Dutchnl
Englishen
Estonianet
Frenchfr
Finnishfi
Germande
Greekel-CY
Hungarianhu
Italianit
Latvianlv
Lithuanianlt
Maltesemt
Norwegianno
Polishpl
Portugesept
Romanianro
Russianru
Sloveniansl
Slovakiansk
Spanishes
Swedishsv
Ukranianuk
Vietnamesevi

Fields​

FieldDescription
CodeThe locale code (e.g. 'en', 'en-GB', etc.). Fixed once the language exists.
Display NameThe name shown in language selection dialogs.
Show In Menu BarSelect this field to show the language's icon or flag in the language selection on top of the menu ribbon.

Exporting​

All three grids - fields, captions and languages - have an Export button that writes what is currently shown to an Excel file. The most useful of the three is the fields export: filter the grid down to one source table, export it, and you have a worksheet a translator can fill in without ever logging into Dime.Scheduler.

Read more​