Страницы: 1
Привет.
Я пишу расширение для Firefox. Изначально все лэйблы и строчки были hardcoded, но сейчас начал всё переписывать как пологается, вынес строки в entity, всё прекрасно работает, но есть такая проблема. У меня есть меню, которое динамически заполняется javascript`ом — из массива читаются ссылки и добовляются к меню, потом вне цыкла добавляется пункт меню, какбы статичный. Вот эта функция:
function qlinks_linksMenuPopulate() { var qlinks_menu = document.getElementById('qlinks-links-menu'); // удаляю все старые пункты меню for (i=qlinks_menu.childNodes.length; i>0; i--) qlinks_menu.removeChild(qlinks_menu.childNodes[0]); var linksArray = qlinks_links2arr(); arrl_cc = linksArray.length; // здесь заполнение if (arrl_cc>0) { for (loop=0; loop<arrl_cc; loop++) { var tmp_elem = document.createElement("menuitem"); tmp_elem.setAttribute("label", linksArray[loop].name); tmp_elem.setAttribute("tooltiptext", linksArray[loop].link); tmp_elem.setAttribute("oncommand", "qlinks_goto(event, '"+linksArray[loop].link+"');event.preventBubble();"); qlinks_menu.appendChild(tmp_elem); } qlinks_menu.appendChild(document.createElement("menuseparator")); } // попробуем создать открывашку окна var newwin_item = document.createElement("menuitem"); newwin_item.setAttribute("label", "Настройки"); newwin_item.setAttribute("tooltiptext", "Настройки"); newwin_item.setAttribute("oncommand", "window.open('chrome://qlinks/content/qlinks-prefs-window.xul', 'qlinks-prefs-window', 'chrome, width=600, height=300, resizable=yes, centerscreen, modal');event.preventBubble();"); qlinks_menu.appendChild(newwin_item); // получилось return true; }// qlinks_linksMenuPopulate()
вот само меню
Проблема в том, что если я при добавлении последнего пункта "Настройки", вместо кода
newwin_item.setAttribute("label", "Настройки"); newwin_item.setAttribute("tooltiptext", "Настройки");
хочу написать
newwin_item.setAttribute("label", "&qlinks.menu.preferences.label;"); newwin_item.setAttribute("tooltiptext", "&qlinks.menu.preferences.label.tooltip;");
то замена "&qlinks.menu.preferences.label;" на то, что описанно в .dtd файле не происходит.
Конечно можно сделать пункт "Настройки" статичным, явно прописанным в .xul, и не удалять его при очистки меню перед заполнением его ссылками, но всёже хотелосьбы узнать, почему не работает подмена в таком подходе как у меня..
Отсутствует
в javascript используются *.properties файлы
во все локали нужно добавить файл, допустим, my_ext.properties
формат его такой
а потом загружать эти строки функцией
function my_ext_getString (name) { var sb; try { var sbs = Components. classes ["@mozilla.org/intl/stringbundle;1"]. getService(); sbs = sbs. QueryInterface (Components. interfaces. nsIStringBundleService); sb = sbs. createBundle ("chrome://my_ext/locale/my_ext.properties"); return sb. GetStringFromName (name); } catch (ex) {} return name; }
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Страницы: 1