mirror of https://github.com/zulip/zulip.git
Mark strings translatable.
Following strings are marked translatable: - All strings which are passed to `button.text` or which affect the text of buttons. - All strings passed to `placeholder`. - All strings passed to `compose_error`. Fixes #969
This commit is contained in:
parent
7ec9cb7e93
commit
6fb0baaa25
|
@ -288,7 +288,7 @@ exports.setup_page = function () {
|
||||||
button.removeClass("btn-danger");
|
button.removeClass("btn-danger");
|
||||||
button.addClass("reactivate");
|
button.addClass("reactivate");
|
||||||
button.removeClass("deactivate");
|
button.removeClass("deactivate");
|
||||||
button.text("Reactivate");
|
button.text(i18n.t("Reactivate"));
|
||||||
row.addClass("deactivated_user");
|
row.addClass("deactivated_user");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -313,7 +313,7 @@ exports.setup_page = function () {
|
||||||
$("<p>").addClass("text-error").text($.parseJSON(xhr.responseText).msg)
|
$("<p>").addClass("text-error").text($.parseJSON(xhr.responseText).msg)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
button.text("Failed!");
|
button.text(i18n.t("Failed!"));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
success: function () {
|
success: function () {
|
||||||
|
@ -322,7 +322,7 @@ exports.setup_page = function () {
|
||||||
button.removeClass("btn-warning");
|
button.removeClass("btn-warning");
|
||||||
button.addClass("deactivate");
|
button.addClass("deactivate");
|
||||||
button.removeClass("reactivate");
|
button.removeClass("reactivate");
|
||||||
button.text("Deactivate");
|
button.text(i18n.t("Deactivate"));
|
||||||
row.removeClass("deactivated_user");
|
row.removeClass("deactivated_user");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -434,7 +434,7 @@ exports.setup_page = function () {
|
||||||
button.removeClass("btn-warning");
|
button.removeClass("btn-warning");
|
||||||
button.addClass("remove-admin");
|
button.addClass("remove-admin");
|
||||||
button.removeClass("make-admin");
|
button.removeClass("make-admin");
|
||||||
button.text("Remove admin");
|
button.text(i18n.t("Remove admin"));
|
||||||
},
|
},
|
||||||
error: function (xhr, error) {
|
error: function (xhr, error) {
|
||||||
var status = row.find(".admin-user-status");
|
var status = row.find(".admin-user-status");
|
||||||
|
@ -467,7 +467,7 @@ exports.setup_page = function () {
|
||||||
button.removeClass("btn-danger");
|
button.removeClass("btn-danger");
|
||||||
button.addClass("make-admin");
|
button.addClass("make-admin");
|
||||||
button.removeClass("remove-admin");
|
button.removeClass("remove-admin");
|
||||||
button.text("Make admin");
|
button.text(i18n.t("Make admin"));
|
||||||
},
|
},
|
||||||
error: function (xhr, error) {
|
error: function (xhr, error) {
|
||||||
var status = row.find(".admin-user-status");
|
var status = row.find(".admin-user-status");
|
||||||
|
@ -504,7 +504,7 @@ exports.setup_page = function () {
|
||||||
button.removeClass("btn-danger");
|
button.removeClass("btn-danger");
|
||||||
button.addClass("reactivate");
|
button.addClass("reactivate");
|
||||||
button.removeClass("deactivate");
|
button.removeClass("deactivate");
|
||||||
button.text("Reactivate");
|
button.text(i18n.t("Reactivate"));
|
||||||
row.addClass("deactivated_user");
|
row.addClass("deactivated_user");
|
||||||
row.find(".user-admin-settings").hide();
|
row.find(".user-admin-settings").hide();
|
||||||
}
|
}
|
||||||
|
|
|
@ -710,7 +710,7 @@ function check_stream_for_send(stream_name, autosubscribe) {
|
||||||
var result = exports.check_stream_existence(stream_name, autosubscribe);
|
var result = exports.check_stream_existence(stream_name, autosubscribe);
|
||||||
|
|
||||||
if (result === "error") {
|
if (result === "error") {
|
||||||
compose_error("Error checking subscription", $("#stream"));
|
compose_error(i18n.t("Error checking subscription"), $("#stream"));
|
||||||
$("#compose-send-button").removeAttr('disabled');
|
$("#compose-send-button").removeAttr('disabled');
|
||||||
$("#sending-indicator").hide();
|
$("#sending-indicator").hide();
|
||||||
}
|
}
|
||||||
|
@ -721,14 +721,14 @@ function check_stream_for_send(stream_name, autosubscribe) {
|
||||||
function validate_stream_message() {
|
function validate_stream_message() {
|
||||||
var stream_name = exports.stream_name();
|
var stream_name = exports.stream_name();
|
||||||
if (stream_name === "") {
|
if (stream_name === "") {
|
||||||
compose_error("Please specify a stream", $("#stream"));
|
compose_error(i18n.t("Please specify a stream"), $("#stream"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (page_params.mandatory_topics) {
|
if (page_params.mandatory_topics) {
|
||||||
var topic = exports.subject();
|
var topic = exports.subject();
|
||||||
if (topic === "") {
|
if (topic === "") {
|
||||||
compose_error("Please specify a topic", $("#subject"));
|
compose_error(i18n.t("Please specify a topic"), $("#subject"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -740,7 +740,7 @@ function validate_stream_message() {
|
||||||
// user has not seen a warning message yet if undefined
|
// user has not seen a warning message yet if undefined
|
||||||
show_all_everyone_warnings();
|
show_all_everyone_warnings();
|
||||||
// user has not acknowledge the warning message yet
|
// user has not acknowledge the warning message yet
|
||||||
compose_error("Please remove @all / @everyone or acknowledge that you will be spamming everyone!");
|
compose_error(i18n.t("Please remove @all / @everyone or acknowledge that you will be spamming everyone!"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -780,11 +780,12 @@ function validate_stream_message() {
|
||||||
// The function checks whether the recipients are users of the realm or cross realm users (bots for now)
|
// The function checks whether the recipients are users of the realm or cross realm users (bots for now)
|
||||||
function validate_private_message() {
|
function validate_private_message() {
|
||||||
if (exports.recipient() === "") {
|
if (exports.recipient() === "") {
|
||||||
compose_error("Please specify at least one recipient", $("#private_message_recipient"));
|
compose_error(i18n.t("Please specify at least one recipient"), $("#private_message_recipient"));
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
var private_recipients = util.extract_pm_recipients(compose.recipient());
|
var private_recipients = util.extract_pm_recipients(compose.recipient());
|
||||||
var invalid_recipients = [];
|
var invalid_recipients = [];
|
||||||
|
var context = {};
|
||||||
_.each(private_recipients, function (email) {
|
_.each(private_recipients, function (email) {
|
||||||
// This case occurs when exports.recipient() ends with ','
|
// This case occurs when exports.recipient() ends with ','
|
||||||
if (email === "") {
|
if (email === "") {
|
||||||
|
@ -800,10 +801,12 @@ function validate_private_message() {
|
||||||
});
|
});
|
||||||
|
|
||||||
if (invalid_recipients.length === 1) {
|
if (invalid_recipients.length === 1) {
|
||||||
compose_error("The recipient " + invalid_recipients.join() + " is not valid ", $("#private_message_recipient"));
|
context = {'recipient': invalid_recipients.join()};
|
||||||
|
compose_error(i18n.t("The recipient __recipient__ is not valid ", context), $("#private_message_recipient"));
|
||||||
return false;
|
return false;
|
||||||
} else if (invalid_recipients.length > 1) {
|
} else if (invalid_recipients.length > 1) {
|
||||||
compose_error("The recipients " + invalid_recipients.join() + " are not valid ", $("#private_message_recipient"));
|
context = {'recipients': invalid_recipients.join()};
|
||||||
|
compose_error(i18n.t("The recipients __recipients__ are not valid ", context), $("#private_message_recipient"));
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
|
@ -816,12 +819,12 @@ exports.validate = function () {
|
||||||
$("#sending-indicator").show();
|
$("#sending-indicator").show();
|
||||||
|
|
||||||
if (/^\s*$/.test(exports.message_content())) {
|
if (/^\s*$/.test(exports.message_content())) {
|
||||||
compose_error("You have nothing to send!", $("#new_message_content"));
|
compose_error(i18n.t("You have nothing to send!"), $("#new_message_content"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($("#zephyr-mirror-error").is(":visible")) {
|
if ($("#zephyr-mirror-error").is(":visible")) {
|
||||||
compose_error("You need to be running Zephyr mirroring in order to send messages!");
|
compose_error(i18n.t("You need to be running Zephyr mirroring in order to send messages!"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,13 +45,13 @@ var exports = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
function display_subscribe($button, stream_name) {
|
function display_subscribe($button, stream_name) {
|
||||||
$button.text('Subscribe to ' + stream_data.canonicalized_name(stream_name))
|
$button.text(i18n.t('Subscribe to') + ' ' + stream_data.canonicalized_name(stream_name))
|
||||||
.removeClass('btn-success')
|
.removeClass('btn-success')
|
||||||
.addClass('btn-default');
|
.addClass('btn-default');
|
||||||
}
|
}
|
||||||
|
|
||||||
function display_unsubscribe($button, stream_name) {
|
function display_unsubscribe($button, stream_name) {
|
||||||
$button.text('Unsubscribe from ' + stream_data.canonicalized_name(stream_name))
|
$button.text(i18n.t('Unsubscribe from') + ' ' + stream_data.canonicalized_name(stream_name))
|
||||||
.removeClass('btn-default')
|
.removeClass('btn-default')
|
||||||
.addClass('btn-success');
|
.addClass('btn-success');
|
||||||
}
|
}
|
||||||
|
|
|
@ -316,7 +316,7 @@ exports.mark_subscribed = function (stream_name, attrs) {
|
||||||
var settings = settings_for_sub(sub);
|
var settings = settings_for_sub(sub);
|
||||||
var button = button_for_sub(sub);
|
var button = button_for_sub(sub);
|
||||||
if (button.length !== 0) {
|
if (button.length !== 0) {
|
||||||
button.text("Subscribed").addClass("subscribed-button").addClass("btn-success");
|
button.text(i18n.t("Subscribed")).addClass("subscribed-button").addClass("btn-success");
|
||||||
// Add the user to the member list if they're currently
|
// Add the user to the member list if they're currently
|
||||||
// viewing the members of this stream
|
// viewing the members of this stream
|
||||||
if (sub.render_subscribers && settings.hasClass('in')) {
|
if (sub.render_subscribers && settings.hasClass('in')) {
|
||||||
|
@ -359,7 +359,7 @@ exports.mark_sub_unsubscribed = function (sub) {
|
||||||
} else if (sub.subscribed) {
|
} else if (sub.subscribed) {
|
||||||
stream_list.remove_narrow_filter(sub.name, 'stream');
|
stream_list.remove_narrow_filter(sub.name, 'stream');
|
||||||
sub.subscribed = false;
|
sub.subscribed = false;
|
||||||
button_for_sub(sub).removeClass("subscribed-button").removeClass("btn-success").removeClass("btn-danger").text("Subscribe");
|
button_for_sub(sub).removeClass("subscribed-button").removeClass("btn-success").removeClass("btn-danger").text(i18n.t("Subscribe"));
|
||||||
var settings = settings_for_sub(sub);
|
var settings = settings_for_sub(sub);
|
||||||
if (settings.hasClass('in')) {
|
if (settings.hasClass('in')) {
|
||||||
settings.collapse('hide');
|
settings.collapse('hide');
|
||||||
|
@ -503,7 +503,7 @@ exports.setup_page = function () {
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
populate_and_fill({streams: []});
|
populate_and_fill({streams: []});
|
||||||
$('#create_stream_button').val("Subscribe");
|
$('#create_stream_button').val(i18n.t("Subscribe"));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -759,9 +759,9 @@ $(function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
$("body").on("mouseover", ".subscribed-button", function (e) {
|
$("body").on("mouseover", ".subscribed-button", function (e) {
|
||||||
$(e.target).addClass("btn-danger").text("Unsubscribe");
|
$(e.target).addClass("btn-danger").text(i18n.t("Unsubscribe"));
|
||||||
}).on("mouseout", ".subscribed-button", function (e) {
|
}).on("mouseout", ".subscribed-button", function (e) {
|
||||||
$(e.target).removeClass("btn-danger").text("Subscribed");
|
$(e.target).removeClass("btn-danger").text(i18n.t("Subscribed"));
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#subscriptions-status").on("click", "#close-subscriptions-status", function (e) {
|
$("#subscriptions-status").on("click", "#close-subscriptions-status", function (e) {
|
||||||
|
|
|
@ -90,7 +90,7 @@
|
||||||
<div class="alert" id="admin-emoji-status"></div>
|
<div class="alert" id="admin-emoji-status"></div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label for="emoji_name" class="control-label">{{t "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" />
|
<input type="text" name="name" id="emoji_name" placeholder="{{t 'mouse_face' }}" />
|
||||||
<div class="alert" id="admin-emoji-name-status"></div>
|
<div class="alert" id="admin-emoji-name-status"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
|
|
|
@ -267,13 +267,13 @@
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label for="create_bot_name" class="control-label">{{t "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"
|
<input type="text" name="bot_name" id="create_bot_name" class="required"
|
||||||
maxlength=100 placeholder="Full Bot Name" value="" />
|
maxlength=100 placeholder="{{t 'Full Bot Name' }}" value="" />
|
||||||
<div><label for="create_bot_name" generated="true" class="text-error"></label></div>
|
<div><label for="create_bot_name" generated="true" class="text-error"></label></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label for="bot_short_name" class="control-label">{{t "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"
|
<input type="text" name="bot_short_name" id="create_bot_short_name" class="required bot_local_part"
|
||||||
placeholder="bot_user_name" value="" />-{{t "bot" }}@{{ page_params.domain }}
|
placeholder="{{t 'bot_user_name' }}" value="" />-{{t "bot" }}@{{ page_params.domain }}
|
||||||
<div><label for="create_bot_short_name" generated="true" class="text-error"></label></div>
|
<div><label for="create_bot_short_name" generated="true" class="text-error"></label></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group new-bot-ui">
|
<div class="control-group new-bot-ui">
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<textarea rows="2" id="invitee_emails"
|
<textarea rows="2" id="invitee_emails"
|
||||||
name="invitee_emails"
|
name="invitee_emails"
|
||||||
placeholder="One or more email addresses..."></textarea>
|
placeholder="{{ _('One or more email addresses...') }}"></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="alert" id="invite_status"></div>
|
<div class="alert" id="invite_status"></div>
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<div id="userlist-header">
|
<div id="userlist-header">
|
||||||
<h4 class='sidebar-title' id='userlist-title'>{{ _('USERS') }}</h4>
|
<h4 class='sidebar-title' id='userlist-title'>{{ _('USERS') }}</h4>
|
||||||
</div>
|
</div>
|
||||||
<input class="user-list-filter" type="text" placeholder="Search people" />
|
<input class="user-list-filter" type="text" placeholder="{{ _('Search people') }}" />
|
||||||
<ul id="user_presences" class="filters scrolling_list"></ul>
|
<ul id="user_presences" class="filters scrolling_list"></ul>
|
||||||
{% if show_invites %}
|
{% if show_invites %}
|
||||||
<a id="invite-user-link" href="#invite-user" data-toggle="modal"><i class="icon-vector-plus-sign"></i>{{ _('Invite more users') }}</a>
|
<a id="invite-user-link" href="#invite-user" data-toggle="modal"><i class="icon-vector-plus-sign"></i>{{ _('Invite more users') }}</a>
|
||||||
|
|
Loading…
Reference in New Issue