问题标签 [linguijs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使用 js-lingui 以编程方式编译语言
我最近尝试将js-lingui集成到我的 react 项目中。我无法正确处理的棘手部分是将我的语言编译为 js 文件。
我的目标如下:我将通过一些运行任务(可能是 gulp 或 webpack)来组装我的语言。这就像浏览我的项目并输出适当的 json 文件一样简单。但是,要使用这些文件,它们必须通过 js-lingui 编译。我不知道该怎么做。
我知道lingui-cli,它允许我在 cli 上执行此操作,但我正在寻找一种在我的 js 任务运行程序中以编程方式执行此操作的方法。在我的梦想中,我可以在内存中组装语言,通过 js-lingui 中的编译机制对它们进行管道传输,并输出准备好使用的 js 文件。
我玩了一下require('lingui-cli')(及其子模块),但这没有用。
reactjs - Babel-core 模块不适用于 Lingui
我对本地化我的反应应用程序的概念不熟悉。在网上做了一些研究之后,似乎 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
谢谢
filepond - Linguijs 和 FilePond 格式冲突。无法正确使用 { char
在FilePond 中,我们应该使用属性来本地化文本。例如labelMaxFileSize="Maximum file size is {filesize}"
. 在项目中,我们使用js-lingui。所以实际的翻译应该是这样的:
问题:FilePond 和 lingui 都使用{}
字符来标记变量。这导致了问题。如何修复?
reactjs - 我在反应时遇到了无效的钩子调用
这是我为 lingui-js 制作导航器的脚本。我在本地遇到了这个错误:×
错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一: 1. 你可能有不匹配的 React 版本和渲染器(例如 React DOM) 2. 你可能违反了 Hooks 规则 3. 你可能有多个 React 副本同一个应用程序请参阅 ...react-invalid-hook-call 以获取有关如何调试和修复此问题的提示。
“反应”:“^16.8.6”,“反应域”:“^16.8.6”,
我的文件:
linguijs - 从 webtranslateit.com 为 LinguiJS 选择哪种目录格式可以与复数一起使用?
由于 i18next 的捆绑大小很大,我正在尝试从 i18next 切换到 LinguiJS。
我使用 webtranslateit,它支持这些格式。
我目前在 webtranslateit 上使用 i18next json v3 格式:
在 webtranslateit 上选择哪种格式可以处理多种复数形式?(不仅仅是单数和单复数)
谢谢
reactjs - lingui 宏使用 bable-plugin-macros 抛出错误
我在带有 CRA 的 React 项目中使用 lingui 包,在使用 lingui/macro modules t 方法时出现错误。
当我构建项目时收到 webpack 警告消息。
像这样。
关键依赖:依赖的请求是一个表达式
这似乎是由于 bable-plugin-macro,但我不知道确切的原因。帮我!!
这是我的错误和代码
错误:
包.json:
webpack - lingui + webpack 在生产中找不到模块'./*/messages.js'
我有一个带有动态加载 lingui 的 create-react-app PWA,在这里
它可以在本地develop
和production
模式下正常工作
但是,当部署在生产服务器中时,有些东西会刹车:
*所有 lingui 文件都可以从服务器获得,
*service-worker 正确预缓存资源,包括所有messages.po
和所有i18n-*
js 块
*似乎在应用程序中延迟导入它们不会触发任何fetch (不是 service-worker 或 xhr )并失败,例如Cannot find module './en_GB/messages.js'
关于检查什么的任何提示?
编辑:
发现 webpack 正确地将 *.po 文件映射到可延迟导入的块 url
,但它不会为已编译的 *.js(或 *.json)块创建映射(奇怪的是,除了许多语言中的一种
)一个临时的解决方法,我让应用延迟导入 i18n 未编译.po
的文件,而不是.js
在生产中编译,
唯一的副作用是 *.po 文件在运行时由应用编译,导致 lang 加载和 lang 设备之间的(微小的不明显的)延迟时间
javascript - 带有 Lingui (i18n) 的语言切换器,我希望选择的语言在整个应用程序中保持不变,即使在刷新时也是如此
我正在为应用程序的 i18n 试用 Lingui。我根据文档和教程创建了一个语言切换器,但我想知道我应该如何设置它,以便每次我在应用程序中选择一种语言时,即使刷新它也会在整个应用程序中保持不变。
目前我可以切换它并更改页面,但每次我刷新它都会回到英语。
这是我的文件:
index.js
应用程序.js
语言选择器.js
javascript - 为 i18n 应用程序创建语言切换器
我正在学习如何在应用程序上实现 Lingui(i18n)。一切都设置好了,但我想知道我应该如何创建一个语言切换器来在我的应用程序上的语言目录之间进行切换。
这是我的index.js文件
我的App.js文件
和i18n.ts文件
每次我指定 es,en 或 fr defaultLocale 时,语言都会发生变化,但我希望有一个语言按钮可以通过选择在页面上自动更改它。
例如:“export const defaultLocale = “fr”;” (在 i18n.ts 中)