mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
compose_closed_ui: Unify translation strings for reply button label.
This commit unifies translation strings for reply button label to reduce translation effort. Both the `has_empty_string_topic` and other cases now use a single "Message <z-recipient-label></z-recipient-label>"`, with dynamic content passed appropriately.
This commit is contained in:
committed by
Tim Abbott
parent
181572021d
commit
3706940df6
@@ -1,7 +1,9 @@
|
|||||||
import $ from "jquery";
|
import $ from "jquery";
|
||||||
|
|
||||||
|
import render_reply_recipient_label from "../templates/reply_recipient_label.hbs";
|
||||||
|
|
||||||
import * as compose_actions from "./compose_actions.ts";
|
import * as compose_actions from "./compose_actions.ts";
|
||||||
import {$t, $t_html} from "./i18n.ts";
|
import {$t} from "./i18n.ts";
|
||||||
import * as message_lists from "./message_lists.ts";
|
import * as message_lists from "./message_lists.ts";
|
||||||
import * as message_store from "./message_store.ts";
|
import * as message_store from "./message_store.ts";
|
||||||
import * as message_util from "./message_util.ts";
|
import * as message_util from "./message_util.ts";
|
||||||
@@ -172,24 +174,14 @@ export function set_standard_text_for_reply_button(): void {
|
|||||||
export function update_reply_recipient_label(message?: ComposeClosedMessage): void {
|
export function update_reply_recipient_label(message?: ComposeClosedMessage): void {
|
||||||
const recipient_label = get_recipient_label(message);
|
const recipient_label = get_recipient_label(message);
|
||||||
if (recipient_label !== undefined) {
|
if (recipient_label !== undefined) {
|
||||||
if (!recipient_label.has_empty_string_topic) {
|
const empty_string_topic_display_name = util.get_final_topic_display_name("");
|
||||||
const recipient_label_text = recipient_label.label_text;
|
const rendered_recipient_label = render_reply_recipient_label({
|
||||||
set_reply_button_label(
|
has_empty_string_topic: recipient_label.has_empty_string_topic,
|
||||||
$t({defaultMessage: "Message {recipient_label_text}"}, {recipient_label_text}),
|
channel_name: recipient_label.stream_name,
|
||||||
);
|
empty_string_topic_display_name,
|
||||||
} else {
|
label_text: recipient_label.label_text,
|
||||||
const topic_display_name = util.get_final_topic_display_name("");
|
});
|
||||||
const recipient_label_html = $t_html(
|
$("#left_bar_compose_reply_button_big").html(rendered_recipient_label);
|
||||||
{
|
|
||||||
defaultMessage: "Message <z-recipient-label></z-recipient-label>",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"z-recipient-label": () =>
|
|
||||||
`#${recipient_label.stream_name} > <span class="empty-topic-display">${topic_display_name}</span>`,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
$("#left_bar_compose_reply_button_big").html(recipient_label_html);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
set_standard_text_for_reply_button();
|
set_standard_text_for_reply_button();
|
||||||
}
|
}
|
||||||
|
|||||||
10
web/templates/reply_recipient_label.hbs
Normal file
10
web/templates/reply_recipient_label.hbs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{{#tr}}
|
||||||
|
Message <z-recipient-label></z-recipient-label>
|
||||||
|
{{#*inline "z-recipient-label"}}
|
||||||
|
{{#if has_empty_string_topic~}}
|
||||||
|
#{{channel_name}} > <span class="empty-topic-display">{{empty_string_topic_display_name}}</span>
|
||||||
|
{{~else~}}
|
||||||
|
{{label_text}}
|
||||||
|
{{~/if}}
|
||||||
|
{{~/inline}}
|
||||||
|
{{/tr}}
|
||||||
@@ -38,8 +38,8 @@ set_realm({realm_empty_topic_display_name: REALM_EMPTY_TOPIC_DISPLAY_NAME});
|
|||||||
|
|
||||||
// Helper test function
|
// Helper test function
|
||||||
function test_reply_label(expected_label) {
|
function test_reply_label(expected_label) {
|
||||||
const label = $("#left_bar_compose_reply_button_big").text();
|
const label = $("#left_bar_compose_reply_button_big").html();
|
||||||
const prepend_text_length = "translated: Message ".length;
|
const prepend_text_length = "Message ".length;
|
||||||
assert.equal(
|
assert.equal(
|
||||||
label.slice(prepend_text_length),
|
label.slice(prepend_text_length),
|
||||||
expected_label,
|
expected_label,
|
||||||
@@ -111,10 +111,10 @@ run_test("reply_label", () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const expected_labels = [
|
const expected_labels = [
|
||||||
"#first_stream > first_topic",
|
"#first_stream > first_topic",
|
||||||
"#first_stream > second_topic",
|
"#first_stream > second_topic",
|
||||||
"#second_stream > third_topic",
|
"#second_stream > third_topic",
|
||||||
"#second_stream > second_topic",
|
"#second_stream > second_topic",
|
||||||
"some user",
|
"some user",
|
||||||
"some user, other user",
|
"some user, other user",
|
||||||
];
|
];
|
||||||
@@ -138,7 +138,7 @@ run_test("reply_label", () => {
|
|||||||
list.select_id(list.next());
|
list.select_id(list.next());
|
||||||
const label_html = $("#left_bar_compose_reply_button_big").html();
|
const label_html = $("#left_bar_compose_reply_button_big").html();
|
||||||
assert.equal(
|
assert.equal(
|
||||||
`translated HTML: Message #second_stream > <span class="empty-topic-display">translated: ${REALM_EMPTY_TOPIC_DISPLAY_NAME}</span>`,
|
`Message #second_stream > <span class="empty-topic-display">translated: ${REALM_EMPTY_TOPIC_DISPLAY_NAME}</span>`,
|
||||||
label_html,
|
label_html,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -154,7 +154,7 @@ run_test("test_custom_message_input", () => {
|
|||||||
stream_id: stream.stream_id,
|
stream_id: stream.stream_id,
|
||||||
topic: "topic test",
|
topic: "topic test",
|
||||||
});
|
});
|
||||||
test_reply_label("#stream test > topic test");
|
test_reply_label("#stream test > topic test");
|
||||||
});
|
});
|
||||||
|
|
||||||
run_test("empty_narrow", () => {
|
run_test("empty_narrow", () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user