1

我对本地化我的反应应用程序的概念不熟悉。在网上做了一些研究之后,似乎 jsLingui 是在我的 React 应用程序上使用和实现翻译的最佳库。按照https://lingui.js.org/tutorials/react.html的教程,一切看起来都非常简单。但是当我运行命令时

$ lingui extract,我得到错误:

module.js:557 抛出错误;错误:在 Function.Module._resolveFilename (module.js:555:15) 在 Function.Module._load (module.js:482:25) 处找不到模块 'babel-core' .....

我尝试重新安装 babel-core ,它显示已安装。即使我检查我的文件系统,我也会看到该文件夹​​为 node_modules/babel-core 。我还检查了我的 package.json,我看到 "babel-core": "^6.26.3" 作为我的 devDependencies 的一部分。请任何关于此的想法都会有所帮助。

除了这个紧迫的问题,我还有其他一些问题;

1)在文档中,我不确定在哪里创建 .babelrc 文件。我希望它应该在我的 babel-core 文件夹中。

2) 当我阅读 jslingui 库时,我发现他们仍在研究有助于逐页完成单独翻译的工作。我不知道这项任务是否已完成或仍在开发中,因为我对此非常感兴趣,因为我的应用程序非常大并且始终加载整个翻译可能会成为一个真正的问题。

3)如果我的应用程序的一部分中的文本与我的应用程序的另一部分完全相同,是否可以将其写在一个部分中并在另一部分调用 id 以将信息返回给我?或者它超出了图书馆的范围。

4)我正在建立一个社交平台,因此我有来自数据库的信息,我不知道内容,因此无法使用 jslingui 翻译这些信息。我想介绍一些对这些信息的翻译(类似于 Facebook 上发生的事情)。我知道这项任务在自然语言处理和机器学习领域需要一些严肃的人工智能。拜托,我可以使用任何好的库来帮助我的应用程序仅翻译提供给它的数据部分(绝对是来自数据库的信息)??我试过用谷歌搜索,但没有得到任何具体信息(注意:我不想要谷歌翻译,因为这将有助于翻译整个页面+名称等),这会破坏我的应用程序的用户体验

jslingui

谢谢

4

1 回答 1

1

我尝试重新安装 babel-core ,它显示已安装。即使我检查我的文件系统,我也会看到该文件夹​​为 node_modules/babel-core 。我还检查了我的 package.json,我看到 "babel-core": "^6.26.3" 作为我的 devDependencies 的一部分。请任何关于此的想法都会有所帮助。

如果您已@lingui/cli全局安装,请将其删除并在本地重新安装。如果你使用 Babel 7(你的插件/预设以 开头@babel/),那么你需要安装babel-core@^7.0.0-bridge.0@babel/core. 两者都在本地作为 devDependencies。在某些情况下也有帮助的是旧的将其关闭并再次打开rm -rf node_modules然后重新安装所有内容......

1)在文档中,我不确定在哪里创建 .babelrc 文件。我希望它应该在我的 babel-core 文件夹中。

package.json除非您有特殊需要,否则您应该将其保存在存储库的根目录中(在 旁边)。

2) 当我阅读 jslingui 库时,我发现他们仍在研究有助于逐页完成单独翻译的工作。不知道这个任务已经完成还是还在开发中

它仍在开发中。但是,它有点不同 - 它可以帮助您创建单独的消息文件,但不是自动的。这是我们需要在进一步的版本中解决的问题。

3)如果我的应用程序的一部分中的文本与我的应用程序的另一部分中的文本完全相同,是否可以将其写入一个部分并在另一部分调用 id 以将信息返回给我?

你有两个选择。您正在使用生成的消息 ID:

// App.js
<Trans>Hello World</Trans>

// Component.js uses the same message
<Trans>Hello World</Trans>

在这种情况下,您只需要翻译Hello World一次,因为从源文件中收集消息时会对其进行分组。

其他选项是您使用自定义 ID:

// App.js - define message
<Trans id="msg.hello">Hello World</Trans>

// Component.js - use message
<Trans id="msg.hello" />

4)我正在建立一个社交平台,因此我有来自数据库的信息,我不知道内容,因此无法使用 jslingui 翻译这些信息。...

我不能在这里推荐任何方法,但似乎您需要使用机器翻译。如果您设法找到它,可以使用谷歌翻译或更好的翻译。我猜它要么是低质量的,要么是昂贵的,因为正如你所说,这不是一项微不足道的任务。

于 2018-10-18T04:52:32.707 回答