设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 6851|回复: 20
打印 上一主题 下一主题

[已经解决] [求脚本] 针对英文的一次性自动换行脚本

[复制链接]

Lv4.逐梦者

梦石
7
星屑
650
在线时间
130 小时
注册时间
2011-5-12
帖子
135
跳转到指定楼层
发表于 2019-3-20 12:06:21 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
86星屑
近期游戏准备上架在制作英文版本. 采用了用RPGMAKER Trans工具进行"文本导出→翻译→再导入"的方式翻译, 但发现了一个问题,

英文文本翻译出来后, 译文的每一行总是比原文要长的. 这就导致了翻译后的版本总会有一些太长的句子显示不全(如图)





  虽然站里有很多自动换行的脚本插件, 但是要么是RMXP里无法使用的, 要么是仅对中文有效的. (英文必须是一整个单词连在一起的, 用中文版的自动换行的话, 很多时候最后一个单词会被切成两半分到下一行显示...)

"使用带自动换行功能的对话框插件"这个方案也得排除......因为我现在已经在用着RB重制的那个"对话增强"脚本了, 游戏开发到了中期也不方便换...  



综上所述: 目前求一个一次性的自动换行脚本, 插入运行一次后会自动把所有[显示文章] [选项]里的文本进行自动换行!
(目前我自己想过写个从rxdata里读出文本→自动换行→覆盖回rxdata里 的脚本但技术力太低写不出来.....)


Lv4.逐梦者

梦石
7
星屑
650
在线时间
130 小时
注册时间
2011-5-12
帖子
135
11
 楼主| 发表于 2019-5-10 12:59:24 | 只看该作者
张咚咚 发表于 2019-5-10 09:53
把17行换成
next if !str.is_a?(String) or str.length

好的~
试了下, 替换后 49行 就会报错:
undefined method 'code' for nil:NilClass

我晚些试着新开个工程导入文本再测试下是什么导致的问题
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19418
在线时间
3101 小时
注册时间
2013-1-11
帖子
1291
10
发表于 2019-5-10 09:53:18 | 只看该作者
本帖最后由 张咚咚 于 2019-5-10 09:54 编辑
龙夫三拳tan 发表于 2019-5-9 06:49
抱歉隔这么久后回来挖坟, 最近翻译文本才完成了, 不过导入文本后再执行该脚本发现会报 ...


把17行换成
next if !str.is_a?(String) or str.length <= 30
试试
回复

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
650
在线时间
130 小时
注册时间
2011-5-12
帖子
135
9
 楼主| 发表于 2019-5-9 06:49:19 | 只看该作者
张咚咚 发表于 2019-3-20 12:06
刚刚那个只是对"末尾单词会隔开"问题进行修复。。
太长换行执行下面这个试试。

抱歉隔这么久后回来挖坟, 最近翻译文本才完成了, 不过导入文本后再执行该脚本发现会报错:
17行发生了NoMethod Error, undefined method 'length' for 1:Fixnum

似乎在某种情况下,list.parameters[0]的值会变成1. 但暂时不知道该如何排除该问题, 请问大佬有什么头绪么
回复

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
650
在线时间
130 小时
注册时间
2011-5-12
帖子
135
8
 楼主| 发表于 2019-3-21 07:39:36 | 只看该作者
张咚咚 发表于 2019-3-20 22:26
刚刚那个只是对"末尾单词会隔开"问题进行修复。。
太长换行执行下面这个试试。

感谢!!顺利运作了!
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14585
在线时间
2149 小时
注册时间
2016-9-20
帖子
859
7
发表于 2019-3-20 22:05:00 | 只看该作者
我覺得中文字好像占用3個字节,那样要把文字化為字节集,計算字节數量 (別打我,是错的)
我发的贴子大多未经整理是草稿抱歉
回复

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
650
在线时间
130 小时
注册时间
2011-5-12
帖子
135
6
 楼主| 发表于 2019-3-20 21:29:18 | 只看该作者
张咚咚 发表于 2019-3-20 18:56
备份工程后试一下


似乎不行...成功插入运行了, "修改完毕"的提示也出来了, 然后关掉工程再进去点开事件看发现
依旧还是超过了长度限制.
回复

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
650
在线时间
130 小时
注册时间
2011-5-12
帖子
135
5
 楼主| 发表于 2019-3-20 21:15:37 | 只看该作者
张咚咚 发表于 2019-3-20 18:56
备份工程后试一下

感谢!我先去测试一下!
回复

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
650
在线时间
130 小时
注册时间
2011-5-12
帖子
135
4
 楼主| 发表于 2019-3-20 21:14:55 | 只看该作者
guoxiaomi 发表于 2019-3-20 12:31
第一次听说RPGMAKER Trans工具,看介绍好像异常的好用呢……
似乎只要把 patch 里的 txt 文件中的输入的英 ...

是的, 很好用, 可是现在问题就是在翻译后的换行, 默认的话需要人为检查长度是否超过然后手动回车换行, 但文本量大了后就会有点麻烦了.
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19418
在线时间
3101 小时
注册时间
2013-1-11
帖子
1291
3
发表于 2019-3-20 18:56:04 | 只看该作者
备份工程后试一下

  1. $data_mapinfos = load_data("Data/MapInfos.rxdata")

  2. for id in $data_mapinfos.keys
  3.   map = load_data(sprintf("Data/Map%03d.rxdata", id))
  4.   for e in map.events.values # 遍历事件
  5.     next if e.nil?
  6.    
  7.     for p in e.pages # 遍历事件页
  8.       next if p.nil?
  9.       
  10.       p.list.each_with_index do |list, index| # 遍历事件内容
  11.         next if list.nil? or (list.code != 101 and list.code != 401)
  12.         
  13.         $arr = [] if list.code == 101
  14.         
  15.         $arr += list.parameters
  16.         
  17.         if list.code == 401 and p.list[index+1].nil? or p.list[index+1].code != 401
  18.           f = "\r\n"
  19.           arr = $arr.join(f).gsub(/ ([A-Za-z]+)#{f}([A-Za-z])/){|s| "#{f}#{$1}#{$2}" }.split(f)
  20.           arr.reverse.each_with_index{|s, i| p.list[index-i].parameters = [s] }
  21.           # p arr
  22.         end
  23.         
  24.       end
  25.     end
  26.   end
  27.   save_data(map, sprintf("Data/Map%03d.rxdata", id))
  28. end

  29. print "修改完毕, 重启工程查看"
  30. exit
复制代码
回复

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2019-3-20 12:31:58 | 只看该作者
第一次听说RPGMAKER Trans工具,看介绍好像异常的好用呢……
似乎只要把 patch 里的 txt 文件中的输入的英文翻译进行换行就好了?
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 01:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表