Articles of 国际化

replace为gettext

我们在我们的产品中使用gettext进行翻译,但遇到了很多问题: 除非系统支持,否则不能使用语言。 在Solaris 9 Sparc上,如果我们将环境重置为各种英语语言环境,则如果计算机没有相应的语言环境,则消息仍然不会被翻译。 翻译文件存在,但我们无法访问它。 使用环境来制定语言 这在想要将消息翻译成不同语言的服务器中引起问题。 理论上讲,这可能是一个完全线程安全的并行操作 – 但gettext意味着我们必须对翻译进行全局locking。 无法设置默认语言 通过这个我不是代码中的文字。 我们在代码中使用MsgID,所以如果当前环境定义的语言不可用,我想要的是能够指定要回退的翻译。 但是gettext不允许这样做 – 我必须尝试,然后重新设置环境,然后再遵循不同的翻译。 (使用MsgIDs不是我的select – 我想遵循gettext标准,并使用英文作为ID,但是我被否决了,现在要做很多工作来改变它) 对UTF-8和当前本地编码进行编码的返回值是不一样的。 我不是说.po文件 – 它们全都是UTF-8(烦人的是msgfmt不处理物料清单,但无论如何)。 我的意思是在AIX和HPUX上使用UTF-8(不pipe本地/terminal编码)的gettext ngettext等的输出,还是在Solaris / Linux / FreeBSD上进行本地编码,尽pipe这可能是由iconv问题导致的。 在任何情况下,这将是很好的不必为不同的平台有特殊的代码 – 我将不得不调查,如果我可以得到bind_textdomain_codeset(domain,codepage); 帮助解决这个问题。 有谁知道提供更有用的界面的开源翻译库吗?

Emacs,Linux和国际键盘布局

当您使用非英语(俄语)键盘布局时,是否有简单的方法来使用Emacs键绑定? 无论何时打开国际布局,所有击键都按字面解释,M-ф而不是Ma。 结果我不能使用命令。 如果Linux可以根据国际版式解释不加前缀和移位前缀的键,同时保留其余的英文,那也不错。

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

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

为什么国际字符sed失败,如何解决?

GNU sed版本4.1.5似乎与国际字符失败。 这是我的input文件: Gras Och Stenar Trad – 从Moja到Minneapolis DVD [G2007DVD] 7812 | X Gras Och Stenar Trad – 从Möja到Minneapolis DVD [G2007DVD] 7812 | ÿ (注意第二行的变音符号。) 而当我这样做 sed's /.* | //'<in 我希望只看到X和Y,因为我已经要求删除所有字符,直到“|” 和超越它的空间。 相反,我得到: X Gras Och Stenar Trad – 从M? ÿ 我知道我可以用tr来删除国际字符。 首先,但是有没有办法使用sed?

在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 我究竟做错了什么?

如何在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 […]

任何人都知道翻译时区描述的来源?

有谁知道在Windows中的时区名称翻译编译列表? 我需要德语,法语和西class牙语的所有75个左右。 或者,我将如何使用.Net来编译这样的列表? 格式示例:(格林尼治标准时间+01:00)贝尔格莱德,布拉迪斯拉发,布达佩斯,卢布尔雅那,布拉格

如何更改.net Web应用程序中的默认文化设置?

我们的Web应用程序(.net / C#)使用amount.ToString(“c”)格式化货币金额,显示本地化到几个不同的地区。 我们法国的Candian用户更喜欢所有金额都是美国格式(123,456.99与fr-CA的默认窗口方式123 456,99)。 什么是最好的办法来处理呢? 我可以简单地修改每个networking服务器的窗口fr-ca的区域设置? 还是我需要创build一个自定义的文化?

wcout不能写出宽字符命令提示符

我试图在Windows命令提示符下输出以下字符:ュ(U + FF6D)。 我能够看到使用WriteConsoleW写出的字符。 我也能够看到字符,如果我使用WideCharToMultiByte使用CP_ACP代码页(chcp返回932:日语)。 但是,当我尝试在WriteConsoleW成功打印的同一string上使用常规wcout时,它会窒息。 当我执行setlocale(LC_ALL,“”)时,它会打印English_UnitedStates.1252(我安装时的默认代码页)。 为什么在别人成功的时候wcout失败? 注:我重新启动机器,将其系统区域设置更改为日本日语

完整的C ++ i18n gettext()“hello world”的例子

我正在寻找一个完整的i18n gettext()你好世界的例子。 我已经根据G. Mohanty的使用GNU gettext的“ 母语支持教程”开始了一个脚本。 我正在使用Linux和G ++。 码: cat >hellogt.cxx <<EOF // hellogt.cxx #include <libintl.h> #include <locale.h> #include <iostream> #include <cstdlib> int main (){ char* cwd = getenv("PWD"); std::cout << "getenv(PWD): " << (cwd?cwd:"NULL") << std::endl; char* l = getenv("LANG"); std::cout << "getenv(LANG): " << (l?l:"NULL") << std::endl; char* s = setlocale(LC_ALL, ""); std::cout […]