Foundations.NET allows externalization of all messages shown to the user. Each message has a specific key, which can be overridden by the application. 

At runtime, Foundations looks for a specific resource named AppSupportLibResources, which needs to be properly placed in the "Properties" folder of the web application, next to where you'll usually find the AssemblyInfo.cs, as shown below:

You'll need to make sure that this resource is properly set as "Embedded Resource" and with the default Custom Tool for resx files (ResXFileCodeGenerator)

 

Once you have this customization in place, you can define a key-value pair for each message you want to redefine. Below is a list of the relevant functional keys used by Foundations along with their default message.

KeyDefault Message
BLOCK_IN_INSERT_MODEOperation not allowed. Block '{0}' in in insert mode.
BLOCK_IN_SEARCH_MODEOperation not allowed. Block '{0}' is in search mode.
CANNOT_FIND_TASKCannot find form {0}.
CANT_FIND_ITEM_SANS_BLOCKCan't find item without current block
CANT_FIND_MENU_ITEM_SANS_MENUCan't find menu item without the menu
CANT_MOVE_ITEM_SANS_BLOCKCan't move to item whithout current block
CHANGES_SAVEDChanges saved ({0} row(s) saved)
CHANGES_SAVED_AND_APPLIEDChanges saved ({0} row(s) applied; total of {1} rows saved)
COMMIT_NO_CHANGESNo changes to save
COMMIT_NO_CHANGES_ONLY_APPLYPreviously applied rows saved succesfully
COMMIT_SUCCESSSaved sucessfully ({0} rows saved)
CONFIRM_CHANGES_MESSAGEDo you wish to commit changes you made?
CONFIRM_CHANGES_TITLEWarning, possible loss of changes.
COPY_RECORD_FAILEDDuplicate record operation failed. Note that it is only allowed on new records
CREATE_RECORD_FAILEDRecord must be entered or deleted first.
DELETE_NOT_ALLOWEDDelete not allowed!
ENTER_QUERY_MSGEnter a query; press F8 to execute
FEATURE_NOT_IMPLEMENTEDThis feature has not yet been implemented
FILE_CANNOT_WRITTENFile cannot be written: {0}
FILE_NOT_EXISTFile cannot be read (does not exist): {0}
FIRST_RECORDAt first record
FORCE_EXIT_MESSAGEForce Close?
FORCE_EXIT_TITLEWarning, possible loss of changes.
INVALID_FUNCTIONThis function cannot be performed here.
INVALID_RECORD_MESSAGEAttempted to navigate to an invalid record. Please check if the data is still available and reload data.
INVALID_RECORD_TITLEInvalid record
INVALID_SEARCH_CRITERIAInvalid search criteria. Query not issued.
INVALID_SEARCH_DATE_CRITERIADate field must be entered in a correct format.
ITEM_IS_REQUIREDThis field is required
LAST_RECORDAt last record
LOV_NOT_AVAILABLEList of Values not available for this field
NO_RESULTSQuery caused no records to be retrieved.
NO_RESULTS_LOVList of Values contains no entries.
NO_RESULTS_QUERYQuery caused no records to be retrieved. Re-enter.
ONLY_ASSIGNING_GLOBALS_ITEMSThe current implementation only supports assigning to globals and items
OPERATION_NOT_ALLOWED_IN_QUERY_MODEOperation not allowed in query mode!
OPERATION_NOT_ALLOWED_IN_READ_MODEOperation not allowed in read mode!
POST_APPLIEDApply complete ({0} rows applied)
POST_NO_CHANGESNo changes to apply
RECORD_COUNT_QUERYRecord: {0} / {1}
SAVE_NOT_ALLOWEDSave not allowed!
SEARCH_INVALID_CRITERIAQuery not performed. Invalid criteria!
SORT_WARNING_TEXTWARNING: Re-sorting will cause all changes to be lost. Do you wish to continue?
SORT_WARNING_TITLESort
TASK_LIMIT_EXCEEDED__WORKSPACE_TOTALMaximum number of workspace tasks ({0}) exceeded
UNABLE_TO_DELETE_RECORDUnable to DELETE record
UNABLE_TO_INSERT_OR_DELETE_RECORDUnable to INSERT or DELETE record
UNABLE_TO_INSERT_OR_UPDATE_OR_DELETE_RECORDUnable to INSERT or UPDATE or DELETE record
UNABLE_TO_INSERT_OR_UPDATE_RECORDUnable to INSERT or UPDATE record
UNABLE_TO_INSERT_RECORDUnable to INSERT record
UNABLE_TO_UPDATE_OR_DELETE_RECORDUnable to UPDATE or DELETE record
UNABLE_TO_UPDATE_RECORDUnable to UPDATE record