可定制的本地化

可定制的本地化于版本 1.20 中引入。它们基本上允许添加方括号命令,这些命令可用于本地化中,动态地显示不同的文本字符串。 凡是可以使用默认方括号命令的地方,也都可以使用它们(例如自定义提示框与自定义触发条件提示框、决议标题与描述、事件标题、描述与选项等)。

定义自定义方括号命令

自定义方括号命令定义在 ...\customizable_localization 下的文件中。

defined_text = {
    name = GetIfPapalController

    text = {
        localisation_key = string_is_papal_controller
        trigger = {
            is_papal_controller = yes
        }
    }
    text = {
        localisation_key = string_is_not_papal_controller
        trigger = {
            is_papal_controller = no
        }
    }
}

“name”定义了之后可以在本地化中使用的方括号命令。 “text”部分定义了在满足触发条件时,游戏内将显示的具体字符串,用以取代该方括号命令。 “localisation_key”定义了满足触发条件时所显示的字符串。该键必须进行本地化,即使它不应包含任何字符也一样;否则将显示实际的键名。

属性“random”

可定制的本地化支持使用属性“random”。 如果自定义方括号命令使用 random = yes 或将其省略,那么当满足触发条件的字符串不止一个时,游戏会从中随机选择一个。这意味着,以这种方式定义自定义方括号命令时,不同“text”部分的触发条件应当相互排斥;这类似于在不使用 if-else 机制时的多个 if 部分(if-else 机制)。

如果自定义方括号命令使用 random = no,游戏将始终选择第一个满足触发条件的字符串,即使还有其他字符串也满足触发条件。与if-else 机制类似,当字符串很多时这很有用,因为不必每次都复制触发条件。它或许还更节省性能,因为它大概不会检查所有触发条件,而是在某个触发条件满足后就停止。

defined_text = {
    name = GetIfPapalController
    random = no

    text = {
        localisation_key = string_is_papal_controller
        trigger = {
            is_papal_controller = yes
        }
    }
    text = {
        localisation_key = string_is_not_papal_controller
        trigger = {
            always = yes
        }
    }
}

本地化字符串

“text”部分中定义的字符串必须在本地化文件中进行本地化。如果没有这样做,游戏将直接显示该字符串的键名。 因此,如果希望某个字符串什么都不显示,也必须对它进行本地化。

l_english:
 string_is_papal_controller: "Papal Controller"
 string_is_not_papal_controller: "not Papal Controller"

如果希望某个字符串什么都不显示,可以只用引号对它进行本地化:

l_english:
 string_is_papal_controller: ""
 string_is_not_papal_controller: " not"

在本地化中使用

自定义方括号命令的使用方式与默认的方括号命令相同。根据所定义的触发条件,它们支持不同的作用域(例如 [From.GetIfPapalController]、[Root.GetIfPapalController])。如果触发条件是全局检查的,例如检查全局标记、日期、年份、时代、月份等,就不需要使用作用域,这与某些默认的方括号命令类似(例如 [GetYear]、[GetMonth])。

对于上面给出的示例,这条示例提示框会根据具体情况显示 (国家名称)是教廷控制者 或 (国家名称)不是教廷控制者。

l_english:
 example_tooltip: "[Root.GetName] is [Root.GetIfPapalController]."

对于上面“本地化字符串”一节中给出的第二个示例,其用法如下:

l_english:
 example_tooltip: "[Root.GetName] is[Root.GetIfPapalController] Papal Controller."


文档 效果 • 触发条件 • 修正列表 • 作用域 • 变量 • 本地化 • 可自定义本地化 • 运行文件 • 事件图片列表
脚本 脚本函数 • 顾问 • 时代 • 开局设定 • 建筑 • 宣战理由 • 殖民区域 • 国家创建 • 文化 • 决议 • Defines • 外交行动 • 灾难 • 中华帝国 • 阶层 • 事件 • 派系 • 政府 • 政府互动 • 伟大工程 • 历史 • 神圣罗马帝国 • 理念组 • 思潮 • 佣兵 • 任务树 • 修正 • On Actions • 议会 • 和约 • 君主性格 • 政策 • 叛军类型 • 宗教 • 附属国类型 • 科技 • 贸易公司 • 商品 • 单位
地图 地图 • 地图修改速查 • 随机新世界 • 贸易节点
图形 3D模型 • 界面 • 贴图库 • 字体 • 单位模型
音频 音乐 • 音效
其他 控制台命令 • 校验和 • 模组结构 • 故障排查 • 运行文件
工具 克劳塞维茨开局编辑器 • EU4模组编辑工具 • JoroDox模组制作工具 • The Validator
指南 省份 • 地图修改速查 • 存档编辑 • 脚本教程