草庐IT

php - pybabel或其他用于PHP的l10n库

Babelorpybabel是python中cldr(公共语言环境数据存储库)的接口。因此,它与php的i18n函数和类具有相同的“知识”(如果主机上安装了适当的locale),但是不需要使用像setlocale()这样的全过程设置。有没有类似的php库或工具包?尤其是为了实现:将数字转换为语言和区域特定格式同样地转换日期访问特定区域中的名称、货币和其他信息(例如>>>frombabelimportLocale>>>locale=Locale('en','US')>>>locale.territories['US']u'UnitedStates'>>>locale=Locale('es

PHP preg_replace - 在结果中包含模式/完整主题

我有一个我自己无法解决的问题:替换...locale("Sendx","Send")locale("System","System")应该变成:locale("Sendx","Subsub")locale("System","Newsys")我尝试了一个简单的替换:$mysearchword="System";#changesinaloop$myreplaceword="Newsys";#alsochangesintheloop$oneline=str_replace($mysearchword,$myreplaceword,$oneline);但结果看起来像locale("Sendx

php - 将语言名称转换为语言环境代码

在PHP中是否有规范的方法来执行此操作(Java问题):Locale:LanguagenametoCountry/Languagecode这个问题是:standardfunctiontotranslateiso-639codestolanguagename?即,将字符串如French转换为代码fr?该机制只需要支持英文源字符串,我想避免创建我自己的转换列表,如以下答案所示:https://stackoverflow.com/a/20520458/760706我正在考虑不存在的Locale::getLocaleCodeForDisplayLanguage("French","en")思路

php - PHP Intl 扩展线程安全吗?

我一直在阅读有关PHP语言环境的文章,似乎setlocale()有线程问题。(我对线程不太熟悉——文档提到它不是线程安全的)我想让我的项目能够处理某些数字格式,而且Intl扩展似乎很有趣。http://php.net/manual/en/book.intl.php我是否应该预料到setlocale()使用Intl扩展时会出现同样的问题? 最佳答案 好吧,我自己也对此很好奇,所以我设计了一个测试。首先我用这两个文件测试了setlocale():和然后我在两个单独的选项卡中执行它们。首先是locale1.php,它会在设置语言环境后休眠

php - SilverStripe Fluent 菜单模板

SilverStripeFluent模块有一个现成的模板,可以在前端显示一个简单的语言切换菜单。>$Title.XML当它循环“Locales”时,它在技术上循环的是什么?没有名为“Locales”的数据库表。我的目标是最终找到返回语言缩写(不是国家!)的变量(或编写函数)。所以我需要一些返回的东西,例如nl而不是nl-NL(如$LocaleRFC1766返回)。 最佳答案 Localesisafunction在FluentExtension扩展中:/***Templatablelistofalllocales**@returnAr

PHP Silex 路由本地化

从Silex开始。假设我想要一个本地化站点,其中所有路由都必须以/{_locale}开头并且不想重复自己:$app->match('/{_locale}/foo',function()use($app){return$app['twig']->render('foo.twig');})->assert('_locale',implode('|',$app['languages.available']))->value('_locale',$app['locale.default'])->bind('foo');$app->match('/{_locale}/bar',function(

php - 如何在 Symfony 2 的每个 URL 中设置 {locale}?

你是怎么做到的?但如果可能,请避免使用特定语言必须为每个url编写它很烦人..例如:我希望我的站点对每个url响应/和/fr-FR/。前者为英语,后者为法语。 最佳答案 你应该看看JMSI18nRoutingBundle,它为路由添加了国际化支持,而无需复制任何路由定义。这个包配置了三个用于翻译路由的通用场景。您的示例非常适合Scenario2这是“为除默认语言环境之外的所有语言环境添加前缀” 关于php-如何在Symfony2的每个URL中设置{locale}?,我们在StackOve

php - Facebook FQL 用户表 `sex` 字段 : how to return male/female even the user is using different locale?

情况:我的facebook应用程序(http://apps.facebook.com/mymagicmirror/)需要检测用户的性别,然后查询异性或男性或女性FQL:SELECTuid,name,pic,sexFROMuserWHEREuidIN(SELECTuid2FROMfriendWHEREuid1='.$user_id.')andsex='male'问题:当facebook用户使用其他语言环境时,“性别”字段不再匹配“男性”和“女性”。相反,用中文来说,性别将变为男性/女性,而sex='male'的FQL将返回零结果。有什么解决方案可以查询所有男性/女性friend,即使fa

PHP:检查来自任何基于拉丁语的语言的字母字符?

我想使用PHP检查字符串是否仅包含字母字符(我不想允许任何数字或特殊字符,如!@#$%^&*)。ctype_alpha()似乎很适合这个目的。问题是我想允许重音字母,例如法语等。例如,我想允许“Lórien”。我知道ctype_alpha()可以与set_locale()一起使用,但是对于这个用例来说这似乎仍然太有限了,因为我想允许所有字符以拉丁语为基础的语言。有什么想法可以最好地实现这一目标吗?注意:解决方案发布在HowcanIdetectnon-westerncharacters?非常适合显式检测非拉丁字符,但它允许特殊字符和空格,这是我不想允许的:preg_match('/[^\

php - 如何从 PHP Intl(ICU 库)获取默认货币

我使用PHP,想知道如何通过国际化扩展(ICU库的包装器)获取语言环境的默认货币?下面是一个解释内容和原因的脚本。我需要一些东西来替换getCurrCode()函数。$accepted_currencies=array('USD','EUR');$locale=Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);if(!empty($locale)){Locale::setDefault($locale);$currency=getCurrCode();if(!in_array($currency,$accepted_cur