zotero/chrome/content/zotero/reader.xhtml
Dan Stillman 3693674fc9 Fix Fluent localization for non-English locales
All declared Fluent files need to exist for a locale to be used (in a
window?). Since Mozilla code tries to load Fluent files, we need to copy
non-English Mozilla .ftl files to their default effective path (just in
the app omni.ja instead of the toolkit omni.ja).

Fixes #3094
2023-04-26 04:40:22 -04:00

321 lines
11 KiB
HTML

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://zotero/skin/zotero.css" type="text/css"?>
<?xml-stylesheet href="chrome://zotero/skin/overlay.css" type="text/css"?>
<!DOCTYPE window [
<!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd"> %globalDTD;
<!ENTITY % editMenuOverlayDTD SYSTEM "chrome://zotero/locale/mozilla/editMenuOverlay.dtd" > %editMenuOverlayDTD;
<!ENTITY % standaloneDTD SYSTEM "chrome://zotero/locale/standalone.dtd" > %standaloneDTD;
<!ENTITY % zoteroDTD SYSTEM "chrome://zotero/locale/zotero.dtd"> %zoteroDTD;
]>
<window
id="pdf-reader"
windowtype="zotero:reader"
orient="vertical"
width="1300"
height="800"
persist="screenX screenY width height"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
>
<html:link rel="localization" href="browser/menubar.ftl"/>
<script type="application/javascript">
var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
Services.scriptloader.loadSubScript("chrome://zotero/content/include.js", this);
Services.scriptloader.loadSubScript("resource://zotero/require.js", this);
Services.scriptloader.loadSubScript("chrome://zotero/content/platformKeys.js", this);
// Mozilla scripts
Services.scriptloader.loadSubScript("chrome://global/content/globalOverlay.js", this);
Services.scriptloader.loadSubScript("chrome://global/content/editMenuOverlay.js", this);
Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this);
if (Zotero.isMac) {
Services.scriptloader.loadSubScript("chrome://global/content/macWindowMenu.js", this);
}
Services.scriptloader.loadSubScript("chrome://zotero/content/customElements.js", this);
</script>
<commandset id="mainCommandSet">
<!--FILE-->
<command id="cmd_quitApplication" oncommand="goQuitApplication(event);"/>
<command id="cmd_close" oncommand="window.close();"/>
<!--EDIT-->
<commandset id="editMenuCommands"/>
<command id="cmd_find"
oncommand="document.getElementById('zotero-tb-search').select()"/>
<!--WINDOW-->
<command id="minimizeWindow"
label="&minimizeWindow.label;"
oncommand="window.minimize();" />
<command id="zoomWindow"
label="&zoomWindow.label;"
oncommand="zoomWindow();" />
</commandset>
<keyset id="mainKeyset">
<key id="key_back"/>
<key id="key_forward"/>
<key id="key_minimizeWindow"
command="minimizeWindow"
key="&minimizeWindow.key;"
modifiers="accel"/>
</keyset>
<keyset id="editMenuKeys">
<key id="key_undo" data-l10n-id="text-action-undo-shortcut" modifiers="accel" command="cmd_undo"/>
<!-- l10n and modifiers set in platformKeys.js -->
<key id="key_redo" command="cmd_redo"/>
<key id="key_cut" data-l10n-id="text-action-cut-shortcut" modifiers="accel" command="cmd_cut"/>
<key id="key_copy" data-l10n-id="text-action-copy-shortcut" modifiers="accel" command="cmd_copy"/>
<key id="key_paste" data-l10n-id="text-action-paste-shortcut" modifiers="accel" command="cmd_paste"/>
<key id="key_delete" keycode="VK_DELETE" command="cmd_delete"/>
<key id="key_selectAll" data-l10n-id="text-action-select-all-shortcut" modifiers="accel" command="cmd_selectAll"/>
<key id="key_find" key="&findCmd.key;" modifiers="accel" command="cmd_find"/>
<key id="key_findAgain" key="&findAgainCmd.key;" modifiers="accel" command="cmd_findAgain"/>
<key id="key_findPrevious" key="&findAgainCmd.key;" modifiers="shift,accel" command="cmd_findPrevious"/>
<key id="key_findAgain2" keycode="&findAgainCmd.key2;" command="cmd_findAgain"/>
<key id="key_findPrevious2" keycode="&findAgainCmd.key2;" modifiers="shift" command="cmd_findPrevious"/>
</keyset>
<!-- TODO: Localize -->
<tooltip id="iframeTooltip" page="true"/>
<menubar>
<menu id="fileMenu" label="&fileMenu.label;" accesskey="&fileMenu.accesskey;">
<menupopup id="menu_FilePopup">
<!-- TODO: Localize -->
<menuitem label="Save As…" oncommand="menuCmd('export')"/>
<menuitem label="Print" oncommand="menuCmd('print')"/>
<menuitem label="&zotero.items.menu.showInLibrary;" oncommand="menuCmd('showInLibrary')"/>
<menuseparator/>
<menuitem id="menu_close" label="&closeCmd.label;" key="key_close"
accesskey="&closeCmd.accesskey;" command="cmd_close"/>
</menupopup>
</menu>
<menu id="edit-menu" data-l10n-id="menu-edit">
<menupopup id="menu_EditPopup">
<menuitem id="menu_undo"
key="key_undo"
command="cmd_undo" data-l10n-id="text-action-undo"/>
<menuitem id="menu_redo"
key="key_redo"
command="cmd_redo" data-l10n-id="text-action-redo"/>
<menuseparator/>
<menuitem id="menu_cut"
key="key_cut"
command="cmd_cut" data-l10n-id="text-action-cut"/>
<menuitem id="menu_copy"
key="key_copy"
command="cmd_copy" data-l10n-id="text-action-copy"/>
<menuitem id="menu_paste"
key="key_paste"
command="cmd_paste" data-l10n-id="text-action-paste"/>
<menuitem id="menu_delete"
key="key_delete"
command="cmd_delete" data-l10n-id="text-action-delete"/>
<menuseparator/>
<menuitem id="menu_selectAll"
key="key_selectAll"
command="cmd_selectAll" data-l10n-id="text-action-select-all"/>
<menuseparator class="menu-type-reader"/>
<menuitem
id="edit-menuitem-rotate-left"
class="menu-type-reader"
label="&zotero.pdfReader.rotatePageLeft;"
oncommand="menuCmd('rotateLeft')"
/>
<menuitem
id="edit-menuitem-rotate-right"
class="menu-type-reader"
label="&zotero.pdfReader.rotatePageRight;"
oncommand="menuCmd('rotateRight')"
/>
<!--<menuitem
id="edit-menuitem-rotate-180"
class="menu-type-reader"
label="&zotero.pdfReader.rotatePage180;"
oncommand="menuCmd('rotate180')"
/>-->
</menupopup>
</menu>
<menu label="View" onpopupshowing="onViewMenuOpen()">
<menupopup>
<!--
To make presentation mode work it's necessary to set
full-screen-api.enabled=true
full-screen-api.allow-trusted-requests-only=false
and then hide all other visible window elements like toolbar, note sidebar, tabs, etc.
-->
<!-- <menuitem label="Switch to Presentation Mode" oncommand="menuCmd('presentationmode')"/>-->
<!-- <menuseparator/>-->
<menuitem
id="view-menuitem-hand-tool"
label="&zotero.pdfReader.handTool;"
type="checkbox"
oncommand="menuCmd('switchcursortool_hand')"
/>
<menuseparator/>
<menuitem
id="view-menuitem-vertical-scrolling"
label="&zotero.pdfReader.verticalScrolling;"
type="checkbox"
oncommand="menuCmd('switchscrollmode_vertical')"
/>
<menuitem
id="view-menuitem-horizontal-scrolling"
label="&zotero.pdfReader.horizontalScrolling;"
type="checkbox"
oncommand="menuCmd('switchscrollmode_horizontal')"
/>
<menuitem
id="view-menuitem-wrapped-scrolling"
label="&zotero.pdfReader.wrappedScrolling;"
type="checkbox"
oncommand="menuCmd('switchscrollmode_wrapped')"
/>
<menuseparator/>
<menuitem
id="view-menuitem-no-spreads"
label="&zotero.pdfReader.noSpreads;"
type="checkbox"
oncommand="menuCmd('switchspreadmode_none')"
/>
<menuitem
id="view-menuitem-odd-spreads"
label="&zotero.pdfReader.oddSpreads;"
type="checkbox"
oncommand="menuCmd('switchspreadmode_odd')"
/>
<menuitem
id="view-menuitem-even-spreads"
label="&zotero.pdfReader.evenSpreads;"
type="checkbox"
oncommand="menuCmd('switchspreadmode_even')"
/>
<menuseparator class="menu-type-reader"/>
<menuitem
id="view-menuitem-zoom-in"
label="&zotero.pdfReader.zoomIn;"
oncommand="menuCmd('zoomIn')"
/>
<menuitem
id="view-menuitem-zoom-out"
label="&zotero.pdfReader.zoomOut;"
oncommand="menuCmd('zoomOut')"
/>
<menuitem
id="view-menuitem-zoom-auto"
type="checkbox"
label="&zotero.pdfReader.zoomAuto;"
oncommand="menuCmd('zoomAuto')"
/>
<menuitem
id="view-menuitem-zoom-page-width"
type="checkbox"
label="&zotero.pdfReader.zoomPageWidth;"
oncommand="menuCmd('zoomPageWidth')"
/>
<menuitem
id="view-menuitem-zoom-page-height"
type="checkbox"
label="&zotero.pdfReader.zoomPageHeight;"
oncommand="menuCmd('zoomPageHeight')"
/>
<menuseparator class="menu-type-reader"/>
<menuitem
id="view-menuitem-split-horizontally"
type="checkbox"
label="&zotero.pdfReader.splitHorizontally;"
oncommand="menuCmd('splitHorizontally')"
/>
<menuitem
id="view-menuitem-split-vertically"
type="checkbox"
label="&zotero.pdfReader.splitVertically;"
oncommand="menuCmd('splitVertically')"
/>
</menupopup>
</menu>
<menu
id="go-menu"
class="menu-type-reader"
label="&goMenu.label;"
onpopupshowing="onGoMenuOpen()"
>
<menupopup id="menu_goPopup">
<menuitem
id="go-menuitem-first-page"
class="menu-type-reader"
label="&zotero.pdfReader.firstPage;"
oncommand="menuCmd('firstpage')"
/>
<menuitem
id="go-menuitem-last-page"
class="menu-type-reader"
label="&zotero.pdfReader.lastPage;"
oncommand="menuCmd('lastpage')"
/>
<menuseparator class="menu-type-reader"/>
<menuitem
id="go-menuitem-back"
class="menu-type-reader"
label="&zotero.pdfReader.back;"
oncommand="menuCmd('back')"
/>
<menuitem
id="go-menuitem-forward"
class="menu-type-reader"
label="&zotero.pdfReader.forward;"
oncommand="menuCmd('forward')"
/>
</menupopup>
</menu>
<menu id="windowMenu"
label="&windowMenu.label;"
datasources="rdf:window-mediator" ref="NC:WindowMediatorRoot"
onpopupshowing="macWindowMenuDidShow();"
onpopuphidden="macWindowMenuDidHide();"
hidden="false">
<template>
<rule>
<menupopup>
<menuitem uri="rdf:*"
label="rdf:http://home.netscape.com/NC-rdf#Name"
type="radio"
name="windowList"
oncommand="ShowWindowFromResource(event.target)"/>
</menupopup>
</rule>
</template>
<menupopup id="windowPopup">
<menuitem command="minimizeWindow" label="&minimizeWindow.label;" key="key_minimizeWindow"/>
<menuitem command="zoomWindow" label="&zoomWindow.label;"/>
<!-- decomment when "BringAllToFront" is implemented
<menuseparator/>
<menuitem label="&bringAllToFront.label;" disabled="true"/> -->
<menuseparator id="sep-window-list"/>
</menupopup>
</menu>
</menubar>
<hbox flex="1">
<vbox id="zotero-reader" flex="3">
<browser id="reader"
tooltip="iframeTooltip"
type="content"
primary="true"
transparent="transparent"
src="resource://zotero/pdf-reader/viewer.html"
flex="1"/>
<popupset id="zotero-reader-popupset">
</popupset>
</vbox>
</hbox>
</window>