2010-08-23 58 views
0

即多语言消息,屏幕标题,货币/日期格式等。本地化应用程序的最佳编程设计是什么?

+1

平台? OS?语言? – John 2010-08-23 18:56:58

+0

答案取决于您的UI的实现平台(.net vs java vs delphi vs等)中的_completely_。准确,答案会更好。 – 2010-08-23 18:57:58

+0

@John:any!..我想知道,设计明智的,如果最好有消息,标题,环境变量等单独的表,并根据语言列的值进行表查找。 – 2010-08-23 22:55:40

回答

2

我使用nopCommerce其中有一个非常简单的配置表,它是使用语言/名称/值元这里的字典是一个例子:

英语Account.AddBillingAddress添加帐单地址 英语Account.AddShippingAddress添加送货地址
英文帐号.AdminApprovalRequired您的帐号将在管理员批准后激活。
英语Account.Administration管理

所有存储在一个表中,以便而不是你会caption.myfirstpicure

的文本,然后通过从获取值名称的检索功能的标题表字典在内存中加载。我认为它很简单,甚至优雅

1

这取决于应用程序。

如果是单用户桌面应用程序,您可能希望尽可能使用区域感知功能,并使用gettext或其他常用系统进行翻译。然后,您只在启动时初始化它们。

当它是多用户应用程序(如Web应用程序)时,事情变得非常复杂 - 您需要为每个请求或用户会话支持不同的语言环境/语言,因此您可能需要在请求对象中传递该信息。

+0

是的,单用户应用程序,目前用西班牙语。我应该为消息,标题,GLS环境变量创建单独的表并根据语言ID列来查找这些表吗? – 2010-08-23 22:58:13

+0

如果只是翻译,然后继续使用gettext。在开头的某处初始化它,定义'_'函数/宏,并用它来标记所有需要转换的字符串。确保将值放在它们之外,如下所示: printf(_(“Hello%s!”),world); Gettext提供了用于自动提取翻译字符串并将其编译为'.mo'文件的工具,您可以随应用程序一起提供这些文件。 – 2010-08-23 23:22:30

相关问题