有没有办法翻译 resx 文件以外的网站?
Is there a way to translate web sites other than resx files?
我一直在阅读如何使用本地或全局 resx 文件翻译网站。虽然这通常对按钮和小段文本非常有用,但当我面对大块文本的翻译时,我觉得不得不在 resx 文件中存储长字符串,并在小键中间隔文本,这对我来说似乎有点奇怪让我无法重新阅读刚刚写的内容。
例如:
<p> <%$ Resources:MyResources, Welcome %> <%$ Resources:MyResources, to %> <%$ Resources:MyResources, my %> <%$ Resources:MyResources, wonderful %> <%$ Resources:MyResources, Website %> , <%$ Resources:MyResources, Where %> <%$ Resources:MyResources, you %> <%$ Resources:MyResources, can %> <%$ Resources:MyResources, Find %> <%$ Resources:MyResources, amazing %> <%$ Resources:MyResources, information %> <%$ Resources:MyResources, about %> <%$ Resources:MyResources, this %><%$ Resources:MyResources, and %><%$ Resources:MyResources, that %> <p>
或者:
<%$ Resources:MyResources, WelcomeToMyWonderfulWebsiteWhereYouCanFindAmazingInformationAboutThisAndThat %>
有没有更好的方法来处理多语言支持?
谢谢,
(忘记补充一点,我使用的是 VS2013,这是针对带有 aspx 和 ascx 的 C# WebForms 站点)
您可以直接从 Resources
渲染,您不需要使用 <%$
语法。您可以使用 <%=
(或自动编码 <%:
版本):
在你的情况下,我的项目中会有一个 Resources.resx
文件,其中包含一个带有快捷键的 Welcome Blurb 条目:
Key: WelcomeMessage
Value (in `Resources.resx`): "Welcome to my website where..."
Value (in `Resources.de-DE.resx`): "Willkommen auf meiner Website..."
并且在我的 .aspx
文件中使用 <%:
<p><%: Resources.WelcomeMessage %>
或者如果你想渲染原始 HTML:
使用 <%=
<p><%= Resources.WelcomeMessage %>
Razor 语法:
<p>@Resources.WelcomeMessage</p>
或为了可读性:
<p>@( Resources.WelcomeMessage )</p>
Resources
是一个 static class
存在并根据您当前的线程文化值自动检索正确的资源值(因此请确保您有正确更改线程文化的代码),返回您的翻译不适用时的回退值。
您可以通过将鼠标悬停在每个 属性 值上来查看 Visual Studio 中的原始值,因为 Resx 设计器生成的 XML 注释包括前 100 个左右的字符资源字符串。
我一直在阅读如何使用本地或全局 resx 文件翻译网站。虽然这通常对按钮和小段文本非常有用,但当我面对大块文本的翻译时,我觉得不得不在 resx 文件中存储长字符串,并在小键中间隔文本,这对我来说似乎有点奇怪让我无法重新阅读刚刚写的内容。
例如:
<p> <%$ Resources:MyResources, Welcome %> <%$ Resources:MyResources, to %> <%$ Resources:MyResources, my %> <%$ Resources:MyResources, wonderful %> <%$ Resources:MyResources, Website %> , <%$ Resources:MyResources, Where %> <%$ Resources:MyResources, you %> <%$ Resources:MyResources, can %> <%$ Resources:MyResources, Find %> <%$ Resources:MyResources, amazing %> <%$ Resources:MyResources, information %> <%$ Resources:MyResources, about %> <%$ Resources:MyResources, this %><%$ Resources:MyResources, and %><%$ Resources:MyResources, that %> <p>
或者:
<%$ Resources:MyResources, WelcomeToMyWonderfulWebsiteWhereYouCanFindAmazingInformationAboutThisAndThat %>
有没有更好的方法来处理多语言支持? 谢谢,
(忘记补充一点,我使用的是 VS2013,这是针对带有 aspx 和 ascx 的 C# WebForms 站点)
您可以直接从 Resources
渲染,您不需要使用 <%$
语法。您可以使用 <%=
(或自动编码 <%:
版本):
在你的情况下,我的项目中会有一个 Resources.resx
文件,其中包含一个带有快捷键的 Welcome Blurb 条目:
Key: WelcomeMessage
Value (in `Resources.resx`): "Welcome to my website where..."
Value (in `Resources.de-DE.resx`): "Willkommen auf meiner Website..."
并且在我的 .aspx
文件中使用 <%:
<p><%: Resources.WelcomeMessage %>
或者如果你想渲染原始 HTML:
使用<%=
<p><%= Resources.WelcomeMessage %>
Razor 语法:
<p>@Resources.WelcomeMessage</p>
或为了可读性:
<p>@( Resources.WelcomeMessage )</p>
Resources
是一个 static class
存在并根据您当前的线程文化值自动检索正确的资源值(因此请确保您有正确更改线程文化的代码),返回您的翻译不适用时的回退值。
您可以通过将鼠标悬停在每个 属性 值上来查看 Visual Studio 中的原始值,因为 Resx 设计器生成的 XML 注释包括前 100 个左右的字符资源字符串。