Skip to content

Instantly share code, notes, and snippets.

@rmtuckerphx
Last active March 30, 2021 01:56
Show Gist options
  • Save rmtuckerphx/e28760583fe28331c9f84f556931c780 to your computer and use it in GitHub Desktop.
Save rmtuckerphx/e28760583fe28331c9f84f556931c780 to your computer and use it in GitHub Desktop.
Example of how to structure a translation file for Jovo for cross-platform development. This is from the game, Snatch Word (snatchword.com). Instead of SSML, it uses Speech Markdown (speechmarkdown.org)
{
"translation": {
"Sounds": {
"badge_BixbyCapsule": "!['https://example.com/audio/badge.wav']",
"badge": "!['https://example.com/audio/badge.mp3']",
"find_BixbyCapsule": "!['https://example.com/audio/find1.wav']",
"find": "!['https://example.com/audio/find1.mp3']",
"renew_BixbyCapsule": "!['https://example.com/audio/renew1.wav']",
"renew": "!['https://example.com/audio/renew1.mp3']",
"snatchFail_BixbyCapsule": "!['https://example.com/audio/snatch-fail1.wav']",
"snatchFail": "!['https://example.com/audio/snatch-fail1.mp3']",
"snatchSuccess_BixbyCapsule": "!['https://example.com/audio/snatch-success1.wav']",
"snatchSuccess": "!['https://example.com/audio/snatch-success1.mp3']",
"theme_BixbyCapsule": "!['https://example.com/audio/theme.wav']",
"theme": "!['https://example.com/audio/theme.mp3']",
"themeShort_BixbyCapsule": "!['https://example.com/audio/theme-short.wav']",
"themeShort": "!['https://example.com/audio/theme-short.mp3']",
"helpIntro": "!['https://example.com/audio/help.mp3']",
"helpIntro_BixbyCapsule": "!['https://example.com/audio/help.wav']",
"helpExit": "!['https://example.com/audio/help-nowback.mp3']",
"helpExit_BixbyCapsule": "!['https://example.com/audio/help-nowback.wav']"
},
"AppName": "Snatch Word",
"Website": "(snatchword.com)[sub:'snatch word dot com']",
"WelcomeFirst": {
"speech": "Welcome to $t(AppName) where words become your property. All you have to do is: snatch them. Your player name is [100ms] {{profile.spokenName}}. [800ms] The goal of Snatch Word is to snatch words for points and then hold on to them for as long as you can. The more words you own, the higher your score, and the higher your position in the weekly leaderboard. There are 3 main actions: FIND, SNATCH, and RENEW. [500ms] You have unlimited FIND actions. You start the game with 5 SNATCH or RENEW actions and each time you use one it takes 10 hours to recharge it. [500ms] In Snatch Word, you play against players from around the world in real time and those players could be using a device with one of the top voice assistants.",
"prompt": "Would you like to learn some game tips?",
"reprompt": "Say 'yes' for game tips or 'no' to start the game.",
"noHelp": "To hear the tips later, just ask for help."
},
"WelcomeBack": {
"speech": [
"Player, {{profile.spokenName}}, welcome back to $t(AppName)! [800ms] Your score is {{score}} points.",
"Glad you are back to play more $t(AppName), player {{profile.spokenName}}. [800ms] Your score is {{score}} points.",
"Player, {{profile.spokenName}}, thanks for playing more $t(AppName). [800ms] Your score is {{score}} points.",
"Player {{profile.spokenName}}, time to play $t(AppName)! [800ms] Your score is {{score}} points."
]
},
"Announcements": {
"enableNotificationPermission": "In order to get notified about new features and challenges, you need to enable notifications. I've sent a card to the Alexa App.",
"intro": "You have 1 announcement.",
"intro_plural": "You have {{count}} announcements."
},
"Goodbye": {
"speech": [
"Thanks for playing $t(AppName). Come back again soon.",
"Thanks for playing. Snatch you later.",
"Have a snatch-erific day!",
"A snatch a day keeps the word hoarders at bay.",
"Come back tomorrow for more snatching fun.",
"Snatchoo! [600ms] Gesundheit. Come back soon for some more $t(AppName).",
"Keep thinking of words to snatch. [600ms] Until next time."
]
},
"StreakStats": {
"speech": [
"Your game streak is {{count}} days.",
"You've played $t(AppName) {{count}} days in a row."
]
},
"NextActionRecharge": {
"speech": [
"Your next action will be recharged in about {{rechargeSpoken}}."
]
},
"BadgeIntro": {
"speech": [
"$t(Sounds.badge) Congratulations! You have earned the {{badgeName}} badge worth {{totalPoints}} points.",
"$t(Sounds.badge) You've earned the {{badgeName}} badge worth {{totalPoints}} points. Way to go!",
"$t(Sounds.badge) You've earned the badge called: {{badgeName}}. It is worth {{totalPoints}} points",
"$t(Sounds.badge) Well done. You have earned the {{badgeName}} badge; worth {{totalPoints}} points."
],
"speech_plural": [
"$t(Sounds.badge) Congratulations! You have earned {{count}} badges for a total of {{totalPoints}} points: {{badgeList}}",
"$t(Sounds.badge) You've earned the following badges for a total of {{totalPoints}} points: {{badgeList}}"
]
},
"Badges": {
"B1": {
"name": "Welcome Back",
"summary": "Returning to play again."
},
"B2": {
"name": "100th Game",
"summary": "Playing 100 games."
},
"B3": {
"name": "Old Timer",
"summary": "Playing 500 games."
},
"B4": {
"name": "8 Days a Streak",
"summary": "Playing the game for 8 days in a row."
},
"B5": {
"name": "Finders Keepers",
"summary": "Snatching a word nobody else has found."
},
"B6": {
"name": "Take 2",
"summary": "Snatching 2 words from other players."
},
"B7": {
"name": "Serial Snatcher",
"summary": "Snatching 20 words from other players."
},
"B8": {
"name": "Snatch Spree",
"summary": "Snatching words for 10 days in a row."
},
"B9": {
"name": "Return and Renew",
"summary": "Renewing your words for 5 days in a row."
},
"B10": {
"name": "Renew Newbie",
"summary": "Renewing your first word."
},
"B11": {
"name": "Four-letter Word",
"summary": "Snatching a four-letter word."
},
"B12": {
"name": "Big Word",
"summary": "Snatching a long word."
},
"B13": {
"name": "Mouthful",
"summary": "Snatching a word with at least 16 letters."
},
"B14": {
"name": "Cat's Meow",
"summary": "Snatching a word that starts with 'cat'."
},
"B15": {
"name": "Ox in the Mire",
"summary": "Snatching a word that ends with 'ox'."
},
"B16": {
"name": "Double Snatch",
"summary": "Snatching the word 'snatch'."
},
"B17": {
"name": "Memory Lapse",
"summary": "Trying to snatch a word that you already own."
},
"B18": {
"name": "ZZ Topper",
"summary": "Snatching a word that contains 'zz'."
},
"B19": {
"name": "Sunny Days",
"summary": "Snatching a word that starts with 'sun'."
},
"B20": {
"name": "Primary Colors",
"summary": "Snatching a word containing the name of a primary color."
},
"B21": {
"name": "Poppin's Preposterous Word",
"summary": "Snatching the word from the flying nanny movie."
}
},
"BadgesList": {
"summary": [
"You have 1 badge.",
"You've earned 1 badge.",
"Here's your badge.",
"You've earned the following badge."
],
"summary_plural": [
"You have {{count}} badges. Here's your most recent {{recentCount}}:",
"You've earned {{count}} badges. These are your most recent:"
],
"item": [
"{{item.name}} [500ms] worth {{item.points}} points [300ms] for {{item.summary}} [300ms]"
],
"zero": [
"You have earned 0 badges.",
"You have not earned any badges yet."
]
},
"MyWordsList": {
"summary": [
"You own 1 word.",
"Here's the 1 word you own.",
"You only own 1 word."
],
"summary_plural": [
"Here are your most valuable words:",
"This is a list of some of your most valuable words:"
],
"item": [
"{{item.word}} [500ms] worth {{count}} point, [300ms]"
],
"item_plural": [
"{{item.word}} [500ms] worth {{count}} points, [300ms]"
],
"zero": [
"You own 0 words.",
"You don't own any words."
]
},
"MyExpiredWordsList": {
"summary": [
"You own 1 word.",
"Here's the 1 word you own.",
"You only own 1 word."
],
"summary_plural": [
"Here are your words whose exclusive hold have expired or will expire next:",
"This is a list of some of your words listed in order of when the hold expires next:"
],
"item": [
"{{item.word}} [500ms] {{item.expiresAtSpoken}}, [300ms]"
],
"zero": [
"You own 0 words.",
"You don't own any words."
]
},
"MySnatchedWordsList": {
"summary": [
"You had 1 word recently taken from you.",
"Here's the 1 word that was recently taken.",
"You had 1 word recently taken."
],
"summary_plural": [
"Here are words recently taken from you:",
"This is a list of some of the recent words taken from you:"
],
"item": [
"{{item.word}} [500ms] snatched by {{item.newOwnerSpoken}}, [300ms]"
],
"zero": [
"None of your words were recently snatched.",
"None of your words were recently taken."
]
},
"ReminderList": {
"summary": [
"$t(AppName) has 1 reminder.",
"$t(AppName) has 1 reminder set.",
"$t(AppName) has 1 active reminder."
],
"summary_plural": [
"$t(AppName) has {{count}} reminders. Here are your next reminders:",
"$t(AppName) has {{count}} reminders set. Here are your next reminders:",
"$t(AppName) has {{count}} active reminders. Here are your next reminders:"
],
"item": [
"For '{{item.word}}' on {{item.spokenDateTime}}."
],
"zero": [
"$t(AppName) has 0 reminders."
]
},
"Leaderboard": {
"speech": [
"Your current rank is [100ms] {{player.rank}} and you have [100ms] {{player.score}} points.",
"You have [100ms] {{player.score}} points and are ranked [100ms] {{player.ordinalRank}}."
]
},
"Help": {
"general": "Help for $t(AppName). [500ms] You can ask me to repeat a response or when you are done, say: goodbye. For a complete list of voice commands, visit $t(Website).",
"generalIntro": "$t(Sounds.helpIntro)",
"generalExit": "$t(Sounds.helpExit)",
"generalStore": "!['https://example.com/audio/help-store.mp3']",
"generalReminder": "!['https://example.com/audio/help-reminder.mp3']"
},
"Empty": "",
"Positives": {
"speech": [
"OK!",
"Alright!",
"Great!",
"OK, then."
]
},
"NotImplemented": {
"speech": "This feature is not yet implemented."
},
"MissingEnvVars": {
"speech": "Required configuration info is missing. Contact administrators to correct. Goodbye."
},
"Fallback": {
"speech": [
"You have 3 main actions: [1s] find, snatch, and renew. [1s] For assistance, say 'help'.",
"Remember. You can [1s] find, snatch, and renew. [1s] For assistance, say 'help'.",
"Three easy actions: [1s] find, snatch, renew. [1s] For instructions, say 'help'."
]
},
"Version": {
"speech": "The app version is {{version}} {{stage}}.",
"reprompt": "For a list of options, say 'help'. To end, say: goodbye."
},
"WhatNext": {
"status": [
"You have 1 snatch or renew action left.",
"Only 1 snatch or new action left."
],
"status_plural": [
"You have {{count}} rechargeable snatch or renew actions available.",
"You have {{count}} rechargeable actions remaining."
],
"prompt": [
"What do you want to do now?",
"What next?",
"What do you want to do?",
"What do you want to do next?"
],
"reprompt": [
"What do you want to do now?",
"What next?",
"What do you want to do?",
"What do you want to do next?"
]
},
"Hello": {
"speech": [
"Hello! You are playing $t(AppName).",
"Hello there! You are playing $t(AppName).",
"Hi! You are playing $t(AppName).",
"Hi there! You are playing $t(AppName).",
"Greetings! You are playing $t(AppName)."
]
},
"Country": {
"Missing": {
"speech": [
"I didn't understand the country."
],
"prompt": [
"What is the country name?"
],
"reprompt": [
"What is the country name?"
]
},
"NotFound": {
"speech": [
"That is a country name that I don't recognize."
],
"prompt": [
"What is the country name?"
],
"reprompt": [
"What is the country name?"
]
},
"Updated" : {
"speech": [
"You have updated your country to {{country}}."
]
}
},
"FamilyMode": {
"BadWord": {
"speech": [
"Family Mode is currently on. Questionable words are not allowed. To turn it off, say: Family Mode off."
]
},
"Enabled": {
"speech": [
"Family Mode is now on."
]
},
"Disabled": {
"speech": [
"Family mode is now off."
]
}
},
"WordDetailNonOwner": {
"anotherPlayer": "another player",
"NotExpired": {
"speech": [
"$t(Sounds.find) The word, {{word}}, is worth {{totalPoints}} points. It is currently owned by {{owner}}, but you can try and snatch it after {{expiresAt}}.",
"$t(Sounds.find) {{owner}} owns {{word}} worth {{totalPoints}} points. Try and snatch it after {{expiresAt}}.",
"$t(Sounds.find) The word, {{word}}, is worth {{totalPoints}} points. Try and snatch it from {{owner}} after the hold expires on {{expiresAt}}."
]
},
"HasExpired": {
"speech": [
"$t(Sounds.find) The word, {{word}}, is worth {{totalPoints}} points. But {{owner}} has let the hold expire, you should try and snatch it.",
"$t(Sounds.find) The word, {{word}}, has an expired hold and is worth {{totalPoints}} points. Quick! Try and snatch it from {{owner}}.",
"$t(Sounds.find) The word, {{word}}, is worth {{totalPoints}} points. {{owner}} let its exclusive hold expire, so try and snatch it."
]
}
},
"WordDetailOwner": {
"NotExpired": {
"speech": [
"$t(Sounds.find) Your word, {{word}}, is worth {{totalPoints}} points and it will be yours until someone snatches it. To keep this word, renew it after {{renewAt}}.",
"$t(Sounds.find) Your word, {{word}}, is worth {{totalPoints}} points. To keep it, renew it after {{renewAt}}.",
"$t(Sounds.find) The word, {{word}}, is worth {{totalPoints}} points. Renew it after {{renewAt}}."
]
},
"HasExpired": {
"speech": [
"$t(Sounds.find) Your word, {{word}}, is worth {{totalPoints}} points. Better renew it quick before someone snatches it.",
"$t(Sounds.find) The word, {{word}}, has an expired hold and is worth {{totalPoints}} points. Time to renew it.",
"$t(Sounds.find) Your word, {{word}}, has an expired hold and is worth {{totalPoints}} points. Renew if you want to keep it."
]
}
},
"WordNotOwned": {
"speech": [
"$t(Sounds.find) Nobody currently owns the word, {{word}}. It is worth {{totalPoints}} points. Snatch it now to make it yours.",
"$t(Sounds.find) You found a word nobody else has found and it is worth {{totalPoints}} points. To own it, say snatch, {{word}}.",
"$t(Sounds.find) You are in luck. Snatch, {{word}}, and it can be yours. It's worth {{totalPoints}} points.",
"$t(Sounds.find) Lucky day! You are the first to find, {{word}}, and it is worth {{totalPoints}} points. You should snatch it."
]
},
"RenewSuccess": {
"speech": [
"$t(Sounds.renew) You have renewed the word, {{word}} for another {{expireDays}} days.",
"$t(Sounds.renew) Your word, {{word}}, is renewed for another {{expireDays}} days.",
"$t(Sounds.renew) Your word, {{word}}, is renewed."
]
},
"RenewFailNotOwner": {
"speech": [
"Cannot renew. You don't own the word, {{word}}.",
"Cannot renew, {{word}}. You are not the owner.",
"Not able to renew, {{word}}. You don't own it."
]
},
"RenewFailRenewTooSoon": {
"speech": [
"Cannot renew. It's too early to renew, {{word}}.",
"Can not renew, {{word}}. It's too early to renew it.",
"Too early to renew, {{word}}."
]
},
"SnatchSuccessNewWord": {
"speech": [
"$t(Sounds.snatchSuccess) You found a new word, {{word}}, and it is all yours. You get {{bonusPoints}} bonus points plus {{wordPoints}} word points for a total of {{totalPoints}} points.",
"$t(Sounds.snatchSuccess) You found a new word! You now own, {{word}}. {{bonusPoints}} bonus points plus {{wordPoints}} word points for a total of {{totalPoints}} points!",
"$t(Sounds.snatchSuccess) You found a new word! {{bonusPoints}} bonus points! You now own, {{word}}. With {{wordPoints}} word points, that is a total of {{totalPoints}} points. Remember to renew it in {{renewDays}} days before its exclusive hold expires.",
"$t(Sounds.snatchSuccess) The word, {{word}}, is a new word! {{bonusPoints}} bonus points plus {{wordPoints}} word points is a total of {{totalPoints}} points!",
"$t(Sounds.snatchSuccess) You found {{word}}! Earned {{totalPoints}} total points!"
]
},
"SnatchSuccessFromOther": {
"speech": [
"$t(Sounds.snatchSuccess) Congratulations! You snatched, {{word}}.",
"$t(Sounds.snatchSuccess) You snatched, {{word}}, and it is now yours.",
"$t(Sounds.snatchSuccess) Snatched it! {{word}}, is now yours.",
"$t(Sounds.snatchSuccess) You sneaky snatcher. You now own, {{word}}.",
"$t(Sounds.snatchSuccess) Wow! The previous owner will be surprised when they realize that someone snatched, {{word}}."
]
},
"SnatchYouOwnWord": {
"speech": [
"You already own the word, {{word}}. Snatching it from yourself would be silly.",
"Can't snatch a word from yourself. You own {{word}}.",
"You already own the word, {{word}}.",
"You already own, {{word}}."
]
},
"SnatchFail": {
"speech": [
"$t(Sounds.snatchFail) Sorry. Could not snatch, {{word}}. You can only snatch after the word hold expires.",
"$t(Sounds.snatchFail) Oops. Could not snatch, {{word}}.",
"$t(Sounds.snatchFail) Sorry. Could not snatch, {{word}}.",
"$t(Sounds.snatchFail) Snatcher, no snatching!"
]
},
"ActionCounterZero": {
"speech": [
"You have run out of snatch and renew actions. You get {{max}} actions, but they must recharge. Your next action will be recharged in about {{rechargeSpoken}}.",
"You get {{max}} actions. Your next action will be recharged in about {{rechargeSpoken}}."
]
},
"MissingWord": {
"speech": [
"I didn't hear the word. Say it again.",
"Didn't hear the word. Try again."
]
},
"Upsell": {
"Subscription1": {
"actions": "You have used all your rechargeable actions. To get a total of 10 rechargeable actions, get the Power Player subscription. New subscribers get a free trial. Would you like to learn more?",
"reminders": "You have run out of reminders. To get unlimited reminders, get the Power Player subscription. New subscribers get a free trial. Would you like to learn more?"
}
},
"ContinueAfterISP": {
"speech": [
"Okay. Let's continue where we left off."
]
},
"ExceedRemindersNoSubscription": {
"speech": [
"You have exceeded your $t(AppName) reminders. You get {{max}} free reminders. To get unlimited reminders, purchase the Power Player monthly subscription in the store."
]
},
"ExceedRemindersNoSubscriptionNoISP": {
"speech": [
"You have exceeded your $t(AppName) reminders. You get {{max}} free reminders. You need the Power Player monthly subscription which is not currently available in your country. Enable notifications for $t(AppName) in the Alexa App and we will let you know when it is available."
]
},
"Store": {
"NotSupported": {
"speech": "$t(AppName) does not currently support in-game purchases or a store for this device or country. Follow $t(AppName) on Twitter or Facebook for updates on when this feature becomes available."
},
"noItemsForSale": "Sorry, the store is closed right now. No items for sale. Try back later.",
"noReviewOrders": "Sorry, I can't review your order history at this time. Try back later.",
"whatCanIBuy": "Thanks for visiting the store. We have the following items for sale. {{productList}}. To find out about a product, say: 'tell me about the {{productA}}'. [1s] To buy an item, say: 'buy the {{productB}}'.",
"orderLine": " [1s] {{product}}. Quantity. {{qty}}.",
"noOrders": "You have not purchased anything from the store.",
"orderHistory": "You have purchased the following: {{productList}}",
"storeError": "The store is closed right now. Try back later.",
"invalidReference": "I'm unable to find that product in the store. Try a different product.",
"productDetail": "{{product.name}} [1s] {{product.summary}}"
},
"Duration": {
"year": "{{count}} year",
"year_plural": "{{count}} years",
"month": "{{count}} month",
"month_plural": "{{count}} months",
"day": "{{count}} day",
"day_plural": "{{count}} days",
"hour": "{{count}} hour",
"hour_plural": "{{count}} hours",
"minute": "{{count}} minute",
"minute_plural": "{{count}} minutes",
"second": "{{count}} second",
"second_plural": "{{count}} seconds"
},
"Reminder": {
"NotSupported": {
"speech": "$t(AppName) does not currently support Reminders for this device or country. Follow $t(AppName) on Twitter or Facebook for updates on when it becomes available."
},
"NoBadWords": {
"speech": "Questionable words are not allowed in reminders."
},
"PromptNoAdd": {
"speech": [
"Reminder not added."
]
},
"PromptNoList": {
"speech": [
"Unable to list reminders until you allow reminder permissions."
]
},
"CannotDelete": {
"speech": [
"There are no reminders to delete."
]
},
"CannotDeleteWord": {
"speech": [
"There is no reminder to delete for the word: {{word}}."
]
},
"PromptNoDelete": {
"speech": [
"Reminder not deleted."
]
},
"ReminderDelete": {
"speech": [
"The reminder has been deleted for the word: {{word}}."
]
},
"ErrorDelete": {
"speech": [
"Sorry. Unable to delete a reminder right now. Try again later."
]
}
},
"SnatchReminder": {
"Alert": {
"text": [
"It's time to try and snatch the word: '{{word}}'. Say \"open $t(AppName) and snatch {{word}}.\""
]
},
"Start": {
"speech": "You do not own the word, {{word}}, but you can try and snatch it when its hold expires.",
"prompt": "Would you like me to remind you on {{reminderSpoken}} to return to the game and snatch the word?",
"reprompt": "Do you want to set a snatch reminder on {{reminderSpoken}}?"
},
"CancelAdd": {
"speech": [
"Snatch reminder not added."
]
},
"ReminderAdd": {
"speech_long": [
"OK. I will remind you to snatch on {{reminderSpoken}}."
],
"speech": [
"OK. Snatch reminder added."
]
},
"RelativeReminderAdd": {
"prompt": "How far in the future do you want to set the reminder?",
"reprompt": "How many minutes, hours, or days in the future do you want to set the reminder?"
},
"ValidationAddDurationInvalid": {
"speech": "To add a reminder, use values like: 30 minutes, 5 hours, or 2 days."
},
"ValidationAddDurationNotRange": {
"speech": "The reminder must be in the range of 1 hour to 30 days."
}
},
"RenewReminder": {
"Alert": {
"text": [
"It's time to renew your word: '{{word}}'. Say \"open $t(AppName) and renew {{word}}.\""
]
},
"Start": {
"speech": "You own the word, {{word}}, and to keep it safe, renew it starting 24 hours before its hold expires.",
"prompt": "Would you like me to remind you on {{reminderSpoken}} to return to the game and renew the word?",
"reprompt": "Do you want to set a renew reminder on {{reminderSpoken}}?"
},
"CancelAdd": {
"speech": [
"Renew reminder not added."
]
},
"ReminderAdd": {
"speech_long": [
"OK. I will remind you to renew on {{reminderSpoken}}."
],
"speech": [
"OK. Renew reminder added."
]
},
"RelativeReminderAdd": {
"prompt": "How far in the future do you want to set the reminder?",
"reprompt": "How many minutes, hours, or days in the future do you want to set the reminder?"
},
"ValidationAddDurationInvalid": {
"speech": "To add a reminder, use values like: 30 minutes, 5 hours, or 2 days."
},
"ValidationAddDurationNotRange": {
"speech": "The reminder must be in the range of 1 hour to 30 days."
},
"PromptNoList": {
"speech": [
"Unable to list reminders until you allow reminder permissions."
]
}
},
"InGamePurchase": {
"addCurrencySound": "!['https://example.com/add-cash1.mp3']",
"buyError": "Sorry, there was a problem while trying to buy an item from the store. Try again later.",
"refundError": "Sorry, there was a problem while trying to refund an item to the store. Try again later.",
"productNotFound": "Sorry, there was problem accessing the product in the store. Try again later.",
"alreadyPurchased": "You already purchased this item.",
"addSubscription": "You now have the subscription.",
"removeSubscription": "Subscription cancelled.",
"refundAnnouncementIntro": "The system has processed one or more refunds. Review your case file for current totals."
},
"Error": {
"GeneralDbError":{
"speech": [
"Oops, there seems to be an issue in the system. Try back in a few minutes."
]
},
"BannedError":{
"speech": [
"The player is currently banned from playing Snatch Word. If you believe this was an error, send an email to (snatchword@shazaml.com)[sub:'snatch word at shuh zam el dot com']. Goodbye."
]
},
"AddReminderGeneralError":{
"speech": [
"Sorry, not able to add a reminder at the moment. Try again in a few minutes."
]
},
"CheckWordGeneralError":{
"speech": [
"Lots of people are playing right now. Not able to look for words. Try again in a few minutes."
]
},
"RenewWordGeneralError":{
"speech": [
"Unable to renew word at this time. Try again in a few minutes."
]
},
"SnatchWordGeneralError":{
"speech": [
"Unable to snatch word at this time. Try again in a few minutes."
]
},
"Timeout": {
"speech": [
"Oops, there seems to be an issue in the system. I have reported it to the team and they are aware of this. Come back in a few to check it out again."
]
},
"Unknown": {
"speech": [
"Oops, there seems to be an issue in the system. I have reported it to the team and they are aware of this. Come back in a few to check it out again."
]
},
"SendEmail": {
"speech": [
"Unable to access your email address right now. Try back later."
]
},
"SendEmailSubmit": {
"speech": [
"Unable to send email right now. Try back later."
]
}
},
"Cards": {
"Version": {
"title": "App Version",
"content": "Version: {{version}} {{stage}}\nSupport Code: {{codes.userCode1}}-{{codes.userCode2}}-{{codes.sessionCode1}}-{{codes.sessionCode2}}"
}
},
"Views": {
"Version": {
"title": "App Version",
"content": "Version: {{version}} {{stage}}"
},
"SetCountry": {
"title": "Set Country",
"content": "You have updated your country to {{country}}."
},
"ReminderAdd": {
"title": "Reminder Added"
},
"Leaderboard": {
"title": "Leaderboard"
},
"WordDetail": {
"pointsLineTotalOnly": "{{wordPoints}} pts.",
"pointsLineWordBonus": "{{result.wordPoints}} word + {{result.bonusPoints}} bonus = {{result.totalPoints}} pts.",
"pointsLineWordPop": "{{result.wordPoints}} word + {{result.popPoints}} pop. = {{result.totalPoints}} pts."
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment