![]() |
1
15
我认为这可以归结为4种选择:
我认为有一个主要的原因来避免1-你混淆了本地化和应用程序导航。 选项2最终为每个文本块提供了多个资源,但只要您有管理所有本地化的好方法,就不应该成为问题。不过,这对第三方翻译人员来说可能是一件痛苦的事情——你需要某种方式告诉他们上下文,或者你会得到一些非常奇怪的单词翻译。 选项3是我首选的解决方案。不过,您仍然会为您的翻译人员带来问题-大多数人不会理解文本中的标记/HTML/标记。我们已经做了一些HTML,所以3.3已经为我们工作了。 选项4可能值得考虑-为了使链接值得额外的工作和维护,您是否在嵌入链接方面获得了足够的收益?这是一个针对您的应用程序的重要问题: 如果整个句子都是链接(而不仅仅是主动动词,这是链接的最佳实践),那么你真的失去了足够多的东西,让选项2或3值得付出额外的努力吗? 我认为这可能就是为什么没有更标准化的方法来做这件事的原因,因为对于大多数项目(可能是10个选项中的9个),选项4就足够了,所以这只会在一些特殊情况下成为一个问题。我们有一个复杂的应用程序,大约11000条本地化文本,绝大多数情况下使用4条,只有4到5个地方需要使用3.3
|
![]() |
2
4
我目前使用的是以下设置: 我有一个包含主要文本的全局资源文件,名为Strings.resx(Strings.NL-NL.resx等)。在这旁边,我有一个全局文件,其中包含ActionLink的所有本地化。即:ActionLinks.resx和locals。 现在我要做的是,在我的Strings.resx中,我有如下内容:
本地语言Strings.NL-NL.resx
现在的诀窍是执行以下操作:
如果在链接中需要多个变量,可以为其提供一个对象数组
keynaming是我自己的约定,用于理解在何处使用主文本(什么页面)。因为我的主要文本非常具体。当然,钥匙可以自己做。 有关我如何做的更多信息,请查看我的 回答 关于我自己的问题: here 编辑
|
![]() |
3
2
我必须同意其他答案-在2中分开。
这是中立的&如果这是语言所需要的,译者可以将整个句子作为链接。 如果您发现自己需要多次链接到同一个页面,那么可以使用一些标记。比如:
|
![]() |
4
2
我知道这是个老问题,但我想这可能会有帮助。 在ASP.net Core 2.2中,您可以拥有一个包含以下内容的资源文件:
最后在HTML中:
不需要编码或解码任何东西,只需向定位器提供参数。 |
![]() |
5
1
我建议将资源分成两个值,如下所示
然后将它们结合起来构建链接和消息。{0}被需要的链接/actionlink/替换。 |
![]() |
6
1
如果在字符串中找到#n#,则知道它所包围的字符串应该是指向查找文件(db或其他文件)中由索引n指定的url的链接。 |
![]() |
devBem · 反应来自<FormattedMessage> 7 年前 |
![]() |
beechy · 两级国际化;资源绑定 7 年前 |
![]() |
lpt · 外语中的词云或可视化 7 年前 |
![]() |
SeaFuzz · 如何将国际化对象传递给Flutter中的子小部件 7 年前 |
![]() |
lio · 具有三个表和一个动态列的Mysql查询(i18n) 7 年前 |