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

Project1

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

[原创发布] RPGMV18N国际化插件

[复制链接]

Lv2.观梦者

梦石
0
星屑
679
在线时间
71 小时
注册时间
2022-4-18
帖子
29
跳转到指定楼层
1
发表于 2023-7-24 17:28:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 m1615690513 于 2023-7-26 17:07 编辑

免费使用,免费商用。基于MIT协议。
【更新日志20230726】:
1.修复了已知版本的问题
2.允许在文本编辑中使用占位符访问配置内容。(\L{LanguageManager.current().format.video.filename.toPinyin()} 简写:\L{f.video.filename.toPinyin()})
3.将LanguageValue代码设置为全局变量。
JAVASCRIPT 代码复制
  1. var lv = new LanguageValue("值") || LanguageManager.current().format.video.filename;
  2. //新增更多的API支持
  3. lv.toString();
  4. lv.toNumber();
  5. lv.toInteger();
  6. lv.parseInt();
  7. lv.toBoolean();
  8. lv.isObject();
  9. lv.isArray();
  10. lv.isObjectLike();
  11. lv.isString();
  12. lv.isNumber();
  13. lv.isBoolean();
  14. lv.isFunction();
  15. lv.isNaN();
  16. lv.isNull();
  17. lv.isUndefined();
  18. lv.isEmpty();
  19. lv.defaultTo();
  20. lv.isURL();
  21. lv.toURL();
  22. lv.isImageURL();
  23. lv.isAudioURL();
  24. lv.isVideoURL();
  25. lv.isZipURL();
  26. lv.toPinyin();
  27. lv.toRomaji();
  28. lv.toHiragana();
  29. lv.toKana();
  30. lv.toKatakana();
  31. lv.toHant();
  32. lv.toHans();
  33. lv.toDuration();
  34. lv.isDateString();
  35. lv.toHansNumber();
  36. lv.toHantNumber();
  37. lv.toMoney();
  38. lv.hansToNumber();
  39. lv.hantToNumber();
  40. lv.format();
  41. lv.clean();


【更新日志20230725】:
1. 追加模板写法
2. 兼容“:”或者“=”号的写法。
3. 新增汉字转Pinyin
4. 新增日语转罗马音、平假名、片假名
5. 新增简体中文转中文,繁体中文转简体
6. 示例中的zh-cn简体中文替换为zh-hans,zh-tw繁体中文替换为zh-hant
7. 支持对话中的阿拉伯数字转中文数字(支持大小写)
JAVASCRIPT 代码复制
  1. //假设properties文件里有这样的定义video.height=视频高度{key}
  2.  
  3. LanguageManager.current().format.video.height.format({key:1234});
  4. //输出的内容视频高度1234
  5.  
  6. //video.yourkey:1234 和 video.yourkey=1234 等价
  7.  
  8. //转拼音(支持中文、简中、繁中都支持)
  9. LanguageManager.current().format.video.filename.toPinyin();
  10.  
  11. //转罗马音(支持日文)
  12. LanguageManager.current().format.video.filename.toRomaji();
  13.  
  14. //转平假名(支持日文)
  15. LanguageManager.current().format.video.filename.toHiragana();
  16.  
  17. //转假名
  18. LanguageManager.current().format.video.filename.toKana();
  19.  
  20. //转简体中文
  21. LanguageManager.current().format.video.filename.toHans();
  22.  
  23. //转繁体中文
  24. LanguageManager.current().format.video.filename.toHant();



其中i18n/settings.json 是配置支持哪些语言。
内容如下。
JSON 代码复制
  1. {
  2.   "languages": [
  3.     {
  4.       "lang": "zh-hans",
  5.       "label": "简体中文"
  6.     },
  7.     {
  8.       "lang": "zh-hant",
  9.       "label": "繁體中文"
  10.     },
  11.     {
  12.       "lang": "en",
  13.       "label": "English"
  14.     },
  15.     {
  16.       "lang": "jp",
  17.       "label": "日本語"
  18.     },
  19.     {
  20.       "lang": "ko",
  21.       "label": "한국어"
  22.     },
  23.     {
  24.       "lang": "ru",
  25.       "label": "Русский язык"
  26.     }
  27.   ]
  28. }


其中i18n/lang.parser.properties 是语言的配置内容,为了保证中文加载正常,请用Unicode编码。

