The nationality of the user is best stored in a custom string attribute of the user pool. Any lambda processing some trigger can then lookup the the value for the user in question.
Easiest would be to let an external email system do the localization. Usually a system like that will have mail-merge features and localized Content Management System. Lambda triggers can be used to do the right API calls on you system.
The custom message triggers is a way to go if you want a lighter weight solution. In these methods you could lookup the nationality and return a email body in the right language. Be aware though that emails have a nasty way of specifiying content and styling. The customer messages are maxed at 20,000 UTF-8 characters. This seems a lot but it is reached sooner than you think when a lot of styling is used for various email client / phone sizes.
Cognito - using Cognito for server to server authenticationAccepted Answerasked 3 years ago
What is the recommended way of handling player authentication using Cognito?Accepted Answerasked 3 years ago
how implement forgot password for cognito user by emailasked 4 months ago
Cognito Forgot password email not received.asked 2 years ago
SMS/Email Localisation in Cognitoasked 3 months ago
can we change the colour of "Forgot your password?" in the cognito UI login page ?asked 4 months ago
Amazon Cognito hosted UI password reset code messageAccepted Answerasked 8 months ago
Mass Import of Users to Cognito User PoolAccepted Answerasked 2 years ago
Best approach for limiting Amazon Cognito concurrent loginsAccepted Answerasked 2 years ago
Congito - Disabling password reuse (last x passwords)Accepted Answerasked 2 months ago