gpt4 book ai didi

asp.net - ASP.NET 多语言策略建议

转载 作者:行者123 更新时间:2023-12-02 10:36:15 33 4
gpt4 key购买 nike

sibling 们大家好,

我想知道是否有人会分享他们认为使用 .NET 启用动态多语言系统的最佳策略的经验

我有一位客户希望拥有一个半 MRP 系统来存储所有产品的 Material 和规范。这些信息稍后将用于其他模块,例如发票、采购、营销(提取信息用于打印目的)等等。

问题是,他希望所有内容都以多种语言存储。他也无法确定语言的数量。因此,语言的数量会随着时间的推移而增长。

所以我想我要问的是,设置一个支持动态语言的网站的最佳策略是什么,该网站包含字段名称(例如,名称)及其数据(例如,Lasker)。

提前非常感谢,拉斯克

最佳答案

有多种选项可供选择。

<小时/>

首先,用户界面的标签和元素

这里通常有两种可能的选择,您可以使用资源 (*.resx) 或在数据库级别推出您自己的多语言支持。它们都有各自的优点和缺点。

资源:

[+] 简单的解决方案,一切都准备就绪,可以立即使用。您可以在名为 Orders.en.resx、Orders.fr.resx 等的一系列文件中定义文本资源。在代码中,您可以将这些字符串引用为 Resources.Orders.Title >。因此,这是 UI 的静态元素的简单解决方案。

[+] 资源文件基本上是简单的 XML 文档,可以快速读取和解析,因此没有太多开销或性能损失。

[-] 如果您需要更改某些内容,则必须重新编译项目。因此,这意味着您需要为任何可能考虑更新文本的人安装开发环境 (VS)。然后,您还需要再次部署重新编译的版本。这同样适用于将新语言引入系统。

[-] 不适用于非技术性内容,因为需要专家的参与。

自定义数据库驱动的多语言解决方案:

[-]需要一些努力和时间来设计和实现

[-] 每个 UI 文本都将从数据库中提取,这意味着数据库的性能下降和额外负载

[+] 将允许动态即时更改文本以及删除/添加新语言。无需重新编译或部署。

[+] 现在是一个巨大的优势。由于处理文本不需要任何技术技能,因此您可以将此工作外包到任何地点。您可以为专业翻译服务店实现网络界面和更改跟踪系统,以在发现新文本后快速纠正您的文本并翻译成您需要的任何语言。

<小时/>

现在到动态文本(实际内容)。

在这里,您可以将每个文本拆分为每种语言的额外记录存储在某个表中,也可以将所有翻译合并到一个实体中。

多条记录:

想象一下以下数据库模型:

[Language]
-----------------
ID Description

[Translation]
------------------
ID FallbackText

[TranslationText]
--------------------------------
ID TRID LanguageID Text

[Order]
------------------------------------------------
ID TitleTRID DescriptionTRID RemarkTRID

在数据库中任何需要存储多语言文本的地方,您都将引用一些 TranslationID。然后,根据事件语言,您的系统将寻找适当的翻译,如果找不到,则返回默认文本(通常由开发人员设置)。

单个实体:

通过使用某种区分特定翻译的方法,可以将给定文本的所有翻译保留在一个字符串中。 XML 在这里自然发挥作用。

<translation>
<en>Order</en>
<de>Bestellung</de>
<fr>Commande</fr>
</translation>

在这里,您的数据库模型会更简单,但您需要解析每个文本以提取所需的版本。

<小时/>

这些是广泛使用的策略。哪一种最适合您取决于您​​的需求和预期的使用场景。

希望有帮助。 :)

关于asp.net - ASP.NET 多语言策略建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1361311/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com