【发布时间】:2020-04-20 03:55:49
【问题描述】:
我正在翻译一个 Unity 游戏,有些台词像
在 XXXX 处解锁
其中“XXXX”在运行时被任意子字符串替换。很容易替换通配符,但要翻译引号,我不能简单地连接 a + b,因为某些语言将在字符串之前或内部具有值。我想我需要有效地取消替换它,即隔离并保留子字符串并翻译它周围的任何内容。
问题是,虽然我可以轻松完成第二部分,但我想不出第一部分的任何途径。我知道要获取我要查找的字符索引,但是该值占用任意数量的字符,并且我不能使用空格,因为某些语言不使用它。不能使用数字检测,因为并非所有值都是数字。我尝试询问 Google,但我无法将“查找替换通配符的内容”翻译成关键字可搜索的内容。
简而言之,我正在寻找一种方法来找到“XXXX”(简单的部分),然后在字符串中找到替换它的任何内容(不太容易的部分)。
提前致谢。
【问题讨论】:
-
如果您逐字翻译整个字符串并确保翻译中也包含 XXXX 会怎样?然后用翻译代替原文再做替换?翻译字符串 after 它已经完成了它的替换将要困难得多。
-
请发布您的代码,这将为我们提供一个开始的地方......
-
这是我一开始尝试做的,但自从 Unity 转向 Unity,我发现我必须翻译文本,因为它变得可见。到目前为止还没有任何代码,因为我无法粘贴任何东西。
-
XXXX 肯定是变量??你能不做 $"Unlock at {myvar}" 其中 myvar 是翻译的细节吗?
-
就是这样,但我的翻译方法只将完成的文本作为输入。我确实想我可以制作另一种方法,将值作为辅助参数,所以我会尝试。
标签: c# string unity3d translation string-concatenation