gpt4 book ai didi

asp.net-mvc - 如何在本地化文本中嵌入链接

转载 作者:行者123 更新时间:2023-12-02 07:55:32 24 4
gpt4 key购买 nike

我正在国际化 ASP.NET MVC 应用程序,但我不确定如何处理链接文本。以下面为例:

  • 英语:“请 login 继续。”
  • 葡萄牙语:“Entre por favorite para Continuar。”

由于“登录”是超链接的,所以我必须让译者在文本本地化时标记出相应的单词或短语应该被超链接,例如进入。

最好的策略解决方案是什么?

是否有一种标准方法来标记特殊文本(以及使用翻译结果的标准方法)...或者我是否走上了错误的道路,期望我的内容和演示信息如此紧密地耦合(尽管我可以在这种情况下想不出任何方法来消除耦合)。

当前实现:

我目前正在将本地资源文件用于 View 和 an extension method on HtmlHelper获取本地化的刺痛:

<%= Html.Resource("LoginMessage")%>

更新:请参阅Keith's answer

我发现它最有帮助,但是系统auto selected另一个。

最佳答案

我认为这可以归结为 4 个选择:

  1. 在您的本地化版本中添加一个链接:“请登录以继续”
  2. 多种本地化 - 任一:
    1. “请{0}继续”并“登录”,或者
    2. “请”、“登录”和“继续”
  3. 本地化中的标记,例如:
    1. “请{0}登录{1}以继续”
    2. “请{start-login}登录{end-login}继续”
    3. “请登录继续”
  4. 只是不支持它 - 将整个句子作为链接

我认为避免 1 的一个主要原因是混淆了本地化和应用程序导航。

选项 2 最终会为每个文本 block 提供多个资源,但只要您有良好的方法来管理所有本地化,那么这就不成问题。不过,这对于第三方翻译人员来说可能会很痛苦 - 您需要某种方式告诉他们上下文,否则您会得到一些单个单词的非常奇怪的翻译。

选项 3 是我的首选解决方案。不过,您仍然会给翻译人员带来问题 - 大多数人不会理解文本中的标记/HTML/标记。我们已经做了一些 HTML,所以 3.3 已经为我们工作了。

选项 4 可能值得考虑 - 通过嵌入链接您是否获得足够的 yield 以使其值得额外的工作和维护?这是一个特定于您的应用程序的重要问题:如果整个句子是链接(而不仅仅是主动动词 - 这是链接最佳实践),您真的会失去足够多的信息以使选项 2 或 3 值得付出额外的努力吗?

我认为这可能就是为什么没有更标准化的方法来执行此操作,因为对于大多数项目(可能十分之九)选项 4 就足够了,因此这只会在某些特殊情况下成为问题。我们有一个复杂的应用程序,包含大约 11,000 条本地化文本,绝大多数时间都使用 4,只有 4 或 5 个地方必须使用 3.3

我们的技术实现与您的类似:

<%= Html.Localise("Controller/Action/KeyOfTextOnPage") %>

对于链接,我们有一个特定的助手:

<%= Html.LocaliseLink("Controller/Action/KeyOfTextOnPage", "~/link.aspx") %>
<%= Html.LocaliseAction("Controller/Action/KeyOfTextOnPage", "action", "controller") %>

关于asp.net-mvc - 如何在本地化文本中嵌入链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1746693/

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