The Virtual Stadium iOS UI SDK exposes user-facing copy through settings structs, not through app Localizable.strings files. Override defaults by passing custom values when you build TranslationSettings (Chat, Profile, and shared bet views) or CentralHubTranslationSettings (Central Hub).
Configure translations on ChatSettings.translationSettings and pass chatSettings into ChatView, ProfileView, or SDK initialization (see SDK Initialization).
import VirtualStadiumUISDK
let translationSettings = TranslationSettings(
GeneralVip: "VIP",
MessageInputPlaceholder: "Write a message",
ChatEmptyTitle: "No messages yet",
ChatEmptyDescription: "Let's kick off the debate."
)
let chatSettings = ChatSettings(
translationSettings: translationSettings
)Use the same chatSettings for Profile so chat and profile stay consistent.
Configure translations on CentralHubSettings.translationSettings and pass centralHubSettings into CentralHubView (see Central Hub Component).
let centralHubSettings = CentralHubSettings(
translationSettings: CentralHubTranslationSettings(
general: GeneralTranslations(
follow: "Follow",
unfollow: "Unfollow"
),
navigationTitles: NavigationTitleTranslations(
myCentralHub: "My Hub"
)
)
)Many strings support runtime formatting. Keep placeholders such as %d, %@, and %s when you localize (for example TimeMinuteAgo defaults to %dm, and follower empty states use %@ for a username).
By default, Chat-related properties use keys from the SDK Localizable.strings bundle (see TranslationKeys in the SDK). When you pass a custom literal (for example "My label"), that text is shown as-is. When you omit a property, the SDK default in the tables below applies.
The tables list Swift property names and default English copy. Only set the properties you need to change.
TranslationSettings)eventTitleTranslations)Pass nested values via TranslationSettings(eventTitleTranslations: EventTitleTranslationSettings(...)).
CentralHubTranslationSettings)The setting path column shows where each string lives when you configure CentralHubSettings. In Swift, set nested groups through the matching initializer (for example ProfileHubTranslations, GeneralTranslations).
| Property | Default value |
|---|---|
GeneralVip | VIP |
GeneralReply | Reply |
GeneralReport | Report |
GeneralSubmit | SUBMIT |
GeneralCancel | CANCEL |
GeneralOk | Ok |
GeneralStartOfChat | Start of the chat |
GeneralNew | New |
GeneralNotAvailable | N/A |
TimeDayAgo | %dd |
TimeDayOne | day |
TimeDayTwo | days |
TimeDayFew | days |
TimeDayOther | days |
TimeHourAgo | %dh |
TimeHourOne | hour |
TimeHourTwo | hours |
TimeHourFew | hours |
TimeHourOther | hours |
TimeMinuteAgo | %dm |
TimeMinuteShort | min |
TimeMinuteOne | minute |
TimeMinuteTwo | minutes |
TimeMinuteFew | minutes |
TimeMinuteOther | minutes |
TimeSecondOne | second |
TimeSecondTwo | seconds |
TimeSecondFew | seconds |
TimeSecondOther | seconds |
TimeSecondShort | s |
TimeNow | Now |
TimeWeekAgo | %dw |
MessageInputPlaceholder | Write a message |
MessageInputCurrentUsersPlaceholder | Message %d users |
MessageErrorSuspendedFor | Suspended for |
MessageErrorBlocked | Messaging is unavailable |
MessageDeletedText | Message has been deleted |
MessageReportedText | Message has been reported. |
MessageReplyRepliedTo | replied to |
InfoMessageContent | In compliance with Law 14.790/2023 and Ordinance 722 ANNEX II, Article 12, we will be discontinuing the chatbox feature on 31/12/2024. |
InteractionReportInfoText | Reporting a message will send it to our moderators for review. Please only report messages that violate our community guidelines or terms of service.False reporting can result in penalties such as account suspension. |
InteractionReportTitle | REPORT A MESSAGE |
InteractionReportSuccess | Message reported |
InteractionReportFailure | Failed to submit |
InteractionReplyReplyingTo | Replying to |
BetViewStake | Stake |
BetViewReturn | Return |
BetViewMore | more |
BetViewCollapse | Collapse |
BetViewBetBuilder | Bet builder |
BetViewShared | SHARED |
BetSheetLoading | Loading bets |
BetSheetSelectBet | Select a bet |
BetSheetShareBet | SHARE A BET |
BetSheetBetShareMessage | Write a message |
BetSheetBetShareCopyToBetslip | Copy Bet |
BetSheetBetShareHideStakeAndPayout | Hide stake and payout |
BetshareFilterTitle | SHARED BETS |
InsightsNew | NEW |
InsightsNewFlashBet | New flash bet |
BetTypeTitleSingle | Single |
BetTypeTitleSameGameMulti | Bet same game multi |
BetTypeTitleMultiBet | Multi bet |
BetTypeTitleBetBuilder | Bet builder |
BetTypeTitleBetUnknown | Unknown |
BetshareFilterAllAllBets | ALL SHARED BETS |
BetshareFilterAllMyBets | MY SHARED BETS |
BetshareFilterMyMyOpenBetslips | MY OPEN BETSLIPS |
BetshareFilterMyMyWinningBetslips | MY WINNING BETSLIPS |
BetshareFilterCopied | COPIED |
BetshareFilterTimes | x |
BetshareFilterCopyBet | Copy bet |
BetshareFilterNoSharedBetsTitle | No shared bets |
BetshareFilterNoSharedBetsDescription | You need to place a bet first in order to share a bet slip. |
BetshareFilterShareABetDescription | Your journey to success is a story worth telling |
BetshareNewBetshareTitle | SELECT A BET |
BetshareNewBetshareEmptyTitle | No betslips to share! |
BetshareNewBetshareAlertBetSharedTitle | Bet already shared |
BetshareNewBetshareAlertBetSharedMessage | You cannot share the same bet in the same channel twice. Please select unique bet. |
BetshareNewBetshareError | There was a problem with the bet! |
BetshareFilterShareANewBetButtonTitle | SHARE A NEW BET |
BetslipTeamVersusTeam | vs |
ChatEmptyTitle | Be the first! |
ChatEmptyDescription | What’s on your mind? |
ErrorTitleUnableToPost | UNABLE TO POST |
ErrorTitleGeneral | Error |
ErrorTitleSuspended | Temporary ban |
ErrorTitleOops | OOPS |
ErrorTitleSDKNotInitialized | SDK not initialized! |
ErrorTitleBetShareError | Bet share error |
ErrorTitleInvalidAPIKey | Invalid api key |
ErrorTitleInvalidChannel | No messages yet |
ErrorDescriptionBanned | You are banned for |
ErrorDescriptionPermanentBanFirstPart | It looks like you can't use the chat or react to messages due to a violation of our usage terms. If you have any concerns or questions about this, feel free to reach out to our |
ErrorDescriptionPermanentBanSecondPart | support team. |
ErrorDescriptionReasonSpamming | Reason: Spamming |
ErrorDescriptionCantPost | Can’t post at the moment. Please try again. |
ErrorDescriptionSuspendedFirstPart | It looks like you can't use the chat or react to messages temporarily due to a violation of our usage terms. If you have any concerns or questions about this, feel free to reach out to our |
ErrorDescriptionSuspendedSecondPart | support team. |
ErrorDescriptionGeneral | Something went wrong. Please try again later. |
ErrorSendMessage | Failed to send. Try again. |
ErrorDescriptionBetShareError | There was a problem with bet share! |
ErrorDescriptionSDKNotInitialized | Action could not be complete because SDK in not initialized. |
InfractionButtonContactSupport | CONTACT SUPPORT |
InfractionTitleBlacklist | BLACKLISTED WORDS |
InfractionTitleManualBan | MANUAL BAN |
InfractionTitleMessageContent | IMAGE, URL, EMAIL |
InfractionTitleModeration | MODERATED MESSAGE |
InfractionTitleReported | REPORTED MESSAGE |
InfractionTitleSpamming | SPAMMING |
InfractionTitleNoNetwork | NETWORK ERROR |
InfractionDescriptionPermanentBan | It looks like you can't use the chat or react to messages due to a violation of our usage terms. |
InfractionDescriptionBlacklist | Your message was deleted because it violated our guidelines. Please be mindful of the language used and respect other users. If you have any concerns or questions about this, feel free to reach out to our support team. |
InfractionDescriptionMessageContent | Your message was deleted because it contained an URLs, email address, or image which violates our guidelines. If you have any concerns or questions about this, feel free to reach out to our support team. |
InfractionDescriptionManualBan | It looks like you can't use the chat or react to messages temporarily due to a violation of our usage terms. If you have any concerns or questions about this, feel free to reach out to our support team. |
InfractionDescriptionModeration | Your message has been deleted by the moderator. Please be mindful of the language used and respect other users. If you have any concerns or questions about this, feel free to reach out to our support team. |
InfractionDescriptionReported | Your message was reported by other users and has been deleted by the moderator. Please be mindful of the language used and respect other users. If you have any concerns or questions about this, feel free to reach out to our support team. |
InfractionDescriptionSpamming | Your message was not shown because it violated our guidelines. Please be mindful of the language used and respect other users. |
InfractionDescriptionNoNetwork | Something went wrong. Please try again later. |
InfractionDescriptionChatMessageInvalidCharacters | Message contains invalid characters. |
InfractionDescriptionReportAlreadyExists | Message was already reported. |
InfractionDescriptionChatMessageEmpty | Your message is empty. Please add text and try again. |
InfractionDescriptionChatMessageTooLong | Your message is too long. Please try a shorter message. |
InfractionDescriptionMessageReportError | Something went wrong while reporting the message. Please try again. |
InfractionDescriptionSettingsError | Something went wrong while fetching message settings. |
InfractionDescriptionAddReactionError | Something went wrong while adding your reaction. Please try again. |
InfractionDescriptionRemoveReactionError | Something went wrong while removing your reaction. Please try again. |
InfractionDescriptionReactionsListError | Something went wrong while fetching your reactions. Reacting to messages is currently limited. |
InfractionDescriptionInvalidChannelError | Chat is unavailable at the moment |
InfractionTitlePermanentBan | PERMANENT BAN |
ProfileStatisticsBetCountDescription | Shared bets |
ProfileStatisticsCopiedDescription | Betslip inspirations |
ProfileBetsharesTitle | SHARED BETS |
ProfileBetsharesEmptyDescription | No shared bets yet. Place and share one to see it here. |
| Property | Default value |
|---|---|
soccerGoal | Goal |
soccerYellowCard | Yellow card |
soccerRedCard | Red card |
soccerCornerKick | Corner |
soccerPenaltyKick | Penalty kick |
soccerPenaltyShootout | Penalty shootout |
soccerPenaltiesStarted | Penalties started |
soccerThrowIn | Throw in |
soccerShotOnTarget | Shot on target |
soccerOffside | Offside |
basketballTimeout | Timeout |
basketballDisqualified | Player ejected |
basketballThreePoints | 3 points scored |
basketballTwoPoints | 2 points scored |
basketballFreeThrow | Free throw scored |
tennisGameWon | Game won |
tennisBreakWon | Break point won |
tennisSetWon | Set point won |
tennisFirstSetStarted | First set started |
tennisSecondSetStarted | Second set started |
tennisThirdSetStarted | Third set started |
tennisFourthSetStarted | Fourth set started |
tennisFifthSetStarted | Fifth set started |
| Setting path | Default value |
|---|---|
centralHubSettings.translationSettings.betView.betTypes.betBuilder | Bet builder |
centralHubSettings.translationSettings.betView.betTypes.multiBet | Multibet |
centralHubSettings.translationSettings.betView.betTypes.single | Single |
centralHubSettings.translationSettings.betView.betTypes.unknown | Unknown |
centralHubSettings.translationSettings.betView.betViewCollapse | Collapse |
centralHubSettings.translationSettings.betView.betViewMore | more |
centralHubSettings.translationSettings.betView.betViewReturn | To return |
centralHubSettings.translationSettings.betView.betViewShared | SHARED |
centralHubSettings.translationSettings.betView.betViewStake | Stake |
centralHubSettings.translationSettings.betView.infoNotAvailable | N/A |
centralHubSettings.translationSettings.betsHub.commentCountFilterSectionTitle | MOST COMMENTS |
centralHubSettings.translationSettings.betsHub.copyCountFilterSectionTitle | MOST COPIED |
centralHubSettings.translationSettings.betsHub.createdFilterSectionTitle | LATEST |
centralHubSettings.translationSettings.betsHub.emptyContent | No shared Betslips |
centralHubSettings.translationSettings.betsHub.shareBetslipButtonTitle | Share My Bet |
centralHubSettings.translationSettings.betshareNotificationsHub.betshareHubDescription | Bets shared by users you follow. |
centralHubSettings.translationSettings.commentingHub.commentSectionEmptyMessage | There are no comments yet. |
centralHubSettings.translationSettings.commentingHub.commentSectionTitle | COMMENTS |
centralHubSettings.translationSettings.editProfile.notificationsSection.betslipsSwitchTitle | Bets |
centralHubSettings.translationSettings.editProfile.notificationsSection.commentsSwitchTitle | Comments |
centralHubSettings.translationSettings.editProfile.notificationsSection.newFollowersSwitchTitle | New followers |
centralHubSettings.translationSettings.editProfile.notificationsSection.title | NOTIFICATIONS |
centralHubSettings.translationSettings.editProfile.privacySection.privacyDescription | Disable notifications for your followers (messages and shared bets) and prevent new users from following you. |
centralHubSettings.translationSettings.editProfile.privacySection.silentProfileSwitchTitle | Silent profile |
centralHubSettings.translationSettings.editProfile.privacySection.title | PRIVACY |
centralHubSettings.translationSettings.followersHub.emptyFollowersMessage | You have no followers |
centralHubSettings.translationSettings.followersHub.emptyFollowingMessage | You are not following anyone. Find them trough bets section |
centralHubSettings.translationSettings.followersHub.otherUserEmptyFollowersMessage | %@ has no followers yet. |
centralHubSettings.translationSettings.followersHub.otherUserEmptyFollowingMessage | %@ is not following any users yet. |
centralHubSettings.translationSettings.general.alreadyRead | Already read |
centralHubSettings.translationSettings.general.bets | Bets |
centralHubSettings.translationSettings.general.copied | Copied |
centralHubSettings.translationSettings.general.copyBetslip | Copy Bet |
centralHubSettings.translationSettings.general.follow | Follow |
centralHubSettings.translationSettings.general.inputFieldPlaceholder | Write a message |
centralHubSettings.translationSettings.general.loadMore | Loading... |
centralHubSettings.translationSettings.general.privateProfile | Private |
centralHubSettings.translationSettings.general.reactions | Reactions |
centralHubSettings.translationSettings.general.timePassed.daysAgo | %dd |
centralHubSettings.translationSettings.general.timePassed.hoursAgo | %dh |
centralHubSettings.translationSettings.general.timePassed.minutsAgo | %dm |
centralHubSettings.translationSettings.general.timePassed.now | Now |
centralHubSettings.translationSettings.general.timePassed.weeksAgo | %dw |
centralHubSettings.translationSettings.general.unfollow | Unfollow |
centralHubSettings.translationSettings.navigationTitles.betslips | Bets |
centralHubSettings.translationSettings.navigationTitles.comments | Bet Comments |
centralHubSettings.translationSettings.navigationTitles.discussions | Discussions |
centralHubSettings.translationSettings.navigationTitles.editProfile | Edit profile |
centralHubSettings.translationSettings.navigationTitles.following | Users |
centralHubSettings.translationSettings.navigationTitles.myCentralHub | My Hub |
centralHubSettings.translationSettings.navigationTitles.profile | Profile |
centralHubSettings.translationSettings.navigationTitles.search | Search |
centralHubSettings.translationSettings.navigationTitles.shareBet | Share My Bet |
centralHubSettings.translationSettings.navigationTitles.social | New Followers |
centralHubSettings.translationSettings.onboarding.commentSectionDescription | Keep track of whether your followers have commented on a ticket and see the discussions unfold. |
centralHubSettings.translationSettings.onboarding.commentSectionTitle | Stay Updated on Comment Activity |
centralHubSettings.translationSettings.onboarding.enterCHButtonTitle | Enter Central Hub |
centralHubSettings.translationSettings.onboarding.followSectionDescription | Follow your friends or users who inspire you to stay updated on the bets they share. |
centralHubSettings.translationSettings.onboarding.followSectionTitle | Follow Your Friends and Inspirations |
centralHubSettings.translationSettings.onboarding.shareSectionDescription | With Central Hub, you can now explore, copy, and engage with all the tickets shared by users. |
centralHubSettings.translationSettings.onboarding.shareSectionTitle | Share, Copy and Comment on Any Bet |
centralHubSettings.translationSettings.onboarding.welcomeTitle | Welcome to Central Hub |
centralHubSettings.translationSettings.otherUserProfileHub.betsharesContentTitle | SHARED |
centralHubSettings.translationSettings.otherUserProfileHub.emptyBetsharesMessage | No shared Betslips |
centralHubSettings.translationSettings.profileHub.newNotificationsCard.clearAllButtonTitle | Clear all |
centralHubSettings.translationSettings.profileHub.newNotificationsCard.newNotificationsText | new notifications |
centralHubSettings.translationSettings.profileHub.notificationSections.activitySectionEmptyMessage | Activity on your bets and on bets from people you follow will show up here. |
centralHubSettings.translationSettings.profileHub.notificationSections.activitySectionTitle | ACTIVITY |
centralHubSettings.translationSettings.profileHub.notificationSections.betshareSectionEmptyButtonTitle | Explore Users’ Bets |
centralHubSettings.translationSettings.profileHub.notificationSections.betshareSectionEmptyMessage | Bets from users you follow will appear here. Find users to follow in the Bets section. |
centralHubSettings.translationSettings.profileHub.notificationSections.betshareSectionTitle | BETS |
centralHubSettings.translationSettings.profileHub.notificationSections.moreButtonTitle | More |
centralHubSettings.translationSettings.profileHub.notificationSections.socialSectionNewFollowersCard.lastSevenDays | Last 7 days: |
centralHubSettings.translationSettings.profileHub.notificationSections.socialSectionNewFollowersCard.newFollowersTitle | New followers |
centralHubSettings.translationSettings.profileHub.notificationSections.socialSectionTitle | NEW FOLLOWERS |
centralHubSettings.translationSettings.profileHub.notificationSections.socialeSectionEmptyButtonTitle | Share a Bet |
centralHubSettings.translationSettings.profileHub.notificationSections.socialeSectionEmptyMessage | No followers yet. Share a bet to help others discover you. |
centralHubSettings.translationSettings.profileHub.silentProfile | Silent |
centralHubSettings.translationSettings.profileHub.statisticsHeader.followers | Followers |
centralHubSettings.translationSettings.profileHub.statisticsHeader.following | Following |
centralHubSettings.translationSettings.profileHub.statisticsHeader.inspirations | Inspirations |
centralHubSettings.translationSettings.profileHub.statisticsHeader.replies | Replies |
centralHubSettings.translationSettings.ranksHub.commentCountSortTitle | MOST COMMENTS |
centralHubSettings.translationSettings.ranksHub.following | Following |
centralHubSettings.translationSettings.ranksHub.isMe | You |
centralHubSettings.translationSettings.ranksHub.mostFollowersSortTitle | MOST FOLLOWERS |
centralHubSettings.translationSettings.ranksHub.mostPopularSortTitle | MOST POPULAR BET |
centralHubSettings.translationSettings.ranksHub.yourRankDescription | Your rank: |
centralHubSettings.translationSettings.ranksHub.yourScoreDescription | Your score: |
centralHubSettings.translationSettings.reportView.cancelButton | CANCEL |
centralHubSettings.translationSettings.reportView.reportButton | REPORT |
centralHubSettings.translationSettings.reportView.reportViewDescription | Reporting a Message will send it to our moderators for review. Please only report Messages that violate our community guidelines or terms of service. False reporting can result in penalties such as account suspension. |
centralHubSettings.translationSettings.reportView.reportViewTitle | Report a Message |
centralHubSettings.translationSettings.reportView.submitButton | SUBMIT |
centralHubSettings.translationSettings.segmentedSectionTabTranslations.followingSections.followers | Followers |
centralHubSettings.translationSettings.segmentedSectionTabTranslations.followingSections.following | Following |
centralHubSettings.translationSettings.segmentedSectionTabTranslations.profileHubSections.bets | Bets |
centralHubSettings.translationSettings.segmentedSectionTabTranslations.profileHubSections.profile | Profile |
centralHubSettings.translationSettings.segmentedSectionTabTranslations.profileHubSections.ranks | Ranks |
centralHubSettings.translationSettings.shareBetHub.alreadySharedAlertCloseButtonText | Close |
centralHubSettings.translationSettings.shareBetHub.alreadySharedAlertDescription | You can’t share the same bet twice. Please select another bet. |
centralHubSettings.translationSettings.shareBetHub.alreadySharedAlertTitle | Bet Already Shared |
centralHubSettings.translationSettings.shareBetHub.betShareListEmpty | You don’t have any pending bets. Place a bet to share it with others. |
centralHubSettings.translationSettings.shareBetHub.hideStakeAndPayout | Hide stake and payout |
centralHubSettings.translationSettings.shareBetHub.isShared | Shared |
centralHubSettings.translationSettings.socialNotificationsHub.newFollowersCardLastSevenDays | Last 7 days |
centralHubSettings.translationSettings.socialNotificationsHub.newFollowersCardTitle | NEW FOLLOWERS |
centralHubSettings.translationSettings.socialNotificationsHub.newFollowersCardToday | Today |
centralHubSettings.translationSettings.sortingSheet.betShareFilter.all | All |
centralHubSettings.translationSettings.sortingSheet.betShareFilter.followersBets | Follower Bets |
centralHubSettings.translationSettings.sortingSheet.betShareFilter.myConversations | My conversations |
centralHubSettings.translationSettings.sortingSheet.betShareFilter.mySharedBets | My shared bets |
centralHubSettings.translationSettings.sortingSheet.betShareFilter.winningBets | Winning bets |
centralHubSettings.translationSettings.sortingSheet.followersFilter.earliest | Earliest |
centralHubSettings.translationSettings.sortingSheet.followersFilter.latest | Latest |
centralHubSettings.translationSettings.sortingSheet.searchFilter.all | All |
centralHubSettings.translationSettings.sortingSheet.searchFilter.followers | Followers |
centralHubSettings.translationSettings.sortingSheet.searchFilter.following | Following |
centralHubSettings.translationSettings.sortingSheet.title | Filter |
centralHubSettings.translationSettings.userHeaderNotificationDescription.followedUserCommentedBet | Bet |
centralHubSettings.translationSettings.userHeaderNotificationDescription.followedUserCommentedTitle | commented |
centralHubSettings.translationSettings.userHeaderNotificationDescription.isFollowing | Following |
centralHubSettings.translationSettings.userHeaderNotificationDescription.numberOfFollowers | followers |
centralHubSettings.translationSettings.userHeaderNotificationDescription.startedFollowingYou | Started following you |
centralHubSettings.translationSettings.userSearch.beforeSearchMessage | Search for any user on the platform |
centralHubSettings.translationSettings.userSearch.cancel | Cancel |
centralHubSettings.translationSettings.userSearch.emptyResultMessage | No users found matching the search term |
centralHubSettings.translationSettings.userSearch.inputPlaceholder | Search |
centralHubSettings.translationSettings.userSearch.resultsTitle | RESULTS |