showoff 0.17.2 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/views/help.erb CHANGED
@@ -1,27 +1,27 @@
1
- <div id="help-modal" title="Help">
1
+ <div id="help-modal" title="<%= I18n.t('help.title') %>">
2
2
  <div id="help">
3
3
  <div>
4
- <span class="description">Move to the next slide.</span>
4
+ <span class="description"><%= I18n.t('help.next') %></span>
5
5
  <span class="action">NEXT</span>
6
6
  <span class="hotkeys"><%= mapped_keys('NEXT') %></span>
7
7
  </div>
8
8
  <div>
9
- <span class="description">Move to the previous slide.</span>
9
+ <span class="description"><%= I18n.t('help.prev') %></span>
10
10
  <span class="action">PREV</span>
11
11
  <span class="hotkeys"><%= mapped_keys('PREV') %></span>
12
12
  </div>
13
13
  <div>
14
- <span class="description">Show the table of contents menu.</span>
14
+ <span class="description"><%= I18n.t('help.contents') %></span>
15
15
  <span class="action">CONTENTS</span>
16
16
  <span class="hotkeys"><%= mapped_keys('CONTENTS') %></span>
17
17
  </div>
18
18
  <div>
19
- <span class="description">Toggle follow mode.</span>
19
+ <span class="description"><%= I18n.t('help.follow') %></span>
20
20
  <span class="action">FOLLOW</span>
21
21
  <span class="hotkeys"><%= mapped_keys('FOLLOW') %></span>
22
22
  </div>
23
23
  <div>
24
- <span class="description">Show this help dialog.</span>
24
+ <span class="description"><%= I18n.t('help.help') %></span>
25
25
  <span class="action">HELP</span>
26
26
  <span class="hotkeys"><%= mapped_keys('HELP') %></span>
27
27
  </div>
@@ -29,47 +29,47 @@
29
29
  <hr />
30
30
 
31
31
  <div>
32
- <span class="description">Refresh slide content.</span>
32
+ <span class="description"><%= I18n.t('help.refresh') %></span>
33
33
  <span class="action">REFRESH</span>
34
34
  <span class="hotkeys"><%= mapped_keys('REFRESH') %></span>
35
35
  </div>
36
36
  <div>
37
- <span class="description">Completely reload Showoff.</span>
37
+ <span class="description"><%= I18n.t('help.reload') %></span>
38
38
  <span class="action">RELOAD</span>
39
39
  <span class="hotkeys"><%= mapped_keys('RELOAD') %></span>
40
40
  </div>
41
41
  <div>
42
- <span class="description">Blank the screen.</span>
42
+ <span class="description"><%= I18n.t('help.blank') %></span>
43
43
  <span class="action">BLANK</span>
44
44
  <span class="hotkeys"><%= mapped_keys('BLANK') %></span>
45
45
  </div>
46
46
  <div>
47
- <span class="description">Toggle the display footer.</span>
47
+ <span class="description"><%= I18n.t('help.footer') %></span>
48
48
  <span class="action">FOOTER</span>
49
49
  <span class="hotkeys"><%= mapped_keys('FOOTER') %></span>
50
50
  </div>
51
51
  <div>
52
- <span class="description">Toggle notes display.</span>
52
+ <span class="description"><%= I18n.t('help.notes') %></span>
53
53
  <span class="action">NOTES</span>
54
54
  <span class="hotkeys"><%= mapped_keys('NOTES') %></span>
55
55
  </div>
56
56
  <div>
57
- <span class="description">Clear code execution results.</span>
57
+ <span class="description"><%= I18n.t('help.clear') %></span>
58
58
  <span class="action">CLEAR</span>
59
59
  <span class="hotkeys"><%= mapped_keys('CLEAR') %></span>
60
60
  </div>
61
61
  <div>
62
- <span class="description">Pause the presentation.</span>
62
+ <span class="description"><%= I18n.t('help.pause') %></span>
63
63
  <span class="action">PAUSE</span>
64
64
  <span class="hotkeys"><%= mapped_keys('PAUSE') %></span>
65
65
  </div>
66
66
  <div>
67
- <span class="description">Display slideshow of <tt>preshow</tt> images on a timer.</span>
67
+ <span class="description"><%= I18n.t('help.preshow') %></span>
68
68
  <span class="action">PRESHOW</span>
