VIEW THIS AS

Auto mode follows the Route Engine until you choose a viewpoint.

YOU ARE HERE

ROUTE CHECK

CONNECTED TO

WHAT NEXT

Use the canonical route for this room, or HELP if you are unsure.

Translate Like a Pro | 6050 — Betty Blocks Multilingual Apps, Translation Keys, Browser Locale, CSV and Model-Based Content QA

How do you translate a Betty Blocks application into multiple languages without mixing up interface labels, product data, browser-language settings and user preferences? This complete Betty Blocks multilingual app guide shows how to configure built-in Translations, use stable translation keys, work with CSV import and export, and test real pages in more than one language. It also explains when a model-based translation design is a better choice.

Betty Blocks documentation describes two distinct approaches. Its built-in Translations feature is designed for fixed interface strings and normally selects language from the browser, falling back to the primary language. The documented model-based approach uses Language and Translation records, relationships and page inputs for dynamic content such as product descriptions and FAQs. These are complementary tools, not interchangeable promises of automatic translation.

This matters to anyone building customer portals, employee apps, product catalogues or public information services around the world. A language change should help someone understand the same choices and consequences while preserving the correct records, permissions, values and workflow state. The following guide starts with the quick setup, explains decisions in plain language, and finishes with realistic checks that reveal problems before users do.

Quick answer: the safest way to build a multilingual Betty Blocks app

For static labels, open Tools > Translations, manage the supported languages, choose a primary language, create keys and translation values, then apply those keys to the relevant components in Pages. Use the documented CSV export and import workflow when collaborating with translators. For dynamic records or an explicit user language switcher, evaluate the platform’s model-based guide using Language and Translation models and language-aware page routes. Test the rendered result, not just the editing screen.

A practical launch checklist

  • Identify fixed interface text versus dynamic content records.
  • Confirm the primary language and supported target languages.
  • Define consistent translation keys and translator context.
  • Connect the correct keys to actual page components.
  • Export and review CSV translations before controlled import.
  • Model localized FAQ or product records where appropriate.
  • Decide whether browser, URL or saved preference governs language.
  • Test missing translations and fallback behavior.
  • Verify permission, record identity and transaction values.
  • Review accessibility, text expansion and complete journeys.

The full Betty Blocks multilingual application guide

1. Know which kind of translation your application needs

Betty Blocks has a built-in Translations feature for fixed interface wording and a documented model-based approach for content that lives in data records. A button label and a product description may be translated for the same visitor, but they require different arrangements of information.

Consider a real situation. Imagine a product portal. The heading ‘Products’ is predictable interface language; the name and description of every product change as the catalogue grows. Putting both kinds of text into a single fixed list makes editorial updates awkward and increases the chance that a new product appears only in the source language.

What to do and verify. Classify every visible string as interface resource, authored content, user-entered data, external response, or technical identifier. Create separate inventories, owners, and review procedures before adding a language. A successful release should demonstrate both translated interface labels and the correct language-specific content for the same record.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

2. Understand the browser-language starting point

The documented built-in Betty Blocks Translations feature reads the browser’s active language settings. If a matching translation exists it displays that value; otherwise it uses the primary language. This is a useful default, not proof that the user lives in a particular country or wants that language forever.

Consider a real situation. A bilingual employee opens an internal approval app in a browser set to Dutch. The app can display Dutch labels while an English-speaking colleague sees the same workflow in English, but both colleagues must retain the same roles, document IDs, and approval permissions.

What to do and verify. Decide whether browser detection is acceptable for the audience. For users who need a deliberate switch or persistent personal preference, study the model-based route rather than promising an unsupported built-in control. Record expected fallback language for every tested browser configuration.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

3. Choose and protect a primary language

In the Translations manager the primary language supplies the default text. Treat it as the complete, readable source that the application can use when a secondary-language value is missing. A fallback prevents a blank button, but may still surprise someone halfway through a critical task.

