C# ASP.NET Core 3.1,i18n-用户内容本地化
我完全没有设计多语言应用程序的经验,我想我应该开始一个学习项目。我正在寻找如何正确实施的最佳实践。当然,我有一个想法,我会怎么做 让我们想象一个非常简单的CMS系统,用户可以创建一个网站并向其中添加页面。因此,只有一种语言支持,一个非常简单的数据库将如下所示:C# ASP.NET Core 3.1,i18n-用户内容本地化,c#,asp.net-core,internationalization,C#,Asp.net Core,Internationalization,我完全没有设计多语言应用程序的经验,我想我应该开始一个学习项目。我正在寻找如何正确实施的最佳实践。当然,我有一个想法,我会怎么做 让我们想象一个非常简单的CMS系统,用户可以创建一个网站并向其中添加页面。因此,只有一种语言支持,一个非常简单的数据库将如下所示: | PageID | Language | Title | Content | |--------|----------|----------|-------------------------| |
| PageID | Language | Title | Content |
|--------|----------|----------|-------------------------|
| 1 | hu-HU | Cím | Ide jön a tartalom |
| 1 | en-US | Title | Here goes the content |
| 2 | hu-HU | Rólunk | A mi célunk az, hogy... |
| 2 | en-US | About us | Our goal is... |
- 页面ID(int),主键-页面的唯一ID
- 标题(文本)-页面标题
- 内容(文本)-页面内容
- 语言(文本)-页面的语言,表示为IETF语言标签(如hu hu,en US)
| PageID | Language | Title | Content |
|--------|----------|----------|-------------------------|
| 1 | hu-HU | Cím | Ide jön a tartalom |
| 1 | en-US | Title | Here goes the content |
| 2 | hu-HU | Rólunk | A mi célunk az, hogy... |
| 2 | en-US | About us | Our goal is... |
我想使用Accept Language标头来确定我需要用哪种语言将内容发送到客户端。这是一个非常简单的值,比如
Accept-Language: hu-HU
因为Accept语言是一个优先级列表,所以我将取两个集合(标题列表和我的系统支持的语言)的交集,并从中取优先级最高的语言——假设我们总是有一个非空的交集。但在这里它变得非常困难(至少对我来说)