Необходимо перевести слова в файле .ts приложения angular-7 для локализации приложения

Мне нужно локализовать приложение angular-7. Для этого мы уже создали модуль локализации, который импортирует все необходимые зависимости из '@ngx-translate/core';. Также я импортировал userService, на котором выбранный язык будет установлен для перевода приложения. Я перевел все html страницы, но сообщения, написанные в .ts файле, нужно преобразовать. У меня нет никакого способа добиться этого. Может ли кто-нибудь помочь мне выбраться из этого?

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
0
2 716
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны использовать TranslateService из @ngx-translate/core. У вас есть два пути:

  • translate.instant with просто переведет слово на указанный язык напрямую.
  • translate.get которые получают значение из наблюдаемого.

Вот небольшой пример, как его использовать:

import { TranslateService } from '@ngx-translate/core';

yourTranslatedText : string;
yourTranslatedObservableText : string;

constructor(
  private translateService: TranslateService,
) {
   yourTranslatedText = this.translateService.instant('your.key.string'); 
   this.translateService.get('your.key.string').subscribe((translatedString) => {
      yourTranslatedObservableText = translatedString;
   });
}

Обратите внимание, что вы можете передать Множество ключей, чтобы вы могли перевести все слова, которые вы хотите, сразу.

this.toastCtrl.errorToast("Please upload pdf file"); этот текст я должен изменить. Вы имеете в виду, что мне нужно создать переменную с этой строкой во французском файле json, например, "cartComponent":{"toaster":"Étiquette d'expédition téléchargée avec succès."}, а затем получить к ней доступ из файла .ts, например, let msg =this.translateService.instant( toaster);, но это не работает..
Ni3 03.05.2019 13:00

Если вы перевели html, вы знаете, что у вас есть такие ключи, как: «cartComponent.toaster». Это ключ, который вы должны использовать в translateService. Например: let msg =this.translateService.instant('cartComponent.toaster'); (обратите внимание, что это строка)

Daniel Piñeiro 03.05.2019 13:11

Да, вам нужно добавить «Пожалуйста, загрузите pdf-файл» в файл json, а затем использовать ключ в translateService.

Daniel Piñeiro 03.05.2019 13:13

Эй .. Даниэль ... теперь я столкнулся с проблемой, например, когда я вошел в систему, html загружается на выбранном языке, но когда я обновляю страницу, все меняется на английский, а не на выбранный язык. Вы можете помочь мне?

Ni3 06.05.2019 14:29

Вероятно, this.translateService.instant называется до, вы меняете язык с помощью this.translateService.use(lang). Это одна из причин, по которой использование translateService.get немного лучше, оно разрешается на фактический язык независимо от того, когда вы меняете язык..

Daniel Piñeiro 06.05.2019 14:58

В каждом угловом компоненте мне нужно использовать этот синтаксис this.translateService.use(lang), это то, что вы говорите?

Ni3 06.05.2019 15:01

Нет, что в вашем коде вы должны сделать this.translateService.use перед всем. (например, служба, которая предшествует ngOnInit(), и только одна служба, а не в каждом компоненте) или используйте решение translateService.get()

Daniel Piñeiro 06.05.2019 20:00

Как мы можем передать им массив ключей? Как я буду использовать эти ключи в разных местах?

Optimist Rohit 22.09.2021 15:32

Другие вопросы по теме

Локализация чтения эмодзи на IOS 10.0 или выше
Как интернационализировать приложение OSGi с помощью Eclipse?
Можно ли установить описание приложения в магазине Google Play в зависимости от страны/региона?
Страница Razor с использованием локализации Core 2.2 не работает
Локализованный рисунок не отображается в соответствии с его локалью
Как я могу явно задать направление двунаправленного текста, чтобы он правильно отображался, когда два конфликтующих языка используются вместе?
Как проверить, находятся ли значения столбца 1 в фрейме данных B между значениями столбцов 1 и 2 в фрейме данных A. Если это правда, вернуть столбец 2 кадра данных A
Есть ли учебник по MvvmCross.Forms и локализации с использованием .Net Standard
Как назначить ячейки (данные сопоставления) из Google Таблиц с помощью локализации I2 в Unity?
Как установить локаль по запросу с помощью symfony 3.4