내 장고 응용 프로그램 사용자는 일련의 웹 양식을 통해 상호 작용하고 로그가 생성됩니다. 로그는 예를 들어 다음과 같이 보일 수 있습니다.Django에서 다국어 "로그 메시지"를 갖는 가장 좋은 방법은 무엇입니까?
- 전투가 시작되었습니다!
- 공격자 (Elver)가 회오리 바람을 사용했습니다. 그것은 매우 효과적이었다!
- Defender (Angeleyes)가 해자를 만들었습니다. 국방 +5.
- 폭풍이 발생했습니다. 공격자 (Elver)가 차례를 놓친다.
문제는이 로그가 다른 언어로 표시되어야한다는 것입니다. 새 언어가 추가되면 이전 로그 메시지도 자동으로 새 언어로 표시되어야합니다.
당신은 (등 PARAMS없이 이벤트, PARAMS와 이벤트, 공격 이벤트, 건설 이벤트) 여러 메시지의 종류
그래서 그들은 것이라고 이러한 저장할 수있는 최선의 데이터 구조는 무엇인가가 볼 수 있듯이 간단한 템플릿을 기반으로 쉽게 번역 할 수 있습니까?
내 생각은 원래 각 이벤트에 대해 별도의 모델을 작성하는 것이 었습니다. 공격자, 철자, 결과 필드가있는 클래스 AttackEvent (models.Model)입니다. 그러나 이것들은 어떤 전투로 되돌아 가야 만 모든 것을 질의하고 그것들을 분류하는 것이 쉬울 것입니다. 그들은 모두 같은 related_name을 가진 ForeignKey를 사용하여 해당 전투를 다시 참조 할 수 있습니까? 아마도 그렇지 않습니다.
또 다른 옵션은 거대한 GenericLogEvent 클래스를 가지며 그 중 대부분은 param이 빈 = True, null = True 인 매개 변수를 갖습니다. eventType에 따라 전환합니다.
여기서 가장 좋은 방법은 무엇입니까?
나는 큰 django 개발자가 아니지만, 나를 위해 django 메시지 contrib과 templatetag를 사용하여 멋지게 표현할 수 있습니다 ... json 데이터베이스 필드를 사용하여 모든 매개 변수를 가질 수 있습니다. 케이스가 관련성이없는 메시지가 될 수 있습니다. – christophe31