问题标签 [qlocale]

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 投票
4 回答
7094 浏览

windows - QLocale 在安装了语言包的 Windows 上错误地检测到系统语言

我正在尝试使用以下方法检测当前系统语言QLocale

但是,它无法正常工作。我在使用英语语言包的俄语 Windows 7 上,但language()返回俄语而不是英语。有什么解决方法吗?

0 投票
1 回答
118 浏览

c++ - QLocale - 验证价格

我无法验证价格。

接受价格示例:10,00 / 100,00 / 1.000,00

不接受:10 / 100 / 1000.00

代码,但是这个传递 100 / 10 / 1000.00

0 投票
1 回答
3502 浏览

qt - 使用 QLocale 类将数字转换为货币字符串

我正在尝试将数字转换为货币字符串。我正在使用QLocale::toCurrencyString()方法。当我将系统区域设置(通过 Windows 7 区域和语言设置更改)设置为 India 并尝试使用 转换数字1872345.00QLocale().toCurrencyString(1872345.00),我得到了预期的货币字符串。

QLocale().toCurrencyString(1872345.00)

但是当我打电话时QLocale(QLocale::AnyLanguage,QLocale::AnyScript,QLocale::India).toCurrencyString(1872345.00);,我得到这样格式的号码,这是不正确的。

QLocale(QLocale::AnyLanguage,QLocale::AnyScript,QLocale::India).toCurrencyString(1872345.00)

我尝试选择不同的语言环境脚本和语言环境。但我无法得到正确的结果。我正在使用 Qt 5.1.0。虽然我在使用时得到了正确的结果,但QLocale().toCurrencyString() 我无法使用它,因为我正在处理多个国家的货币,而不仅仅是系统语言环境设置的国家。为什么我得到这个不正确的结果?如何将数字转换为(不同国家的)货币字符串?

这是一个示例代码。

//CurrencyForms.h

//CurrencyForms.cpp

//main.cpp

//main.qml

//结果 在此处输入图像描述

这里我的默认系统区域设置为印地语印度(通过 Windows 7 区域和语言设置)

0 投票
2 回答
389 浏览

c++ - QLocale toDate 在“es”语言环境中总是返回无效的 QDate

为什么此代码返回无效日期?

如果调试 locale 变量,它会正确初始化为 locale es_ES,但不返回日期并date.isValid()返回 false。

0 投票
0 回答
251 浏览

qt - 如何使用 QLocale 区分繁体和简体中文

我必须显示可供用户选择的语言列表。该列表将 (Auto) 作为第一个选项,它是操作系统语言,并将有其他语言作为附加组件。

如此处所示

这里英语是自动语言。

这里的问题是,如果操作系统语言是中文,我如何区分简体和繁体。我的代码是:

这里 loc.script() 总是返回 0 说明“任何脚本”选项。如果操作系统语言是中文,那么如何区分简体和繁体呢?为什么 script() 没有返回正确的值?

0 投票
0 回答
396 浏览

qt - Qt以其本机形式获取语言名称

我正在将语言支持添加到当前使用 QLocale 和 QTranslator 的 Qt C++ 应用程序中。当用户从设置菜单中选择语言时,我想以本机形式向他们显示语言名称(例如德语而不是德语),但是当给定语言环境代码时,QLocale 根据当前语言环境返回名称(即英语) .

有没有一种方法可以使用 QLocale 或 Qt 中我错过的其他东西以本机形式获取语言名称。

0 投票
1 回答
2252 浏览

c++ - 如何将带逗号的字符串转换为QT中的浮点数?

在我的 csv 文件值中,小数点是逗号。所以我可以在 Excel 中打开 csv,而 Excel 不会格式化我的值。

当我在自己的软件中打开文件并将字符串转换为浮点数时,无法读取值:bool ok 返回 false。

0 投票
1 回答
1716 浏览

qt - Qt 为什么使用 QString::number() 而不是 QLocale().toString()?

我正在开发的应用程序将在许多国家/地区推出,并且需要支持他们的语言。我一直在回顾我的代码并替换以下每个实例:

QString::number()QString().toDouble()

QLocale().toString()QLocale().toDouble()

我没有在网上找到太多比较这两个类的内容,但我对使用后者的影响很感兴趣,如果没有 - 为什么要使用这些QString函数?

本质上,我只是想确保在进行所有这些更改之前不会损害我的代码。有没有人有任何知识?

0 投票
1 回答
912 浏览

c++ - QLocale 和 QSettings

前提:我在 osx 上使用 qt5.7 我已经更改了System Preferences- Language and Region-中的小数分隔符Advanced以使用逗号:

在此处输入图像描述

我在QLocale通过 存储/恢复值时遇到问题QSettings

这是main.cpp

这是我的.pro

输出是:

"English" "Latin" "UnitedStates" ',' - "系统正常"

“英语”“拉丁语”“美国”'。- “QSettings 不正常”

“英语”“拉丁语”“美国”'。- “匈牙利语仍然不行”

并且看起来好像QLocale知道我使用逗号作为小数分隔符,但是当它QLocale被存储QSettings并读回时,Qt 不会恢复它。

同样在尝试此处描述的黑客攻击时:https ://stackoverflow.com/a/11603299/2743307它不起作用。

0 投票
1 回答
848 浏览

qt - QLocale setDefault 仅在第二次调用时有效

我正在尝试更改QLocale代码中变量的默认语言,然后使用每种语言的不同分隔符。我不想为整个系统更改它我只想有机会打印具有不同组和小数分隔符的数字。用户可以将小数分隔符更改为他或她喜欢的。

现在有一些代码我确信与这个错误无关。后来我用:

有了locale.toString我,分隔符默认为给定的语言。

现在我的问题是语言环境变量似乎需要一些时间或技巧才能更改为其他设置。当我更改decSepvar 并因此更改语言时(我对此进行了调试,这部分更改,当我要求提供正确枚举的语言时)它使用先前设置的设置。当我再次调用该函数时,它给了我tempNum1字符串然后它正在工作。

这是一个已知问题还是我做错了什么?我可以以某种方式更新语言环境或类似的东西吗?