Consider a real situation. Suppose a request form is translated into Spanish except for an unfamiliar warning. If Spanish is missing for that key, the English primary value appears. The form may still work, but the person could misunderstand why a submission was rejected or delayed.

What to do and verify. Write the primary text clearly before translation, define terms consistently, and review every fallback encountered during testing. Mark high-impact missing translations as release blockers. Do not substitute an invented translation just to make coverage appear complete.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

4. Manage languages deliberately

The documentation places language management under Tools, Translations and Manage languages. Languages must be added before values can be created for them. Teams benefit from writing down the intended language variants rather than using loosely described market names that can hide significant regional differences.

Consider a real situation. Portuguese for Brazil and Portuguese for Portugal may differ in spelling, preferred terms and expectations. Treating one as a guaranteed substitute for the other may make a payment or support flow sound unfamiliar even if the broad meaning remains understandable.

What to do and verify. List the exact supported languages and the corresponding testers, reviewers and content owners. For each market specify the required default, region-sensitive terms and formatting rules. Adding a language is the start of a coverage obligation, not evidence of completion.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

5. Create stable translation keys

The Betty Blocks documentation uses unique keys such as Btn_Submit to connect interface components with translated values. Keys are identifiers for developers, not words to show to readers. They should remain stable when copy changes, so a harmless edit to a button does not break another screen.

Consider a real situation. An account app has three buttons labelled ‘Save’: one saves a profile, one saves a payment method and one saves a draft. A single universal key might be tempting, yet the translation may need different verbs or explanations depending on what is saved.

What to do and verify. Use keys that describe meaning and context, such as profile_save_changes or invoice_save_draft. Keep a glossary of ownership and usage, and avoid using the English wording itself as the only identifier. Verify the chosen key in every component that uses it.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

6. Separate a key from the translated value

A translation key is a lookup reference; its value is human-readable text in a chosen language. Editors should change the value when the phrasing improves while the stable key remains attached to the correct component. Confusing the two creates brittle layouts and accidental literal code on screen.

Consider a real situation. In a multilingual booking form, the field label ‘Start date’ may be revised to ‘Date of arrival’. A robust setup updates the language values tied to the same semantic field instead of creating a second, unrelated field or replacing a database property name.

What to do and verify. Document where each key appears, what action it represents, and whether the text has variables. Keep operational identifiers outside the translation table and make sure no user ever sees an untranslated key such as btn_submit in a released interface.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

7. Apply translation keys to real components

The platform guide describes selecting a component in the Pages module, opening its text or label settings, using the Translations control and choosing a key. Creating a perfect table of translations has no user benefit until each applicable screen component actually references the correct key.

Consider a real situation. A designer translates the words ‘Cancel’ and ‘Confirm’ in the manager but leaves the confirmation dialog’s buttons hard-coded. The spreadsheet reports full coverage while a person using the interface still sees mixed languages at the moment they make a decision.

What to do and verify. Walk through screens and nested components rather than trusting a key count. Inspect headings, field labels, buttons, table columns, empty states, modals, navigation, and reusable partials. Trigger the actual event so you know which text is rendered.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

8. Use CSV export and import carefully

Betty Blocks documents CSV export and import for translation keys and values. This can speed collaboration with language specialists, but a CSV is only a transport format. It cannot understand the difference between cancelling a subscription and cancelling an unsaved change without adequate context.

Consider a real situation. A translator receives a row labelled ‘Close’ without a screenshot. It could mean closing a modal, ending a case or permanently closing an account. The wrong choice may sound plausible in isolation while changing the perceived consequence for the user.

What to do and verify. Export a baseline, add context notes and screens to the handoff, and preserve an unchanged recovery copy. Validate key uniqueness and language columns before importing. Diff the returned export against the source set and test actual interface paths after every import.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

9. Provide translator context

A one-word string is often ambiguous. The word ‘Open’ can be an adjective describing a case or a command to display a file. Betty Blocks keys identify where text belongs, but your language team also needs intent, audience and consequences to select the right wording.

