Swift: получение локализованной строки с аргументом из каталога строк

У меня есть следующий ключ и его перевод в каталоге строк (Xcode 15.3):

когда я вставляю ключ в SwiftUIText вот так:

let appName = "some name"
Text("login success subTitle\(appName)")

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

String(format: "login success subTitle%@", arguments: [appName])

но он продолжает возвращать ключ (без аргумента) вместо перевода (с аргументом).

Любые мысли приветствуются.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
483
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Механизм интерполяции строк из представления Text SwiftUI также работает с String(localized:):

let appName = "some name"
let welcome = String(localized: "login success subTitle\(appName)")
print(welcome)
// You have successfully logged in. Welcome to some name.

Если вы дали ему собственный ключ, он будет выглядеть так: String(format: String(localized: "my_key"), appName)

RMP 02.07.2024 20:15

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

Как я могу показать пустой значок при получении push-уведомления на iOS?
Передайте общий тип T через withCheckedContinuation
Как использовать UICollectionViewCompositionalLayout для правильной визуализации удаленного изображения в UIKit
Расширьте класс Swift, который уже соответствует некоторому протоколу
Почему Swift выдает «Невозможно использовать мутирующий член для неизменяемого значения» в некоторых вызовах цепочки, но не в других?
Как установить делегата для частного API в Swift или Objective-C?
Приложение Flutter не может обнаружить определенные периферийные устройства с помощью библиотеки BluetoothCore IOS/Swift
Является ли предупреждение Swift 5.10 о «вероятно неправильном» фактически неправильным для необязательных CFType?
Неустранимая ошибка: не удалось декодировать данные .json из пакета приложения
Объединить один и тот же элемент основных данных из нескольких представлений таблиц в UIKit