Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么是允许以多种语言显示的好界面_Php_User Interface_Localization_Internationalization - Fatal编程技术网

Php 什么是允许以多种语言显示的好界面

Php 什么是允许以多种语言显示的好界面,php,user-interface,localization,internationalization,Php,User Interface,Localization,Internationalization,我正在开发一个网站,理论上应该有所有语言版本。界面和内容非常简单,所以这不是问题。问题是,通常使用什么国际化接口来提示用户多语言的可用性 最明显的是一个下拉列表。有没有其他好的例子来说明这是如何优雅地完成的 作为一个附带问题:是否有专门针对i18n和本地化主题的书籍或材料,最好是针对PHP的,但任何关于该主题的好资源都会有所帮助 建议: 链接的旗帜图标 下拉列表(在选择时更新) UPS.com并不可怕 如果您使用内容交付网络(如Akamai),他们能够比您更好地告知用户的位置,并且您可以将网站

我正在开发一个网站,理论上应该有所有语言版本。界面和内容非常简单,所以这不是问题。问题是,通常使用什么国际化接口来提示用户多语言的可用性

最明显的是一个下拉列表。有没有其他好的例子来说明这是如何优雅地完成的

作为一个附带问题:是否有专门针对i18n和本地化主题的书籍或材料,最好是针对PHP的,但任何关于该主题的好资源都会有所帮助

建议:

  • 链接的旗帜图标
  • 下拉列表(在选择时更新)
    • UPS.com并不可怕

      如果您使用内容交付网络(如Akamai),他们能够比您更好地告知用户的位置,并且您可以将网站默认为该区域设置。这将给你一个很好的机会,击中正确的语言。这是一种艺术形式,基于你的目标受众

      像索尼或微软这样的地方有一个目标受众,可以相当肯定的是,从特定国家访问的人通过支持文档(或本地化搜索)找到了该URL,因此没有太多的重点放在允许用户更改他们的选择上

      另一方面,UPS在全球范围内提供服务,运送到一个国家意味着业务将更加微妙,沟通语言基于运送和接收包裹的人员

      一个很好的平衡点是一个全球性的社交网站,比如Netlog(),在那里,他们使用对用户位置的智能过滤和一种简单的更改方式(通过底部的超链接)的组合

      至于书籍,从教你基础知识的书籍开始。我的技能集不包含深入的PHP,所以我甚至不打算尝试回答这一部分


      快乐编码

      我发现一个简单的下拉列表,包含两个字符的ISO-639代码和该语言中的语言名称(即法语的法语名称)就足够了。您可以尝试使用建议的菜单来帮助标记菜单,但这似乎没有得到太多的吸引力。如果你把语言选择器放在右上角,人们可能会看到它

      您可以尝试使用JavaScript中的HTTP头或
      navigator.language
      navigator.userLanguage
      属性来选择初始语言

      不要使用标志图标。巴西人说葡萄牙语,但可能不知道葡萄牙国旗是什么,瑞士有三种官方语言,魁北克省的人说法语,美国人不想点击英国国旗选择英语,等等


      如果您将要面对任何L10N或I18N问题,请确保从一开始就前后和横向使用UTF-8;实际上,在任何地方都可以使用UTF-8,即使您不希望将应用程序本地化。

      我曾经读到,提供多种语言与国际化并不相同。 关键区别在于,在第一种情况下,您“只是”将相同的内容翻译成不同的语言,而在前一种情况下,您提供特定于某一地区的不同内容(通常翻译成该地区的主要语言)

      仅此一项就应该为您提供一组不同的接口。由于“mu太短”的原因,标准标志解决方案在任何一种情况下都会变得烦人


      有时,如果自动定位失败,会提供一张世界地图作为一个选项来更正到正确的位置。大多数服务求助于标准下拉列表。

      自动下拉列表的缺点是,它不适用于禁用JavaScript的用户。总是添加一个按钮,允许没有活动JS.Argl的人提交!与IE6仍然是标准的公司打交道已经很痛苦了。我们真的应该关心别人吗?还有多少人在那里?@Serge-appTranslator,如果你可以在没有JS的情况下继续做人,为什么不呢?好的做法是,如果启用了javascript,则隐藏不需要的按钮。例如,我们可以将类“js disabled”添加到body标记中,然后通过JavaScript将其更改为“js enabled”。然后使用css选择器:.js启用#语言提交按钮{display:none;}