dxgettext和Windows 10

Alo*_*mer 5 delphi gettext

有没有人在Windows 10下运行dxgettext

我从Windows 10下的官方主页安装了dxgettext,运行正常.

但每当我尝试运行一些已安装的工具(例如msgfmt.exe)时,它们就不会真正运行,而是再次调用自己,生成数千个进程并使系统爬行.

这是发生的事情:

  • 我打电话 msgfmt --help
  • 可执行文件msgfmt挂起,阻止命令窗口
  • 在TaskManager中,我看到msgfmt.exe突然出现了多个进程

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

我的问题:

有没有人在Windows 10下运行dxgettext的工具?

让它运行需要哪些步骤?

Alo*_*mer 6

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

  1. 我从https下载了https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.19.8.1-v1.14/gettext0.19.8.1-iconv1.14-static-32.zip : //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
    
    Run Code Online (Sandbox Code Playgroud)

结果:

  • 我用的Dxgettext和工具似乎工作得很好.到目前为止,我发现我的工作流程没有问题,但有一个例外:
  • 如果我使用assemble嵌入mo-files到编译的exe JvGnugettext.pas,我得到以下错误:

    在.exe文件中找不到Pach代码"6637DB2E-62E1-4A60-AC19-C23867046A89".您确定.exe文件已使用正确的库进行编译吗?

    这可能与原始问题无关.但是,通过assemble.exe使用https://sourceforge.net/p/dzlib/code/HEAD/tree/buildtools/trunk/中的版本替换原始文件来解决此问题(请参阅@dummzeuch的回答).


dum*_*uch 5

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

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


cds*_*enz 5

我在 Windows 10 1607 中的 dxgettext 1.22 也遇到了这些问题。我一开始更改了一些 DLL,但一直让 bash.exe 循环并让我的电脑死机。

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

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

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

  3. 运行 setup-x86.exe 并选择“基本”包(安装)。接下来,选择必需的包以防万一。

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

    cyg*.dll 
    bash.exe
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  6. 从备份文件夹中恢复以下文件(请参阅 #4)并复制到 dxgettext 文件夹。

    cyggettextsrc-0-14-1.dll
    cyggettextlib-0-14-1.dll
    cygintl-3.dll
    
    Run Code Online (Sandbox Code Playgroud)
  7. 像这样运行,您可能会收到错误 740(需要提升)。所以:设置 ggmerge.exe,ggfmt.exe 以管理员身份运行

** 编辑** 在网上找到这个非常有趣的链接,来自一个提供用 Delphi 编写的免费备份的程序员。好消息是他调整了 dxgettext 工具以在 Windows 10 中运行。这对我帮助很大。 http://personal-backup.rathlev-home.de/translate.html