안녕하세요 ![]()
최근 js.badges.awarded 문자열에서 비슷한 문제가 발생했습니다. 제 사이트는 헝가리어로 되어 있습니다.
js.badges.awarded가 구현되었을 때 /admin/customize/site_texts에서 번역을 진행했는데, 복수형 버전이 오버라이드될 때 단수형 버전인 js.badges.awarded가 그대로 남아 /admin/customize/site_texts에서 찾을 수 없게 되었습니다.
/admin/customize/site_texts에서 사용 가능한 문자열은 js.badges.awarded.one과 js.badges.awarded.other만 있었기 때문입니다.
왜 이런 일이 발생했는지 정확하지는 않지만, js.badges.awarded에는 보간(interpolation) 키가 없었던 반면, 새로운 복수형 버전에는 %{number}가 포함되어 있기 때문일 수 있습니다. ![]()
따라서 텍스트가 오버라이드된 경우, 업데이트된 버전이 이를 대체하지 못하고 이전에 오버라이드된 텍스트가 유지되는 것처럼 보입니다.
저는 rails에서 이를 삭제했습니다.
TranslationOverride.where(translation_key: "js.badges.awarded").delete_all
참고로, 일반적으로 문자열이 번역된 후 복수형 버전이 도입되면 헝가리어의 경우 other 형식을 사용합니다.
이것이 버그인지 확실하지 않습니다. 그리고 복수형 버전에서 이런 일이 발생하는 것이므로, 복수형 변경 없이도 발생할 수 있을 것입니다. ![]()
감사합니다 ![]()