File description

The Application Resource Bundle (.arb) is a localization file format based on JSON, with localizable resources encoded as JSON objects. Each resource has a resource entry identified by a resource key, and an optional resource attribute entry identified with a resource attribute key. ARB files are used to localize apps built with Google's Mobile App SDK called Flutter.

Good to know

POEditor imports the resource attributes in the comments section. This way, translators have access to each string's description.
Plural translations can be provided for several quantities: 0, 1, 2, "few", "many", "other". The variations are identified by a resource ID suffix which must be one of "Zero", "One", "Two", "Few", "Many", "Other". The "Other" variation is used when none of the other quantities apply. All plural resources must include a resource with the "Other" suffix.

Documentation

The official Application Resource Bundle Documentation https://github.com/google/app-resource-bundle/wiki/ApplicationResourceBundleSpecification
Flutter internationalization documentation: https://flutter.dev/docs/development/accessibility-and-localization/internationalization

Sample file

View Download
{
    "appName": "TODO List",
    "@appName": {
        "description": "Please don't change the name of the application",
        "type": "text"
    },
    "loginText": "Enter your credentials below to login",
    "loginMessageSuccess": "Login successful!\nWelcome back %s!",
    "loginMessageError": "Make sure you've entered the correct username and password",
    "loginPasswordForget": "I forgot my password",
    "loginPasswordReset": "Enter your address in the field below. A new password will be sent to your inbox.",
    "registerText": "Sign up for free! No credit card required!",
    "registerMessageSuccess": "Thank you for signing up !\nPlease check your email address to activate your account.",
    "registerMessageError": "We were unable to sign you up.\nPlease correct the marked fields.",
    "menuTerms": "Terms and conditions",
    "onlineUsersOne": "Just {count} user online.",
    "onlineUsersOther": "There are {count} users online.",
    "@onlineUsers": {
        "description": "This is displayed in My Account page",
        "type": "text",
        "placeholders": {
            "count": {
                "description": "number of users online",
                "example": "26"
            }
        }
    }
}

See also: