Language & copy
The Language & copy section of the Finder Builder controls two things: the primary language visitors see in the embedded widget (English or Spanish), and per-string text overrides that let you replace any piece of default UI copy with your own wording — in whichever language you choose.
Where to find it
In the Finder Builder sidebar, click Language & copy (under the Look & feel group). The panel has two sub-sections: Language and Text Overrides.
🟡 [SCREENSHOT: Language & copy panel showing the English/Spanish language card selector at the top and the grouped text-override fields below.]
Choosing a language
The Language sub-section shows two cards:
| Card | Value | Default strings |
|---|---|---|
| English | en | English UI text |
| Spanish | es | Spanish UI text |
Click a card to select it. The active card is highlighted. When you change the language, the default values shown in each Text Override field update to reflect the new language’s defaults. The Finder Builder itself always stays in English regardless of which language is selected here.
💡 Tip: Switching the language does not clear your text overrides — overrides you’ve entered remain in place and take precedence over whichever language is selected.
What the language setting controls
The language setting applies to every piece of UI text the widget renders: search labels, result counts, filter headings, hours badges, day names, error messages, and more. It does not affect your location data (location titles, addresses, and custom fields come from your data, not the localization system).
Text overrides
The Text Overrides sub-section lets you replace any individual string with your own copy. Overrides take precedence over the selected language’s defaults. Leave an override field blank to use the language default.
Overridable strings
Strings are grouped by the part of the widget they appear in:
Search
| Label | Key | Default (en) |
|---|---|---|
| Search label | search.label | Search locations |
| Search placeholder | search.placeholder | Search city, state, ZIP, or location name |
| Search button | search.button | Search |
| Filters button | search.filtersButton | Filters |
| Suggestions aria label | search.suggestionsAria | Search suggestions |
| Loading suggestions | search.loadingSuggestions | Finding matching places… |
| Google suggestions heading | search.googleSuggestions | Google suggestions |
| Local suggestions heading | search.localSuggestions | Matching your locations |
List
| Label | Key | Default (en) |
|---|---|---|
| List aria label | list.ariaLabel | Locations |
| Results eyebrow | list.nearbyResults | Nearby results |
| Singular location label | list.locationCount.one | location |
| Plural location label | list.locationCount.other | locations |
| Using your location pill | list.usingLocation | Using your location |
| Quick filters aria label | list.quickFiltersAria | Quick filters |
| More filters button | list.moreFilters | + More |
| Empty state title | list.emptyTitle | No locations found |
| Empty state body | list.emptyBody | Try adjusting your search or filters. |
| Selected pill | list.selected | Selected |
| Fallback location type | list.fallbackIndustry | Location |
| Directions button | list.directions | Get directions |
| Show more button | list.showMore | Show more locations |
Map
| Label | Key | Default (en) |
|---|---|---|
| Popup close aria label | map.closePopupAria | Close popup |
| Active marker aria label | map.activeMarkerAria | Active location marker |
| Marker aria label | map.markerAria | Location marker |
| Popup directions button | map.directions | Directions |
| Popup view button | map.view | View |
Refinements
Two strings in this group (refinements.selectedCount.one and refinements.selectedCount.other) use the {count} placeholder — see Working with placeholders below.
| Label | Key | Default (en) |
|---|---|---|
| Tag filter heading | refinements.filterByTag | Filter by tag |
| Location type heading | refinements.locationType | Location type |
| Selected count singular | refinements.selectedCount.one | {count} selected |
| Selected count plural | refinements.selectedCount.other | {count} selected |
| Search radius heading | refinements.searchRadius | Search radius |
| Sort results heading | refinements.sortResults | Sort results |
| Distance sort option | refinements.sort.distance | Distance |
| Name sort option | refinements.sort.name | Name |
| Country sort option | refinements.sort.country | Country |
| State sort option | refinements.sort.state | State |
| City sort option | refinements.sort.city | City |
| Advanced refinements heading | refinements.advanced | Advanced refinements |
| Apply filters button | refinements.apply | Apply filters |
Hours
| Label | Key | Default (en) | Placeholders |
|---|---|---|---|
| Badge/detail template | hours.badgeDetail | {badge} · {detail} | {badge}, {detail} |
| Closed badge | hours.closed.badge | Closed | — |
| Closed today detail | hours.closed.today | Closed today | — |
| Opens today detail | hours.opensTodayAt | Opens today at {time} | {time} |
| Opens day detail | hours.opensDayAt | Opens {day} at {time} | {day}, {time} |
| Open badge | hours.open.badge | Open | — |
| Open until detail | hours.open.until | Open until {time} | {time} |
| Closing soon badge | hours.closingSoon.badge | Closing soon | — |
| Other days accordion | hours.otherDays | Other days | — |
Day names
| Label | Key | Default (en) |
|---|---|---|
| Sunday | day.sun | Sunday |
| Monday | day.mon | Monday |
| Tuesday | day.tue | Tuesday |
| Wednesday | day.wed | Wednesday |
| Thursday | day.thu | Thursday |
| Friday | day.fri | Friday |
| Saturday | day.sat | Saturday |
System
| Label | Key | Default (en) |
|---|---|---|
| Finder unavailable title | app.finderUnavailable | Finder unavailable |
Working with placeholders
Some strings contain placeholder tokens like {count}, {time}, {day}, {badge}, and {detail}. When you write an override for one of these strings, you must include the same placeholder tokens — the widget substitutes them at runtime with the actual value.
For example, to override hours.opensTodayAt:
- Default:
Opens today at {time} - Valid override:
Open from {time}— the{time}token stays, the surrounding text changes. - Invalid override:
Open today— omitting{time}will render without the actual time.
Resetting overrides
Each field has a Reset button that clears the override for that string, reverting it to the language default. A Reset all overrides button at the top of the Text Overrides section clears all overrides at once. The button is disabled when there are no overrides to reset.
Fallback resolution order
When the widget renders a string, it follows this priority order:
- Text override — if you’ve set an override for that key, it’s used.
- Selected language translation — the English or Spanish default for the selected language.
- English fallback — if the selected language doesn’t have a translation for a key, English is used.
This means you can safely set the language to Spanish and then override just the strings you want to say something different, without needing to override every string.
Number and time formatting
The selected language also controls how numbers, distances, and times are formatted by the widget’s runtime:
- Numbers are formatted with
Intl.NumberFormatusing the locale code (enores). - Times (hours display) are formatted with
Intl.DateTimeFormatusing the same locale. For example,enuses 12-hour time by default;esuses 24-hour time. - Distances are formatted as locale-aware numbers followed by the unit (mi or km) configured in your Search settings.
These formatting behaviors are controlled by the locale selection and are not individually overridable through the Text Overrides interface.
Managing copy across multiple finders
Each finder has its own language selection and set of text overrides. There is no shared override library — if you manage several finders that should use the same custom copy, you need to enter overrides in each one separately.
🔴 [NEEDS CLARIFICATION: Confirm whether there is a planned or existing “copy settings from another finder” feature that would simplify managing overrides across a large number of finders.]
Where to next
- Feature overview of the full language system: Language and copy
- The Finder Builder and other sections it contains: Finder Builder