代码之家  ›  专栏  ›  技术社区  ›  Jeremy Coenen

管理多语言数据的良好用户界面设计是什么?

  •  2
  • Jeremy Coenen  · 技术社区  · 16 年前

    我将要创建一个多语言网站(ASP.NET),我想知道如何最好地处理大部分管理屏幕用户界面工作,最终用户将在其中维护需要使用多种语言的数据列表。有人知道我能看的任何好的示例应用程序吗?

    示例场景。我有一个屏幕,管理员将使用添加新产品。需要为系统中的每种语言存储标题和描述,并且需要这些标题和描述才能保存。理想情况下,语言的数量是动态/可配置的,在这种情况下,每次添加新语言时,用户界面都不需要更改。

    想法/建议/例子?

    5 回复  |  直到 16 年前
        1
  •  2
  •   Mike Hall    16 年前

    我们有一个老的MFC应用程序可以实现这一点。它有一个文本框,用于显示您在对话框当前语言(当前用户已设置并正在查看应用程序的语言)中管理的对象的名称。然后在下面有一个列表视图,您可以在其中为您支持的每种语言添加其余的名称。

    有一件事可能会改变您的方法,那就是如果您所支持的每种语言都需要一个名称。如果是这样,您可以在ListView中为每种语言预先填充一行。如果没有,那么他们可以根据需要添加带有名称的行。

        2
  •  4
  •   Rex M    16 年前

    我们以前的内部CMS使用了一个编辑器似乎喜欢的相当简单的模型:在每个输入字段上,一行很细的切换按钮(JS驱动)选择了当前正在编辑的语言:

    [EN-US] [FR-FR] [SW-SE] [RU-RU] [ZH-CN]
     _____________________________________
    | textbox                             |
    |_____________________________________|
    

    它们的行为类似于单选按钮,例如,选择一个按钮将取消选择所有其他按钮,文本框将立即翻转以反映该值。这些按钮很小,在输入字段开始变得笨拙之前,可以容纳16个以上的输入字段。

    我还建议在页面顶部设置一个“主控开关”,可以同时切换所有控件。

        3
  •  3
  •   y0mbo    16 年前

    为了跟进上面@mikehall的答案,我会做如下的素描:

    Localization Data Entry http://redbitbluebit.com/images/language.png

    当然,我的翻译是编出来的;-)

        4
  •  1
  •   Jeffrey Berthiaume    16 年前

    我用每个内容条目存储一个“区域设置”ID(例如,产品1、区域设置1;产品1、区域设置2等)

    区域设置与语言(英语、法语、日语…)和区域(美国、加拿大、日本…)关联。

    这样,您就可以将“US English”和“US Spanish”分别存储,例如墨西哥的西班牙语。

    本地化通常不仅基于语言,而且基于内容。例如,某些国家可能没有某些产品。

    在内容管理方面,我通常通过cookie设置区域设置(即用户可以选择“更改区域设置”,更改区域设置,然后继续编辑/创建内容)。我这样做的原因是,除了内容加载之外,您通常没有相同的内容输入人员输入多种语言(而那些输入内容的人必须手动切换,否则他们可能会困惑:“现在,我要用哪种语言再次工作?”)

    这些只是一些快速的提示——评论,我会根据我过去所做的添加建议(包括个人网站,以及像Blockbuster和Avery Dennison这样的公司)。

        5
  •  0
  •   Eric Nguyen    16 年前

    另一个建议是使用串行用户界面。在添加产品UI的情况下,您将拥有一个标题/描述字段列表,每个支持的语言都有一组。

    这可能看起来过于简单和浪费了屏幕房地产,但我认为有几个原因是必要的:

    1. 如果要保存每种语言都需要有效值,那么拥有一个动态UI(rex m建议的语言“单选按钮”)将很难向用户指示验证错误。
    2. 与最后一点相关,串行用户界面允许快速扫描语言用户界面。这不仅仅是为了确保填写了所有内容,而且还允许用户快速比较输入。添加产品示例本质上是一个用于输入简短翻译的UI,因此能够在相关语言之间进行比较非常有用。通过将类似的语言分组在一起,您可以使其更有用。

    串行接口可以通过一个循环来呈现,该循环迭代您当前支持的任何语言。