<- Back to all posts

Introducing Plurals — handle plurals in your UI copy

Jolena Ma
December 10, 2021

As products have gotten more complex, copy has become even more critical for guiding users through products. To do this well, copy often has to include dynamic values.

Lots of dynamic copy depends on counts specifically, like the number of items a user purchased or the number of notifications they have. This type of copy usually needs to get pluralized in order to display the correct copy for each possible value of the count ("1 page" vs. "2 pages"). For most teams, handling pluralized copy is a headache, with writers and designers defining them last-minute or not at all, and developers having to maintain and implement them manually.

Today, we're excited to launch pluralization support in Ditto to enable teams to manage plurals more easily and ensure users always get the right copy.

Why does pluralization matter?

Every product has UI copy with dynamic values. Much of dynamic copy often refers to counts specifically ("2 projects have been deleted") and has to get pluralized. While a seemingly small change, pluralizing copy can quickly become challenging because of (1) the amount of of copy that requires pluralization in any app and (2) the time-consuming nature of keeping track plurals and actually implementing them in code.

Writers and designers iterate on copy frequently and often don't remember or have a place to keep track of plural versions for every piece of copy that needs it. If plurals don't get tracked or mocked up anywhere, developers can easily forget about them when implementing designs, leading to users encountering something like "1 errors found" in production. Even more, the process of implementing plurals in code is menial, time-consuming, and error-prone work for developers, requiring manual formatting and custom logic for turning singular words into plurals within large numbers of strings.

Handling pluralization gets even more complicated when you start involving multiple languages. Each language has a different number of plural forms and different rules for when to use each form. While English only requires 2 plural forms ("1 project" vs. "2 projects"), Arabic has 6 plural forms — there's one form for describing 1 of something, another for 2, another for 3-10, another for 11-99, and so on. Russian uses one form when referring to 1-21 of something but a different form when there's 11.

The task of managing plurals across writing, design, and development can get complex quickly (as we've personally experienced while building Ditto!). That's why we're excited to introduce pluralization support to Ditto.

How can you manage plurals in Ditto?

Using Ditto, you can now add plural versions of any piece of copy, track them all in one place, hand them off to engineers, and implement them in code with the help of our developer integrations.

In our web app or Figma plugin, you can mark any text as having plurals, and then define those alternative plural versions directly in the UI. To make implementation easier for developers, every plural version gets assigned a specific plural form: Zero, One, Two, Few, Many, or Other (ie. the 6 industry-standard categories). Pluralization information will then get included when developers pull down the latest copy using our API/CLI, including any variables, so they can easily display the right plural version in production.

For copy that needs to get pluralized and is repeated in multiple places, you'll be able to use Ditto Components to streamline that process. You can update plurals for one instance and automatically sync those changes to all other instances.

To get started, just open up any project in Ditto and select a piece of text. When you hover over the text label, you'll be able to click "+ Plurals" to turn on pluralization and start defining plural versions. Check out our help guide for more information!

What's next?

We're so excited by all the updates we've released lately to help teams manage all the different types of dynamic text that get worked on -- and have lots more on the roadmap. Up next: variable and pluralization support for variant text in Ditto!

Success! 🥳 Look forward to Ditto updates in your inbox.
Oh no — something went wrong while submitting the form. Please try again!