UDN
Search public documentation:
LocalizedTextFilesCH
English Translation
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
UE3主页 > UnrealScript > 本地化虚幻引擎中的文本
本地化虚幻引擎中的文本
概述
[Engine.SeekFree] ... Language=jpn ...
UnrealLoc
使用本地化文本文件
文件格式
尽管本地化文本文件本身是简单的INI-格式的配置文件,但是必须把它们保存为Unicode (UTF-16小尾序格式),请不要继承它们的引擎相对应的部分所使用的格式。文件名称本身和本地化数据所在的包的名称是一样的;并且文件的扩展名和该文件所在的Localization目录中的子目录的名称一致。部分 和 键-值对
一般的配置文件由成块的 键-值 对组成,如下所示:[Section] Key=Value比如,如果您有一个称为MyGame.u的脚本包,那么应该有一个包含了 MyGame.u文件中的脚本类的所有默认本地化字符串的MyGame.int文件。所以,如果您有一个名称为MyHUD.uc的脚本类,具有本地化字符串属性
CheckpointReachedString
和 LoadingString
,那么MyGame.int中的其中一个部分应该如下所示:
[MyHUD] CheckpointReachedString=Checkpoint Reached LoadingString=Loading需要记住的一个事情是您需要手动地创建部分。UnrealScript不允许您在UnrealScript类的
defaultproperties(默认属性)
部分指定可本地化属性的默认字符串。如果您尝试指出,那么脚本编译将会是失败。这实际上是个好事,因为它强制您意识到这些字符串是必须被翻译的,并且会尽快地把它们放到本地化文本文件中。
字符串数据
作为数据一部分的本地化字符串和地图包的工作方式类似,但是它们有很大的不同。尽管您可以手动地为这些包创建本地化文本文件,但通常最好使用通用浏览器的包的树结构中的包上运行 Full Loc Export(完全导出本地化文本)... 命令。这将会基于每个包自动地生成本地化文本文件,它里面包含了必要的文本。 注意: 任何您输入到属性窗口中的东西在您下次加载 包/地图 时都会被INT文件内容覆盖。在终止编辑器会话前,您需要重新导出本地化文件。基于每个对象的字符串数据
上面的MyHUD示例假设尽管有多个类的实例存在,但仅有一个字符串用于CheckpointReachedString
和 LoadingString
。如果您创建的一个类,该类需要让设计人员为每个实例指定不同的本地化文本,那么将会发生什么哪? 比如,如果您正在使用原型系统来构建武器,那么每个武器可能具有不同的本地化名称和描述。在这种情况下,需要把具有该本地化字符串属性的类在其声明中标记为 perobjectconfig
。通过这样做,当在包含那个类的对象的包上运行 Full Loc Export(导出所有本地化文本)... 命令时将会分别输出那个类的每个实例的字符串。所以,比如,如果您有包VO.upk ,它具有三个WAV文件(WAV1, WAV2, WAV3),每个文件都有个填充的SpokenText文本域,在该包上运行 Full Loc Export(导出所有本地化文本)... ,这样将会生成一个VO.int文件,它具有以下部分:
[WAV1 SoundNodeWave] SpokenText="<WAV1 Text, whatever that may be>" [WAV2 SoundNodeWave] SpokenText="<WAV2 Text, whatever that may be>" [WAV3 SoundNodeWave] SpokenText="<WAV3 Text, whatever that may be>"注意,每个部分的名称包含了资源名称和它的类。伴随着文件名称 VO.int,同时也应该在VO.upk中特别地指出所有的本地化字符串。
UIStrings中的自动换行和新建行
当手动地编辑器本地化文件时,您或许会遇到在UI字符串中的自动换行和另起一行的问题。 比如,如下所示:[GenericStrings] Output="Line 1/nLine2/nLine 3"将会返回:
Line 1ine2ine3在UI编辑器数仓据库浏览器?中预览字符串也会产生同样的效果。 但是,在UI编辑器数据仓库浏览器?中修改一个单独的本地化字符串并应用改变时,在受到影响的整个INT文件中的字符串周围的引号将会自动地被删除。这会使得escape(漏掉)的字符按照期望的方式工作。 解决方案: 如果您手动地使用文本编辑器把本地化字符串输入到INT文件中,请不要使用引号! 这里是正确的声明: [GenericStrings]
Output=Line 1/nLine2/nLine 3它将会产生以下输出:
Line 1 Line 2 Line 3
二进制数据
对于二进制数据来说,本地化所涉及的仅是使得具有附加扩展名的不同的包使用目标语言的三个字母代码作为附加扩展名即可。比如,如果您有一个包Art.upk,它内部包含了需要本地化的贴图,如果您当前运行的语言是日语(正如在您的声明本地化文本文件数据
类声明描述了本地化文本文件的新的部分段的名称。任何包含localized
关键字的字符串都可以被导出,并且会被放到相关的本地化文本文件中。
比如,以下示例类声明它的字符串将会被导出到MyGame.int本地化文本文件中:
class MyHUD extends HUD var localized string CheckpointReachedString; var localized string LoadingString;请参照UnrealScript参考指南 获得关于本地化字符串的更多信息。
可用的本地化文本文件
-
.int (项目名称) -
Editor.int (如果在您的项目中对编辑器进行了修改) -
UI.int (用户界面) -
Content.int (二进制内容) -
Credits.int (感谢声明) -
Subtitles.int (字幕)