问题标签 [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 投票
1 回答
1446 浏览

php - PHP NumberFormatter 斯洛文尼亚语拼写错误

我正在尝试使用 intl 包中的 NumberFormatter 类将整数数量拼写为斯洛文尼亚语单词(用于邮政声明),但结果完全错误且毫无意义。

结果是“petsto šestdeset ena”,而它应该是“petsto enainšestdeset”。看起来像婴儿说话。

在非常相似的克罗地亚语中,结果似乎还可以(“petsto šezdeset i jedan”)。

这是在 PHP 中做的不好的翻译还是基于我的系统语言环境?我在 PHP 5.3.10 / Ubuntu 12.04 上。

编辑:

intl 是 1.1.0 版本,当前是 3.0.0,所以也许它已经修复了?

0 投票
1 回答
1236 浏览

symfony - 如何在 Windows 环境下通过 composer 下载包而不出现 icu 版本错误?

我发现了很多关于这个问题的帖子,但我认为我的问题是不同的(尤其是我的环境)。

我使用 Windows 7、Symfony 2.3.6 和 wamp 2.2

我想下载并安装 FOSUserBundle :

我有一个(显然很常见)错误:

显然我已经有了 1.2 版的 symfony/icu。

我还是尝试更新它:

但它想安装以前的版本(1.0.0)。为什么 ?

所以我保留了 1.2.0

我知道 icu 是随 PHP intl 扩展一起交付的。它开着。

启动 phpinfo 我有这个:

所以 4.6 >= 4.4,应该没问题吧?

怎么了 ?

我该如何解决?

注意:我没有更改 composer.json 而是添加我要添加的捆绑包的 require 部分

笔记2 :

也许这是相关的:当我尝试使用 https 与作曲家一起下载时,我遇到了一个例外:

问题是我的 php_openssl 已激活...

因此,即使它们被激活,作曲家也可能看不到扩展名(openssl 都没有,国际可能也没有)......我不知道

0 投票
0 回答
200 浏览

php - IntlDateFormatter 总是 en_US 输出月/日名称

我正在尝试使用 Intl 包实现语言环境支持。NumberFormatter更改时工作并更改输出样式,LocaleIntlDateFormatter似乎没有检测到语言环境更改。

我正在使用这段代码设置语言环境,在“en_US”和“sv_SV”之间切换。

IntlDateFormatter然后使用此代码初始化

当我现在尝试格式化日期名称时,例如星期三,我总是得到名称的英文表示 - 即使预期瑞典表示。

这应该输出“onsdag”,但两个语言环境都输出“wednesday”。我在这里做错了什么?

0 投票
2 回答
4716 浏览

php - 本地主机上的 locale_get_default() 函数问题

我在本地主机上使用 wampserver;

  • PHP 5.3.13
  • 阿帕奇 2.2.22
  • 启用 php_intl.dll 扩展

locale_get_default()但是我在使用函数时遇到了以下错误

致命错误:调用未定义的函数 locale_get_default()

或者使用Locale::getDefault()函数

致命错误:找不到类“区域设置”

0 投票
1 回答
9118 浏览

macos - MAMP PRO 安装扩展 intl 不起作用

我将 MAMP PRO 2.2 版与 PHP 5.5.3 一起使用。我使用端口来安装软件包。我安装了 php5-intl 并将文件 intl.so 复制到 /Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212 中。我通过> Edit config> php> php5.5.3.ini 调用了php.ini 文件中的扩展名,因为我有mamp 的专业版。重新启动服务器并显示 phpinfo() 后,扩展未加载。我试图直接在 php.ini 中调用扩展,如下所示“extension = '/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212 /intl.so'但它不起作用。

我不明白为什么没有加载扩展程序你能帮我吗?

此致,

0 投票
2 回答
6930 浏览

symfony - 操作 Symfony Intl 提供的国家列表和表单选择类型

抛开政治不谈,我在选择国家时需要提供科索沃作为一种形式选择。

使用 Symfony 的内置表单选择类型country,同时还提供科索沃名称的翻译,最优雅的方式是什么?

这是我到目前为止所做的并且它有效,但我担心这可能有点hack-ish。

0 投票
0 回答
521 浏览

php - 安装 intl mamp php 5.5.3

我在 MAC 上使用 MAMP 并尝试在执行 phpinfo 时安装扩展 INTL,它说我使用的是 5.5.3 版

我尝试了很多东西例如

但是当我刷新 phpinfo 仍然没有安装国际扩展名时,我什至在 php.ini 中添加了这一行 extension=intl.so

如果您有任何想法,请告诉我谢谢

0 投票
1 回答
1740 浏览

php - ISO 3166-1 alpha-2 国家代码的区域名称

在数据库中,我们有ISO 3166-1 alpha-2 国家代码,例如 GB 代表英国,AR 代表阿根廷。今天我们保留一个数据库表,其中一列用于这些国家代码,一列用于对应的英文国家名称。

我们在 PHP (5.4.x) 中工作,它具有intl 扩展(ICU 库的包装器),所以我想我想从这个源中获取国家名称,这使得应用程序更易于维护和更容易国际化,因为我可以轻松获取德语,法语或我们将来想要的任何国家名称。

Locale::getDisplayRegion ( string $locale [, string $in_locale ] )提供来自语言环境的区域名称。例如

问题是我没有语言代码,只有国家代码,所以我不确定如何建立适当的语言环境。

似乎我可以通过在英语前面加上“en_”来获取区域名称,例如

但是,这感觉更像是一种黑客攻击,我不确定我真的可以依赖它吗?

我在想是否可以使用国家/地区代码(取决于术语的区域/领土)和该国家/地区的任何有效语言以某种方式构成一个语言环境,但至少就我所发现的而言,它似乎不起作用:

关于如何解决这个问题的任何建议?我不想维护我自己的国家名称数据库,或者当有一个似乎已经是一个很好的来源(ICU)的内置扩展时,我不想简单地使用一个外部 PHP 库。

提前非常感谢!

0 投票
0 回答
172 浏览

php - PHP 国际化与 intl

我正在寻找一种使 PHP 应用程序国际化的好方法。到目前为止,我的结论是我不会使用(我猜会gettext随机失败,缓存的实现不好)并且不是我的选择。lighttpdZend

我对PHP 5.3 中引入的PHP 国际化函数非常感兴趣。但我不太确定它是否是这项工作的工具。我没有找到任何关于使用这些人进行应用本地化的文章,但似乎BundleResource正是我想要的。

有人可以在这里确认这是要走的路以及如何组织/创建/填充/使用资源包吗?官方文档太肤浅(例如ResourceBundle::create)或者我在这里遗漏了一些东西。

否则,我将使用数组作为最后的手段。啊!

0 投票
1 回答
200 浏览

php - Nitrous.IO 上的 Symfony,缺少 INTL pecl 扩展

我正在尝试在 Nitrous 平台上设置我的 Symfony 应用程序。建议借助 INTL pecl 模块进行翻译,所以我尝试安装它(pecl install intl)。但似乎它缺少 lib ICU 标头。当您安装 php5-intl(通过 apt-get)时默认安装这些,但我没有正确的权限。如何解决这个问题?