#liferay
Вопрос:
У меня был liferay 7.0, когда вы открываете ispect ( Ctrl Shift I), затем переходите в консоль и пишите
для английского языка
Лайфрей.Language.get(«войти»);
«Войти»
немецкий язык
Лайфрей.Language.get(«войти»);
«Anmelden»
Но теперь , когда я перешел на Liferay 7.4, я получаю
для английского языка
Лайфрей.Language.get(«войти»);
«войти»
немецкий язык
Лайфрей.Language.get(«войти»)
«войти»
Об этой проблеме было сообщено https://issues.liferay.com/browse/LPS-123191?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
Комментарии:
Ответ №1:
Из одного из комментариев в билетах, которые вы сами связали:
Эта опция была исключена в соответствии с LPS-113569 и больше недоступна. Вы можете получить дополнительную информацию в запросе на вытягивание, в котором такая функциональность не рекомендуется:
Лайфрей.Language.get заменен языковым фильтром, и мы также хотим удалить зависимость AUI, поэтому в этом изменении мы переносим Liferay.Язык.получите функцию для интерфейса-js-web.
Обратите внимание, что перенесенная версия ограничена простым возвратом ключа: она не сохраняет сомнительное резервное поведение старой реализации, которая использовала устаревший синхронный запрос к серверу для извлечения значения, что вызвало бы предупреждение консоли и, скорее всего, в конечном итоге вернет ключ в любом случае (если только соответствующее значение не оказалось в ядре); короче говоря, старая реализация только оклеила реальную проблему (сбой фильтра для выполнения его фактической работы).
Одна из связанных проблем связана с обновлением документации, чего еще не произошло.
Отредактируйте, следуя вашему комментарию:
Документация, на которую вы ссылаетесь в своем комментарии, выглядит как еще не обновленная документация.
В общем, я подтвердил ваше утверждение (которое, кстати, не было вопросом).: Действительно, функция, которую вы использовали, становилась все менее и менее полезной (так как она была хороша только для нескольких переводов из ядра, никогда из какого-либо модуля, и извлекала их убивающим производительность способом. Невозможно расширить его, чтобы получить ключи всех модулей и сделать это эффективно, поэтому вам следует использовать любую технику, которую используют библиотеки, используемые вами для перевода вашего интерфейса)
В случае, если вы создаете свой пользовательский интерфейс с помощью JSP, это было бы так <liferay-ui:message key="your-key-of-choice"/>
. В других случаях вы знаете, что используете, и у этой платформы определенно есть средства для обеспечения локализации.
Комментарии:
1. извините, я не получил вашего ответа! Ты имеешь в виду, что мне нужно подождать ? Я тоже нашел этого дока github.com/liferay/liferay-docs/blob/master/en/developer/…
2. Спасибо за ваш четкий ответ, я использую angular и freemarker, но в некоторых областях это просто javascript, я постараюсь найти способ избежать использования javascript
3. ну, есть также способы локализации javascript (и в любом случае angular не так уж далек от javascript).
4. можете ли вы предоставить мне хороший способ локализации ?
5. Я не угловатый парень, прости. На самом деле, я не такой уж и сторонний парень… это был бы отдельный вопрос, такой как «как я могу локализоваться в angular?» — но на него, вероятно, хорошо ответят уже в документации angular
Ответ №2:
да, это правда, это больше не работает , как сказал Олаф Кок , вам нужно реализовать новый способ локализации javascript, для этого есть инструмент npm @clavis/translation-transformer
Комментарии:
1. Пожалуйста, добавьте дополнительные сведения, чтобы расширить свой ответ, например, ссылки на рабочий код или документацию.
2. да, изначальная проблема была решена в Жизни, но не для сообщества . help.liferay.com/hc/en-us/articles/… решение, о котором я упоминал ранее, заключается в > > skypack.dev/view/@clavis/translation-transformer