Articles of 本地化

在Applet中显示中文文本

我们有一个Applet可以显示中文文本。 我们正在为它指定一个字体(Arial),它在Windows和Mac OSX下工作正常。 但在Linux上的Firefox中,中文字符呈现为正方形。 有没有办法解决这个问题? 请注意,我们不能假定客户端上存在特定的字体文件。

什么是国际化和本地化的好介绍和教程?

我公司使用内部开发的软件包来支持国际化/本地化。 但是,这是二十年前开发的,图书馆只限于一个产品线。 我对艺术的地位感兴趣。 Unicode是今天所有国际努力的基本字符集? 人们仍然使用gettext()和家庭吗? 如果使用C ++,我应该专注于该语言的语言环境支持吗? 我已经看了维基百科的国际化和本地化的条目,其中包括其他网站和相关主题的链接。 但是这里有很多,我想要的是一个源代码,尤其是一本书,它可以很好地介绍当前软件领域的Linux / Unix。 如果实现使用C ++,那很好。 例如,几年前,我读了肯伦德的一本名为“ 理解日本信息处理”的书,后来又修改了一本书,“中日韩信息处理” 。 这两个都很有趣,但当然重点是亚洲语言。 是否有关于当前艺术(书面/书面)语言不可知论的书?

本地化的指数表示法?

我试图将数字转换成本地化的string。 对于整数和金钱的价值很简单,因为string只是一系列的数字和数字分组分隔符。 例如: 12 345 678 901 (保加利亚语) 12.345.678.901 (加泰罗尼亚语) 12,345,678,901 (英语) 12,34,56,78,901 (印地语) 12.345.678.901 (弗里斯兰语) 12?345?678?901 (普什图语) 12'345'678'901 (德语) 我使用Windows GetNumberFormat函数格式整数(和GetCurrencyFormat格式货币值)。 但有些数字不能用固定的符号来合理地表示,需要科学记数法 : 6.0221417930×10 23 或更具体地E符号 : 6.0221417930E23 我怎样才能得到科学记数法的本地化版本? 我想我可以使用本地化的数字构造它: 6.0221417930E23 6,0221417930E23 6.0221417930e23 6·0221417930E23 6·0221417930e23 6,0221417930e23 6,,0221417930e23 6.0221417930E+23 6,0221417930E+23 6.0221417930e+23 6,0221417930e+23 6·0221417930E+23 6·0221417930e+23 6,,0221417930e+23 6.0221417930E23 6,0221417930E23 6.0221417930e23 6,0221417930e23 6·0221417930E23 6·0221417930e23 6,,0221417930e23 6.0221417930X10^23 6,0221417930X10^23 6.0221417930×10^23 […]

将“normal”std :: string转换为utf-8

让我们来看看是否可以解释这个没有太多的事实错误… 我正在写一个string类,我想它使用utf-8 (存储在一个std ::string),因为它是内部存储。 我希望它能够将“正常”的std::string和std::wstring作为input和输出。 使用std :: wstring不是一个问题,我可以使用std::codecvt_utf8<wchar_t>将std :: wstring同时转换为std :: wstring。 然而,广泛的search和search后,我还没有find一种方法来转换“正常/默认”C + + std ::string(我假设在Windows使用本地系统本地化?)和utf-8标准: :串。 我想一个select是首先将std :: string转换为std :: wstring,使用std::codecvt<wchar_t, char> ,然后将其转换为utf-8,但是这样看起来相当低效,因为至less如果我理解正确的话,char的前128个值应该直接转换为utf-8而不用转换。 我发现这个类似的问题: C ++:如何将ASCII或ANSI转换为UTF8并存储在std :: string虽然我对这个答案有点怀疑,因为它被硬编码为拉丁文1,我希望这与所有types的本地化是安全的一面。 没有答案涉及提升谢谢,我不想让我的代码库的工作与它的头痛。

find本地化的Windowsstring

我需要find当前版本的Windows正在使用的一些string。 例如,当我创build一个新文件夹时,它最初在英文版Vista上被命名为“新build文件夹”。 我需要以编程方式查找该文件夹将在我可能运行的任何语言和版本的Windows上命名。 任何人有任何想法如何做到这一点? 感谢Morinar – 我也偶然发现了这篇文章。 不幸的是,stringID似乎不是常量 – 它在我的Vista上是30396,这与他们为XP显示的不一样。 所以看起来MS并没有保持稳定。 编辑:看起来这是不可能的…? 这个应用程序运行在德国,荷兰,法国,西class牙,巴西,墨西哥,越南,台湾,中国,日本,韩国,印度,以色列,匈牙利的计算机上…你明白了。 安装所有不同的语言包需要很长的时间,并找出每种语言的“新build文件夹”。 也许最好的select是默认为“新build文件夹”,并让用户更改该值,如果他们想。 我只是希望尽可能多地找出软件,并让用户不要configuration_yet_another_setting_。

在Windows上设置Python语言环境的正确方法是什么?

