String Customization
String Customization
Customize all the strings in Helpshift SDK's user interface
Before you begin
- Integrate Helpshift Unity Android SDK as documented here: Integration Guide
- Though optional, we recommend you to download and set up the Android Studio. Android Studio Setup Guide
The Helpshift Unity SDK zip folder includes the HelpshiftUnityAndroidResources, an open source android studio project, to customize theme and string resources according to your application.
The Helpshift Unity SDK includes a default build of HelpshiftUnityAndroidResources project i.e helpshift-plugin-resources.aar. The default aar contains the string resources for all the supported languages.
You can customize almost all the strings in the Helpshift SDK with additional internationalization options. For string customization please follow steps below :
- Open the Android Studio and import the HelpshiftUnityAndroidResources project
- If Android Studio is launched for the first time, select Open an existing Android Studio project and navigate to the directory where you downloaded the Helpshift Unity SDK and select HelpshiftUnityAndroidResources directory.
- If Android Studio already has an open project, select from the menu File > New > Import Project and navigate to the directory where you downloaded the Helpshift Unity SDK and select HelpshiftUnityAndroidResources directory.
- Find the resource-id of the string that you want to change. See String resources in SDK for the full list of strings.
- Navigate and open the
HelpshiftUnityAndroidResources/helpshift-plugin/src/main/res/values-<language-code>/values.xml
file and modify the selected string resource value in step-2 - Open the terminal window and run the following command: ./gradlew clean build
- Once build is executed successfully, the
helpshift-plugin-resources.aar
file is generated in HelpshiftUnityAndroidResources directory. - Output path: [helpshift-sdk-download-path]/HelpshiftUnityAndroidResources/helpshift-plugin-resources.aar
- Once build is executed successfully, the
- Copy the
helpshift-plugin-resources.aar
file and replace it with [Unity project]/Assets/Plugins/Android/helpshift-plugin-resources.aar file.- Build and run the Unity project to verify your string changes.
Read Going International if you want to change the strings for a particular language or want to add a language translation of your own.
String Resources
String name | Description | Default value |
---|---|---|
hs__help_header | Action Bar title of main support screen | Help |
hs__question_header | Action Bar title for single faq screen | |
hs__new_conversation_header | Action Bar title for new conversation screen | New Conversation |
hs__conversation_header | Action Bar title of the on-going conversation screen | Conversation |
hs__submit_conversation_btn | Helper text for the icon on the conversation screen to submit the conversation | Submit |
hs__send_msg_btn | Text for Send button in screenshot preview | Send |
hs__new_conversation_btn | Text for new conversation button when conversation is resolved by the user | New Conversation |
hs__contact_us_btn | Text for 'Contact Us' button at end of search results. This doesn't show up if enableContactUs option is set to false | CONTACT US |
hs__change_btn | Text for Change button in screenshot preview screen | Change |
hs__done_btn | Helper text for the icon on single faq screen to exit the session without submitting the ticket. This button shows up when showSearchOnNewConversation is set to true and user click on a search result faq. | Done |
hs__ca_msg | Text shown as a message when customer accepts the issue resolution | |
hs__cr_msg | Auto-response message when the solution is rejected by the user in a conversation | What else can we help you with? |
hs__conversation_started_message | Text for auto-response message when user starts a new conversation | Your message has been received. Thanks for contacting us! |
hs__question_unhelpful_message | Text that shows below a single faq if the user didn't mark it as helpful | You didn't find this helpful. |
hs__network_unavailable_msg | Toast feedback for absence of network connection. | Network not available. |
hs__confirmation_footer_msg | Footer text for messages indicating issue resolution | Thanks for messaging us! |
hs__confirmation_msg | Text for confirmation of solution for the user | Did we answer all your questions? |
hs__conversation_end_msg | Feedback text when user acknowledges the solution by tapping "YES" | This conversation has ended. |
hs__search_hint | Search hint for FAQ search | Describe your problem |
hs__search_title | Helper text that show for action bar search icon | Search |
hs__new_conversation_hint | Hint text for problem description in new conversation screen | How can we help? |
hs__username_hint | Hint text for user's name in new conversation screen | Your Name |
hs__email_hint | Hint text for user's email in new conversation screen | Email (optional) |
hs__email_required_hint | Hint text for user's email in new conversation screen when email is required. | |
hs__chat_hint | Hint text for chat reply in conversation screen. | Type your message |
hs__search_footer | Text that shows up above contact us button at the end of search results. This doesn't show up if enableContactUs option is set to false | Can't find what you were looking for? |
hs__conversation_detail_error | Message for AlertDialog if the user leaves the problem description empty. This is a slight attempt to prevent the user from entering gibberish | Please describe your problem |
hs__username_blank_error | Message for AlertDialog that shows when the user leaves the name field empty in new conversation screen. | Please enter a valid name |
hs__invalid_email_error | Message for AlertDialog that shows when the user leaves the email field empty in new conversation screen. | Please enter a valid email |
hs__invalid_description_error | Title for AlertDialog that shows up if the user enters non-alphanumeric characters only. This is a slight attempt to prevent the user from entering gibberish | Invalid description |
hs__screenshot_limit_error | Text for feedback toast that shows when the screenshot is too large | Screenshot size should not exceed %.2f MB |
hs__sending_msg | Status text below customer's chat bubble when network is not available | Sending |
hs__screenshot_upload_error_msg | Text for feedback toast when screenshot upload fails | Error uploading screenshot |
hs__data_not_found_msg | Text for feedback toast when a showFAQSection API call can not access FAQs for the section's publishId or has been passed an invalid publishId | Data not found |
hs__network_error_msg | Text for generic feedback toast shown for SDK failures | Oops! Something went wrong |
hs__default_notification_content_title | Title shown in the notification for messages from support | Support |
hs__notification_content_title | Message text for push notification with single or multiple replies in for the conversation | Click here |
hs__faqs_search_footer | Text that shows below search when no FAQs are found. This show up if enableContactUs option is set to false | No FAQs found. |
hs__review_title | Title for review reminder AlertDialog | Rate Our App |
hs__review_message | Message for review reminder AlertDialog. | If you love our app, please take a moment to rate it |
hs__rate_button | Text for rate button ("Rate") in review reminder AlertDialog to rate your app. | Rate |
hs__feedback_button | Text for feedback button ( "Send Feedback" ) in review reminder AlertDialog. This shows only when there's no on-going conversation with the end user. | Send Feedback |
hs__review_close_button | Text for close button ("Close") in review reminder AlertDialog. | Close |
hs__sending_fail_msg | Status text below customer's chat bubble when their reply is not delivered | Failed to send |
hs__mark_yes_no_question | Text that shows below every single faq to mark the faq as helpful or unhelpful. | Was this helpful? |
hs__mark_yes | Text for mark helpful button in single faq screen. | YES |
hs__mark_no | Text for mark unhelpful button in single faq screen. | NO |
hs__question_helpful_message | Feedback text that shows below a single faq after the user marks it as helpful | You found this helpful. |
hs__review_request_message | Response message shown in the conversation screen when agent sends a review request from agent dashboard | Would you like to review the App on Play Store? |
hs__csat_message | Text shown in the customer satisfaction survey view | What's your feedback about our customer support? |
hs__csat_dislike_message | Text shown to hint the lowest rating | Hated it! |
hs__csat_like_message | Text shown to hint the highest rating | Loved it! |
hs__csat_option_message | Separator text, shown between the customer satisfaction view, andstart a new conversation view | or |
hs__csat_additonal_feedback_message | Hint text for EditText, for user feedback on customer service | Any other feedback (optional) |
hs__csat_submit_toast | Text for feedback toast, when the user submits a feedback on customer service | Thanks for rating us. |
hs__search_result_title | Action Bar title of faq suggestions screen | Suggestions |
hs__search_result_message | Text shown in header of suggestion results shown when showSearchOnNewConversation is set to true | Questions that may already have your answer |
hs__send_anyway | Text for 'Send Anyway' button at the end of suggestion results shown when showSearchOnNewConversation is set to true | SEND ANYWAY |
hs__could_not_open_attachment_msg | Text for feedback toast when no app can open the attachment file | No apps can perform this action. |
hs__file_not_found_msg | Text for feedback toast when user tries to open an attachment file which is not available | File not found |
hs__description_invalid_length_error | Text for alertdialog displayed when the user tries to submit the ticket with issue text length less than the minimum required length. | Please describe further so that we can help better |
hs__attach_screenshot_btn | Content Description for attach button shown when agent requests for an attachment file | ATTACH |
hs__could_not_reach_support_msg | Text shown on Snackbar when user is filing new issue and support is unreachable | Unable to reach support |
hs__faq_fetching_fail_message | Text shown in the activity when app fails to fetch FAQs from server | Unable to load FAQs at this moment. Please retry in a while… |
hs__fetching_faqs_message | Text displayed at start of session, when FAQs are being loaded | Getting your answers… |
hs__issue_archival_message | Text shown at the botton of a conversation if it is archived | Sorry! This conversation was closed due to inactivity. Please start a new conversation with our agents. |
hs__no_search_results_message | Text shown when search for a query returns no results | Whoops! We couldn't find anything for query |
hs__permission_denied_message | Text in Snackbar when app doesn't have permission to access storage | Storage permission is required to access screenshots and download attachments |
hs__permission_denied_snackbar_action | Text for button on the permission denied Snackbar, shows settings page | Settings |
hs__retry_faq_fetching_button | Text for button shown on failure to fetch FAQs, to retry fetching FAQs from server | RETRY |
hs__screenshot_add | Text for button in screenshot preview to add the screenshot | Add |
hs__screenshot_remove | Text for button in screenshot preview to remove the screenshot | Remove |
hs__select_a_question_message | Hint text shown to user to select a question in dual pane UI on tablets | Please select a question from left |
hs__starting_download | Text shown on an attachment message in conversation when it's being downloaded | Starting download… |
hs__csat_rating_value | Text for ratingbar where user can rate app with 1 or more stars | Click here |
hs__app_review_button | Text for "REVIEW" button when agent sends an app review request message to user in conversation | REVIEW |
hs__copy | Text for "COPY" button shown in context menu | Copy |
hs__message_not_sent | Status text below customer's chat bubble when their reply is not delivered, but sending can be retried | Message not sent. |
hs__permission_rationale_snackbar_action_label | "OK" button text in Snackbar when developer hasn't requested for storage permissions | OK |
hs__remove_screenshot_btn | Content Descriptor for button in new conversation form to remove the screenshot | Remove screenshot |
hs__screenshot_cloud_attach_error | Text in Toast shown when the image attachment is not available | Error attaching screenshot. Please choose an image available locally on the device. |
hs__csat_ratingbar | Content Description for ratingbar shown for customer satisfaction survey | Please rate our service. |
hs__default_notification_channel_name | Name for the SDK's default notification channel (Android Oreo and above). | In-app Support |
hs__default_notification_channel_desc | Description for the SDK's default notification channel (Android Oreo and above). | |
string name="hs__ssl_handshake_error | Text shown on error Snackbar due to SSL handshake error | Your connection is not secure. There was a problem in establishing a trusted connection |
string name="hs__ssl_peer_unverified_error | Text shown on error Snackbar due to unverified SSL peer | Your connection is not secure. There was a problem in verifying its authenticity |
hs__agent_message_with_name_voice_over | Voiceover text for Agent or bot message if the name is also shown | Message from support by %1$s on %2$s |
hs__agent_message_voice_over | Voiceover text for Agent or bot message if the name is not shown | Message from support on %1$s |
hs__user_sent_message_voice_over | Voiceover text for message sent by user | Your Reply on %1$s |
hs__user_sending_message_voice_over | Voiceover text for message sent by user which is still being sent | Your Reply, Sending |
hs__user_failed_message_voice_over | Voiceover text for message sent by user which failed to send | Your Reply, Failed to send |
hs__retry_button_voice_over | Voiceover text for retry button to trigger sending a message | Retry Sending |
hs__image_not_downloaded_voice_over | Voiceover text for image sent by Agent which is waiting for download | Image %1$s, Double Tap to Download |
hs__image_downloading_voice_over | Voiceover text for image sent by Agent which is downloading | Image, Downloading, %1$s of %2$s |
hs__image_downloaded_voice_over | Voiceover text for image sent by Agent which is downloaded | Image, Double Tap to View |
hs__attachment_not_downloaded_voice_over | Voiceover text for attachment sent by Agent which is waiting for download | File, %1$s, %2$s, Double Tap to Download |
hs__attachment_downloading_voice_over | Voiceover text for attachment sent by Agent which is downloading | File, %1$s, Downloading %2$s of %3$s |
hs__attachment_downloaded__voice_over | Voiceover text for attachment sent by Agent which is downloaded | File, %1$s, Double Tap to Open |
hs__email_input_validation_error | Error text message visible when user enters an invalid email address in portrait mode | Enter a valid email address |
hs__number_input_validation_error | Error text message visible when user enters an invalid number address in portrait mode | Enter a valid number |
hs__landscape_email_input_validation_error | Error text message visible when user enters an invalid email address in landscape mode | Please enter a valid email address |
hs__landscape_number_input_validation_error | Error text message visible when user enters an invalid number address in landscape mode | Please enter a valid number |
hs__landscape_input_validation_dialog_title | Title for the error dialog visible when user enters an invalid email address/number in landscape mode | Error |
hs__network_error_pre_issue_creation | Error message visible when there is a network error just before bots are received on the chat screen | Network error. |
hs__connecting | Message visible when the SDK tries to connect to the server just before bots are received on the chat screen in case of a network error | Connecting... |
hs__no_internet_error | Error message visible in case the device loses internet connectivity while identity bot or QuickSearch Bot is in progress | No internet connection |
hs__network_reconnecting_error | Error message visible in case there is an error while identity bot or QuickSearch Bot is in progress Something went wrong. | Reconnecting... |
hs__authentication_failed | Error message title visible in case user authentication failed | Authentication Failed |
hs__user_setup_retry_description | Error message visible in case there is a network error while the user is on the setup screen just before the chat screen | We are still trying to reach support.Please wait. |
hs__no_internet_error_mgs | Error message visible in case there is a network error while the user is on the setup screen just before the chat screen | Please check your network connection. |
hs__tap_to_retry | Error message visible on the retry button when there is a network error just before bots are received on the chat screen | Tap to retry |
hs__try_again_msg | Error message visible if the user authentication failed | Please try again later |
hs__new_conversation_footer_generic_reason | Message that is shown when the conversation cannot be continued due to an error Sorry, something went wrong. | This conversation cannot be continued. |
hs__landscape_date_input_validation_error | Error text message which will appear when a user enters an invalid date format in landscape mode | Please enter a valid date. |
hs__date_input_validation_error | Error text message which will appear when a user enters an invalid date format in portrait mode | Enter a valid date. |
hs__conversation_issue_id_header | Text to show the conversation id information. | Conversation ID : #%1$s |
hs__messages_loading_text | Header text on chat that is shown when older messages are being fetched. | Loading Messages.. |
hs__messages_loading_error_text | Text message indicating that fetch for old messages failed. | Couldn\'t Load Messages. |
hs__conversation_rejected_status | Footer text for messages indicating end of conversation. | Conversation Closed |
hs__conversation_redacted_status | Text message indicating that this conversation was deleted by an agent. | Conversation Deleted |
hs__conversation_redacted_status_multiple | Text message indicating that n number of consecutive conversations were deleted by an agent. | %1$d Conversations Deleted |
hs__conversation_publish_id_voice_over | Voiceover label for the conversation id information text. | Conversation ID %1$s |
hs__conversations_divider_voice_over | Voiceover label for the divider line separating two conversations. | Conversation ended |
hs__jump_button_voice_over | Voiceover label for the jump button on chat screen when there are no unread messages. | Jump to latest message |
hs__jump_button_with_new_message_voice_over | Voiceover label for the jump button on chat screen when there is a new unread message. | Jump to New Message |
hs__picker_search_hint | Hint text for search in list picker | Search |
hs__picker_no_results | Text for showing no search results for a query in list picker | No results found |
hs__picker_options_expand_header_voice_over | Voiceover text to expand list picker from a collapsed state | %1$s, Expand full list |
hs__picker_options_list_collapse_btn_voice_over | Voiceover text to collapse list picker from a collapsed state | Collapse list |
hs__picker_search_icon_voice_over | Voiceover text to search for options in list picker | Search list |
hs__picker_option_list_item_voice_over | Voiceover text when an option is tapped in list picker | Send, %1$s |
hs__picker_search_edit_back_btn_voice_over | Voiceover text to go back from list picker window | Back |
hs__picker_clear_query_voice_over | Voiceover text to clear query in the search input field in list picker | Clear Query |
- The messages from Identity bot and QuickSearch Bot will be sent by the Helpshift servers, so they won't be customizable in the SDK.
- First message visible to the end users is customisable from In-app SDK configurations page which located in Settings > App Settings section.
String resource declarations
hs__notification_content_title
is defined as:
<plurals name="hs__notification_content_title">
<item quantity="one">New message from Support</item>
<item quantity="other">%d new messages from Support</item>
</plurals>
hs__csat_rating_value
is defined as:
<plurals name="hs__csat_rating_value">
<item quantity="one">You rated the service with 1 star.</item>
<item quantity="other">You rated the service with %d stars.</item>
</plurals>