69
69
  <span class="hotkeys"><%= mapped_keys('PRESHOW') %></span>
70
70
  </div>
71
71
  <div>
72
- <span class="description">Execute the first visible code block.</span>
72
+ <span class="description"><%= I18n.t('help.execute') %></span>
73
73
  <span class="action">EXECUTE</span>
74
74
  <span class="hotkeys"><%= mapped_keys('EXECUTE') %></span>
75
75
  </div>
@@ -77,7 +77,7 @@
77
77
  <hr />
78
78
 
79
79
  <div>
80
- <span class="description">Show debugging information.</span>
80
+ <span class="description"><%= I18n.t('help.debug') %></span>
81
81
  <span class="action">DEBUG</span>
82
82
  <span class="hotkeys"><%= mapped_keys('DEBUG') %></span>
83
83
  </div>
data/views/index.erb CHANGED
@@ -13,83 +13,97 @@
13
13
  <div id="navigationHover"></div>
14
14
  <div id="feedbackSidebar" class="sideMenu">
15
15
  <img id="disconnected" src="<%= @asset_path %>/css/disconnected.png">
16
- <h3>Showoff Menu</h3>
17
- <div id="navToggle" class="buttonWrapper"><i class=" fa fa-bookmark"></i> Table of Contents</div>
16
+ <h3><%= I18n.t('menu.title') %></h3>
17
+ <div id="navToggle" class="buttonWrapper"><i class=" fa fa-bookmark"></i> <%= I18n.t('menu.table_of_contents') %></div>
18
18
  <div id="navigation" class="submenu"></div>
19
19
  <% if not @static then %>
20
20
  <hr>
21
- <div id="fileDownloads" class="buttonWrapper"><i class="fa fa-download"></i> Downloads</div>
21
+ <div id="fileDownloads" class="buttonWrapper"><i class="fa fa-download"></i> <%= I18n.t('menu.downloads') %></div>
22
22
  <% end %>
23
23
  <hr>
24
24
 
25
25
  <% if @feedback and not @static then %>
26
- <p>The presenter should...</p>
26
+ <p><%= I18n.t('menu.pace.label') %></p>
27
27
  <div id="paceSlower" class="buttonWrapper split interactive">
28
28
  <i class="fa fa-minus"></i>
29
- <br>Slow Down
29
+ <br><%= I18n.t('menu.pace.slower') %>
30
30
  </div>
31
31
  <div id="paceFaster" class="buttonWrapper split interactive">
32
32
  <i class="fa fa-plus"></i>
33
- <br>Speed Up
33
+ <br><%= I18n.t('menu.pace.faster') %>
34
34
  </div>
35
35
 
36
36
  <hr>
37
- <div id="questionToggle" class="buttonWrapper interactive"><i class="fa fa-hand-stop-o"></i> Ask a Question</div>
37
+ <div id="questionToggle" class="buttonWrapper interactive"><i class="fa fa-hand-stop-o"></i> <%= I18n.t('menu.question.label') %></div>
38
38
  <div id="questionSubmenu" class="submenu">
39
- <textarea id="question" placeholder="Ask a question..."></textarea>
39
+ <textarea id="question" placeholder="<%= I18n.t('menu.question.placeholder') %>"></textarea>
40
40
  <div id="askQuestion" class="buttonWrapper interactive">Ask</div>
41
41
  </div>
42
42
  <ul id="askedQuestions"></ul>
43
43
 
44
44
  <hr>
45
45
 
46
- <div id="feedbackToggle" class="buttonWrapper interactive"><i class="fa fa-envelope"></i> Send Feedback</div>
46
+ <div id="feedbackToggle" class="buttonWrapper interactive"><i class="fa fa-envelope"></i> <%= I18n.t('menu.feedback.label') %></div>
47
47
  <div id="feedbackSubmenu" class="submenu">
48
- <p>This slide is...</p>
48
+ <p><%= I18n.t('menu.feedback.label') %></p>
49
49
  <small>
50
- Terrible
50
+ <%= I18n.t('menu.feedback.worst') %>
51
51
  <input type="radio" name="rating" value="1"></input>
52
52
  <input type="radio" name="rating" value="2"></input>
53
53
  <input type="radio" name="rating" value="3"></input>
54
54
  <input type="radio" name="rating" value="4"></input>
55
55
  <input type="radio" name="rating" value="5"></input>
56
- Awesome
56
+ <%= I18n.t('menu.feedback.best') %>
57
57
  </small>
58
- <textarea id="feedback" placeholder="Why...?"></textarea>
59
- <div id="sendFeedback" class="buttonWrapper interactive">Send</div>
58
+ <textarea id="feedback" placeholder="<%= I18n.t('menu.feedback.why') %>"></textarea>
59
+ <div id="sendFeedback" class="buttonWrapper interactive"><%= I18n.t('menu.feedback.send') %></div>
60
60
  </div>
61
61
 
62
62
  <% if @edit then %>
63
63
  <hr>
64
- <div id="editSlide" class="buttonWrapper">Edit Current Slide</div>
64
+ <div id="editSlide" class="buttonWrapper"><%= I18n.t('menu.edit') %></div>
65
65
  <% end %>
66
66
  <hr>
67
- <div id="clearAnnotations" class="buttonWrapper"><i class="fa fa-eraser"></i> Clear Annotations</div>
67
+ <div id="clearAnnotations" class="buttonWrapper"><i class="fa fa-eraser"></i> <%= I18n.t('menu.clear_annotations') %></div>
68
68
  <hr>
69
69
  <% end %>
70
70
 
71
- <div id="closeMenu" class="buttonWrapper"><i class="fa fa-close"></i> Close</div>
71
+ <% unless language_names.empty? %>
72
+ <div id="languageMenu" class="optionWrapper">
73
+ <i class="fa fa-language" aria-hidden="true"></i> <%= I18n.t('menu.language') %>
74
+ <select id="languageSelector" autocomplete="off">
75
+ <option value="auto" selected><%= I18n.t('language.auto') %></option>
76
+ <% language_names.each do |code, name| %>
77
+ <option value="<%= code %>"><%= name %></option>
78
+ <% end %>
79
+ <option value="disable"><%= I18n.t('language.disable') %></option>
80
+ </select>
81
+ </div>
82
+ <hr>
83
+ <% end %>
84
+
85
+ <div id="closeMenu" class="buttonWrapper"><i class="fa fa-close"></i> <%= I18n.t('menu.close') %></div>
72
86
  <hr>
73
87
 
74
88
  <small>
75
- <p>Press <code>?</code> for help.</p>
76
- <p>All features are anonymous</p>
89
+ <p><%= I18n.t('menu.help') %></p>
90
+ <p><%= I18n.t('menu.anonymous') %></p>
77
91
  </small>
78
92
  </div>
79
93
  <div id="sidebarExit"></div>
80
94
  </div>
81
95
  <%= erb :help %>
82
96
 
83
- <div id="preso"><center>loading presentation...</center></div>
97
+ <div id="preso"><center><%= I18n.t('loading') %></center></div>
84
98
 
85
99
  <div id="notes"></div>
86
100
 
87
101
  <footer id="footer">
88
- <span id="followMode"></span>
89
- <span id="slideInfo"></span>
90
- <span id="debugInfo"></span>
91
- <span id="notesInfo"></span>
92
- <span id="slideFilename"></span>
102
+ <span id="followLabel" class="container"><%= I18n.t('follow.label') %> <i id="followMode" class="fa fa-ban" aria-hidden="true"></i></span>
103
+ <span id="slideInfo" class="container"></span>
104
+ <span id="debugInfo" class="container"></span>
105
+ <span id="notesInfo" class="container"></span>
106
+ <span id="slideFilename" class="container"></span>
93
107
  <img id="disconnected" src="<%= @asset_path %>/css/disconnected.png" />
94
108
  </footer>
95
109
 
@@ -97,7 +111,7 @@
97
111
  <%= @slides %>
98
112
  </div>
99
113
  <div id="buttonNav">
100
- <div id="buttonPrev"><i class="fa fa-chevron-left fa-lg"></i> Previous</div><div id="buttonNext">Next <i class="fa fa-chevron-right fa-lg"></i></div>
114
+ <div id="buttonPrev"><i class="fa fa-chevron-left fa-lg"></i> <%= I18n.t('navigation.previous') %></div><div id="buttonNext"><%= I18n.t('navigation.next') %> <i class="fa fa-chevron-right fa-lg"></i></div>
101
115
  </div>
102
116
  <div id="pauseScreen">
103
117
  <%= @pause_msg %>
data/views/presenter.erb CHANGED
@@ -24,30 +24,26 @@
24
24
 
25
25
  <span id="links">
26
26
  <span class="desktop">
27
- <label for="annotationsToggle" class="no-mobile">Annotations <i class="fa fa-pencil"></i></label>
27
+ <label for="annotationsToggle" class="no-mobile" title="<%= I18n.t('presenter.topbar.tooltip.annotations') %>"><%= I18n.t('presenter.topbar.annotations') %> <i class="fa fa-pencil"></i></label>
28
28
  <input type="checkbox" id="annotationsToggle" autocomplete="off" class="no-mobile" />
29
29
 
30
30
  <% if @edit %>
31
- <a id="edit" href="#" title="Edit current slide in new window.">Edit Slide <i class="fa fa-pencil-square-o"></i></a>
31
+ <a id="edit" href="#" title="<%= I18n.t('presenter.topbar.tooltip.edit') %>"><%= I18n.t('presenter.topbar.edit') %> <i class="fa fa-pencil-square-o"></i></a>
32
32
  <% end %>
33
33
  <% if @issues %>
34
- <a id="report" href="javascript:reportIssue();" title="Report an issue with the current slide.">Report Issue With Slide <i class="fa fa-list-alt"></i></a>
34
+ <a id="report" href="javascript:reportIssue();" title="<%= I18n.t('presenter.topbar.tooltip.report') %>"><%= I18n.t('presenter.topbar.report') %> <i class="fa fa-list-alt"></i></a>
35
35
  <% end %>
36
36
 
37
- <a id="statslink" href="">Viewing Statistics <i class="fa fa-chevron-down"></i></a>
38
-
39
- <a id="downloadslink" href="">Downloads <i class="fa fa-chevron-down"></i></a>
40
-
41
- <a id="slaveWindow" href="#" title="Enable the display window.">Display Window <i class="fa fa-clone"></i></a>
42
-
43
- <a id="printSlides" href="#" title="Print slides using a new window.">Print Slides <i class="fa fa-print"></i></a>
44
-
45
- <a id="settings" href="#">Settings <i class="fa fa-cog"></i></a>
37
+ <a id="statslink" href="" title="<%= I18n.t('presenter.topbar.tooltip.stats') %>"><%= I18n.t('presenter.topbar.stats') %> <i class="fa fa-chevron-down"></i></a>
38
+ <a id="downloadslink" href="" title="<%= I18n.t('presenter.topbar.tooltip.downloads') %>"><%= I18n.t('presenter.topbar.downloads') %> <i class="fa fa-chevron-down"></i></a>
39
+ <a id="slaveWindow" href="#" title="<%= I18n.t('presenter.topbar.tooltip.display') %>"><%= I18n.t('presenter.topbar.display') %> <i class="fa fa-clone"></i></a>
40
+ <a id="printSlides" href="#" title="<%= I18n.t('presenter.topbar.tooltip.print') %>"><%= I18n.t('presenter.topbar.print') %> <i class="fa fa-print"></i></a>
41
+ <a id="settings" href="#" title="<%= I18n.t('presenter.topbar.tooltip.settings') %>"><%= I18n.t('presenter.topbar.settings') %> <i class="fa fa-cog"></i></a>
46
42
  </span>
47
43
 
48
44
 
49
45
  <span class="mobile">
50
- <a id="update" href="">Update</a>
46
+ <a id="update" href=""><%= I18n.t('presenter.mobile.update') %></a>
51
47
  </span>
52
48
  </span>
53
49
  </div>
@@ -55,12 +51,12 @@
55
51
  <div id="main">
56
52
  <div id="sidebar">
57
53
  <div id="timerSection">
58
- <input type="button" id="pauseTimer" value="Pause" />
59
- <input type="button" id="stopTimer" value="Cancel" />
60
- <span id="timerLabel">Timer:</span>
54
+ <input type="button" id="pauseTimer" value="<%= I18n.t('presenter.timer.pause') %>" />
55
+ <input type="button" id="stopTimer" value="<%= I18n.t('presenter.timer.cancel') %>" />
56
+ <span id="timerLabel"><%= I18n.t('presenter.timer.label') %></span>
61
57
  <span id="minStart">
62
- <input type="text" size="8" id="timerMinutes"/> min
63
- <input type="button" id="startTimer" value="Start" />
58
+ <input type="text" size="4" id="timerMinutes"/> <%= I18n.t('presenter.timer.unit') %>
59
+ <input type="button" id="startTimer" value="<%= I18n.t('presenter.timer.start') %>" />
64
60
  </span>
65
61
  <div id="timerDisplay"></div>
66
62
  </div>
@@ -70,8 +66,8 @@
70
66
  <div class="gradient"> </div>
71
67
  <div class="left obscure"> </div>
72
68
  <div class="right obscure"> </div>
73
- <span id="paceSlow">Speed Up!</span>
74
- <span id="paceFast">Slow Down!</span>
69
+ <span id="paceSlow"><%= I18n.t('presenter.pace.faster') %></span>
70
+ <span id="paceFast"><%= I18n.t('presenter.pace.slower') %></span>
75
71
  <img id="paceMarker" src="<%= @asset_path %>/css/paceMarker.png" />
76
72
  </div>
77
73
  <% end %>
@@ -81,7 +77,7 @@
81
77
 
82
78
  <% if @feedback then %>
83
79
  <div id="questions">
84
- <h3>Audience Questions</h3>
80
+ <h3><%= I18n.t('presenter.questions') %></h3>
85
81
  <ol id="unanswered"></ol>
86
82
  <ol id="answered"></ol>
87
83
  </div>
@@ -93,23 +89,23 @@
93
89
  <div id="frame">
94
90
  <div id="preview">
95
91
  <img id="disconnected" src="<%= @asset_path %>/css/disconnected-large.png" />
96
- <div id="prevSlide" class="thumb"><div class="container"></div><h3 class="label">Previous</h3></div>
97
- <div id="nextSlide" class="thumb"><div class="container"></div><h3 class="label">Next</h3></div>
98
- <div id="preso">loading presentation...</div>
92
+ <div id="prevSlide" class="thumb"><div class="container"></div><h3 class="label"><%= I18n.t('presenter.preview.previous') %></h3></div>
93
+ <div id="nextSlide" class="thumb"><div class="container"></div><h3 class="label"><%= I18n.t('presenter.preview.next') %></h3></div>
94
+ <div id="preso"><%= I18n.t('loading') %></div>
99
95
  </div>
100
96
  <div id="annotationToolbar">
101
- <label>Tools</label>
97
+ <label><%= I18n.t('presenter.annotation.tools') %></label>
102
98
  <i class="fa fa-pencil tool default active" data-action="draw" aria-hidden="true"></i>
103
99
  <i class="fa fa-arrow-right tool" data-action="rightArrow" aria-hidden="true"></i>
104
100
  <i class="fa fa-arrow-left tool" data-action="leftArrow" aria-hidden="true"></i>
105
101
  <i class="fa fa-bullseye tool" data-action="highlight" aria-hidden="true"></i>
106
102
  <i class="fa fa-eraser tool" data-action="erase" aria-hidden="true"></i>
107
- <label>Lines</label>
103
+ <label><%= I18n.t('presenter.annotation.lines') %></label>
108
104
  <i class="fa fa-square-o lines color1 active" aria-hidden="true"></i>
109
105
  <i class="fa fa-square-o lines color2" aria-hidden="true"></i>
110
106
  <i class="fa fa-square-o lines color3" aria-hidden="true"></i>
111
107
  <i class="fa fa-square-o lines color4" aria-hidden="true"></i>
112
- <label>Shapes</label>
108
+ <label><%= I18n.t('presenter.annotation.shapes') %></label>
113
109
  <i class="fa fa-square shapes color1" aria-hidden="true"></i>
114
110
  <i class="fa fa-square shapes color2" aria-hidden="true"></i>
115
111
  <i class="fa fa-square shapes color3 active" aria-hidden="true"></i>
@@ -117,72 +113,94 @@
117
113
  </div>
118
114
  </div>
119
115
 
120
- <div id="statusbar">
121
- <span class="label">Slide: <span id="slideInfo"></span></span>
122
- <span id="debugInfo"></span>
123
- <span id="slideSource">
124
- <% if @request.host == 'localhost' %>
125
- <a href="#"><span id="slideFile"></span></a>
126
- <% else %>
127
- <span id="slideFile"></span>
128
- <% end %>
129
- </span>
130
- </div>
131
- <div id="progress" class="no-mobile"></div>
116
+ <div id="notes-pane">
117
+ <div id="statusbar">
118
+ <span class="label"><%= I18n.t('presenter.status.label') %> <span id="slideInfo"></span></span>
119
+ <span id="debugInfo"></span>
120
+ <span id="slideSource">
121
+ <% if @request.host == 'localhost' %>
122
+ <a href="#"><span id="slideFile"></span></a>
123
+ <% else %>
124
+ <span id="slideFile"></span>
125
+ <% end %>
126
+ </span>
127
+ </div>
128
+ <div id="progress" class="no-mobile"></div>
132
129
 
133
- <div id="buttonNav">
134
- <div id="buttonPrev"><i class="fa fa-chevron-left fa-lg"></i> Previous</div><div id="buttonNext">Next <i class="fa fa-chevron-right fa-lg"></i></div>
135
- </div>
130
+ <div id="buttonNav">
131
+ <div id="buttonPrev"><i class="fa fa-chevron-left fa-lg"></i> <%= I18n.t('navigation.previous') %></div><div id="buttonNext"><%= I18n.t('navigation.next') %> <i class="fa fa-chevron-right fa-lg"></i></div>
132
+ </div>
136
133
 
137
- <div id="notes-wrapper">
138
- <ul class="section-selector"></ul>
139
- <div class="controls">
140
- <a class="no-mobile fa fa-minus small" aria-hidden="true" href="#"></a>
141
- <a class="no-mobile fa fa-dot-circle-o small" aria-hidden="true" href="#"></a>
142
- <a class="no-mobile fa fa-plus small" aria-hidden="true" href="#"></a>
143
- <span class="spacer"> </span>
144
- <a id="notesToggle" class="no-mobile fa fa-external-link-square" aria-hidden="true" href="#"></a>
145
- <span><i class="no-mobile fa fa-bars notes-grippy ui-resizable-handle ui-resizable-n" aria-hidden="true"></i></span>
134
+ <div id="notes-wrapper">
135
+ <ul class="section-selector"></ul>
136
+ <div class="controls">
137
+ <a class="no-mobile fa fa-minus small" aria-hidden="true" href="#"></a>
138
+ <a class="no-mobile fa fa-dot-circle-o small" aria-hidden="true" href="#"></a>
139
+ <a class="no-mobile fa fa-plus small" aria-hidden="true" href="#"></a>
140
+ <span class="spacer"> </span>
141
+ <a id="notesToggle" class="no-mobile fa fa-external-link-square" aria-hidden="true" href="#"></a>
142
+ <span><i class="no-mobile fa fa-bars notes-grippy ui-resizable-handle ui-resizable-n" aria-hidden="true"></i></span>
143
+ </div>
144
+ <div id="notes"></div>
146
145
  </div>
147
- <div id="notes"></div>
148
146
  </div>
149
147
  </div><!-- end presenter -->
150
148
  </div><!-- end main -->
151
149
 
152
- <div id="settings-modal" title="Settings">
153
- <div id="enableFollower" class="setting" title="Send slide change notifications.">
154
- <label for="followerToggle">Update Follower</label><input type="checkbox" id="followerToggle" autocomplete="off" checked />
150
+ <div id="settings-modal" title="<%= I18n.t('presenter.settings.label') %>">
151
+ <div id="enableFollower" class="setting" title="<%= I18n.t('presenter.settings.follower.tooltip') %>">
152
+ <label for="followerToggle"><%= I18n.t('presenter.settings.follower.label') %></label><input type="checkbox" id="followerToggle" autocomplete="off" checked />
155
153
  <p class="description">
