问题标签 [setlocale]

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 回答
918 浏览

c - 如何打印不同的语言环境?

在 C 中,使用 设置新的语言环境后setlocale(LC_ALL, "Hebrew"),我可以打印新的本地名称(Hebrew.Israel.1255),但不知道如何使用新语言环境的字符集,因为printf(%c, 240)打印了 '?' 而不是希伯来字母(1255 地图)。

.

提前致谢!

0 投票
1 回答
1069 浏览

c - 似乎 setlocale() 在链接库中不起作用

我的默认语言环境是“es_ES”,所以“,”是小数点。这是我的代码。在文件“dupa.txt”中是一个数字“1.0344”,它可以正常工作。然而,在代码的更深处,我正在使用 fann 库,它在 g++ 中通过“-ldoublefann”链接并从文件中读取一些数据,并且在这个库中仅适用于“,”。

0 投票
5 回答
13453 浏览

php - 在 PHP 中对具有特殊字符的数组进行排序

我有一个数组,其中包含西班牙语的语言名称:

我需要对数组进行排序并维护索引关联,因此我将asort()SORT_LOCALE_STRING一起使用

预期输出将按以下顺序排列:

  • 数组 ( [ar] => árabe [ko] => coreano [es] => español [fr] => francés )

但是,这是我收到的:

  • 数组 ( [ko] => coreano [es] => español [fr] => francés [ar] => árabe )

我错过了什么吗?感谢您的反馈意见!(我的服务器使用的是 PHP 版本 5.2.13)

0 投票
14 回答
100353 浏览

php - PHP setlocale 没有效果

setlocale()函数未设置所需的语言(德语)。


目标是输出月份名称。

到目前为止,这是我的测试代码:

输出:

六月

代替

朱尼

有什么建议么?

  • 我没有 ssh 或其他 shell 访问权限。
  • 该脚本在 linux 服务器上运行。

PHP 版本 5.6

0 投票
1 回答
2959 浏览

php - Setlocale 返回 false (WAMP)

我的项目中有本地化工作。工作意味着我的项目被翻译成locale/sk文件夹中的任何语言,sk因为斯洛伐克语是我的默认系统语言。

设置为任何其他语言都不起作用。我试过$lang = 'cs', 'cz', 'en', 'en_UK','en_UK.utf8'和其他的。尽管如此,仅获取'sk'文件夹中的翻译,并且该setlocale()函数仍然返回 false。我试图更改浏览器中的默认语言 - 没有效果。

这是我的代码:

我也试过这些:

欢迎任何建议。

编辑:

'nor'打印Norwegian (Bokmĺl)_Norway.1252,'rus'俄语,但'svk'打印 false 等等'cze'

在列表中提到了所有这些:

http://msdn.microsoft.com/en-us/library/cdax410z%28v=vs.80%29.aspx

0 投票
1 回答
660 浏览

visual-studio - ActiveX 控件 - MFC 语言环境

我有一个用 Visual Studio 2008 开发的 MFC 应用程序,我在其中使用 Adob​​e ActiveX 控件(我安装了 Adob​​e Reader X)。我尝试使用 setViewRect 函数设置缩放矩形,并且效果很好。

现在问题出现在我的 Windows 区域设置中,十进制符号设置为逗号而不是点(例如在德语区域设置中)。缩放矩形的参数似乎被错误地解释了。

我使用了 ProcessMonitor,发现当创建 Adob​​e ActiveX 控件并将其 DLL 加载到我的进程中时,它会调用 setlocale,因此应用程序使用当前的 Windows 区域设置而不是默认的“C”区域设置。因此,应用程序以错误的方式解释数字。

我尝试在加载 Adob​​e 后立即将语言环境重置为“C”,此解决方法解决了问题。

现在,当我将应用程序迁移到 Visual Studio 2010 时,问题再次发生。显然 Adob​​e DLL(“c:\Program Files (x86)\Common Files\Adobe\Acrobat\ActiveX\AcroPDF.dll”)是使用 Visual Studio 2008 开发的。因此,当它设置语言环境时,它是在 MSVCR90.dll 中完成的。当我重置语言环境时,我使用了相同的 DLL。

