Skip to content
AppNorth
Log in

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.

View Markdown

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.

LocalizedCommunity.swift
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.

TranslationPreference.swift
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

  1. Set your app language to a supported language and inspect community, detail, and chat labels.

  2. Pass an unsupported identifier and confirm English fallback.

  3. On iOS 18 or later, open a foreign-language idea and switch between translation and original.

  4. Check .hide and a device running an earlier supported OS; neither should show the translation control.