Consider a real situation. Consider a public-benefits app where ‘Apply’ means submit an application, not spread a substance. Someone translating a disembodied string might choose a different meaning. A preview of the field, the user’s goal and the next step removes the ambiguity.

What to do and verify. Create context notes with a screenshot, a plain-language intent statement, any variables, and a maximum-width caution where appropriate. Encourage reviewers to ask about uncertainty rather than selecting the nearest dictionary definition. Recheck the completed interaction in context.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

10. Treat placeholders as information, not punctuation

Interfaces often inject names, dates, numbers or counts into sentences. These variable values belong to application data, while surrounding text is translation material. A target language may require a different sentence structure, and a naïve word-for-word substitution can produce misleading grammar.

Consider a real situation. A message saying ‘You have 1 requests’ is a small grammatical defect; a deadline message swapping the meaning of a date can be serious. Translators need the complete message purpose and representative values, not a bare list of fragments around an unexplained variable.

What to do and verify. Record every placeholder and its data type. Test singular, plural, zero, long names, currency values and an empty value. If the platform-specific pattern cannot express a grammatical requirement safely, redesign the message or use an appropriate supported formatting strategy.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

11. Translate validation and error messages

A good form lets a person understand what was wrong and how to correct it. Fixed labels can be localized through keys, but errors may originate from conditional logic, data validation or external APIs. The translation inventory must include every route by which a problem reaches the screen.

Consider a real situation. A person fills out a complaint form in French and receives an English message, ‘Request denied’, even though the actual issue is a missing attachment. This is both a language failure and a guidance failure; it discourages the user from trying a correct submission.

What to do and verify. Test required fields, invalid formats, duplicate records, insufficient permissions, network errors and session expiry. Preserve the difference between a temporary technical failure and a denied request. Ask a native reviewer whether the instruction makes a next action clear.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

12. Keep status words tied to actual state

Terms such as pending, approved, rejected and expired are not decorative labels. They communicate a system state that may have real consequences. Translation must preserve the distinction between the action available now, the status already recorded and a message describing what happens next.

Consider a real situation. A purchase request approved by one reviewer may still be pending finance review. Translating an intermediate status as final approval could lead someone to order supplies too soon. The same issue occurs when a button called ‘Approve’ is mistaken for a status label.

What to do and verify. Maintain a status glossary and a table mapping each displayed translation to a backend state. Confirm the request ID and status before and after every test action. Never let translated text imply that authorization or delivery occurred when only a draft was saved.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

13. Use model-based translations for evolving content

The official model-based Betty Blocks guide illustrates Language and Translation models alongside example Product and FAQ models. This separates record identity and relationships from per-language text, making it possible for editors to add or correct localized content without rebuilding fixed interface resources.

Consider a real situation. A product catalogue holds one product ID, inventory count and image, with separately related titles and descriptions in English and Dutch. A person changing language should see the same product, not an independently duplicated product with unrelated stock information.

What to do and verify. Design the data model before entering hundreds of localized records. Keep stable IDs and shared business fields on the parent record; link language-specific text to the correct parent and language. Check whether editors can accidentally attach the wrong title to the wrong product.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

14. Define the Language model precisely

In the documented model-based example a Language record includes a language name and code. The code is what page logic and translated records compare; it should be stable, normalized, and selected only from the languages the application is prepared to serve.

Consider a real situation. A page route carrying nl should not accidentally match an unsupported entry such as a misspelled code. A polite language selector also needs a recognizable display name so readers can make a deliberate choice, especially when several variants share a language family.

What to do and verify. Create a controlled list of supported codes, one clear default, and a policy for new variants. Validate any URL or input language against this list before using it in a query. Do not let arbitrary user input choose unrestricted records or bypass permissions.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

15. Build relationships without duplicating facts

In Betty Blocks the model-based guide links translations to the language and the parent content. It illustrates distinct relations for product title and description translations and for FAQ questions and answers. These relationships determine whether the correct text appears with the correct item.

