minetest / minetest

Minetest is an open source voxel game-creation platform with easy modding and game creation
https://www.minetest.net/
Other
10.62k stars 2k forks source link

CJK characters looks been filtered in chat_message while the GUI could display them collectly #13813

Closed yunfan closed 9 months ago

yunfan commented 1 year ago

Minetest version

Minetest 5.8.0-dev-7b3ed32 (Linux)
Using Irrlicht 1.9.0mt12
Using LuaJIT 2.1.0-beta3
BUILD_TYPE=Release
RUN_IN_PLACE=1
USE_CURL=1
USE_GETTEXT=1
USE_SOUND=1
STATIC_SHAREDIR="."
STATIC_LOCALEDIR="locale"

Active renderer

OpenGL4.6

Irrlicht device

X11

Operating system and version

mxlinux 23

CPU model

Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz

GPU model

i915

OpenGL version

4.6

Summary

i compiled the client myself from a recently master line code

the problem is i found all GUI display now support CJK characters well

and my input method could also input CJK chars in the chat message input

the only problem is after i sent the message, the displayed text from server seems like been filtered the all CJK characters while other characters still display well

Steps to reproduce

just use my version of the client and try to send cjk chars in the chat

sfan5 commented 12 months ago

This works fine for me, please provide more details. A debug log might be helpful.

yunfan commented 12 months ago

@sfan5 sorry just saw it. so which log do you need? both server and client were under my control

sfan5 commented 12 months ago

Please test this in singleplayer and produce a log with minetest --verbose.

yunfan commented 12 months ago

here are the log

2023-09-21 17:15:27: INFO[Main]: Using relative paths (RUN_IN_PLACE)
2023-09-21 17:15:27: INFO[Main]: Detected share path: /home/jyf/repo/minetest/bin/..
2023-09-21 17:15:27: INFO[Main]: Detected user path: /home/jyf/repo/minetest/bin/..
2023-09-21 17:15:27: INFO[Main]: Detected cache path: /home/jyf/repo/minetest/bin/../cache
2023-09-21 17:15:27: INFO[Main]: Using in-place locale directory /home/jyf/repo/minetest/bin/../locale even though a static one was provided.
2023-09-21 17:15:27: INFO[Main]: minetest with SER_FMT_VER_HIGHEST_READ=29, BUILD_TYPE=Release
2023-09-21 17:15:27: INFO[Main]: RUN_IN_PLACE=1
2023-09-21 17:15:27: INFO[Main]: USE_CURL=1
2023-09-21 17:15:27: INFO[Main]: USE_GETTEXT=1
2023-09-21 17:15:27: INFO[Main]: USE_SOUND=1
2023-09-21 17:15:27: INFO[Main]: STATIC_SHAREDIR="."
2023-09-21 17:15:27: INFO[Main]: STATIC_LOCALEDIR="locale"
2023-09-21 17:15:27: VERBOSE[Main]: httpfetch_init: parallel_limit=8
2023-09-21 17:15:27: INFO[Main]: Gettext: domainname="minetest" path="/home/jyf/repo/minetest/bin/../locale"
2023-09-21 17:15:27: INFO[Main]: Message locale is now set to: LC_CTYPE=zh_CN.UTF-8;LC_NUMERIC=C;LC_TIME=zh_CN.UTF-8;LC_COLLATE=zh_CN.UTF-8;LC_MONETARY=zh_CN.UTF-8;LC_MESSAGES=zh_CN.UTF-8;LC_PAPER=zh_CN.UTF-8;LC_NAME=zh_CN.UTF-8;LC_ADDRESS=zh_CN.UTF-8;LC_TELEPHONE=zh_CN.UTF-8;LC_MEASUREME
2023-09-21 17:15:27: INFO[Main]: NT=zh_CN.UTF-8;LC_IDENTIFICATION=zh_CN.UTF-8
2023-09-21 17:15:27: INFO[Main]: Searching worlds...
2023-09-21 17:15:27: INFO[Main]:   In /home/jyf/repo/minetest/bin/../worlds: test world 
2023-09-21 17:15:27: INFO[Main]: 2 found.
2023-09-21 17:15:27: INFO[Main]: Using default world at [/home/jyf/repo/minetest/bin/../worlds/world]
2023-09-21 17:15:27: INFO[Main]: Using world gameid [MineClone5]
2023-09-21 17:15:27: INFO[Main]: Audio: Global Initialized: OpenAL 1.1 ALSOFT 1.19.1, using OpenAL Soft
2023-09-21 17:15:27: INFO[Main]: Irrlicht: Irrlicht Engine version 1.9.0mt12
2023-09-21 17:15:27: INFO[Main]: Irrlicht: Linux 6.0.0-6mx-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.0.12-1~mx21+1 (2022-12-15) x86_64
2023-09-21 17:15:27: INFO[Main]: Irrlicht: Using renderer: OpenGL 4.6
2023-09-21 17:15:27: INFO[Main]: Irrlicht: Mesa Intel(R) UHD Graphics (CML GT2): Intel
2023-09-21 17:15:27: INFO[Main]: Irrlicht: OpenGL driver version is 1.2 or better.
2023-09-21 17:15:27: INFO[Main]: Irrlicht: GLSL version: 4.6
2023-09-21 17:15:27: INFO[Main]: Using the OpenGL video driver
2023-09-21 17:15:27: VERBOSE[Main]: Client: Configuring general top level window properties
2023-09-21 17:15:27: INFO[Main]: Waiting for other menus
2023-09-21 17:15:27: INFO[Main]: Waited for other menus
2023-09-21 17:15:27: INFO[Main]: Audio: Initialized: OpenAL 
2023-09-21 17:15:27: INFO[Main]: GUIEngine: Initializing Lua
name="mcl_mushrooms:brown_mushroom_block_cap_111000"
...
2023-09-21 17:15:47: VERBOSE[Main]: ServerEnvironment::deactivateFarObjects(): deactivating object id=35 on inactive block (-8,-1,-1)
2023-09-21 17:15:47: VERBOSE[Main]: virtual void LuaEntitySAO::getStaticData(std::string*) const
2023-09-21 17:15:47: VERBOSE[Main]: scriptapi_luaentity_deactivate: id=35
2023-09-21 17:15:47: VERBOSE[Main]: ServerEnvironment::deactivateFarObjects(): object id=35 is not known by clients; deleting
2023-09-21 17:15:47: VERBOSE[Main]: scriptapi_luaentity_rm: id=35
2023-09-21 17:15:47: VERBOSE[Main]: ServerEnvironment::deactivateFarObjects(): deactivating object id=36 on inactive block (-8,-1,2)
2023-09-21 17:15:47: VERBOSE[Main]: virtual void LuaEntitySAO::getStaticData(std::string*) const
2023-09-21 17:15:47: VERBOSE[Main]: scriptapi_luaentity_deactivate: id=36
2023-09-21 17:15:47: VERBOSE[Main]: ServerEnvironment::deactivateFarObjects(): object id=36 is not known by clients; deleting
2023-09-21 17:15:47: VERBOSE[Main]: scriptapi_luaentity_rm: id=36
2023-09-21 17:15:47: VERBOSE[Main]: virtual ServerMap::~ServerMap()
2023-09-21 17:15:47: INFO[Main]: ServerMap: Written: 720 blocks, 3342 blocks in memory.
2023-09-21 17:15:47: INFO[Main]: ServerMap: Blocks modified by: 
2023-09-21 17:15:47: INFO[Main]:   Timestamp expired (step) ____________________    1x     694
2023-09-21 17:15:47: INFO[Main]:   deactivateFarObjects: Static data changed considerably     1x      25
2023-09-21 17:15:47: INFO[Main]:   setNodeNoCheck ______________________________    1x       1
2023-09-21 17:15:47: INFO[Main]: ServerMap: Saved map to /home/jyf/repo/minetest/bin/../worlds/test
2023-09-21 17:15:47: INFO[Main]: BanManager: saving to /home/jyf/repo/minetest/bin/../worlds/test/ipban.txt
2023-09-21 17:15:47: INFO[Main]: Server: Deinitializing scripting
2023-09-21 17:15:47: INFO[Main]: ~TextureSource() before cleanup: 1750 after: 15
2023-09-21 17:15:47: INFO[Main]: Audio: Global Deinitialized.