156
- When this is enabled, the Showoff server will track your slide changes. Disable it to observe the presentation without inadvertently causing slide changes.
154
+ <%= I18n.t('presenter.settings.follower.description') %>
157
155
  </p>
158
156
  </div>
159
- <div id="enableRemote" class="setting" title="Enables tracking of other presenters.">
160
- <label for="remoteToggle">Enable Remote</label><input type="checkbox" id="remoteToggle" autocomplete="off" checked />
157
+ <div id="enableRemote" class="setting" title="<%= I18n.t('presenter.settings.remote.tooltip') %>">
158
+ <label for="remoteToggle"><%= I18n.t('presenter.settings.remote.label') %></label><input type="checkbox" id="remoteToggle" autocomplete="off" checked />
161
159
  <p class="description">
162
- When this is enabled, you can load the presenter in another browser (typically on your mobile phone) to control the presentation.
160
+ <%= I18n.t('presenter.settings.remote.description') %>
163
161
  </p>
164
162
  </div>
163
+ <% unless language_names.empty? %>
165
164
  <div class="setting">
166
- <label>Layout</label><br>
165
+ <label><%= I18n.t('presenter.settings.language.label') %></label><br>
166
+ <select id="languageSelector" autocomplete="off">
167
+ <option value="auto" selected><%= I18n.t('language.auto') %></option>
168
+ <% language_names.each do |code, name| %>
169
+ <option value="<%= code %>"><%= name %></option>
170
+ <% end %>
171
+ <option value="disable"><%= I18n.t('language.disable') %></option>
172
+ </select>
173
+ <p class="description">
174
+ <%= I18n.t('presenter.settings.language.description') %>
175
+ </p>
176
+ </div>
177
+ <% end %>
178
+ <div class="setting">
179
+ <label><%= I18n.t('presenter.settings.layout.label') %></label><br>
167
180
  <select id="layoutSelector" autocomplete="off">
168
- <option value="default" selected>Default Layout</option>
169
- <option value="thumbs" title="Display thumbnail previews of the next and previous slides.">Thumbnails</option>
170
- <option value="floating" title="Open the next slide as a floating window.">Floating</option>
171
- <option value="beside" title="Display the next slide as a large preview in the main presenter view.">Side-by-Side</option>
181
+ <option value="default" selected><%= I18n.t('presenter.settings.layout.default') %></option>
182
+ <option value="thumbs" title="<%= I18n.t('presenter.settings.layout.thumbs') %>">Thumbnails</option>
183
+ <option value="floating" title="<%= I18n.t('presenter.settings.layout.floating') %>">Floating</option>
184
+ <option value="beside" title="<%= I18n.t('presenter.settings.layout.beside') %>">Side-by-Side</option>
172
185
  </select>
173
186
  <div id="nextWindowConfirmation">
174
- <p class="description">Browser security requires confirmation before opening a new window.</p>
187
+ <p class="description"><%= I18n.t('presenter.settings.layout.confirmation') %></p>
175
188
  <p>
176
- <input id="openNextWindow" type="button" onClick="#" value="Open Window" />
177
- <a id="nextWinCancel" href="#">cancel</a>
189
+ <input id="openNextWindow" type="button" onClick="#" value="<%= I18n.t('presenter.settings.layout.open') %>" />
190
+ <a id="nextWinCancel" href="#"><%= I18n.t('presenter.settings.layout.cancel') %></a>
178
191
  </p>
179
192
  </div>
180
193
  </div>
181
194
  <div class="links">
182
- <a id="clearCookies" href="#" title="Reset Showoff UI settings to default values.">Clear Showoff settings.</a>
195
+ <a id="clearCookies" href="#" title="<%= I18n.t('presenter.settings.layout.reset.tooltip') %>"><%= I18n.t('presenter.settings.layout.reset.label') %></a>
183
196
  </div>
184
197
  </div>
185
198
 
199
+ <div id="print-modal" title="<%= I18n.t('presenter.print.label') %>">
200
+ <p><%= I18n.t('presenter.print.description') %></p>
201
+ <ul id="print-sections"></ul>
202
+ </div>
203
+
186
204
  <div id="slides" class="offscreen" <%= 'style="display:none;"' if @slides %>>
187
205
  <%= @slides %>
188
206
  </div>