以中文为例(zh-hans.parser.properties):
PROPERTIES 代码复制
  1. scene.prefix=\u7B2C
  2. scene.suffix=\u5E55
  3. chapter.prefix=\u7B2C
  4. chapter.suffix=\u8282
  5. scene.tag=\u573A\u666F
  6. time.tag=\u65F6\u95F4
  7. shot.tag=\u5206\u955C
  8. shot.setting=\u955C\u5934\u8BBE\u7F6E
  9. shot.motion=\u8FD0\u52A8
  10. shot.effects=\u7279\u6548
  11. shot.editing=\u526A\u8F91
  12. shot.sound=\u97F3\u4E50/\u97F3\u6548
  13. character.tag=\u4EBA\u7269
  14. character.time=\u6BEB\u79D2\u6570
  15. dialogue.expression=\u8868\u60C5
  16. dialogue.emotion=\u60C5\u611F
  17. dialogue.action=\u52A8\u4F5C
  18. dialogue.delay=\u5EF6\u8FDF
  19. music.tag=\u97F3\u4E50
  20. music.filename=\u97F3\u4E50\u6587\u4EF6\u540D
  21. music.start=\u5F00\u59CB\u65F6\u95F4
  22. music.end=\u622A\u6B62\u65F6\u95F4
  23. music.fadein=\u6DE1\u5165\u65F6\u95F4
  24. music.fadeout=\u6DE1\u51FA\u65F6\u95F4
  25. video.tag=\u89C6\u9891
  26. video.filename=\u89C6\u9891\u6587\u4EF6\u540D
  27. video.position=\u89C6\u9891\u4F4D\u7F6E
  28. video.start=\u5F00\u59CB\u65F6\u95F4
  29. video.end=\u622A\u6B62\u65F6\u95F4
  30. video.width=\u89C6\u9891\u5BBD\u5EA6
  31. video.height=\u89C6\u9891\u9AD8\u5EA6


JAVASCRIPT 代码复制
  1. //脚本使用
  2. LanguageManager.current().scene.prefix;
  3. //切换语言环境
  4. LanguageManager.choose("语言属性lang");


i18n-0.0.9.beta.zip (430.65 KB, 下载次数: 13)

评分

参与人数 1+1 收起 理由
马铃薯条 + 1 感谢分享

查看全部评分

Lv3.寻梦者

梦石
0
星屑
4638
在线时间
684 小时
注册时间
2013-1-18
帖子
710
2
发表于 2023-7-24 22:50:21 | 只看该作者
这个插件的作用是什么?带入字体文件后,就能自动翻译游戏内文本?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
679
在线时间
71 小时
注册时间
2022-4-18
帖子
29
3
 楼主| 发表于 2023-7-25 09:19:21 | 只看该作者
本帖最后由 m1615690513 于 2023-7-25 10:02 编辑
nhycs01 发表于 2023-7-24 22:50
这个插件的作用是什么?带入字体文件后,就能自动翻译游戏内文本?


i18n.properties文件是一种用于国际化(Internationalization)的属性文件。"i18n"是"internationalization"一词的缩写,18代表中间的字符数。

该文件包含了一组键值对,用于定义不同语言环境下的文本资源。每个键值对由一个键(key)和一个值(value)组成,中间用等号或冒号分隔。例如:
  1. welcome.message=我的游戏
  2. hello.message=你好
复制代码

在不同的语言环境下,可以创建对应的不同语言的.properties文件,用于提供相应的翻译。例如,对于英语,可以创建一个名为en.parser.properties的文件,包含以下内容:
  1. welcome.message=My Game
  2. hello.message=Hello
复制代码

通过加载不同语言的.properties文件,应用程序可以根据用户的语言设置来获取正确的文本资源,从而实现多语言支持。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
490
在线时间
60 小时
注册时间
2023-7-19
帖子
64
4
发表于 2023-7-25 16:07:03 | 只看该作者
也就是还需要自己翻译然后创建文件是吗?我的理解是这样的。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
16
星屑
9905
在线时间
1515 小时
注册时间
2010-12-21
帖子
319

极短23获奖极短22参与

5
发表于 2023-7-25 16:11:37 | 只看该作者
m1615690513 发表于 2023-7-25 09:19
i18n.properties文件是一种用于国际化(Internationalization)的属性文件。"i18n"是"internationalizati ...

这是不是意味着,本来放在data目录下(.json文件)里的文本,现在要全部扔进.properties文件里,还要定义好key,然后在.json文件里调用对应的key
不知道理解得对不对
极短19 - 传统RPG《聆听者》   极短23 - 时间循环解谜《寻光者》
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
679
在线时间
71 小时
注册时间
2022-4-18
帖子
29
6
 楼主| 发表于 2023-7-25 17:04:08 | 只看该作者
~谓伊~ 发表于 2023-7-25 16:07
也就是还需要自己翻译然后创建文件是吗?我的理解是这样的。

是的,需要自己来翻译,并用properties文件进行存储。(不过0.0.4版本支持简体中文转繁体中文这个选项)
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
679
在线时间
71 小时
注册时间
2022-4-18
帖子
29
7
 楼主| 发表于 2023-7-25 17:05:54 | 只看该作者
candlesor 发表于 2023-7-25 16:11
这是不是意味着,本来放在data目录下(.json文件)里的文本,现在要全部扔进.properties文件里,还要定义 ...

是的,目前就是如此,用properties文件进行定义。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 06:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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