PingOne

Uploading a language bundle

You can import language bundles from a translation service for localizing languages that are not already available in PingOne. Uploading a bundle allows you to create new keys in English and update the translations for existing keys in English and other languages for the custom messages.

Before you begin

Make sure your CSV file is formatted correctly. Refer to the following Language bundle syntax requirements section for details and examples.

Steps

  1. To upload the entire language pack for a particular language:

    1. In the PingOne admin console, go to User Experience > Languages.

    2. In the list, to the right of the language for which you want to upload the language bundle, click the More Options (⋮) icon.

    3. Click Upload Bundle.

  2. To upload the translatable keys for a particular page under a module:

    1. In the PingOne admin console, go to User Experience > Languages.

    2. In the list, select the language you want to edit.

      Result:

      The details panel for the selected language opens.

    3. In the Module list, select the module for which you want to upload the associated translatable keys.

    4. In the Page list, select the page for which you want to download the associated keys.

    5. Select Upload Bundle at the top of the configuration panel.

    6. In the modal, select Select a file and open the CSV file from your device.

    7. Click Upload.

Next steps

Ensure that the uploaded language is enabled. Learn more in Adding a language.

Language bundle syntax requirements

When you upload a language bundle, malformed strings can pass upload validation but fail at runtime in the browser UI. Use the following guidelines to ensure that your language bundle strings are correctly formatted and render properly in the UI.

Plain strings

Use plain text directly when no runtime values are required.

Example
forms.button.text.signOn,Iniciar sesión

Variable interpolation

Use {variableName} to insert a runtime value. The variable name must be a single token, with no spaces or extra text inside the braces.

Valid example
Your recovery code expires in {minutes} minutes.
Invalid example
Your recovery code expires in {minutes minutos} minutes.

ICU plural syntax

  • Use ICU MessageFormat for pluralization with the following pattern:

    Example
    {variable, plural, =1 {singular form} other {plural form}} trailing text
  • Keep descriptor words outside the closing brace for the plural block.

  • Don’t put extra text inside the =1 {} or other {} arms beyond the translated noun or word.

    Valid example
    {requirement} {requirement, plural, =1 {character} other {characters}} required
    Invalid example
    {requirement} {requirement, plural, =1 {character} other {characters} required}

ICU select syntax

  • Use select for branching logic, such as gender-specific or category-specific text.

    Example
    {gender, select, male {He logged in} female {She logged in} other {They logged in}}
  • Make sure you don’t have extra text inside the select block after the last arm.

Nested plurals and selects

  • Nesting is supported, but use it sparingly.

  • Close each nested block before adding trailing text.

Key, value, and bundle limits

Translation key requirements
  • Can contain letters, numbers, hyphens (-), underscores (_), and dots (.)

  • Must match the pattern ^[a-zA-Z0-9-_.]+$

  • Can be up to 500 characters long

  • Must not contain backslashes (\)

Translation value requirements
  • Can be up to 1024 characters long

  • Must not be blank

  • Must use plain text only, HTML isn’t supported

Bundle limits
  • A single upload supports up to 1000 translations.

  • A module supports 500 custom keys by default, or up to 2000 with a feature flag. To request a feature flag, contact Ping Identity support.

Common bundle errors

Common upload errors include:

  • Extra text inside ICU plural or select arms

  • Blank translation values

  • Backslashes in keys

  • Keys that use invalid characters such as spaces or unsupported special characters