视觉小说阿拉伯语适配程序换行逻辑异常排查求助
阿拉伯语视觉小说翻译程序换行逻辑异常排查
我正在开发一款为视觉小说游戏做阿拉伯语翻译的程序:
- 已修改游戏字体文件,让部分Shift JIS编码的汉字显示为阿拉伯字母
- 程序可将阿拉伯文本转换为汉字+拉丁语组成的特殊编码,供游戏识别显示
游戏限制每行字符不超过27个,因此我在代码中将每行不含空格的字符上限设为26——当添加下一个单词后总长度不超过该值时,就把单词合并到当前行,否则放到下一行。
但目前换行逻辑存在异常:明明可以将短单词加入当前行(比如当前行不含空格字符数为22,下一个单词仅3字符,总和25≤26),程序却未执行合并,直接将单词放到下一行。
负责该功能的代码如下:
def adjust_lines(text): lines = text.split('\n') adjusted_lines = [] for i in range(len(lines) - 1): line = lines[i] next_line = lines[i + 1] while len(line.replace(' ', '')) < 26 and next_line: words = next_line.split(' ') last_word = words[-1] # Check if adding the next word keeps the line length under 26 if len(line.replace(' ', '') + last_word.replace(' ', '')) <= 26: line = last_word + ' ' + line next_line = ' '.join(words[:-1]) else: break adjusted_lines.append(line) lines[i + 1] = next_line adjusted_lines.append(lines[-1]) return '\n'.join(adjusted_lines)
我尝试过调整空格计算逻辑、排除换行符干扰等方法,也咨询过ChatGPT和Copilot,但都没能解决问题,恳请帮忙排查换行逻辑异常的原因。
内容的提问来源于stack exchange,提问作者AbdAlgani
相关产品推荐
相关产品推荐

