I wouldn't use multiples layouts; use a single layout, and display the text as a related field from a table. This means: add a new record for a new language, rather than a new layout with all that entails.
The relationship to that table would be driven by however you determine the appropriate language.
So, your saying create a new table just for that layout? Once the user gets past the "Agree" layout the rest of the solution will stay in English for everyone.
That basically is how the web carts handle multiple languages. This is also good for "labels" that the client wants to customize. Keep in mind the placement and sizing of these kinds of elements.
Sent from miPhone
I'm suggesting that for starters, you create a new table to hold any language-specific texts (even if it is only one text).
What table you base the landing page layout on and how you get to display those texts (native language records, a relationship, a merge variable initialized with the appropriate text etc.) is a matter of implementation.
I use a global table for labels and texts of that sort. On opening, I get the language of FM installation and following this value, I fill the global table values with the values that fits with the language record. It takes just some milli-seconds to fill the tables.
Label_Table - one record by language
Labels Text[n] n = number of labels
Messages Text[m] m = number of messages
Global-Table - only one record
Do the same with a Message_Table and Global_Message and show Global_Message on layout.
The first layout where people must agree is associates with Global_Table.
All labels in this layout are fields as Global_Label
All messages in this layout are fields as Global_Message
In a nutshell, what erolst says (and I endorse) is:
- have a table "Translations" with 3 fields
create records with language = "SPA"; "POR"; "ENG", fieldName <- "disclaimer", also other needed values, combos of language, fieldName and content, as u want and need. For each language, have a set of records for each fieldName.
on your disclaimer layout have a globalField gContent and a global field gLanguage, popup;
have a gFieldName set to "disclaimer" or "agreement" or whatever, depending on the layout - trigger on layout
have a trigger on the gLanguage popup - a script firing on modify - which sets gContent to ExecuteSQL("SELECT content FROM Translations WHERE fieldName = ? AND language = ? FETCH FIRST ROW ONLY";"";""; gFieldName; gLanguage)