我需要开发英语和西班牙语软件,因此我们所有的应用程序都设置为本地化。我们的基本解决方案/项目结构是有一个中心项目,名为 ProjectName .Core或 ProjectName 。本地化,并且在此项目中有以下文件。
Strings.resx - 包含所有可本地化的(英文)字符串,消息,错误等。
例如
ErrorMovePallet =“无法将托盘”{0}“移动到插槽{1}。”
Glossary.resx - 包含系统的常用术语。
例如
PalletTerm =“托盘”
PalletCapitalized =“托盘”
SlotTerm =“slot”
SlotCapitalized =“Slot”
鉴于上面的示例文本,我已经在运行时将词汇表术语替换为字符串。因此,我没有“无法移动托盘”{0}“到插槽{1}。”,我有“无法移动{1}”{4}“到{3} {5}”,代码类似......
public static string ErrorMovePallet(string palletId, int slotId) { return string.Format(Strings.ErrorMovePallet, Glossary.PalletCapitalized, Glossary.PalletTerm, Glossary.SlotCapitalized, Glossary.SlotTerm, palletId, slotId); }
这在当时是个好主意,但现在我开始担心这种方法可能会导致问题,因为其他语言确实适合这种结构,特别是涉及复数时。
我想听听其他人在做什么,特别是那些为不同语言发货的产品的工作或工作。
我是否会更好地使用基本字符串,例如“无法移动托盘”{0}“到插槽{1}。”,并让翻译人员整理托盘/插槽位,或者我更好地使用词汇表方法?
感谢。
答案 0 :(得分:3)
是;不要使用这样的方法,让翻译完全确定每个案例的每个句子;处理它会导致问题。