问题标签 [intl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4082 浏览

php - 获取任何语言环境的“列表分隔符”字符

仅从客户端提供的区域设置标识符名称(字符串)开始,我如何或在哪里查找该区域设置的默认“列表分隔符”字符?

“列表分隔符”设置是许多不同类型的应用程序和编程语言在连接或拆分字符串和数组时可能用作默认分组字符的字符。这对于在电子表格程序中打开 CSV 文件尤其重要。虽然这通常是逗号“,”,但此默认字符可能会因机器的区域设置而异。它甚至可能在操作系统之间有所不同。

我对我自己的服务器环境不感兴趣。相反,我需要根据他们提供给我的语言环境标识符来了解更多关于客户端的信息,因此我自己的服务器设置是无关紧要的。同样对于此解决方案,我无法更改此服务器上的区域设置以匹配整个当前进程的客户端作为查找此值的快捷方式。

如果这是在 ICU 库中定义的,我无法找到使用INTL扩展名查找此值的任何方法。

有什么提示吗?

0 投票
1 回答
1392 浏览

php - 如何使用作曲家安装 SonataIntlBundle?

我阅读了文档,但是当我这样做时:

我的控制台中有这条消息:5

所以我尝试了“master”或“2.*”,但这不起作用。

我正在使用带有 php_intl 扩展名的 Symfony 2.1.7 和 PHP 5.4.3。

如果有人可以帮助我...谢谢!

0 投票
3 回答
18522 浏览

php - 默认情况下,PHP 5.3 似乎缺少 Intl 扩展

我的系统是 Ubuntu 12.04,PHP 5.3,我正在尝试运行一些基本的 Intl 代码,如下所示:

它输出

自 5.3 版以来,国际扩展不应该与 PHP 捆绑在一起吗?

PHP是通过apt-get这个命令行安装的(我不使用Apache):

这就是php -v产生的结果:

0 投票
1 回答
795 浏览

php - intlDateFormatter 夏令时

Symfony 2 在自己的 DateTimeToLocalizedStringTransformer 中使用 intlDateFormatter 但不能正常工作。

我有结果

我试试

并重新安装 libicu44

0 投票
1 回答
6179 浏览

php - 在 Ubuntu 10.04 上安装最新的 php_intl

我正在使用 Ondřej Surý 源代码来获取 Ubuntu 10.04 上的最新 php 版本。所以我得到 PHP 版本 5.4.12-1~lucid+1

对于我的 Symfony2 应用程序,我需要最新版本的 php-intl 扩展。

在我正在运行的本地 XAMPP 服务器上

  • 国际版 1.1.0
  • ICU 版本 4.6.1

在我的网络服务器上只有这个:

  • 国际版 1.1.0
  • ICU 版本 4.2.1

是否也有更新它的来源或方法?

0 投票
1 回答
1427 浏览

php - 如何更改 NumberFormatter::parseCurrency() 接受空白和非中断空间的行为?

我正在尝试将本地化的货币字符串解析为货币和浮点值。

一段时间内一切正常,现在我们遇到了一些问题。似乎 NumberFormatter::parseCurrency 使用了一个额外的不可见字符:

测试代码:

输出:

如您所见,输出 3 和 4 的字符串长度存在差异。

我在 PHP 5.3(启用了 mbstring 的 ubuntu)和 5.4(Mac OS X 上的 Zend Server)中得到了相同的结果。

主要问题是,来自我的表单(ZF1 应用程序)的输入值与索引 4 的输出相同......

有什么建议么?提前致谢

编辑1:

工作值的十六进制转储:

非工作值的十六进制转储:

编辑2:

使用的whitepsace似乎有问题。c2 a0 是 NO-BREAK SPACE 并且(也许?) NumberFormatter::parseCurrency() 需要。但 0x20 是默认空间(在输入表单中输入)。当前的解决方法是用 NO-BREAK SPACE 替换空格$value = str_replace("\x20", "\xC2\xA0", $value);

编辑3:

在另一个系统上(带有 Zend Server 5.6 的 Mac OS X,启用了 mbstring,PHP 5.3.14)一切都按预期工作:

编辑4:

使用空间和使用非中断空间配置之间的主要区别在于 ICU 版本:

工作版本:

不工作版本:

0 投票
2 回答
3050 浏览

php - 在哪里可以找到 PHP 音译器 (Intl) 的 ID 或规则列表?

Transliterator::listIDs()将列出 ID,但显然它不是一个完整的列表。

此页面的示例中,ID 如下所示:

这有点奇怪,因为 ID 应该是唯一的。这看起来更像是一个规则,但如果我将它传递给方法它就不起作用createFromRules:)

无论如何,我正在尝试从字符串中删除任何标点符号,但破折号 ( -) 或特定列表中的字符除外。

你知道这是否可能吗?或者是否有一些文档可以更好地解释音译器的语法?

0 投票
2 回答
2908 浏览

php - 用 intl 编译 PHP

我想用 intl 扩展编译 php。

我正在使用--enabled-intl 进行编译。

它给了我 icu 所需的错误。所以我已经使用 yum install icu libicu-devel 安装了 icu

现在我收到以下错误:

检查 ICU 3.4 或更高版本...找到 51.2 检查 c++... c++ 检查 C++ 编译器 (c++ -L/usr/lib -L/usr/local/lib -Wl,-rpath,/usr/local/ lib -L/usr/local/lib) 工作...配置:错误:安装或配置问题:C++ 编译器无法创建可执行文件。

这是我的 config.log 的内容

配置:52751: c++ -o conftest -I/usr/local/include -L/usr/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib conftest.C -ls qlite3 -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -liconv -lm -ldl -lxml2 -lz -liconv -lm -ldl -ldl -lm -licui18n -licuuc -licudata -ldl -lm -licuio 1>&5 /usr/local/lib/libxml2.so: 未定义引用gzopen64@ZLIB_1.2.3.3' /usr/local/lib/libxml2.so: undefined reference togzdirect@ZLIB_1.2.2.3' collect2: ld 返回 1 退出状态配置:失败的程序是:

0 投票
2 回答
529 浏览

php - PHP Spoofchecker 类

我正在阅读 PHP 手册,并在intl 扩展文档页面中遇到了Spoofchecker该类。类中的方法、它们的参数以及类本身现在都没有记录,所以我想知道它的目的是什么。

0 投票
1 回答
2437 浏览

windows - Symfony2 intl 仅支持“en”

我正在安装 Wamp 和 PHP 5.4.3 的 Windows 机器上工作 目前,我正在使用 Symfony2 开发一个 Web 应用程序。在使用 FormType 创建表单时,我需要插入一个采用浮点数而不是字符串的输入字段。所以,我使用了这段代码:

当我单击提交按钮时,出现此异常:

Symfony\Component\Intl\NumberFormatter\NumberFormatter::getSymbol() 没有实现。请安装“intl”扩展以获得完整的本地化功能。

所以我通过删除相应的“;”来激活 php_intl 扩展 在我的 php.ini

之前的异常消失了,一切顺利。

但是,当我将 parameters.yml 文件中的“locale”参数从“en”更改为“fr”时,出现以下异常:

仅支持语言环境“en”。500 内部服务器错误 - InvalidArgumentException

我现在被这个异常困住了 2 天。我可以使用一些帮助。