Локализация удаленных строк уведомлений обрывов устройства, настройка языка и настроек зоны Swift - PullRequest
0 голосов
/ 26 июня 2019

Я начал переводить свое приложение, и это первый раз, когда я делаю это, но до сих пор все выполнялось просто, весь пользовательский интерфейс легко переводился, просто добавляя новый язык, и переводя значения в новый Main.strings (Italian) как тот, на котором я сейчас нахожусь. Моя проблема начинается с тех NSLocalizedString, которые я использовал, например, в удаленных уведомлениях. Я не получаю никакой ошибки от XCode, но как только я добавляю их перевод в файл Main.strings (Italian), интерфейс на устройстве возвращается к английскому, и если я закомментирую перевод, он переходит на заданный язык. Нужно ли размещать переводы для NSLocalizedString где-нибудь еще или что я здесь не так делаю? Я посмотрел на другие посты и решения в значительной степени, как я делаю вещи здесь. Как всегда большое спасибо. Вот как я это делаю:

Удаленное уведомление:

PushNotifications.sendPushNotification(to: customerFcmToken, title: String(format: NSLocalizedString("Order number: %1@", comment: ""), orderId), subtitle: String(format: NSLocalizedString("Shop: %1@", comment: ""), UserDetails.fullName!),body: String(format: NSLocalizedString("Thank you %1@! We received your order and we'll let you know when we start preparing it and when it's ready. Bye", comment: ""), customerName))

перевод в Main.strings (итальянский)

"Order number: %1@" = "Ordine numero: %1@"
"Shop: %1@" = "Negozio: %1@"
"Thank you %1@! We received your order and we'll let you know when we start preparing it and when it's ready. Bye" = "Grazie %1@! Abbiamo ricevuto il tuo ordine e ti faremo sapere quando cominceremo la sua preparazione e quando sarà pronto per essere ritirato. Ciao."

1 Ответ

0 голосов
/ 26 июня 2019

Нашел проблему. На самом деле это было связано со всей настройкой локализации, поэтому я оставлю правильные шаги для других, борющихся с ней.

Перед добавлением нового языка:

  1. Создайте новый файл String из команды addFile. Назовите это Localizable.

  2. В инспекторе свойств найдите его, выбрав English из выпадающего меню. Не отображается (Base).

  3. Теперь добавьте новый язык. Теперь он будет создавать локализованные файлы также для файла Localizable.string.

  4. Добавьте пары ключ / значение для всех NSLocalizableString, которые вы будете использовать в своем коде. Не пропустите ; в конце строки, если пропущенный файл не будет читаемым.

Так что теперь код:

Английский:

// Order Revceived
"orderReceivedTitle" = "Order number: %1@";
"orderReceivedSubtitle" = "Shop: %1@";
"orderReceivedBody" = "Thank you %1@! We received your order and we'll let you know when we start preparing it and when it's ready. Bye";

итальянский:

// Order Revceived
"orderReceivedTitle" = "Ordine numero: %1@";
"orderReceivedSubtitle" = "Negozio: %1@";
"orderReceivedBody" = "Grazie %1@! Abbiamo ricevuto il tuo ordine e ti faremo sapere quando cominceremo la sua preparazione e quando sarà pronto per essere ritirato. Ciao.";

Push-уведомление:

PushNotifications.sendPushNotification(to: customerFcmToken, title: String(format: NSLocalizedString("orderReceivedTitle", comment: ""), orderId), subtitle: String(format: NSLocalizedString("orderdReceivedSubtitle", comment: ""), UserDetails.fullName!),body: String(format: NSLocalizedString("orderReceivedBody", comment: ""), customerName))

Это отправит удаленное уведомление на языке, на котором установлено передающее устройство, а принимающее устройство получит его на этом языке.

Следующий шаг - показать удаленное уведомление в лагуне, на котором настроено приемное устройство.

Для этого отправленная полезная нагрузка должна использовать "loc-key" и "loc-args", а также в файлах Localizable.string на приемном устройстве, так как я использую удаленные уведомления для двух связанных приложений: Магазин (отправка) и Клиент (получение) ). Я обновлю ответ, включая эту часть кода, как только закончу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...