我知道如何翻译文本等等。但是我不知道如何翻译来自脚本(textMeshPro + value)的文本,就像我的这个脚本。我使用的是Unity自己的本地化,这对我来说很容易使用。
翻译如下:硬币和死亡计数+值(数据.硬币)
`
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
public class SaveSlot : MonoBehaviour
{
[Header("Profile")]
[SerializeField] private string profileId = "";
[Header("Content")]
[SerializeField] private GameObject noDataContent;
[SerializeField] private GameObject hasDataContent;
[SerializeField] private TextMeshProUGUI CoinText;
[SerializeField] private TextMeshProUGUI deathCountText;
[Header("Clear Data Button")]
[SerializeField] private Button clearButton;
public bool hasData { get; private set; } = false;
private Button saveSlotButton;
private void Awake()
{
saveSlotButton = this.GetComponent<Button>();
}
public void SetData(GameData data)
{
// there's no data for this profileId
if (data == null)
{
hasData = false;
noDataContent.SetActive(true);
hasDataContent.SetActive(false);
clearButton.gameObject.SetActive(false);
}
// there is data for this profileId
else
{
hasData = true;
noDataContent.SetActive(false);
hasDataContent.SetActive(true);
clearButton.gameObject.SetActive(true);
CoinText.text = "Coins: " + data.coin;
deathCountText.text = "DEATH COUNT: " + data.deathCount;
}
}
public string GetProfileId()
{
return this.profileId;
}
public void SetInteractable(bool interactable)
{
saveSlotButton.interactable = interactable;
clearButton.interactable = interactable;
}
}
`
翻译字符串我已经知道或多或少,但没有TextMeshPro +的值。我怎么翻译?
1条答案
按热度按时间ycggw6v21#
如果您已经设置了Unity Localization软件包,您应该已经使用您的翻译创建了本地化表。
要获取所需的翻译,可以使用带有以下参数的异步
GetLocalizedString(string tableName, string key)
方法:tableName
-用于搜索原始字符串的表。key
-从KeyDatabase取得的字串密钥,应该用来寻找翻译的文字。对于“Coins”字符串,您可以使用
GetLocalizedString(string tableName, string key, int puralValue)
将复数类型包括在extend the parameters中或者,从2020.3+开始,您可以直接使用本地化场景控件轻松地本地化TextMeshPro组件。或者,如果您使用的是旧版本,则可以通过Localize String Event