Я предполагаю, что вы имели в виду настольное приложение (из-за установщика). В этом случае начните думать о i18n, прочитав эту ссылку.
Что касается того, что вы написали, не имеет смысла спрашивать пользователя, где он находится. Вам также не нужно ничего хранить в памяти. Просто используйте текущие настройки локали, которые можно определить с помощью:
Locale currentLocale = Locale.getDefault();
Если у вас есть этот объект, вы можете легко форматировать дату, время, валюты и числа, используя соответствующие классы форматирования:
DateFormat dateFormatter = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.getDefault());
DateFormat dateTimeFormatter = DateFormat.getDateTimeInstance(
DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.getDefault());
Date now = new Date();
String formattedDate = dateFormatter.format(now);
String formattedDateAndTime = dateTimeFormatter.format(now);
И т.д., просто прочитайте ссылку. Возможно, вам также потребуется поддержка сортировки с учетом локали (с помощью так называемых Collators) и интернационализации строк (с помощью ResourceBundle, упомянутого Augusto). Также вам нужно научиться MessageFormat форматировать составные строки (а не просто объединять их).
Это еще не все, i18n - это огромная тема, но это было бы хорошим началом.