Bug 1061154 Part 2 Change existing Loop strings based on UX feedback. r=nperriault
authorMark Banner <standard8@mozilla.com>
Mon, 01 Sep 2014 18:11:50 +0100
changeset 224401 0efafd8c0a2430845f21f3d3a6e70325ff40685c
parent 224400 27e19ba21f125c451dbba5f8fc2505a0c84dcefb
child 224402 05cbe9a31ad3c94e3782bc626d8e26b3b1e7fb8c
push id3979
push userraliiev@mozilla.com
push dateMon, 13 Oct 2014 16:35:44 +0000
treeherdermozilla-beta@30f2cc610691 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnperriault
bugs1061154
milestone34.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1061154 Part 2 Change existing Loop strings based on UX feedback. r=nperriault
browser/components/loop/MozLoopService.jsm
browser/components/loop/content/js/conversation.js
browser/components/loop/content/js/conversation.jsx
browser/components/loop/content/shared/js/views.js
browser/components/loop/content/shared/js/views.jsx
browser/components/loop/standalone/content/js/webapp.js
browser/components/loop/standalone/content/js/webapp.jsx
browser/components/loop/standalone/content/l10n/data.ini
browser/locales/en-US/chrome/browser/loop/loop.properties
--- a/browser/components/loop/MozLoopService.jsm
+++ b/browser/components/loop/MozLoopService.jsm
@@ -306,17 +306,17 @@ let MozLoopServiceInternal = {
     }
 
     // We set this here as it is assumed that once the user receives an incoming
     // call, they'll have had enough time to see the terms of service. See
     // bug 1046039 for background.
     Services.prefs.setCharPref("loop.seenToS", "seen");
 
     this.openChatWindow(null,
-                        this.localizedStrings["incoming_call_title"].textContent,
+                        this.localizedStrings["incoming_call_title2"].textContent,
                         "about:loopconversation#incoming/" + version);
   },
 
   /**
    * A getter to obtain and store the strings for loop. This is structured
    * for use by l10n.js.
    *
    * @returns {Object} a map of element ids with attributes to set.
--- a/browser/components/loop/content/js/conversation.js
+++ b/browser/components/loop/content/js/conversation.js
@@ -82,17 +82,17 @@ loop.conversation = (function(OT, mozL10
       var conversationPanelClass = "incoming-call";
       var dropdownMenuClassesDecline = React.addons.classSet({
         "native-dropdown-menu": true,
         "conversation-window-dropdown": true,
         "visually-hidden": !this.state.showDeclineMenu
       });
       return (
         React.DOM.div({className: conversationPanelClass}, 
-          React.DOM.h2(null, __("incoming_call")), 
+          React.DOM.h2(null, __("incoming_call_title2")), 
           React.DOM.div({className: "btn-group incoming-call-action-group"}, 
 
             React.DOM.div({className: "fx-embedded-incoming-call-button-spacer"}), 
 
             React.DOM.div({className: "btn-chevron-menu-group"}, 
               React.DOM.div({className: "btn-group-chevron"}, 
                 React.DOM.div({className: "btn-group"}, 
 
@@ -357,17 +357,17 @@ loop.conversation = (function(OT, mozL10
   /**
    * Panel initialisation.
    */
   function init() {
     // Do the initial L10n setup, we do this before anything
     // else to ensure the L10n environment is setup correctly.
     mozL10n.initialize(navigator.mozLoop);
 
-    document.title = mozL10n.get("incoming_call_title");
+    document.title = mozL10n.get("incoming_call_title2");
 
     document.body.classList.add(loop.shared.utils.getTargetPlatform());
 
     var client = new loop.Client();
     router = new ConversationRouter({
       client: client,
       conversation: new loop.shared.models.ConversationModel(
         {},         // Model attributes
--- a/browser/components/loop/content/js/conversation.jsx
+++ b/browser/components/loop/content/js/conversation.jsx
@@ -82,17 +82,17 @@ loop.conversation = (function(OT, mozL10
       var conversationPanelClass = "incoming-call";
       var dropdownMenuClassesDecline = React.addons.classSet({
         "native-dropdown-menu": true,
         "conversation-window-dropdown": true,
         "visually-hidden": !this.state.showDeclineMenu
       });
       return (
         <div className={conversationPanelClass}>
-          <h2>{__("incoming_call")}</h2>
+          <h2>{__("incoming_call_title2")}</h2>
           <div className="btn-group incoming-call-action-group">
 
             <div className="fx-embedded-incoming-call-button-spacer"></div>
 
             <div className="btn-chevron-menu-group">
               <div className="btn-group-chevron">
                 <div className="btn-group">
 
@@ -357,17 +357,17 @@ loop.conversation = (function(OT, mozL10
   /**
    * Panel initialisation.
    */
   function init() {
     // Do the initial L10n setup, we do this before anything
     // else to ensure the L10n environment is setup correctly.
     mozL10n.initialize(navigator.mozLoop);
 
-    document.title = mozL10n.get("incoming_call_title");
+    document.title = mozL10n.get("incoming_call_title2");
 
     document.body.classList.add(loop.shared.utils.getTargetPlatform());
 
     var client = new loop.Client();
     router = new ConversationRouter({
       client: client,
       conversation: new loop.shared.models.ConversationModel(
         {},         // Model attributes
--- a/browser/components/loop/content/shared/js/views.js
+++ b/browser/components/loop/content/shared/js/views.js
@@ -179,17 +179,17 @@ loop.shared.views = (function(_, OT, l10
 
     render: function() {
       /* jshint ignore:start */
       return (
         React.DOM.ul({className: "conversation-toolbar"}, 
           React.DOM.li({className: "conversation-toolbar-btn-box"}, 
             React.DOM.button({className: "btn btn-hangup", onClick: this.handleClickHangup, 
                     title: l10n.get("hangup_button_title")}, 
-              l10n.get("hangup_button_caption")
+              l10n.get("hangup_button_caption2")
             )
           ), 
           React.DOM.li({className: "conversation-toolbar-btn-box"}, 
             MediaControlButton({action: this.handleToggleVideo, 
                                 enabled: this.props.video.enabled, 
                                 scope: "local", type: "video"})
           ), 
           React.DOM.li({className: "conversation-toolbar-btn-box"}, 
--- a/browser/components/loop/content/shared/js/views.jsx
+++ b/browser/components/loop/content/shared/js/views.jsx
@@ -179,17 +179,17 @@ loop.shared.views = (function(_, OT, l10
 
     render: function() {
       /* jshint ignore:start */
       return (
         <ul className="conversation-toolbar">
           <li className="conversation-toolbar-btn-box">
             <button className="btn btn-hangup" onClick={this.handleClickHangup}
                     title={l10n.get("hangup_button_title")}>
-              {l10n.get("hangup_button_caption")}
+              {l10n.get("hangup_button_caption2")}
             </button>
           </li>
           <li className="conversation-toolbar-btn-box">
             <MediaControlButton action={this.handleToggleVideo}
                                 enabled={this.props.video.enabled}
                                 scope="local" type="video" />
           </li>
           <li className="conversation-toolbar-btn-box">
--- a/browser/components/loop/standalone/content/js/webapp.js
+++ b/browser/components/loop/standalone/content/js/webapp.js
@@ -245,33 +245,33 @@ loop.webapp = (function($, _, OT, webL10
         /* jshint ignore:start */
         React.DOM.div({className: "container"}, 
           React.DOM.div({className: "container-box"}, 
 
             ConversationHeader({
               urlCreationDateString: this.state.urlCreationDateString}), 
 
             React.DOM.p({className: "standalone-call-btn-label"}, 
-              __("initiate_call_button_label")
+              __("initiate_call_button_label2")
             ), 
 
             React.DOM.div({id: "messages"}), 
 
             React.DOM.div({className: "btn-group"}, 
               React.DOM.div({className: "flex-padding-1"}), 
               React.DOM.div({className: "standalone-btn-chevron-menu-group"}, 
                 React.DOM.div({className: "btn-group-chevron"}, 
                   React.DOM.div({className: "btn-group"}, 
 
                     React.DOM.button({className: btnClassStartCall, 
                             onClick: this._initiateOutgoingCall("audio-video"), 
                             disabled: this.state.disableCallButton, 
-                            title: __("initiate_audio_video_call_tooltip")}, 
+                            title: __("initiate_audio_video_call_tooltip2")}, 
                       React.DOM.span({className: "standalone-call-btn-text"}, 
-                        __("initiate_audio_video_call_button")
+                        __("initiate_audio_video_call_button2")
                       ), 
                       React.DOM.span({className: "standalone-call-btn-video-icon"})
                     ), 
 
                     React.DOM.div({className: "btn-chevron", 
                       onClick: this._toggleCallOptionsMenu}
                     )
 
@@ -280,17 +280,17 @@ loop.webapp = (function($, _, OT, webL10
                   React.DOM.ul({className: dropdownMenuClasses}, 
                     React.DOM.li(null, 
                       /*
                        Button required for disabled state.
                        */
                       React.DOM.button({className: "start-audio-only-call", 
                               onClick: this._initiateOutgoingCall("audio"), 
                               disabled: this.state.disableCallButton}, 
-                        __("initiate_audio_call_button")
+                        __("initiate_audio_call_button2")
                       )
                     )
                   )
 
                 )
               ), 
               React.DOM.div({className: "flex-padding-1"})
             ), 
--- a/browser/components/loop/standalone/content/js/webapp.jsx
+++ b/browser/components/loop/standalone/content/js/webapp.jsx
@@ -245,33 +245,33 @@ loop.webapp = (function($, _, OT, webL10
         /* jshint ignore:start */
         <div className="container">
           <div className="container-box">
 
             <ConversationHeader
               urlCreationDateString={this.state.urlCreationDateString} />
 
             <p className="standalone-call-btn-label">
-              {__("initiate_call_button_label")}
+              {__("initiate_call_button_label2")}
             </p>
 
             <div id="messages"></div>
 
             <div className="btn-group">
               <div className="flex-padding-1"></div>
               <div className="standalone-btn-chevron-menu-group">
                 <div className="btn-group-chevron">
                   <div className="btn-group">
 
                     <button className={btnClassStartCall}
                             onClick={this._initiateOutgoingCall("audio-video")}
                             disabled={this.state.disableCallButton}
-                            title={__("initiate_audio_video_call_tooltip")} >
+                            title={__("initiate_audio_video_call_tooltip2")} >
                       <span className="standalone-call-btn-text">
-                        {__("initiate_audio_video_call_button")}
+                        {__("initiate_audio_video_call_button2")}
                       </span>
                       <span className="standalone-call-btn-video-icon"></span>
                     </button>
 
                     <div className="btn-chevron"
                       onClick={this._toggleCallOptionsMenu}>
                     </div>
 
@@ -280,17 +280,17 @@ loop.webapp = (function($, _, OT, webL10
                   <ul className={dropdownMenuClasses}>
                     <li>
                       {/*
                        Button required for disabled state.
                        */}
                       <button className="start-audio-only-call"
                               onClick={this._initiateOutgoingCall("audio")}
                               disabled={this.state.disableCallButton} >
-                        {__("initiate_audio_call_button")}
+                        {__("initiate_audio_call_button2")}
                       </button>
                     </li>
                   </ul>
 
                 </div>
               </div>
               <div className="flex-padding-1"></div>
             </div>
--- a/browser/components/loop/standalone/content/l10n/data.ini
+++ b/browser/components/loop/standalone/content/l10n/data.ini
@@ -1,25 +1,24 @@
 ## LOCALIZATION NOTE: In this file, don't translate the part between {{..}}
 [en]
 restart_call=Rejoin
-begin_call_prompt=Ready to start your conversation?
 conversation_has_ended=Your conversation has ended.
 call_timeout_notification_text=Your call did not go through.
 missing_conversation_info=Missing conversation information.
 network_disconnected=The network connection terminated abruptly.
 peer_ended_conversation2=The person you were calling has ended the conversation.
 connection_error_see_console_notification=Call failed; see console for details.
 generic_failure_with_reason=Something went wrong. You can try again or email a link to be reached at later.
 generic_failure_no_reason=Something went wrong. Would you like to try again?
 retry=Retry
 report_user=Report User
 unable_retrieve_call_info=Unable to retrieve conversation information.
 hangup_button_title=Hang up
-hangup_button_caption=End Call
+hangup_button_caption2=Exit
 mute_local_audio_button_title=Mute your audio
 unmute_local_audio_button_title=Unmute your audio
 mute_local_video_button_title=Mute your video
 unmute_local_video_button_title=Unmute your video
 start_call_no_identity=Start conversation?
 start_call_identity=Conversation with {{incomingCallIdentity}}
 welcome=Welcome to the {{clientShortname}} web client.
 incompatible_browser=Incompatible Browser
@@ -28,20 +27,20 @@ use_latest_firefox.innerHTML=Please try 
 incompatible_device=Incompatible device
 sorry_device_unsupported=Sorry, {{clientShortname}} does not currently support your device.
 use_firefox_windows_mac_linux=Please open this page using the latest {{brandShortname}} on Windows, Android, Mac or Linux.
 connection_error_see_console_notification=Call failed; see console for details.
 call_url_unavailable_notification_heading=Oops!
 call_url_unavailable_notification_message2=Sorry, this URL is not available. It may be expired or entered incorrectly.
 promote_firefox_hello_heading=Download {{brandShortname}} to make free audio and video calls!
 get_firefox_button=Get {{brandShortname}}
-initiate_call_button_label=Click Call to start a video chat
-initiate_audio_video_call_button=Call
-initiate_audio_video_call_tooltip=Start a video call
-initiate_audio_call_button=Voice call
+initiate_call_button_label2=Ready to start your conversation?
+initiate_audio_video_call_button2=Start
+initiate_audio_video_call_tooltip2=Start a video conversation
+initiate_audio_call_button2=Voice conversation
 reject_incoming_call=Cancel
 legal_text_and_links=By using this product you agree to the {{terms_of_use_url}} and {{privacy_notice_url}}
 terms_of_use_link_text=Terms of use
 privacy_notice_link_text=Privacy notice
 brandShortname=Firefox
 clientShortname=WebRTC!
 ## LOCALIZATION NOTE (call_url_creation_date_label): Example output: (from May 26, 2014)
 call_url_creation_date_label=(from {{call_url_creation_date}})
--- a/browser/locales/en-US/chrome/browser/loop/loop.properties
+++ b/browser/locales/en-US/chrome/browser/loop/loop.properties
@@ -124,25 +124,24 @@ audio_call_menu_button=Audio Conversatio
 ## LOCALIZATION NOTE(video_call_menu_button): Displayed in the contact list in a
 ## pop-up menu next to the contact's name.
 ## https://people.mozilla.org/~dhenein/labs/loop-mvp-spec/#contacts
 video_call_menu_button=Video Conversation
 
 # Conversation Window Strings
 
 begin_call_prompt=Ready to start your conversation?
-incoming_call_title=Incoming Call…
-incoming_call=Incoming call
+incoming_call_title2=Conversation Request
 incoming_call_accept_button=Accept
 incoming_call_accept_audio_only_tooltip=Accept with voice
 incoming_call_cancel_button=Cancel
 incoming_call_cancel_and_block_button=Cancel and Block
 incoming_call_block_button=Block
 hangup_button_title=Hang up
-hangup_button_caption=End Call
+hangup_button_caption2=Exit
 mute_local_audio_button_title=Mute your audio
 unmute_local_audio_button_title=Unmute your audio
 mute_local_video_button_title=Mute your video
 unmute_local_video_button_title=Unmute your video
 
 peer_ended_conversation2=The person you were calling has ended the conversation.
 conversation_has_ended=Your conversation has ended.
 restart_call=Rejoin