the full log could be found here https://clbin.com/Am2nP

and i had screenshots for this bug

here is my input which contains chinese characters

x.md.png

and after my pressing enter, i got the output filtered chineses characters

x_000.md.png

sfan5 commented 12 months ago

I can't see a chat message being set in your log at all, it should look like this: 2023-09-21 12:52:43: ACTION[Server]: CHAT: <singleplayer> example

does disabling client modding change anything?

yunfan commented 12 months ago

I can't see a chat message being set in your log at all, it should look like this: 2023-09-21 12:52:43: ACTION[Server]: CHAT: <singleplayer> example

does disabling client modding change anything?

you mean the server log? i had a server log here https://clbin.com/yapok i got this log using

#!/bin/bash

while true
do
    ./bin/minetestserver \
        --config ./mc5.conf \
        --gameid MineClone5 \
        --worldname world --verbose 2>&1 | tee /tmp/mt.server.log
    sleep 5
done

you could see i had --verbose, but still i hav'nt seen any chat relevant log

Zughy commented 11 months ago

@yunfan quoting sfan5: "does disabling client modding change anything?"

yunfan commented 11 months ago

@yunfan quoting sfan5: "does disabling client modding change anything?"

then how to disable the client mods?

Zughy commented 11 months ago

@yunfan settings -> advanced settings -> look for "client modding" in the search bar and you'll find it. Is it activated or not?

yunfan commented 11 months ago

@yunfan settings -> advanced settings -> look for "client modding" in the search bar and you'll find it. Is it activated or not?

i had checked that, and its not selected currently

Zughy commented 11 months ago

@sfan5 if you have time to check the log provided here it would be great https://github.com/minetest/minetest/issues/13813#issuecomment-1730594420

EDIT: added as meeting point https://dev.minetest.net/Meetings#2023-10-15, action needed from our side

SmallJoker commented 10 months ago

I cannot reproduce your issue using the default fonts. Please rename your minetest.conf file and create a new world without any mods enabled. If that works properly, proceed by enabling one mod after the other to find out which one mangles the unicode characters.

This is what I get for sending hello world in Japanese, Korean and Chinese using font_size = 16:

normal chat F10 console

Note: Your nickname will not be coloured; that's caused by a client mod on my side.