dxgettext 和 Windows 10

dxgettext and Windows 10

有没有人 dxgettext 运行宁低于 Windows 10?

installed dxgettext from the offical homepage 在 Windows 10 下,效果很好。

但每当我尝试 运行 某些已安装的工具(例如 msgfmt.exe)时,它们实际上并没有 运行,而是再次调用自己,生成数千个进程和使系统爬行。

事情是这样的:

我想,我必须用一些较新的版本替换 dxgettext 包的 gettext 工具,但在尝试弄清楚之前,我首先想问问其他人是否遇到过类似的问题并找到了可行的解决方案。

我的问题:

有没有人得到 Windows10 下 dxgettext 运行ning 附带的工具?

需要哪些步骤才能达到 运行?

我通过以下方式解决了问题:

  1. 我下载了https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.19.8.1-v1.14/gettext0.19.8.1-iconv1.14-static-32.zip from https://mlocati.github.io/articles/gettext-iconv-windows.html
  2. 我用 zip 存档中的文件替换了 dxgettext 安装目录中的以下文件:

    msgattrib.exe
    msgcat.exe
    msgcmp.exe
    msgcomm.exe
    msgconv.exe
    msgen.exe
    msgexec.exe
    msgfilter.exe
    msgfmt.exe
    msggrep.exe
    msginit.exe
    msgmerge.exe
    msgunfmt.exe
    msguniq.exe
    xgettext.exe
    

结果:

  • Dxgettext 和我使用的工具似乎工作正常。到目前为止,我的工作流程没有发现任何问题,只有一个例外:
  • 如果我使用 assemblemo 文件嵌入到使用 JvGnugettext.pas 编译的 exe 中,我会收到以下错误:

    Pach code “6637DB2E-62E1-4A60-AC19-C23867046A89” was not found in .exe file. Are you sure the .exe file has been compiled with the correct libraries?

    这可能与原来的问题无关。但是,通过将原始 assemble.exe 替换为 https://sourceforge.net/p/dzlib/code/HEAD/tree/buildtools/trunk/ (see ).

  • 中的版本来解决。

官方主页上的安装程序已经很老了。上次我查看时,它包含几个来自原始 gnugettext 项目的过时的 dll 和可执行文件,它们在最近的 Windows 版本下无法正常工作。您可以从我在 OSDN 上的 buildtools 存储库中获取它们。这些对我有用。但不能保证它们对你有用。

https://osdn.net/projects/dzlib-tools/scm/svn/tree/head/buildtools/trunk/

我在 Windows 10 1607 中使用 dxgettext 1.22 时也遇到了这些问题。我一开始更改了一些 DLL,但一直 bash.exe 循环并占用我的 PC 至死。

所以我所做的基本上是安装最新的 Cygwin 32 位并替换了适当的 DLL。我保留了 gettext 的那些。说明:

  1. 以管理员身份从 http://dxgettext.po.dk/download 下载并全新安装 dxgettext-1.2.2.exe。重新启动。

  2. https://cygwin.com/install.html 下载 Cygwin 32 位,在与 dxgettext 不同的文件夹中(我使用默认值,c:\cygwin)

  3. 运行 setup-x86.exe 和 select "Base" 包(安装)。接下来,Select 需要的包以防万一。

  4. 将以下文件从 dxgettext 文件夹移动到备份文件夹(稍后我们将使用一些 DLL):

    cyg*.dll 
    bash.exe
    
  5. 将以下文件从 c:\cygwin 复制到 dxgettext 文件夹:

    bash.exe  (set to run as admin)
    cygwin1.dll
    cygiconv-2.dll
    cygintl-8.dll
    cygreadline7.dll
    cyggcc_s-1.dll
    cygncursesw-10.dll
    
  6. 从备份文件夹中恢复以下文件(参见#4)并复制到 dxgettext 文件夹。

    cyggettextsrc-0-14-1.dll
    cyggettextlib-0-14-1.dll
    cygintl-3.dll
    
  7. 运行像这样,您可能会收到错误 740(需要提升)。所以:将 ggmerge.exe、ggfmt.exe 设置为 运行 as admin

** 编辑** 在网上发现这个非常有趣 link,来自一位提供用 Delphi 编写的免费备份的程序员。好的是他在 Windows 10 中将 dxgettext 工具改编为 运行。这对我帮助很大。 http://personal-backup.rathlev-home.de/translate.html