我们有大量的结构化文本(文档模板),我们希望将本地化为应用程序的一部分。这不是应该在数据库中的内容。
为实现这一目标,我们能想到的最简单的事情是使用从同一代码隐藏文件中定义的相同类型继承的本地化ASPX模板。
但是,我们希望将这些模板映射到相同的URI ,并根据当前文化选择要使用的模板。
http://example.com/Foo.aspx> FOO。 $ LOCALE 的.aspx
我们希望在没有重定向的情况下执行此操作,但使显式URI可用为NTH。
虽然有些人似乎重新发明模板语言并将其模板塞进资源文件中而不是由专用模板引擎处理,但我们真的很想利用ASPX模板引擎。
有没有办法以直截了当的方式做到这一点?
编辑:根据评论,这里有一个示例模板来说明:
WebForm1的-en.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE html>
<title>WebForm1 - English</title>
<div>Hello!</div>
<div><%: Foo %></div>
WebForm1的-fr.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE html>
<title>WebForm1 - Français</title>
<div>Bonjour!</div>
<div><%: Foo %></div>
WebForm1.aspx.cs中
namespace WebApplication1 {
public partial class WebForm1 : System.Web.UI.Page {
public int Foo { get; set; }
protected void Page_Load(object sender, System.EventArgs e) {
Foo = 42;
}
}
}
目标是以某种方式将/WebForm1.aspx
路由到/WebForm1-en.aspx
或/WebForm1-fr.aspx
,具体取决于当前的区域设置/文化(没有重定向)。
/WebForm1.aspx
可能是也可能不是虚拟的:如果它可以具体并用作后备模板,那么它确实是理想的。
此问题与 Multiple localized aspx layouts 相同,但没有答案提供有关如何实现此问题的提示,而不需要为每个区域设置单独的URI。
我不确定我是否做了正确的事情,在这里用更具体的术语重新提出这个问题 - 因为它已经很老了,我不认为编辑它会取得多大成就。无论如何,我会欢迎其他方法的建议。