Translation
I'd like to localize Complete into another language; what should I look out for?
In general Complete is substantially harder to translate than our calendar (which is relatively simple). Not only does it have a lot more layouts, but it uses english strings like layout names and value lists throughout the scripts.
Here are a few notes on areas you'll want to pay attention to when translating the calendar.
Dates
The dates in the calendar will largely take care of themselves, but read up on Date Formats to be sure.
Layouts
You can rename most layouts, but be sure to test your work. (Check out this page for more.) The exceptions are the "Source No X" layouts. Don't rename those, just take them out of the layout menu. And if you rename the "calendar" layouts, edit the script "Go to Calendar Layout" to reflect your changes.
Repeat Options
The Repeat Options layout contains tab names and text (like the names of days and months) you may wish to translate. Drag the orange tab at the top of the screen out of the way to reveal the "real" FileMaker tabs below, and you can then navigate to the weekly, monthly, and yearly tabs to translate their contents. The day and month names are just text on the layout so you can edit these with the text tool: do NOT change the script parameters being sent from these buttons. These script parameters should always use the English names of days and months: your users will never see these.
You'll want to change the conditional formatting for each day name, replacing "Self" with the now English name of the day, like this:
not IsEmpty ( FilterValues ( $$sc_Repeat_DayOfWeek ; "Monday" ) )
You'll do the same with the month names on the repeat Yearly tab.
Yes and No value list
Changing the Yes No value list from "Yes" and "No" to another language is actually the trickiest part of the translation, since so many calcs and scripts use these values. Once you change the value list you'll need to replace "Yes" and "No" in the following scripts and calculations:
Calcs...
CalendarRows::DateRangeStartAutoGlob
CalendarRows::WeekNumbersDisplayCalc
CalendarRows::DateRangeStartAutoGlob
CalendarRows::WeekNumbersDisplayCalc
CalendarInterface::DateDisplayCalc
CalendarInterface::NinjaCal_triple
CalendarInterface::NinjaCal_basic
CalendarInterface::NinjaCal_year
CalendarInterface::NinjaCal_triple
CalendarInterface::NinjaCal_basic
CalendarInterface::NinjaCal_year
Scripts...
Go to Calendar Tab ( Tab Name )
Load Calendar Layout
Go to Day
Go to Week
Insert into Calendar { Column }
Go to Calendar Tab ( Tab Name )
Load Calendar Layout
Go to Day
Go to Week
Insert into Calendar { Column }
Other Value Lists
If you change the word "Everyone" in pinned contacts, you'll want to also change it in the calc Interface::ShowPinnedContactForCalc.
Time Increments
The value list "Calendar Time Scale" includes a few English phrases you might want to replace, fortunately if you also edit a couple of fields the software has already abstracted these values. Translate the Engish values in the field CalendarInterface::TimeIncrementAutoGlob and then edit CalendarInterface::TimeScaleGlob. In this second field, only translate the IF() part of the calcs, not the result, leaving "day" in lower case towards the end of the calc.
All Day
The phrase "All Day" on the Week and Schedule screens can be found in the field CalendarRows::TimeDisplayMinutesCalc.