Consider a real situation. A catalogue record may have five translated descriptions but only one price. If each translation is built as a duplicate product, prices can drift and stock can disagree. If translation relations are incorrectly named, one product can receive another product’s description.

What to do and verify. Inspect both the relation’s human-readable name and the underlying association details. Create a small test set with deliberately different descriptions for each item, then verify exact pairings across languages. A multilingual database is trustworthy only when record identity survives the switch.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

16. Make editorial ownership visible

When localized content is stored as records, someone needs to approve it. Availability in a database is not the same as a professionally reviewed translation. Assign ownership to source changes, translation drafts, market review and release decisions.

Consider a real situation. A safety instruction in a training portal changes after a policy update. The old translation remains grammatically correct but describes the previous procedure. Without a revision owner and a review date, the translated screen silently becomes less accurate than the source.

What to do and verify. Store revision status, last review, source version and responsible reviewer where the application’s design permits. Prevent unapproved content from appearing as authoritative. Revisit translations when policy, product or contractual information changes, even if the visible button labels stay the same.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

17. Keep user preference separate from browser preference

The model-based guide illustrates storing a user’s locale through a Webuser property and also carrying a language code in the page URL. This supports explicit selection, unlike relying only on browser detection. Both sources of preference must be reconciled intentionally.

Consider a real situation. Someone shares a link to a Dutch product page with an English-speaking colleague. The recipient may want the shared language just for that visit, or may prefer their saved English choice. An invisible rule that flips back and forth makes the interface feel broken.

What to do and verify. Define precedence for the URL, saved user preference, browser language and fallback. Display a language control and avoid redirect loops. Test anonymous and signed-in journeys separately, because a URL parameter should never become permission to read someone else’s records.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

18. Understand page input variables and partials

The model-based Betty Blocks tutorial demonstrates a language input variable in page routes such as /en/products and passes that variable explicitly to header partials. Reusable elements do not necessarily inherit every page variable by magic.

Consider a real situation. A product page changes to Dutch while the shared navigation remains English because its partial was not given the language input. The reader sees an apparently bilingual interface that could be mistaken for a partially translated page or a navigation bug.

What to do and verify. List page inputs and the partials that consume them. Pass language context deliberately, verify links preserve it, and test a direct deep link after a fresh browser session. Do not hide route behavior inside undocumented assumptions about inheritance.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

19. Distinguish automatic synchronization from user choice

The official model-based example uses a conditional and form action to synchronize the locale when a route language differs from a user’s stored setting. This is an example implementation, not proof that every app should silently modify preferences whenever someone opens a shared link.

Consider a real situation. A user opens /nl/products for a one-off comparison. If the app updates their permanent preference without explanation, tomorrow’s dashboard may unexpectedly appear in Dutch. The rule may be technically consistent while still violating the visitor’s reasonable expectation.

What to do and verify. Decide whether route selection is temporary or persistent, and make the user-facing behavior predictable. Test a copied deep link, a return visit, a signed-out visit and a browser with a different default. Keep audit logs free of unnecessary personal inference.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

20. Construct a manual language switcher that preserves context

The model-based tutorial shows a selector that updates a user’s locale and can navigate to a language-specific URL. Changing languages should preserve the logical task the person is doing rather than sending them to an unrelated home screen.

Consider a real situation. A reader opens the third item of a FAQ and chooses another language. Being sent to the first product page forces them to repeat navigation and may lose important context. A good switch keeps the same resource when a corresponding localized view exists.

What to do and verify. Map equivalent pages and record identifiers. Update the intended locale only after a successful action, then navigate or refresh as the design requires. Verify that unsaved form data is handled honestly; warn before discarding it rather than implying the information was saved.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

21. Use the Dynamic Translation Text pattern carefully

Betty Blocks documents a Dynamic Translation Text widget pattern combining a Data List, a Conditional and a Text component. It selects the translation record whose language code matches the active language for the relevant content relation.

Consider a real situation. A product card contains a title relation and a description relation. Choosing the title relation for both widgets can silently display a title twice. If multiple translation records share the same parent and language without control, duplicate text may appear.

