当前位置: 首页 > news >正文

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可用于应用之间的数据交互网络存储通过网络提供的存储空间来存储/获取数据信息 文件存储 主要语法…...

人,要懂得享受孤独

喜欢在如水的月光下,望一轮洁白的皓月, 喜欢在清寂的夜晚,看那星光流转倏忽间的变幻,牵动心中万千情怀。 独享这份清幽,遐想那月中寻桂子的浪漫。 这个世界太喧闹,偶尔,需要关一关窗&#xff0c…...

Spring Boot + EasyUI Datebox和Datetimebox样例

使用EasyUI的Datebox和Datetimebox组件,并对其进行适当的改造,比如更改日期格式、设置默认值或者将当前时间设置为默认值。 一、运行结果 二、实现代码 1.代码框架 2.实现代码 SpringBootMainApplication.java: package com.xj.main;import org.spri…...

web前端JS基础------制作一个获取验证码

1&#xff0c;需要一个定时器&#xff0c;和一个button&#xff0c;通过点击事件启动获取验证码 2&#xff0c;参考代码如下 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><…...

MyBatis面经

MyBatis常见面试题 &#xff01;&#xff01;本文主要是博主总结看着玩的&#xff0c;不具有很高的参考价值&#xff0c;慎重 1、MyBatis是什么&#xff1f;MyBatis工作原理&#xff1f;MyBatis的使用场景有哪些&#xff1f; MyBatis是一款优秀的持久层框架&#xff0c;它是…...

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 网络通信&#xff1a; ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff08;Pod 内的容…...

「直播回放」使用 PLC + OPC + TDengine,快速搭建烟草生产监测系统

在烟草工业场景里&#xff0c;多数设备的自动控制都是通过 PLC 可编程逻辑控制器来实现的&#xff0c;PLC 再将采集的数据汇聚至 OPC 服务器。传统的 PI System、实时数据库、组态软件等与 OPC 相连&#xff0c;提供分析、可视化、报警等功能&#xff0c;这类系统存在一些问题&…...

私域流量搭建与运营,技巧全攻略!

2023年是比拼运营深度和服务效率的一年&#xff0c;用户对于体验的期望值将持续增长&#xff0c;企业需提供无缝的客户体验&#xff0c;以推动增长、保障收入、确保客户忠诚度。在疫情新常态下&#xff0c;企业已构建起APP、小程序等一系列线上触点矩阵&#xff0c;而各个触点之…...

AWS SAP-C02教程0--课程概述

SAP是亚马逊云的解决方案架构师专业级认证&#xff0c;关于本课程&#xff0c;我会简述已下3点&#xff1a; 在本课程中按照自己的分类讲述考试相关的AWS产品&#xff0c;特别会注明每个产品在考试中可能出现的考点会对一些解决方案做对比&#xff0c;通过一些对比给出不同场景…...

RFC使用与WebService

RFC连接 CSDN RFC中引用类型组 http://t.csdnimg.cn/wQWAYhttp://t.csdnimg.cn/wQWAY 远程目标系统维护SM59 这里的类型指的是目标系统的系统类型(目标系统即rfc函数存在的系统). 类型2&#xff08;R/2连接&#xff09;&#xff0c;只需给出主机名&#xff0c;所有通信信息…...

打造全球化电商平台,多语言商城系统助您开拓海外市场

全球化进程的加速&#xff0c;越来越多的企业开始将目光投向海外市场。然而&#xff0c;语言和文化差异成为了企业面临的一大挑战。为了帮助企业顺利拓展海外业务&#xff0c;多语言商城系统应运而生。作为一种功能强大的电子商务平台&#xff0c;多语言商城系统具备以下关键功…...

【滑动窗口】篮里到底能装 “几个水果” 呢?

Problem: 904. 水果成篮 文章目录 题目分析算法原理分析暴力枚举 哈希表滑动窗口优化数组再度优化 复杂度Code 题目分析 首先我们来分析一下本题的思路 首先我们通过题目的描述来理解一下其要表达的含义&#xff0c;题目给到我们一个fruit数组&#xff0c;里面存放的是每棵树上…...

newstarctf2022week2

Word-For-You(2 Gen) 和week1 的界面一样不过当时我写题的时候出了个小插曲 连接 MySQL 失败: Access denied for user rootlocalhost 这句话印在了背景&#xff0c;后来再进就没了&#xff0c;我猜测是报错注入 想办法传参 可以看到一个name2,试着传参 发现有回显三个字段…...

集群调度-01

目录 1、调度约束 2、Pod 是 Kubernetes 的基础单元&#xff0c;Pod 启动典型创建过程如下 2.1 工作机制 **** 2.2 调度过程 *** 2.3 Predicate 有一系列的常见的算法可以使用&#xff1a; ** 2.4 指定调度节点 1、调度约束 Kubernetes 是通过 List-Watch **…...

【软件工程】金管局计算机岗位——软件测试的分类(⭐⭐⭐⭐)

软件工程 软件测试的分类从是否关心软件内部结构和具体实现的角度划&#xff08;⭐⭐⭐⭐&#xff09;从是否执行代码角度划分&#xff08;⭐⭐&#xff09;从软件开发的过程按阶段划分&#xff08;⭐⭐⭐⭐&#xff09; 软件测试的分类 考点导读&#xff1a; 软件测试是软件工…...

Halcon WPF 开发学习笔记(1):Hello World小程序

文章目录 文章专栏视频链接Hello World训练图片训练目的 开始训练图像预处理导入图像三通道处理调用算子通道选取 滤波什么是好的滤波 增加对比度 区域选取阈值处理算子参数选择运行结果(红色为选择区域) 区域分割运行结果 特征筛选参数代码第二次&#xff0c;面积筛选 画选中十…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...