代码之家  ›  专栏  ›  技术社区  ›  Dead account

多个本地化的ASPX布局

  •  2
  • Dead account  · 技术社区  · 16 年前

    我要本地化应用程序,当前使用 App_LocalResource 用于语言更改的resx文件。但是,我想根据区域设置更改ASPX页面上控件的布局。我知道可以从resx文件设置可见。

    例如,我的默认值(en-us)可能

     "firstname" : [textbox]  
    "surname"   : [textbox]
    

    我想在哪里停止订单

     "surname"   : [textbox]
    "firstname" : [textbox]
    

    ASPX页面将使用相同的代码隐藏。

    我想我想要的是拥有的东西;

    • 阿斯克斯
    • 默认.de-de.aspx
    • Abx.CS

    其中default.de-de.aspx包含与default.aspx相同的所有控件等,甚至具有相同的指令;

     <%@ Page CodeFile="Default.aspx.cs" Inherits="MyNamespace.Default" %>
    

    然后.NET框架将选择此布局,而不是默认的.aspx布局。

    4 回复  |  直到 16 年前
        1
  •  0
  •   Jason Coyne    16 年前

    我认为最好的处理方法是通过CSS。

    您可以轻松地应用不同的样式表,它可以完全改变网站的布局,从而移动所有控件。此解决方案还允许您轻松地为移动浏览器或打印或任何其他原因进行交替渲染,并且非常通用。

    如其他S所述,您显然也会有其他本地化问题,如翻译或日期/货币格式。但是你必须通过其他方法来解决这些问题。

    以下是同一个网站的一些例子,100%相同的HTML,其中只有CSS发生了变化,呈现方式完全不同。

    http://www.csszengarden.com/?cssfile=/212/212.css&page=0

    http://www.csszengarden.com/?cssfile=/211/211.css&page=0

    假设您的简单情况下只有两个控件要翻转:

    <div>
    <div class=class1>Control1</div>
    <div class=class2>Control2</div>
    
    </div>
    

    然后根据位置,在样式表中使用浮动或绝对定位(在父容器中)来重新定位两个div。100%相同的HTML,有两种不同的布局?

    阿斯克斯

    <link rel="stylesheet" id="Stylesheet1" type="text/css" runat="server" />
    

    ASPX.CS

    Stylesheet1.Attributes("href") = ResolveUrl("~\styles\StyleSheet.css")
    
        2
  •  2
  •   Chris Shaffer    16 年前

    我已经在一个项目上工作了相当长的一段时间,这个项目基本上就是你想要做的事情;我们按文件夹来划分它是唯一的区别,所以/en-us/default.aspx和/de-de/default.aspx。页面为实现功能而共享一个公共代码。它工作得很好,有几个问题:

    • 确保文件总是一起更新-这是必要的,因为后面有共享代码。如果更新代码隐藏,那么所有引用的控件最好都存在于页面上。
    • 小心您的控件引用-我们遇到了一些问题,其中控件是从错误的文件夹引用的,从而导致一些有趣的(有时很难诊断)问题。

    我个人建议将其拆分为文件夹,而不是使用文件命名结构,因为它还非常容易让您提供特定于区域设置的图像和CSS。此外,它还允许您通过添加适当的代码来覆盖页面的常见行为(您也可以这样做,但是由于文件名中的句点(例如applications.default_de_de,而不是applications.en_s.default))。

        3
  •  1
  •   devstuff    16 年前

    在类似的情况下,我使用可本地化的“renderder”属性创建了一个自定义服务器控件。它还公开姓氏和名字作为属性。

    对于详细的地址字段,有时也需要类似的场景。

        4
  •  0
  •   salgo60    16 年前

    我应该投票支持构建一个控件,它是您显示日期和时间的方式,这在很大程度上取决于本地化

    推荐文章