相关疑难解决方法(0)

国际化的设计考虑因素

我读过Joel关于Unicode的文章,我觉得从字符集的角度来看,我至少掌握了国际化的基本知识.除了阅读这个问题之外,我还做了一些关于设计考虑的国际化研究,但是我不禁怀疑还有更多我不知道或者不知道的东西.不知道要问.

我学到的一些东西:

  • 有些语言从右到左而不是从左到右阅读.
  • 日历,日期,时间,货币和数字的显示方式因语言而异.
  • 设计应该足够灵活,以容纳更多的文本,因为有些语言比其他语言更冗长.
  • 当涉及到它们的语义时,不要把图标或颜色视为理所当然,因为这可能因文化而异.
  • 地理命名因语言而异.

我在哪里:

  • 我的设计非常灵活,可以容纳更多文字.
  • 我自动翻译每个字符串,包括错误消息和帮助对话框.
  • 我还没有到达需要显示时间,货币或数字单位的地方,但我很快就会在那里,需要开发一个解决方案.
  • 我正在全面使用UTF-8字符集.
  • 我的菜单和应用程序中的各种列表按字母顺序排列,以便于阅读.
  • 我有一个标记解析器,通过过滤掉停用词来提取标签.停用词列表是特定于语言的,可以换出.

我想更多地了解:

  • 我正在开发一个可下载的PHP Web应用程序,因此非常感谢有关PHP的任何具体建议.我已经开发了自己的框架,并且目前对使用其他框架不感兴趣.
  • 我对非西方语言知之甚少.我上面没有提到需要考虑的具体考虑因素吗?另外,PHP的数组排序函数如何处理非西方字符?
  • 你在实践中遇到过任何具体问题吗?我正在考虑GUI和应用程序代码本身.
  • 有关处理日期和时间的任何具体建议吗?根据地区或语言是否有细分?
  • 我已经看到很多项目和网站让他们的社区为他们的应用程序和内容提供翻译.您是否建议这样做以及确保您有良好翻译的一些好策略?
  • 这个问题基本上就是我对国际化的了解程度.什么我不知道我不知道我应该进一步研究?

编辑:我添加了赏金,因为我想从经验中获得更多真实世界的例子.

php locale internationalization

43
推荐指数
7
解决办法
6518
查看次数

您如何将预先存在的Web应用程序转换为多语言应用程序?

我将开展一个项目,在这个项目中,需要调整一个相当大的Web应用程序来处理多种语言.事情是用手工制作的PHP代码运行的,但它非常干净.

我想知道最好的方法是什么?

  1. 自己做点什么,试着适应实际的架构.

  2. 使用将为我管理i18n的框架(例如,Symfony)重写其中的一部分?

对于选项1,我应该在哪里存储i18n数据?*.po,xliff,纯DB?

我想到了另一种选择:仅将Symfony用于翻译,而是将控制器设置为加载网站.快,但很脏.另一方面,它允许我们进行下一次修改,慢慢地移动到完整的Symfony:这个网站真的是一个很好的候选人.

但也许有一些独立的翻译引擎可以比整个Web框架更好地完成工作.这有点像用火箭筒杀死一只苍蝇......

php internationalization symfony

22
推荐指数
2
解决办法
8640
查看次数

实现多语言PHP的最佳方法

首先,我知道有很多关于多语言功能的答案,我找不到我想要的答案.

我想到了三种可以使用的方法.每次我向Web表单界面添加新值时,我都需要使用PHP创建语言文件.

前两个类似 - 在特定语言文件中使用数组或定义,并在运行开始时包含它.但在这种情况下,我可能会加载数千个定义或数组,只是为了在每个页面中使用一些.

第三种方法是创建每次使用关键字或完整短语调用的函数,并使用IF-s或switch选择正确的术语(如果不匹配则返回调用的键).

最好的方法是什么?我决定做一些测试.我尝试了三种不同的方法,并测量了它所花费的时间和内存:

  1. 我定义了一个数组(22个值),并从1到1,000,000运行它 - 检查调用值 - 三个中的一个,通过使用%运算符选择要使用的内容并将其设置在变量上

    • 时间:0.476591110229秒
    • 内存:6536字节
  2. 我使用相同的数组(22个值)并使用函数调用它 - return $arr[$string];(只是为了方便的工作方式和能够根据需要将其更改为不同的方式)

    • 时间:0.960635185242秒
    • 内存:6704字节
  3. 我创建了一个包含字符串列表的函数,并使用switch- > case我选择了返回的字符串

    • 时间:1.46953487396秒
    • 内存:848字节

那么,现在问题是什么是正确的选择 - 更喜欢时间或更喜欢记忆.

如果站点很大并且需要大量内存 - 我无法更改它,因为它是使用数组构建的 - 如果它与函数一起工作,我总是可以改变它.

php

12
推荐指数
2
解决办法
2万
查看次数

标签 统计

php ×3

internationalization ×2

locale ×1

symfony ×1