现在由于我的应用程序是在VS2010中,调用setlocale是在MSVCR100.dll中完成的,所以它不会影响MSVCR90.dll中已经设置的语言环境。

有没有办法设置我在应用程序中托管的 COM 对象的语言环境?

提前非常感谢你:)

0 投票
1 回答
2360 浏览

php - Smarty gettext 本地化

我在使用 gettext 时遇到问题。

这就是我设置语言环境的方式:

这会打印Romanian_Romania.1250,所以我想 setlocale 函数运行正常。

我的 .tpl 文件中的示例:

我在文件夹中创建了一些带有翻译的\locale文件夹。sk_SK是我的默认语言 - 斯洛伐克语和罗马尼亚语,例如:romanian, ro_RO, ro_RO.1250, Romanian_Romania, Romanian_Romania.1250. 它们中的每一个都包含一个带有翻译的pot文件 - \LC_MESSAGES\messages.pot.

发生的情况是:文件夹中的任何翻译sk_SK都会被翻译。如果我重命名文件夹,我会正确翻译所有内容。但不管我做什么,没有其他文件夹被占用。我处理这个问题已经有一段时间了,我尝试了几种语言设置和很多不同的文件夹名称。

示例 1:

在 sk_SK 文件夹中,我有带有字符串“Login”-“SKSKSK”翻译的 pot 文件

在 ro_RO 文件夹中,我有带有字符串“登录”-“RORORO”的翻译的 pot 文件

在浏览器中我看到“SKSKSK”

示例 2:

在 sk_SK 文件夹中,我有带有字符串“登录”-“RORORO”的翻译的 pot 文件

在 ro_RO 文件夹中,我有带有字符串“登录”-“SKSKSK”翻译的 pot 文件

在浏览器中我看到“RORORO”

我想知道这个问题是否与Smarty有关。你有什么想法?

0 投票
2 回答
4614 浏览

c++ - std::locale::global 会影响 printf() 函数吗?

我在我的电脑上使用俄语区域设置。
如果我要设置:


然后

输出是:

小数分隔符是“,”,不像 do_decimal_point 函数!如何使用 C++ 语言环境更改小数分隔符的 C 语言环境设置?


感谢您的回答!
但是,C setlocale 函数会对 C++ cout 对象产生影响吗?

通过 cout 打印十进制值时这会影响吗?

0 投票
1 回答
1071 浏览

php - setlocal, strftime - Windows 和小写问题

可能重复:
setlocale(LC_ALL, 'en_GB.UTF8') 在 Windows 上不起作用

我有以下 PHP 代码:

问题:

  1. 在我的 Windows 机器上,它显示为英文。如何配置 PHP 或 Windows 以使其正常工作?
  2. 在我的 Linux 机器上,它显示如下:

    • 芬兰语是 maanantai, lokakuu 15, 2012 at 6:42
    • 在法语加拿大是 lundi,2012 年 10 月 15 日 6:42

任何想法为什么这些词是小写的?

0 投票
2 回答
2846 浏览

php - 在 PHP 中接受带小数和千位分隔符的国际数字

对于用户可以输入能量来计算相应费用的在线计算器,我需要 PHP 脚本来接受各种用户输入。“200万又四分之一焦耳”的值可以输入为:

2000000.25(默认符号)

2,000,000.25(带千位分隔符)

2000000,25(逗号作为小数点)

2.000.000,25(逗号作为小数点,用千位分隔符)

2'000'000.25(替代格式)

2 000 000,25(法国符号)

我怎样才能让脚本意识到这些差异?

我的第一次尝试是用默认字符替换 str_replace 替代字符,但句点 (.) 可能是小数或千位分隔符。我尝试使用 sscanf 但如何确保它正确读取数字?

大多数用户只会提供小数点后两位,但是有什么方法可以区分1.234(1点234,句点作为小数分隔符)和1.234(一千二百三十四,句点作为千位分隔符)?