Babel核心模块不适用于Lingui

时间:2018-10-18 01:35:09

标签: reactjs translation babel linguijs

我对本地化我的应用程序的概念是陌生的。在进行了一些在线研究之后,似乎jsLingui是在我的React应用程序上使用和实现翻译的最佳库。遵循https://lingui.js.org/tutorials/react.html的教程之后,一切似乎都非常简单。但是当我运行命令

$ lingui提取,出现错误:

module.js:557     犯错 错误:找不到模块“ babel-core”     在Function.Module._resolveFilename(module.js:555:15)     在Function.Module._load(module.js:482:25).....

我尝试重新安装babel-core,它显示已安装。即使在检查文件系统时,我也将文件夹视为node_modules / babel-core。 我还检查了package.json,并在我的devDependencies中看到了“ babel-core”:“ ^ 6.26.3”。请对此有任何想法会有所帮助。

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

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

2)当我在阅读jslingui库时,我发现他们仍在从事有助于将翻译逐页完成的工作。我不知道这个任务是已经完成还是仍在开发中,因为我对这个任务很感兴趣,因为我的应用程序很大,并且随时加载整个翻译可能会成为一个真正的问题。

3)如果我在应用程序的某个部分中有与我的应用程序的另一部分中完全相同的文本,可以在一个部分中编写文本,然后在另一部分中调用id来给我返回文本怎么办?信息??或超出了库的范围。

4)我正在构建一个社交平台,因此我有来自数据库的信息,我不知道其内容,因此无法使用jslingui照原样翻译此类信息。我想对此信息进行一些翻译(类似于Facebook上发生的事情)。我知道这项任务需要自然语言处理和机器学习领域的一些严肃的人工智能。拜托,任何可以用来帮助我的应用程序转换的良好库,只能翻译提供给它的部分数据(肯定是来自DB的信息)?我已经尝试过使用Google搜索,但是没有任何具体含义(注意:我不希望使用Google Translate,因为它将帮助翻译整个页面和名称等),这会弄乱我的应用程序的用户体验

jslingui

谢谢

1 个答案:

答案 0 :(得分:0)

  

我尝试重新安装babel-core,它显示已安装。即使在检查文件系统时,我也将文件夹视为node_modules / babel-core。我还检查了package.json,并在我的devDependencies中看到了“ babel-core”:“ ^ 6.26.3”。请对此有任何想法会有所帮助。

如果您已全局安装@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库时,我发现他们仍在从事有助于将翻译逐页完成的工作。我不知道这项任务是否已经完成或仍在开发中

它仍然是under development。但是,这有点不同-它可以帮助您创建单独的消息文件,但不能自动创建。这是我们以后需要解决的问题。

  

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照原样翻译此类信息。 ...

我在这里不推荐任何方法,但是似乎您需要使用机器翻译。如果可以找到Google Translate或更好的版本。我猜这将是低质量的还是昂贵的,因为正如您所说,这不是一件容易的事。