Godot4实现游戏的多语言版本
要在Godot 4中实现多语言版本的游戏,您需要按照以下几个步骤来设置和管理游戏文本以及可能的其他资源,如图像或声音。以下是根据官方文档和详细教程整理的简明指南:
准备翻译文件:
Godot支持使用.csv文件或.po文件进行国际化。
您将使用电子表格程序(如LibreOffice Calc)创建一个.csv文件,其中包含每种支持的语言的键和翻译。

CSV的结构:
CSV文件必须遵循特定的格式,其中包含一个用于键的列以及每种支持的语言的其他列。
第一行应包含键和语言代码,随后的行应包含文本键和其翻译。

创建本地化资源:
一旦准备好并以UTF-8格式保存了.csv文件,将其导入到您的Godot项目中,放入名为“lang”或类似的文件夹2。
设计游戏场景:
在游戏场景中,您可以创建GUI元素,如Label或OptionButton,用于显示或切换翻译后的文本。
本地化编码:
将脚本附加到您的游戏场景,您可以在其中管理语言选择并实时更新文本元素。
使用TranslationServer.set_locale()来设置当前语言,使用tr()来获取给定键的翻译文本2。
代码:
extends Control@onready var option_button : OptionButton = $OptionButton
@onready var label_animal : Label = $LabelAnimalfunc _ready() -> void:TranslationServer.set_locale("en") # we set the locale "en" in the TranslationServerlabel_animal.text = tr("LABEL") + ":" # tr() gets the localized stringfunc _on_option_button_item_selected(index: int) -> void:# we simply get the locale, since each entry in the OptionButton is the actual locale: var locale : String = option_button.get_item_text(index) TranslationServer.set_locale(locale) # and change the TranslationServer in runtimelabel_animal.text = tr("LABEL") + ":" # the label text has to be set
将翻译添加到项目设置:
您需要将翻译资源添加到项目设置的“本地化”选项卡下。
资源重映射:
对于不同的资源,如图像或声音,您可以使用Remaps功能来指定每种语言使用哪些资源2。
通过遵循这些步骤,您可以在Godot 4中建立一个系统,使您的游戏能够以多种语言呈现文本和其他资源,提高了全球玩家的可访问性和用户体验。
相关文章:
Godot4实现游戏的多语言版本
要在Godot 4中实现多语言版本的游戏,您需要按照以下几个步骤来设置和管理游戏文本以及可能的其他资源,如图像或声音。以下是根据官方文档和详细教程整理的简明指南: 准备翻译文件: Godot支持使用.csv文件或.po文件进行国际化…...
6张图让你了解openRA 下载及编译
下面的3张图是免费赠送的用vs解决方案编译的方法...
华为防火墙 配置 SSLVPN
需求: 公司域环境,大陆客户端居家办公室需要连到公司域,这里可以在上海防火墙上面开通SSLVPN,员工就可以透过SSLVPN连通上海公司的内网,但是由于公司域控有2个站点,一个在上海,一个在台北&…...
Android Studio(数据存储)
数据存储方式 方式特点文件存储openFileInput()和openFileOutput()进行存写SharedPreferences以XML格式进行存储SQLite运算快、占用资源少、支持基本的sql语法ContentProvider可用于应用之间的数据交互网络存储通过网络提供的存储空间来存储/获取数据信息 文件存储 主要语法…...
人,要懂得享受孤独
喜欢在如水的月光下,望一轮洁白的皓月, 喜欢在清寂的夜晚,看那星光流转倏忽间的变幻,牵动心中万千情怀。 独享这份清幽,遐想那月中寻桂子的浪漫。 这个世界太喧闹,偶尔,需要关一关窗,…...
Spring Boot + EasyUI Datebox和Datetimebox样例
使用EasyUI的Datebox和Datetimebox组件,并对其进行适当的改造,比如更改日期格式、设置默认值或者将当前时间设置为默认值。 一、运行结果 二、实现代码 1.代码框架 2.实现代码 SpringBootMainApplication.java: package com.xj.main;import org.spri…...
web前端JS基础------制作一个获取验证码
1,需要一个定时器,和一个button,通过点击事件启动获取验证码 2,参考代码如下 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><…...
MyBatis面经
MyBatis常见面试题 !!本文主要是博主总结看着玩的,不具有很高的参考价值,慎重 1、MyBatis是什么?MyBatis工作原理?MyBatis的使用场景有哪些? MyBatis是一款优秀的持久层框架,它是…...
SpringBoot基础(六)-- 辅助功能之一 -- 内嵌tomcat
目录 1. 内嵌Tomcat定义位置 2. 内嵌Tomcat运行原理 3. 更换内嵌Tomcat 在前面,我们做的SpringBoot入门案例(SpringBoot基础(一)-- 使用idea(2022版)创建一个Springboot项目(联网开发))勾选了Spirng-web的功能&#...
K8s:部署 CNI 网络组件+k8s 多master集群部署+负载均衡及Dashboard k8s仪表盘图像化展示管理
目录 1 部署 CNI 网络组件 1.1 部署 flannel 1.2 部署 Calico 1.3 部署 CoreDNS 2 负载均衡部署 3 部署 Dashboard 1 部署 CNI 网络组件 1.1 部署 flannel K8S 中 Pod 网络通信: ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容…...
「直播回放」使用 PLC + OPC + TDengine,快速搭建烟草生产监测系统
在烟草工业场景里,多数设备的自动控制都是通过 PLC 可编程逻辑控制器来实现的,PLC 再将采集的数据汇聚至 OPC 服务器。传统的 PI System、实时数据库、组态软件等与 OPC 相连,提供分析、可视化、报警等功能,这类系统存在一些问题&…...
私域流量搭建与运营,技巧全攻略!
2023年是比拼运营深度和服务效率的一年,用户对于体验的期望值将持续增长,企业需提供无缝的客户体验,以推动增长、保障收入、确保客户忠诚度。在疫情新常态下,企业已构建起APP、小程序等一系列线上触点矩阵,而各个触点之…...
AWS SAP-C02教程0--课程概述
SAP是亚马逊云的解决方案架构师专业级认证,关于本课程,我会简述已下3点: 在本课程中按照自己的分类讲述考试相关的AWS产品,特别会注明每个产品在考试中可能出现的考点会对一些解决方案做对比,通过一些对比给出不同场景…...
RFC使用与WebService
RFC连接 CSDN RFC中引用类型组 http://t.csdnimg.cn/wQWAYhttp://t.csdnimg.cn/wQWAY 远程目标系统维护SM59 这里的类型指的是目标系统的系统类型(目标系统即rfc函数存在的系统). 类型2(R/2连接),只需给出主机名,所有通信信息…...
打造全球化电商平台,多语言商城系统助您开拓海外市场
全球化进程的加速,越来越多的企业开始将目光投向海外市场。然而,语言和文化差异成为了企业面临的一大挑战。为了帮助企业顺利拓展海外业务,多语言商城系统应运而生。作为一种功能强大的电子商务平台,多语言商城系统具备以下关键功…...
【滑动窗口】篮里到底能装 “几个水果” 呢?
Problem: 904. 水果成篮 文章目录 题目分析算法原理分析暴力枚举 哈希表滑动窗口优化数组再度优化 复杂度Code 题目分析 首先我们来分析一下本题的思路 首先我们通过题目的描述来理解一下其要表达的含义,题目给到我们一个fruit数组,里面存放的是每棵树上…...
newstarctf2022week2
Word-For-You(2 Gen) 和week1 的界面一样不过当时我写题的时候出了个小插曲 连接 MySQL 失败: Access denied for user rootlocalhost 这句话印在了背景,后来再进就没了,我猜测是报错注入 想办法传参 可以看到一个name2,试着传参 发现有回显三个字段…...
集群调度-01
目录 1、调度约束 2、Pod 是 Kubernetes 的基础单元,Pod 启动典型创建过程如下 2.1 工作机制 **** 2.2 调度过程 *** 2.3 Predicate 有一系列的常见的算法可以使用: ** 2.4 指定调度节点 1、调度约束 Kubernetes 是通过 List-Watch **…...
【软件工程】金管局计算机岗位——软件测试的分类(⭐⭐⭐⭐)
软件工程 软件测试的分类从是否关心软件内部结构和具体实现的角度划(⭐⭐⭐⭐)从是否执行代码角度划分(⭐⭐)从软件开发的过程按阶段划分(⭐⭐⭐⭐) 软件测试的分类 考点导读: 软件测试是软件工…...
Halcon WPF 开发学习笔记(1):Hello World小程序
文章目录 文章专栏视频链接Hello World训练图片训练目的 开始训练图像预处理导入图像三通道处理调用算子通道选取 滤波什么是好的滤波 增加对比度 区域选取阈值处理算子参数选择运行结果(红色为选择区域) 区域分割运行结果 特征筛选参数代码第二次,面积筛选 画选中十…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
