Add translation tags to the templates.

Fixes #726
This commit is contained in:
Umair Khan 2016-05-12 16:53:41 +05:00 committed by Tim Abbott
parent 82b5d9304b
commit ac13187d76
35 changed files with 219 additions and 205 deletions

View File

@ -3,21 +3,21 @@
{{#if can_edit_message}}
<li>
<a href="#" class="popover_edit_message" data-msgid="{{message.id}}">
<i class="icon-vector-pencil"></i> Edit
<i class="icon-vector-pencil"></i> {{t "Edit" }}
</a>
</li>
{{/if}}
<li>
<a href="#" class="respond_button">
<i class="icon-vector-share-alt"></i> Reply
<i class="icon-vector-share-alt"></i> {{t "Reply" }}
</a>
</li>
<li>
<a href="#" class="popover_toggle_collapse" data-msgid="{{message.id}}">
<i class="{{#if message.collapsed}}icon-vector-plus{{else}}icon-vector-minus{{/if}}"></i>
{{#if message.collapsed}}Un-collapse{{else}}Collapse{{/if}}
{{#if message.collapsed}}{{t "Un-collapse" }}{{else}}{{t "Collapse" }}{{/if}}
</a>
</li>
@ -25,7 +25,7 @@
<li>
<a href="#" class="popover_mute_topic" data-msg-stream="{{message.stream}}" data-msg-topic="{{message.subject}}">
<i class="icon-vector-eye-close"></i>
Mute the topic <b>{{message.subject}}</b>
{{#tr message}}Mute the topic <b>__subject__</b>{{/tr}}
</a>
</li>
{{/if}}
@ -34,14 +34,14 @@
<li>
<a href="#" class="popover_unmute_topic" data-msg-stream="{{message.stream}}" data-msg-topic="{{message.subject}}">
<i class="icon-vector-eye-open"></i>
Unmute the topic <b>{{message.subject}}</b>
{{#tr message}}Unmute the topic <b>__subject__</b>{{/tr}}
</a>
</li>
{{/if}}
<li>
<a href="{{ conversation_time_uri }}" class="popover_narrow_by_conversation_and_time" data-msgid="{{message.id}}">
<i class="icon-vector-link"></i> Link to this conversation
<i class="icon-vector-link"></i> {{t "Link to this conversation" }}
</a>
</li>

View File

@ -8,7 +8,7 @@
</td>
<td>
<button class="btn delete btn-danger" data-emoji-name="{{name}}">
Delete
{{t "Delete" }}
</button>
</td>
</tr>

View File

@ -6,7 +6,7 @@
</td>
<td>
<button class="btn deactivate btn-danger">
Delete stream
{{t "Delete stream" }}
</button>
</td>
</tr>

View File

@ -2,29 +2,29 @@
<div class="span12">
<div class="administration">
<div class="alert" id="administration-status"></div>
<h1><i class="icon-vector-bolt administration-icon"></i>Administration</h1>
<h1><i class="icon-vector-bolt administration-icon"></i>{{t "Administration" }}</h1>
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active">
<a href="#organization" aria-controls="organization" role="tab" data-toggle="tab"><i class="icon-vector-gear settings-section-icon"></i> Organization settings</a>
<a href="#organization" aria-controls="organization" role="tab" data-toggle="tab"><i class="icon-vector-gear settings-section-icon"></i> {{t "Organization settings" }}</a>
</li>
<li role="presentation">
<a href="#users" aria-controls="users" role="tab" data-toggle="tab"><i class="icon-vector-user settings-section-icon"></i> Users</a>
<a href="#users" aria-controls="users" role="tab" data-toggle="tab"><i class="icon-vector-user settings-section-icon"></i> {{t "Users" }}</a>
</li>
<li role="presentation">
<a href="#deactivated-users" aria-controls="deactivated-users" role="tab" data-toggle="tab"><i class="icon-vector-trash settings-section-icon"></i> Deactivated Users</a>
<a href="#deactivated-users" aria-controls="deactivated-users" role="tab" data-toggle="tab"><i class="icon-vector-trash settings-section-icon"></i> {{t "Deactivated Users" }}</a>
</li>
<li role="presentation">
<a href="#bots" aria-controls="bots" role="tab" data-toggle="tab"><i class="icon-vector-github settings-section-icon"></i> Bots</a>
<a href="#bots" aria-controls="bots" role="tab" data-toggle="tab"><i class="icon-vector-github settings-section-icon"></i> {{t "Bots" }}</a>
</li>
<li role="presentation">
<a href="#streams" aria-controls="streams" role="tab" data-toggle="tab"><i class="icon-vector-exchange settings-section-icon"></i> Streams Deletion</a>
<a href="#streams" aria-controls="streams" role="tab" data-toggle="tab"><i class="icon-vector-exchange settings-section-icon"></i> {{t "Streams Deletion" }}</a>
</li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="organization">
<div id="organization-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-gear settings-section-icon"></i>
Organization settings</div>
{{t "Organization settings" }}</div>
<form class="form-horizontal admin-realm-form">
<div class="control-group admin-realm">
<div class="alert" id="admin-realm-name-status"></div>
@ -39,19 +39,19 @@
</div>
</div>
<div class="control-group">
<label for="realm_restricted_to_domain" title="If checked, only users with an @{{ domain }} e-mail address will be able to join the organization." class="control-label">Users restricted to {{ domain }}</label>
<label for="realm_restricted_to_domain" title="{{#tr this}}If checked, only users with an @__domain__ e-mail address will be able to join the organization.{{/tr}}" class="control-label">{{#tr this}}Users restricted to __domain__{{/tr}}</label>
<div class="controls">
<input type="checkbox" id="id_realm_restricted_to_domain" name="realm_restricted_to_domain" {{#if realm_restricted_to_domain}}checked="checked"{{/if}} />
</div>
</div>
<div class="control-group">
<label for="realm_invite_required" title="If checked, users must be invited in order to join your organization." class="control-label">E-mail invitation required</label>
<label for="realm_invite_required" title="{{t 'If checked, users must be invited in order to join your organization.' }}" class="control-label">{{t "E-mail invitation required" }}</label>
<div class="controls">
<input type="checkbox" id="id_realm_invite_required" name="realm_invite_required" {{#if realm_invite_required}}checked="checked"{{/if}} />
</div>
</div>
<div class="control-group">
<label for="realm_invite_by_admins_only" id="id_realm_invite_by_admins_only_label" title="If checked, only administrators may invite new users." class="control-label{{#unless realm_invite_required}} control-label-disabled{{/unless}}">Only admins may invite</label>
<label for="realm_invite_by_admins_only" id="id_realm_invite_by_admins_only_label" title="{{t 'If checked, only administrators may invite new users.' }}" class="control-label{{#unless realm_invite_required}} control-label-disabled{{/unless}}">{{t "Only admins may invite" }}</label>
<div class="controls">
<input type="checkbox" id="id_realm_invite_by_admins_only" name="realm_invite_by_admins_only" {{#unless realm_invite_required}}disabled="disabled"{{/unless}} {{#if realm_invite_by_admins_only}}checked="checked"{{/if}} />
</div>
@ -63,40 +63,40 @@
</div>
</div>
<div class="controls organization-submission">
<input type="submit" class="btn btn-big btn-primary" value="Save changes" />
<input type="submit" class="btn btn-big btn-primary" value="{{t 'Save changes' }}" />
</div>
</form>
</div>
<div id="emoji-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-smile settings-section-icon"></i>
Custom realm emoji</div>
{{t "Custom realm emoji" }}</div>
<div class="admin-table-wrapper">
<table class="table table-condensed table-striped admin_emoji_table">
<tbody id="admin_emoji_table">
<th>Name</th>
<th class="image">Image</th>
<th class="actions">Actions</th>
<th>{{t "Name" }}</th>
<th class="image">{{t "Image" }}</th>
<th class="actions">{{t "Actions" }}</th>
</tbody>
</table>
</div>
<form class="form-horizontal admin-emoji-form">
<div class="add-new-emoji-box">
<div class="new-emoji-form">
<div class="settings-section-title new-emoji-section-title">Add a New Emoji</div>
<div class="settings-section-title new-emoji-section-title">{{t "Add a New Emoji" }}</div>
<div class="alert" id="admin-emoji-status"></div>
<div class="control-group">
<label for="emoji_name" class="control-label">Emoji name</label>
<label for="emoji_name" class="control-label">{{t "Emoji name" }}</label>
<input type="text" name="name" id="emoji_name" placeholder="mouse_face" />
<div class="alert" id="admin-emoji-name-status"></div>
</div>
<div class="control-group">
<label for="emoji_url" class="control-label">Emoji URL</label>
<label for="emoji_url" class="control-label">{{t "Emoji URL" }}</label>
<input type="text" name="url" id="emoji_url" placeholder="http://emojipedia-us.s3.amazonaws.com/cache/46/7f/467fe69069c408e07517621f263ea9b5.png" />
<div class="alert" id="admin-emoji-url-status"></div>
</div>
<div class="control-group">
<div class="controls">
<input type="submit" class="btn btn-big btn-primary" value="Add emoji" />
<input type="submit" class="btn btn-big btn-primary" value="{{t 'Add emoji' }}" />
</div>
</div>
</div>
@ -107,12 +107,12 @@
<div role="tabpanel" class="tab-pane" id="users">
<div id="admin-user-list" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-user settings-section-icon"></i>
Users</div>
{{t "Users" }}</div>
<table class="table table-condensed table-striped">
<tbody id="admin_users_table" class="admin_user_table">
<th>Name</th>
<th>Email</th>
<th>Actions</th>
<th>{{t "Name" }}</th>
<th>{{t "Email" }}</th>
<th>{{t "Actions" }}</th>
</tbody>
</table>
<div id="admin_page_users_loading_indicator"></div>
@ -121,12 +121,12 @@
<div role="tabpanel" class="tab-pane" id="deactivated-users">
<div id="admin-deactivated-users-list" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-trash settings-section-icon"></i>
Deactivated Users</div>
{{t "Deactivated Users" }}</div>
<table class="table table-condensed table-striped">
<tbody id="admin_deactivated_users_table" class="admin_user_table">
<th>Name</th>
<th>Email</th>
<th>Actions</th>
<th>{{t "Name" }}</th>
<th>{{t "Email" }}</th>
<th>{{t "Actions" }}</th>
</tbody>
</table>
<div id="admin_page_deactivated_users_loading_indicator"></div>
@ -135,13 +135,13 @@
<div role="tabpanel" class="tab-pane" id="bots">
<div id="admin-user-list" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-github settings-section-icon"></i>
Bots</div>
{{t "Bots" }}</div>
<table class="table table-condensed table-striped">
<tbody id="admin_bots_table" class="admin_bot_table">
<th>Name</th>
<th>Email</th>
<th>Owner</th>
<th>Actions</th>
<th>{{t "Name" }}</th>
<th>{{t "Email" }}</th>
<th>{{t "Owner" }}</th>
<th>{{t "Actions" }}</th>
</tbody>
</table>
<div id="admin_page_bots_loading_indicator"></div>
@ -155,8 +155,8 @@
<table class="table table-condensed table-striped">
<tbody id="admin_streams_table" class="admin_stream_table">
<th>Name</th>
<th>Actions</th>
<th>{{t "Name" }}</th>
<th>{{t "Actions" }}</th>
</tbody>
</table>
<div id="admin_page_streams_loading_indicator"></div>
@ -167,28 +167,28 @@
<div id="deactivation_user_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="deactivation_user_modal_label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="deactivation_user_modal_label">Deactivate <span class="email"></span></h3>
<h3 id="deactivation_user_modal_label">{{t "Deactivate" }} <span class="email"></span></h3>
</div>
<div class="modal-body">
<p>By deactivating <strong><span class="user_name"></span></strong> &lt;<span class="email"></span>&gt;, they will be logged out immediately.</p>
<p>Their password will be cleared from our systems, and any bots they maintain will be disabled.</p>
<p>{{#tr this}}By deactivating <strong><span class="user_name"></span></strong> &lt;<span class="email"></span>&gt;, they will be logged out immediately.{{/tr}}</p>
<p>{{t "Their password will be cleared from our systems, and any bots they maintain will be disabled." }}</p>
</div>
<div class="modal-footer">
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Cancel</button>
<button class="btn btn-danger" id="do_deactivate_user_button">Deactivate now</button>
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">{{t "Cancel" }}</button>
<button class="btn btn-danger" id="do_deactivate_user_button">{{t "Deactivate now" }}</button>
</div>
</div>
<div id="deactivation_stream_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="deactivation_stream_modal_label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="deactivation_stream_modal_label">Delete stream <span class="stream_name"></span></h3>
<h3 id="deactivation_stream_modal_label">{{t "Delete stream" }} <span class="stream_name"></span></h3>
</div>
<div class="modal-body">
<p>Deleting this stream will immediately unsubscribe everyone, and the stream's content will not be recoverable. <strong>Are you sure you want to do this?</strong></p>
<p>{{t "Deleting this stream will immediately unsubscribe everyone, and the stream's content will not be recoverable." }} <strong>{{t "Are you sure you want to do this?" }}</strong></p>
</div>
<div class="modal-footer">
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Cancel</button>
<button class="btn btn-danger" id="do_deactivate_stream_button">Yes, delete this stream</button>
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">{{t "Cancel" }}</button>
<button class="btn btn-danger" id="do_deactivate_stream_button">{{t "Yes, delete this stream" }}</button>
</div>
</div>
</div>

View File

@ -14,22 +14,22 @@
<td>
{{#if is_active}}
<button class="btn deactivate btn-danger">
Deactivate
{{t "Deactivate" }}
</button>
{{else}}
<button class="btn reactivate btn-warning">
Reactivate
{{t "Reactivate" }}
</button>
{{/if}}
<span class="user-admin-settings">
{{#if is_active_human}}
{{#if is_admin}}
<button class="btn remove-admin btn-danger">
Remove admin
{{t "Remove admin" }}
</button>
{{else}}
<button class="btn make-admin btn-warning">
Make admin
{{t "Make admin" }}
</button>
{{/if}}
{{/if}}

View File

@ -1,7 +1,7 @@
{{! Alert word in the settings page that can be removed }}
<li class="alert-word-item" data-word='{{word}}'>
{{#if editing}}
<input class="edit-alert-word input-medium" type="text" placeholder="Alert Word" /><button class="btn btn-default btn-mini add-alert-word" type="button">Add</button>
<input class="edit-alert-word input-medium" type="text" placeholder="{{t 'Alert Word' }}" /><button class="btn btn-default btn-mini add-alert-word" type="button">{{t "Add" }}</button>
{{else}}
{{word}}<button class="btn btn-default btn-mini remove-alert-word" type="button"><i class="icon-vector-remove"></i></button>
{{/if}}

View File

@ -1,7 +1,9 @@
{{! Explanation of what "announce stream" does when creating a stream }}
<div>
{{#tr this}}
<p>Lets everyone know about the new stream,<br />
even if you don't add them.</p>
{{/tr}}
</div>

View File

@ -1,6 +1,6 @@
{{! The unread count in the bankruptcy modal }}
<div class="modal-body">
<p>It's been a while! Since you were last here, you received <b>{{unread_count}}</b> new messages.</p>
<p>Do you want to skip to your latest messages?</p>
<p>{{#tr this}}It's been a while! Since you were last here, you received <b>__unread_count__</b> new messages.{{/tr}}</p>
<p>{{t "Do you want to skip to your latest messages?" }}</p>
</div>

View File

@ -5,25 +5,25 @@
<div class="bot_info">
<div class="name">{{name}}</div>
<div class="email">
<span class="field">Username</span>
<span class="field">{{t "Username" }}</span>
<span class="value">{{email}}</span>
</div>
<div class="api_key">
<span class="field">API Key</span>
<span class="field">{{t "API Key" }}</span>
<span class="api-key-value-and-button">
<span class="value">{{api_key}}
</span>
<button type="submit" class="btn btn-secondary regenerate_bot_api_key" title="Generate new API key" data-email="{{email}}">
<button type="submit" class="btn btn-secondary regenerate_bot_api_key" title="{{t 'Generate new API key' }}" data-email="{{email}}">
<i class="icon-vector-refresh"></i>
</button>
</span>
<div class="api_key_error text-error"></div>
</div>
<div class="edit-bot-buttons">
<button type="submit" class="btn btn-primary open_edit_bot_form" title="Edit bot" data-email="{{email}}">
<button type="submit" class="btn btn-primary open_edit_bot_form" title="{{t 'Edit bot' }}" data-email="{{email}}">
<i class="icon-vector-pencil"></i>
</button>
<button type="submit" class="btn btn-danger delete_bot" title="Delete bot" data-email="{{email}}">
<button type="submit" class="btn btn-danger delete_bot" title="{{t 'Delete bot' }}" data-email="{{email}}">
<i class="icon-vector-trash"></i>
</button>
</div>
@ -35,33 +35,33 @@
<div class="edit_bot_email">{{email}}</div>
<div class="edit-bot-form-box">
<div class="control-group">
<label for="edit_bot_name{{id_suffix}}" class="control-label">Full name</label>
<label for="edit_bot_name{{id_suffix}}" class="control-label">{{t "Full name" }}</label>
<div class="controls">
<input type="text" name="bot_name" id="edit_bot_name{{id_suffix}}" class="edit_bot_name required" maxlength=50 />
<div><label for="edit_bot_name{{id_suffix}}" generated="true" class="text-error"></label></div>
</div>
</div>
<div class="control-group new-bot-ui">
<label for="edit_bot_default_sending_stream{{id_suffix}}" class="control-label">Send to stream</label>
<label for="edit_bot_default_sending_stream{{id_suffix}}" class="control-label">{{t "Send to stream" }}</label>
<select name="bot_default_sending_stream" class="edit_bot_default_sending_stream" id="edit_bot_default_sending_stream{{id_suffix}}"></select>
</div>
<div class="control-group new-bot-ui">
<label for="edit_bot_default_events_register_stream{{id_suffix}}" class="control-label">Listen on</label>
<label for="edit_bot_default_events_register_stream{{id_suffix}}" class="control-label">{{t "Listen on" }}</label>
<select name="bot_default_events_register_stream" class="edit_bot_default_events_register_stream" id="edit_bot_default_events_register_stream{{id_suffix}}"></select>
</div>
<div class="control-group">
<label for="bot_avatar_file_input{{id_suffix}}" class="control-label">Avatar</label>
<input type="file" id="bot_avatar_file_input{{id_suffix}}" name="bot_avatar_file_input" class="notvisible edit_bot_avatar_file_input" value="Upload avatar" />
<input type="file" id="bot_avatar_file_input{{id_suffix}}" name="bot_avatar_file_input" class="notvisible edit_bot_avatar_file_input" value="{{t 'Upload avatar' }}" />
<div class="controls">
<div class="edit_bot_avatar_file"></div>
<button type="button" class="btn btn-default edit_bot_avatar_upload_button">Choose avatar</button>
<button type="button" class="btn btn-default edit_bot_avatar_clear_button">Clear avatar</button>
<button type="button" class="btn btn-default edit_bot_avatar_upload_button">{{t "Choose avatar" }}</button>
<button type="button" class="btn btn-default edit_bot_avatar_clear_button">{{t "Clear avatar" }}</button>
</div>
<div><label for="edit_bot_avatar_file{{id_suffix}}" generated="true" class="edit_bot_avatar_error text-error"></label></div>
</div>
<div class="control-group">
<div class="controls">
<input type="submit" class="btn btn-primary edit_bot_button" value="Save" />
<input type="submit" class="btn btn-primary edit_bot_button" value="{{t 'Save' }}" />
<button type="submit" class="btn btn-default reset_edit_bot">Cancel</button>
</div>
<div class="edit_bot_spinner"></div>

View File

@ -1,11 +1,11 @@
{{#if can_make_public}}
<button class="btn btn-primary make-stream-public-button" data-stream-name="{{name}}" tabindex="-1">
Make stream public
{{t "Make stream public" }}
</button>
{{/if}}
{{#if can_make_private}}
<button class="btn btn-danger make-stream-private-button" data-stream-name="{{name}}" tabindex="-1">
Make stream private
{{t "Make stream private" }}
</button>
{{/if}}
<div class="change-stream-privacy-feedback"></div>

View File

@ -1,7 +1,7 @@
<div class="compose_invite_user" data-useremail="{{email}}">
<strong>{{name}}</strong> is not subscribed to this stream.
{{#tr this}}<strong>__name__</strong> is not subscribed to this stream.{{/tr}}
<div class="compose_invite_user_controls">
<span class="compose_invite_user_error alert alert-error" style="display: none;">Unable to subscribe user</span>
<button href="" class="compose_invite_link btn" >Subscribe</button><button type="button" class="compose_invite_close close">×</button>
<span class="compose_invite_user_error alert alert-error" style="display: none;">{{t "Unable to subscribe user" }}</span>
<button href="" class="compose_invite_link btn" >{{t "Subscribe" }}</button><button type="button" class="compose_invite_close close">×</button>
</div>
</div>

View File

@ -1,14 +1,14 @@
{{! Explanation of the stream email address }}
<div>
<p>You can send emails to {{ page_params.product_name }}! Just copy and use this address as an email recipient, and:</p>
<p>{{#tr this}}You can send emails to __page_params.product_name__! Just copy and use this address as an email recipient, and:{{/tr}}</p>
<img class="subscription-email-hint-image" src="static/images/integrations/zulip_mail.png" />
<ul>
<li>The email will be forwarded to this stream</li>
<li>The email subject will become the {{ page_params.product_name }} topic</li>
<li>The email body will become the {{ page_params.product_name }} message</li>
<li>{{t "The email will be forwarded to this stream" }}</li>
<li>{{#tr this}}The email subject will become the __page_params.product_name__ topic{{/tr}}</li>
<li>{{#tr this}}The email body will become the __page_params.product_name__ message{{/tr}}</li>
</ul>
</div>

View File

@ -1,6 +1,6 @@
{{! Client-side Mustache template for rendering subscriptions in the "invite user" form.}}
<a href="#" class="invite_check_all_button">Check all</a> |
<a href="#" class="invite_uncheck_all_button">Uncheck all</a>
<a href="#" class="invite_check_all_button">{{t "Check all" }}</a> |
<a href="#" class="invite_uncheck_all_button">{{t "Uncheck all" }}</a>
<div id="stream-checkboxes">
{{#each streams}}
<label class="checkbox">

View File

@ -3,13 +3,13 @@
<form id="message_edit_form" class="form-horizontal">
{{#if is_stream}}
<div class="control-group">
<label class="control-label edit-control-label" for="message_edit_topic">Topic</label>
<label class="control-label edit-control-label" for="message_edit_topic">{{t "Topic" }}</label>
<div class="controls edit-controls">
<input type="text" value="{{topic}}" class="message_edit_topic" id="message_edit_topic" />
<select class='message_edit_topic_propagate' style='display:none;'>
<option selected="selected" value="change_one"> Change only this message topic</option>
<option value="change_later"> Change later messages to this topic</option>
<option value="change_all"> Change previous and following messages to this topic</option>
<option selected="selected" value="change_one"> {{t "Change only this message topic" }}</option>
<option value="change_later"> {{t "Change later messages to this topic" }}</option>
<option value="change_all"> {{t "Change previous and following messages to this topic" }}</option>
</select>
</div>
</div>
@ -21,8 +21,8 @@
</div>
<div class="control-group">
<div class="controls edit-controls">
<button type="button" class="message_edit_save btn btn-primary btn-small">Save</button>
<button type="button" class="message_edit_cancel btn btn-default btn-small">Cancel</button>
<button type="button" class="message_edit_save btn btn-primary btn-small">{{t "Save" }}</button>
<button type="button" class="message_edit_cancel btn btn-default btn-small">{{t "Cancel" }}</button>
</div>
</div>
<div class="alert alert-error edit_error hide"></div>

View File

@ -1,30 +1,30 @@
{{! Contents of the "message info" popup }}
<ul class="nav nav-list actions_popover sender_info_popover" data-email="{{message.sender_email}}">
<div class="popover_info">
<li>Sent by <b>{{message.sender_full_name}}</b></li>
<li>{{#tr this}}Sent by <b>__message.sender_full_name__</b>{{/tr}}</li>
<li class='my_email'>{{message.sender_email}}</li>
<hr />
<li>{{message.full_date_str}}</li>
<li>{{message.full_time_str}}</li>
{{#if message.historical}}
<li class="small">(Message sent when you were not subscribed)</li>
<li class="small">({{t "Message sent when you were not subscribed" }})</li>
{{/if}}
</div>
<hr />
<li>
<a href="#" class="respond_personal_button">
<i class="icon-vector-edit"></i> Send {{message.sender_full_name}} a private message
<i class="icon-vector-edit"></i> {{#tr this}}Send __message.sender_full_name__ a private message{{/tr}}
</a>
</li>
<li>
<a href="{{ pm_with_uri }}" class="narrow_to_private_messages">
<i class="icon-vector-user"></i> Narrow to private messages with {{message.sender_full_name}}
<i class="icon-vector-user"></i> {{#tr this}}Narrow to private messages with __message.sender_full_name__{{/tr}}
</a>
</li>
<li>
<a href="{{ sent_by_uri }}" class="narrow_to_messages_sent">
<i class="icon-vector-bullhorn"></i> Narrow to messages sent by {{message.sender_full_name}}
<i class="icon-vector-bullhorn"></i> {{#tr this}}Narrow to messages sent by __message.sender_full_name__{{/tr}}
</a>
</li>
</ul>

View File

@ -1,6 +1,6 @@
{{! Title of the "message actions" popup }}
{{#if message.is_stream}}
Message to stream <b>{{message.stream}}</b>
{{#tr this}}Message to stream <b>__message.stream__</b>{{/tr}}
{{else}}
Private message
{{t "Private message" }}
{{/if}}

View File

@ -1,6 +1,6 @@
{{! Client-side Mustache template for rendering users in the stream creation modal.}}
<a href="#" class="subs_set_all_users">Check all</a> |
<a href="#" class="subs_unset_all_users">Uncheck all</a>
<a href="#" class="subs_set_all_users">{{t "Check all" }}</a> |
<a href="#" class="subs_unset_all_users">{{t "Uncheck all" }}</a>
<div id="user-checkboxes">
{{#each users}}
<label class="checkbox">

View File

@ -1,12 +1,12 @@
<div>
<p>Apply this change to all stream subscriptions?</p>
<p>{{t "Apply this change to all stream subscriptions?" }}</p>
<div class="control-group">
<div class="controls propagate-notifications-controls">
<button type="button"
class="yes_propagate_notifications btn btn-primary btn-small">Yes</button>
class="yes_propagate_notifications btn btn-primary btn-small">{{t "Yes" }}</button>
<button type="button"
class="no_propagate_notifications btn btn-default btn-small">No</button>
class="no_propagate_notifications btn btn-default btn-small">{{t "No" }}</button>
</div>
</div>
</div>

View File

@ -6,10 +6,10 @@
<a class="message_label_clickable narrows_by_recipient stream_label {{color_class}}"
style="background: {{background_color}}; border-left-color: {{background_color}};"
href="{{stream_url}}"
title="Narrow to stream &quot;{{display_recipient}}&quot;">
title="{{#tr this}}Narrow to stream &quot;__display_recipient__&quot;{{/tr}}">
{{! invite only lock }}
{{#if invite_only}}
<i class="icon-vector-lock invite-stream-icon" title="This is an invite-only stream"></i>
<i class="icon-vector-lock invite-stream-icon" title="{{t 'This is an invite-only stream' }}"></i>
{{/if}}
{{display_recipient}}
</a>
@ -22,7 +22,7 @@
{{! topic link }}
<a class="message_label_clickable narrows_by_subject"
href="{{topic_url}}"
title="Narrow to stream &quot;{{display_recipient}}&quot;, topic &quot;{{subject}}&quot;">
title="{{#tr this}}Narrow to stream &quot;__display_recipient__&quot;, topic &quot;__subject__&quot;{{/tr}}">
{{#if use_match_properties}}
{{{match_subject}}}
{{else}}
@ -59,8 +59,8 @@
<div class="message-header-contents">
<a class="message_label_clickable narrows_by_recipient"
href="{{pm_with_url}}"
title="Narrow to your private messages with {{display_reply_to}}">
You and {{display_reply_to}}
title="{{#tr this}}Narrow to your private messages with __display_reply_to__{{/tr}}">
{{#tr this}}You and __display_reply_to__{{/tr}}
</a>
</div>
</div>

View File

@ -1,16 +1,16 @@
<h1><i class="icon-vector-wrench settings-icon"></i>Settings</h1>
<h1><i class="icon-vector-wrench settings-icon"></i>{{t "Settings" }}</h1>
<div id="settings-change-box">
<div class="alert" id="settings-status"></div>
<div id="account-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-user settings-section-icon"></i>Your Account</div>
<div class="settings-section-title"><i class="icon-vector-user settings-section-icon"></i>{{t "Your Account" }}</div>
<div class="account-settings-form">
<form action="/json/settings/change" method="post"
class="form-horizontal your-account-settings">
<div class="control-group" id="name_change_container">
<label for="full_name" class="control-label">Full name</label>
<label for="full_name" class="control-label">{{t "Full name" }}</label>
<div class="controls">
<input type="text" name="full_name" id="full_name"
value="{{ page_params.fullname }}" />
@ -19,24 +19,24 @@
{{#if page_params.password_auth_enabled}}
<div class="control-group" id="pw_change_link">
<label for="change_password_button" class="control-label">Password</label>
<label for="change_password_button" class="control-label">{{t "Password" }}</label>
<div class="controls">
<button class="btn btn-default change_password_button" data-dismiss="modal" aria-hidden="true">Change Password</button>
<button class="btn btn-default change_password_button" data-dismiss="modal" aria-hidden="true">{{t "Change Password" }}</button>
</div>
</div>
<div id="pw_change_controls">
<div class="control-group">
<label for="old_password" class="control-label">Old password</label>
<label for="old_password" class="control-label">{{t "Old password" }}</label>
<div class="controls">
<input type="password" autocomplete="off"
name="old_password" id="old_password" value="" />
(<a href="/accounts/password/reset/" target="_blank">Forgotten it?</a>)
(<a href="/accounts/password/reset/" target="_blank">{{t "Forgotten it?" }}</a>)
</div>
</div>
<div class="control-group">
<label for="new_password" class="control-label">New password</label>
<label for="new_password" class="control-label">{{t "New password" }}</label>
<div class="controls">
<input type="password" autocomplete="off"
name="new_password" id="new_password" value="" />
@ -44,7 +44,7 @@
</div>
<div class="control-group">
<label class="control-label">Password strength</label>
<label class="control-label">{{t "Password strength" }}</label>
<div class="controls">
<div class="progress" id="pw_strength">
<div class="bar bar-danger" style="width: 10%;"></div>
@ -53,7 +53,7 @@
</div>
<div class="control-group">
<label for="confirm_password" class="control-label">Confirm password</label>
<label for="confirm_password" class="control-label">{{t "Confirm password" }}</label>
<div class="controls">
<input type="password" autocomplete="off"
name="confirm_password" id="confirm_password" value="" />
@ -66,7 +66,7 @@
<div class="control-group">
<div class="controls">
<input type="submit" name="change_settings"
value="Save changes" class="btn btn-big btn-primary" />
value="{{t 'Save changes' }}" class="btn btn-big btn-primary" />
</div>
</div>
@ -76,9 +76,9 @@
</p>
<div id="user_avatar_file_input_error" class="text-error"></div>
<div id="user_avatar_file"></div>
<input type="file" name="user_avatar_file_input" class="notvisible" id="user_avatar_file_input" value="Upload avatar" />
<input type="file" name="user_avatar_file_input" class="notvisible" id="user_avatar_file_input" value="{{t 'Upload avatar' }}" />
<div id="upload_avatar_spinner"></div>
<button class="btn btn-default" id="user_avatar_upload_button">Customize avatar</button>
<button class="btn btn-default" id="user_avatar_upload_button">{{t 'Customize avatar' }}</button>
</div>
</form>
@ -89,7 +89,7 @@
<div>
<div id="display-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-time settings-section-icon"></i>
Display Settings</div>
{{t 'Display Settings' }}</div>
<div class="alert" id="display-settings-status"></div>
<div class="display-settings-form">
@ -100,7 +100,7 @@
checked="yes"
{{/if}} />
</div>
<label for="left_side_userlist" class="control-label">Display user list on left side in narrow windows.</label>
<label for="left_side_userlist" class="control-label">{{t "Display user list on left side in narrow windows." }}</label>
</div>
<div class="control-group">
@ -111,7 +111,7 @@
{{/if}} />
</div>
<label for="twenty_four_hour_time" class="control-label">
Display time in 24-hour format (17:00 instead of 5:00 PM)
{{t "Display time in 24-hour format (17:00 instead of 5:00 PM)" }}
</label>
</div>
</div>
@ -120,13 +120,13 @@
<div>
<div id="notification-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-warning-sign settings-section-icon"></i>Notifications</div>
<div class="notification-reminder">You'll receive notifications when a message arrives and {{ page_params.product_name }} isn't in focus or the message is offscreen.</div>
<div class="settings-section-title"><i class="icon-vector-warning-sign settings-section-icon"></i>{{t "Notifications" }}</div>
<div class="notification-reminder">{{#tr this }}You'll receive notifications when a message arrives and __page_params.product_name__ isn't in focus or the message is offscreen.{{/tr}}</div>
<div class="alert" id="notify-settings-status"></div>
<div class="notification-settings-form">
<h4>Stream messages</h4>
<h4>{{t "Stream messages" }}</h4>
<p>Unless I say otherwise for a particular stream, I want:</p>
<p>{{t "Unless I say otherwise for a particular stream, I want:" }}</p>
<div class="control-group">
<div class="controls">
@ -137,7 +137,7 @@
{{/if}} />
</div>
<label for="enable_stream_desktop_notifications" class="control-label">
Desktop notifications
{{t "Desktop notifications" }}
</label>
<div class="propagate_stream_notifications_change"></div>
</div>
@ -150,19 +150,18 @@
{{/if}} />
</div>
<label for="enable_stream_sounds" class="control-label">
Audible notifications
{{t "Audible notifications" }}
</label>
<div class="propagate_stream_notifications_change"></div>
</div>
<p class="notification-settings-note">
Change notification settings for individual streams on your <a
href="/#subscriptions">Streams page</a>.
{{#tr this}}Change notification settings for individual streams on your <a href="/#subscriptions">Streams page</a>.{{/tr}}
</p>
<h4>Private messages and @-mentions</h4>
<h4>{{t "Private messages and @-mentions" }}</h4>
<p>I want:</p>
<p>{{t "I want:" }}</p>
<div class="control-group">
<div class="controls">
@ -172,7 +171,7 @@
{{/if}} />
</div>
<label for="enable_desktop_notifications" class="control-label">
Desktop notifications
{{t "Desktop notifications" }}
</label>
</div>
@ -184,7 +183,7 @@
{{/if}} />
</div>
<label for="enable_sounds" class="control-label">
Audible notifications
{{t "Audible notifications" }}
</label>
</div>
@ -196,7 +195,7 @@
{{/if}} />
</div>
<label for="enable_offline_email_notifications" class="control-label">
Email notifications when offline
{{t "Email notifications when offline" }}
</label>
</div>
@ -208,14 +207,14 @@
{{/if}} />
</div>
<label for="enable_offline_push_notifications" class="control-label">
Mobile push notifications when offline
{{t "Mobile push notifications when offline" }}
</label>
</div>
<div id="other_notifications">
<h4>Other notifications</h4>
<h4>{{t "Other notifications" }}</h4>
<p>I want:</p>
<p>{{t "I want:" }}</p>
<div class="control-group" id="digest_container">
<div class="controls">
@ -225,7 +224,7 @@
{{/if}} />
</div>
<label for="enable_digest_emails" class="control-label">
Digest emails when I'm away
{{t "Digest emails when I'm away" }}
</label>
</div>
{{!-- If you add another control group here, make sure to change
@ -237,7 +236,7 @@
<div class="control-group">
<div class="controls notification-submission">
<input type="submit" id="change_notification_settings"
name="change_notification_settings" value="Save changes"
name="change_notification_settings" value="{{t 'Save changes' }}"
class="btn btn-big btn-primary" />
</div>
</div>
@ -250,11 +249,13 @@
<div id="bot-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-github settings-section-icon"></i>Your Bots</div>
<div class="settings-section-title"><i class="icon-vector-github settings-section-icon"></i>{{t "Your Bots" }}</div>
<div class="bot-settings-form">
{{#tr this}}
<p class="bot-settings-note">Looking for our <a href="/integrations" target="_blank">Integrations</a>
or <a href="/api" target="_blank">API</a> documentation?</p>
{{/tr}}
<ol id="bots_list">
</ol>
@ -264,31 +265,31 @@
<div class="settings-section-title new-bot-section-title">Add a New Bot</div>
<div class="new-bot-form">
<div class="control-group">
<label for="create_bot_name" class="control-label">Full name</label>
<label for="create_bot_name" class="control-label">{{t "Full name" }}</label>
<input type="text" name="bot_name" id="create_bot_name" class="required"
maxlength=100 placeholder="Full Bot Name" value="" />
<div><label for="create_bot_name" generated="true" class="text-error"></label></div>
</div>
<div class="control-group">
<label for="bot_short_name" class="control-label">Username</label>
<label for="bot_short_name" class="control-label">{{t "Username" }}</label>
<input type="text" name="bot_short_name" id="create_bot_short_name" class="required bot_local_part"
placeholder="bot_user_name" value="" />-bot@{{ page_params.domain }}
placeholder="bot_user_name" value="" />-{{t "bot" }}@{{ page_params.domain }}
<div><label for="create_bot_short_name" generated="true" class="text-error"></label></div>
</div>
<div class="control-group new-bot-ui">
<label for="create_bot_default_sending_stream" class="control-label">Send to stream</label>
<label for="create_bot_default_sending_stream" class="control-label">{{t "Send to stream" }}</label>
<select name="bot_default_sending_stream" id="create_bot_default_sending_stream"></select>
</div>
<div class="control-group new-bot-ui">
<label for="create_bot_default_events_register_stream" class="control-label">Listen on</label>
<label for="create_bot_default_events_register_stream" class="control-label">{{t "Listen on" }}</label>
<select name="bot_default_events_register_stream" id="create_bot_default_events_register_stream"></select>
</div>
<div class="control-group">
<div class="controls">
<div id="bot_avatar_file"></div>
<input type="file" name="bot_avatar_file_input" class="notvisible" id="bot_avatar_file_input" value="Upload avatar" />
<button class="btn btn-default" id="bot_avatar_clear_button">Clear avatar</button>
<button class="btn btn-default" id="bot_avatar_upload_button">Customize avatar</button> (Optional)
<input type="file" name="bot_avatar_file_input" class="notvisible" id="bot_avatar_file_input" value="{{t 'Upload avatar' }}" />
<button class="btn btn-default" id="bot_avatar_clear_button">{{t "Clear avatar" }}</button>
<button class="btn btn-default" id="bot_avatar_upload_button">{{t "Customize avatar" }}</button> ({{t "Optional" }})
</div>
</div>
<p>
@ -296,7 +297,7 @@
</p>
<div class="control-group">
<div class="controls">
<input type="submit" class="btn btn-primary" id="create_bot_button" value="Create Bot" />
<input type="submit" class="btn btn-primary" id="create_bot_button" value="{{t 'Create Bot' }}" />
</div>
</div>
</div>
@ -306,35 +307,39 @@
<hr class="settings_separator" />
<div class="form-horizontal" id="api_key_button_box">
{{#tr this}}
<p class="api-key-note">For most bots using the API, you'll want to give each bot
its own name and API key using the above section. But if you
want to write a bot that can access your own private
messages, you should use your personal API key.
</p>
{{/tr}}
<div class="control-group">
<button class="btn btn-default" id="api_key_button">Show/change your API key</button>
<button class="btn btn-default" id="api_key_button">{{t "Show/change your API key" }}</button>
</div>
</div>
<div id="get_api_key_box">
{{#tr this}}
<p>Please re-enter your password to confirm your identity.
(<a href="/accounts/password/reset/" target="_blank">Forgotten it?</a>)</p>
{{/tr}}
<form action="/json/fetch_api_key" method="post" class="form-horizontal">
<div class="control-group">
<label for="password" class="control-label">Current password</label>
<label for="password" class="control-label">{{t "Current password" }}</label>
<input type="password" autocomplete="off"
name="password" id="get_api_key_password" value="" />
</div>
<div class="control-group">
<input type="submit" name="view_api_key" value="Get API key"
<input type="submit" name="view_api_key" value="{{t 'Get API key' }}"
class="btn btn-primary" />
</div>
</form>
</div>
<div id="show_api_key_box">
<p>Your API key:</p>
<p>{{t "Your API key:" }}</p>
<p><b><span id="api_key_value"></span></b></p>
<button type="submit" class="btn btn-primary regenerate_api_key">
Generate new API Key
{{t "Generate new API Key" }}
</button>
<div id="user_api_key_error text-error">
</div>
@ -344,18 +349,18 @@
</div>
<div id="word-alert-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-book settings-section-icon"></i>Custom Word Alerts</div>
<div class="settings-section-title"><i class="icon-vector-book settings-section-icon"></i>{{t "Custom Word Alerts" }}</div>
<ul id="word-alerts">
</ul>
</div>
<div class="ui-settings">
<div id="ui-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-beaker settings-section-icon"></i>{{ page_params.product_name }} Labs</div>
<div class="settings-section-title"><i class="icon-vector-beaker settings-section-icon"></i>{{#tr this}}__page_params.product_name__ Labs{{/tr}}</div>
<div class="alert" id="ui-settings-status"></div>
<div class="ui-settings-form">
<p>
Warning: the below features are experimental features and may not work as well as you would like.
{{t "Warning: the below features are experimental features and may not work as well as you would like." }}
</p>
<div class="control-group">
<div class="controls">
@ -365,7 +370,7 @@
{{/if}} />
</div>
<label for="autoscroll_forever" class="control-label">
Always auto-scroll to new messages
{{t "Always auto-scroll to new messages" }}
</label>
<div class="controls">
@ -375,13 +380,13 @@
{{/if}} />
</div>
<label for="default_desktop_notifications" class="control-label">
Enable desktop notifications for new streams
{{t "Enable desktop notifications for new streams" }}
</label>
</div>
<div class="control-group">
<div class="controls ui-submission">
<input type="submit" name="change_settings" value="Save changes" class="btn btn-big btn-primary" />
<input type="submit" name="change_settings" value="{{t 'Save changes' }}" class="btn btn-big btn-primary" />
</div>
</div>
</div>

View File

@ -16,7 +16,7 @@
{{/each}}
{{#if want_show_more_messages_links}}
<li class="show-more-private-messages" data-name='more-private-messages'>
<a href="#">(more conversations)</a>
<a href="#">({{t "more conversations" }})</a>
</li>
{{/if}}
</ul>

View File

@ -16,7 +16,7 @@
{{/each}}
{{#if want_show_more_topics_links}}
<li class="show-more-topics" data-stream="{{stream}}">
<a href="#">(more topics)</a>
<a href="#">({{t "more topics" }})</a>
</li>
{{/if}}
</ul>

View File

@ -15,12 +15,12 @@
{{/include_sender}}
<span class="message_time{{#if msg.local_id}} notvisible{{/if}}{{#if status_message}} status-time{{/if}}">{{timestr}}</span>
{{#if_and last_edit_timestr include_sender}}
<div class="message_edit_notice" title="Edited ({{last_edit_timestr}})">EDITED</div>
<div class="message_edit_notice" title="Edited ({{last_edit_timestr}})">{{t "EDITED" }}</div>
{{/if_and}}
<div class="message_controls{{#status_message}} sender-status-controls{{/status_message}}">
<div class="star">
<span class="message_star {{#if msg/starred}}icon-vector-star{{else}}icon-vector-star-empty empty-star{{/if}}"
title="{{#if msg/starred}}Unstar{{else}}Star{{/if}} this message"></span>
title="{{#tr this}}{{#if msg/starred}}Unstar{{else}}Star{{/if}} this message{{/tr}}"></span>
</div>
<div class="info actions_hover">
<i class="icon-vector-chevron-down"></i>
@ -33,14 +33,14 @@
<div class="message_content">{{#unless status_message}}{{#if use_match_properties}}{{{msg/match_content}}}{{else}}{{{msg/content}}}{{/if}}{{/unless}}</div>
{{#if last_edit_timestr}}
{{#unless include_sender}}
<div class="message_edit_notice" title="Edited ({{last_edit_timestr}})">EDITED</div>
<div class="message_edit_notice" title="Edited ({{last_edit_timestr}})">{{t "EDITED" }}</div>
{{/unless}}
{{/if}}
<div class="message_edit">
<div class="message_edit_form" id="{{msg/id}}"></div>
</div>
<div class="message_expander message_length_controller" title="See the rest of this message">[More...]</div>
<div class="message_condenser message_length_controller" title="Make this message take up less space on the screen">[Condense this message]</div>
<div class="message_expander message_length_controller" title="{{t 'See the rest of this message' }}">{{t "[More...]" }}</div>
<div class="message_condenser message_length_controller" title="{{t 'Make this message take up less space on the screen' }}">{{t "[Condense this message]" }}</div>
</div>
</div>
</div>

View File

@ -5,7 +5,7 @@
<td class="unsubscribe">
<div class="subscriber_list_remove">
<form class="form-inline remove-subscriber-form">
<input type="submit" name="unsubscribe" value="Unsubscribe"
<input type="submit" name="unsubscribe" value="{{t 'Unsubscribe' }}"
class="btn btn-danger remove-subscriber-button" />
</form>
</div>

View File

@ -3,41 +3,41 @@
<li>
<a class="narrow_to_stream">
<i class="icon-vector-bullhorn"></i>
Narrow to stream <b>{{stream.name}}</b>
{{#tr this}}Narrow to stream <b>__stream.name__</b>{{/tr}}
</a>
</li>
<li>
<a class="toggle_home">
{{#if stream.in_home_view}}
<i class="icon-vector-eye-close"></i>
Mute the stream <b>{{stream.name}}</b>
{{#tr this}}Mute the stream <b>__stream.name__</b>{{/tr}}
{{else}}
<i class="icon-vector-eye-open"></i>
Unmute the stream <b>{{stream.name}}</b>
{{#tr this}}Unmute the stream <b>__stream.name__</b>{{/tr}}
{{/if}}
</a>
</li>
<li>
<a class="compose_to_stream">
<i class="icon-vector-edit"></i>
Compose a message to stream <b>{{stream.name}}</b>
{{#tr this}}Compose a message to stream <b>__stream.name__</b>{{/tr}}
</a>
</li>
<li>
<a class="mark_stream_as_read">
<i class="icon-vector-book"></i>
Mark all messages in <b>{{stream.name}}</b> as read
{{#tr this}}Mark all messages in <b>__stream.name__</b> as read{{/tr}}
</a>
</li>
<li>
<a class="open_stream_settings">
<i class="icon-vector-cog"></i>
Stream settings
{{t "Stream settings" }}
</a>
</li>
<li>
<span class="colorpicker-container"><input stream_name="{{stream.name}}" class="colorpicker" type="text" value="{{stream.color}}" /></span>
<a class="custom_color">Choose custom color</a>
<a class="custom_color">{{t "Choose custom color" }}</a>
</li>
</ul>

View File

@ -13,10 +13,10 @@
<button class="btn sub_unsub_button btn-default{{#subscribed}} btn-success subscribed-button{{/subscribed}}"
type="button" name="subscription">
{{#subscribed}}
Subscribed
{{t "Subscribed" }}
{{/subscribed}}
{{^subscribed}}
Subscribe
{{t "Subscribe" }}
{{/subscribed}}
</button>
</div>
@ -32,7 +32,7 @@
<div id="sub_setting_not_in_home_view" class="sub_setting_checkbox sub-mute-setting">
<input id="mutestream-{{stream_id}}" class="sub_setting_control" type="checkbox" tabindex="-1" {{#unless in_home_view}}checked{{/unless}} />
<label class="subscription-control-label">Mute stream</label>
<p class="mute-note {{#if in_home_view}}hide-mute-note{{/if}}">Muted streams don't show up in your home view or generate notifications unless you are mentioned.</p>
<p class="mute-note {{#if in_home_view}}hide-mute-note{{/if}}">{{t "Muted streams don't show up in your home view or generate notifications unless you are mentioned." }}</p>
</div>
</li>
<li>
@ -40,13 +40,13 @@
<div id="sub_desktop_notifications_setting"
class="sub_setting_checkbox sub_notification_setting {{#unless in_home_view}}muted-sub{{/unless}}">
<input id="desktop-notifystream-{{stream_id}}" class="sub_setting_control" type="checkbox" tabindex="-1" {{#if desktop_notifications}}checked{{/if}} {{#unless in_home_view}}disabled="disabled"{{/unless}}/>
<label class="subscription-control-label">Receive desktop <br />notifications</label>
<label class="subscription-control-label">{{t "Receive desktop <br />notifications" }}</label>
</div>
<div id="sub_audible_notifications_setting"
class="sub_setting_checkbox sub_notification_setting {{#unless in_home_view}}muted-sub{{/unless}}">
<input id="audible-notifystream-{{stream_id}}" class="sub_setting_control" type="checkbox" tabindex="-1" {{#if audible_notifications}}checked{{/if}} {{#unless in_home_view}}disabled="disabled"{{/unless}}/>
<label class="subscription-control-label">Receive audible<br />notifications</label>
<label class="subscription-control-label">{{t "Receive audible<br />notifications" }}</label>
</div>
</li>
@ -54,7 +54,7 @@
<span class="sub_setting_control">
<input stream_name="{{name}}" class="colorpicker" id="streamcolor" type="text" value="{{color}}" tabindex="-1" />
</span>
<label for="streamcolor" class="subscription-control-label">Stream color</label>
<label for="streamcolor" class="subscription-control-label">{{t "Stream color" }}</label>
</li>
</ul>
</div>
@ -70,18 +70,18 @@
{{#if is_admin}}
<div class="admin-settings">
<span class="sub_settings_title">Administrator settings</span>
<span class="sub_settings_title">{{t "Administrator settings" }}</span>
<div class="rename-stream">
<form class="form-inline">
<input type="text" name="new-name" value="" class="input-block new-stream-name" tabindex="-1" />
<input type="submit" name="rename" value="Rename stream" class="btn btn-danger stream-rename-button" tabindex="-1" />
<input type="submit" name="rename" value="{{t 'Rename stream' }}" class="btn btn-danger stream-rename-button" tabindex="-1" />
</form>
</div>
<div class="change-stream-description">
<form class="form-inline">
<input type="hidden" name="stream_name" value="{{name}}" />
<input type="text" name="description" value="{{description}}" class="input-block description" tabindex="-1" />
<input type="submit" name="change-stream-description" value="Change stream description" class="btn btn-danger change-stream-description-button" tabindex="-1" />
<input type="submit" name="change-stream-description" value="{{t 'Change stream description' }}" class="btn btn-danger change-stream-description-button" tabindex="-1" />
</form>
</div>
<div class="change-stream-privacy">
@ -92,11 +92,11 @@
{{#render_subscribers}}
<div class="subscriber_list_settings">
<span class="sub_settings_title">Stream membership</span>
<span class="sub_settings_title">{{t "Stream membership" }}</span>
<div class="subscriber_list_add">
<form class="form-inline">
<input type="text" name="principal" placeholder="Email address" value="" class="input-block" tabindex="-1" />
<input type="submit" name="add_subscriber" value="Add" class="btn btn-primary add-subscriber-button" tabindex="-1 "/>
<input type="text" name="principal" placeholder="{{t 'Email address' }}" value="" class="input-block" tabindex="-1" />
<input type="submit" name="add_subscriber" value="{{t 'Add' }}" class="btn btn-primary add-subscriber-button" tabindex="-1 "/>
</form>
</div>
</div>

View File

@ -3,9 +3,9 @@
<div class="subscription_table_elem">
<form id="add_new_subscription" class="form-inline" action="">
<input type="text" name="stream_name" id="create_stream_name"
placeholder="Stream name" value="" />
placeholder="{{t 'Stream name' }}" value="" />
<input type="submit" class="btn btn-primary"
id="create_stream_button" value="Create new stream" />
id="create_stream_button" value="{{t 'Create new stream' }}" />
</form>
</div>
</div>

View File

@ -1,3 +1,2 @@
This is
{{#if invite_only}}an <span class="icon-vector-lock"></span> <b>invite-only stream</b>. Only people who have been invited can access its content, but&nbsp;any&nbsp;member&nbsp;of&nbsp;the&nbsp;stream can&nbsp;invite&nbsp;others.
{{else}}a <span class="icon-vector-globe"></span> <b>public stream</b>. Anybody in your organization can join.{{/if}}
{{#if invite_only}}{{t 'This is an <span class="icon-vector-lock"></span> <b>invite-only stream</b>. Only people who have been invited can access its content, but&nbsp;any&nbsp;member&nbsp;of&nbsp;the&nbsp;stream can&nbsp;invite&nbsp;others.' }}
{{else}}{{t 'This is a <span class="icon-vector-globe"></span> <b>public stream</b>. Anybody in your organization can join.' }}{{/if}}

View File

@ -2,7 +2,7 @@
<li>
<a class="narrow_to_topic" data-stream-name="{{ stream_name}}" data-topic-name="{{ topic_name }}">
<i class="icon-vector-bullhorn"></i>
Narrow to topic <b>{{ topic_name }}</b>
{{#tr this}}Narrow to topic <b>__topic_name__</b>{{/tr}}
</a>
</li>
@ -11,7 +11,7 @@
<li>
<a href="#" class="sidebar-popover-mute-topic" data-stream-name="{{ stream_name }}" data-topic-name="{{ topic_name }}">
<i class="icon-vector-eye-close"></i>
Mute the topic <b>{{ topic_name }}</b>
{{#tr this}}Mute the topic <b>__topic_name__</b>{{/tr}}
</a>
</li>
{{/if}}
@ -20,14 +20,14 @@
<li>
<a href="#" class="sidebar-popover-unmute-topic" data-stream-name="{{ stream_name }}" data-topic-name="{{ topic_name }}">
<i class="icon-vector-eye-open"></i>
Unmute the topic <b>{{ topic_name }}</b>
{{#tr this}}Unmute the topic <b>__topic_name__</b>{{/tr}}
</a>
</li>
{{/if}}
<li>
<a class="sidebar-popover-mark-topic-read" data-stream-name="{{ stream_name }}" data-topic-name="{{ topic_name }}">
<i class="icon-vector-book"></i>
Mark all messages in <b>{{topic_name}}</b> as read
{{#tr this}}Mark all messages in <b>__topic_name__</b> as read{{/tr}}
</a>
</li>

View File

@ -2,10 +2,12 @@
<div class="tutorial-popover popover-{{placement}}" id="tutorial-home">
{{#tr this}}
<p>You can <b>narrow</b> to a stream or topic by <b>clicking on it</b>, or
see messages from all streams at once from your Home view.</p>
{{/tr}}
<div class="tutorial-done-button">
<button class="btn btn-primary" type="submit" id="tutorial-home-next">Next</button>
<button class="btn btn-primary" type="submit" id="tutorial-home-next">{{t "Next" }}</button>
</div>
</div>

View File

@ -1,11 +1,11 @@
{{! Contents of the "tutorial message" onboarding popup }}
<div class="tutorial-popover popover-{{placement}}" id="tutorial-message">
<p>Welcome to {{ page_params.product_name }}!</p>
{{#tr this}}<p>Welcome to __page_params.product_name__!</p>{{/tr}}
<p>Messages in {{ page_params.product_name }} go to a <b>stream</b> and have a <b>topic</b>.</p>
{{#tr this}}<p>Messages in __page_params.product_name__ go to a <b>stream</b> and have a <b>topic</b>.</p>{{/tr}}
<div class="tutorial-done-button">
<button class="btn btn-primary" type="submit" id="tutorial-message-next">Next</button>
<button class="btn btn-primary" type="submit" id="tutorial-message-next">{{t "Next" }}</button>
</div>
</div>

View File

@ -2,10 +2,12 @@
<div class="tutorial-popover popover-{{placement}}" id="tutorial-reply">
{{#tr this}}
<p><b>Reply</b> to a message by <b>clicking on it</b>. The stream
and topic will automatically be filled in.</p>
{{/tr}}
<div class="tutorial-done-button">
<button class="btn btn-primary" type="submit" id="tutorial-reply-next">Next</button>
<button class="btn btn-primary" type="submit" id="tutorial-reply-next">{{t "Next" }}</button>
</div>
</div>

View File

@ -2,11 +2,13 @@
<div class="tutorial-popover popover-{{placement}}" id="tutorial-stream">
<p>
{{#tr this}}
<b>Streams</b> are like chat rooms or mailing lists. You can easily
<b>join</b>, <b>leave</b>, and <b>make</b> them.
{{/tr}}
</p>
<div class="tutorial-done-button">
<button class="btn btn-primary" type="submit" id="tutorial-stream-next">Next</button>
<button class="btn btn-primary" type="submit" id="tutorial-stream-next">{{t "Next" }}</button>
</div>
</div>

View File

@ -3,12 +3,14 @@
<div class="tutorial-popover popover-{{placement}}" id="tutorial-subject">
<p>
{{#tr this}}
The <b>topic</b> of a conversation is one or two words that describe
what it is about, for example: <b>Bug #345</b>, <b>lunch</b>, or
<b>logo</b>. Don't overthink it.
{{/tr}}
</p>
<div class="tutorial-done-button">
<button class="btn btn-primary" type="submit" id="tutorial-subject-next">Next</button>
<button class="btn btn-primary" type="submit" id="tutorial-subject-next">{{t "Next" }}</button>
</div>
</div>

View File

@ -3,19 +3,19 @@
<li>
<a class="narrow_to_private_messages">
<i class="icon-vector-user"></i>
Narrow to private messages with <b>{{name}}</b>
{{#tr this}}Narrow to private messages with <b>__name__</b>{{/tr}}
</a>
</li>
<li>
<a class="narrow_to_messages_sent">
<i class="icon-vector-bullhorn"></i>
Narrow to messages sent by <b>{{name}}</b>
{{#tr this}}Narrow to messages sent by <b>__name__</b>{{/tr}}
</a>
</li>
<li>
<a class="compose_private_message">
<i class="icon-vector-edit"></i>
Compose a message to <b>{{name}}</b>
{{#tr this}}Compose a message to <b>__name__</b>{{/tr}}
</a>
</li>