Я новичок в концепции локализации моего реактивного приложения. Проведя некоторое исследование в Интернете, кажется, что 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 и увидел "babel-core": "^ 6.26.3" как часть моих devDependencies. Пожалуйста, любые идеи по этому поводу будут полезны.
Помимо насущного вопроса, у меня есть еще несколько вопросов;
1) В документации я не уверен, где сохранить созданный файл .babelrc. Я надеюсь, что это должно быть внутри моей папки babel-core.
2) Когда я читал о библиотеке jslingui, я обнаружил, что они все еще работают над чем-то, что поможет выполнять отдельные переводы по страницам. Я не знаю, выполнена ли эта задача или все еще находится в стадии разработки, потому что я действительно заинтересован в этом, так как мое приложение очень большое и постоянная загрузка всего перевода может стать реальной проблемой.
3) Что, если у меня есть текст в одной части моего приложения, который точно такой же, как в другой части моего приложения, можно ли записать его в одном разделе и вызвать идентификатор в другой части, чтобы вернуть мне информацию? или это выходит за рамки библиотеки.
4) Я создаю социальную платформу, поэтому у меня есть информация, поступающая из БД, содержание которой я не знаю, поэтому такая информация не может быть переведена с помощью jslingui, как есть. Я хотел бы представить перевод этой информации (аналогично тому, что происходит на Facebook). Я знаю, что эта задача требует серьезного искусственного интеллекта в области обработки естественного языка и машинного обучения. Пожалуйста, любая хорошая библиотека, которую я могу использовать, чтобы помочь моему приложению переводить только те части данных, которые ему были предоставлены (определенно информация, поступающая из БД) ??. Я пробовал погуглить по этому поводу, но у меня нет ничего конкретного (NB: я не хочу Google Translate, потому что он поможет перевести всю страницу + имена и т. д.), Что испортит пользовательский интерфейс моего приложения.
Спасибо





I have tried re-installing the babel-core , and it shows installed. Even when I check on my file system, I see the folder as node_modules/babel-core . I also checked my package.json and I see "babel-core": "^6.26.3" as part of my devDependencies. Please any ideas around this will be helpful.
Если вы установили @lingui/cli глобально, удалите его и переустановите локально. Если вы используете Babel 7 (ваши плагины / пресеты начинаются с @babel/), вам необходимо установить babel-core@^7.0.0-bridge.0 и @babel/core. Оба локально как devDependencies. В некоторых случаях также помогал старый добрый выключи и снова включи: rm -rf node_modules и все переустанавливали ...
1) In the documentation, I am not sure on where to keep .babelrc file created. I hope it is suppose to be inside my babel-core folder.
Вы должны хранить его в корне вашего репозитория (рядом с package.json), если у вас нет особых потребностей.
2) When I was reading on the jslingui library, I discover that, they are still working on something that will help separate translations to be done page by page. I do not know whether this task is completed or still under development
Это все еще в разработке. Однако он немного отличается - он помогает вам создавать отдельные файлы сообщений, но не автоматически. Это то, что нам нужно решить в следующих версиях.
3) What if I have text in one part of my application which is exactly the same as in another part of my application, is it possible to write it in one section and call the id in another part to give me back the information?
У вас есть два варианта. Либо вы используете сгенерированные идентификаторы сообщений:
// App.js
<Trans>Hello World</Trans>
// Component.js uses the same message
<Trans>Hello World</Trans>
В этом случае вам нужно перевести Hello World только один раз, потому что сообщения группируются при сборе из исходных файлов.
Другой вариант - вы используете собственные идентификаторы:
// App.js - define message
<Trans id = "msg.hello">Hello World</Trans>
// Component.js - use message
<Trans id = "msg.hello" />
4) I am building a social platform therefore I have information coming from the DB, which I do not know the content therefore such information can not be translated using jslingui just as it is. ...
Я не могу порекомендовать здесь какой-либо подход, но, похоже, вам нужно использовать машинный перевод. Либо Google Translate, либо лучше, если вам удастся его найти. Полагаю, это будет либо некачественно, либо дорого, потому что, как вы сказали, это нетривиальная задача.