2010-08-23 55 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

相關問題