What to do and verify. For every widget confirm the data relation, text property, left-side language-code field and right-side active language value. Seed two records that are intentionally easy to tell apart and verify exactly one appropriate translation appears in each location.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

22. Plan missing-language behavior before launch

A default language for static UI does not automatically solve missing translated product records. A model-based query can return no match. Without an explicit rule the user may see an empty card, inconsistent content or a misleading claim that translation is complete.

Consider a real situation. A store launches Italian pages with Italian navigation but only half its descriptions translated. It is better to show a clearly designated fallback or mark an item as awaiting a translation than to invent facts about the product to fill the space.

What to do and verify. Define what happens when a record lacks the requested locale. Test absent title, absent description and absent FAQ answer independently. Ensure fallback never changes the identity, price, eligibility or status of a business record.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

23. Design multilingual search as a separate problem

Showing translated labels does not guarantee that search will understand target-language queries. Search indexes, query matching and result snippets depend on what content is stored and which fields are searched. UI localization and search retrieval solve related but different problems.

Consider a real situation. A Dutch visitor searches the catalogue for a Dutch product term. The button says ‘Search’ in Dutch, but the query returns nothing if only the English source title was indexed. The same product is present; the search access path is missing.

What to do and verify. Specify which translated fields are searchable and under which language. Test exact terms, spelling variants, empty results, mixed-language queries and a stable product ID. Avoid pretending that a translated search box automatically provides multilingual search.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

24. Handle dates, numbers and prices independently

Translation keys change words, not necessarily regional formatting. Dates, decimal separators, time zones and currencies can carry meaning that must be formatted using the relevant locale and business rules. Do not equate a chosen UI language with a verified geographic location.

Consider a real situation. A payment summary displays 1,250.50 to one reader and 1.250,50 to another. The underlying amount should remain identical. A due date must not flip its day and month meaning just because the app rearranged the visible characters.

What to do and verify. Test known numeric fixtures and identify the authoritative transaction currency and time zone. Keep values typed as numbers and dates in storage. Translate surrounding labels without altering quantities, taxes or permitted payment methods.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

25. Test right-to-left text without promising automatic mirroring

Adding a language in a translation table does not alone establish a complete right-to-left interface. Layout direction, nested bidirectional text, icon meaning, field alignment and keyboard behavior require separate testing where the app serves such languages.

Consider a real situation. A right-to-left form may contain an email address, a Latin product code and Arabic explanatory text. Reversing every character or mirroring a directional icon thoughtlessly can make the page harder to use rather than easier.

What to do and verify. Test on real devices and browsers with relevant reviewers. Check text order, placeholders, focus movement, navigation, error messages and mixed-script content. Do not claim RTL support based solely on seeing translated Arabic words in a component.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

26. Keep accessibility functional in every language

A translated interface should remain usable with keyboards, screen readers, zoom, small screens and high-contrast settings. Accessibility is not guaranteed by the presence of correctly translated visual labels; hidden component descriptions may also need review.

Consider a real situation. A primary button looks correct in Spanish but its screen-reader label still says a different English action. A person relying on assistive technology then hears a consequence that does not match the visible page.

What to do and verify. Inspect accessible names, focus order, dialog announcements, field associations, language identification and text expansion. Ask target-language users to perform genuine tasks with relevant access methods. Count a screen as complete only when the interaction is understandable beyond sighted mouse use.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

27. Separate marketing SEO pages from private application screens

A public translated landing page may require indexable language-specific URLs, accurate canonical and alternate-language metadata, and substantial distinct content. An authenticated workflow often should not be indexed at all. The Betty Blocks translation approach does not by itself supply every public SEO requirement.

Consider a real situation. A private employee approval form receives a Dutch button translation. That does not mean search engines should list its internal workflow, nor does it mean a public product page has its own search-eligible Dutch URL.

