В настоящее время я использую Spring i18n для интернационализации в своем приложении. В приложении будет около 5 разных языков (могут быть изменены позже).
Чтобы отображать метки в соответствии с языком, выбранным пользователем, интерфейс будет использовать те же клавиши, что и клавиши из messages.properties в бэкэнде.
Интерфейс будет вызывать REST API с ключами, которые им нужны для отображения на основе переданного языкового стандарта. API выглядит так:
@PostMapping(value = "/internationalization")
public ResponseEntity<Map<String, String>> translate(@RequestBody List<String> keys) {
Map<String, String> translatedValues = new HashMap<>();
keys.forEach(k -> {
translatedValues.put(k, this.messageSource.getMessage(k, null, LocaleContextHolder.getLocale()));
});
return ResponseEntity.ok(translatedValues);
}
Все работало нормально. Внезапно у меня появились некоторые дополнительные требования, которые меня слишком смущают. Требование:
Допустим, Пользователь-1 вводит некоторые значения на китайском языке, которые будут сохранены в базе данных как есть. Теперь, возможно ли для User-2 , у которого французский язык является языком по умолчанию, увидеть содержимое, введенное User-1 на французском языке? Точно так же я должен поддерживать его на данный момент для пяти разных языков.
Как я могу учесть такое требование?
Я знаю, что Google Translation предоставляет API для перевода, но насколько он будет эффективным? Пожалуйста, поделитесь своим опытом.
Заранее большое спасибо.