[Branding] App name (language-dependent)

This commit is contained in:
Eric Kotato 2022-08-10 01:36:41 +03:00 committed by Eric Kotato
parent 22cfe96e7d
commit 631d172eaf
23 changed files with 108 additions and 46 deletions

View file

@ -1,3 +1,29 @@
{ {
"ktg_intro_about": "Welcome to unofficial messaging app\nbased on Telegram Desktop.",
"ktg_about_text1": "Experimental unofficial {tdesktop_link} fork.",
"ktg_about_text1_tdesktop": "Telegram Desktop",
"ktg_about_text3": "Visit {channel_link} or {faq_link} for more info.",
"ktg_about_text3_channel": "Kotatogram channel",
"ktg_open_from_tray": "Open Kotatogram",
"ktg_quit_from_tray": "Quit Kotatogram",
"ktg_tray_icon_text": "Kotatogram is still running here,\nyou can change this from settings page.\nIf this icon disappears from tray menu,\nyou can drag it here from hidden icons.",
"ktg_error_start_minimized_passcoded": "You have set a local passcode, so Kotatogram Desktop can't be launched minimised; it will ask you to enter your passcode before it can start working.",
"ktg_proxy_unsupported": "Your Kotatogram Desktop version doesn't support this proxy type or the proxy link is invalid. Please update Kotatogram Desktop to the latest version.",
"ktg_update_telegram": "Update Kotatogram",
"ktg_settings_auto_start": "Launch Kotatogram when system starts",
"ktg_settings_add_sendto": "Place Kotatogram in \"Send to\" menu",
"ktg_theme_no_desktop": "Sorry, this theme doesn't include a version for Kotatogram Desktop.",
"ktg_download_path_default_radio": "Kotatogram folder in system «Downloads»",
"ktg_passcode_about": "When a local passcode is set, a lock icon appears at the top of your chats list. Click it to lock the app.\n\nNote: if you forget your local passcode, you'll need to relogin in Kotatogram Desktop.",
"ktg_message_unsupported": "This message is not supported by your version of Kotatogram Desktop. Please update to the latest version in Settings, or install it from {link}",
"ktg_bot_share_location_unavailable": "Sorry, location sharing is currently unavailable in Kotatogram Desktop.",
"ktg_theme_editor_need_unlock": "You need to unlock Kotatogram to save your theme.",
"ktg_no_mic_permission": "Kotatogram needs access to your microphone so that you can make calls and record voice messages.",
"ktg_passport_app_out_of_date": "Sorry, your Telegram app is out of date and can't handle this request. Please update Kotatogram.",
"ktg_export_progress": "You can close this window now. Please don't quit Kotatogram until the data export is completed.",
"ktg_language_not_ready_about": "Unfortunately, this custom language pack ({lang_name}) doesn't contain data for Kotatogram Desktop. You can contribute to this language pack using the {link}.",
"ktg_outdated_soon": "Otherwise, Kotatogram Desktop will stop updating on {date}.",
"ktg_outdated_now": "So that Kotatogram Desktop can update to newer versions.",
"ktg_mac_menu_show": "Show Kotatogram",
"dummy_last_string": "" "dummy_last_string": ""
} }

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "api/api_bot.h" #include "api/api_bot.h"
#include "kotato/kotato_lang.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "api/api_cloud_password.h" #include "api/api_cloud_password.h"
#include "api/api_send_progress.h" #include "api/api_send_progress.h"
@ -357,7 +358,7 @@ void ActivateBotCommand(ClickHandlerContext context, int row, int column) {
case ButtonType::RequestLocation: { case ButtonType::RequestLocation: {
HideSingleUseKeyboard(controller, item); HideSingleUseKeyboard(controller, item);
controller->show( controller->show(
Ui::MakeInformBox(tr::lng_bot_share_location_unavailable())); Ui::MakeInformBox(rktr("ktg_bot_share_location_unavailable")));
} break; } break;
case ButtonType::RequestPhone: { case ButtonType::RequestPhone: {

View file

@ -7,7 +7,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "boxes/about_box.h" #include "boxes/about_box.h"
#include "kotato/kotato_lang.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "lang/lang_instance.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "ui/boxes/confirm_box.h" #include "ui/boxes/confirm_box.h"
@ -28,11 +30,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
namespace { namespace {
rpl::producer<TextWithEntities> Text1() { rpl::producer<TextWithEntities> Text1() {
return tr::lng_about_text1( return rktre("ktg_about_text1", {
lt_api_link, "tdesktop_link",
tr::lng_about_text1_api( Ui::Text::Link(ktr("ktg_about_text1_tdesktop"), "https://desktop.telegram.org/")
) | Ui::Text::ToLink("https://core.telegram.org/api"), });
Ui::Text::WithEntities);
} }
rpl::producer<TextWithEntities> Text2() { rpl::producer<TextWithEntities> Text2() {
@ -40,19 +41,37 @@ rpl::producer<TextWithEntities> Text2() {
lt_gpl_link, lt_gpl_link,
rpl::single(Ui::Text::Link( rpl::single(Ui::Text::Link(
"GNU GPL", "GNU GPL",
"https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE")), "https://github.com/kotatogram/kotatogram-desktop/blob/master/LICENSE")),
lt_github_link, lt_github_link,
rpl::single(Ui::Text::Link( rpl::single(Ui::Text::Link(
"GitHub", "GitHub",
"https://github.com/telegramdesktop/tdesktop")), "https://github.com/kotatogram/kotatogram-desktop")),
Ui::Text::WithEntities); Ui::Text::WithEntities);
} }
rpl::producer<TextWithEntities> Text3() { rpl::producer<TextWithEntities> Text3() {
return tr::lng_about_text3( auto baseLang = Lang::GetInstance().baseId();
lt_faq_link, auto currentLang = Lang::Id();
tr::lng_about_text3_faq() | Ui::Text::ToLink(telegramFaqLink()), QString channelLink;
Ui::Text::WithEntities);
for (const auto language : { "ru", "uk", "be" }) {
if (baseLang.startsWith(QLatin1String(language)) || currentLang == QString(language)) {
channelLink = "https://t.me/kotatogram_ru";
break;
}
}
if (channelLink.isEmpty()) {
channelLink = "https://t.me/kotatogram";
}
return rktre("ktg_about_text3", {
"channel_link",
Ui::Text::Link(ktr("ktg_about_text3_channel"), channelLink)
}, {
"faq_link",
Ui::Text::Link(tr::lng_about_text3_faq(tr::now), telegramFaqLink())
});
} }
} // namespace } // namespace
@ -65,7 +84,7 @@ AboutBox::AboutBox(QWidget *parent)
} }
void AboutBox::prepare() { void AboutBox::prepare() {
setTitle(rpl::single(u"Telegram Desktop"_q)); setTitle(rpl::single(u"Kotatogram Desktop"_q));
addButton(tr::lng_close(), [this] { closeBox(); }); addButton(tr::lng_close(), [this] { closeBox(); });

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "boxes/connection_box.h" #include "boxes/connection_box.h"
#include "kotato/kotato_lang.h"
#include "base/call_delayed.h" #include "base/call_delayed.h"
#include "base/qthelp_regex.h" #include "base/qthelp_regex.h"
#include "base/qthelp_url.h" #include "base/qthelp_url.h"
@ -1237,7 +1238,7 @@ void ProxiesBoxController::ShowApplyConfirmation(
} else { } else {
Ui::show(Ui::MakeInformBox( Ui::show(Ui::MakeInformBox(
(proxy.status() == ProxyData::Status::Unsupported (proxy.status() == ProxyData::Status::Unsupported
? tr::lng_proxy_unsupported(tr::now) ? ktr("ktg_proxy_unsupported")
: tr::lng_proxy_invalid(tr::now)))); : tr::lng_proxy_invalid(tr::now))));
} }
} }

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "boxes/download_path_box.h" #include "boxes/download_path_box.h"
#include "kotato/kotato_lang.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "core/file_utilities.h" #include "core/file_utilities.h"
#include "ui/widgets/checkbox.h" #include "ui/widgets/checkbox.h"
@ -30,7 +31,7 @@ DownloadPathBox::DownloadPathBox(
this, this,
_group, _group,
Directory::Downloads, Directory::Downloads,
tr::lng_download_path_default_radio(tr::now), ktr("ktg_download_path_default_radio"),
st::defaultBoxCheckbox) st::defaultBoxCheckbox)
: nullptr) : nullptr)
, _temp(this, _group, Directory::Temp, tr::lng_download_path_temp_radio(tr::now), st::defaultBoxCheckbox) , _temp(this, _group, Directory::Temp, tr::lng_download_path_temp_radio(tr::now), st::defaultBoxCheckbox)

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "boxes/passcode_box.h" #include "boxes/passcode_box.h"
#include "kotato/kotato_lang.h"
#include "base/bytes.h" #include "base/bytes.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "ui/boxes/confirm_box.h" #include "ui/boxes/confirm_box.h"
@ -273,7 +274,7 @@ void PasscodeBox::prepare() {
? *_cloudFields.customDescription ? *_cloudFields.customDescription
: _cloudPwd : _cloudPwd
? tr::lng_cloud_password_about(tr::now) ? tr::lng_cloud_password_about(tr::now)
: tr::lng_passcode_about(tr::now))); : ktr("ktg_passcode_about")));
_aboutHeight = _about.countHeight(st::boxWidth - st::boxPadding.left() * 1.5); _aboutHeight = _about.countHeight(st::boxWidth - st::boxPadding.left() * 1.5);
const auto onlyCheck = onlyCheckCurrent(); const auto onlyCheck = onlyCheckCurrent();
if (onlyCheck) { if (onlyCheck) {

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "calls/calls_instance.h" #include "calls/calls_instance.h"
#include "kotato/kotato_lang.h"
#include "calls/calls_call.h" #include "calls/calls_call.h"
#include "calls/group/calls_group_common.h" #include "calls/group/calls_group_common.h"
#include "calls/group/calls_choose_join_as.h" #include "calls/group/calls_choose_join_as.h"
@ -815,7 +816,7 @@ void Instance::requestPermissionOrFail(Platform::PermissionType type, Fn<void()>
_currentGroupCall->hangup(); _currentGroupCall->hangup();
} }
Ui::show(Ui::MakeConfirmBox({ Ui::show(Ui::MakeConfirmBox({
.text = tr::lng_no_mic_permission(), .text = ktr("ktg_no_mic_permission"),
.confirmed = crl::guard(this, [=](Fn<void()> &&close) { .confirmed = crl::guard(this, [=](Fn<void()> &&close) {
Platform::OpenSystemSettingsForPermission(type); Platform::OpenSystemSettingsForPermission(type);
close(); close();

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "data/data_cloud_themes.h" #include "data/data_cloud_themes.h"
#include "kotato/kotato_lang.h"
#include "window/themes/window_theme.h" #include "window/themes/window_theme.h"
#include "window/themes/window_theme_preview.h" #include "window/themes/window_theme_preview.h"
#include "window/themes/window_theme_editor_box.h" #include "window/themes/window_theme_editor_box.h"
@ -222,7 +223,7 @@ void CloudThemes::resolve(
showPreview(controller, result); showPreview(controller, result);
}).fail([=](const MTP::Error &error) { }).fail([=](const MTP::Error &error) {
if (error.type() == u"THEME_FORMAT_INVALID"_q) { if (error.type() == u"THEME_FORMAT_INVALID"_q) {
controller->show(Ui::MakeInformBox(tr::lng_theme_no_desktop())); controller->show(Ui::MakeInformBox(ktr("ktg_theme_no_desktop")));
} }
}).send(); }).send();
} }
@ -246,7 +247,7 @@ void CloudThemes::showPreview(
controller, controller,
cloud)); cloud));
} else { } else {
controller->show(Ui::MakeInformBox(tr::lng_theme_no_desktop())); controller->show(Ui::MakeInformBox(ktr("ktg_theme_no_desktop")));
} }
} }

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "dialogs/dialogs_widget.h" #include "dialogs/dialogs_widget.h"
#include "kotato/kotato_lang.h"
#include "base/qt/qt_key_modifiers.h" #include "base/qt/qt_key_modifiers.h"
#include "base/options.h" #include "base/options.h"
#include "dialogs/ui/dialogs_stories_content.h" #include "dialogs/ui/dialogs_stories_content.h"
@ -1497,7 +1498,7 @@ void Widget::checkUpdateStatus() {
} }
_updateTelegram.create( _updateTelegram.create(
this, this,
tr::lng_update_telegram(tr::now), ktr("ktg_update_telegram"),
st::dialogsUpdateButton, st::dialogsUpdateButton,
st::dialogsInstallUpdate, st::dialogsInstallUpdate,
st::dialogsInstallUpdateOver); st::dialogsInstallUpdateOver);

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "export/view/export_view_progress.h" #include "export/view/export_view_progress.h"
#include "kotato/kotato_lang.h"
#include "ui/effects/animations.h" #include "ui/effects/animations.h"
#include "ui/widgets/labels.h" #include "ui/widgets/labels.h"
#include "ui/widgets/buttons.h" #include "ui/widgets/buttons.h"
@ -263,7 +264,7 @@ ProgressWidget::ProgressWidget(
_about = _body->add( _about = _body->add(
object_ptr<Ui::FlatLabel>( object_ptr<Ui::FlatLabel>(
this, this,
tr::lng_export_progress(tr::now), ktr("ktg_export_progress"),
st::exportAboutLabel), st::exportAboutLabel),
st::exportAboutPadding); st::exportAboutPadding);

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "history/history_item_helpers.h" #include "history/history_item_helpers.h"
#include "kotato/kotato_lang.h"
#include "api/api_text_entities.h" #include "api/api_text_entities.h"
#include "boxes/premium_preview_box.h" #include "boxes/premium_preview_box.h"
#include "calls/calls_instance.h" #include "calls/calls_instance.h"
@ -797,9 +798,9 @@ void CheckReactionNotificationSchedule(
} }
[[nodiscard]] TextWithEntities UnsupportedMessageText() { [[nodiscard]] TextWithEntities UnsupportedMessageText() {
const auto siteLink = u"https://desktop.telegram.org"_q; const auto siteLink = qsl("https://kotatogram.github.io");
auto result = TextWithEntities{ auto result = TextWithEntities{
tr::lng_message_unsupported(tr::now, lt_link, siteLink) ktr("ktg_message_unsupported", { "link", siteLink })
}; };
TextUtilities::ParseEntities(result, Ui::ItemTextNoMonoOptions().flags); TextUtilities::ParseEntities(result, Ui::ItemTextNoMonoOptions().flags);
result.entities.push_front( result.entities.push_front(

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "intro/intro_code.h" #include "intro/intro_code.h"
#include "kotato/kotato_lang.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "intro/intro_code_input.h" #include "intro/intro_code_input.h"
#include "intro/intro_signup.h" #include "intro/intro_signup.h"
@ -311,7 +312,7 @@ void CodeWidget::gotPassword(const MTPaccount_Password &result) {
close(); close();
}; };
Ui::show(Ui::MakeConfirmBox({ Ui::show(Ui::MakeConfirmBox({
.text = tr::lng_passport_app_out_of_date(), .text = ktr("ktg_passport_app_out_of_date"),
.confirmed = callback, .confirmed = callback,
.confirmText = tr::lng_menu_update(), .confirmText = tr::lng_menu_update(),
})); }));

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "intro/intro_start.h" #include "intro/intro_start.h"
#include "kotato/kotato_lang.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "intro/intro_qr.h" #include "intro/intro_qr.h"
#include "intro/intro_phone.h" #include "intro/intro_phone.h"
@ -24,8 +25,8 @@ StartWidget::StartWidget(
not_null<Data*> data) not_null<Data*> data)
: Step(parent, account, data, true) { : Step(parent, account, data, true) {
setMouseTracking(true); setMouseTracking(true);
setTitleText(rpl::single(u"Telegram Desktop"_q)); setTitleText(rpl::single(u"Kotatogram Desktop"_q));
setDescriptionText(tr::lng_intro_about()); setDescriptionText(rktr("ktg_intro_about"));
show(); show();
} }

View file

@ -119,12 +119,9 @@ NotReadyBox::NotReadyBox(
void NotReadyBox::prepare() { void NotReadyBox::prepare() {
setTitle(tr::lng_language_not_ready_title()); setTitle(tr::lng_language_not_ready_title());
auto text = tr::lng_language_not_ready_about( auto text = rktre("ktg_language_not_ready_about",
lt_lang_name, { "lang_name", { _name } },
rpl::single(_name) | Ui::Text::ToWithEntities(), { "link", Ui::Text::Link(tr::lng_language_not_ready_link(tr::now), _editLink) });
lt_link,
tr::lng_language_not_ready_link() | Ui::Text::ToLink(_editLink),
Ui::Text::WithEntities);
const auto content = Ui::CreateChild<Ui::PaddingWrap<Ui::FlatLabel>>( const auto content = Ui::CreateChild<Ui::PaddingWrap<Ui::FlatLabel>>(
this, this,
object_ptr<Ui::FlatLabel>( object_ptr<Ui::FlatLabel>(

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "passport/passport_panel_controller.h" #include "passport/passport_panel_controller.h"
#include "kotato/kotato_lang.h"
#include "main/main_account.h" #include "main/main_account.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
@ -963,7 +964,7 @@ void PanelController::showUpdateAppBox() {
}; };
show( show(
Ui::MakeConfirmBox({ Ui::MakeConfirmBox({
.text = tr::lng_passport_app_out_of_date(), .text = ktr("ktg_passport_app_out_of_date"),
.confirmed = callback, .confirmed = callback,
.cancelled = [=] { _form->cancelSure(); }, .cancelled = [=] { _form->cancelSure(); },
.confirmText = tr::lng_menu_update(), .confirmText = tr::lng_menu_update(),

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "platform/mac/main_window_mac.h" #include "platform/mac/main_window_mac.h"
#include "kotato/kotato_lang.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "core/application.h" #include "core/application.h"
@ -543,7 +544,7 @@ void MainWindow::createGlobalMenu() {
} }
window->addSeparator(); window->addSeparator();
psShowTelegram = window->addAction( psShowTelegram = window->addAction(
tr::lng_mac_menu_show(tr::now), ktr("ktg_mac_menu_show"),
this, this,
[=] { showFromTray(); }); [=] { showFromTray(); });

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "platform/win/tray_win.h" #include "platform/win/tray_win.h"
#include "kotato/kotato_lang.h"
#include "base/invoke_queued.h" #include "base/invoke_queued.h"
#include "base/qt_signal_producer.h" #include "base/qt_signal_producer.h"
#include "core/application.h" #include "core/application.h"
@ -288,7 +289,7 @@ void Tray::showTrayMessage() const {
if (!cSeenTrayTooltip() && _icon) { if (!cSeenTrayTooltip() && _icon) {
_icon->showMessage( _icon->showMessage(
AppName.utf16(), AppName.utf16(),
tr::lng_tray_icon_text(tr::now), ktr("ktg_tray_icon_text"),
QIcon(), QIcon(),
QPlatformSystemTrayIcon::Information, QPlatformSystemTrayIcon::Information,
kTooltipDelay); kTooltipDelay);

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "settings/settings_advanced.h" #include "settings/settings_advanced.h"
#include "kotato/kotato_lang.h"
#include "api/api_global_privacy.h" #include "api/api_global_privacy.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "settings/settings_chat.h" #include "settings/settings_chat.h"
@ -145,7 +146,7 @@ void SetupUpdate(not_null<Ui::VerticalLayout*> container) {
st::settingsButtonNoIcon)); st::settingsButtonNoIcon));
const auto update = Ui::CreateChild<Button>( const auto update = Ui::CreateChild<Button>(
check, check,
tr::lng_update_telegram(), rktr("ktg_update_telegram"),
st::settingsUpdate); st::settingsUpdate);
update->hide(); update->hide();
check->widthValue() | rpl::start_with_next([=](int width) { check->widthValue() | rpl::start_with_next([=](int width) {
@ -604,7 +605,7 @@ void SetupSystemIntegrationContent(
}; };
const auto autostart = addCheckbox( const auto autostart = addCheckbox(
tr::lng_settings_auto_start(), rktr("ktg_settings_auto_start"),
cAutoStart()); cAutoStart());
const auto minimized = addSlidingCheckbox( const auto minimized = addSlidingCheckbox(
tr::lng_settings_start_min(), tr::lng_settings_start_min(),
@ -645,7 +646,7 @@ void SetupSystemIntegrationContent(
if (controller->session().domain().local().hasLocalPasscode()) { if (controller->session().domain().local().hasLocalPasscode()) {
minimized->entity()->setChecked(false); minimized->entity()->setChecked(false);
controller->show(Ui::MakeInformBox( controller->show(Ui::MakeInformBox(
tr::lng_error_start_minimized_passcoded())); ktr("ktg_error_start_minimized_passcoded")));
} else { } else {
cSetStartMinimized(checked); cSetStartMinimized(checked);
Local::writeSettings(); Local::writeSettings();
@ -660,7 +661,7 @@ void SetupSystemIntegrationContent(
if (Platform::IsWindows() && !Platform::IsWindowsStoreBuild()) { if (Platform::IsWindows() && !Platform::IsWindowsStoreBuild()) {
const auto sendto = addCheckbox( const auto sendto = addCheckbox(
tr::lng_settings_add_sendto(), rktr("ktg_settings_add_sendto"),
cSendToMenu()); cSendToMenu());
sendto->checkedChanges( sendto->checkedChanges(

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "settings/settings_calls.h" #include "settings/settings_calls.h"
#include "kotato/kotato_lang.h"
#include "ui/wrap/vertical_layout.h" #include "ui/wrap/vertical_layout.h"
#include "ui/wrap/slide_wrap.h" #include "ui/wrap/slide_wrap.h"
#include "ui/widgets/labels.h" #include "ui/widgets/labels.h"
@ -429,7 +430,7 @@ void Calls::requestPermissionAndStartTestingMicrophone() {
controller->hideLayer(); controller->hideLayer();
}; };
_controller->show(Ui::MakeConfirmBox({ _controller->show(Ui::MakeConfirmBox({
.text = tr::lng_no_mic_permission(), .text = ktr("ktg_no_mic_permission"),
.confirmed = showSystemSettings, .confirmed = showSystemSettings,
.confirmText = tr::lng_menu_settings(), .confirmText = tr::lng_menu_settings(),
})); }));

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "settings/settings_privacy_security.h" #include "settings/settings_privacy_security.h"
#include "kotato/kotato_lang.h"
#include "api/api_authorizations.h" #include "api/api_authorizations.h"
#include "api/api_cloud_password.h" #include "api/api_cloud_password.h"
#include "api/api_self_destruct.h" #include "api/api_self_destruct.h"
@ -987,7 +988,7 @@ object_ptr<Ui::BoxContent> CloudPasswordAppOutdatedBox() {
close(); close();
}; };
return Ui::MakeConfirmBox({ return Ui::MakeConfirmBox({
.text = tr::lng_passport_app_out_of_date(), .text = ktr("ktg_passport_app_out_of_date"),
.confirmed = callback, .confirmed = callback,
.confirmText = tr::lng_menu_update(), .confirmText = tr::lng_menu_update(),
}); });

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "tray.h" #include "tray.h"
#include "kotato/kotato_lang.h"
#include "core/application.h" #include "core/application.h"
#include "core/core_settings.h" #include "core/core_settings.h"
#include "platform/platform_notifications_manager.h" #include "platform/platform_notifications_manager.h"
@ -74,7 +75,7 @@ void Tray::rebuildMenu() {
_activeForTrayIconAction = Core::App().isActiveForTrayMenu(); _activeForTrayIconAction = Core::App().isActiveForTrayMenu();
return _activeForTrayIconAction return _activeForTrayIconAction
? tr::lng_minimize_to_tray(tr::now) ? tr::lng_minimize_to_tray(tr::now)
: tr::lng_open_from_tray(tr::now); : ktr("ktg_open_from_tray");
}); });
_tray.addAction( _tray.addAction(
@ -95,7 +96,7 @@ void Tray::rebuildMenu() {
[=] { toggleSoundNotifications(); }); [=] { toggleSoundNotifications(); });
} }
_tray.addAction(tr::lng_quit_from_tray(), [] { Core::Quit(); }); _tray.addAction(rktr("ktg_quit_from_tray"), [] { Core::Quit(); });
updateMenuText(); updateMenuText();
} }

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "ui/controls/window_outdated_bar.h" #include "ui/controls/window_outdated_bar.h"
#include "kotato/kotato_lang.h"
#include "ui/widgets/labels.h" // Ui::FlatLabel #include "ui/widgets/labels.h" // Ui::FlatLabel
#include "ui/widgets/buttons.h" // Ui::IconButton #include "ui/widgets/buttons.h" // Ui::IconButton
#include "ui/wrap/slide_wrap.h" // Ui::SlideWrap #include "ui/wrap/slide_wrap.h" // Ui::SlideWrap
@ -65,8 +66,8 @@ Bar::Bar(not_null<QWidget*> parent, QDate date)
_title->setTryMakeSimilarLines(true); _title->setTryMakeSimilarLines(true);
_details->setTryMakeSimilarLines(true); _details->setTryMakeSimilarLines(true);
_details->setText(_soon _details->setText(_soon
? tr::lng_outdated_soon(tr::now, lt_date, langDayOfMonthFull(date)) ? ktr("ktg_outdated_soon", { "date", langDayOfMonthFull(date) })
: tr::lng_outdated_now(tr::now)); : ktr("ktg_outdated_now"));
} }
rpl::producer<> Bar::hideClicks() const { rpl::producer<> Bar::hideClicks() const {

View file

@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "window/themes/window_theme_editor.h" #include "window/themes/window_theme_editor.h"
#include "kotato/kotato_lang.h"
#include "window/themes/window_theme.h" #include "window/themes/window_theme.h"
#include "window/themes/window_theme_editor_block.h" #include "window/themes/window_theme_editor_block.h"
#include "window/themes/window_theme_editor_box.h" #include "window/themes/window_theme_editor_box.h"
@ -835,7 +836,7 @@ QByteArray Editor::ColorizeInContent(
void Editor::save() { void Editor::save() {
if (Core::App().passcodeLocked()) { if (Core::App().passcodeLocked()) {
_window->showToast(tr::lng_theme_editor_need_unlock(tr::now)); _window->showToast(ktr("ktg_theme_editor_need_unlock"));
return; return;
} else if (!_window->account().sessionExists()) { } else if (!_window->account().sessionExists()) {
_window->showToast(tr::lng_theme_editor_need_auth(tr::now)); _window->showToast(tr::lng_theme_editor_need_auth(tr::now));