From 4d35315443928c8dfb57608e98f6dd297ee0b791 Mon Sep 17 00:00:00 2001 From: Hermes Date: Sun, 9 Aug 2026 12:54:54 +0200 Subject: [PATCH] =?UTF-8?q?menu:=20add=20item=20immediately=20(no=203s=20d?= =?UTF-8?q?elay)=20+=20Lampa.Lang=20localization=20(ru:=20=D0=9C=D0=BE?= =?UTF-8?q?=D0=B8=20=D1=84=D0=B8=D0=BB=D1=8C=D0=BC=D1=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin.js | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/plugin.js b/plugin.js index 0ec8abe..babc411 100644 --- a/plugin.js +++ b/plugin.js @@ -1,9 +1,17 @@ (function () { 'use strict'; - var PLUGIN = { name: 'mymovies', title: 'My Movies', menu_action: 'mymovies' }; + var PLUGIN = { name: 'mymovies', title: 'mymovies_title', menu_action: 'mymovies' }; var DEFAULT_BASE = 'https://movies-lmp-18.dynv6.net/'; + // Localized strings. Register once, then use Lampa.Lang.translate(KEY). + var STRINGS = { + mymovies_title: { ru: 'Мои фильмы', en: 'My Movies' } + }; + function t(key) { + try { return Lampa.Lang.translate(key); } catch (e) { return key; } + } + function base() { var b = Lampa.Storage.get(PLUGIN.name + '_base', DEFAULT_BASE); return b.replace(/\/+$/, '') + '/'; @@ -386,15 +394,15 @@ '' + - '' + + '' + '' ); button.on('hover:enter', function () { Lampa.Activity.push({ url: '', component: PLUGIN.name, - title: PLUGIN.title, - page: PLUGIN.title + title: t(PLUGIN.title), + page: t(PLUGIN.title) }); }); return button; @@ -410,6 +418,10 @@ function start() { if (menuSubscribed) return; menuSubscribed = true; + + // Register localized strings for this plugin. + try { Lampa.Lang.add(STRINGS); } catch (e) { /* older Lampa: ignore */ } + Lampa.Listener.follow('menu', function (e) { if (e.type === 'start' && e.body) { var list = e.body.find('.menu__list'); @@ -419,12 +431,12 @@ addMenuButton(); } }); - // fallback: re-check shortly after load (covers late menu builds) - setTimeout(function () { - if ($('.menu .menu__list').length && !$('[data-action="' + PLUGIN.menu_action + '"]').length) { - addMenuButton(); - } - }, 3000); + + // If the main menu is already built, add the item immediately so it does + // NOT appear late and shove other items around. + if ($('.menu .menu__list').length && !$('[data-action="' + PLUGIN.menu_action + '"]').length) { + addMenuButton(); + } } if (window.Lampa && Lampa.Listener && Lampa.Activity) {