Strings & Translations

Translatable text units with context, placeholders, and plural forms.

What Are Strings?

Strings are the individual pieces of text that need to be translated. Each string is identified by a unique key — a short, descriptive name that stays the same across all languages. The key is what your app or website uses to look up the correct translation at runtime.

For example:

KeyEnglish TextFrench Translation
welcome.messageWelcome back!Bon retour !
button.submitSubmitEnvoyer
error.networkConnection lost. Please try again.Connexion perdue. Veuillez réessayer.

Context for Translators

Every string can include optional context — a note that tells translators where and how the string appears in the product. Good context leads to better translations because translators understand the meaning and tone.

Examples of helpful context:

  • "Button label on the checkout page"
  • "Error message shown when payment fails"
  • "Notification title for new message — keep it short"
  • "Placeholder text inside the search input field"
The more context you provide, the better your translations will be. Even a short note like "menu item" or "page title" helps translators choose the right words and tone.

Placeholders

Some strings contain dynamic values that get filled in when the text is displayed — like a user's name, a number, or a date. These are called placeholders, and they are marked with curly braces in the text.

For example, the string "Hello, {name}!" has a placeholder called name. When the app displays this string, it replaces {name} with the actual user's name.

Each placeholder can specify:

  • Name — What the placeholder is called (e.g., "name", "count", "date")
  • Type — What kind of value it holds (e.g., text, number, date)
  • Example — A sample value to help translators (e.g., "Alice", "42", "January 5")

Translators must keep the placeholders in their translations — they can move them around to fit the grammar of the target language, but they should not remove or rename them.

Organizing with Tags

Tags let you organize strings by feature area, screen, or any category that makes sense for your team. This makes it easy to filter, find, and export specific groups of strings.

Common tagging strategies:

  • By featureonboarding, settings, checkout, notifications
  • By prioritylaunch-critical, post-launch, nice-to-have
  • By typeerrors, labels, tooltips, emails

Maximum Length

Some strings need to fit within a specific space in the UI — a button, a menu item, or a notification title. You can set a maximum character length on a string to alert translators when their translation might be too long. This is especially important because translations are often longer than the original text (German and French text, for example, is typically 20-30% longer than English).

Translations

Each string has one translation per target language. When you add a new string to a project, it starts with no translations — translators then provide the localized text for each language the project targets.

How Translations Are Created

Every translation tracks its origin — how it was created. This helps teams understand the balance between human and machine work and identify translations that may need extra attention.

OriginWhat It Means
HumanWritten directly by a human translator
AIGenerated by AI translation — requires human review before publishing
ImportBulk imported from an external file (such as XLIFF or CSV)
SyncPulled in from an external translation management system (such as Crowdin)

Plural Forms

Some strings change depending on a quantity — "1 item" vs. "5 items" or "No messages" vs. "1 message" vs. "3 messages." These are called plural strings, and they need special handling because different languages have very different plural rules.

English is simple — it only has two forms (singular and plural). But other languages are more complex:

  • Arabic has six plural forms
  • Polish has four plural forms
  • Chinese and Japanese have only one form (no plural distinction)

Bosca uses the international CLDR standard for plural categories. When a string is marked as plural, translators provide a separate translation for each category their language requires:

CategoryWhen It Is UsedEnglish Example
ZeroZero quantity (used in some languages, not English)--
OneSingular"1 item"
TwoDual form (used in Arabic, Welsh, etc.)--
FewSmall quantities (used in Slavic languages, Arabic, etc.)--
ManyLarge quantities (used in Arabic, Polish, etc.)--
OtherGeneral form — required for every language"5 items"
You do not need to provide every category for every language. English only needs One and Other. Always provide at least the Other form, and consult the CLDR plural rules to see which categories each language requires.

Progress Tracking

Bosca tracks translation progress for each language in a project, giving you a clear picture of where things stand at any time.

MetricWhat It Shows
Total stringsThe total number of strings in the project
TranslatedStrings that have at least one translation in this language
ApprovedTranslations that have been reviewed and approved
PublishedTranslations that are live and available in production
AI generatedMachine translations that still need human review
Human translatedTranslations created or reviewed by a person
Completion percentageOverall translation coverage for this language
Use progress tracking to identify which languages are falling behind and where to focus translation effort. A low completion percentage might mean you need more translators for that language, or that new strings were recently added and need attention.