如何在Thymeleaf中使用#locale

时间:2018-12-24 06:02:58

标签: thymeleaf

如何在Map对象中获得正确的语言环境值?

地图

ngAfterViewInit() {
  let fileIcon = this.elemRef.nativeElement.querySelector(".file-icon"),
      b1 = fileIcon.getBoundingClientRect(),
      fileList = fileIcon.closest(".file-list"),
      b2 = fileList.getBoundingClientRect();
  this.hidden = b2.bottom < b1.bottom;
}

我已经做到了,但这太糟糕了。

"greeting": {
    "en_US": "Hi"
   , "ko_KR": "Hello"
}

1 个答案:

答案 0 :(得分:0)

欢迎来到。

以为您没有正确遍历地图的值。假设您要在模型中添加一个名为greeting的属性,以下内容可以为您提供指导。看来您有一个地图作为另一个对象的属性,我假设它是List。我还将假设您正在尝试使用当前的语言环境。

<th:block th:each="item : ${greeting}">

    <th:block th:each="map : ${item}">

        <th:block th:text="${#strings.equals(#locale, map.key) ? map.value : ''}">Value</th:block>

    </th:block>

</th:block>

您可以使用以下示例服务器端代码进行测试:

    Map<String, String> map = new HashMap<>(2);

    map.put("en_US", "Hi");
    map.put("ko_KR", "Hello");

    List container = new ArrayList(1);
    container.add(map);
    model.addAttribute("greeting", container);

请注意,如果您使用的是Spring,则应该对每个语言环境使用messages.properties进行国际化。它将使您的生活更加轻松,并更好地遵循Spring的惯例。