What to do and verify. First decide whether the experience is public content or a restricted app. Apply proper indexability and language routing only where appropriate. If public SEO is a goal, validate rendered pages and signals separately from the app’s localization table.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

28. Protect permissions and audit trails through language changes

Language is a presentation choice. A role, a reviewer assignment and an approval record must be authorized by the same backend policy no matter which translated wording appears. Query filters must not accidentally equate a language route with access rights.

Consider a real situation. A user who can read a case summary in English should not gain access to confidential case notes simply by switching to a French route. Nor should a mistaken translation suggest that a case is approved when the backend still says pending.

What to do and verify. Run identical permission tests for each locale, including forbidden routes and saved links. Verify that translated messages describe the actual authorized result. Avoid putting secrets, personal identifiers or restricted data into public translation resources.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

29. Test the application as a complete journey

Screenshots and key counts can catch superficial defects but cannot prove a user’s task succeeds. Test the same representative journey in every supported language, from entry and form validation to saved data, review, confirmation, and return visit.

Consider a real situation. A customer creates a support ticket in one locale, changes language and returns to its history. If the ticket ID changes, the title disappears or its status becomes ambiguous, the application has failed a business task even if the navigation text is attractive.

What to do and verify. Build a matrix of locale, browser, device, permission role and journey. Record expected IDs, amounts and states before testing. Include network failure and missing-translation cases. Require a human language reviewer to explain what the final confirmation means.

The question to ask is whether a person reading in the target language can make the same informed decision as a person reading the source language, while the app preserves the same authoritative business record. Check the visible message alongside the stored result; translation quality is not established by appearance alone.

Practice clinic: realistic problems and acceptance tests

A localization project becomes reliable when developers and reviewers can reproduce failures, describe the expected behavior and compare it with the actual result. Work through the following cases in a safe test copy of the application. Each exercise is deliberately small enough to isolate an issue but meaningful enough to represent something a real person might encounter.

Case 1: An untranslated confirmation modal

Open the modal in every configured language and compare its primary action, cancel action, consequences and accessible labels. The modal is a decision point; a correct surrounding page cannot compensate for a contradictory final button.

A reviewer should confirm the same record is changed regardless of language and that a declined action changes nothing.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 2: A new catalogue item

Create a new Product record with a stable reference and only one translation. Open it in two locale routes, inspect the missing-language behavior, then add its second translated title and description.

The test passes when both locales refer to the same record, not separate products with divergent stock or price.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 3: Two translations with the same key

Import a CSV containing an accidental duplicate key in a test environment. Examine the import outcome, compare the resulting key list and verify the intended component on a live screen.

Treat conflicting source-of-truth entries as a data-quality defect that must be resolved before deployment.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 4: A Dutch browser visiting an English link

Open the exact English deep link from a Dutch-language browser, first signed out and then signed in with a stored language preference. Write down which preference wins in each state.

The application should have an understandable, documented precedence rule and should not enter an automatic redirect loop.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 5: A Spanish translation with a missing error string

Enter an invalid date and a duplicate email while viewing the Spanish interface. Record every message that appears, including messages returned after server validation.

Translating the form labels is insufficient if people cannot understand how to correct an error.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 6: An edited source-language question

Change an FAQ question while deliberately leaving its secondary-language text unchanged. Inspect the review workflow and determine whether the older target text is still a faithful representation.

If the meaning has changed, mark or withhold the outdated translation until it has been reviewed.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 7: A long German button label

Replace a short source label with a longer, natural German translation and test narrow viewport widths, zoom, keyboard focus and text wrapping.

A design that clips critical text creates a practical misunderstanding even when the translation itself is excellent.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 8: An Arabic form beside Latin codes

Test mixed-direction email, invoice number and product identifiers within Arabic interface text. Inspect the field labels and how pasted values appear after submission.

Machine identifiers must remain intact; avoid reversing their characters or allowing layout direction to change their meaning.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 9: A user without translation-edit permissions

Sign in as a normal user and try the same multilingual screens that an editor sees. Verify language choice does not expose hidden translation-management controls or protected data.

