我知道您可以设置日期格式,但是如何设置其他特定于区域设置的内容,例如十进制数字格式?(我的意思是逗号与点)
所以基本上我有一个可以在三种语言之间进行选择的微调器,这是代码,我的语言确实发生了变化,但它似乎正在加载语言,而不是我为其设置的资源。
我的代码
private void setLocale(String localeName){
if (localeName.equalsIgnoreCase(""))
return;
Resources resources = getResources();
Locale locale = new Locale(localeName);
Locale.setDefault(locale);
android.content.res.Configuration config = new
android.content.res.Configuration();
config.locale = locale;
resources.updateConfiguration(config, resources.getDisplayMetrics());
//restart base activity
this.finish();
this.startActivity(this.getIntent());
}
Run Code Online (Sandbox Code Playgroud)
语言之一的 strings.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Tabibi</string>
<string name="already_have_an_account">????? ?????</string>
<string name="join">????? ????</string>
<string name="login">????? ??????</string>
<string name="language">?????</string>
</resources>
Run Code Online (Sandbox Code Playgroud) 使用android.icu.text.NumberFormat类:
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale("en", "AU"));
numberFormat.isGroupingUsed = true
String number = numberFormat.format(123456)
Run Code Online (Sandbox Code Playgroud)
将产生123,456,但根据维基百科,澳大利亚使用一个点.作为小数点分隔符。为什么 NumberFormat 会这样?
我需要 DropdownButton 中的所有可用语言(带有变体,例如“英语(英国)”),我在 flutter SDK 或 dart 内置程序中找不到,所以我结束了这个网站lang_list.dart,并创建了一个包含以下内容的文件
const LANGLIST = ["Afrikaans","Afrikaans (South Africa)","Arabic","Arabic (U.A.E.)","Arabic (Bahrain)","Arabic (Algeria)","Arabic (Egypt)","Arabic (Iraq)","Arabic (Jordan)","Arabic (Kuwait)","Arabic (Lebanon)","Arabic (Libya)","Arabic (Morocco)","Arabic (Oman)","Arabic (Qatar)","Arabic (Saudi Arabia)","Arabic (Syria)","Arabic (Tunisia)","Arabic (Yemen)","Azeri (Latin)","Azeri (Latin) (Azerbaijan)","Azeri (Cyrillic) (Azerbaijan)","Belarusian","Belarusian (Belarus)","Bulgarian","Bulgarian (Bulgaria)","Bosnian (Bosnia and Herzegovina)","Catalan","Catalan (Spain)","Czech","Czech (Czech Republic)","Welsh","Welsh (United Kingdom)","Danish","Danish (Denmark)","German","German (Austria)","German (Switzerland)","German (Germany)","German (Liechtenstein)","German (Luxembourg)","Divehi","Divehi (Maldives)","Greek","Greek (Greece)","English","English (Australia)","English (Belize)","English (Canada)","English (Caribbean)","English (United Kingdom)","English (Ireland)","English (Jamaica)","English (New Zealand)","English (Republic of the Philippines)","English (Trinidad and Tobago)","English (United States)","English (South Africa)","English (Zimbabwe)","Esperanto","Spanish","Spanish (Argentina)","Spanish …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,它使用区域设置来选择语言和带有翻译的 json,并且我正在制作一个配置器。为此,我需要有一个格式language_COUNTRYNAME类似于en_US.
我在 Locale flutter 类中找到了这个常量列表,并且我想获取 JSON 中的完整列表而不手动复制它,我该怎么做?
I am using the example program for setlocale() from cppreference.com on a macOS 10.14.6 system, however, the output is not localized. I checked that the return value from setlocale() is not NULL and tried a variety of locale specifications in an attempt to get a decimal comma, such as de, de_DE, de_DE.utf8.
Why does this not work?
How can I find out why the output isn't affected, and whether it is because of incorrect locale names?
On …
当我尝试在wchar_t字符串上使用memcpy时遇到错误。具体地说,尽管我发送给memcpy的长度与我要复制的字符串的长度正确,但仅复制了字符串中的前半个字符。这给我留下了目标字符串中不好的数据,因为字符串的后半部分充满了从字符串的新创建中遗留下来的垃圾字符。
下面的屏幕截图显示了我正在处理的确切问题:
我唯一能想到的是,这可能与我将非Unicode应用程序的语言环境设置为日语有关,但我要做的第一件事是将语言环境改回英语,问题仍然存在。我觉得我确实缺少一个非常明显的解决方案。有任何想法吗?