用于本地化的项目设置

时间:2009-10-09 03:37:38

标签: c# .net localization

我需要开发英语和西班牙语软件,因此我们所有的应用程序都设置为本地化。我们的基本解决方案/项目结构是有一个中心项目,名为 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}。”,并让翻译人员整理托盘/插槽位,或者我更好地使用词汇表方法?

感谢。

1 个答案:

答案 0 :(得分:3)

是;不要使用这样的方法,让翻译完全确定每个案例的每个句子;处理它会导致问题。