当前位置: 首页 > 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中建立一个系统,使您的游戏能够以多种语言呈现文本和其他资源,提高了全球玩家的可访问性和用户体验。

http://www.lryc.cn/news/220279.html

相关文章:

  • 6张图让你了解openRA 下载及编译
  • 华为防火墙 配置 SSLVPN
  • Android Studio(数据存储)
  • 人,要懂得享受孤独
  • Spring Boot + EasyUI Datebox和Datetimebox样例
  • web前端JS基础------制作一个获取验证码
  • MyBatis面经
  • SpringBoot基础(六)-- 辅助功能之一 -- 内嵌tomcat
  • K8s:部署 CNI 网络组件+k8s 多master集群部署+负载均衡及Dashboard k8s仪表盘图像化展示管理
  • 「直播回放」使用 PLC + OPC + TDengine,快速搭建烟草生产监测系统
  • 私域流量搭建与运营,技巧全攻略!
  • AWS SAP-C02教程0--课程概述
  • RFC使用与WebService
  • 打造全球化电商平台,多语言商城系统助您开拓海外市场
  • 【滑动窗口】篮里到底能装 “几个水果” 呢?
  • newstarctf2022week2
  • 集群调度-01
  • 【软件工程】金管局计算机岗位——软件测试的分类(⭐⭐⭐⭐)
  • Halcon WPF 开发学习笔记(1):Hello World小程序
  • pix2tex - LaTeX OCR 安装使用记录
  • 前端框架Vue学习 ——(四)Axios
  • 将json数据导入到ES集群——解决方案对比填坑日记
  • C语言----------#pragma预处理分析
  • 数据库中的时间django转换成None
  • 八种流行的网络协议
  • Qwt QwtKnob绘制旋钮
  • docker部署elk
  • 护网蓝队初级面试题摘录(下)
  • 通过51单片机控制SG90舵机按角度正反转转动
  • uniapp写一个计算器用于记账(微信小程序,APP)