mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 13:03:29 +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 render_reply_recipient_label from "../templates/reply_recipient_label.hbs";
|
||||
|
||||
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_store from "./message_store.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 {
|
||||
const recipient_label = get_recipient_label(message);
|
||||
if (recipient_label !== undefined) {
|
||||
if (!recipient_label.has_empty_string_topic) {
|
||||
const recipient_label_text = recipient_label.label_text;
|
||||
set_reply_button_label(
|
||||
$t({defaultMessage: "Message {recipient_label_text}"}, {recipient_label_text}),
|
||||
);
|
||||
} else {
|
||||
const topic_display_name = util.get_final_topic_display_name("");
|
||||
const recipient_label_html = $t_html(
|
||||
{
|
||||
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);
|
||||
}
|
||||
const empty_string_topic_display_name = util.get_final_topic_display_name("");
|
||||
const rendered_recipient_label = render_reply_recipient_label({
|
||||
has_empty_string_topic: recipient_label.has_empty_string_topic,
|
||||
channel_name: recipient_label.stream_name,
|
||||
empty_string_topic_display_name,
|
||||
label_text: recipient_label.label_text,
|
||||
});
|
||||
$("#left_bar_compose_reply_button_big").html(rendered_recipient_label);
|
||||
} else {
|
||||
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
|
||||
function test_reply_label(expected_label) {
|
||||
const label = $("#left_bar_compose_reply_button_big").text();
|
||||
const prepend_text_length = "translated: Message ".length;
|
||||
const label = $("#left_bar_compose_reply_button_big").html();
|
||||
const prepend_text_length = "Message ".length;
|
||||
assert.equal(
|
||||
label.slice(prepend_text_length),
|
||||
expected_label,
|
||||
@@ -111,10 +111,10 @@ run_test("reply_label", () => {
|
||||
);
|
||||
|
||||
const expected_labels = [
|
||||
"#first_stream > first_topic",
|
||||
"#first_stream > second_topic",
|
||||
"#second_stream > third_topic",
|
||||
"#second_stream > second_topic",
|
||||
"#first_stream > first_topic",
|
||||
"#first_stream > second_topic",
|
||||
"#second_stream > third_topic",
|
||||
"#second_stream > second_topic",
|
||||
"some user",
|
||||
"some user, other user",
|
||||
];
|
||||
@@ -138,7 +138,7 @@ run_test("reply_label", () => {
|
||||
list.select_id(list.next());
|
||||
const label_html = $("#left_bar_compose_reply_button_big").html();
|
||||
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,
|
||||
);
|
||||
});
|
||||
@@ -154,7 +154,7 @@ run_test("test_custom_message_input", () => {
|
||||
stream_id: stream.stream_id,
|
||||
topic: "topic test",
|
||||
});
|
||||
test_reply_label("#stream test > topic test");
|
||||
test_reply_label("#stream test > topic test");
|
||||
});
|
||||
|
||||
run_test("empty_narrow", () => {
|
||||
|
||||
Reference in New Issue
Block a user