我试图以感知区域的方式对string列表进行sorting。 我已经使用Babel库来处理其他i18n相关任务,但不支持sorting。 Python的locale模块提供了一个strcoll函数,但要求将进程的语言环境设置为我要使用的语言环境。 有种痛苦,但我可以忍受。 问题是,我似乎无法真正设置区域设置。 locale模块的文档给出了这个例子: import locale locale.setlocale(locale.LC_ALL, 'de_DE') 当我运行它,我得到这个: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python26\Lib\locale.py", line 494, in setlocale locale.Error: unsupported locale setting 我究竟做错了什么?

psql shell使用代码页850,windows使用1252.如何解决更改控制台代码页?

我已经安装PostgreSQL,想build立一个新的数据库,一切都很好,直到我试图使用欧元符号。 然后我知道,我得到的这个警告是有原因的。 我在启动我的psql shell的警告是: WARNING: Console code page (850) differs from Windows code page (1252) 8-bit characters might not work correctly. See psql reference page "Notes for Windows users" for details. 所以我打算按照我的说法(来自PostgreSQL Documentation 9.2 – psql ): Windows用户注意事项 psql构build为“控制台应用程序”。 由于Windows控制台窗口使用与系统其余部分不同的编码,因此在psql中使用8位字符时必须格外小心。 如果psql检测到有问题的控制台代码页,它会在启动时警告你。 要更改控制台代码页,有两件事是必要的: 通过inputcmd.exe / c chcp 1252来设置代码页。 (1252是适合于德语的代码页;用你的值replace它。)如果你使用的是Cygwin,你可以把这个命令放在/ etc / profile中 。 将控制台字体设置为Lucida控制台 ,因为光栅字体不能与ANSI代码页一起使用。 当我键入cmd.exe […]

如何在Windows中使用启用伪区域进行testing?

Windows Vista引入了三个伪区&#x57DF;的概念: Pseudo Locale Locale Name LCID =================== =========== ====== Base qps-ploc 0x0501 Mirrored qps-mirr 0x09ff East Asian-language qps-asia 0x05fe 启用Base语言环境非常有用,因为您可以检查应用程序是否使用当前语言环境来格式化date,时间,数字,金钱等项目。 例如,当前的语言环境设置为Base时 ,date将被格式化为: [Шěđлеśđαỳ!!!],8ōf[Μäŕςћ!!]ōf2006 Windows的构build实际上是在伪造的 ,然后本地化为英语: 使用这些语言环境的另一个值:它testing您的应用程序不会假设16位PRIMARYLANGID由以下内容组成: 8位主要语言ID 8位的子语言ID 当实际上PRIMARYLANGID是 : 一个10位的主要语言ID 一个6位的子语言ID 或graphics: +———————–+————————-+ | Sublanguage ID | Primary Language ID | +———————–+————————-+ 15 10 9 0 bit 这三个伪区域终于走到了第8位的末端(微软已经为打破越野车应用而疲惫不堪)。 我如何在Windows中启用伪区域设置? 也可以看看 MSDN:伪地区 MSDN:使用伪区域进行本地化testing MSDN博客:Windows […]

为什么不是QString :: localeAwareCompare()正常工作

一位芬兰客户告诉我,芬兰语的正确sorting(locale aware)是:az,å,ä,ö。 但是QString :: localeAwareCompare()在Windows Vista的Qt 4.4.2中将它返回为:a,ä,å,bo,ö,pz。 #include <qapplication.h> #include <qlocale.h> #include <iostream> #include <tchar.h> int main( int argc, char* argv[] ) { QLocale::setDefault ( QLocale( QLocale::Finnish ) ); QApplication app( argc, argv ); QString s1 = "a"; QString s2 = "ä"; QString s3 = "å"; QString s4 = "b"; QString s5 = "o"; QString […]

devisestring本地化的最佳方法

这是一个普遍的问题,是开放的意见。 我一直在想出一个很好的方法来为Windows MFC应用程序和相关实用程序devisestring资源的本地化。 我的心愿是: 必须保留代码中的string文字(而不是用macros#define资源ID的replace),以便消息仍然可以内联 必须允许本地化的string资源(杜) 不得施加额外的运行时环境限制(例如:依赖.NET等) 应该对现有的代码有最小的影响(修改越less越好) 应该是可debugging的 应该生成通用工具可编辑的资源文件(即:通用格式) 不应该使用复制/粘贴注释块来保留代码中的文本string,或者其他任何可能导致解除同步的潜力 如果允许静态(编译时)检查每个“notated”string在资源文件中, 如果允许跨语言资源string池(对于各种语言的组件,例如:本地C ++和.NET) 除了静态检查之外,我有一种方法可以在某种程度上满足我的所有愿望,但是我必须开发一些自定义代码来实现它(并且有其局限性)。 我想知道是否有人以特别好的方式解决了这个问题。 编辑:我目前的解决scheme是这样的: ShowMessage( RESTRING( _T("Some string") ) ); ShowMessage( RESTRING( _T("Some string with variable %1"), sNonTranslatedStringVariable ) ); 然后,我有一个自定义实用工具从“RESTRING”块中parsing出string,并将它们放到.resx文件中进行本地化,并使用一个单独的C#COM对象从本地化资源文件中加载它们。 如果C#对象不可用(或无法加载),我将回退到代码中的string。 macros展开为调用COM对象的模板类,并进行格式化等。 无论如何,我认为这将是有益的,加上我现在的参考。