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.
Hum. Correction. It seems setting the body min entropy to 0 did not fix the issue. I tried with another text in Chinese and I still get the same error even though the body min entropy is set to 0


Did i miss something?
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
Scusa per il revival, ma abbiamo riscontrato lo stesso problema nel nostro Forum, che è principalmente in inglese, ma con alcune sezioni in altri script. Impostare body min entropy a 0 non ha risolto il problema.
Il problema sembra essere che l’uso di alcuni caratteri latini attiva il controllo per il tutto maiuscolo. Ecco un esempio di messaggio che fa scattare l’avviso Body seems unclear:
Ho controllato: la cartolina che ho spedito il 15 agosto alla Russia è stata ricevuta il 13 ottobre, ma quella spedita il 27 ottobre non è ancora arrivata. Sono passati già 36 giorni (anche se quelle della stessa spedizione inviate in paesi diversi non sono state ricevute).
Poiché ho semplicemente imbucato la cartolina, non sono sicuro che non sia partita… Se sei nel gruppo WeChat di UCPC, potresti chiedere a tutti?
È allow uppercase posts l’unica soluzione? Su forum come il nostro, dove l’inglese è la lingua principale, abilitare questa opzione non è ideale, ma capisco anche la frustrazione degli utenti che inseriscono un messaggio valido nel loro script e si scontrano con quell’errore. Potrebbe essere utile verificare il rapporto tra le lettere maiuscole e la lunghezza del corpo del messaggio?
È esattamente ciò che fa e, nel tuo esempio, il rapporto è del 100%.
Quando la lingua predefinita del forum è impostata sul cinese, queste impostazioni vengono modificate automaticamente, ma se hai lingue miste in una singola istanza, devi regolare manualmente quella impostazione.
Se il testo contiene un carattere di una sola lettera che non ha una variante maiuscola/minuscola (come nel caso del cinese), allora il testo non è automaticamente tutto maiuscolo. Questo può essere verificato confrontando con /\p{Lo}/ in questo punto.
Questo approccio non richiederebbe una modifica speciale delle impostazioni per i forum principalmente in zh/ko/ja e funzionerebbe bene anche con forum che utilizzano lingue miste, applicando l’opzione “consenti maiuscole” solo quando vengono utilizzati caratteri che possono essere maiuscoli.
Forse una logica simile potrebbe essere utilizzata anche per ottimizzare il controllo esistente per il tutto maiuscolo: se il testo corrisponde a /\p{Ll}/ (lettera minuscola che ha una variante maiuscola), allora il testo non è tutto maiuscolo.
Sembra una buona idea per una pull request!
Le mie competenze in Ruby sono quasi inesistenti, ma posso provare a mettere insieme qualcosa dato che il codice è piuttosto contenuto.
Detto questo, vedo un TODO all’inizio di quel file che sembra correlato a questa riga di codice specifica. È semplice come rimuovere il require, o dovrebbe intervenire qualcuno che sa cosa sta facendo per questa PR?
Ho provato a farlo in FIX: Allow all caps within CJK text by mentalstring · Pull Request #27900 · discourse/discourse · GitHub
Sono ancora lontano dall’essere uno sviluppatore Ruby, quindi abbiate pazienza. ![]()
Grazie @mentalstring, ho usato la tua PR come ispirazione per
che include anche alcuni miglioramenti delle prestazioni e una migliore gestione delle localizzazioni non latine ![]()
(cc @lindsey)
Ottimo vedere che è stato affrontato!
Gestiamo un forum internazionale e, sebbene l’inglese sia la lingua principale, abbiamo categorie dedicate ad altre lingue e questo è stato un fastidio di lunga data.
Ora che skipped_locale viene utilizzato solo per seems_unpretentious, mi chiedo se possiamo saltare ‘ko’ poiché il coreano moderno usa gli spazi? Tieni presente che non parlo coreano, quindi potresti voler ricontrollare.
Mentre ho la tua attenzione, c’è un’altra cosa che penso potrebbe essere un facile miglioramento su TextSentinel ma non ho osato toccare (di nuovo, non sono uno sviluppatore Ruby). Se hai un momento, penso che sia abbastanza semplice e potrebbe portare un guadagno di prestazioni gratuito.
Per quanto ho capito, questo controlla se una parola è più lunga del limite dividendo il testo in parole, calcolando la lunghezza di ciascuna, analizzando tutte le lunghezze per trovare la più alta e solo allora confrontandola con il limite.
Potremmo forse saltare tutto questo provando semplicemente a confrontare il testo con qualcosa come /\\p{Alnum}{#{max_word_length + 1},}/ (sintassi probabilmente errata, ma spero che tu capisca l’idea)?
Senza conoscere il funzionamento interno di Ruby, è più probabile che questo interrompa il controllo non appena c’è una corrispondenza e, se non ci sono parole troppo lunghe (caso più comune), il testo viene analizzato una sola volta, saltando la divisione, il controllo della lunghezza della singola parola, ecc.
Mi scuso se sto dirottando l’argomento, ma poiché la nuova PR è già stata unita, non sono sicuro del posto migliore dove pubblicarlo poiché è forse troppo piccolo per meritare un nuovo argomento, ma sembra una vittoria facile. Sentiti libero di procedere.
Non ne ho idea neanche io. Mi piacerebbe ricevere una conferma da chi parla coreano.
Questa è un’ottima idea ![]()
Evvai!
Grazie per aver dedicato del tempo.
Forse uno dei traduttori coreani (/cc @9bow, @alexkoala, @changukshin
) può confermare che il coreano moderno usa spazi tra le parole simili agli script romani/latini, in modo che Discourse possa utilizzare tale presupposto nell’elaborazione del testo coreano per trovare parole troppo lunghe? ![]()