V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nmsl
V2EX  ›  问与答

请教一下游戏中文本地化的时候怎么样避免标点在一行的开头

  •  
  •   nmsl · 2018-12-05 08:04:03 +08:00 · 2245 次点击
    这是一个创建于 1931 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近帮很多客户做游戏本地化,有手游,有主机游戏,还有 VR 游戏。遇到一个几乎所有游戏都存在的奇葩问题,就是经常会有一行的第一个子元是一个标点符号,或者某一行干脆只有一个标点符号。跟客户反馈,他们不愿意处理,我们也不能多管,就是看着很诡异。其中不乏很多很大的游戏厂商,出于保密不能说名字… 想请问一下这种情况很难通过技术避免吗?还是处理起来会很耗费时间。 另一方面,如果大家玩游戏用中文版,看到这种情况会觉得对游戏质量有影响吗? 本人不是程序员,只是做学生兼职,所以不是很了解,靴靴大家的回答。

    20 条回复    2018-12-06 01:01:15 +08:00
    wdv2ly
        1
    wdv2ly  
       2018-12-05 08:24:50 +08:00 via Android
    游戏玩家表示没影响
    TimePPT
        2
    TimePPT  
       2018-12-05 08:37:25 +08:00 via iPhone   ❤️ 3
    中文排版需求(指南)
    http://w3c.github.io/clreq/

    拿去不谢
    nmsl
        3
    nmsl  
    OP
       2018-12-05 08:44:45 +08:00
    @TimePPT 谢谢,我会认真读一下
    whileFalse
        4
    whileFalse  
       2018-12-05 08:45:35 +08:00
    如果是你们提供的翻译文稿·,至少可以通过添加空格的方式强制提前换行。
    xml123
        5
    xml123  
       2018-12-05 08:52:59 +08:00
    这个属于排版问题,断行算法没有处理中文的禁则,这个应该是由底层的文字控件处理的,而不是你汉化的时候手动 hack。文字的排版其实很复杂的。
    sbw
        6
    sbw  
       2018-12-05 08:59:55 +08:00
    引擎要有一定的排版功能才行的,先看看有没有英文的长单词换行或者连字符这种。
    nmsl
        7
    nmsl  
    OP
       2018-12-05 09:08:21 +08:00
    @whileFalse 我之前有这样想过,不过工作量太大的,我觉得肯定有一劳永逸的解决方法
    nmsl
        8
    nmsl  
    OP
       2018-12-05 09:09:30 +08:00
    @xml123 所以要处理这种问题其实成本会比较高是吗?所以他们就放着不处理
    nmsl
        9
    nmsl  
    OP
       2018-12-05 09:10:21 +08:00
    @sbw 好像英文排版挺正常的,只有我们东亚语言出现这种问题。
    SeaRecluse
        10
    SeaRecluse  
       2018-12-05 09:14:05 +08:00
    @nmsl 大概是因为直接空格切词比较方便,中文也简单啊,判断标点符号切词呗,判断一行剩余范围填空格就好了。
    sbw
        11
    sbw  
       2018-12-05 09:27:40 +08:00
    @nmsl 那应该是游戏使用的引擎不支持,而他们只是在引擎之上做业务开发,非自研引擎,自然就改起来不容易了。
    geelaw
        12
    geelaw  
       2018-12-05 09:34:34 +08:00   ❤️ 1
    @TimePPT #2 这篇文档好奇怪啊,比如简体字的部分,有的时候使用竖排引号,有的时候使用 6699 引号(弯引号、横排引号),而且有的时候主动加空格,有的时候不加。

    ——————

    标点符号行尾行首禁则的常见规律是:成对标号的开始不可以出现在行首,成对标号的结束不可以出现在行首,任何点号都不可以出现在行首。

    @nmsl #9 英语文本有个非常好的性质:当一个标点不可以出现在行首时,它一定是和前一个单词是黏在一起的(没有空格),当一个标点不可以出现在行尾时,它一定是和后一个单词黏在一起的(没有空格)。例如:

    "I am a girl," says Alice.
    Alice said: "God is a girl!"

    标号、点号的禁则和单词的粘连是一致的,因此对于英语文本,只要简单地用空格切割即可(不考虑 hyphenation 的话)。

    其他拉丁文本不一定有这样的性质,例如法语中开始、结束引号和周围的两个词分别有一个空格,冒号、叹号、问号和周围的词也都有空格(逗点、句点没有)。
    Nasei
        13
    Nasei  
       2018-12-05 09:43:02 +08:00 via Android
    我玩的 rpg 比较多,算是比较注意剧情文本的人了,各种小剧场都会看。但回想下貌似从来没注意过标点,感觉哪怕都是空格,只要让我知道在哪断句就没问题…
    Oo0
        14
    Oo0  
       2018-12-05 11:08:14 +08:00
    玩的游戏好像都没有怎么见过标点,一般来说换行就是断句
    lxy
        15
    lxy  
       2018-12-05 11:27:31 +08:00   ❤️ 1
    做了标点悬挂也不一定代表排版好看,根据上下文需求这是一个十分复杂的问题。
    https://thetype.com/2017/11/13290/
    GeruzoniAnsasu
        16
    GeruzoniAnsasu  
       2018-12-05 11:41:37 +08:00
    我觉得我需要作为游戏玩家来 ky 一下

    玩家: 什么?你们那个贴图 /模型 /剧情 /机制做得那么烂飞天 /穿墙 /即死 /卡地形 bug 这么多都不修却在纠结句号不能放行首怎么办???
    Mutoo
        17
    Mutoo  
       2018-12-05 12:12:46 +08:00
    游戏游戏中的文字排版是非常弱的,排版“引擎”基本不存在。字是以图元为单位的,简单讲所有东西都是全角。图元简单堆积,满了就换行。
    canxden
        18
    canxden  
       2018-12-05 14:06:38 +08:00
    很丑 , 但是不影响正常使用, 如果算 bug, 也是一个 nice to have 的级别
    ResidualSoils
        19
    ResidualSoils  
       2018-12-05 18:01:07 +08:00 via Android
    不太懂你的意思,意思是你看到翻译出来的游戏有的地方很怪还是游戏开发者给你的翻译文本很怪?
    nmsl
        20
    nmsl  
    OP
       2018-12-06 01:01:15 +08:00
    @ResidualSoils 都很怪…因为我得先校对文稿,然后大量纠错,他们的翻译就挺莫名其妙的,等到第二天再看游戏本身又会发现排版问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5851 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 03:10 · PVG 11:10 · LAX 20:10 · JFK 23:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.