Hi,
It seems that Discourse has some trouble dealing with Chinese characters. Our users cannot submit topics/posts if they use in chinese? In this case, I can see that it’s a long message but we still get the “Body seems unclear” message.
Any idea?
I see what is happening here.
We automatically disable this on Chinese forums but your forum appears to be English with a Chinese category.
Just set body min entropy to 0 in site settings.
Hi,
Following up on this issue. I’m running some test with the latest version of discourse.
Body min entropy is set to 0. Same for Title min entropy.
When trying to create a topic with the body below I get the “Body unclear” error:
【澳門日報5月29日消息】國際會議協會(ICCA)日前發佈《二○一七年國際協會會議市場年度報告》。當中澳門多項評比的排位連續兩年均有上升,其中全球城市排名由一六年的七十二名躍升至第六十五名;亞太區域城市排名升一位至第十六,排名超過瑞士的日內瓦、澳大利亞的布里斯班、阿拉伯聯合酋長國的迪拜、韓國的釜山和濟州等城市
Is there a quick work around on this? My Chinese users are getting nervous because of this issue.
Thx
Seb
I’ve clarified this issue. But newbie is only able to put single picture on a post. So just a evidence and conclusion.
Conclusion, for both title and body
오래된 주제를 다시 꺼내는 것 같아 죄송하지만, 우리 포럼에서도 동일한 문제를 겪고 있습니다. 포럼은 주로 영어로 운영되지만 일부 섹션은 다른 문자 체계를 사용합니다. body min entropy를 0으로 설정해도 문제가 해결되지 않았습니다.
문제는 일부 라틴 문자 사용이 대문자 감지를 방해하는 것 같습니다. 본문이 불분명해 보입니다라는 알림이 표시되는 메시지의 예를 들어 보겠습니다:
我看了一下,我8/15寄往俄罗斯的明信片10/13对方收到了,但是10/27寄的对方还没收到,现在已经36天了(不过同一批寄往不同国家的也没被收到)。
因为我是直接投的邮筒所以也不太清楚是不是寄不过去… 如果你在UCPC微信群里也许可以问下大家?
여기서는 대문자 게시 허용이 유일한 해결책인가요? 우리처럼 영어가 주 언어인 포럼에서는 이 기능을 활성화하는 것이 이상적이지 않지만, 자신의 문자 체계로 유효한 메시지를 입력했는데도 이 오류에 부딪히는 사용자의 좌절감도 이해할 수 있습니다. 대문자 비율과 본문 길이를 비교하는 방식으로 감지를 개선할 수 있을까요?
그것이 바로 이 기능이 하는 일이며, 예시에서는 비율이 100%입니다.
포럼 기본 언어가 중국어로 설정된 경우 해당 설정을 자동으로 조정하지만, 단일 인스턴스에 여러 언어가 혼합되어 있는 경우 해당 설정을 직접 조정해야 합니다.
텍스트에 대소문자 변형이 없는 단일 문자(중국어 같은 경우)가 하나라도 포함되어 있다면, 해당 텍스트는 자동으로 전부 대문자로 간주되지 않습니다. 이는 여기에서 /\p{Lo}/ 정규 표현식으로 매칭하여 확인할 수 있습니다.
이 접근 방식은 주로 zh/ko/ja 언어를 사용하는 포럼에 대해 특별한 설정 조정이 필요하지 않으며, 혼합 언어가 사용되는 포럼에서도 잘 작동하여, 대문자 변환이 가능한 문자만 사용되는 경우에만 allow upper case(대문자 허용) 규칙을 적용합니다.
비슷한 로직을 기존 전부 대문자 검사 최적화에에도 사용할 수 있습니다. 텍스트가 /\p{Ll}/(대문자 변형이 있는 소문자)과 매칭된다면, 해당 텍스트는 전부 대문자가 아닙니다.
풀 리퀘스트로 좋은 아이디어네요!
제 Ruby 실력은 거의 전무한 수준이지만, 범위가 어느 정도 제한적이니 뭔가 만들어 볼 수는 있을 것 같습니다.
그렇다 하더라도, 해당 파일의 상단에 이 코드 라인에 관련되어 보이는 TODO가 있는 것을 확인했습니다. 단순히 require만 제거하면 되는 수준인지, 아니면 이 PR은 해당 분야에 정통한 사람이 진행하는 것이 더 나은지 궁금합니다.
FIX: Allow all caps within CJK text - Pull Request #27900 - discourse/discourse - GitHub 에서 이 문제를 시도해 보았습니다.
아직 Ruby 개발자라고 하기에는 거리가 멀기 때문에, 너그럽게 봐 주세요. ![]()
이 문제가 해결되어 정말 좋습니다!
저희는 국제 포럼을 운영 중이며, 영어가 주요 언어이지만 다른 언어를 위한 전용 카테고리도 있습니다. 이 문제는 오랫동안 불편함을 주었었죠.
skipped_locale가 이제 seems_unpretentious에만 사용된다는 점을 고려할 때, 현대 한국어는 띄어쓰기를 사용하므로 'ko’를 건너뛸 수 있지 않을까요? 저는 한국어를 하지 않으니, 이 부분에 대해 다시 한번 확인해 주시면 좋겠습니다.
기회를 주셨으니, TextSentinel에 대해 또 하나 제가 쉽게 개선할 수 있다고 생각하지만 감히 손대지 못했던 부분이 있습니다(다시 한번 말하지만, 저는 Ruby 개발자가 아닙니다). 잠시만 시간이 나시면, 꽤 간단한 것 같고 무료 성능 향상을 얻을 수 있을 것 같습니다.
제 이해로는, 이 코드는 텍스트를 단어로 나눈 후 각 단어의 길이를 계산하고, 모든 길이를 스캔하여 가장 긴 값을 찾은 후에야 그 값을 한도와 비교하는 것 같습니다.
혹시 /\p{Alnum}{#{max_word_length + 1},}/와 같은 패턴으로 텍스트를 직접 매칭시켜서 이 과정을 생략할 수는 없을까요? (구문은 아마 틀렸을 것이지만, 제 의도를 이해해 주셨으면 합니다.)
Ruby의 내부 작동 방식을 정확히 알지는 못하지만, 이렇게 하면 매칭이 되는 즉시 검사를 중단할 가능성이 더 높고, 너무 긴 단어가 없는 경우(가장 흔한 경우)에는 텍스트를 한 번만 스캔하면 되어 단어 분리, 개별 단어 길이 확인 등의 과정을 건너뛸 수 있을 것입니다.
여기서 주제를 탈선시키고 있다면 죄송합니다. 새로운 PR이 이미 병합되었기 때문에, 이 정도는 새 주제를 만들 만큼 크지 않은 것 같아 어디에 게시하는 것이 최선인지 확신이 서지 않았습니다. 하지만 쉬운 개선 사항이라고 생각합니다. 자유롭게 진행해 주십시오.
저도 잘 모르겠습니다. 다만 한국어 사용자의 확인을 받아보고 싶습니다.
훌륭한 아이디어입니다 ![]()
좋아요!
시간을 내주셔서 감사합니다.
한국어 번역자 중 한 분(/cc @9bow, @alexkoala, @changukshin
)이 현대 한국어가 로마자/라틴 문자와 유사하게 단어 사이에 공백을 사용한다는 점을 확인해 주실 수 있을까요? 이렇게 하면 Discourse가 한국어 텍스트를 처리할 때 너무 긴 단어를 찾는 데 이 가정을 사용할 수 있습니다. ![]()