Changing a display language must never escalate authorization or bypass the actual permission model.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 10: A translated price summary

View a fixed transaction value in two locales and compare the stored amount, displayed currency, decimal separator and payment result.

A formatting difference can be legitimate; a changed monetary value without a business rule is not.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 11: A stale navigation partial

Translate a page heading but leave its shared header partial configured without the route language input. Reproduce the mixed-language experience and correct the variable wiring.

Reusable navigation is part of the journey and requires its own data and language context.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 12: A translation imported from another project

Export an established key set, adjust a candidate CSV and import it to a test app. Check whether shared keys refer to the same functions in both products.

A key that once meant ‘Close window’ must not be reused for ‘Close account’ because the English surface word matches.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 13: A user opening a copied language link

Share a translated FAQ link across accounts with different language preferences. Verify the correct item appears and that authorization behaves as it did before the language switch.

Language is a reading preference, not a method of transferring record ownership or account access.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 14: A form with unsaved edits

Fill half a form, switch languages and observe whether values persist, are reset or require a warning. Test the same interaction when validation has already displayed an error.

A good experience makes lost work unlikely and never tells the visitor information was saved unless the backend confirms it.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 15: An empty search result in a second language

Search for a translated product title, then inspect which fields the query actually uses. Compare the product’s identity and language-specific text against the search index.

A localized search button can remain useless unless the relevant translated content is genuinely retrievable.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Case 16: A release after a new feature

Add a new field, dialog and error path in a test release. Review whether the translation key inventory, CSV, application data and quality checks all reflect the change.

Translation completeness needs to be reevaluated for each product change, not merely at the original launch.

Record the starting language, the user role, the affected record or screen, and the observed output. Repeat once with a different browser setting and once with the translation deliberately missing. Keep the distinction between a text defect, a routing defect and a backend-state defect, because each requires a different correction.

Frequently asked questions

Does Betty Blocks translate my app automatically?

The platform can display the translations you configure, and its built-in feature selects a matching language from browser settings. That is not a guarantee that newly written product descriptions or unexpected API messages will be translated correctly without a content and review process.

Where are built-in translations managed?

The documented navigation is Tools > Translations. Use Manage languages to add the supported languages and select the primary language, then enter values for your unique translation keys.

Can I translate without changing database field names?

Yes. Treat the field’s stable identifier separately from its display label. In model-based multilingual content, keep structural records and business fields separate from their translated title or description records.

What happens when a language is unavailable?

For the built-in feature, the documented behavior falls back to the primary language if the browser language has no matching translation. Dynamic content needs an explicit missing-record strategy, which should be tested rather than assumed.

Can editors manage translated product descriptions?

The official model-based example uses related translation records so localized content can be changed as data. Design editing rights, approval states and source-version checks to suit the actual product.

Does translating a navigation bar improve SEO automatically?

No. A translated private app and an indexable public language-specific page have different purposes. Search visibility depends on accessible, substantive content and correct page-level routing and SEO signals.

Is a CSV enough to guarantee quality?

No. CSV helps move keys and values between workflows but does not prove the wording fits the screen, preserve every variable or verify the backend outcome. Review imported results in the running app.

How should the app handle user choice?

The documented model-based example demonstrates a user locale and language-aware routes. Choose a clear precedence policy among explicit selection, stored preference, URL and browser language; do not silently infer residence or eligibility from language.

What should a release reviewer sign off?

Sign off tested language coverage, real task completion, correct record and permission behavior, accurate critical messages, missing-language handling, accessibility and visible confirmations that match actual server results.

The standard to aim for

A multilingual app is not four sets of labels. It is one trustworthy service that can be understood through several language choices. Betty Blocks provides practical building blocks for the job, but the builder still has to decide what belongs in fixed resources, what belongs in relational records, how language is chosen, and which evidence proves correctness. Keep the same identity and business truth beneath each localized view; make the user’s choices understandable; and preserve a clear route for correcting mistakes.

Official documentation and related reading