iOS SDK
Language and copy
AppNorthCopy() follows the language in which the host app is displayed. Unsupported languages fall back to English. Supply a copy value to community, detail, or chat views to override their labels.
Follow or override the language
The bundled languages are Danish, German, English, Spanish, Finnish, French, Italian, Japanese, Korean, Norwegian Bokmål, Dutch, Polish, Brazilian Portuguese, Swedish, Turkish, Simplified Chinese, and Traditional Chinese.
Use AppNorthCopy(language:) for an app-owned language picker. Supported identifiers include en, es, de, pt-BR, zh-Hans, and zh-Hant. Portuguese variants resolve to Brazilian Portuguese; no and nn resolve to nb. Chinese script or region chooses the Chinese table.
import SwiftUI
import AppNorth
struct LocalizedCommunity: View {
let client: AppNorthClient
let appLanguage: String
private var copy: AppNorthCopy {
var value = AppNorthCopy(language: appLanguage)
value.feedback = "Ideas and updates"
return value
}
var body: some View {
AppNorthView(client: client, copy: copy)
}
}The English label override above is intentional example copy: localize your override with your own app's resources. Each writable property replaces one SDK label. AppNorthCopy.spanish is a compatibility convenience for AppNorthCopy(language: "es"). The API reference lists every label.
Translate ideas on the device
On iOS 18 or later, the built-in detail screen uses Apple's Translation framework for an idea's title and description. .automatic offers the button when language detection considers the idea foreign; .always always offers it; .hide hides it. Detection is cached by idea ID. Translation text is not sent to AppNorth for translation.
import SwiftUI
import AppNorth
struct TranslationPreference: View {
let client: AppNorthClient
var body: some View {
AppNorthView(
client: client,
uiConfiguration: AppNorthUIConfiguration(translateButton: .automatic)
)
}
}Translation availability depends on the OS and Apple's supported language pairs and resources. On iOS 16 and 17 the translation control is absent, including with .always. The translation target follows the host app's language; overriding UI copy alone does not change that target. Community content, board names, and chat messages are not automatically rewritten by AppNorthCopy.
Verify
Set your app language to a supported language and inspect community, detail, and chat labels.
Pass an unsupported identifier and confirm English fallback.
On iOS 18 or later, open a foreign-language idea and switch between translation and original.
Check
.hideand a device running an earlier supported OS; neither should show the translation control.