Spring boot i18n для нескольких пользователей - PullRequest
1 голос
/ 11 июля 2020

В настоящее время я использую 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 для перевода, но насколько он будет эффективным? Пожалуйста, поделитесь своим опытом.

Заранее большое спасибо.

...