Japanese and Chinese languages have no interword spaces, and text can be broken (almost) anywhere. So function shorten_text in lib/moodlelib.php must be rewritten:
if ($stopzone) {
if ($char == '.' or $char == ' ' or ord($char) >= 0xE0)
{ $truncate = $i; // not $i+1; break 2; }}
if text is encoded in UTF-8. Note that a 0xE0-or-higher byte starts a three-byte (or longer) chacacter, which is almost always a Japanese/Chinese letter, and this hack should not affect Moodle's behavior for European languages.