1
사용자 정의 입력을 위해 localization
을 빌드하려고합니다. 예 : 사용자는 축구와 같은 카테고리를 여러 언어로 정의 할 수 있습니다. 우리는 testdata로를 저장하는 YAML를 사용사용자 정의 입력에 대한 국제화
@Entity
public class L18n {
@Id
@Constraints.Required
@Formats.NonEmpty
public Integer id;
public String key;
public String locale;
@Column(columnDefinition = "TEXT")
public String text;
}
:
@ManyToMany
@MapKeyColumn(name = "locale", insertable = false, updatable = false)
public Map<String, L18n> titles;
내가 이런 식으로 지역화 된 문자열을 저장하고 싶습니다 :
모델 개체는이 같은 신청 뭔가를 할 수 :
category:
- !!models.Category
...
titles:
- !!models.L18n
key: soccer
l18n:
- !!models.L18n
key: soccer
locale: de-CH
text: fdfdfsee
- !!models.L18n
key: soccer
locale: fr-CH
text: dlfkjsdlfj
이 솔루션을 사용하면 getti NG이 오류 :
[error] Caused by: org.yaml.snakeyaml.error.YAMLException: No suitable constructor with 1 arguments found for interface java.util.Map
[error] at org.yaml.snakeyaml.constructor.Constructor$ConstructSequence.construct(Constructor.java:574)
[error] at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:182)
[error] at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:296)
[error] ... 65 more
안녕하세요, 답변 해 주셔서 감사합니다. 어떤 종류의 해결 방법을 구현했지만 시간이 지났을 때 늦게 체크 아웃 할 것입니다. – myborobudur
문제 없습니다. 필자는 결코 yaml 전문가가 아닙니다. 효과적으로 작성하거나 디버깅하는 것보다 IMHO, 도움이되지 않는 오류 메시지 및 구문을 저주하는 데 더 많은 시간을 할애하지만, 몇 주 전에 비슷한 작업을했습니다. – 2manyprojects