• Dashboard
  • API
  • Guides
  • FAQ
  • iOS > Custom data

    Custom region/language

    Batch allows you to set a custom region or a custom language that will override the value detected by the SDK. By default, Batch collects the language and the country of your users' devices.

    Setting a custom region/language is useful if:

    • You don't want to use the values detected by Batch.
    • Your users can choose their own language or region for localization purposes.

    Custom locale

    Here is how to set a custom region/language:

    BatchUserDataEditor *editor = [BatchUser editor];
    [editor setLanguage:@"en"]; // Language must be 2 chars, lowercase, ISO 639 formatted
    [editor setRegion:@"US"]; // Region must be 2 chars, uppercase, ISO 3166 formatted
    [editor save];
    
    // This is how you retrieve your custom values. Values are nil by default.
    NSString *language = [BatchUser language];
    NSString *region = [BatchUser region];
    let editor = BatchUser.editor()
    editor.setLanguage("en") // Language must be 2 chars, lowercase, ISO 639 formatted
    editor.setRegion("US") // Region must be 2 chars, uppercase, ISO 3166 formatted
    editor.save()
    
    // This is how you retrieve your custom values. Values are nil by default.
    let language = BatchUser.language
    let region = BatchUser.region

    If you call editor method before startWithAPIKey it will return nil. You should always call it after you started the SDK, and check nullity to be safe.