2

我正在开发一个多语言 Web 应用程序。我想知道如何设计用户可以本地化各种语言数据的最佳用户界面?例如,在制作每个语言的标题都不同的页面时,我是否为每个语言都放置了一个文本框?这不是一个合适的方法(如果是 10 个语言,用户有 10 个文本框!!!太傻了)您对此有何想法?

编辑:我的系统中的全球化没有问题。事实上,我正在为我的界面设计寻找一种好方法,用户可以用各种语言将他的数据输入到我的表单中。

提前致谢

4

8 回答 8

1

你可以有 3 个文本框,这很好……达到 10 个,它开始变得有点疯狂。除此之外,它开始看起来很糟糕。

也许您最多可以说 5 个文本框...但是如果超过 5 个(因为用户希望本地化超过 5 个位置),它会放置一个带有下拉列表的文本框,并且下拉列表将包含当前语言。

文本框将自动填充下拉菜单中所选语言的当前值。应该在 asp.net 中运行良好,并且可以很容易地在客户端或服务器端回发,所以你不需要为不运行 javascript 的人做任何疯狂的事情。

于 2009-10-30T13:09:07.257 回答
1

只有一个文本字段和一个包含语言的下拉菜单怎么样。选择语言并填写文本字段后,该字段将被提交,所选语言将从下拉列表中消失。然后输入的值和语言出现在下拉列表和文本框下方,并带有编辑/删除它的方法。通过这种方式,用户始终可以清楚地了解哪些语言已经涵盖以及分配了哪些值。此外,如果不是所有 10 种语言都必须强制填写,如果用户只知道英语和法语,这是一个更好的方法。

希望您知道我的意思,否则我将不得不创建一个示例屏幕截图:-)

于 2009-10-30T12:00:37.303 回答
0

Google Web Toolkit (GWT)演示显示了相同的页面,其中提供了英文、法文、阿拉伯文和中文版本。

GWT 文档对国际化进行了彻底的讨论。你可以模仿他们的实现。

  • 常量:用于本地化类型常量值
  • 消息:对于本地化需要参数的消息很有用
  • ConstantsWithLookup:与 Constants 类似,但对于高度数据驱动的应用程序具有额外的查找灵活性
  • 字典:在将 GWT 模块添加到现有的本地化网页时很有用

请记住,如果您的表单使用它们,日期和时间在不同的语言环境中的表示方式不同。

W3C 还讨论了 HTML 内容中的国际化最佳实践

于 2009-10-30T12:30:24.777 回答
0

通常,浏览网站的用户会偏好指定整个网站的语言。我认为打破这种模式会令人困惑。

因此,在介绍页面或用户偏好页面中,允许用户选择一种语言;然后,在其他页面上,显示一组一致的控件,以便能够编辑每个页面上的内容。

于 2009-10-30T12:44:37.337 回答
0

你在开发中使用什么语言?如果这类似于 PHP,那么您绝对应该使用模板并将文本字符串从每种语言的配置文件中加载到其中。例如,在 Smarty 中,我为此使用了配置文件。

错误消息或类似内容的文本字符串可以放入 .ini 之类的文件中并从那里加载。

于 2009-10-30T12:06:20.940 回答
0

你有一个文本框。在加载时,您根据语言填充文本框。

内容将从某种资源文件中填充。如果没有太多文本,它甚至可以放在您的配置文件中。

请注意以下事项:

  1. 不同的内容长度取决于语言。
  2. 从右到左的字母搞砸了你的对齐方式

这是一个使用 NUNIT 或类似的经典项目来证明添加新翻译后一切正常!

于 2009-10-30T12:04:21.183 回答
0

您是否正在制作一个允许用户更改应用程序其他页面中使用的文本的管理页面?

如果是这样,您可以在Zeta Resource Editor中使用网格:

缩略图 http://img202.imageshack.us/img202/7813/zetaresourceeditor02.th.png

或者您可以像在nopCommerce中一样制作每个语言的列表:

缩略图 http://img249.imageshack.us/img249/9079/nopcommerce.th.png

于 2009-10-30T13:33:56.347 回答
0

您可以使用 javascipts 作为您的语言的资源文件,例如。language_arabic.js , language_english .js,etc.So 当用户想要查看他的偏好语言时,他/她已经从下拉列表中选择了可用的语言。关于这一点,用户必须从他/她的计算机更改语言设置。这是我在 GIS 项目中为阿拉伯客户定制 Geocortex IMF( http://demos.geocortex.net/imf-5.2.2/sites/demo_geocortex/jsp/launch.jsp )站点时所做的。

于 2010-03-26T01:13:53.807 回答