Commit 5cb08e8c authored by Jérome Perrin's avatar Jérome Perrin

dms: version up pdfjs 3.11.174

using pdfjs-3.11.174-legacy-dist.zip

Note: viewer.js is modified to do nothing in webViewerLoad (one line
with return "ERP5 patch: disable here" is added at the top of this
function) because we do the initialization in the gadget.
I think something similar was also done with the previous version.

The tests were extended to cover:

 - opening an empty or broken PDF: this should not crash
 - clicking save: this should not crash and the updated document should
   render properly. The save action replaces the ERP5 document content
   with the content from the editor, so if user for example added
   annotations or draw on the PDF, the modified version is saved.
   We don't use this feature and it's not so easy to test, so for now
   the test only covers the "it should not crash and it should not
   break the document".
 - entering wrong password for encrypted PDFs should not crash
parent 4e48b8b6
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value> <value> <string>text/javascript</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pdf.sandbox.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>pdf.sandbox.js</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value> <value> <string>text/javascript</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>cmaps</string> </value> <value> <string></string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
/* Copyright 2012 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* globals VBArray, PDFJS */
'use strict';
// Initializing PDFJS global object here, it case if we need to change/disable
// some PDF.js features, e.g. range requests
if (typeof PDFJS === 'undefined') {
(typeof window !== 'undefined' ? window : this).PDFJS = {};
}
// Checking if the typed arrays are supported
// Support: iOS<6.0 (subarray), IE<10, Android<4.0
(function checkTypedArrayCompatibility() {
if (typeof Uint8Array !== 'undefined') {
// Support: iOS<6.0
if (typeof Uint8Array.prototype.subarray === 'undefined') {
Uint8Array.prototype.subarray = function subarray(start, end) {
return new Uint8Array(this.slice(start, end));
};
Float32Array.prototype.subarray = function subarray(start, end) {
return new Float32Array(this.slice(start, end));
};
}
// Support: Android<4.1
if (typeof Float64Array === 'undefined') {
window.Float64Array = Float32Array;
}
return;
}
function subarray(start, end) {
return new TypedArray(this.slice(start, end));
}
function setArrayOffset(array, offset) {
if (arguments.length < 2) {
offset = 0;
}
for (var i = 0, n = array.length; i < n; ++i, ++offset) {
this[offset] = array[i] & 0xFF;
}
}
function TypedArray(arg1) {
var result, i, n;
if (typeof arg1 === 'number') {
result = [];
for (i = 0; i < arg1; ++i) {
result[i] = 0;
}
} else if ('slice' in arg1) {
result = arg1.slice(0);
} else {
result = [];
for (i = 0, n = arg1.length; i < n; ++i) {
result[i] = arg1[i];
}
}
result.subarray = subarray;
result.buffer = result;
result.byteLength = result.length;
result.set = setArrayOffset;
if (typeof arg1 === 'object' && arg1.buffer) {
result.buffer = arg1.buffer;
}
return result;
}
window.Uint8Array = TypedArray;
window.Int8Array = TypedArray;
// we don't need support for set, byteLength for 32-bit array
// so we can use the TypedArray as well
window.Uint32Array = TypedArray;
window.Int32Array = TypedArray;
window.Uint16Array = TypedArray;
window.Float32Array = TypedArray;
window.Float64Array = TypedArray;
})();
// URL = URL || webkitURL
// Support: Safari<7, Android 4.2+
(function normalizeURLObject() {
if (!window.URL) {
window.URL = window.webkitURL;
}
})();
// Object.defineProperty()?
// Support: Android<4.0, Safari<5.1
(function checkObjectDefinePropertyCompatibility() {
if (typeof Object.defineProperty !== 'undefined') {
var definePropertyPossible = true;
try {
// some browsers (e.g. safari) cannot use defineProperty() on DOM objects
// and thus the native version is not sufficient
Object.defineProperty(new Image(), 'id', { value: 'test' });
// ... another test for android gb browser for non-DOM objects
var Test = function Test() {};
Test.prototype = { get id() { } };
Object.defineProperty(new Test(), 'id',
{ value: '', configurable: true, enumerable: true, writable: false });
} catch (e) {
definePropertyPossible = false;
}
if (definePropertyPossible) {
return;
}
}
Object.defineProperty = function objectDefineProperty(obj, name, def) {
delete obj[name];
if ('get' in def) {
obj.__defineGetter__(name, def['get']);
}
if ('set' in def) {
obj.__defineSetter__(name, def['set']);
}
if ('value' in def) {
obj.__defineSetter__(name, function objectDefinePropertySetter(value) {
this.__defineGetter__(name, function objectDefinePropertyGetter() {
return value;
});
return value;
});
obj[name] = def.value;
}
};
})();
// No XMLHttpRequest#response?
// Support: IE<11, Android <4.0
(function checkXMLHttpRequestResponseCompatibility() {
var xhrPrototype = XMLHttpRequest.prototype;
var xhr = new XMLHttpRequest();
if (!('overrideMimeType' in xhr)) {
// IE10 might have response, but not overrideMimeType
// Support: IE10
Object.defineProperty(xhrPrototype, 'overrideMimeType', {
value: function xmlHttpRequestOverrideMimeType(mimeType) {}
});
}
if ('responseType' in xhr) {
return;
}
// The worker will be using XHR, so we can save time and disable worker.
PDFJS.disableWorker = true;
Object.defineProperty(xhrPrototype, 'responseType', {
get: function xmlHttpRequestGetResponseType() {
return this._responseType || 'text';
},
set: function xmlHttpRequestSetResponseType(value) {
if (value === 'text' || value === 'arraybuffer') {
this._responseType = value;
if (value === 'arraybuffer' &&
typeof this.overrideMimeType === 'function') {
this.overrideMimeType('text/plain; charset=x-user-defined');
}
}
}
});
// Support: IE9
if (typeof VBArray !== 'undefined') {
Object.defineProperty(xhrPrototype, 'response', {
get: function xmlHttpRequestResponseGet() {
if (this.responseType === 'arraybuffer') {
return new Uint8Array(new VBArray(this.responseBody).toArray());
} else {
return this.responseText;
}
}
});
return;
}
Object.defineProperty(xhrPrototype, 'response', {
get: function xmlHttpRequestResponseGet() {
if (this.responseType !== 'arraybuffer') {
return this.responseText;
}
var text = this.responseText;
var i, n = text.length;
var result = new Uint8Array(n);
for (i = 0; i < n; ++i) {
result[i] = text.charCodeAt(i) & 0xFF;
}
return result.buffer;
}
});
})();
// window.btoa (base64 encode function) ?
// Support: IE<10
(function checkWindowBtoaCompatibility() {
if ('btoa' in window) {
return;
}
var digits =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
window.btoa = function windowBtoa(chars) {
var buffer = '';
var i, n;
for (i = 0, n = chars.length; i < n; i += 3) {
var b1 = chars.charCodeAt(i) & 0xFF;
var b2 = chars.charCodeAt(i + 1) & 0xFF;
var b3 = chars.charCodeAt(i + 2) & 0xFF;
var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);
var d3 = i + 1 < n ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;
var d4 = i + 2 < n ? (b3 & 0x3F) : 64;
buffer += (digits.charAt(d1) + digits.charAt(d2) +
digits.charAt(d3) + digits.charAt(d4));
}
return buffer;
};
})();
// window.atob (base64 encode function)?
// Support: IE<10
(function checkWindowAtobCompatibility() {
if ('atob' in window) {
return;
}
// https://github.com/davidchambers/Base64.js
var digits =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
window.atob = function (input) {
input = input.replace(/=+$/, '');
if (input.length % 4 === 1) {
throw new Error('bad atob input');
}
for (
// initialize result and counters
var bc = 0, bs, buffer, idx = 0, output = '';
// get next character
buffer = input.charAt(idx++);
// character found in table?
// initialize bit storage and add its ascii value
~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
// and if not first of each 4 characters,
// convert the first 8 bits to one ascii character
bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0
) {
// try to find character in table (0-63, not found => -1)
buffer = digits.indexOf(buffer);
}
return output;
};
})();
// Function.prototype.bind?
// Support: Android<4.0, iOS<6.0
(function checkFunctionPrototypeBindCompatibility() {
if (typeof Function.prototype.bind !== 'undefined') {
return;
}
Function.prototype.bind = function functionPrototypeBind(obj) {
var fn = this, headArgs = Array.prototype.slice.call(arguments, 1);
var bound = function functionPrototypeBindBound() {
var args = headArgs.concat(Array.prototype.slice.call(arguments));
return fn.apply(obj, args);
};
return bound;
};
})();
// HTMLElement dataset property
// Support: IE<11, Safari<5.1, Android<4.0
(function checkDatasetProperty() {
var div = document.createElement('div');
if ('dataset' in div) {
return; // dataset property exists
}
Object.defineProperty(HTMLElement.prototype, 'dataset', {
get: function() {
if (this._dataset) {
return this._dataset;
}
var dataset = {};
for (var j = 0, jj = this.attributes.length; j < jj; j++) {
var attribute = this.attributes[j];
if (attribute.name.substring(0, 5) !== 'data-') {
continue;
}
var key = attribute.name.substring(5).replace(/\-([a-z])/g,
function(all, ch) {
return ch.toUpperCase();
});
dataset[key] = attribute.value;
}
Object.defineProperty(this, '_dataset', {
value: dataset,
writable: false,
enumerable: false
});
return dataset;
},
enumerable: true
});
})();
// HTMLElement classList property
// Support: IE<10, Android<4.0, iOS<5.0
(function checkClassListProperty() {
var div = document.createElement('div');
if ('classList' in div) {
return; // classList property exists
}
function changeList(element, itemName, add, remove) {
var s = element.className || '';
var list = s.split(/\s+/g);
if (list[0] === '') {
list.shift();
}
var index = list.indexOf(itemName);
if (index < 0 && add) {
list.push(itemName);
}
if (index >= 0 && remove) {
list.splice(index, 1);
}
element.className = list.join(' ');
return (index >= 0);
}
var classListPrototype = {
add: function(name) {
changeList(this.element, name, true, false);
},
contains: function(name) {
return changeList(this.element, name, false, false);
},
remove: function(name) {
changeList(this.element, name, false, true);
},
toggle: function(name) {
changeList(this.element, name, true, true);
}
};
Object.defineProperty(HTMLElement.prototype, 'classList', {
get: function() {
if (this._classList) {
return this._classList;
}
var classList = Object.create(classListPrototype, {
element: {
value: this,
writable: false,
enumerable: true
}
});
Object.defineProperty(this, '_classList', {
value: classList,
writable: false,
enumerable: false
});
return classList;
},
enumerable: true
});
})();
// Check console compatibility
// In older IE versions the console object is not available
// unless console is open.
// Support: IE<10
(function checkConsoleCompatibility() {
if (!('console' in window)) {
window.console = {
log: function() {},
error: function() {},
warn: function() {}
};
} else if (!('bind' in console.log)) {
// native functions in IE9 might not have bind
console.log = (function(fn) {
return function(msg) { return fn(msg); };
})(console.log);
console.error = (function(fn) {
return function(msg) { return fn(msg); };
})(console.error);
console.warn = (function(fn) {
return function(msg) { return fn(msg); };
})(console.warn);
}
})();
// Check onclick compatibility in Opera
// Support: Opera<15
(function checkOnClickCompatibility() {
// workaround for reported Opera bug DSK-354448:
// onclick fires on disabled buttons with opaque content
function ignoreIfTargetDisabled(event) {
if (isDisabled(event.target)) {
event.stopPropagation();
}
}
function isDisabled(node) {
return node.disabled || (node.parentNode && isDisabled(node.parentNode));
}
if (navigator.userAgent.indexOf('Opera') !== -1) {
// use browser detection since we cannot feature-check this bug
document.addEventListener('click', ignoreIfTargetDisabled, true);
}
})();
// Checks if possible to use URL.createObjectURL()
// Support: IE
(function checkOnBlobSupport() {
// sometimes IE loosing the data created with createObjectURL(), see #3977
if (navigator.userAgent.indexOf('Trident') >= 0) {
PDFJS.disableCreateObjectURL = true;
}
})();
// Checks if navigator.language is supported
(function checkNavigatorLanguage() {
if ('language' in navigator) {
return;
}
PDFJS.locale = navigator.userLanguage || 'en-US';
})();
(function checkRangeRequests() {
// Safari has issues with cached range requests see:
// https://github.com/mozilla/pdf.js/issues/3260
// Last tested with version 6.0.4.
// Support: Safari 6.0+
var isSafari = Object.prototype.toString.call(
window.HTMLElement).indexOf('Constructor') > 0;
// Older versions of Android (pre 3.0) has issues with range requests, see:
// https://github.com/mozilla/pdf.js/issues/3381.
// Make sure that we only match webkit-based Android browsers,
// since Firefox/Fennec works as expected.
// Support: Android<3.0
var regex = /Android\s[0-2][^\d]/;
var isOldAndroid = regex.test(navigator.userAgent);
// Range requests are broken in Chrome 39 and 40, https://crbug.com/442318
var isChromeWithRangeBug = /Chrome\/(39|40)\./.test(navigator.userAgent);
if (isSafari || isOldAndroid || isChromeWithRangeBug) {
PDFJS.disableRange = true;
PDFJS.disableStream = true;
}
})();
// Check if the browser supports manipulation of the history.
// Support: IE<10, Android<4.2
(function checkHistoryManipulation() {
// Android 2.x has so buggy pushState support that it was removed in
// Android 3.0 and restored as late as in Android 4.2.
// Support: Android 2.x
if (!history.pushState || navigator.userAgent.indexOf('Android 2.') >= 0) {
PDFJS.disableHistory = true;
}
})();
// Support: IE<11, Chrome<21, Android<4.4, Safari<6
(function checkSetPresenceInImageData() {
// IE < 11 will use window.CanvasPixelArray which lacks set function.
if (window.CanvasPixelArray) {
if (typeof window.CanvasPixelArray.prototype.set !== 'function') {
window.CanvasPixelArray.prototype.set = function(arr) {
for (var i = 0, ii = this.length; i < ii; i++) {
this[i] = arr[i];
}
};
}
} else {
// Old Chrome and Android use an inaccessible CanvasPixelArray prototype.
// Because we cannot feature detect it, we rely on user agent parsing.
var polyfill = false, versionMatch;
if (navigator.userAgent.indexOf('Chrom') >= 0) {
versionMatch = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
// Chrome < 21 lacks the set function.
polyfill = versionMatch && parseInt(versionMatch[2]) < 21;
} else if (navigator.userAgent.indexOf('Android') >= 0) {
// Android < 4.4 lacks the set function.
// Android >= 4.4 will contain Chrome in the user agent,
// thus pass the Chrome check above and not reach this block.
polyfill = /Android\s[0-4][^\d]/g.test(navigator.userAgent);
} else if (navigator.userAgent.indexOf('Safari') >= 0) {
versionMatch = navigator.userAgent.
match(/Version\/([0-9]+)\.([0-9]+)\.([0-9]+) Safari\//);
// Safari < 6 lacks the set function.
polyfill = versionMatch && parseInt(versionMatch[1]) < 6;
}
if (polyfill) {
var contextPrototype = window.CanvasRenderingContext2D.prototype;
var createImageData = contextPrototype.createImageData;
contextPrototype.createImageData = function(w, h) {
var imageData = createImageData.call(this, w, h);
imageData.data.set = function(arr) {
for (var i = 0, ii = this.length; i < ii; i++) {
this[i] = arr[i];
}
};
return imageData;
};
// this closure will be kept referenced, so clear its vars
contextPrototype = null;
}
}
})();
// Support: IE<10, Android<4.0, iOS
(function checkRequestAnimationFrame() {
function fakeRequestAnimationFrame(callback) {
window.setTimeout(callback, 20);
}
var isIOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
if (isIOS) {
// requestAnimationFrame on iOS is broken, replacing with fake one.
window.requestAnimationFrame = fakeRequestAnimationFrame;
return;
}
if ('requestAnimationFrame' in window) {
return;
}
window.requestAnimationFrame =
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
fakeRequestAnimationFrame;
})();
(function checkCanvasSizeLimitation() {
var isIOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
var isAndroid = /Android/g.test(navigator.userAgent);
if (isIOS || isAndroid) {
// 5MP
PDFJS.maxCanvasPixels = 5242880;
}
})();
// Disable fullscreen support for certain problematic configurations.
// Support: IE11+ (when embedded).
(function checkFullscreenSupport() {
var isEmbeddedIE = (navigator.userAgent.indexOf('Trident') >= 0 &&
window.parent !== window);
if (isEmbeddedIE) {
PDFJS.disableFullscreen = true;
}
})();
// Provides document.currentScript support
// Support: IE, Chrome<29.
(function checkCurrentScript() {
if ('currentScript' in document) {
return;
}
Object.defineProperty(document, 'currentScript', {
get: function () {
var scripts = document.getElementsByTagName('script');
return scripts[scripts.length - 1];
},
enumerable: true,
configurable: true
});
})();
/* Copyright 2012 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* globals PDFJS */
'use strict';
var FontInspector = (function FontInspectorClosure() {
var fonts;
var active = false;
var fontAttribute = 'data-font-name';
function removeSelection() {
var divs = document.querySelectorAll('div[' + fontAttribute + ']');
for (var i = 0, ii = divs.length; i < ii; ++i) {
var div = divs[i];
div.className = '';
}
}
function resetSelection() {
var divs = document.querySelectorAll('div[' + fontAttribute + ']');
for (var i = 0, ii = divs.length; i < ii; ++i) {
var div = divs[i];
div.className = 'debuggerHideText';
}
}
function selectFont(fontName, show) {
var divs = document.querySelectorAll('div[' + fontAttribute + '=' +
fontName + ']');
for (var i = 0, ii = divs.length; i < ii; ++i) {
var div = divs[i];
div.className = show ? 'debuggerShowText' : 'debuggerHideText';
}
}
function textLayerClick(e) {
if (!e.target.dataset.fontName ||
e.target.tagName.toUpperCase() !== 'DIV') {
return;
}
var fontName = e.target.dataset.fontName;
var selects = document.getElementsByTagName('input');
for (var i = 0; i < selects.length; ++i) {
var select = selects[i];
if (select.dataset.fontName !== fontName) {
continue;
}
select.checked = !select.checked;
selectFont(fontName, select.checked);
select.scrollIntoView();
}
}
return {
// Properties/functions needed by PDFBug.
id: 'FontInspector',
name: 'Font Inspector',
panel: null,
manager: null,
init: function init() {
var panel = this.panel;
panel.setAttribute('style', 'padding: 5px;');
var tmp = document.createElement('button');
tmp.addEventListener('click', resetSelection);
tmp.textContent = 'Refresh';
panel.appendChild(tmp);
fonts = document.createElement('div');
panel.appendChild(fonts);
},
cleanup: function cleanup() {
fonts.textContent = '';
},
enabled: false,
get active() {
return active;
},
set active(value) {
active = value;
if (active) {
document.body.addEventListener('click', textLayerClick, true);
resetSelection();
} else {
document.body.removeEventListener('click', textLayerClick, true);
removeSelection();
}
},
// FontInspector specific functions.
fontAdded: function fontAdded(fontObj, url) {
function properties(obj, list) {
var moreInfo = document.createElement('table');
for (var i = 0; i < list.length; i++) {
var tr = document.createElement('tr');
var td1 = document.createElement('td');
td1.textContent = list[i];
tr.appendChild(td1);
var td2 = document.createElement('td');
td2.textContent = obj[list[i]].toString();
tr.appendChild(td2);
moreInfo.appendChild(tr);
}
return moreInfo;
}
var moreInfo = properties(fontObj, ['name', 'type']);
var fontName = fontObj.loadedName;
var font = document.createElement('div');
var name = document.createElement('span');
name.textContent = fontName;
var download = document.createElement('a');
if (url) {
url = /url\(['"]?([^\)"']+)/.exec(url);
download.href = url[1];
} else if (fontObj.data) {
url = URL.createObjectURL(new Blob([fontObj.data], {
type: fontObj.mimeType
}));
download.href = url;
}
download.textContent = 'Download';
var logIt = document.createElement('a');
logIt.href = '';
logIt.textContent = 'Log';
logIt.addEventListener('click', function(event) {
event.preventDefault();
console.log(fontObj);
});
var select = document.createElement('input');
select.setAttribute('type', 'checkbox');
select.dataset.fontName = fontName;
select.addEventListener('click', (function(select, fontName) {
return (function() {
selectFont(fontName, select.checked);
});
})(select, fontName));
font.appendChild(select);
font.appendChild(name);
font.appendChild(document.createTextNode(' '));
font.appendChild(download);
font.appendChild(document.createTextNode(' '));
font.appendChild(logIt);
font.appendChild(moreInfo);
fonts.appendChild(font);
// Somewhat of a hack, should probably add a hook for when the text layer
// is done rendering.
setTimeout(function() {
if (this.active) {
resetSelection();
}
}.bind(this), 2000);
}
};
})();
// Manages all the page steppers.
var StepperManager = (function StepperManagerClosure() {
var steppers = [];
var stepperDiv = null;
var stepperControls = null;
var stepperChooser = null;
var breakPoints = {};
return {
// Properties/functions needed by PDFBug.
id: 'Stepper',
name: 'Stepper',
panel: null,
manager: null,
init: function init() {
var self = this;
this.panel.setAttribute('style', 'padding: 5px;');
stepperControls = document.createElement('div');
stepperChooser = document.createElement('select');
stepperChooser.addEventListener('change', function(event) {
self.selectStepper(this.value);
});
stepperControls.appendChild(stepperChooser);
stepperDiv = document.createElement('div');
this.panel.appendChild(stepperControls);
this.panel.appendChild(stepperDiv);
if (sessionStorage.getItem('pdfjsBreakPoints')) {
breakPoints = JSON.parse(sessionStorage.getItem('pdfjsBreakPoints'));
}
},
cleanup: function cleanup() {
stepperChooser.textContent = '';
stepperDiv.textContent = '';
steppers = [];
},
enabled: false,
active: false,
// Stepper specific functions.
create: function create(pageIndex) {
var debug = document.createElement('div');
debug.id = 'stepper' + pageIndex;
debug.setAttribute('hidden', true);
debug.className = 'stepper';
stepperDiv.appendChild(debug);
var b = document.createElement('option');
b.textContent = 'Page ' + (pageIndex + 1);
b.value = pageIndex;
stepperChooser.appendChild(b);
var initBreakPoints = breakPoints[pageIndex] || [];
var stepper = new Stepper(debug, pageIndex, initBreakPoints);
steppers.push(stepper);
if (steppers.length === 1) {
this.selectStepper(pageIndex, false);
}
return stepper;
},
selectStepper: function selectStepper(pageIndex, selectPanel) {
var i;
pageIndex = pageIndex | 0;
if (selectPanel) {
this.manager.selectPanel(this);
}
for (i = 0; i < steppers.length; ++i) {
var stepper = steppers[i];
if (stepper.pageIndex === pageIndex) {
stepper.panel.removeAttribute('hidden');
} else {
stepper.panel.setAttribute('hidden', true);
}
}
var options = stepperChooser.options;
for (i = 0; i < options.length; ++i) {
var option = options[i];
option.selected = (option.value | 0) === pageIndex;
}
},
saveBreakPoints: function saveBreakPoints(pageIndex, bps) {
breakPoints[pageIndex] = bps;
sessionStorage.setItem('pdfjsBreakPoints', JSON.stringify(breakPoints));
}
};
})();
// The stepper for each page's IRQueue.
var Stepper = (function StepperClosure() {
// Shorter way to create element and optionally set textContent.
function c(tag, textContent) {
var d = document.createElement(tag);
if (textContent) {
d.textContent = textContent;
}
return d;
}
var opMap = null;
function simplifyArgs(args) {
if (typeof args === 'string') {
var MAX_STRING_LENGTH = 75;
return args.length <= MAX_STRING_LENGTH ? args :
args.substr(0, MAX_STRING_LENGTH) + '...';
}
if (typeof args !== 'object' || args === null) {
return args;
}
if ('length' in args) { // array
var simpleArgs = [], i, ii;
var MAX_ITEMS = 10;
for (i = 0, ii = Math.min(MAX_ITEMS, args.length); i < ii; i++) {
simpleArgs.push(simplifyArgs(args[i]));
}
if (i < args.length) {
simpleArgs.push('...');
}
return simpleArgs;
}
var simpleObj = {};
for (var key in args) {
simpleObj[key] = simplifyArgs(args[key]);
}
return simpleObj;
}
function Stepper(panel, pageIndex, initialBreakPoints) {
this.panel = panel;
this.breakPoint = 0;
this.nextBreakPoint = null;
this.pageIndex = pageIndex;
this.breakPoints = initialBreakPoints;
this.currentIdx = -1;
this.operatorListIdx = 0;
}
Stepper.prototype = {
init: function init() {
var panel = this.panel;
var content = c('div', 'c=continue, s=step');
var table = c('table');
content.appendChild(table);
table.cellSpacing = 0;
var headerRow = c('tr');
table.appendChild(headerRow);
headerRow.appendChild(c('th', 'Break'));
headerRow.appendChild(c('th', 'Idx'));
headerRow.appendChild(c('th', 'fn'));
headerRow.appendChild(c('th', 'args'));
panel.appendChild(content);
this.table = table;
if (!opMap) {
opMap = Object.create(null);
for (var key in PDFJS.OPS) {
opMap[PDFJS.OPS[key]] = key;
}
}
},
updateOperatorList: function updateOperatorList(operatorList) {
var self = this;
function cboxOnClick() {
var x = +this.dataset.idx;
if (this.checked) {
self.breakPoints.push(x);
} else {
self.breakPoints.splice(self.breakPoints.indexOf(x), 1);
}
StepperManager.saveBreakPoints(self.pageIndex, self.breakPoints);
}
var MAX_OPERATORS_COUNT = 15000;
if (this.operatorListIdx > MAX_OPERATORS_COUNT) {
return;
}
var chunk = document.createDocumentFragment();
var operatorsToDisplay = Math.min(MAX_OPERATORS_COUNT,
operatorList.fnArray.length);
for (var i = this.operatorListIdx; i < operatorsToDisplay; i++) {
var line = c('tr');
line.className = 'line';
line.dataset.idx = i;
chunk.appendChild(line);
var checked = this.breakPoints.indexOf(i) !== -1;
var args = operatorList.argsArray[i] || [];
var breakCell = c('td');
var cbox = c('input');
cbox.type = 'checkbox';
cbox.className = 'points';
cbox.checked = checked;
cbox.dataset.idx = i;
cbox.onclick = cboxOnClick;
breakCell.appendChild(cbox);
line.appendChild(breakCell);
line.appendChild(c('td', i.toString()));
var fn = opMap[operatorList.fnArray[i]];
var decArgs = args;
if (fn === 'showText') {
var glyphs = args[0];
var newArgs = [];
var str = [];
for (var j = 0; j < glyphs.length; j++) {
var glyph = glyphs[j];
if (typeof glyph === 'object' && glyph !== null) {
str.push(glyph.fontChar);
} else {
if (str.length > 0) {
newArgs.push(str.join(''));
str = [];
}
newArgs.push(glyph); // null or number
}
}
if (str.length > 0) {
newArgs.push(str.join(''));
}
decArgs = [newArgs];
}
line.appendChild(c('td', fn));
line.appendChild(c('td', JSON.stringify(simplifyArgs(decArgs))));
}
if (operatorsToDisplay < operatorList.fnArray.length) {
line = c('tr');
var lastCell = c('td', '...');
lastCell.colspan = 4;
chunk.appendChild(lastCell);
}
this.operatorListIdx = operatorList.fnArray.length;
this.table.appendChild(chunk);
},
getNextBreakPoint: function getNextBreakPoint() {
this.breakPoints.sort(function(a, b) { return a - b; });
for (var i = 0; i < this.breakPoints.length; i++) {
if (this.breakPoints[i] > this.currentIdx) {
return this.breakPoints[i];
}
}
return null;
},
breakIt: function breakIt(idx, callback) {
StepperManager.selectStepper(this.pageIndex, true);
var self = this;
var dom = document;
self.currentIdx = idx;
var listener = function(e) {
switch (e.keyCode) {
case 83: // step
dom.removeEventListener('keydown', listener, false);
self.nextBreakPoint = self.currentIdx + 1;
self.goTo(-1);
callback();
break;
case 67: // continue
dom.removeEventListener('keydown', listener, false);
var breakPoint = self.getNextBreakPoint();
self.nextBreakPoint = breakPoint;
self.goTo(-1);
callback();
break;
}
};
dom.addEventListener('keydown', listener, false);
self.goTo(idx);
},
goTo: function goTo(idx) {
var allRows = this.panel.getElementsByClassName('line');
for (var x = 0, xx = allRows.length; x < xx; ++x) {
var row = allRows[x];
if ((row.dataset.idx | 0) === idx) {
row.style.backgroundColor = 'rgb(251,250,207)';
row.scrollIntoView();
} else {
row.style.backgroundColor = null;
}
}
}
};
return Stepper;
})();
var Stats = (function Stats() {
var stats = [];
function clear(node) {
while (node.hasChildNodes()) {
node.removeChild(node.lastChild);
}
}
function getStatIndex(pageNumber) {
for (var i = 0, ii = stats.length; i < ii; ++i) {
if (stats[i].pageNumber === pageNumber) {
return i;
}
}
return false;
}
return {
// Properties/functions needed by PDFBug.
id: 'Stats',
name: 'Stats',
panel: null,
manager: null,
init: function init() {
this.panel.setAttribute('style', 'padding: 5px;');
PDFJS.enableStats = true;
},
enabled: false,
active: false,
// Stats specific functions.
add: function(pageNumber, stat) {
if (!stat) {
return;
}
var statsIndex = getStatIndex(pageNumber);
if (statsIndex !== false) {
var b = stats[statsIndex];
this.panel.removeChild(b.div);
stats.splice(statsIndex, 1);
}
var wrapper = document.createElement('div');
wrapper.className = 'stats';
var title = document.createElement('div');
title.className = 'title';
title.textContent = 'Page: ' + pageNumber;
var statsDiv = document.createElement('div');
statsDiv.textContent = stat.toString();
wrapper.appendChild(title);
wrapper.appendChild(statsDiv);
stats.push({ pageNumber: pageNumber, div: wrapper });
stats.sort(function(a, b) { return a.pageNumber - b.pageNumber; });
clear(this.panel);
for (var i = 0, ii = stats.length; i < ii; ++i) {
this.panel.appendChild(stats[i].div);
}
},
cleanup: function () {
stats = [];
clear(this.panel);
}
};
})();
// Manages all the debugging tools.
var PDFBug = (function PDFBugClosure() {
var panelWidth = 300;
var buttons = [];
var activePanel = null;
return {
tools: [
FontInspector,
StepperManager,
Stats
],
enable: function(ids) {
var all = false, tools = this.tools;
if (ids.length === 1 && ids[0] === 'all') {
all = true;
}
for (var i = 0; i < tools.length; ++i) {
var tool = tools[i];
if (all || ids.indexOf(tool.id) !== -1) {
tool.enabled = true;
}
}
if (!all) {
// Sort the tools by the order they are enabled.
tools.sort(function(a, b) {
var indexA = ids.indexOf(a.id);
indexA = indexA < 0 ? tools.length : indexA;
var indexB = ids.indexOf(b.id);
indexB = indexB < 0 ? tools.length : indexB;
return indexA - indexB;
});
}
},
init: function init() {
/*
* Basic Layout:
* PDFBug
* Controls
* Panels
* Panel
* Panel
* ...
*/
var ui = document.createElement('div');
ui.id = 'PDFBug';
var controls = document.createElement('div');
controls.setAttribute('class', 'controls');
ui.appendChild(controls);
var panels = document.createElement('div');
panels.setAttribute('class', 'panels');
ui.appendChild(panels);
var container = document.getElementById('viewerContainer');
container.appendChild(ui);
container.style.right = panelWidth + 'px';
// Initialize all the debugging tools.
var tools = this.tools;
var self = this;
for (var i = 0; i < tools.length; ++i) {
var tool = tools[i];
var panel = document.createElement('div');
var panelButton = document.createElement('button');
panelButton.textContent = tool.name;
panelButton.addEventListener('click', (function(selected) {
return function(event) {
event.preventDefault();
self.selectPanel(selected);
};
})(i));
controls.appendChild(panelButton);
panels.appendChild(panel);
tool.panel = panel;
tool.manager = this;
if (tool.enabled) {
tool.init();
} else {
panel.textContent = tool.name + ' is disabled. To enable add ' +
' "' + tool.id + '" to the pdfBug parameter ' +
'and refresh (seperate multiple by commas).';
}
buttons.push(panelButton);
}
this.selectPanel(0);
},
cleanup: function cleanup() {
for (var i = 0, ii = this.tools.length; i < ii; i++) {
if (this.tools[i].enabled) {
this.tools[i].cleanup();
}
}
},
selectPanel: function selectPanel(index) {
if (typeof index !== 'number') {
index = this.tools.indexOf(index);
}
if (index === activePanel) {
return;
}
activePanel = index;
var tools = this.tools;
for (var j = 0; j < tools.length; ++j) {
if (j === index) {
buttons[j].setAttribute('class', 'active');
tools[j].active = true;
tools[j].panel.removeAttribute('hidden');
} else {
buttons[j].setAttribute('class', '');
tools[j].active = false;
tools[j].panel.setAttribute('hidden', 'true');
}
}
}
};
})();
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>images</string> </value> <value> <string></string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
<svg width="12" height="13" viewBox="0 0 12 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.375 7.625V11.875C5.375 12.0408 5.44085 12.1997 5.55806 12.3169C5.67527 12.4342 5.83424 12.5 6 12.5C6.16576 12.5 6.32473 12.4342 6.44194 12.3169C6.55915 12.1997 6.625 12.0408 6.625 11.875V7.625L7.125 7.125H11.375C11.5408 7.125 11.6997 7.05915 11.8169 6.94194C11.9342 6.82473 12 6.66576 12 6.5C12 6.33424 11.9342 6.17527 11.8169 6.05806C11.6997 5.94085 11.5408 5.875 11.375 5.875H7.125L6.625 5.375V1.125C6.625 0.95924 6.55915 0.800269 6.44194 0.683058C6.32473 0.565848 6.16576 0.5 6 0.5C5.83424 0.5 5.67527 0.565848 5.55806 0.683058C5.44085 0.800269 5.375 0.95924 5.375 1.125V5.375L4.875 5.875H0.625C0.45924 5.875 0.300269 5.94085 0.183058 6.05806C0.065848 6.17527 0 6.33424 0 6.5C0 6.66576 0.065848 6.82473 0.183058 6.94194C0.300269 7.05915 0.45924 7.125 0.625 7.125H4.762L5.375 7.625Z" fill="black"/>
</svg>
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
<dictionary> <dictionary>
<item> <item>
<key> <string>__name__</string> </key> <key> <string>__name__</string> </key>
<value> <string>grabbing.cur</string> </value> <value> <string>altText_add.svg</string> </value>
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>image/x-win-bitmap</string> </value> <value> <string>image/svg+xml</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
<svg width="12" height="13" viewBox="0 0 12 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 0.5C5.21207 0.5 4.43185 0.655195 3.7039 0.956723C2.97595 1.25825 2.31451 1.70021 1.75736 2.25736C1.20021 2.81451 0.758251 3.47595 0.456723 4.2039C0.155195 4.93185 0 5.71207 0 6.5C0 7.28793 0.155195 8.06815 0.456723 8.7961C0.758251 9.52405 1.20021 10.1855 1.75736 10.7426C2.31451 11.2998 2.97595 11.7417 3.7039 12.0433C4.43185 12.3448 5.21207 12.5 6 12.5C7.5913 12.5 9.11742 11.8679 10.2426 10.7426C11.3679 9.61742 12 8.0913 12 6.5C12 4.9087 11.3679 3.38258 10.2426 2.25736C9.11742 1.13214 7.5913 0.5 6 0.5ZM5.06 8.9L2.9464 6.7856C2.85273 6.69171 2.80018 6.56446 2.80033 6.43183C2.80048 6.29921 2.85331 6.17207 2.9472 6.0784C3.04109 5.98473 3.16834 5.93218 3.30097 5.93233C3.43359 5.93248 3.56073 5.98531 3.6544 6.0792L5.3112 7.7368L8.3464 4.7008C8.44109 4.6109 8.56715 4.56153 8.69771 4.56322C8.82827 4.56492 8.95301 4.61754 9.04534 4.70986C9.13766 4.80219 9.19028 4.92693 9.19198 5.05749C9.19367 5.18805 9.1443 5.31411 9.0544 5.4088L5.5624 8.9H5.06Z" fill="#FBFBFE"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>altText_done.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<!-- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="40" width="40">
<path d="M9 3.5a1.5 1.5 0 0 0-3-.001v7.95C6 12.83 7.12 14 8.5 14s2.5-1.17 2.5-2.55V5.5a.5.5 0 0 1 1 0v6.03C11.955 13.427 10.405 15 8.5 15S5.044 13.426 5 11.53V3.5a2.5 2.5 0 0 1 5 0v7.003a1.5 1.5 0 0 1-3-.003v-5a.5.5 0 0 1 1 0v5a.5.5 0 0 0 1 0Z"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>annotation-paperclip.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<!-- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="40" width="40">
<path d="M8.156 12.5a.99.99 0 0 0 .707-.294l.523-2.574L10.5 8.499l1.058-1.04 2.65-.601a.996.996 0 0 0 0-1.414l-3.657-3.658a.996.996 0 0 0-1.414 0l-.523 2.576L7.5 5.499 6.442 6.535l-2.65.6a.996.996 0 0 0 0 1.413l3.657 3.658a.999.999 0 0 0 .707.295z"/>
<path d="M9.842.996c-.386 0-.77.146-1.06.44a.5.5 0 0 0-.136.251l-.492 2.43-1.008 1.03-.953.933-2.511.566a.5.5 0 0 0-.243.133 1.505 1.505 0 0 0-.002 2.123l1.477 1.477-2.768 2.767a.5.5 0 0 0 0 .707.5.5 0 0 0 .708 0l2.767-2.767 1.475 1.474a1.494 1.494 0 0 0 2.123-.002.5.5 0 0 0 .135-.254l.492-2.427 1.008-1.024.953-.937 2.511-.57a.5.5 0 0 0 .243-.132c.586-.58.583-1.543.002-2.125l-3.659-3.656A1.501 1.501 0 0 0 9.842.996Zm.05 1.025a.394.394 0 0 1 .305.12l3.658 3.657c.18.18.141.432.002.627l-2.41.545a.5.5 0 0 0-.24.131L10.15 8.142a.5.5 0 0 0-.007.006L9.029 9.283a.5.5 0 0 0-.133.25l-.48 2.36c-.082.053-.165.109-.26.109a.492.492 0 0 1-.353-.149L4.145 8.195c-.18-.18-.141-.432-.002-.627l2.41-.545a.5.5 0 0 0 .238-.13L7.85 5.857a.5.5 0 0 0 .007-.008l1.114-1.138a.5.5 0 0 0 .133-.25l.472-2.323a.619.619 0 0 1 .317-.117Z"/>
</svg>
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
<dictionary> <dictionary>
<item> <item>
<key> <string>__name__</string> </key> <key> <string>__name__</string> </key>
<value> <string>l10n.js</string> </value> <value> <string>annotation-pushpin.svg</string> </value>
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value> <value> <string>image/svg+xml</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>l10n.js</string> </value> <value> <string></string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 2.75H12.5V2.25V1V0.5H12H10.358C9.91165 0.5 9.47731 0.625661 9.09989 0.860442L9.09886 0.861087L8 1.54837L6.89997 0.860979L6.89911 0.860443C6.5218 0.625734 6.08748 0.5 5.642 0.5H4H3.5V1V2.25V2.75H4H5.642C5.66478 2.75 5.6885 2.75641 5.71008 2.76968C5.71023 2.76977 5.71038 2.76986 5.71053 2.76995L6.817 3.461C6.81704 3.46103 6.81709 3.46105 6.81713 3.46108C6.81713 3.46108 6.81713 3.46108 6.81714 3.46109C6.8552 3.48494 6.876 3.52285 6.876 3.567V8V12.433C6.876 12.4771 6.85523 12.515 6.81722 12.5389C6.81715 12.5389 6.81707 12.539 6.817 12.539L5.70953 13.23C5.70941 13.2301 5.70929 13.2302 5.70917 13.2303C5.68723 13.2438 5.6644 13.25 5.641 13.25H4H3.5V13.75V15V15.5H4H5.642C6.08835 15.5 6.52269 15.3743 6.90011 15.1396L6.90086 15.1391L8 14.4526L9.10003 15.14L9.10089 15.1406C9.47831 15.3753 9.91265 15.501 10.359 15.501H12H12.5V15.001V13.751V13.251H12H10.358C10.3352 13.251 10.3115 13.2446 10.2899 13.2313C10.2897 13.2312 10.2896 13.2311 10.2895 13.231L9.183 12.54C9.18298 12.54 9.18295 12.54 9.18293 12.54C9.18291 12.5399 9.18288 12.5399 9.18286 12.5399C9.14615 12.5169 9.125 12.4797 9.125 12.434V8V3.567C9.125 3.52266 9.14603 3.48441 9.18364 3.4606C9.18377 3.46052 9.1839 3.46043 9.18404 3.46035L10.2895 2.76995C10.2896 2.76985 10.2898 2.76975 10.2899 2.76966C10.3119 2.75619 10.3346 2.75 10.358 2.75H12Z" fill="black" stroke="white"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>cursor-editorFreeText.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.0189877 13.6645L0.612989 10.4635C0.687989 10.0545 0.884989 9.6805 1.18099 9.3825L9.98199 0.5805C10.756 -0.1925 12.015 -0.1945 12.792 0.5805L14.42 2.2085C15.194 2.9835 15.194 4.2435 14.42 5.0185L5.61599 13.8215C5.31999 14.1165 4.94599 14.3125 4.53799 14.3875L1.33599 14.9815C1.26599 14.9935 1.19799 15.0005 1.12999 15.0005C0.832989 15.0005 0.544988 14.8835 0.330988 14.6695C0.0679874 14.4055 -0.0490122 14.0305 0.0189877 13.6645Z" fill="white"/>
<path d="M0.0189877 13.6645L0.612989 10.4635C0.687989 10.0545 0.884989 9.6805 1.18099 9.3825L9.98199 0.5805C10.756 -0.1925 12.015 -0.1945 12.792 0.5805L14.42 2.2085C15.194 2.9835 15.194 4.2435 14.42 5.0185L5.61599 13.8215C5.31999 14.1165 4.94599 14.3125 4.53799 14.3875L1.33599 14.9815C1.26599 14.9935 1.19799 15.0005 1.12999 15.0005C0.832989 15.0005 0.544988 14.8835 0.330988 14.6695C0.0679874 14.4055 -0.0490122 14.0305 0.0189877 13.6645ZM12.472 5.1965L13.632 4.0365L13.631 3.1885L11.811 1.3675L10.963 1.3685L9.80299 2.5285L12.472 5.1965ZM4.31099 13.1585C4.47099 13.1285 4.61799 13.0515 4.73399 12.9345L11.587 6.0815L8.91899 3.4135L2.06599 10.2655C1.94899 10.3835 1.87199 10.5305 1.84099 10.6915L1.36699 13.2485L1.75199 13.6335L4.31099 13.1585Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>cursor-editorInk.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>findbarButton-next-rtl.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>findbarButton-next.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.999 8.352L5.534 13.818C5.41551 13.9303 5.25786 13.9918 5.09466 13.9895C4.93146 13.9872 4.77561 13.9212 4.66033 13.8057C4.54505 13.6902 4.47945 13.5342 4.47752 13.3709C4.47559 13.2077 4.53748 13.0502 4.65 12.932L9.585 7.998L4.651 3.067C4.53862 2.94864 4.47691 2.79106 4.47903 2.62786C4.48114 2.46466 4.54692 2.30874 4.66233 2.19333C4.77774 2.07792 4.93366 2.01215 5.09686 2.01003C5.26006 2.00792 5.41763 2.06962 5.536 2.182L11 7.647L10.999 8.352Z" fill="black"/>
</svg>
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
<dictionary> <dictionary>
<item> <item>
<key> <string>__name__</string> </key> <key> <string>__name__</string> </key>
<value> <string>debugger.js</string> </value> <value> <string>findbarButton-next.svg</string> </value>
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value> <value> <string>image/svg+xml</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>debugger.js</string> </value> <value> <string></string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>findbarButton-previous-rtl.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>findbarButton-previous.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.001 8.352L10.466 13.818C10.5845 13.9303 10.7421 13.9918 10.9053 13.9895C11.0685 13.9872 11.2244 13.9212 11.3397 13.8057C11.4549 13.6902 11.5205 13.5342 11.5225 13.3709C11.5244 13.2077 11.4625 13.0502 11.35 12.932L6.416 7.999L11.349 3.067C11.4614 2.94864 11.5231 2.79106 11.521 2.62786C11.5189 2.46466 11.4531 2.30874 11.3377 2.19333C11.2223 2.07792 11.0663 2.01215 10.9031 2.01003C10.7399 2.00792 10.5824 2.06962 10.464 2.182L5 7.647L5.001 8.352Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>findbarButton-previous.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.969 10.059C17.262 9.766 17.737 9.766 18.03 10.059C18.323 10.352 18.323 10.827 18.03 11.12L12.15 17H11.35L5.46896 11.12C5.17596 10.827 5.17596 10.352 5.46896 10.059C5.76196 9.766 6.23696 9.766 6.52996 10.059L11 14.529V2.75C11 2.336 11.336 2 11.75 2C12.164 2 12.5 2.336 12.499 2.75V14.529L16.969 10.059ZM4.98193 19.7L5.78193 20.5H17.7169L18.5169 19.7V17.75C18.5169 17.336 18.8529 17 19.2669 17C19.6809 17 20.0169 17.336 20.0169 17.75V19.5C20.0169 20.881 18.8979 22 17.5169 22H5.98193C4.60093 22 3.48193 20.881 3.48193 19.5V17.75C3.48193 17.336 3.81793 17 4.23193 17C4.64593 17 4.98193 17.336 4.98193 17.75V19.7Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>gv-toolbarButton-download.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 4.5H6.5V7H4V4.5Z" fill="black"/>
<path d="M6.5 10.5H4V13H6.5V10.5Z" fill="black"/>
<path d="M13.25 10.5H10.75V13H13.25V10.5Z" fill="black"/>
<path d="M17.5 10.5H20V13H17.5V10.5Z" fill="black"/>
<path d="M6.5 16.5H4V19H6.5V16.5Z" fill="black"/>
<path d="M10.75 16.5H13.25V19H10.75V16.5Z" fill="black"/>
<path d="M20 16.5H17.5V19H20V16.5Z" fill="black"/>
<path d="M13.25 4.5H10.75V7H13.25V4.5Z" fill="black"/>
<path d="M17.5 4.5H20V7H17.5V4.5Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>gv-toolbarButton-openinapp.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16"
fill="rgba(255,255,255,1)" style="animation:spinLoadingIcon 1s steps(12,end)
infinite"><style>@keyframes
spinLoadingIcon{to{transform:rotate(360deg)}}</style><path
d="M7 3V1s0-1 1-1 1 1 1 1v2s0 1-1 1-1-1-1-1z"/><path d="M4.63
4.1l-1-1.73S3.13 1.5 4 1c.87-.5 1.37.37 1.37.37l1 1.73s.5.87-.37
1.37c-.87.57-1.37-.37-1.37-.37z" fill-opacity=".93"/><path
d="M3.1 6.37l-1.73-1S.5 4.87 1 4c.5-.87 1.37-.37 1.37-.37l1.73 1s.87.5.37
1.37c-.5.87-1.37.37-1.37.37z" fill-opacity=".86"/><path d="M3
9H1S0 9 0 8s1-1 1-1h2s1 0 1 1-1 1-1 1z" fill-opacity=".79"/><path d="M4.1 11.37l-1.73 1S1.5 12.87 1
12c-.5-.87.37-1.37.37-1.37l1.73-1s.87-.5 1.37.37c.5.87-.37 1.37-.37 1.37z"
fill-opacity=".72"/><path d="M3.63 13.56l1-1.73s.5-.87
1.37-.37c.87.5.37 1.37.37 1.37l-1 1.73s-.5.87-1.37.37c-.87-.5-.37-1.37-.37-1.37z"
fill-opacity=".65"/><path d="M7 15v-2s0-1 1-1 1 1 1 1v2s0 1-1
1-1-1-1-1z" fill-opacity=".58"/><path d="M10.63
14.56l-1-1.73s-.5-.87.37-1.37c.87-.5 1.37.37 1.37.37l1 1.73s.5.87-.37
1.37c-.87.5-1.37-.37-1.37-.37z" fill-opacity=".51"/><path
d="M13.56 12.37l-1.73-1s-.87-.5-.37-1.37c.5-.87 1.37-.37 1.37-.37l1.73 1s.87.5.37
1.37c-.5.87-1.37.37-1.37.37z" fill-opacity=".44"/><path d="M15
9h-2s-1 0-1-1 1-1 1-1h2s1 0 1 1-1 1-1 1z" fill-opacity=".37"/><path d="M14.56 5.37l-1.73
1s-.87.5-1.37-.37c-.5-.87.37-1.37.37-1.37l1.73-1s.87-.5 1.37.37c.5.87-.37 1.37-.37
1.37z" fill-opacity=".3"/><path d="M9.64 3.1l.98-1.66s.5-.874
1.37-.37c.87.5.37 1.37.37 1.37l-1 1.73s-.5.87-1.37.37c-.87-.5-.37-1.37-.37-1.37z"
fill-opacity=".23"/></svg>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>loading-dark.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<ZopeData> <ZopeData>
<record id="1" aka="AAAAAAAAAAE="> <record id="1" aka="AAAAAAAAAAE=">
<pickle> <pickle>
<global name="Image" module="OFS.Image"/> <global name="File" module="OFS.Image"/>
</pickle> </pickle>
<pickle> <pickle>
<dictionary> <dictionary>
...@@ -14,10 +14,6 @@ ...@@ -14,10 +14,6 @@
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>image/gif</string> </value> <value> <string>image/gif</string> </value>
</item> </item>
<item>
<key> <string>height</string> </key>
<value> <int>24</int> </value>
</item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
...@@ -26,10 +22,6 @@ ...@@ -26,10 +22,6 @@
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string></string> </value> <value> <string></string> </value>
</item> </item>
<item>
<key> <string>width</string> </key>
<value> <int>24</int> </value>
</item>
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>loading-small.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>17</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" style="animation:spinLoadingIcon 1s steps(12,end) infinite"><style>@keyframes spinLoadingIcon{to{transform:rotate(360deg)}}</style><path d="M7 3V1s0-1 1-1 1 1 1 1v2s0 1-1 1-1-1-1-1z"/><path d="M4.63 4.1l-1-1.73S3.13 1.5 4 1c.87-.5 1.37.37 1.37.37l1 1.73s.5.87-.37 1.37c-.87.57-1.37-.37-1.37-.37z" fill-opacity=".93"/><path d="M3.1 6.37l-1.73-1S.5 4.87 1 4c.5-.87 1.37-.37 1.37-.37l1.73 1s.87.5.37 1.37c-.5.87-1.37.37-1.37.37z" fill-opacity=".86"/><path d="M3 9H1S0 9 0 8s1-1 1-1h2s1 0 1 1-1 1-1 1z" fill-opacity=".79"/><path d="M4.1 11.37l-1.73 1S1.5 12.87 1 12c-.5-.87.37-1.37.37-1.37l1.73-1s.87-.5 1.37.37c.5.87-.37 1.37-.37 1.37z" fill-opacity=".72"/><path d="M3.63 13.56l1-1.73s.5-.87 1.37-.37c.87.5.37 1.37.37 1.37l-1 1.73s-.5.87-1.37.37c-.87-.5-.37-1.37-.37-1.37z" fill-opacity=".65"/><path d="M7 15v-2s0-1 1-1 1 1 1 1v2s0 1-1 1-1-1-1-1z" fill-opacity=".58"/><path d="M10.63 14.56l-1-1.73s-.5-.87.37-1.37c.87-.5 1.37.37 1.37.37l1 1.73s.5.87-.37 1.37c-.87.5-1.37-.37-1.37-.37z" fill-opacity=".51"/><path d="M13.56 12.37l-1.73-1s-.87-.5-.37-1.37c.5-.87 1.37-.37 1.37-.37l1.73 1s.87.5.37 1.37c-.5.87-1.37.37-1.37.37z" fill-opacity=".44"/><path d="M15 9h-2s-1 0-1-1 1-1 1-1h2s1 0 1 1-1 1-1 1z" fill-opacity=".37"/><path d="M14.56 5.37l-1.73 1s-.87.5-1.37-.37c-.5-.87.37-1.37.37-1.37l1.73-1s.87-.5 1.37.37c.5.87-.37 1.37-.37 1.37z" fill-opacity=".3"/><path d="M9.64 3.1l.98-1.66s.5-.874 1.37-.37c.87.5.37 1.37.37 1.37l-1 1.73s-.5.87-1.37.37c-.87-.5-.37-1.37-.37-1.37z" fill-opacity=".23"/></svg>
\ No newline at end of file
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
<dictionary> <dictionary>
<item> <item>
<key> <string>__name__</string> </key> <key> <string>__name__</string> </key>
<value> <string>grab.cur</string> </value> <value> <string>loading.svg</string> </value>
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>image/x-win-bitmap</string> </value> <value> <string>image/svg+xml</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-documentProperties.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8 1.5C4.41015 1.5 1.5 4.41015 1.5 8C1.5 11.5899 4.41015 14.5 8 14.5C11.5899 14.5 14.5 11.5899 14.5 8C14.5 4.41015 11.5899 1.5 8 1.5ZM0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8ZM8.75 4V5.5H7.25V4H8.75ZM8.75 12V7H7.25V12H8.75Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-documentProperties.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-firstPage.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14 3.5H2V5H14V3.5ZM8 8.811L12.939 13.75L14.001 12.689L8.531 7.219C8.238 6.926 7.763 6.926 7.47 7.219L2 12.689L3.061 13.75L8 8.811Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-firstPage.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-handTool.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.75 2.125C7.75 1.78021 8.03021 1.5 8.375 1.5C8.71979 1.5 9 1.78021 9 2.125V3.125V8H10.5V3.125C10.5 2.78021 10.7802 2.5 11.125 2.5C11.4698 2.5 11.75 2.78021 11.75 3.125V4.625V8H13.25V4.625C13.25 4.28021 13.5302 4 13.875 4C14.2198 4 14.5 4.28021 14.5 4.625V12.0188L13.3802 13.6628C13.2954 13.7872 13.25 13.9344 13.25 14.085V16H14.75V14.3162L15.8698 12.6722C15.9546 12.5478 16 12.4006 16 12.25V4.625C16 3.45179 15.0482 2.5 13.875 2.5C13.6346 2.5 13.4035 2.53996 13.188 2.6136C12.959 1.68724 12.1219 1 11.125 1C10.8235 1 10.5366 1.06286 10.2768 1.17618C9.9281 0.478968 9.20726 0 8.375 0C7.54274 0 6.8219 0.478968 6.47323 1.17618C6.21337 1.06286 5.9265 1 5.625 1C4.45179 1 3.5 1.95179 3.5 3.125V7.25317C2.66504 6.54282 1.41035 6.58199 0.621672 7.37067C-0.208221 8.20056 -0.208221 9.54644 0.621672 10.3763L0.62188 10.3765L5.499 15.2498V16H6.999V14.939C6.999 14.74 6.9199 14.5491 6.77912 14.4085L1.68233 9.31567C1.43823 9.07156 1.43823 8.67544 1.68233 8.43133C1.92644 8.18722 2.32257 8.18722 2.56667 8.43133L3.71967 9.58433C3.93417 9.79883 4.25676 9.863 4.53701 9.74691C4.81727 9.63082 5 9.35735 5 9.054V3.125C5 2.78021 5.28022 2.5 5.625 2.5C5.96921 2.5 6.24906 2.77927 6.25 3.12326V8H7.75L7.75 3.125L7.75 3.12178V2.125Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-handTool.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-lastPage.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8 8.189L12.939 3.25L14 4.311L8.531 9.781C8.238 10.074 7.763 10.074 7.47 9.781L2 4.311L3.061 3.25L8 8.189ZM14 13.5V12H2V13.5H14Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-lastPage.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-rotateCcw.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.4105 4.83612L4.77001 6.19601C5.06701 6.49201 4.85701 7.00001 4.43701 7.00001H0.862006C0.602006 7.00001 0.391006 6.78901 0.391006 6.52901V2.95401C0.391006 2.53401 0.899006 2.32401 1.19601 2.62101L2.32796 3.75328C3.67958 1.78973 5.9401 0.5 8.5 0.5C12.636 0.5 16 3.864 16 8C16 12.136 12.636 15.5 8.5 15.5C4.704 15.5 1.566 12.663 1.075 9H2.59C3.068 11.833 5.532 14 8.5 14C11.809 14 14.5 11.309 14.5 8C14.5 4.691 11.809 2 8.5 2C6.35262 2 4.46893 3.13503 3.4105 4.83612Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-rotateCcw.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-rotateCw.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.5895 4.83613L11.23 6.19601C10.933 6.49201 11.143 7.00001 11.563 7.00001H15.138C15.398 7.00001 15.609 6.78901 15.609 6.52901V2.95401C15.609 2.53401 15.101 2.32401 14.804 2.62101L13.672 3.75328C12.3204 1.78973 10.0599 0.5 7.5 0.5C3.364 0.5 0 3.864 0 8C0 12.136 3.364 15.5 7.5 15.5C11.296 15.5 14.434 12.663 14.925 9H13.41C12.932 11.833 10.468 14 7.5 14C4.191 14 1.5 11.309 1.5 8C1.5 4.691 4.191 2 7.5 2C9.64738 2 11.5311 3.13503 12.5895 4.83613Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-rotateCw.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3 3.78C3 2.7621 2.13279 2.11834 1.25 2.01476V2H1V3.5C1.18133 3.5 1.32279 3.5609 1.40708 3.63029C1.48961 3.69823 1.5 3.75458 1.5 3.78V11.72C1.5 11.7454 1.48961 11.8018 1.40708 11.8697C1.32279 11.9391 1.18133 12 1 12V13.5H1.25V13.4852C2.13279 13.3817 3 12.7379 3 11.72V3.78ZM10.5 4C10.5 3.72386 10.2761 3.5 10 3.5H6.5C6.22386 3.5 6 3.72386 6 4V11.5C6 11.7761 6.22386 12 6.5 12H10C10.2761 12 10.5 11.7761 10.5 11.5V4ZM10 2C11.1046 2 12 2.89543 12 4V11.5C12 12.6046 11.1046 13.5 10 13.5H6.5C5.39543 13.5 4.5 12.6046 4.5 11.5V4C4.5 2.89543 5.39543 2 6.5 2H10ZM15.5 2H15.25V2.01476C14.3672 2.11834 13.5 2.7621 13.5 3.78V11.72C13.5 12.7379 14.3672 13.3817 15.25 13.4852V13.5H15.5V12C15.3187 12 15.1772 11.9391 15.0929 11.8697C15.0104 11.8018 15 11.7454 15 11.72V3.78C15 3.75458 15.0104 3.69823 15.0929 3.63029C15.1772 3.5609 15.3187 3.5 15.5 3.5V2Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-scrollHorizontal.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.5 2C3.5 1.72421 3.72421 1.5 4 1.5H12C12.2758 1.5 12.5 1.72421 12.5 2V14C12.5 14.2758 12.2758 14.5 12 14.5H4C3.72421 14.5 3.5 14.2758 3.5 14V2ZM4 0C2.89579 0 2 0.895786 2 2V14C2 15.1042 2.89579 16 4 16H12C13.1042 16 14 15.1042 14 14V2C14 0.895786 13.1042 0 12 0H4ZM5.89301 6H7.25V10H5.89301C5.54301 10 5.36801 10.423 5.61501 10.67L7.72101 12.776C7.87401 12.929 8.12301 12.929 8.27601 12.776L10.383 10.669C10.63 10.422 10.455 9.99902 10.105 9.99902H8.75V6H10.106C10.456 6 10.632 5.577 10.383 5.331L8.27601 3.224C8.12301 3.071 7.87401 3.071 7.72101 3.224L5.61501 5.33C5.36801 5.577 5.54301 6 5.89301 6Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-scrollPage.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2 1V1.25H2.01476C2.11834 2.13279 2.7621 3 3.78 3H11.72C12.7379 3 13.3817 2.13279 13.4852 1.25H13.5V1H12C12 1.18133 11.9391 1.32279 11.8697 1.40708C11.8018 1.48961 11.7454 1.5 11.72 1.5H3.78C3.75458 1.5 3.69823 1.48961 3.63029 1.40708C3.5609 1.32279 3.5 1.18133 3.5 1H2ZM4 6C3.72386 6 3.5 6.22386 3.5 6.5V10C3.5 10.2761 3.72386 10.5 4 10.5H11.5C11.7761 10.5 12 10.2761 12 10V6.5C12 6.22386 11.7761 6 11.5 6H4ZM2 6.5C2 5.39543 2.89543 4.5 4 4.5H11.5C12.6046 4.5 13.5 5.39543 13.5 6.5V10C13.5 11.1046 12.6046 12 11.5 12H4C2.89543 12 2 11.1046 2 10V6.5ZM3.78 13.5C2.7621 13.5 2.11834 14.3672 2.01476 15.25H2V15.5H3.5C3.5 15.3187 3.5609 15.1772 3.63029 15.0929C3.69823 15.0104 3.75458 15 3.78 15H11.72C11.7454 15 11.8018 15.0104 11.8697 15.0929C11.9391 15.1772 12 15.3187 12 15.5H13.5V15.25H13.4852C13.3817 14.3672 12.7379 13.5 11.72 13.5H3.78Z" fill="black"/>
</svg>
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
<dictionary> <dictionary>
<item> <item>
<key> <string>__name__</string> </key> <key> <string>__name__</string> </key>
<value> <string>compatibility.js</string> </value> <value> <string>secondaryToolbarButton-scrollVertical.svg</string> </value>
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value> <value> <string>image/svg+xml</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>compatibility.js</string> </value> <value> <string></string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.5 1C2.5 1.27579 2.72421 1.5 3 1.5H5C5.27579 1.5 5.5 1.27579 5.5 1H7C7 2.10421 6.10421 3 5 3H3C1.89579 3 1 2.10421 1 1H2.5ZM2.5 6C2.5 5.72421 2.72421 5.5 3 5.5H5C5.27579 5.5 5.5 5.72421 5.5 6V10C5.5 10.2758 5.27579 10.5 5 10.5H3C2.72421 10.5 2.5 10.2758 2.5 10V6ZM3 4C1.89579 4 1 4.89579 1 6V10C1 11.1042 1.89579 12 3 12H5C6.10421 12 7 11.1042 7 10V6C7 4.89579 6.10421 4 5 4H3ZM10 6C10 5.72421 10.2242 5.5 10.5 5.5H12.5C12.7758 5.5 13 5.72421 13 6V10C13 10.2758 12.7758 10.5 12.5 10.5H10.5C10.2242 10.5 10 10.2758 10 10V6ZM10.5 4C9.39579 4 8.5 4.89579 8.5 6V10C8.5 11.1042 9.39579 12 10.5 12H12.5C13.6042 12 14.5 11.1042 14.5 10V6C14.5 4.89579 13.6042 4 12.5 4H10.5ZM3 14.5C2.72421 14.5 2.5 14.7242 2.5 15H1C1 13.8958 1.89579 13 3 13H5C6.10421 13 7 13.8958 7 15H5.5C5.5 14.7242 5.27579 14.5 5 14.5H3ZM10 15C10 14.7242 10.2242 14.5 10.5 14.5H12.5C12.7758 14.5 13 14.7242 13 15H14.5C14.5 13.8958 13.6042 13 12.5 13H10.5C9.39579 13 8.5 13.8958 8.5 15H10ZM10.5 1.5C10.2242 1.5 10 1.27579 10 1H8.5C8.5 2.10421 9.39579 3 10.5 3H12.5C13.6042 3 14.5 2.10421 14.5 1H13C13 1.27579 12.7758 1.5 12.5 1.5H10.5Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-scrollWrapped.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.371588 2.93131C-0.203366 1.33422 1.3342 -0.20335 2.93129 0.371603L2.93263 0.372085L12.0716 3.68171C12.0718 3.68178 12.0714 3.68163 12.0716 3.68171C13.4459 4.17758 13.8478 5.9374 12.8076 6.9776L11.8079 7.97727L14.6876 10.8569C15.4705 11.6398 15.4705 12.9047 14.6876 13.6876L13.6476 14.7276C12.8647 15.5105 11.5998 15.5105 10.8169 14.7276L7.93725 11.8479L6.97758 12.8076C5.93739 13.8478 4.17779 13.4465 3.68192 12.0722C3.68184 12.072 3.682 12.0724 3.68192 12.0722L0.371588 2.93131ZM1.78292 2.42323C1.78298 2.4234 1.78286 2.42305 1.78292 2.42323L5.09281 11.5629C5.21725 11.9082 5.65728 12.0066 5.91692 11.7469L7.93725 9.72661L11.8776 13.6669C12.0747 13.864 12.3898 13.864 12.5869 13.6669L13.6269 12.6269C13.824 12.4298 13.824 12.1147 13.6269 11.9176L9.68659 7.97727L11.7469 5.91694C12.0066 5.65729 11.9081 5.21727 11.5629 5.09283L11.5619 5.09245L2.42321 1.78293C2.42304 1.78287 2.42339 1.783 2.42321 1.78293C2.02067 1.63847 1.63846 2.02069 1.78292 2.42323Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-selectTool.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M2 3.5C1.72421 3.5 1.5 3.72421 1.5 4V12.5C1.5 12.7758 1.72421 13 2 13H7.25V3.5H2ZM14 13H8.75V3.5H14C14.2758 3.5 14.5 3.72421 14.5 4V12.5C14.5 12.7758 14.2758 13 14 13ZM0 4C0 2.89579 0.895786 2 2 2H14C15.1042 2 16 2.89579 16 4V12.5C16 13.6042 15.1042 14.5 14 14.5H2C0.895786 14.5 0 13.6042 0 12.5V4ZM10 6.5H11.5V7.5H10V9H11.5V10H10V11.5H12.25C12.6642 11.5 13 11.1642 13 10.75V5.75C13 5.33579 12.6642 5 12.25 5H10V6.5ZM4.5 6.5H3V5H5.25C5.66421 5 6 5.33579 6 5.75V7.75C6 8.03408 5.8395 8.29378 5.58541 8.42082L4.5 8.96353V10H6V11.5H3.75C3.33579 11.5 3 11.1642 3 10.75V8.5C3 8.21592 3.1605 7.95622 3.41459 7.82918L4.5 7.28647V6.5Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-spreadEven.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 1.5C3.72421 1.5 3.5 1.72421 3.5 2V14C3.5 14.2758 3.72421 14.5 4 14.5H12C12.2758 14.5 12.5 14.2758 12.5 14V2C12.5 1.72421 12.2758 1.5 12 1.5H4ZM2 2C2 0.895786 2.89579 0 4 0H12C13.1042 0 14 0.895786 14 2V14C14 15.1042 13.1042 16 12 16H4C2.89579 16 2 15.1042 2 14V2Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-spreadNone.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.5 4C1.5 3.72421 1.72421 3.5 2 3.5H7.25V13H2C1.72421 13 1.5 12.7758 1.5 12.5V4ZM8.75 13V3.5H14C14.2758 3.5 14.5 3.72421 14.5 4V12.5C14.5 12.7758 14.2758 13 14 13H8.75ZM2 2C0.895786 2 0 2.89579 0 4V12.5C0 13.6042 0.895786 14.5 2 14.5H14C15.1042 14.5 16 13.6042 16 12.5V4C16 2.89579 15.1042 2 14 2H2ZM4.75 5H3V6.5H4V11.5H5.5V5.75C5.5 5.33579 5.16421 5 4.75 5ZM10 6.5H11.5V7.28647L10.4146 7.82918C10.1605 7.95622 10 8.21592 10 8.5V10.75C10 11.1642 10.3358 11.5 10.75 11.5H13V10H11.5V8.96353L12.5854 8.42082C12.8395 8.29378 13 8.03408 13 7.75V5.75C13 5.33579 12.6642 5 12.25 5H10V6.5Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>secondaryToolbarButton-spreadOdd.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>shadow.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>19</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>19</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>texture.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>64</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>64</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-bookmark.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2 3.5C1.72421 3.5 1.5 3.72421 1.5 4V12C1.5 12.2758 1.72421 12.5 2 12.5H14C14.2758 12.5 14.5 12.2758 14.5 12V4C14.5 3.72421 14.2758 3.5 14 3.5H2ZM0 4C0 2.89579 0.895786 2 2 2H14C15.1042 2 16 2.89579 16 4V12C16 13.1042 15.1042 14 14 14H2C0.895786 14 0 13.1042 0 12V4ZM8.75 8.75H7.25V7.25H8.75V8.75ZM8.00001 4.625C5.91142 4.625 4.14736 5.94291 3.45159 7.77847L3.36761 8L3.45159 8.22153C4.14736 10.0571 5.91142 11.375 8.00001 11.375C10.0886 11.375 11.8527 10.0571 12.5484 8.22153L12.6324 8L12.5484 7.77847C11.8527 5.94291 10.0886 4.625 8.00001 4.625ZM8.00001 10.125C6.53912 10.125 5.28508 9.25455 4.71282 8C5.28508 6.74545 6.53912 5.875 8.00001 5.875C9.4609 5.875 10.7149 6.74545 11.2872 8C10.7149 9.25455 9.4609 10.125 8.00001 10.125Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-bookmark.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.803 4.74998V6.02436C10.803 6.39302 10.3571 6.57793 10.0967 6.31753L7.87716 4.098C7.71566 3.93649 7.71566 3.67434 7.87716 3.51283L10.0967 1.29329C10.3571 1.0329 10.8036 1.21722 10.8036 1.58588V3.24998H15V4.74998H10.803ZM8 1.24998H3V2.74998H6.5L8 1.24998ZM6.5 5.24998H3V6.74998H8L6.5 5.24998ZM3 13.25H15V14.75H3V13.25ZM6 9.24998H15V10.75H6V9.24998ZM1.5 5.24998H0V6.74998H1.5V5.24998ZM0 13.25H1.5V14.75H0V13.25ZM1.5 1.24998H0V2.74998H1.5V1.24998ZM3 9.24998H4.5V10.75H3V9.24998Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-currentOutlineItem.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-download.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.79407 7.31811H7.86307C7.41807 7.31811 7.19407 7.85711 7.50907 8.17211L10.1911 10.8541C10.3861 11.0491 10.7031 11.0491 10.8981 10.8541L13.5801 8.17211C13.8951 7.85711 13.6721 7.31811 13.2261 7.31811H11.2941V4.38211H11.2961V3.13211H11.2941V2.30811H9.79407V3.13211H9.79107V4.38211H9.79507V7.31811H9.79407Z" fill="black"/>
<path d="M14 3.13208H12.796V4.38208H14C14.345 4.38208 14.625 4.66208 14.625 5.00708V13.0071C14.625 13.3521 14.345 13.6321 14 13.6321H2C1.655 13.6321 1.375 13.3521 1.375 13.0071V3.00708C1.375 2.66208 1.655 2.38208 2 2.38208H5.643C5.82 2.38208 5.989 2.45808 6.108 2.58908L7.536 4.17508C7.654 4.30708 7.823 4.38208 8 4.38208H8.291V3.13208H8.278L7.036 1.75208C6.681 1.35808 6.173 1.13208 5.642 1.13208H2C0.966 1.13208 0.125 1.97308 0.125 3.00708V13.0071C0.125 14.0411 0.966 14.8821 2 14.8821H14C15.034 14.8821 15.875 14.0411 15.875 13.0071V5.00708C15.875 3.97308 15.034 3.13208 14 3.13208Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-download.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.625 2.942C8.625 2.725 8.735 2.527 8.918 2.412L10.026 1.72C10.126 1.658 10.24 1.625 10.358 1.625H12V0.375H10.358C10.006 0.375 9.663 0.474 9.364 0.66L8.256 1.353C8.161 1.412 8.081 1.488 8 1.562C7.918 1.488 7.839 1.412 7.744 1.353L6.635 0.66C6.336 0.474 5.993 0.375 5.642 0.375H4V1.625H5.642C5.759 1.625 5.874 1.658 5.974 1.72L7.082 2.412C7.266 2.527 7.376 2.725 7.376 2.942V8V13.058C7.376 13.275 7.266 13.473 7.082 13.588L5.973 14.28C5.873 14.342 5.759 14.375 5.641 14.375H4V15.625H5.642C5.994 15.625 6.337 15.526 6.636 15.34L7.744 14.648C7.84 14.588 7.919 14.512 8 14.439C8.081 14.512 8.161 14.588 8.256 14.648L9.365 15.341C9.664 15.527 10.007 15.626 10.359 15.626H12V14.376H10.358C10.241 14.376 10.126 14.343 10.026 14.281L8.918 13.589C8.734 13.474 8.625 13.276 8.625 13.059V8V2.942Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-editorFreeText.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.49913 12.6251C2.61913 12.6251 2.73913 12.6051 2.85713 12.5661L6.29013 11.4201L13.2891 4.4221C14.0191 3.6911 14.0191 2.5011 13.2891 1.7701L12.2291 0.710098C11.4971 -0.0199023 10.3091 -0.0199023 9.57713 0.710098L2.57813 7.7091L1.43313 11.1451C1.29813 11.5511 1.40213 11.9931 1.70513 12.2951C1.92113 12.5101 2.20613 12.6251 2.49913 12.6251ZM10.4611 1.5951C10.7031 1.3511 11.1021 1.3511 11.3441 1.5951L12.4051 2.6561C12.6491 2.8991 12.6491 3.2961 12.4051 3.5391L11.3401 4.6051L9.39513 2.6601L10.4611 1.5951ZM3.67013 8.3851L8.51013 3.5451L10.4541 5.4891L5.61413 10.3301L2.69713 11.3031L3.67013 8.3851Z" fill="black"/>
<path d="M14.8169 13.314L13.0229 13.862C12.3309 14.073 11.5909 14.111 10.8859 13.968L8.80391 13.551C7.58491 13.308 6.29791 13.48 5.18491 14.036C3.95291 14.652 2.46691 14.412 1.49191 13.436L1.44091 13.385L0.60791 14.321C1.46291 15.175 2.59991 15.625 3.75291 15.625C4.42891 15.625 5.10991 15.471 5.74391 15.153C6.60891 14.721 7.60891 14.586 8.55891 14.777L10.6409 15.194C11.5509 15.376 12.5009 15.327 13.3879 15.056L15.1819 14.508L14.8169 13.314Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-editorInk.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<!-- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity">
<path d="M3 1a2 2 0 0 0-2 2l0 10a2 2 0 0 0 2 2l10 0a2 2 0 0 0 2-2l0-10a2 2 0 0 0-2-2L3 1zm10.75 12.15-.6.6-10.3 0-.6-.6 0-10.3.6-.6 10.3 0 .6.6 0 10.3z"/>
<path d="m11 12-6 0a1 1 0 0 1-1-1l0-1.321a.75.75 0 0 1 .218-.529L6.35 7.005a.75.75 0 0 1 1.061-.003l2.112 2.102.612-.577a.75.75 0 0 1 1.047.017l.6.605a.75.75 0 0 1 .218.529L12 11a1 1 0 0 1-1 1z"/>
<path d="m11.6 5-1.2 0-.4.4 0 1.2.4.4 1.2 0 .4-.4 0-1.2z"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-editorStamp.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.23336 10.4664L11.8474 6.85339C11.894 6.8071 11.931 6.75203 11.9563 6.69136C11.9816 6.63069 11.9946 6.56562 11.9946 6.49989C11.9946 6.43417 11.9816 6.3691 11.9563 6.30843C11.931 6.24776 11.894 6.19269 11.8474 6.14639C11.7536 6.05266 11.6264 6 11.4939 6C11.3613 6 11.2341 6.05266 11.1404 6.14639L7.99236 9.29339L4.84736 6.14739C4.75305 6.05631 4.62675 6.00592 4.49566 6.00706C4.36456 6.0082 4.23915 6.06078 4.14645 6.15348C4.05374 6.24619 4.00116 6.37159 4.00002 6.50269C3.99888 6.63379 4.04928 6.76009 4.14036 6.85439L7.75236 10.4674L8.23336 10.4664Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-menuArrow.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-menuArrows.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>7</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-openFile.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4287 1.08398C10.5111 1.02905 10.608 0.999824 10.707 1H14.7L15 1.3V5.293C15 5.39194 14.9706 5.48864 14.9156 5.57088C14.8606 5.65311 14.7824 5.71718 14.691 5.75498C14.5996 5.79277 14.499 5.80259 14.402 5.78319C14.3049 5.76379 14.2159 5.71605 14.146 5.646L12.973 4.473L12.692 4.192L9.067 7.817C8.94923 7.93347 8.79034 7.99888 8.6247 7.99907C8.45907 7.99925 8.30003 7.93421 8.182 7.818C8.06518 7.70036 7.99962 7.54129 7.99962 7.3755C7.99962 7.20971 8.06518 7.05065 8.182 6.933L11.807 3.308L10.353 1.854C10.2829 1.78407 10.2351 1.6949 10.2158 1.59779C10.1964 1.50068 10.2063 1.40001 10.2442 1.30854C10.2821 1.21707 10.3464 1.13891 10.4287 1.08398ZM7.81694 2.06694C7.69973 2.18415 7.54076 2.25 7.375 2.25H2.85L2.25 2.85V13.15L2.85 13.75H13.15L13.75 13.15V8.625C13.75 8.45924 13.8158 8.30027 13.9331 8.18306C14.0503 8.06585 14.2092 8 14.375 8C14.5408 8 14.6997 8.06585 14.8169 8.18306C14.9342 8.30027 15 8.45924 15 8.625V13C15 13.5304 14.7893 14.0391 14.4142 14.4142C14.0391 14.7893 13.5304 15 13 15H3C2.46957 15 1.96086 14.7893 1.58579 14.4142C1.21071 14.0391 1 13.5304 1 13V3C1 2.46957 1.21071 1.96086 1.58579 1.58579C1.96086 1.21071 2.46957 1 3 1H7.375C7.54076 1 7.69973 1.06585 7.81694 1.18306C7.93415 1.30027 8 1.45924 8 1.625C8 1.79076 7.93415 1.94973 7.81694 2.06694Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-openFile.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-pageDown-rtl.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-pageDown.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.35176 10.9989L13.8178 5.53391C13.876 5.47594 13.9222 5.40702 13.9537 5.33113C13.9851 5.25524 14.0013 5.17387 14.0012 5.0917C14.0011 5.00954 13.9848 4.9282 13.9531 4.85238C13.9215 4.77656 13.8751 4.70775 13.8168 4.64991C13.6991 4.53309 13.5401 4.46753 13.3743 4.46753C13.2085 4.46753 13.0494 4.53309 12.9318 4.64991L7.99776 9.58491L3.06776 4.65091C2.9494 4.53853 2.79183 4.47682 2.62863 4.47894C2.46542 4.48106 2.3095 4.54683 2.19409 4.66224C2.07868 4.77765 2.01291 4.93357 2.01079 5.09677C2.00868 5.25997 2.07039 5.41754 2.18276 5.53591L7.64776 10.9999L8.35176 10.9989Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-pageDown.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-pageUp-rtl.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-pageUp.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.35179 5.001L13.8178 10.466C13.876 10.524 13.9222 10.5929 13.9537 10.6688C13.9852 10.7447 14.0013 10.826 14.0012 10.9082C14.0011 10.9904 13.9848 11.0717 13.9531 11.1475C13.9215 11.2234 13.8751 11.2922 13.8168 11.35C13.6991 11.4668 13.5401 11.5324 13.3743 11.5324C13.2085 11.5324 13.0494 11.4668 12.9318 11.35L7.99879 6.416L3.06679 11.349C2.94842 11.4614 2.79085 11.5231 2.62765 11.521C2.46445 11.5189 2.30853 11.4531 2.19312 11.3377C2.07771 11.2223 2.01193 11.0663 2.00982 10.9031C2.0077 10.7399 2.06941 10.5824 2.18179 10.464L7.64779 5L8.35179 5.001Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-pageUp.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-presentationMode.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.5 3C1.5 2.72421 1.72421 2.5 2 2.5H14C14.2758 2.5 14.5 2.72421 14.5 3V11C14.5 11.2758 14.2758 11.5 14 11.5H2C1.72421 11.5 1.5 11.2758 1.5 11V3ZM2 1C0.895786 1 0 1.89579 0 3V11C0 12.1042 0.895786 13 2 13H2.64979L1.35052 15.2499L2.64949 16L4.38194 13H11.6391L13.3715 16L14.6705 15.2499L13.3712 13H14C15.1042 13 16 12.1042 16 11V3C16 1.89579 15.1042 1 14 1H2ZM5.79501 4.64401V9.35601C5.79501 9.85001 6.32901 10.159 6.75701 9.91401L10.88 7.55801C11.312 7.31201 11.312 6.68901 10.88 6.44201L6.75701 4.08601C6.32801 3.84101 5.79501 4.15001 5.79501 4.64401Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-presentationMode.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-print.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13 4H12V2C12 1.46957 11.7893 0.960859 11.4142 0.585786C11.0391 0.210714 10.5304 0 10 0L6 0C5.46957 0 4.96086 0.210714 4.58579 0.585786C4.21071 0.960859 4 1.46957 4 2V4H3C2.46957 4 1.96086 4.21071 1.58579 4.58579C1.21071 4.96086 1 5.46957 1 6V11C1 11.5304 1.21071 12.0391 1.58579 12.4142C1.96086 12.7893 2.46957 13 3 13H4V14C4 14.5304 4.21071 15.0391 4.58579 15.4142C4.96086 15.7893 5.46957 16 6 16H10C10.5304 16 11.0391 15.7893 11.4142 15.4142C11.7893 15.0391 12 14.5304 12 14V13H13C13.5304 13 14.0391 12.7893 14.4142 12.4142C14.7893 12.0391 15 11.5304 15 11V6C15 5.46957 14.7893 4.96086 14.4142 4.58579C14.0391 4.21071 13.5304 4 13 4V4ZM10.75 14.15L10.15 14.75H5.85L5.25 14.15V10H10.75V14.15ZM10.75 4H5.25V1.85L5.85 1.25H10.15L10.75 1.85V4V4ZM13 7.6L12.6 8H11.4L11 7.6V6.4L11.4 6H12.6L13 6.4V7.6Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-print.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-search.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.089 10.973L13.934 14.817C13.9918 14.8754 14.0605 14.9218 14.1364 14.9534C14.2122 14.9851 14.2936 15.0013 14.3757 15.0012C14.4579 15.0011 14.5392 14.9847 14.6149 14.9529C14.6907 14.9211 14.7594 14.8746 14.817 14.816C14.875 14.7579 14.921 14.6889 14.9523 14.613C14.9836 14.5372 14.9997 14.4559 14.9996 14.3738C14.9995 14.2917 14.9833 14.2104 14.9518 14.1346C14.9203 14.0588 14.8741 13.99 14.816 13.932L10.983 10.1L10.989 9.67299C11.489 8.96674 11.8152 8.15249 11.9413 7.29642C12.0674 6.44034 11.9897 5.5666 11.7145 4.74621C11.4394 3.92582 10.9745 3.18192 10.3578 2.57498C9.74104 1.96804 8.98979 1.51519 8.16509 1.25322C7.34039 0.991255 6.46551 0.927572 5.61157 1.06735C4.75763 1.20712 3.94871 1.54641 3.25057 2.05764C2.55243 2.56887 1.98476 3.23761 1.59371 4.0095C1.20265 4.7814 0.999236 5.63468 1 6.49999C1 7.95868 1.57946 9.35763 2.61091 10.3891C3.64236 11.4205 5.04131 12 6.5 12C7.689 12 8.788 11.62 9.687 10.978L10.089 10.973V10.973ZM6.5 10.75C4.157 10.75 2.25 8.84299 2.25 6.49999C2.25 4.15699 4.157 2.24999 6.5 2.24999C8.843 2.24999 10.75 4.15699 10.75 6.49999C10.75 8.84299 8.843 10.75 6.5 10.75Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-search.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-secondaryToolbarToggle-rtl.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-secondaryToolbarToggle.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.53406 13.818L7.99906 8.35203L8.00006 7.64703L2.53606 2.18203C2.41769 2.06965 2.26012 2.00795 2.09692 2.01006C1.93372 2.01218 1.7778 2.07795 1.66239 2.19336C1.54698 2.30877 1.48121 2.46469 1.47909 2.62789C1.47697 2.79109 1.53868 2.94867 1.65106 3.06703L6.58506 7.99803L1.65006 12.932C1.53754 13.0503 1.47565 13.2078 1.47758 13.371C1.47951 13.5342 1.54511 13.6902 1.66039 13.8057C1.77567 13.9213 1.93152 13.9872 2.09472 13.9895C2.25792 13.9918 2.41557 13.9303 2.53406 13.818ZM8.53406 13.818L13.9991 8.35203L14.0001 7.64703L8.53606 2.18203C8.4177 2.06965 8.26012 2.00795 8.09692 2.01006C7.93372 2.01218 7.7778 2.07795 7.66239 2.19336C7.54698 2.30877 7.48121 2.46469 7.47909 2.62789C7.47697 2.79109 7.53868 2.94867 7.65106 3.06703L12.5851 7.99803L7.65006 12.932C7.53754 13.0503 7.47565 13.2078 7.47758 13.371C7.47951 13.5342 7.54511 13.6902 7.66039 13.8057C7.77567 13.9213 7.93152 13.9872 8.09472 13.9895C8.25792 13.9918 8.41557 13.9303 8.53406 13.818Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-secondaryToolbarToggle.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-sidebarToggle-rtl.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-sidebarToggle.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M16 4V12.25C16 12.7804 15.7893 13.2891 15.4142 13.6642C15.0391 14.0393 14.5304 14.25 14 14.25H2C1.46957 14.25 0.960859 14.0393 0.585786 13.6642C0.210714 13.2891 0 12.7804 0 12.25V4C0 3.46957 0.210714 2.96086 0.585786 2.58579C0.960859 2.21071 1.46957 2 2 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4ZM1.25 3.85V12.4L1.85 13H6.75V3.25H1.85L1.25 3.85ZM14.15 13H8V3.25H14.15L14.75 3.85V12.4L14.15 13ZM5.35355 10.1464C5.44732 10.2402 5.5 10.3674 5.5 10.5C5.5 10.6326 5.44732 10.7598 5.35355 10.8536C5.25979 10.9473 5.13261 11 5 11H3C2.86739 11 2.74021 10.9473 2.64645 10.8536C2.55268 10.7598 2.5 10.6326 2.5 10.5C2.5 10.3674 2.55268 10.2402 2.64645 10.1464C2.74021 10.0527 2.86739 10 3 10H5C5.13261 10 5.25979 10.0527 5.35355 10.1464ZM5.5 8C5.5 7.86739 5.44732 7.74021 5.35355 7.64645C5.25979 7.55268 5.13261 7.5 5 7.5H3C2.86739 7.5 2.74021 7.55268 2.64645 7.64645C2.55268 7.74021 2.5 7.86739 2.5 8C2.5 8.13261 2.55268 8.25979 2.64645 8.35355C2.74021 8.44732 2.86739 8.5 3 8.5H5C5.13261 8.5 5.25979 8.44732 5.35355 8.35355C5.44732 8.25979 5.5 8.13261 5.5 8ZM5.35355 5.14645C5.44732 5.24021 5.5 5.36739 5.5 5.5C5.5 5.63261 5.44732 5.75979 5.35355 5.85355C5.25979 5.94732 5.13261 6 5 6H3C2.86739 6 2.74021 5.94732 2.64645 5.85355C2.55268 5.75979 2.5 5.63261 2.5 5.5C2.5 5.36739 2.55268 5.24021 2.64645 5.14645C2.74021 5.05268 2.86739 5 3 5H5C5.13261 5 5.25979 5.05268 5.35355 5.14645Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-sidebarToggle.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-viewAttachments.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.5 3.75C3.5 1.67879 5.17879 0 7.25 0C9.32121 0 11 1.67879 11 3.75V10.25C11 11.4922 9.99221 12.5 8.75 12.5C7.50779 12.5 6.5 11.4922 6.5 10.25V3.5H8V10.25C8 10.6638 8.33621 11 8.75 11C9.16379 11 9.5 10.6638 9.5 10.25V3.75C9.5 2.50721 8.49279 1.5 7.25 1.5C6.00721 1.5 5 2.50721 5 3.75V10.75C5 12.8208 6.67921 14.5 8.75 14.5C10.8208 14.5 12.5 12.8208 12.5 10.75V3.5H14V10.75C14 13.6492 11.6492 16 8.75 16C5.85079 16 3.5 13.6492 3.5 10.75V3.75Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-viewAttachments.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.36645 2.34562C8.13878 2.21813 7.86122 2.21813 7.63355 2.34562L1.38355 5.84562C1.14669 5.97826 1 6.22853 1 6.5C1 6.77147 1.14669 7.02174 1.38355 7.15438L7.63355 10.6544C7.86122 10.7819 8.13878 10.7819 8.36645 10.6544L14.6165 7.15438C14.8533 7.02174 15 6.77147 15 6.5C15 6.22853 14.8533 5.97826 14.6165 5.84562L8.36645 2.34562ZM8 9.14041L3.28499 6.5L8 3.85959L12.715 6.5L8 9.14041ZM1.63647 9.0766L7.99999 12.6404L14.3255 9.09761L15.0585 10.4063L8.36649 14.1543C8.13881 14.2818 7.86122 14.2819 7.63353 14.1543L0.903534 10.3853L1.63647 9.0766Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-viewLayers.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-viewOutline-rtl.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-viewOutline.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3 1.25H15V2.75H3V1.25ZM15 5.25H3V6.75H15V5.25ZM15 13.25H3V14.75H15V13.25ZM15 9.25H6V10.75H15V9.25ZM0 5.25H1.5V6.75H0V5.25ZM1.5 13.25H0V14.75H1.5V13.25ZM0 1.25H1.5V2.75H0V1.25ZM4.5 9.25H3V10.75H4.5V9.25Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-viewOutline.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-viewThumbnail.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.5 2C3.5 1.72421 3.72421 1.5 4 1.5H5.25C5.52579 1.5 5.75 1.72421 5.75 2V5.25C5.75 5.52579 5.52579 5.75 5.25 5.75H4C3.72421 5.75 3.5 5.52579 3.5 5.25V2ZM4 0C2.89579 0 2 0.895786 2 2V5.25C2 6.35421 2.89579 7.25 4 7.25H5.25C6.35421 7.25 7.25 6.35421 7.25 5.25V2C7.25 0.895786 6.35421 0 5.25 0H4ZM3.5 10.75C3.5 10.4742 3.72421 10.25 4 10.25H5.25C5.52579 10.25 5.75 10.4742 5.75 10.75V14C5.75 14.2758 5.52579 14.5 5.25 14.5H4C3.72421 14.5 3.5 14.2758 3.5 14V10.75ZM4 8.75C2.89579 8.75 2 9.64579 2 10.75V14C2 15.1042 2.89579 16 4 16H5.25C6.35421 16 7.25 15.1042 7.25 14V10.75C7.25 9.64579 6.35421 8.75 5.25 8.75H4ZM10.75 1.5C10.4742 1.5 10.25 1.72421 10.25 2V5.25C10.25 5.52579 10.4742 5.75 10.75 5.75H12C12.2758 5.75 12.5 5.52579 12.5 5.25V2C12.5 1.72421 12.2758 1.5 12 1.5H10.75ZM8.75 2C8.75 0.895786 9.64579 0 10.75 0H12C13.1042 0 14 0.895786 14 2V5.25C14 6.35421 13.1042 7.25 12 7.25H10.75C9.64579 7.25 8.75 6.35421 8.75 5.25V2ZM10.25 10.75C10.25 10.4742 10.4742 10.25 10.75 10.25H12C12.2758 10.25 12.5 10.4742 12.5 10.75V14C12.5 14.2758 12.2758 14.5 12 14.5H10.75C10.4742 14.5 10.25 14.2758 10.25 14V10.75ZM10.75 8.75C9.64579 8.75 8.75 9.64579 8.75 10.75V14C8.75 15.1042 9.64579 16 10.75 16H12C13.1042 16 14 15.1042 14 14V10.75C14 9.64579 13.1042 8.75 12 8.75H10.75Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-viewThumbnail.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-zoomIn.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.00488 9.75V14C7.00488 14.1658 7.07073 14.3247 7.18794 14.4419C7.30515 14.5592 7.46412 14.625 7.62988 14.625C7.79564 14.625 7.95461 14.5592 8.07183 14.4419C8.18904 14.3247 8.25488 14.1658 8.25488 14V9.75L8.75488 9.25H13.0049C13.1706 9.25 13.3296 9.18415 13.4468 9.06694C13.564 8.94973 13.6299 8.79076 13.6299 8.625C13.6299 8.45924 13.564 8.30027 13.4468 8.18306C13.3296 8.06585 13.1706 8 13.0049 8H8.75488L8.25488 7.5V3.25C8.25488 3.08424 8.18904 2.92527 8.07183 2.80806C7.95461 2.69085 7.79564 2.625 7.62988 2.625C7.46412 2.625 7.30515 2.69085 7.18794 2.80806C7.07073 2.92527 7.00488 3.08424 7.00488 3.25V7.5L6.50488 8H2.25488C2.08912 8 1.93015 8.06585 1.81294 8.18306C1.69573 8.30027 1.62988 8.45924 1.62988 8.625C1.62988 8.79076 1.69573 8.94973 1.81294 9.06694C1.93015 9.18415 2.08912 9.25 2.25488 9.25H6.39188L7.00488 9.75Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-zoomIn.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-zoomOut.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.375 9.25C13.5408 9.25 13.6997 9.18415 13.8169 9.06694C13.9342 8.94973 14 8.79076 14 8.625C14 8.45924 13.9342 8.30027 13.8169 8.18306C13.6997 8.06585 13.5408 8 13.375 8H2.625C2.45924 8 2.30027 8.06585 2.18306 8.18306C2.06585 8.30027 2 8.45924 2 8.625C2 8.79076 2.06585 8.94973 2.18306 9.06694C2.30027 9.18415 2.45924 9.25 2.625 9.25H13.375Z" fill="black"/>
</svg>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>toolbarButton-zoomOut.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>treeitem-collapsed-rtl.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>9</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>9</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>treeitem-collapsed.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>9</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>9</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M13 9L6 5v8z"/></svg>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>treeitem-collapsed.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Image" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>treeitem-expanded.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>9</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>9</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M10 13l4-7H6z"/></svg>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>treeitem-expanded.svg</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/svg+xml</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
/**
* Copyright (c) 2011-2013 Fabien Cazenave, Mozilla.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/*
Additional modifications for PDF.js project:
- Disables language initialization on page loading;
- Removes consoleWarn and consoleLog and use console.log/warn directly.
- Removes window._ assignment.
- Remove compatibility code for OldIE.
*/
/*jshint browser: true, devel: true, es5: true, globalstrict: true */
'use strict';
document.webL10n = (function(window, document, undefined) {
var gL10nData = {};
var gTextData = '';
var gTextProp = 'textContent';
var gLanguage = '';
var gMacros = {};
var gReadyState = 'loading';
/**
* Synchronously loading l10n resources significantly minimizes flickering
* from displaying the app with non-localized strings and then updating the
* strings. Although this will block all script execution on this page, we
* expect that the l10n resources are available locally on flash-storage.
*
* As synchronous XHR is generally considered as a bad idea, we're still
* loading l10n resources asynchronously -- but we keep this in a setting,
* just in case... and applications using this library should hide their
* content until the `localized' event happens.
*/
var gAsyncResourceLoading = true; // read-only
/**
* DOM helpers for the so-called "HTML API".
*
* These functions are written for modern browsers. For old versions of IE,
* they're overridden in the 'startup' section at the end of this file.
*/
function getL10nResourceLinks() {
return document.querySelectorAll('link[type="application/l10n"]');
}
function getL10nDictionary() {
var script = document.querySelector('script[type="application/l10n"]');
// TODO: support multiple and external JSON dictionaries
return script ? JSON.parse(script.innerHTML) : null;
}
function getTranslatableChildren(element) {
return element ? element.querySelectorAll('*[data-l10n-id]') : [];
}
function getL10nAttributes(element) {
if (!element)
return {};
var l10nId = element.getAttribute('data-l10n-id');
var l10nArgs = element.getAttribute('data-l10n-args');
var args = {};
if (l10nArgs) {
try {
args = JSON.parse(l10nArgs);
} catch (e) {
console.warn('could not parse arguments for #' + l10nId);
}
}
return { id: l10nId, args: args };
}
function fireL10nReadyEvent(lang) {
var evtObject = document.createEvent('Event');
evtObject.initEvent('localized', true, false);
evtObject.language = lang;
document.dispatchEvent(evtObject);
}
function xhrLoadText(url, onSuccess, onFailure) {
onSuccess = onSuccess || function _onSuccess(data) {};
onFailure = onFailure || function _onFailure() {
console.warn(url + ' not found.');
};
var xhr = new XMLHttpRequest();
xhr.open('GET', url, gAsyncResourceLoading);
if (xhr.overrideMimeType) {
xhr.overrideMimeType('text/plain; charset=utf-8');
}
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status == 200 || xhr.status === 0) {
onSuccess(xhr.responseText);
} else {
onFailure();
}
}
};
xhr.onerror = onFailure;
xhr.ontimeout = onFailure;
// in Firefox OS with the app:// protocol, trying to XHR a non-existing
// URL will raise an exception here -- hence this ugly try...catch.
try {
xhr.send(null);
} catch (e) {
onFailure();
}
}
/**
* l10n resource parser:
* - reads (async XHR) the l10n resource matching `lang';
* - imports linked resources (synchronously) when specified;
* - parses the text data (fills `gL10nData' and `gTextData');
* - triggers success/failure callbacks when done.
*
* @param {string} href
* URL of the l10n resource to parse.
*
* @param {string} lang
* locale (language) to parse. Must be a lowercase string.
*
* @param {Function} successCallback
* triggered when the l10n resource has been successully parsed.
*
* @param {Function} failureCallback
* triggered when the an error has occured.
*
* @return {void}
* uses the following global variables: gL10nData, gTextData, gTextProp.
*/
function parseResource(href, lang, successCallback, failureCallback) {
var baseURL = href.replace(/[^\/]*$/, '') || './';
// handle escaped characters (backslashes) in a string
function evalString(text) {
if (text.lastIndexOf('\\') < 0)
return text;
return text.replace(/\\\\/g, '\\')
.replace(/\\n/g, '\n')
.replace(/\\r/g, '\r')
.replace(/\\t/g, '\t')
.replace(/\\b/g, '\b')
.replace(/\\f/g, '\f')
.replace(/\\{/g, '{')
.replace(/\\}/g, '}')
.replace(/\\"/g, '"')
.replace(/\\'/g, "'");
}
// parse *.properties text data into an l10n dictionary
// If gAsyncResourceLoading is false, then the callback will be called
// synchronously. Otherwise it is called asynchronously.
function parseProperties(text, parsedPropertiesCallback) {
var dictionary = {};
// token expressions
var reBlank = /^\s*|\s*$/;
var reComment = /^\s*#|^\s*$/;
var reSection = /^\s*\[(.*)\]\s*$/;
var reImport = /^\s*@import\s+url\((.*)\)\s*$/i;
var reSplit = /^([^=\s]*)\s*=\s*(.+)$/; // TODO: escape EOLs with '\'
// parse the *.properties file into an associative array
function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) {
var entries = rawText.replace(reBlank, '').split(/[\r\n]+/);
var currentLang = '*';
var genericLang = lang.split('-', 1)[0];
var skipLang = false;
var match = '';
function nextEntry() {
// Use infinite loop instead of recursion to avoid reaching the
// maximum recursion limit for content with many lines.
while (true) {
if (!entries.length) {
parsedRawLinesCallback();
return;
}
var line = entries.shift();
// comment or blank line?
if (reComment.test(line))
continue;
// the extended syntax supports [lang] sections and @import rules
if (extendedSyntax) {
match = reSection.exec(line);
if (match) { // section start?
// RFC 4646, section 4.4, "All comparisons MUST be performed
// in a case-insensitive manner."
currentLang = match[1].toLowerCase();
skipLang = (currentLang !== '*') &&
(currentLang !== lang) && (currentLang !== genericLang);
continue;
} else if (skipLang) {
continue;
}
match = reImport.exec(line);
if (match) { // @import rule?
loadImport(baseURL + match[1], nextEntry);
return;
}
}
// key-value pair
var tmp = line.match(reSplit);
if (tmp && tmp.length == 3) {
dictionary[tmp[1]] = evalString(tmp[2]);
}
}
}
nextEntry();
}
// import another *.properties file
function loadImport(url, callback) {
xhrLoadText(url, function(content) {
parseRawLines(content, false, callback); // don't allow recursive imports
}, null);
}
// fill the dictionary
parseRawLines(text, true, function() {
parsedPropertiesCallback(dictionary);
});
}
// load and parse l10n data (warning: global variables are used here)
xhrLoadText(href, function(response) {
gTextData += response; // mostly for debug
// parse *.properties text data into an l10n dictionary
parseProperties(response, function(data) {
// find attribute descriptions, if any
for (var key in data) {
var id, prop, index = key.lastIndexOf('.');
if (index > 0) { // an attribute has been specified
id = key.substring(0, index);
prop = key.substr(index + 1);
} else { // no attribute: assuming text content by default
id = key;
prop = gTextProp;
}
if (!gL10nData[id]) {
gL10nData[id] = {};
}
gL10nData[id][prop] = data[key];
}
// trigger callback
if (successCallback) {
successCallback();
}
});
}, failureCallback);
}
// load and parse all resources for the specified locale
function loadLocale(lang, callback) {
// RFC 4646, section 2.1 states that language tags have to be treated as
// case-insensitive. Convert to lowercase for case-insensitive comparisons.
if (lang) {
lang = lang.toLowerCase();
}
callback = callback || function _callback() {};
clear();
gLanguage = lang;
// check all <link type="application/l10n" href="..." /> nodes
// and load the resource files
var langLinks = getL10nResourceLinks();
var langCount = langLinks.length;
if (langCount === 0) {
// we might have a pre-compiled dictionary instead
var dict = getL10nDictionary();
if (dict && dict.locales && dict.default_locale) {
console.log('using the embedded JSON directory, early way out');
gL10nData = dict.locales[lang];
if (!gL10nData) {
var defaultLocale = dict.default_locale.toLowerCase();
for (var anyCaseLang in dict.locales) {
anyCaseLang = anyCaseLang.toLowerCase();
if (anyCaseLang === lang) {
gL10nData = dict.locales[lang];
break;
} else if (anyCaseLang === defaultLocale) {
gL10nData = dict.locales[defaultLocale];
}
}
}
callback();
} else {
console.log('no resource to load, early way out');
}
// early way out
fireL10nReadyEvent(lang);
gReadyState = 'complete';
return;
}
// start the callback when all resources are loaded
var onResourceLoaded = null;
var gResourceCount = 0;
onResourceLoaded = function() {
gResourceCount++;
if (gResourceCount >= langCount) {
callback();
fireL10nReadyEvent(lang);
gReadyState = 'complete';
}
};
// load all resource files
function L10nResourceLink(link) {
var href = link.href;
// Note: If |gAsyncResourceLoading| is false, then the following callbacks
// are synchronously called.
this.load = function(lang, callback) {
parseResource(href, lang, callback, function() {
console.warn(href + ' not found.');
// lang not found, used default resource instead
console.warn('"' + lang + '" resource not found');
gLanguage = '';
// Resource not loaded, but we still need to call the callback.
callback();
});
};
}
for (var i = 0; i < langCount; i++) {
var resource = new L10nResourceLink(langLinks[i]);
resource.load(lang, onResourceLoaded);
}
}
// clear all l10n data
function clear() {
gL10nData = {};
gTextData = '';
gLanguage = '';
// TODO: clear all non predefined macros.
// There's no such macro /yet/ but we're planning to have some...
}
/**
* Get rules for plural forms (shared with JetPack), see:
* http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
* https://github.com/mozilla/addon-sdk/blob/master/python-lib/plural-rules-generator.p
*
* @param {string} lang
* locale (language) used.
*
* @return {Function}
* returns a function that gives the plural form name for a given integer:
* var fun = getPluralRules('en');
* fun(1) -> 'one'
* fun(0) -> 'other'
* fun(1000) -> 'other'.
*/
function getPluralRules(lang) {
var locales2rules = {
'af': 3,
'ak': 4,
'am': 4,
'ar': 1,
'asa': 3,
'az': 0,
'be': 11,
'bem': 3,
'bez': 3,
'bg': 3,
'bh': 4,
'bm': 0,
'bn': 3,
'bo': 0,
'br': 20,
'brx': 3,
'bs': 11,
'ca': 3,
'cgg': 3,
'chr': 3,
'cs': 12,
'cy': 17,
'da': 3,
'de': 3,
'dv': 3,
'dz': 0,
'ee': 3,
'el': 3,
'en': 3,
'eo': 3,
'es': 3,
'et': 3,
'eu': 3,
'fa': 0,
'ff': 5,
'fi': 3,
'fil': 4,
'fo': 3,
'fr': 5,
'fur': 3,
'fy': 3,
'ga': 8,
'gd': 24,
'gl': 3,
'gsw': 3,
'gu': 3,
'guw': 4,
'gv': 23,
'ha': 3,
'haw': 3,
'he': 2,
'hi': 4,
'hr': 11,
'hu': 0,
'id': 0,
'ig': 0,
'ii': 0,
'is': 3,
'it': 3,
'iu': 7,
'ja': 0,
'jmc': 3,
'jv': 0,
'ka': 0,
'kab': 5,
'kaj': 3,
'kcg': 3,
'kde': 0,
'kea': 0,
'kk': 3,
'kl': 3,
'km': 0,
'kn': 0,
'ko': 0,
'ksb': 3,
'ksh': 21,
'ku': 3,
'kw': 7,
'lag': 18,
'lb': 3,
'lg': 3,
'ln': 4,
'lo': 0,
'lt': 10,
'lv': 6,
'mas': 3,
'mg': 4,
'mk': 16,
'ml': 3,
'mn': 3,
'mo': 9,
'mr': 3,
'ms': 0,
'mt': 15,
'my': 0,
'nah': 3,
'naq': 7,
'nb': 3,
'nd': 3,
'ne': 3,
'nl': 3,
'nn': 3,
'no': 3,
'nr': 3,
'nso': 4,
'ny': 3,
'nyn': 3,
'om': 3,
'or': 3,
'pa': 3,
'pap': 3,
'pl': 13,
'ps': 3,
'pt': 3,
'rm': 3,
'ro': 9,
'rof': 3,
'ru': 11,
'rwk': 3,
'sah': 0,
'saq': 3,
'se': 7,
'seh': 3,
'ses': 0,
'sg': 0,
'sh': 11,
'shi': 19,
'sk': 12,
'sl': 14,
'sma': 7,
'smi': 7,
'smj': 7,
'smn': 7,
'sms': 7,
'sn': 3,
'so': 3,
'sq': 3,
'sr': 11,
'ss': 3,
'ssy': 3,
'st': 3,
'sv': 3,
'sw': 3,
'syr': 3,
'ta': 3,
'te': 3,
'teo': 3,
'th': 0,
'ti': 4,
'tig': 3,
'tk': 3,
'tl': 4,
'tn': 3,
'to': 0,
'tr': 0,
'ts': 3,
'tzm': 22,
'uk': 11,
'ur': 3,
've': 3,
'vi': 0,
'vun': 3,
'wa': 4,
'wae': 3,
'wo': 0,
'xh': 3,
'xog': 3,
'yo': 0,
'zh': 0,
'zu': 3
};
// utility functions for plural rules methods
function isIn(n, list) {
return list.indexOf(n) !== -1;
}
function isBetween(n, start, end) {
return start <= n && n <= end;
}
// list of all plural rules methods:
// map an integer to the plural form name to use
var pluralRules = {
'0': function(n) {
return 'other';
},
'1': function(n) {
if ((isBetween((n % 100), 3, 10)))
return 'few';
if (n === 0)
return 'zero';
if ((isBetween((n % 100), 11, 99)))
return 'many';
if (n == 2)
return 'two';
if (n == 1)
return 'one';
return 'other';
},
'2': function(n) {
if (n !== 0 && (n % 10) === 0)
return 'many';
if (n == 2)
return 'two';
if (n == 1)
return 'one';
return 'other';
},
'3': function(n) {
if (n == 1)
return 'one';
return 'other';
},
'4': function(n) {
if ((isBetween(n, 0, 1)))
return 'one';
return 'other';
},
'5': function(n) {
if ((isBetween(n, 0, 2)) && n != 2)
return 'one';
return 'other';
},
'6': function(n) {
if (n === 0)
return 'zero';
if ((n % 10) == 1 && (n % 100) != 11)
return 'one';
return 'other';
},
'7': function(n) {
if (n == 2)
return 'two';
if (n == 1)
return 'one';
return 'other';
},
'8': function(n) {
if ((isBetween(n, 3, 6)))
return 'few';
if ((isBetween(n, 7, 10)))
return 'many';
if (n == 2)
return 'two';
if (n == 1)
return 'one';
return 'other';
},
'9': function(n) {
if (n === 0 || n != 1 && (isBetween((n % 100), 1, 19)))
return 'few';
if (n == 1)
return 'one';
return 'other';
},
'10': function(n) {
if ((isBetween((n % 10), 2, 9)) && !(isBetween((n % 100), 11, 19)))
return 'few';
if ((n % 10) == 1 && !(isBetween((n % 100), 11, 19)))
return 'one';
return 'other';
},
'11': function(n) {
if ((isBetween((n % 10), 2, 4)) && !(isBetween((n % 100), 12, 14)))
return 'few';
if ((n % 10) === 0 ||
(isBetween((n % 10), 5, 9)) ||
(isBetween((n % 100), 11, 14)))
return 'many';
if ((n % 10) == 1 && (n % 100) != 11)
return 'one';
return 'other';
},
'12': function(n) {
if ((isBetween(n, 2, 4)))
return 'few';
if (n == 1)
return 'one';
return 'other';
},
'13': function(n) {
if ((isBetween((n % 10), 2, 4)) && !(isBetween((n % 100), 12, 14)))
return 'few';
if (n != 1 && (isBetween((n % 10), 0, 1)) ||
(isBetween((n % 10), 5, 9)) ||
(isBetween((n % 100), 12, 14)))
return 'many';
if (n == 1)
return 'one';
return 'other';
},
'14': function(n) {
if ((isBetween((n % 100), 3, 4)))
return 'few';
if ((n % 100) == 2)
return 'two';
if ((n % 100) == 1)
return 'one';
return 'other';
},
'15': function(n) {
if (n === 0 || (isBetween((n % 100), 2, 10)))
return 'few';
if ((isBetween((n % 100), 11, 19)))
return 'many';
if (n == 1)
return 'one';
return 'other';
},
'16': function(n) {
if ((n % 10) == 1 && n != 11)
return 'one';
return 'other';
},
'17': function(n) {
if (n == 3)
return 'few';
if (n === 0)
return 'zero';
if (n == 6)
return 'many';
if (n == 2)
return 'two';
if (n == 1)
return 'one';
return 'other';
},
'18': function(n) {
if (n === 0)
return 'zero';
if ((isBetween(n, 0, 2)) && n !== 0 && n != 2)
return 'one';
return 'other';
},
'19': function(n) {
if ((isBetween(n, 2, 10)))
return 'few';
if ((isBetween(n, 0, 1)))
return 'one';
return 'other';
},
'20': function(n) {
if ((isBetween((n % 10), 3, 4) || ((n % 10) == 9)) && !(
isBetween((n % 100), 10, 19) ||
isBetween((n % 100), 70, 79) ||
isBetween((n % 100), 90, 99)
))
return 'few';
if ((n % 1000000) === 0 && n !== 0)
return 'many';
if ((n % 10) == 2 && !isIn((n % 100), [12, 72, 92]))
return 'two';
if ((n % 10) == 1 && !isIn((n % 100), [11, 71, 91]))
return 'one';
return 'other';
},
'21': function(n) {
if (n === 0)
return 'zero';
if (n == 1)
return 'one';
return 'other';
},
'22': function(n) {
if ((isBetween(n, 0, 1)) || (isBetween(n, 11, 99)))
return 'one';
return 'other';
},
'23': function(n) {
if ((isBetween((n % 10), 1, 2)) || (n % 20) === 0)
return 'one';
return 'other';
},
'24': function(n) {
if ((isBetween(n, 3, 10) || isBetween(n, 13, 19)))
return 'few';
if (isIn(n, [2, 12]))
return 'two';
if (isIn(n, [1, 11]))
return 'one';
return 'other';
}
};
// return a function that gives the plural form name for a given integer
var index = locales2rules[lang.replace(/-.*$/, '')];
if (!(index in pluralRules)) {
console.warn('plural form unknown for [' + lang + ']');
return function() { return 'other'; };
}
return pluralRules[index];
}
// pre-defined 'plural' macro
gMacros.plural = function(str, param, key, prop) {
var n = parseFloat(param);
if (isNaN(n))
return str;
// TODO: support other properties (l20n still doesn't...)
if (prop != gTextProp)
return str;
// initialize _pluralRules
if (!gMacros._pluralRules) {
gMacros._pluralRules = getPluralRules(gLanguage);
}
var index = '[' + gMacros._pluralRules(n) + ']';
// try to find a [zero|one|two] key if it's defined
if (n === 0 && (key + '[zero]') in gL10nData) {
str = gL10nData[key + '[zero]'][prop];
} else if (n == 1 && (key + '[one]') in gL10nData) {
str = gL10nData[key + '[one]'][prop];
} else if (n == 2 && (key + '[two]') in gL10nData) {
str = gL10nData[key + '[two]'][prop];
} else if ((key + index) in gL10nData) {
str = gL10nData[key + index][prop];
} else if ((key + '[other]') in gL10nData) {
str = gL10nData[key + '[other]'][prop];
}
return str;
};
/**
* l10n dictionary functions
*/
// fetch an l10n object, warn if not found, apply `args' if possible
function getL10nData(key, args, fallback) {
var data = gL10nData[key];
if (!data) {
console.warn('#' + key + ' is undefined.');
if (!fallback) {
return null;
}
data = fallback;
}
/** This is where l10n expressions should be processed.
* The plan is to support C-style expressions from the l20n project;
* until then, only two kinds of simple expressions are supported:
* {[ index ]} and {{ arguments }}.
*/
var rv = {};
for (var prop in data) {
var str = data[prop];
str = substIndexes(str, args, key, prop);
str = substArguments(str, args, key);
rv[prop] = str;
}
return rv;
}
// replace {[macros]} with their values
function substIndexes(str, args, key, prop) {
var reIndex = /\{\[\s*([a-zA-Z]+)\(([a-zA-Z]+)\)\s*\]\}/;
var reMatch = reIndex.exec(str);
if (!reMatch || !reMatch.length)
return str;
// an index/macro has been found
// Note: at the moment, only one parameter is supported
var macroName = reMatch[1];
var paramName = reMatch[2];
var param;
if (args && paramName in args) {
param = args[paramName];
} else if (paramName in gL10nData) {
param = gL10nData[paramName];
}
// there's no macro parser yet: it has to be defined in gMacros
if (macroName in gMacros) {
var macro = gMacros[macroName];
str = macro(str, param, key, prop);
}
return str;
}
// replace {{arguments}} with their values
function substArguments(str, args, key) {
var reArgs = /\{\{\s*(.+?)\s*\}\}/g;
return str.replace(reArgs, function(matched_text, arg) {
if (args && arg in args) {
return args[arg];
}
if (arg in gL10nData) {
return gL10nData[arg];
}
console.log('argument {{' + arg + '}} for #' + key + ' is undefined.');
return matched_text;
});
}
// translate an HTML element
function translateElement(element) {
var l10n = getL10nAttributes(element);
if (!l10n.id)
return;
// get the related l10n object
var data = getL10nData(l10n.id, l10n.args);
if (!data) {
console.warn('#' + l10n.id + ' is undefined.');
return;
}
// translate element (TODO: security checks?)
if (data[gTextProp]) { // XXX
if (getChildElementCount(element) === 0) {
element[gTextProp] = data[gTextProp];
} else {
// this element has element children: replace the content of the first
// (non-empty) child textNode and clear other child textNodes
var children = element.childNodes;
var found = false;
for (var i = 0, l = children.length; i < l; i++) {
if (children[i].nodeType === 3 && /\S/.test(children[i].nodeValue)) {
if (found) {
children[i].nodeValue = '';
} else {
children[i].nodeValue = data[gTextProp];
found = true;
}
}
}
// if no (non-empty) textNode is found, insert a textNode before the
// first element child.
if (!found) {
var textNode = document.createTextNode(data[gTextProp]);
element.insertBefore(textNode, element.firstChild);
}
}
delete data[gTextProp];
}
for (var k in data) {
element[k] = data[k];
}
}
// webkit browsers don't currently support 'children' on SVG elements...
function getChildElementCount(element) {
if (element.children) {
return element.children.length;
}
if (typeof element.childElementCount !== 'undefined') {
return element.childElementCount;
}
var count = 0;
for (var i = 0; i < element.childNodes.length; i++) {
count += element.nodeType === 1 ? 1 : 0;
}
return count;
}
// translate an HTML subtree
function translateFragment(element) {
element = element || document.documentElement;
// check all translatable children (= w/ a `data-l10n-id' attribute)
var children = getTranslatableChildren(element);
var elementCount = children.length;
for (var i = 0; i < elementCount; i++) {
translateElement(children[i]);
}
// translate element itself if necessary
translateElement(element);
}
return {
// get a localized string
get: function(key, args, fallbackString) {
var index = key.lastIndexOf('.');
var prop = gTextProp;
if (index > 0) { // An attribute has been specified
prop = key.substr(index + 1);
key = key.substring(0, index);
}
var fallback;
if (fallbackString) {
fallback = {};
fallback[prop] = fallbackString;
}
var data = getL10nData(key, args, fallback);
if (data && prop in data) {
return data[prop];
}
return '{{' + key + '}}';
},
// debug
getData: function() { return gL10nData; },
getText: function() { return gTextData; },
// get|set the document language
getLanguage: function() { return gLanguage; },
setLanguage: function(lang, callback) {
loadLocale(lang, function() {
if (callback)
callback();
translateFragment();
});
},
// get the direction (ltr|rtl) of the current language
getDirection: function() {
// http://www.w3.org/International/questions/qa-scripts
// Arabic, Hebrew, Farsi, Pashto, Urdu
var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];
var shortCode = gLanguage.split('-', 1)[0];
return (rtlList.indexOf(shortCode) >= 0) ? 'rtl' : 'ltr';
},
// translate an element or document fragment
translate: translateFragment,
// this can be used to prevent race conditions
getReadyState: function() { return gReadyState; },
ready: function(callback) {
if (!callback) {
return;
} else if (gReadyState == 'complete' || gReadyState == 'interactive') {
window.setTimeout(function() {
callback();
});
} else if (document.addEventListener) {
document.addEventListener('localized', function once() {
document.removeEventListener('localized', once);
callback();
});
}
}
};
}) (window, document);
...@@ -18,56 +18,84 @@ previous_label=Zurück ...@@ -18,56 +18,84 @@ previous_label=Zurück
next.title=Eine Seite vor next.title=Eine Seite vor
next_label=Vor next_label=Vor
# LOCALIZATION NOTE (page_label, page_of): # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# These strings are concatenated to form the "Page: X of Y" string. page.title=Seite
# Do not translate "{{pageCount}}", it will be substituted with a number # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages. # representing the total number of pages in the document.
page_label=Seite: of_pages=von {{pagesCount}}
page_of=von {{pageCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} von {{pagesCount}})
zoom_out.title=Verkleinern zoom_out.title=Verkleinern
zoom_out_label=Verkleinern zoom_out_label=Verkleinern
zoom_in.title=Vergrößern zoom_in.title=Vergrößern
zoom_in_label=Vergrößern zoom_in_label=Vergrößern
zoom.title=Zoom zoom.title=Zoom
print.title=Drucken
print_label=Drucken
presentation_mode.title=In Präsentationsmodus wechseln presentation_mode.title=In Präsentationsmodus wechseln
presentation_mode_label=Präsentationsmodus presentation_mode_label=Präsentationsmodus
open_file.title=Datei öffnen open_file.title=Datei öffnen
open_file_label=Öffnen open_file_label=Öffnen
download.title=Dokument speichern print.title=Drucken
download_label=Speichern print_label=Drucken
bookmark.title=Aktuelle Ansicht (zum Kopieren oder Öffnen in einem neuen Fenster) save.title=Speichern
bookmark_label=Aktuelle Ansicht save_label=Speichern
# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
download_button.title=Herunterladen
# LOCALIZATION NOTE (download_button_label): used in Firefox for Android as a label for the download button (“download” is a verb).
# Length of the translation matters since we are in a mobile context, with limited screen estate.
download_button_label=Herunterladen
bookmark1.title=Aktuelle Seite (URL von aktueller Seite anzeigen)
bookmark1_label=Aktuelle Seite
# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
open_in_app.title=Mit App öffnen
# LOCALIZATION NOTE (open_in_app_label): This string is used in Firefox for Android. Length of the translation matters since we are in a mobile context, with limited screen estate.
open_in_app_label=Mit App öffnen
# Secondary toolbar and context menu # Secondary toolbar and context menu
tools.title=Werkzeuge tools.title=Werkzeuge
tools_label=Werkzeuge tools_label=Werkzeuge
first_page.title=Erste Seite anzeigen first_page.title=Erste Seite anzeigen
first_page.label=Erste Seite anzeigen
first_page_label=Erste Seite anzeigen first_page_label=Erste Seite anzeigen
last_page.title=Letzte Seite anzeigen last_page.title=Letzte Seite anzeigen
last_page.label=Letzte Seite anzeigen
last_page_label=Letzte Seite anzeigen last_page_label=Letzte Seite anzeigen
page_rotate_cw.title=Im Uhrzeigersinn drehen page_rotate_cw.title=Im Uhrzeigersinn drehen
page_rotate_cw.label=Im Uhrzeigersinn drehen
page_rotate_cw_label=Im Uhrzeigersinn drehen page_rotate_cw_label=Im Uhrzeigersinn drehen
page_rotate_ccw.title=Gegen Uhrzeigersinn drehen page_rotate_ccw.title=Gegen Uhrzeigersinn drehen
page_rotate_ccw.label=Gegen Uhrzeigersinn drehen
page_rotate_ccw_label=Gegen Uhrzeigersinn drehen page_rotate_ccw_label=Gegen Uhrzeigersinn drehen
hand_tool_enable.title=Hand-Werkzeug aktivieren cursor_text_select_tool.title=Textauswahl-Werkzeug aktivieren
hand_tool_enable_label=Hand-Werkzeug aktivieren cursor_text_select_tool_label=Textauswahl-Werkzeug
hand_tool_disable.title=Hand-Werkzeug deaktivieren cursor_hand_tool.title=Hand-Werkzeug aktivieren
hand_tool_disable_label=Hand-Werkzeug deaktivieren cursor_hand_tool_label=Hand-Werkzeug
scroll_page.title=Seiten einzeln anordnen
scroll_page_label=Einzelseitenanordnung
scroll_vertical.title=Seiten übereinander anordnen
scroll_vertical_label=Vertikale Seitenanordnung
scroll_horizontal.title=Seiten nebeneinander anordnen
scroll_horizontal_label=Horizontale Seitenanordnung
scroll_wrapped.title=Seiten neben- und übereinander anordnen, abhängig vom Platz
scroll_wrapped_label=Kombinierte Seitenanordnung
spread_none.title=Seiten nicht nebeneinander anzeigen
spread_none_label=Einzelne Seiten
spread_odd.title=Jeweils eine ungerade und eine gerade Seite nebeneinander anzeigen
spread_odd_label=Ungerade + gerade Seite
spread_even.title=Jeweils eine gerade und eine ungerade Seite nebeneinander anzeigen
spread_even_label=Gerade + ungerade Seite
# Document properties dialog box # Document properties dialog box
document_properties.title=Dokumenteigenschaften document_properties.title=Dokumenteigenschaften
document_properties_label=Dokumenteigenschaften… document_properties_label=Dokumenteigenschaften…
document_properties_file_name=Dateiname: document_properties_file_name=Dateiname:
document_properties_file_size=Dateigröße: document_properties_file_size=Dateigröße:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} KB ({{size_b}} Bytes) document_properties_kb={{size_kb}} KB ({{size_b}} Bytes)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} MB ({{size_b}} Bytes) document_properties_mb={{size_mb}} MB ({{size_b}} Bytes)
document_properties_title=Titel: document_properties_title=Titel:
document_properties_author=Autor: document_properties_author=Autor:
...@@ -75,27 +103,65 @@ document_properties_subject=Thema: ...@@ -75,27 +103,65 @@ document_properties_subject=Thema:
document_properties_keywords=Stichwörter: document_properties_keywords=Stichwörter:
document_properties_creation_date=Erstelldatum: document_properties_creation_date=Erstelldatum:
document_properties_modification_date=Bearbeitungsdatum: document_properties_modification_date=Bearbeitungsdatum:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}} {{time}} document_properties_date_string={{date}} {{time}}
document_properties_creator=Anwendung: document_properties_creator=Anwendung:
document_properties_producer=PDF erstellt mit: document_properties_producer=PDF erstellt mit:
document_properties_version=PDF-Version: document_properties_version=PDF-Version:
document_properties_page_count=Seitenzahl: document_properties_page_count=Seitenzahl:
document_properties_page_size=Seitengröße:
document_properties_page_size_unit_inches=Zoll
document_properties_page_size_unit_millimeters=mm
document_properties_page_size_orientation_portrait=Hochformat
document_properties_page_size_orientation_landscape=Querformat
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=Letter
document_properties_page_size_name_legal=Legal
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=Schnelle Webanzeige:
document_properties_linearized_yes=Ja
document_properties_linearized_no=Nein
document_properties_close=Schließen document_properties_close=Schließen
print_progress_message=Dokument wird für Drucken vorbereitet…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}} %
print_progress_close=Abbrechen
# Tooltips and alt text for side panel toolbar buttons # Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are # (the _label strings are alt text for the buttons, the .title strings are
# tooltips) # tooltips)
toggle_sidebar.title=Sidebar umschalten toggle_sidebar.title=Sidebar umschalten
toggle_sidebar_notification2.title=Sidebar umschalten (Dokument enthält Dokumentstruktur/Anhänge/Ebenen)
toggle_sidebar_label=Sidebar umschalten toggle_sidebar_label=Sidebar umschalten
outline.title=Dokumentstruktur anzeigen document_outline.title=Dokumentstruktur anzeigen (Doppelklicken, um alle Einträge aus- bzw. einzuklappen)
outline_label=Dokumentstruktur document_outline_label=Dokumentstruktur
attachments.title=Anhänge anzeigen attachments.title=Anhänge anzeigen
attachments_label=Anhänge attachments_label=Anhänge
layers.title=Ebenen anzeigen (Doppelklicken, um alle Ebenen auf den Standardzustand zurückzusetzen)
layers_label=Ebenen
thumbs.title=Miniaturansichten anzeigen thumbs.title=Miniaturansichten anzeigen
thumbs_label=Miniaturansichten thumbs_label=Miniaturansichten
current_outline_item.title=Aktuelles Struktur-Element finden
current_outline_item_label=Aktuelles Struktur-Element
findbar.title=Dokument durchsuchen findbar.title=Dokument durchsuchen
findbar_label=Suchen findbar_label=Suchen
additional_layers=Zusätzliche Ebenen
# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
page_landmark=Seite {{page}}
# Thumbnails panel item (tooltip and alt text for images) # Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number. # number.
...@@ -105,36 +171,41 @@ thumb_page_title=Seite {{page}} ...@@ -105,36 +171,41 @@ thumb_page_title=Seite {{page}}
thumb_page_canvas=Miniaturansicht von Seite {{page}} thumb_page_canvas=Miniaturansicht von Seite {{page}}
# Find panel button title and messages # Find panel button title and messages
find_label=Suchen: find_input.title=Suchen
find_previous.title=Vorheriges Auftreten des Suchbegriffs finden find_input.placeholder=Dokument durchsuchen…
find_previous.title=Vorheriges Vorkommen des Suchbegriffs finden
find_previous_label=Zurück find_previous_label=Zurück
find_next.title=Nächstes Auftreten des Suchbegriffs finden find_next.title=Nächstes Vorkommen des Suchbegriffs finden
find_next_label=Weiter find_next_label=Weiter
find_highlight=Alle hervorheben find_highlight=Alle hervorheben
find_match_case_label=Groß-/Kleinschreibung beachten find_match_case_label=Groß-/Kleinschreibung beachten
find_match_diacritics_label=Akzente
find_entire_word_label=Ganze Wörter
find_reached_top=Anfang des Dokuments erreicht, fahre am Ende fort find_reached_top=Anfang des Dokuments erreicht, fahre am Ende fort
find_reached_bottom=Ende des Dokuments erreicht, fahre am Anfang fort find_reached_bottom=Ende des Dokuments erreicht, fahre am Anfang fort
# LOCALIZATION NOTE (find_match_count): The supported plural forms are
# [one|two|few|many|other], with [other] as the default value.
# "{{current}}" and "{{total}}" will be replaced by a number representing the
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
find_match_count={[ plural(total) ]}
find_match_count[one]={{current}} von {{total}} Übereinstimmung
find_match_count[two]={{current}} von {{total}} Übereinstimmungen
find_match_count[few]={{current}} von {{total}} Übereinstimmungen
find_match_count[many]={{current}} von {{total}} Übereinstimmungen
find_match_count[other]={{current}} von {{total}} Übereinstimmungen
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_match_count_limit={[ plural(limit) ]}
find_match_count_limit[zero]=Mehr als {{limit}} Übereinstimmungen
find_match_count_limit[one]=Mehr als {{limit}} Übereinstimmung
find_match_count_limit[two]=Mehr als {{limit}} Übereinstimmungen
find_match_count_limit[few]=Mehr als {{limit}} Übereinstimmungen
find_match_count_limit[many]=Mehr als {{limit}} Übereinstimmungen
find_match_count_limit[other]=Mehr als {{limit}} Übereinstimmungen
find_not_found=Suchbegriff nicht gefunden find_not_found=Suchbegriff nicht gefunden
# Error panel labels
error_more_info=Mehr Informationen
error_less_info=Weniger Informationen
error_close=Schließen
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js Version {{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Nachricht: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Aufrufliste: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Datei: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Zeile: {{line}}
rendering_error=Beim Darstellen der Seite trat ein Fehler auf.
# Predefined zoom values # Predefined zoom values
page_scale_width=Seitenbreite page_scale_width=Seitenbreite
page_scale_fit=Seitengröße page_scale_fit=Seitengröße
...@@ -142,14 +213,18 @@ page_scale_auto=Automatischer Zoom ...@@ -142,14 +213,18 @@ page_scale_auto=Automatischer Zoom
page_scale_actual=Originalgröße page_scale_actual=Originalgröße
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value. # numerical scale value.
page_scale_percent={{scale}}% page_scale_percent={{scale}} %
# Loading indicator messages # Loading indicator messages
loading_error_indicator=Fehler
loading_error=Beim Laden der PDF-Datei trat ein Fehler auf. loading_error=Beim Laden der PDF-Datei trat ein Fehler auf.
invalid_file_error=Ungültige oder beschädigte PDF-Datei invalid_file_error=Ungültige oder beschädigte PDF-Datei
missing_file_error=Fehlende PDF-Datei missing_file_error=Fehlende PDF-Datei
unexpected_response_error=Unerwartete Antwort des Servers unexpected_response_error=Unerwartete Antwort des Servers
rendering_error=Beim Darstellen der Seite trat ein Fehler auf.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in # "{{type}}" will be replaced with an annotation type from a list defined in
...@@ -164,4 +239,32 @@ password_cancel=Abbrechen ...@@ -164,4 +239,32 @@ password_cancel=Abbrechen
printing_not_supported=Warnung: Die Drucken-Funktion wird durch diesen Browser nicht vollständig unterstützt. printing_not_supported=Warnung: Die Drucken-Funktion wird durch diesen Browser nicht vollständig unterstützt.
printing_not_ready=Warnung: Die PDF-Datei ist nicht vollständig geladen, dies ist für das Drucken aber empfohlen. printing_not_ready=Warnung: Die PDF-Datei ist nicht vollständig geladen, dies ist für das Drucken aber empfohlen.
web_fonts_disabled=Web-Schriftarten sind deaktiviert: Eingebettete PDF-Schriftarten konnten nicht geladen werden. web_fonts_disabled=Web-Schriftarten sind deaktiviert: Eingebettete PDF-Schriftarten konnten nicht geladen werden.
document_colors_disabled=PDF-Dokumenten ist es nicht erlaubt, ihre eigenen Farben zu verwenden: \'Seiten das Verwenden von eigenen Farben erlauben\' ist im Browser deaktiviert.
# Editor
editor_free_text2.title=Text
editor_free_text2_label=Text
editor_ink2.title=Zeichnen
editor_ink2_label=Zeichnen
editor_stamp.title=Ein Bild hinzufügen
editor_stamp_label=Ein Bild hinzufügen
editor_stamp1.title=Grafiken hinzufügen oder bearbeiten
editor_stamp1_label=Grafiken hinzufügen oder bearbeiten
free_text2_default_content=Schreiben beginnen…
# Editor Parameters
editor_free_text_color=Farbe
editor_free_text_size=Größe
editor_ink_color=Farbe
editor_ink_thickness=Dicke
editor_ink_opacity=Deckkraft
editor_stamp_add_image_label=Grafik hinzufügen
editor_stamp_add_image.title=Grafik hinzufügen
# Editor aria
editor_free_text2_aria_label=Texteditor
editor_ink2_aria_label=Zeichnungseditor
editor_ink_canvas_aria_label=Vom Benutzer erstelltes Bild
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value> <value> <string>application/octet-stream</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>en-GB</string> </value> <value> <string></string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
...@@ -18,12 +18,15 @@ previous_label=Previous ...@@ -18,12 +18,15 @@ previous_label=Previous
next.title=Next Page next.title=Next Page
next_label=Next next_label=Next
# LOCALIZATION NOTE (page_label, page_of): # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# These strings are concatenated to form the "Page: X of Y" string. page.title=Page
# Do not translate "{{pageCount}}", it will be substituted with a number # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages. # representing the total number of pages in the document.
page_label=Page: of_pages=of {{pagesCount}}
page_of=of {{pageCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} of {{pagesCount}})
zoom_out.title=Zoom Out zoom_out.title=Zoom Out
zoom_out_label=Zoom Out zoom_out_label=Zoom Out
...@@ -36,38 +39,63 @@ open_file.title=Open File ...@@ -36,38 +39,63 @@ open_file.title=Open File
open_file_label=Open open_file_label=Open
print.title=Print print.title=Print
print_label=Print print_label=Print
download.title=Download save.title=Save
download_label=Download save_label=Save
bookmark.title=Current view (copy or open in new window) # LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
bookmark_label=Current View download_button.title=Download
# LOCALIZATION NOTE (download_button_label): used in Firefox for Android as a label for the download button (“download” is a verb).
# Length of the translation matters since we are in a mobile context, with limited screen estate.
download_button_label=Download
bookmark1.title=Current Page (View URL from Current Page)
bookmark1_label=Current Page
# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
open_in_app.title=Open in app
# LOCALIZATION NOTE (open_in_app_label): This string is used in Firefox for Android. Length of the translation matters since we are in a mobile context, with limited screen estate.
open_in_app_label=Open in app
# Secondary toolbar and context menu # Secondary toolbar and context menu
tools.title=Tools tools.title=Tools
tools_label=Tools tools_label=Tools
first_page.title=Go to First Page first_page.title=Go to First Page
first_page.label=Go to First Page
first_page_label=Go to First Page first_page_label=Go to First Page
last_page.title=Go to Last Page last_page.title=Go to Last Page
last_page.label=Go to Last Page
last_page_label=Go to Last Page last_page_label=Go to Last Page
page_rotate_cw.title=Rotate Clockwise page_rotate_cw.title=Rotate Clockwise
page_rotate_cw.label=Rotate Clockwise
page_rotate_cw_label=Rotate Clockwise page_rotate_cw_label=Rotate Clockwise
page_rotate_ccw.title=Rotate Anti-Clockwise page_rotate_ccw.title=Rotate Anti-Clockwise
page_rotate_ccw.label=Rotate Anti-Clockwise
page_rotate_ccw_label=Rotate Anti-Clockwise page_rotate_ccw_label=Rotate Anti-Clockwise
hand_tool_enable.title=Enable hand tool cursor_text_select_tool.title=Enable Text Selection Tool
hand_tool_enable_label=Enable hand tool cursor_text_select_tool_label=Text Selection Tool
hand_tool_disable.title=Disable hand tool cursor_hand_tool.title=Enable Hand Tool
hand_tool_disable_label=Disable hand tool cursor_hand_tool_label=Hand Tool
scroll_page.title=Use Page Scrolling
scroll_page_label=Page Scrolling
scroll_vertical.title=Use Vertical Scrolling
scroll_vertical_label=Vertical Scrolling
scroll_horizontal.title=Use Horizontal Scrolling
scroll_horizontal_label=Horizontal Scrolling
scroll_wrapped.title=Use Wrapped Scrolling
scroll_wrapped_label=Wrapped Scrolling
spread_none.title=Do not join page spreads
spread_none_label=No Spreads
spread_odd.title=Join page spreads starting with odd-numbered pages
spread_odd_label=Odd Spreads
spread_even.title=Join page spreads starting with even-numbered pages
spread_even_label=Even Spreads
# Document properties dialog box # Document properties dialog box
document_properties.title=Document Properties… document_properties.title=Document Properties…
document_properties_label=Document Properties… document_properties_label=Document Properties…
document_properties_file_name=File name: document_properties_file_name=File name:
document_properties_file_size=File size: document_properties_file_size=File size:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} kB ({{size_b}} bytes) document_properties_kb={{size_kb}} kB ({{size_b}} bytes)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} MB ({{size_b}} bytes) document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
document_properties_title=Title: document_properties_title=Title:
document_properties_author=Author: document_properties_author=Author:
...@@ -75,27 +103,65 @@ document_properties_subject=Subject: ...@@ -75,27 +103,65 @@ document_properties_subject=Subject:
document_properties_keywords=Keywords: document_properties_keywords=Keywords:
document_properties_creation_date=Creation Date: document_properties_creation_date=Creation Date:
document_properties_modification_date=Modification Date: document_properties_modification_date=Modification Date:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}} document_properties_date_string={{date}}, {{time}}
document_properties_creator=Creator: document_properties_creator=Creator:
document_properties_producer=PDF Producer: document_properties_producer=PDF Producer:
document_properties_version=PDF Version: document_properties_version=PDF Version:
document_properties_page_count=Page Count: document_properties_page_count=Page Count:
document_properties_page_size=Page Size:
document_properties_page_size_unit_inches=in
document_properties_page_size_unit_millimeters=mm
document_properties_page_size_orientation_portrait=portrait
document_properties_page_size_orientation_landscape=landscape
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=Letter
document_properties_page_size_name_legal=Legal
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=Fast Web View:
document_properties_linearized_yes=Yes
document_properties_linearized_no=No
document_properties_close=Close document_properties_close=Close
print_progress_message=Preparing document for printing…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=Cancel
# Tooltips and alt text for side panel toolbar buttons # Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are # (the _label strings are alt text for the buttons, the .title strings are
# tooltips) # tooltips)
toggle_sidebar.title=Toggle Sidebar toggle_sidebar.title=Toggle Sidebar
toggle_sidebar_notification2.title=Toggle Sidebar (document contains outline/attachments/layers)
toggle_sidebar_label=Toggle Sidebar toggle_sidebar_label=Toggle Sidebar
outline.title=Show Document Outline document_outline.title=Show Document Outline (double-click to expand/collapse all items)
outline_label=Document Outline document_outline_label=Document Outline
attachments.title=Show Attachments attachments.title=Show Attachments
attachments_label=Attachments attachments_label=Attachments
layers.title=Show Layers (double-click to reset all layers to the default state)
layers_label=Layers
thumbs.title=Show Thumbnails thumbs.title=Show Thumbnails
thumbs_label=Thumbnails thumbs_label=Thumbnails
current_outline_item.title=Find Current Outline Item
current_outline_item_label=Current Outline Item
findbar.title=Find in Document findbar.title=Find in Document
findbar_label=Find findbar_label=Find
additional_layers=Additional Layers
# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
page_landmark=Page {{page}}
# Thumbnails panel item (tooltip and alt text for images) # Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number. # number.
...@@ -105,36 +171,41 @@ thumb_page_title=Page {{page}} ...@@ -105,36 +171,41 @@ thumb_page_title=Page {{page}}
thumb_page_canvas=Thumbnail of Page {{page}} thumb_page_canvas=Thumbnail of Page {{page}}
# Find panel button title and messages # Find panel button title and messages
find_label=Find: find_input.title=Find
find_input.placeholder=Find in document…
find_previous.title=Find the previous occurrence of the phrase find_previous.title=Find the previous occurrence of the phrase
find_previous_label=Previous find_previous_label=Previous
find_next.title=Find the next occurrence of the phrase find_next.title=Find the next occurrence of the phrase
find_next_label=Next find_next_label=Next
find_highlight=Highlight all find_highlight=Highlight All
find_match_case_label=Match case find_match_case_label=Match Case
find_match_diacritics_label=Match Diacritics
find_entire_word_label=Whole Words
find_reached_top=Reached top of document, continued from bottom find_reached_top=Reached top of document, continued from bottom
find_reached_bottom=Reached end of document, continued from top find_reached_bottom=Reached end of document, continued from top
# LOCALIZATION NOTE (find_match_count): The supported plural forms are
# [one|two|few|many|other], with [other] as the default value.
# "{{current}}" and "{{total}}" will be replaced by a number representing the
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
find_match_count={[ plural(total) ]}
find_match_count[one]={{current}} of {{total}} match
find_match_count[two]={{current}} of {{total}} matches
find_match_count[few]={{current}} of {{total}} matches
find_match_count[many]={{current}} of {{total}} matches
find_match_count[other]={{current}} of {{total}} matches
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_match_count_limit={[ plural(limit) ]}
find_match_count_limit[zero]=More than {{limit}} matches
find_match_count_limit[one]=More than {{limit}} match
find_match_count_limit[two]=More than {{limit}} matches
find_match_count_limit[few]=More than {{limit}} matches
find_match_count_limit[many]=More than {{limit}} matches
find_match_count_limit[other]=More than {{limit}} matches
find_not_found=Phrase not found find_not_found=Phrase not found
# Error panel labels
error_more_info=More Information
error_less_info=Less Information
error_close=Close
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Message: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Stack: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=File: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Line: {{line}}
rendering_error=An error occurred while rendering the page.
# Predefined zoom values # Predefined zoom values
page_scale_width=Page Width page_scale_width=Page Width
page_scale_fit=Page Fit page_scale_fit=Page Fit
...@@ -145,11 +216,15 @@ page_scale_actual=Actual Size ...@@ -145,11 +216,15 @@ page_scale_actual=Actual Size
page_scale_percent={{scale}}% page_scale_percent={{scale}}%
# Loading indicator messages # Loading indicator messages
loading_error_indicator=Error
loading_error=An error occurred while loading the PDF. loading_error=An error occurred while loading the PDF.
invalid_file_error=Invalid or corrupted PDF file. invalid_file_error=Invalid or corrupted PDF file.
missing_file_error=Missing PDF file. missing_file_error=Missing PDF file.
unexpected_response_error=Unexpected server response. unexpected_response_error=Unexpected server response.
rendering_error=An error occurred while rendering the page.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in # "{{type}}" will be replaced with an annotation type from a list defined in
...@@ -164,4 +239,46 @@ password_cancel=Cancel ...@@ -164,4 +239,46 @@ password_cancel=Cancel
printing_not_supported=Warning: Printing is not fully supported by this browser. printing_not_supported=Warning: Printing is not fully supported by this browser.
printing_not_ready=Warning: The PDF is not fully loaded for printing. printing_not_ready=Warning: The PDF is not fully loaded for printing.
web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts. web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts.
document_colors_disabled=PDF documents are not allowed to use their own colours: 'Allow pages to choose their own colours' is deactivated in the browser.
# Editor
editor_free_text2.title=Text
editor_free_text2_label=Text
editor_ink2.title=Draw
editor_ink2_label=Draw
editor_stamp1.title=Add or edit images
editor_stamp1_label=Add or edit images
free_text2_default_content=Start typing…
# Editor Parameters
editor_free_text_color=Colour
editor_free_text_size=Size
editor_ink_color=Colour
editor_ink_thickness=Thickness
editor_ink_opacity=Opacity
editor_stamp_add_image_label=Add image
editor_stamp_add_image.title=Add image
# Editor aria
editor_free_text2_aria_label=Text Editor
editor_ink2_aria_label=Draw Editor
editor_ink_canvas_aria_label=User-created image
# Alt-text dialog
# LOCALIZATION NOTE (editor_alt_text_button_label): Alternative text (alt text) helps
# when people can't see the image.
editor_alt_text_button_label=Alt text
editor_alt_text_edit_button_label=Edit alt text
editor_alt_text_dialog_label=Choose an option
editor_alt_text_dialog_description=Alt text (alternative text) helps when people can’t see the image or when it doesn’t load.
editor_alt_text_add_description_label=Add a description
editor_alt_text_add_description_description=Aim for 1-2 sentences that describe the subject, setting, or actions.
editor_alt_text_mark_decorative_label=Mark as decorative
editor_alt_text_mark_decorative_description=This is used for ornamental images, like borders or watermarks.
editor_alt_text_cancel_button=Cancel
editor_alt_text_save_button=Save
editor_alt_text_decorative_tooltip=Marked as decorative
# This is a placeholder for the alt text input area
editor_alt_text_textarea.placeholder=For example, “A young man sits down at a table to eat a meal”
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value> <value> <string>application/octet-stream</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>us</string> </value> <value> <string></string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
...@@ -18,12 +18,15 @@ previous_label=Previous ...@@ -18,12 +18,15 @@ previous_label=Previous
next.title=Next Page next.title=Next Page
next_label=Next next_label=Next
# LOCALIZATION NOTE (page_label, page_of): # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# These strings are concatenated to form the "Page: X of Y" string. page.title=Page
# Do not translate "{{pageCount}}", it will be substituted with a number # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages. # representing the total number of pages in the document.
page_label=Page: of_pages=of {{pagesCount}}
page_of=of {{pageCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} of {{pagesCount}})
zoom_out.title=Zoom Out zoom_out.title=Zoom Out
zoom_out_label=Zoom Out zoom_out_label=Zoom Out
...@@ -36,31 +39,52 @@ open_file.title=Open File ...@@ -36,31 +39,52 @@ open_file.title=Open File
open_file_label=Open open_file_label=Open
print.title=Print print.title=Print
print_label=Print print_label=Print
download.title=Download save.title=Save
download_label=Download save_label=Save
bookmark.title=Current view (copy or open in new window) # LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
bookmark_label=Current View download_button.title=Download
# LOCALIZATION NOTE (download_button_label): used in Firefox for Android as a label for the download button (“download” is a verb).
# Length of the translation matters since we are in a mobile context, with limited screen estate.
download_button_label=Download
bookmark1.title=Current Page (View URL from Current Page)
bookmark1_label=Current Page
# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
open_in_app.title=Open in app
# LOCALIZATION NOTE (open_in_app_label): This string is used in Firefox for Android. Length of the translation matters since we are in a mobile context, with limited screen estate.
open_in_app_label=Open in app
# Secondary toolbar and context menu # Secondary toolbar and context menu
tools.title=Tools tools.title=Tools
tools_label=Tools tools_label=Tools
first_page.title=Go to First Page first_page.title=Go to First Page
first_page.label=Go to First Page
first_page_label=Go to First Page first_page_label=Go to First Page
last_page.title=Go to Last Page last_page.title=Go to Last Page
last_page.label=Go to Last Page
last_page_label=Go to Last Page last_page_label=Go to Last Page
page_rotate_cw.title=Rotate Clockwise page_rotate_cw.title=Rotate Clockwise
page_rotate_cw.label=Rotate Clockwise
page_rotate_cw_label=Rotate Clockwise page_rotate_cw_label=Rotate Clockwise
page_rotate_ccw.title=Rotate Counterclockwise page_rotate_ccw.title=Rotate Counterclockwise
page_rotate_ccw.label=Rotate Counterclockwise
page_rotate_ccw_label=Rotate Counterclockwise page_rotate_ccw_label=Rotate Counterclockwise
hand_tool_enable.title=Enable hand tool cursor_text_select_tool.title=Enable Text Selection Tool
hand_tool_enable_label=Enable hand tool cursor_text_select_tool_label=Text Selection Tool
hand_tool_disable.title=Disable hand tool cursor_hand_tool.title=Enable Hand Tool
hand_tool_disable_label=Disable hand tool cursor_hand_tool_label=Hand Tool
scroll_page.title=Use Page Scrolling
scroll_page_label=Page Scrolling
scroll_vertical.title=Use Vertical Scrolling
scroll_vertical_label=Vertical Scrolling
scroll_horizontal.title=Use Horizontal Scrolling
scroll_horizontal_label=Horizontal Scrolling
scroll_wrapped.title=Use Wrapped Scrolling
scroll_wrapped_label=Wrapped Scrolling
spread_none.title=Do not join page spreads
spread_none_label=No Spreads
spread_odd.title=Join page spreads starting with odd-numbered pages
spread_odd_label=Odd Spreads
spread_even.title=Join page spreads starting with even-numbered pages
spread_even_label=Even Spreads
# Document properties dialog box # Document properties dialog box
document_properties.title=Document Properties… document_properties.title=Document Properties…
...@@ -86,22 +110,58 @@ document_properties_creator=Creator: ...@@ -86,22 +110,58 @@ document_properties_creator=Creator:
document_properties_producer=PDF Producer: document_properties_producer=PDF Producer:
document_properties_version=PDF Version: document_properties_version=PDF Version:
document_properties_page_count=Page Count: document_properties_page_count=Page Count:
document_properties_page_size=Page Size:
document_properties_page_size_unit_inches=in
document_properties_page_size_unit_millimeters=mm
document_properties_page_size_orientation_portrait=portrait
document_properties_page_size_orientation_landscape=landscape
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=Letter
document_properties_page_size_name_legal=Legal
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=Fast Web View:
document_properties_linearized_yes=Yes
document_properties_linearized_no=No
document_properties_close=Close document_properties_close=Close
print_progress_message=Preparing document for printing…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=Cancel
# Tooltips and alt text for side panel toolbar buttons # Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are # (the _label strings are alt text for the buttons, the .title strings are
# tooltips) # tooltips)
toggle_sidebar.title=Toggle Sidebar toggle_sidebar.title=Toggle Sidebar
toggle_sidebar_notification2.title=Toggle Sidebar (document contains outline/attachments/layers)
toggle_sidebar_label=Toggle Sidebar toggle_sidebar_label=Toggle Sidebar
outline.title=Show Document Outline document_outline.title=Show Document Outline (double-click to expand/collapse all items)
outline_label=Document Outline document_outline_label=Document Outline
attachments.title=Show Attachments attachments.title=Show Attachments
attachments_label=Attachments attachments_label=Attachments
layers.title=Show Layers (double-click to reset all layers to the default state)
layers_label=Layers
thumbs.title=Show Thumbnails thumbs.title=Show Thumbnails
thumbs_label=Thumbnails thumbs_label=Thumbnails
current_outline_item.title=Find Current Outline Item
current_outline_item_label=Current Outline Item
findbar.title=Find in Document findbar.title=Find in Document
findbar_label=Find findbar_label=Find
additional_layers=Additional Layers
# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
page_landmark=Page {{page}}
# Thumbnails panel item (tooltip and alt text for images) # Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number. # number.
...@@ -111,36 +171,41 @@ thumb_page_title=Page {{page}} ...@@ -111,36 +171,41 @@ thumb_page_title=Page {{page}}
thumb_page_canvas=Thumbnail of Page {{page}} thumb_page_canvas=Thumbnail of Page {{page}}
# Find panel button title and messages # Find panel button title and messages
find_label=Find: find_input.title=Find
find_input.placeholder=Find in document…
find_previous.title=Find the previous occurrence of the phrase find_previous.title=Find the previous occurrence of the phrase
find_previous_label=Previous find_previous_label=Previous
find_next.title=Find the next occurrence of the phrase find_next.title=Find the next occurrence of the phrase
find_next_label=Next find_next_label=Next
find_highlight=Highlight all find_highlight=Highlight All
find_match_case_label=Match case find_match_case_label=Match Case
find_match_diacritics_label=Match Diacritics
find_entire_word_label=Whole Words
find_reached_top=Reached top of document, continued from bottom find_reached_top=Reached top of document, continued from bottom
find_reached_bottom=Reached end of document, continued from top find_reached_bottom=Reached end of document, continued from top
# LOCALIZATION NOTE (find_match_count): The supported plural forms are
# [one|two|few|many|other], with [other] as the default value.
# "{{current}}" and "{{total}}" will be replaced by a number representing the
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
find_match_count={[ plural(total) ]}
find_match_count[one]={{current}} of {{total}} match
find_match_count[two]={{current}} of {{total}} matches
find_match_count[few]={{current}} of {{total}} matches
find_match_count[many]={{current}} of {{total}} matches
find_match_count[other]={{current}} of {{total}} matches
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_match_count_limit={[ plural(limit) ]}
find_match_count_limit[zero]=More than {{limit}} matches
find_match_count_limit[one]=More than {{limit}} match
find_match_count_limit[two]=More than {{limit}} matches
find_match_count_limit[few]=More than {{limit}} matches
find_match_count_limit[many]=More than {{limit}} matches
find_match_count_limit[other]=More than {{limit}} matches
find_not_found=Phrase not found find_not_found=Phrase not found
# Error panel labels
error_more_info=More Information
error_less_info=Less Information
error_close=Close
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Message: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Stack: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=File: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Line: {{line}}
rendering_error=An error occurred while rendering the page.
# Predefined zoom values # Predefined zoom values
page_scale_width=Page Width page_scale_width=Page Width
page_scale_fit=Page Fit page_scale_fit=Page Fit
...@@ -151,11 +216,15 @@ page_scale_actual=Actual Size ...@@ -151,11 +216,15 @@ page_scale_actual=Actual Size
page_scale_percent={{scale}}% page_scale_percent={{scale}}%
# Loading indicator messages # Loading indicator messages
loading_error_indicator=Error
loading_error=An error occurred while loading the PDF. loading_error=An error occurred while loading the PDF.
invalid_file_error=Invalid or corrupted PDF file. invalid_file_error=Invalid or corrupted PDF file.
missing_file_error=Missing PDF file. missing_file_error=Missing PDF file.
unexpected_response_error=Unexpected server response. unexpected_response_error=Unexpected server response.
rendering_error=An error occurred while rendering the page.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in # "{{type}}" will be replaced with an annotation type from a list defined in
...@@ -170,4 +239,44 @@ password_cancel=Cancel ...@@ -170,4 +239,44 @@ password_cancel=Cancel
printing_not_supported=Warning: Printing is not fully supported by this browser. printing_not_supported=Warning: Printing is not fully supported by this browser.
printing_not_ready=Warning: The PDF is not fully loaded for printing. printing_not_ready=Warning: The PDF is not fully loaded for printing.
web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts. web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts.
document_colors_not_allowed=PDF documents are not allowed to use their own colors: 'Allow pages to choose their own colors' is deactivated in the browser.
# Editor
editor_free_text2.title=Text
editor_free_text2_label=Text
editor_ink2.title=Draw
editor_ink2_label=Draw
editor_stamp1.title=Add or edit images
editor_stamp1_label=Add or edit images
free_text2_default_content=Start typing…
# Editor Parameters
editor_free_text_color=Color
editor_free_text_size=Size
editor_ink_color=Color
editor_ink_thickness=Thickness
editor_ink_opacity=Opacity
editor_stamp_add_image_label=Add image
editor_stamp_add_image.title=Add image
# Editor aria
editor_free_text2_aria_label=Text Editor
editor_ink2_aria_label=Draw Editor
editor_ink_canvas_aria_label=User-created image
# Alt-text dialog
# LOCALIZATION NOTE (editor_alt_text_button_label): Alternative text (alt text) helps
# when people can't see the image.
editor_alt_text_button_label=Alt text
editor_alt_text_edit_button_label=Edit alt text
editor_alt_text_dialog_label=Choose an option
editor_alt_text_dialog_description=Alt text (alternative text) helps when people can’t see the image or when it doesn’t load.
editor_alt_text_add_description_label=Add a description
editor_alt_text_add_description_description=Aim for 1-2 sentences that describe the subject, setting, or actions.
editor_alt_text_mark_decorative_label=Mark as decorative
editor_alt_text_mark_decorative_description=This is used for ornamental images, like borders or watermarks.
editor_alt_text_cancel_button=Cancel
editor_alt_text_save_button=Save
editor_alt_text_decorative_tooltip=Marked as decorative
# This is a placeholder for the alt text input area
editor_alt_text_textarea.placeholder=For example, “A young man sits down at a table to eat a meal”
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value> <value> <string>application/octet-stream</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
...@@ -18,12 +18,15 @@ previous_label=قبلی ...@@ -18,12 +18,15 @@ previous_label=قبلی
next.title=صفحهٔ بعدی next.title=صفحهٔ بعدی
next_label=بعدی next_label=بعدی
# LOCALIZATION NOTE (page_label, page_of): # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# These strings are concatenated to form the "Page: X of Y" string. page.title=صفحه
# Do not translate "{{pageCount}}", it will be substituted with a number # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages. # representing the total number of pages in the document.
page_label=صفحه: of_pages=از {{pagesCount}}
page_of=از {{pageCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}}از {{pagesCount}})
zoom_out.title=کوچک‌نمایی zoom_out.title=کوچک‌نمایی
zoom_out_label=کوچک‌نمایی zoom_out_label=کوچک‌نمایی
...@@ -36,31 +39,32 @@ open_file.title=باز کردن پرونده ...@@ -36,31 +39,32 @@ open_file.title=باز کردن پرونده
open_file_label=باز کردن open_file_label=باز کردن
print.title=چاپ print.title=چاپ
print_label=چاپ print_label=چاپ
download.title=بارگیری
download_label=بارگیری save_label=ذخیره
bookmark.title=نمای فعلی (رونوشت و یا نشان دادن در پنجره جدید)
bookmark_label=نمای فعلی
# Secondary toolbar and context menu # Secondary toolbar and context menu
tools.title=ابزارها tools.title=ابزارها
tools_label=ابزارها tools_label=ابزارها
first_page.title=برو به اولین صفحه first_page.title=برو به اولین صفحه
first_page.label=برو یه اولین صفحه
first_page_label=برو به اولین صفحه first_page_label=برو به اولین صفحه
last_page.title=برو به آخرین صفحه last_page.title=برو به آخرین صفحه
last_page.label=برو به آخرین صفحه
last_page_label=برو به آخرین صفحه last_page_label=برو به آخرین صفحه
page_rotate_cw.title=چرخش ساعتگرد page_rotate_cw.title=چرخش ساعتگرد
page_rotate_cw.label=چرخش ساعتگرد
page_rotate_cw_label=چرخش ساعتگرد page_rotate_cw_label=چرخش ساعتگرد
page_rotate_ccw.title=چرخش پاد ساعتگرد page_rotate_ccw.title=چرخش پاد ساعتگرد
page_rotate_ccw.label=چرخش پاد ساعتگرد
page_rotate_ccw_label=چرخش پاد ساعتگرد page_rotate_ccw_label=چرخش پاد ساعتگرد
hand_tool_enable.title=فعال سازی ابزار دست cursor_text_select_tool.title=فعال کردن ابزارِ انتخابِ متن
hand_tool_enable_label=فعال سازی ابزار دست cursor_text_select_tool_label=ابزارِ انتخابِ متن
hand_tool_disable.title=غیر‌فعال سازی ابزار دست cursor_hand_tool.title=فعال کردن ابزارِ دست
hand_tool_disable_label=غیر‌فعال سازی ابزار دست cursor_hand_tool_label=ابزار دست
scroll_vertical.title=استفاده از پیمایش عمودی
scroll_vertical_label=پیمایش عمودی
scroll_horizontal.title=استفاده از پیمایش افقی
scroll_horizontal_label=پیمایش افقی
# Document properties dialog box # Document properties dialog box
document_properties.title=خصوصیات سند... document_properties.title=خصوصیات سند...
...@@ -86,22 +90,50 @@ document_properties_creator=ایجاد کننده: ...@@ -86,22 +90,50 @@ document_properties_creator=ایجاد کننده:
document_properties_producer=ایجاد کننده PDF: document_properties_producer=ایجاد کننده PDF:
document_properties_version=نسخه PDF: document_properties_version=نسخه PDF:
document_properties_page_count=تعداد صفحات: document_properties_page_count=تعداد صفحات:
document_properties_page_size=اندازه صفحه:
document_properties_page_size_unit_inches=اینچ
document_properties_page_size_unit_millimeters=میلی‌متر
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=نامه
document_properties_page_size_name_legal=حقوقی
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized_yes=بله
document_properties_linearized_no=خیر
document_properties_close=بستن document_properties_close=بستن
print_progress_message=آماده سازی مدارک برای چاپ کردن…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=لغو
# Tooltips and alt text for side panel toolbar buttons # Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are # (the _label strings are alt text for the buttons, the .title strings are
# tooltips) # tooltips)
toggle_sidebar.title=باز و بسته کردن نوار کناری toggle_sidebar.title=باز و بسته کردن نوار کناری
toggle_sidebar_label=تغییرحالت نوارکناری toggle_sidebar_label=تغییرحالت نوارکناری
outline.title=نمایش طرح نوشتار document_outline.title=نمایش رئوس مطالب مدارک(برای بازشدن/جمع شدن همه موارد دوبار کلیک کنید)
outline_label=طرح نوشتار document_outline_label=طرح نوشتار
attachments.title=نمایش پیوست‌ها attachments.title=نمایش پیوست‌ها
attachments_label=پیوست‌ها attachments_label=پیوست‌ها
layers_label=لایه‌ها
thumbs.title=نمایش تصاویر بندانگشتی thumbs.title=نمایش تصاویر بندانگشتی
thumbs_label=تصاویر بندانگشتی thumbs_label=تصاویر بندانگشتی
findbar.title=جستجو در سند findbar.title=جستجو در سند
findbar_label=پیدا کردن findbar_label=پیدا کردن
# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
page_landmark=صفحهٔ {{page}}
# Thumbnails panel item (tooltip and alt text for images) # Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number. # number.
...@@ -111,36 +143,32 @@ thumb_page_title=صفحه {{page}} ...@@ -111,36 +143,32 @@ thumb_page_title=صفحه {{page}}
thumb_page_canvas=تصویر بند‌ انگشتی صفحه {{page}} thumb_page_canvas=تصویر بند‌ انگشتی صفحه {{page}}
# Find panel button title and messages # Find panel button title and messages
find_label=جستجو: find_input.title=پیدا کردن
find_input.placeholder=پیدا کردن در سند…
find_previous.title=پیدا کردن رخداد قبلی عبارت find_previous.title=پیدا کردن رخداد قبلی عبارت
find_previous_label=قبلی find_previous_label=قبلی
find_next.title=پیدا کردن رخداد بعدی عبارت find_next.title=پیدا کردن رخداد بعدی عبارت
find_next_label=بعدی find_next_label=بعدی
find_highlight=برجسته و هایلایت کردن همه موارد find_highlight=برجسته و هایلایت کردن همه موارد
find_match_case_label=تطبیق کوچکی و بزرگی حروف find_match_case_label=تطبیق کوچکی و بزرگی حروف
find_entire_word_label=تمام کلمه‌ها
find_reached_top=به بالای صفحه رسیدیم، از پایین ادامه می‌دهیم find_reached_top=به بالای صفحه رسیدیم، از پایین ادامه می‌دهیم
find_reached_bottom=به آخر صفحه رسیدیم، از بالا ادامه می‌دهیم find_reached_bottom=به آخر صفحه رسیدیم، از بالا ادامه می‌دهیم
# LOCALIZATION NOTE (find_match_count): The supported plural forms are
# [one|two|few|many|other], with [other] as the default value.
# "{{current}}" and "{{total}}" will be replaced by a number representing the
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
find_match_count[one]={{current}} از {{total}} مطابقت دارد
find_match_count[two]={{current}} از {{total}} مطابقت دارد
find_match_count[few]={{current}} از {{total}} مطابقت دارد
find_match_count[many]={{current}} از {{total}} مطابقت دارد
find_match_count[other]={{current}} از {{total}} مطابقت دارد
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_not_found=عبارت پیدا نشد find_not_found=عبارت پیدا نشد
# Error panel labels
error_more_info=اطلاعات بیشتر
error_less_info=اطلاعات کمتر
error_close=بستن
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=‏PDF.js ورژن{{version}} ‏(ساخت: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=پیام: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=توده: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=پرونده: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=سطر: {{line}}
rendering_error=هنگام بارگیری صفحه خطایی رخ داد.
# Predefined zoom values # Predefined zoom values
page_scale_width=عرض صفحه page_scale_width=عرض صفحه
page_scale_fit=اندازه کردن صفحه page_scale_fit=اندازه کردن صفحه
...@@ -151,12 +179,18 @@ page_scale_actual=اندازه واقعی‌ ...@@ -151,12 +179,18 @@ page_scale_actual=اندازه واقعی‌
page_scale_percent={{scale}}% page_scale_percent={{scale}}%
# Loading indicator messages # Loading indicator messages
loading_error_indicator=خطا
# Loading indicator messages
loading_error=هنگام بارگیری پرونده PDF خطایی رخ داد. loading_error=هنگام بارگیری پرونده PDF خطایی رخ داد.
invalid_file_error=پرونده PDF نامعتبر یامعیوب می‌باشد. invalid_file_error=پرونده PDF نامعتبر یامعیوب می‌باشد.
missing_file_error=پرونده PDF یافت نشد. missing_file_error=پرونده PDF یافت نشد.
unexpected_response_error=پاسخ پیش بینی نشده سرور unexpected_response_error=پاسخ پیش بینی نشده سرور
rendering_error=هنگام بارگیری صفحه خطایی رخ داد.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in # "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types). # the PDF spec (32000-1:2008 Table 169 – Annotation types).
...@@ -165,9 +199,23 @@ text_annotation_type.alt=[{{type}} Annotation] ...@@ -165,9 +199,23 @@ text_annotation_type.alt=[{{type}} Annotation]
password_label=جهت باز کردن پرونده PDF گذرواژه را وارد نمائید. password_label=جهت باز کردن پرونده PDF گذرواژه را وارد نمائید.
password_invalid=گذرواژه نامعتبر. لطفا مجددا تلاش کنید. password_invalid=گذرواژه نامعتبر. لطفا مجددا تلاش کنید.
password_ok=تأیید password_ok=تأیید
password_cancel=انصراف password_cancel=لغو
printing_not_supported=هشدار: قابلیت چاپ به‌طور کامل در این مرورگر پشتیبانی نمی‌شود. printing_not_supported=هشدار: قابلیت چاپ به‌طور کامل در این مرورگر پشتیبانی نمی‌شود.
printing_not_ready=اخطار: پرونده PDF بطور کامل بارگیری نشده و امکان چاپ وجود ندارد. printing_not_ready=اخطار: پرونده PDF بطور کامل بارگیری نشده و امکان چاپ وجود ندارد.
web_fonts_disabled=فونت های تحت وب غیر فعال شده اند: امکان استفاده از نمایش دهنده داخلی PDF وجود ندارد. web_fonts_disabled=فونت های تحت وب غیر فعال شده اند: امکان استفاده از نمایش دهنده داخلی PDF وجود ندارد.
document_colors_not_allowed=فایلهای PDF نمیتوانند که رنگ های خود را داشته باشند. لذا گزینه 'اجازه تغییر رنگ" در مرورگر غیر فعال شده است.
\ No newline at end of file # Editor
editor_free_text2.title=متن
editor_free_text2_label=متن
editor_ink2.title=کشیدن
editor_ink2_label=کشیدن
# Editor Parameters
editor_free_text_color=رنگ
editor_free_text_size=اندازه
editor_ink_color=رنگ
# Editor aria
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value> <value> <string>application/octet-stream</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>viewer.properties</string> </value> <value> <string></string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
...@@ -18,12 +18,15 @@ previous_label=Précédent ...@@ -18,12 +18,15 @@ previous_label=Précédent
next.title=Page suivante next.title=Page suivante
next_label=Suivant next_label=Suivant
# LOCALIZATION NOTE (page_label, page_of): # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# These strings are concatenated to form the "Page: X of Y" string. page.title=Page
# Do not translate "{{pageCount}}", it will be substituted with a number # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages. # representing the total number of pages in the document.
page_label=Page : of_pages=sur {{pagesCount}}
page_of=sur {{pageCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} sur {{pagesCount}})
zoom_out.title=Zoom arrière zoom_out.title=Zoom arrière
zoom_out_label=Zoom arrière zoom_out_label=Zoom arrière
...@@ -36,41 +39,129 @@ open_file.title=Ouvrir le fichier ...@@ -36,41 +39,129 @@ open_file.title=Ouvrir le fichier
open_file_label=Ouvrir le fichier open_file_label=Ouvrir le fichier
print.title=Imprimer print.title=Imprimer
print_label=Imprimer print_label=Imprimer
download.title=Télécharger save.title=Enregistrer
download_label=Télécharger save_label=Enregistrer
bookmark.title=Affichage courant (copier ou ouvrir dans une nouvelle fenêtre) # LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
bookmark_label=Affichage actuel download_button.title=Télécharger
# LOCALIZATION NOTE (download_button_label): used in Firefox for Android as a label for the download button (“download” is a verb).
# Length of the translation matters since we are in a mobile context, with limited screen estate.
download_button_label=Télécharger
bookmark1.title=Page courante (montrer l’adresse de la page courante)
bookmark1_label=Page courante
# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
open_in_app.title=Ouvrir dans une application
# LOCALIZATION NOTE (open_in_app_label): This string is used in Firefox for Android. Length of the translation matters since we are in a mobile context, with limited screen estate.
open_in_app_label=Ouvrir dans une application
# Secondary toolbar and context menu # Secondary toolbar and context menu
tools.title=Outils tools.title=Outils
tools_label=Outils tools_label=Outils
first_page.title=Aller à la première page first_page.title=Aller à la première page
first_page.label=Aller à la première page
first_page_label=Aller à la première page first_page_label=Aller à la première page
last_page.title=Aller à la dernière page last_page.title=Aller à la dernière page
last_page.label=Aller à la dernière page
last_page_label=Aller à la dernière page last_page_label=Aller à la dernière page
page_rotate_cw.title=Rotation horaire page_rotate_cw.title=Rotation horaire
page_rotate_cw.label=Rotation horaire
page_rotate_cw_label=Rotation horaire page_rotate_cw_label=Rotation horaire
page_rotate_ccw.title=Rotation anti-horaire page_rotate_ccw.title=Rotation antihoraire
page_rotate_ccw.label=Rotation anti-horaire page_rotate_ccw_label=Rotation antihoraire
page_rotate_ccw_label=Rotation anti-horaire
cursor_text_select_tool.title=Activer l’outil de sélection de texte
cursor_text_select_tool_label=Outil de sélection de texte
cursor_hand_tool.title=Activer l’outil main
cursor_hand_tool_label=Outil main
scroll_page.title=Utiliser le défilement par page
scroll_page_label=Défilement par page
scroll_vertical.title=Utiliser le défilement vertical
scroll_vertical_label=Défilement vertical
scroll_horizontal.title=Utiliser le défilement horizontal
scroll_horizontal_label=Défilement horizontal
scroll_wrapped.title=Utiliser le défilement par bloc
scroll_wrapped_label=Défilement par bloc
spread_none.title=Ne pas afficher les pages deux à deux
spread_none_label=Pas de double affichage
spread_odd.title=Afficher les pages par deux, impaires à gauche
spread_odd_label=Doubles pages, impaires à gauche
spread_even.title=Afficher les pages par deux, paires à gauche
spread_even_label=Doubles pages, paires à gauche
# Document properties dialog box
document_properties.title=Propriétés du document…
document_properties_label=Propriétés du document…
document_properties_file_name=Nom du fichier :
document_properties_file_size=Taille du fichier :
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} Ko ({{size_b}} octets)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} Mo ({{size_b}} octets)
document_properties_title=Titre :
document_properties_author=Auteur :
document_properties_subject=Sujet :
document_properties_keywords=Mots-clés :
document_properties_creation_date=Date de création :
document_properties_modification_date=Modifié le :
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}} à {{time}}
document_properties_creator=Créé par :
document_properties_producer=Outil de conversion PDF :
document_properties_version=Version PDF :
document_properties_page_count=Nombre de pages :
document_properties_page_size=Taille de la page :
document_properties_page_size_unit_inches=in
document_properties_page_size_unit_millimeters=mm
document_properties_page_size_orientation_portrait=portrait
document_properties_page_size_orientation_landscape=paysage
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=lettre
document_properties_page_size_name_legal=document juridique
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=Affichage rapide des pages web :
document_properties_linearized_yes=Oui
document_properties_linearized_no=Non
document_properties_close=Fermer
print_progress_message=Préparation du document pour l’impression…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}} %
print_progress_close=Annuler
# Tooltips and alt text for side panel toolbar buttons # Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are # (the _label strings are alt text for the buttons, the .title strings are
# tooltips) # tooltips)
toggle_sidebar.title=Afficher/Masquer le panneau latéral toggle_sidebar.title=Afficher/Masquer le panneau latéral
toggle_sidebar_notification2.title=Afficher/Masquer le panneau latéral (le document contient des signets/pièces jointes/calques)
toggle_sidebar_label=Afficher/Masquer le panneau latéral toggle_sidebar_label=Afficher/Masquer le panneau latéral
outline.title=Afficher les signets document_outline.title=Afficher les signets du document (double-cliquer pour développer/réduire tous les éléments)
outline_label=Signets du document document_outline_label=Signets du document
attachments.title=Afficher les pièces jointes attachments.title=Afficher les pièces jointes
attachments_label=Pièces jointes attachments_label=Pièces jointes
layers.title=Afficher les calques (double-cliquer pour réinitialiser tous les calques à l’état par défaut)
layers_label=Calques
thumbs.title=Afficher les vignettes thumbs.title=Afficher les vignettes
thumbs_label=Vignettes thumbs_label=Vignettes
current_outline_item.title=Trouver l’élément de plan actuel
current_outline_item_label=Élément de plan actuel
findbar.title=Rechercher dans le document findbar.title=Rechercher dans le document
findbar_label=Rechercher findbar_label=Rechercher
additional_layers=Calques additionnels
# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
page_landmark=Page {{page}}
# Thumbnails panel item (tooltip and alt text for images) # Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number. # number.
...@@ -79,61 +170,41 @@ thumb_page_title=Page {{page}} ...@@ -79,61 +170,41 @@ thumb_page_title=Page {{page}}
# number. # number.
thumb_page_canvas=Vignette de la page {{page}} thumb_page_canvas=Vignette de la page {{page}}
hand_tool_enable.title=Activer l'outil main
hand_tool_enable_label=Activer l'outil main
hand_tool_disable.title=Désactiver l'outil main
hand_tool_disable_label=Désactiver l'outil main
# Document properties dialog box
document_properties.title=Propriétés du document…
document_properties_label=Propriétés du document…
document_properties_file_name=Nom du fichier :
document_properties_file_size=Taille du fichier :
document_properties_kb={{size_kb}} Ko ({{size_b}} octets)
document_properties_mb={{size_mb}} Mo ({{size_b}} octets)
document_properties_title=Titre :
document_properties_author=Auteur :
document_properties_subject=Sujet :
document_properties_keywords=Mots-clés :
document_properties_creation_date=Date de création :
document_properties_modification_date=Modifié le :
document_properties_date_string={{date}} à {{time}}
document_properties_creator=Créé par :
document_properties_producer=Outil de conversion PDF :
document_properties_version=Version PDF :
document_properties_page_count=Nombre de pages :
document_properties_close=Fermer
# Find panel button title and messages # Find panel button title and messages
find_label=Rechercher : find_input.title=Rechercher
find_previous.title=Trouver l'occurrence précédente de la phrase find_input.placeholder=Rechercher dans le document…
find_previous.title=Trouver l’occurrence précédente de l’expression
find_previous_label=Précédent find_previous_label=Précédent
find_next.title=Trouver la prochaine occurrence de la phrase find_next.title=Trouver la prochaine occurrence de l’expression
find_next_label=Suivant find_next_label=Suivant
find_highlight=Tout surligner find_highlight=Tout surligner
find_match_case_label=Respecter la casse find_match_case_label=Respecter la casse
find_match_diacritics_label=Respecter les accents et diacritiques
find_entire_word_label=Mots entiers
find_reached_top=Haut de la page atteint, poursuite depuis la fin find_reached_top=Haut de la page atteint, poursuite depuis la fin
find_reached_bottom=Bas de la page atteint, poursuite au début find_reached_bottom=Bas de la page atteint, poursuite au début
find_not_found=Phrase introuvable # LOCALIZATION NOTE (find_match_count): The supported plural forms are
# [one|two|few|many|other], with [other] as the default value.
# Error panel labels # "{{current}}" and "{{total}}" will be replaced by a number representing the
error_more_info=Plus d'informations # index of the currently active find result, respectively a number representing
error_less_info=Moins d'informations # the total number of matches in the document.
error_close=Fermer find_match_count={[ plural(total) ]}
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be find_match_count[one]=Occurrence {{current}} sur {{total}}
# replaced by the PDF.JS version and build ID. find_match_count[two]=Occurrence {{current}} sur {{total}}
error_version_info=PDF.js v{{version}} (identifiant de compilation : {{build}}) find_match_count[few]=Occurrence {{current}} sur {{total}}
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an find_match_count[many]=Occurrence {{current}} sur {{total}}
# english string describing the error. find_match_count[other]=Occurrence {{current}} sur {{total}}
error_message=Message : {{message}} # LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack # [zero|one|two|few|many|other], with [other] as the default value.
# trace. # "{{limit}}" will be replaced by a numerical value.
error_stack=Pile : {{stack}} find_match_count_limit={[ plural(limit) ]}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename find_match_count_limit[zero]=Plus de {{limit}} correspondances
error_file=Fichier : {{file}} find_match_count_limit[one]=Plus de {{limit}} correspondance
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number find_match_count_limit[two]=Plus de {{limit}} correspondances
error_line=Ligne : {{line}} find_match_count_limit[few]=Plus de {{limit}} correspondances
rendering_error=Une erreur s'est produite lors de l'affichage de la page. find_match_count_limit[many]=Plus de {{limit}} correspondances
find_match_count_limit[other]=Plus de {{limit}} correspondances
find_not_found=Expression non trouvée
# Predefined zoom values # Predefined zoom values
page_scale_width=Pleine largeur page_scale_width=Pleine largeur
...@@ -142,14 +213,18 @@ page_scale_auto=Zoom automatique ...@@ -142,14 +213,18 @@ page_scale_auto=Zoom automatique
page_scale_actual=Taille réelle page_scale_actual=Taille réelle
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value. # numerical scale value.
page_scale_percent={{scale}} % page_scale_percent={{scale}} %
# Loading indicator messages # Loading indicator messages
loading_error_indicator=Erreur loading_error=Une erreur s’est produite lors du chargement du fichier PDF.
loading_error=Une erreur s'est produite lors du chargement du fichier PDF.
invalid_file_error=Fichier PDF invalide ou corrompu. invalid_file_error=Fichier PDF invalide ou corrompu.
missing_file_error=Fichier PDF manquant. missing_file_error=Fichier PDF manquant.
unexpected_response_error=Réponse inattendue du serveur. unexpected_response_error=Réponse inattendue du serveur.
rendering_error=Une erreur s’est produite lors de l’affichage de la page.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}} à {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in # "{{type}}" will be replaced with an annotation type from a list defined in
...@@ -161,7 +236,35 @@ password_invalid=Mot de passe incorrect. Veuillez réessayer. ...@@ -161,7 +236,35 @@ password_invalid=Mot de passe incorrect. Veuillez réessayer.
password_ok=OK password_ok=OK
password_cancel=Annuler password_cancel=Annuler
printing_not_supported=Attention : l'impression n'est pas totalement prise en charge par ce navigateur. printing_not_supported=Attention : l’impression n’est pas totalement prise en charge par ce navigateur.
printing_not_ready=Attention : le PDF n'est pas entièrement chargé pour pouvoir l'imprimer. printing_not_ready=Attention : le PDF n’est pas entièrement chargé pour pouvoir l’imprimer.
web_fonts_disabled=Les polices web sont désactivées : impossible d'utiliser les polices intégrées au PDF. web_fonts_disabled=Les polices web sont désactivées : impossible d’utiliser les polices intégrées au PDF.
document_colors_not_allowed=Les documents PDF ne peuvent pas utiliser leurs propres couleurs : « Autoriser les pages web à utiliser leurs propres couleurs » est désactivé dans le navigateur.
\ No newline at end of file # Editor
editor_free_text2.title=Texte
editor_free_text2_label=Texte
editor_ink2.title=Dessiner
editor_ink2_label=Dessiner
editor_stamp.title=Ajouter une image
editor_stamp_label=Ajouter une image
editor_stamp1.title=Ajouter ou modifier des images
editor_stamp1_label=Ajouter ou modifier des images
free_text2_default_content=Commencer à écrire…
# Editor Parameters
editor_free_text_color=Couleur
editor_free_text_size=Taille
editor_ink_color=Couleur
editor_ink_thickness=Épaisseur
editor_ink_opacity=Opacité
editor_stamp_add_image_label=Ajouter une image
editor_stamp_add_image.title=Ajouter une image
# Editor aria
editor_free_text2_aria_label=Éditeur de texte
editor_ink2_aria_label=Éditeur de dessin
editor_ink_canvas_aria_label=Image créée par l’utilisateur·trice
...@@ -18,12 +18,15 @@ previous_label=前へ ...@@ -18,12 +18,15 @@ previous_label=前へ
next.title=次のページへ進みます next.title=次のページへ進みます
next_label=次へ next_label=次へ
# LOCALIZATION NOTE (page_label, page_of): # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# These strings are concatenated to form the "Page: X of Y" string. page.title=ページ
# Do not translate "{{pageCount}}", it will be substituted with a number # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages. # representing the total number of pages in the document.
page_label=ページ: of_pages=/ {{pagesCount}}
page_of=/ {{pageCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} / {{pagesCount}})
zoom_out.title=表示を縮小します zoom_out.title=表示を縮小します
zoom_out_label=縮小 zoom_out_label=縮小
...@@ -32,108 +35,176 @@ zoom_in_label=拡大 ...@@ -32,108 +35,176 @@ zoom_in_label=拡大
zoom.title=拡大/縮小 zoom.title=拡大/縮小
presentation_mode.title=プレゼンテーションモードに切り替えます presentation_mode.title=プレゼンテーションモードに切り替えます
presentation_mode_label=プレゼンテーションモード presentation_mode_label=プレゼンテーションモード
open_file.title=ファイルを指定して開きます open_file.title=ファイルを開きます
open_file_label=開く open_file_label=開く
print.title=印刷します print.title=印刷します
print_label=印刷 print_label=印刷
download.title=ダウンロードします save.title=保存します
download_label=ダウンロード save_label=保存
bookmark.title=現在のビューの URL です (コピーまたは新しいウィンドウに開く) # LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
bookmark_label=現在のビュー download_button.title=ダウンロードします
# LOCALIZATION NOTE (download_button_label): used in Firefox for Android as a label for the download button (“download” is a verb).
# Length of the translation matters since we are in a mobile context, with limited screen estate.
download_button_label=ダウンロード
bookmark1.title=現在のページの URL です (現在のページを表示する URL)
bookmark1_label=現在のページ
# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
open_in_app.title=アプリで開く
# LOCALIZATION NOTE (open_in_app_label): This string is used in Firefox for Android. Length of the translation matters since we are in a mobile context, with limited screen estate.
open_in_app_label=アプリで開く
# Secondary toolbar and context menu # Secondary toolbar and context menu
tools.title=ツール tools.title=ツール
tools_label=ツール tools_label=ツール
first_page.title=最初のページへ移動します first_page.title=最初のページへ移動します
first_page.label=最初のページへ移動
first_page_label=最初のページへ移動 first_page_label=最初のページへ移動
last_page.title=最後のページへ移動します last_page.title=最後のページへ移動します
last_page.label=最後のページへ移動
last_page_label=最後のページへ移動 last_page_label=最後のページへ移動
page_rotate_cw.title=ページを右へ回転します page_rotate_cw.title=ページを右へ回転します
page_rotate_cw.label=右回転
page_rotate_cw_label=右回転 page_rotate_cw_label=右回転
page_rotate_ccw.title=ページを左へ回転します page_rotate_ccw.title=ページを左へ回転します
page_rotate_ccw.label=左回転
page_rotate_ccw_label=左回転 page_rotate_ccw_label=左回転
hand_tool_enable.title=手のひらツールを有効にします cursor_text_select_tool.title=テキスト選択ツールを有効にします
hand_tool_enable_label=手のひらツールを有効にする cursor_text_select_tool_label=テキスト選択ツール
hand_tool_disable.title=手のひらツールを無効にします cursor_hand_tool.title=手のひらツールを有効にします
hand_tool_disable_label=手のひらツールを無効にする cursor_hand_tool_label=手のひらツール
scroll_page.title=ページ単位でスクロールします
scroll_page_label=ページ単位でスクロール
scroll_vertical.title=縦スクロールにします
scroll_vertical_label=縦スクロール
scroll_horizontal.title=横スクロールにします
scroll_horizontal_label=横スクロール
scroll_wrapped.title=折り返しスクロールにします
scroll_wrapped_label=折り返しスクロール
spread_none.title=見開きにしません
spread_none_label=見開きにしない
spread_odd.title=奇数ページ開始で見開きにします
spread_odd_label=奇数ページ見開き
spread_even.title=偶数ページ開始で見開きにします
spread_even_label=偶数ページ見開き
# Document properties dialog box # Document properties dialog box
document_properties.title=文書のプロパティ... document_properties.title=文書のプロパティ...
document_properties_label=文書のプロパティ... document_properties_label=文書のプロパティ...
document_properties_file_name=ファイル名: document_properties_file_name=ファイル名:
document_properties_file_size=ファイルサイズ: document_properties_file_size=ファイルサイズ:
document_properties_kb={{size_kb}} KB ({{size_b}} bytes) # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
document_properties_mb={{size_mb}} MB ({{size_b}} bytes) # will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} KB ({{size_b}} バイト)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} MB ({{size_b}} バイト)
document_properties_title=タイトル: document_properties_title=タイトル:
document_properties_author=作成者: document_properties_author=作成者:
document_properties_subject=件名: document_properties_subject=件名:
document_properties_keywords=キーワード: document_properties_keywords=キーワード:
document_properties_creation_date=作成日: document_properties_creation_date=作成日:
document_properties_modification_date=更新日: document_properties_modification_date=更新日:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}} document_properties_date_string={{date}}, {{time}}
document_properties_creator=アプリケーション: document_properties_creator=アプリケーション:
document_properties_producer=PDF 作成: document_properties_producer=PDF 作成:
document_properties_version=PDF のバージョン: document_properties_version=PDF のバージョン:
document_properties_page_count=ページ数: document_properties_page_count=ページ数:
document_properties_page_size=ページサイズ:
document_properties_page_size_unit_inches=in
document_properties_page_size_unit_millimeters=mm
document_properties_page_size_orientation_portrait=縦
document_properties_page_size_orientation_landscape=横
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=レター
document_properties_page_size_name_legal=リーガル
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=ウェブ表示用に最適化:
document_properties_linearized_yes=はい
document_properties_linearized_no=いいえ
document_properties_close=閉じる document_properties_close=閉じる
print_progress_message=文書の印刷を準備しています...
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=キャンセル
# Tooltips and alt text for side panel toolbar buttons # Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are # (the _label strings are alt text for the buttons, the .title strings are
# tooltips) # tooltips)
toggle_sidebar.title=サイドバー表示を切り替えます toggle_sidebar.title=サイドバー表示を切り替えます
toggle_sidebar_notification2.title=サイドバー表示を切り替えます (文書に含まれるアウトライン / 添付 / レイヤー)
toggle_sidebar_label=サイドバーの切り替え toggle_sidebar_label=サイドバーの切り替え
outline.title=文書の目次を表示します document_outline.title=文書の目次を表示します (ダブルクリックで項目を開閉します)
outline_label=文書の目次 document_outline_label=文書の目次
attachments.title=添付ファイルを表示します attachments.title=添付ファイルを表示します
attachments_label=添付ファイル attachments_label=添付ファイル
layers.title=レイヤーを表示します (ダブルクリックですべてのレイヤーが初期状態に戻ります)
layers_label=レイヤー
thumbs.title=縮小版を表示します thumbs.title=縮小版を表示します
thumbs_label=縮小版 thumbs_label=縮小版
current_outline_item.title=現在のアウトライン項目を検索
current_outline_item_label=現在のアウトライン項目
findbar.title=文書内を検索します findbar.title=文書内を検索します
findbar_label=検索 findbar_label=検索
additional_layers=追加レイヤー
# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
page_landmark={{page}} ページ
# Thumbnails panel item (tooltip and alt text for images) # Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number. # number.
thumb_page_title={{page}} ページ thumb_page_title={{page}} ページ
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number. # number.
thumb_page_canvas=ページの縮小版 {{page}} thumb_page_canvas={{page}} ページの縮小版
# Find panel button title and messages # Find panel button title and messages
find_label=検索: find_input.title=検索
find_previous.title=指定文字列に一致する 1 つ前の部分を検索します find_input.placeholder=文書内を検索...
find_previous.title=現在より前の位置で指定文字列が現れる部分を検索します
find_previous_label=前へ find_previous_label=前へ
find_next.title=指定文字列に一致する次の部分を検索します find_next.title=現在より後の位置で指定文字列が現れる部分を検索します
find_next_label=次へ find_next_label=次へ
find_highlight=すべて強調表示 find_highlight=すべて強調表示
find_match_case_label=大文字/小文字を区別 find_match_case_label=大文字/小文字を区別
find_reached_top=文書先頭に到達したので末尾に戻って検索しました。 find_match_diacritics_label=発音区別符号を区別
find_reached_bottom=文書末尾に到達したので先頭に戻って検索しました。 find_entire_word_label=単語一致
find_not_found=見つかりませんでした。 find_reached_top=文書先頭に到達したので末尾から続けて検索します
find_reached_bottom=文書末尾に到達したので先頭から続けて検索します
# Error panel labels # LOCALIZATION NOTE (find_match_count): The supported plural forms are
error_more_info=詳細情報 # [one|two|few|many|other], with [other] as the default value.
error_less_info=詳細情報の非表示 # "{{current}}" and "{{total}}" will be replaced by a number representing the
error_close=閉じる # index of the currently active find result, respectively a number representing
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be # the total number of matches in the document.
# replaced by the PDF.JS version and build ID. find_match_count={[ plural(total) ]}
error_version_info=PDF.js v{{version}} (ビルド: {{build}}) find_match_count[one]={{total}} 件中 {{current}} 件目
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an find_match_count[two]={{total}} 件中 {{current}} 件目
# english string describing the error. find_match_count[few]={{total}} 件中 {{current}} 件目
error_message=メッセージ: {{message}} find_match_count[many]={{total}} 件中 {{current}} 件目
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack find_match_count[other]={{total}} 件中 {{current}} 件目
# trace. # LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
error_stack=スタック: {{stack}} # [zero|one|two|few|many|other], with [other] as the default value.
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename # "{{limit}}" will be replaced by a numerical value.
error_file=ファイル: {{file}} find_match_count_limit={[ plural(limit) ]}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number find_match_count_limit[zero]={{limit}} 件以上一致
error_line=行: {{line}} find_match_count_limit[one]={{limit}} 件以上一致
rendering_error=ページのレンダリング中にエラーが発生しました find_match_count_limit[two]={{limit}} 件以上一致
find_match_count_limit[few]={{limit}} 件以上一致
find_match_count_limit[many]={{limit}} 件以上一致
find_match_count_limit[other]={{limit}} 件以上一致
find_not_found=見つかりませんでした
# Predefined zoom values # Predefined zoom values
page_scale_width=幅に合わせる page_scale_width=幅に合わせる
...@@ -145,11 +216,15 @@ page_scale_actual=実際のサイズ ...@@ -145,11 +216,15 @@ page_scale_actual=実際のサイズ
page_scale_percent={{scale}}% page_scale_percent={{scale}}%
# Loading indicator messages # Loading indicator messages
loading_error_indicator=エラー loading_error=PDF の読み込み中にエラーが発生しました。
loading_error=PDF の読み込み中にエラーが発生しました invalid_file_error=無効または破損した PDF ファイル。
invalid_file_error=無効または破損した PDF ファイル
missing_file_error=PDF ファイルが見つかりません。 missing_file_error=PDF ファイルが見つかりません。
unexpected_response_error=サーバから予期せぬ応答がありました。 unexpected_response_error=サーバーから予期せぬ応答がありました。
rendering_error=ページのレンダリング中にエラーが発生しました。
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in # "{{type}}" will be replaced with an annotation type from a list defined in
...@@ -161,7 +236,35 @@ password_invalid=無効なパスワードです。もう一度やり直してく ...@@ -161,7 +236,35 @@ password_invalid=無効なパスワードです。もう一度やり直してく
password_ok=OK password_ok=OK
password_cancel=キャンセル password_cancel=キャンセル
printing_not_supported=警告: このブラウザでは印刷が完全にサポートされていません printing_not_supported=警告: このブラウザーでは印刷が完全にサポートされていません。
printing_not_ready=警告: PDF を印刷するための読み込みが終了していません printing_not_ready=警告: PDF を印刷するための読み込みが終了していません。
web_fonts_disabled=Web フォントが無効になっています: 埋め込まれた PDF のフォントを使用できません web_fonts_disabled=ウェブフォントが無効になっています: 埋め込まれた PDF のフォントを使用できません。
document_colors_disabled=PDF 文書は、Web ページが指定した配色を使用することができません: \u0027Web ページが指定した配色\u0027 はブラウザで無効になっています。
# Editor
editor_free_text2.title=フリーテキスト注釈
editor_free_text2_label=フリーテキスト注釈
editor_ink2.title=インク注釈
editor_ink2_label=インク注釈
editor_stamp.title=画像を追加します
editor_stamp_label=画像を追加
editor_stamp1.title=画像を追加または編集します
editor_stamp1_label=画像を追加または編集
free_text2_default_content=テキストを入力してください...
# Editor Parameters
editor_free_text_color=色
editor_free_text_size=サイズ
editor_ink_color=色
editor_ink_thickness=太さ
editor_ink_opacity=不透明度
editor_stamp_add_image_label=画像を追加
editor_stamp_add_image.title=画像を追加します
# Editor aria
editor_free_text2_aria_label=フリーテキスト注釈エディター
editor_ink2_aria_label=インク注釈エディター
editor_ink_canvas_aria_label=ユーザー作成画像
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value> <value> <string>application/octet-stream</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
...@@ -18,49 +18,73 @@ previous_label=Anterior ...@@ -18,49 +18,73 @@ previous_label=Anterior
next.title=Próxima página next.title=Próxima página
next_label=Próxima next_label=Próxima
# LOCALIZATION NOTE (page_label, page_of): # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# These strings are concatenated to form the "Page: X of Y" string. page.title=Página
# Do not translate "{{pageCount}}", it will be substituted with a number # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages. # representing the total number of pages in the document.
page_label=Página: of_pages=de {{pagesCount}}
page_of=de {{pageCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
zoom_out.title=Diminuir zoom # respectively a number representing the total number of pages in the document.
zoom_out_label=Diminuir zoom page_of_pages=({{pageNumber}} de {{pagesCount}})
zoom_in.title=Aumentar zoom
zoom_in_label=Aumentar zoom zoom_out.title=Reduzir
zoom_out_label=Reduzir
zoom_in.title=Ampliar
zoom_in_label=Ampliar
zoom.title=Zoom zoom.title=Zoom
presentation_mode.title=Alternar para modo de apresentação presentation_mode.title=Mudar para o modo de apresentação
presentation_mode_label=Modo de apresentação presentation_mode_label=Modo de apresentação
open_file.title=Abrir arquivo open_file.title=Abrir arquivo
open_file_label=Abrir open_file_label=Abrir
print.title=Imprimir print.title=Imprimir
print_label=Imprimir print_label=Imprimir
download.title=Download save.title=Salvar
download_label=Download save_label=Salvar
bookmark.title=Visualização atual (copie ou abra em uma nova janela) # LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
bookmark_label=Visualização atual download_button.title=Baixar
# LOCALIZATION NOTE (download_button_label): used in Firefox for Android as a label for the download button (“download” is a verb).
# Length of the translation matters since we are in a mobile context, with limited screen estate.
download_button_label=Baixar
bookmark1.title=Página atual (ver URL da página atual)
bookmark1_label=Pagina atual
# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
open_in_app.title=Abrir em um aplicativo
# LOCALIZATION NOTE (open_in_app_label): This string is used in Firefox for Android. Length of the translation matters since we are in a mobile context, with limited screen estate.
open_in_app_label=Abrir em um aplicativo
# Secondary toolbar and context menu # Secondary toolbar and context menu
tools.title=Ferramentas tools.title=Ferramentas
tools_label=Ferramentas tools_label=Ferramentas
first_page.title=Ir para a primeira página first_page.title=Ir para a primeira página
first_page.label=Ir para a primeira página
first_page_label=Ir para a primeira página first_page_label=Ir para a primeira página
last_page.title=Ir para a última página last_page.title=Ir para a última página
last_page.label=Ir para a última página
last_page_label=Ir para a última página last_page_label=Ir para a última página
page_rotate_cw.title=Girar no sentido horário page_rotate_cw.title=Girar no sentido horário
page_rotate_cw.label=Girar no sentido horário
page_rotate_cw_label=Girar no sentido horário page_rotate_cw_label=Girar no sentido horário
page_rotate_ccw.title=Girar no sentido anti-horário page_rotate_ccw.title=Girar no sentido anti-horário
page_rotate_ccw.label=Girar no sentido anti-horário
page_rotate_ccw_label=Girar no sentido anti-horário page_rotate_ccw_label=Girar no sentido anti-horário
hand_tool_enable.title=Ativar ferramenta da mão cursor_text_select_tool.title=Ativar a ferramenta de seleção de texto
hand_tool_enable_label=Ativar ferramenta da mão cursor_text_select_tool_label=Ferramenta de seleção de texto
hand_tool_disable.title=Desativar ferramenta da mão cursor_hand_tool.title=Ativar ferramenta de deslocamento
hand_tool_disable_label=Desativar ferramenta da mão cursor_hand_tool_label=Ferramenta de deslocamento
scroll_page.title=Usar rolagem de página
scroll_page_label=Rolagem de página
scroll_vertical.title=Usar deslocamento vertical
scroll_vertical_label=Deslocamento vertical
scroll_horizontal.title=Usar deslocamento horizontal
scroll_horizontal_label=Deslocamento horizontal
scroll_wrapped.title=Usar deslocamento contido
scroll_wrapped_label=Deslocamento contido
spread_none.title=Não reagrupar páginas
spread_none_label=Não estender
spread_odd.title=Agrupar páginas começando em páginas com números ímpares
spread_odd_label=Estender ímpares
spread_even.title=Agrupar páginas começando em páginas com números pares
spread_even_label=Estender pares
# Document properties dialog box # Document properties dialog box
document_properties.title=Propriedades do documento… document_properties.title=Propriedades do documento…
...@@ -86,22 +110,58 @@ document_properties_creator=Criação: ...@@ -86,22 +110,58 @@ document_properties_creator=Criação:
document_properties_producer=Criador do PDF: document_properties_producer=Criador do PDF:
document_properties_version=Versão do PDF: document_properties_version=Versão do PDF:
document_properties_page_count=Número de páginas: document_properties_page_count=Número de páginas:
document_properties_page_size=Tamanho da página:
document_properties_page_size_unit_inches=pol.
document_properties_page_size_unit_millimeters=mm
document_properties_page_size_orientation_portrait=retrato
document_properties_page_size_orientation_landscape=paisagem
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=Carta
document_properties_page_size_name_legal=Jurídico
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=Exibição web rápida:
document_properties_linearized_yes=Sim
document_properties_linearized_no=Não
document_properties_close=Fechar document_properties_close=Fechar
print_progress_message=Preparando documento para impressão…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}} %
print_progress_close=Cancelar
# Tooltips and alt text for side panel toolbar buttons # Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are # (the _label strings are alt text for the buttons, the .title strings are
# tooltips) # tooltips)
toggle_sidebar.title=Exibir/ocultar painel toggle_sidebar.title=Exibir/ocultar painel lateral
toggle_sidebar_notification2.title=Exibir/ocultar painel (documento contém estrutura/anexos/camadas)
toggle_sidebar_label=Exibir/ocultar painel toggle_sidebar_label=Exibir/ocultar painel
outline.title=Exibir estrutura de tópicos document_outline.title=Mostrar estrutura do documento (duplo-clique expande/recolhe todos os itens)
outline_label=Estrutura de tópicos do documento document_outline_label=Estrutura do documento
attachments.title=Exibir anexos attachments.title=Mostrar anexos
attachments_label=Anexos attachments_label=Anexos
thumbs.title=Exibir miniaturas das páginas layers.title=Mostrar camadas (duplo-clique redefine todas as camadas ao estado predefinido)
layers_label=Camadas
thumbs.title=Mostrar miniaturas
thumbs_label=Miniaturas thumbs_label=Miniaturas
findbar.title=Localizar no documento current_outline_item.title=Encontrar item atual da estrutura
findbar_label=Localizar current_outline_item_label=Item atual da estrutura
findbar.title=Procurar no documento
findbar_label=Procurar
additional_layers=Camadas adicionais
# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
page_landmark=Página {{page}}
# Thumbnails panel item (tooltip and alt text for images) # Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number. # number.
...@@ -111,35 +171,40 @@ thumb_page_title=Página {{page}} ...@@ -111,35 +171,40 @@ thumb_page_title=Página {{page}}
thumb_page_canvas=Miniatura da página {{page}} thumb_page_canvas=Miniatura da página {{page}}
# Find panel button title and messages # Find panel button title and messages
find_label=Localizar: find_input.title=Procurar
find_previous.title=Localizar a ocorrência anterior do texto find_input.placeholder=Procurar no documento…
find_previous.title=Procurar a ocorrência anterior da frase
find_previous_label=Anterior find_previous_label=Anterior
find_next.title=Localizar a próxima ocorrência do texto find_next.title=Procurar a próxima ocorrência da frase
find_next_label=Próxima find_next_label=Próxima
find_highlight=Realçar tudo find_highlight=Destacar tudo
find_match_case_label=Diferenciar maiúsculas/minúsculas find_match_case_label=Diferenciar maiúsculas/minúsculas
find_reached_top=Atingido o início do documento, continuando do fim find_match_diacritics_label=Considerar acentuação
find_reached_bottom=Atingido o fim do documento, continuando do início find_entire_word_label=Palavras completas
find_not_found=Texto não encontrado find_reached_top=Início do documento alcançado, continuando do fim
find_reached_bottom=Fim do documento alcançado, continuando do início
# Error panel labels # LOCALIZATION NOTE (find_match_count): The supported plural forms are
error_more_info=Mais informações # [one|two|few|many|other], with [other] as the default value.
error_less_info=Menos informações # "{{current}}" and "{{total}}" will be replaced by a number representing the
error_close=Fechar # index of the currently active find result, respectively a number representing
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be # the total number of matches in the document.
# replaced by the PDF.JS version and build ID. find_match_count={[ plural(total) ]}
error_version_info=PDF.js v{{version}} (build: {{build}}) find_match_count[one]={{current}} de {{total}} ocorrência
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an find_match_count[two]={{current}} de {{total}} ocorrências
# english string describing the error. find_match_count[few]={{current}} de {{total}} ocorrências
error_message=Mensagem: {{message}} find_match_count[many]={{current}} de {{total}} ocorrências
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack find_match_count[other]={{current}} de {{total}} ocorrências
# trace. # LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
error_stack=Stack: {{stack}} # [zero|one|two|few|many|other], with [other] as the default value.
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename # "{{limit}}" will be replaced by a numerical value.
error_file=Arquivo: {{file}} find_match_count_limit={[ plural(limit) ]}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number find_match_count_limit[zero]=Mais de {{limit}} ocorrências
error_line=Linha: {{line}} find_match_count_limit[one]=Mais de {{limit}} ocorrência
rendering_error=Ocorreu um erro ao renderizar a página. find_match_count_limit[two]=Mais de {{limit}} ocorrências
find_match_count_limit[few]=Mais de {{limit}} ocorrências
find_match_count_limit[many]=Mais de {{limit}} ocorrências
find_match_count_limit[other]=Mais de {{limit}} ocorrências
find_not_found=Não encontrado
# Predefined zoom values # Predefined zoom values
page_scale_width=Largura da página page_scale_width=Largura da página
...@@ -151,11 +216,15 @@ page_scale_actual=Tamanho real ...@@ -151,11 +216,15 @@ page_scale_actual=Tamanho real
page_scale_percent={{scale}}% page_scale_percent={{scale}}%
# Loading indicator messages # Loading indicator messages
loading_error_indicator=Erro
loading_error=Ocorreu um erro ao carregar o PDF. loading_error=Ocorreu um erro ao carregar o PDF.
invalid_file_error=Arquivo PDF corrompido ou inválido. invalid_file_error=Arquivo PDF corrompido ou inválido.
missing_file_error=Arquivo PDF ausente. missing_file_error=Arquivo PDF ausente.
unexpected_response_error=Resposta inesperada do servidor. unexpected_response_error=Resposta inesperada do servidor.
rendering_error=Ocorreu um erro ao renderizar a página.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in # "{{type}}" will be replaced with an annotation type from a list defined in
...@@ -163,11 +232,39 @@ unexpected_response_error=Resposta inesperada do servidor. ...@@ -163,11 +232,39 @@ unexpected_response_error=Resposta inesperada do servidor.
# Some common types are e.g.: "Check", "Text", "Comment", "Note" # Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[Anotação {{type}}] text_annotation_type.alt=[Anotação {{type}}]
password_label=Forneça a senha para abrir este arquivo PDF. password_label=Forneça a senha para abrir este arquivo PDF.
password_invalid=Senha inválida. Por favor, tente de novo. password_invalid=Senha inválida. Tente novamente.
password_ok=OK password_ok=OK
password_cancel=Cancelar password_cancel=Cancelar
printing_not_supported=Alerta: a impressão não é totalmente suportada neste navegador. printing_not_supported=Aviso: a impressão não é totalmente suportada neste navegador.
printing_not_ready=Alerta: o PDF não está totalmente carregado para impressão. printing_not_ready=Aviso: o PDF não está totalmente carregado para impressão.
web_fonts_disabled=Fontes da web estão desativadas: não é possível usar fontes incorporadas do PDF. web_fonts_disabled=As fontes web estão desativadas: não foi possível usar fontes incorporadas do PDF.
document_colors_not_allowed=Documentos PDF não estão autorizados a usar suas próprias cores: “Páginas podem usar outras cores” está desativado no navegador.
# Editor
editor_free_text2.title=Texto
editor_free_text2_label=Texto
editor_ink2.title=Desenho
editor_ink2_label=Desenho
editor_stamp.title=Adicionar uma imagem
editor_stamp_label=Adicionar uma imagem
editor_stamp1.title=Adicionar ou editar imagens
editor_stamp1_label=Adicionar ou editar imagens
free_text2_default_content=Comece digitando…
# Editor Parameters
editor_free_text_color=Cor
editor_free_text_size=Tamanho
editor_ink_color=Cor
editor_ink_thickness=Espessura
editor_ink_opacity=Opacidade
editor_stamp_add_image_label=Adicionar imagem
editor_stamp_add_image.title=Adicionar imagem
# Editor aria
editor_free_text2_aria_label=Editor de texto
editor_ink2_aria_label=Editor de desenho
editor_ink_canvas_aria_label=Imagem criada pelo usuário
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value> <value> <string>application/octet-stream</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>uk</string> </value> <value> <string></string> </value>
</item> </item>
</dictionary> </dictionary>
</pickle> </pickle>
......
...@@ -18,12 +18,15 @@ previous_label=Попередня ...@@ -18,12 +18,15 @@ previous_label=Попередня
next.title=Наступна сторінка next.title=Наступна сторінка
next_label=Наступна next_label=Наступна
# LOCALIZATION NOTE (page_label, page_of): # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# These strings are concatenated to form the "Page: X of Y" string. page.title=Сторінка
# Do not translate "{{pageCount}}", it will be substituted with a number # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages. # representing the total number of pages in the document.
page_label=Сторінка: of_pages=із {{pagesCount}}
page_of=з {{pageCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} із {{pagesCount}})
zoom_out.title=Зменшити zoom_out.title=Зменшити
zoom_out_label=Зменшити zoom_out_label=Зменшити
...@@ -36,31 +39,52 @@ open_file.title=Відкрити файл ...@@ -36,31 +39,52 @@ open_file.title=Відкрити файл
open_file_label=Відкрити open_file_label=Відкрити
print.title=Друк print.title=Друк
print_label=Друк print_label=Друк
download.title=Завантажити save.title=Зберегти
download_label=Завантажити save_label=Зберегти
bookmark.title=Поточний вигляд (копіювати чи відкрити у новому вікні) # LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
bookmark_label=Поточний вигляд download_button.title=Завантажити
# LOCALIZATION NOTE (download_button_label): used in Firefox for Android as a label for the download button (“download” is a verb).
# Length of the translation matters since we are in a mobile context, with limited screen estate.
download_button_label=Завантажити
bookmark1.title=Поточна сторінка (перегляд URL-адреси з поточної сторінки)
bookmark1_label=Поточна сторінка
# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
open_in_app.title=Відкрити у програмі
# LOCALIZATION NOTE (open_in_app_label): This string is used in Firefox for Android. Length of the translation matters since we are in a mobile context, with limited screen estate.
open_in_app_label=Відкрити у програмі
# Secondary toolbar and context menu # Secondary toolbar and context menu
tools.title=Інструменти tools.title=Інструменти
tools_label=Інструменти tools_label=Інструменти
first_page.title=На першу сторінку first_page.title=На першу сторінку
first_page.label=На першу сторінку
first_page_label=На першу сторінку first_page_label=На першу сторінку
last_page.title=На останню сторінку last_page.title=На останню сторінку
last_page.label=На останню сторінку
last_page_label=На останню сторінку last_page_label=На останню сторінку
page_rotate_cw.title=Повернути за годинниковою стрілкою page_rotate_cw.title=Повернути за годинниковою стрілкою
page_rotate_cw.label=Повернути за годинниковою стрілкою
page_rotate_cw_label=Повернути за годинниковою стрілкою page_rotate_cw_label=Повернути за годинниковою стрілкою
page_rotate_ccw.title=Повернути проти годинникової стрілки page_rotate_ccw.title=Повернути проти годинникової стрілки
page_rotate_ccw.label=Повернути проти годинникової стрілки
page_rotate_ccw_label=Повернути проти годинникової стрілки page_rotate_ccw_label=Повернути проти годинникової стрілки
hand_tool_enable.title=Увімкнути інструмент «Рука» cursor_text_select_tool.title=Увімкнути інструмент вибору тексту
hand_tool_enable_label=Увімкнути інструмент «Рука» cursor_text_select_tool_label=Інструмент вибору тексту
hand_tool_disable.title=Вимкнути інструмент «Рука» cursor_hand_tool.title=Увімкнути інструмент "Рука"
hand_tool_disable_label=Вимкнути інструмент «Рука» cursor_hand_tool_label=Інструмент "Рука"
scroll_page.title=Використовувати прокручування сторінки
scroll_page_label=Прокручування сторінки
scroll_vertical.title=Використовувати вертикальне прокручування
scroll_vertical_label=Вертикальне прокручування
scroll_horizontal.title=Використовувати горизонтальне прокручування
scroll_horizontal_label=Горизонтальне прокручування
scroll_wrapped.title=Використовувати масштабоване прокручування
scroll_wrapped_label=Масштабоване прокручування
spread_none.title=Не використовувати розгорнуті сторінки
spread_none_label=Без розгорнутих сторінок
spread_odd.title=Розгорнуті сторінки починаються з непарних номерів
spread_odd_label=Непарні сторінки зліва
spread_even.title=Розгорнуті сторінки починаються з парних номерів
spread_even_label=Парні сторінки зліва
# Document properties dialog box # Document properties dialog box
document_properties.title=Властивості документа… document_properties.title=Властивості документа…
...@@ -86,22 +110,58 @@ document_properties_creator=Створено: ...@@ -86,22 +110,58 @@ document_properties_creator=Створено:
document_properties_producer=Виробник PDF: document_properties_producer=Виробник PDF:
document_properties_version=Версія PDF: document_properties_version=Версія PDF:
document_properties_page_count=Кількість сторінок: document_properties_page_count=Кількість сторінок:
document_properties_page_size=Розмір сторінки:
document_properties_page_size_unit_inches=дюймів
document_properties_page_size_unit_millimeters=мм
document_properties_page_size_orientation_portrait=книжкова
document_properties_page_size_orientation_landscape=альбомна
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=Letter
document_properties_page_size_name_legal=Legal
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=Швидкий перегляд в Інтернеті:
document_properties_linearized_yes=Так
document_properties_linearized_no=Ні
document_properties_close=Закрити document_properties_close=Закрити
print_progress_message=Підготовка документу до друку…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=Скасувати
# Tooltips and alt text for side panel toolbar buttons # Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are # (the _label strings are alt text for the buttons, the .title strings are
# tooltips) # tooltips)
toggle_sidebar.title=Бічна панель toggle_sidebar.title=Бічна панель
toggle_sidebar_notification2.title=Перемкнути бічну панель (документ містить ескіз/вкладення/шари)
toggle_sidebar_label=Перемкнути бічну панель toggle_sidebar_label=Перемкнути бічну панель
outline.title=Показувати схему документа document_outline.title=Показати схему документу (подвійний клік для розгортання/згортання елементів)
outline_label=Схема документа document_outline_label=Схема документа
attachments.title=Показати прикріплення attachments.title=Показати прикріплення
attachments_label=Прикріплення attachments_label=Прикріплення
layers.title=Показати шари (двічі клацніть, щоб скинути всі шари до типового стану)
layers_label=Шари
thumbs.title=Показувати ескізи thumbs.title=Показувати ескізи
thumbs_label=Ескізи thumbs_label=Ескізи
findbar.title=Шукати в документі current_outline_item.title=Знайти поточний елемент змісту
findbar_label=Пошук current_outline_item_label=Поточний елемент змісту
findbar.title=Знайти в документі
findbar_label=Знайти
additional_layers=Додаткові шари
# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
page_landmark=Сторінка {{page}}
# Thumbnails panel item (tooltip and alt text for images) # Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number. # number.
...@@ -111,57 +171,66 @@ thumb_page_title=Сторінка {{page}} ...@@ -111,57 +171,66 @@ thumb_page_title=Сторінка {{page}}
thumb_page_canvas=Ескіз сторінки {{page}} thumb_page_canvas=Ескіз сторінки {{page}}
# Find panel button title and messages # Find panel button title and messages
find_label=Знайти: find_input.title=Знайти
find_input.placeholder=Знайти в документі…
find_previous.title=Знайти попереднє входження фрази find_previous.title=Знайти попереднє входження фрази
find_previous_label=Попереднє find_previous_label=Попереднє
find_next.title=Знайти наступне входження фрази find_next.title=Знайти наступне входження фрази
find_next_label=Наступне find_next_label=Наступне
find_highlight=Підсвітити все find_highlight=Підсвітити все
find_match_case_label=З урахуванням регістру find_match_case_label=З урахуванням регістру
find_match_diacritics_label=Відповідність діакритичних знаків
find_entire_word_label=Цілі слова
find_reached_top=Досягнуто початку документу, продовжено з кінця find_reached_top=Досягнуто початку документу, продовжено з кінця
find_reached_bottom=Досягнуто кінця документу, продовжено з початку find_reached_bottom=Досягнуто кінця документу, продовжено з початку
# LOCALIZATION NOTE (find_match_count): The supported plural forms are
# [one|two|few|many|other], with [other] as the default value.
# "{{current}}" and "{{total}}" will be replaced by a number representing the
# index of the currently active find result, respectively a number representing
# the total number of matches in the document.
find_match_count={[ plural(total) ]}
find_match_count[one]={{current}} збіг із {{total}}
find_match_count[two]={{current}} збіги з {{total}}
find_match_count[few]={{current}} збігів із {{total}}
find_match_count[many]={{current}} збігів із {{total}}
find_match_count[other]={{current}} збігів із {{total}}
# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# [zero|one|two|few|many|other], with [other] as the default value.
# "{{limit}}" will be replaced by a numerical value.
find_match_count_limit={[ plural(limit) ]}
find_match_count_limit[zero]=Понад {{limit}} збігів
find_match_count_limit[one]=Більше, ніж {{limit}} збіг
find_match_count_limit[two]=Більше, ніж {{limit}} збіги
find_match_count_limit[few]=Більше, ніж {{limit}} збігів
find_match_count_limit[many]=Понад {{limit}} збігів
find_match_count_limit[other]=Понад {{limit}} збігів
find_not_found=Фразу не знайдено find_not_found=Фразу не знайдено
# Error panel labels
error_more_info=Більше інформації
error_less_info=Менше інформації
error_close=Закрити
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Повідомлення: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Стек: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Файл: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Рядок: {{line}}
rendering_error=Під час виведення сторінки сталася помилка.
# Predefined zoom values # Predefined zoom values
page_scale_width=За шириною page_scale_width=За шириною
page_scale_fit=Умістити page_scale_fit=Вмістити
page_scale_auto=Авто-масштаб page_scale_auto=Автомасштаб
page_scale_actual=Дійсний розмір page_scale_actual=Дійсний розмір
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value. # numerical scale value.
page_scale_percent={{scale}}% page_scale_percent={{scale}}%
# Loading indicator messages # Loading indicator messages
loading_error_indicator=Помилка
loading_error=Під час завантаження PDF сталася помилка. loading_error=Під час завантаження PDF сталася помилка.
invalid_file_error=Недійсний або пошкоджений PDF-файл. invalid_file_error=Недійсний або пошкоджений PDF-файл.
missing_file_error=Відсутній PDF-файл. missing_file_error=Відсутній PDF-файл.
unexpected_response_error=Неочікувана відповідь сервера. unexpected_response_error=Неочікувана відповідь сервера.
rendering_error=Під час виведення сторінки сталася помилка.
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}}, {{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in # "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types). # the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note" # Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}}-аннотація] text_annotation_type.alt=[{{type}}-анотація]
password_label=Введіть пароль для відкриття цього PDF-файла. password_label=Введіть пароль для відкриття цього PDF-файла.
password_invalid=Невірний пароль. Спробуйте ще. password_invalid=Невірний пароль. Спробуйте ще.
password_ok=Гаразд password_ok=Гаразд
...@@ -170,4 +239,46 @@ password_cancel=Скасувати ...@@ -170,4 +239,46 @@ password_cancel=Скасувати
printing_not_supported=Попередження: Цей браузер не повністю підтримує друк. printing_not_supported=Попередження: Цей браузер не повністю підтримує друк.
printing_not_ready=Попередження: PDF не повністю завантажений для друку. printing_not_ready=Попередження: PDF не повністю завантажений для друку.
web_fonts_disabled=Веб-шрифти вимкнено: неможливо використати вбудовані у PDF шрифти. web_fonts_disabled=Веб-шрифти вимкнено: неможливо використати вбудовані у PDF шрифти.
document_colors_not_allowed=PDF-документам не дозволено використовувати власні кольори: в браузері вимкнено параметр «Дозволити сторінкам використовувати власні кольори».
# Editor
editor_free_text2.title=Текст
editor_free_text2_label=Текст
editor_ink2.title=Малювати
editor_ink2_label=Малювати
editor_stamp1.title=Додати чи редагувати зображення
editor_stamp1_label=Додати чи редагувати зображення
free_text2_default_content=Почніть вводити…
# Editor Parameters
editor_free_text_color=Колір
editor_free_text_size=Розмір
editor_ink_color=Колір
editor_ink_thickness=Товщина
editor_ink_opacity=Прозорість
editor_stamp_add_image_label=Додати зображення
editor_stamp_add_image.title=Додати зображення
# Editor aria
editor_free_text2_aria_label=Текстовий редактор
editor_ink2_aria_label=Графічний редактор
editor_ink_canvas_aria_label=Зображення, створене користувачем
# Alt-text dialog
# LOCALIZATION NOTE (editor_alt_text_button_label): Alternative text (alt text) helps
# when people can't see the image.
editor_alt_text_button_label=Альтернативний текст
editor_alt_text_edit_button_label=Змінити альтернативний текст
editor_alt_text_dialog_label=Вибрати варіант
editor_alt_text_dialog_description=Альтернативний текст допомагає, коли зображення не видно або коли воно не завантажується.
editor_alt_text_add_description_label=Додати опис
editor_alt_text_add_description_description=Намагайтеся створити 1-2 речення, які описують тему, обставини або дії.
editor_alt_text_mark_decorative_label=Позначити декоративним
editor_alt_text_mark_decorative_description=Використовується для декоративних зображень, наприклад рамок або водяних знаків.
editor_alt_text_cancel_button=Скасувати
editor_alt_text_save_button=Зберегти
editor_alt_text_decorative_tooltip=Позначено декоративним
# This is a placeholder for the alt text input area
editor_alt_text_textarea.placeholder=Наприклад, “Молодий чоловік сідає за стіл їсти”
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value> <value> <string>application/octet-stream</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
...@@ -18,12 +18,15 @@ previous_label=上一页 ...@@ -18,12 +18,15 @@ previous_label=上一页
next.title=下一页 next.title=下一页
next_label=下一页 next_label=下一页
# LOCALIZATION NOTE (page_label, page_of): # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# These strings are concatenated to form the "Page: X of Y" string. page.title=页面
# Do not translate "{{pageCount}}", it will be substituted with a number # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages. # representing the total number of pages in the document.
page_label=页面: of_pages=/ {{pagesCount}}
page_of=/ {{pageCount}} # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} / {{pagesCount}})
zoom_out.title=缩小 zoom_out.title=缩小
zoom_out_label=缩小 zoom_out_label=缩小
...@@ -36,31 +39,52 @@ open_file.title=打开文件 ...@@ -36,31 +39,52 @@ open_file.title=打开文件
open_file_label=打开 open_file_label=打开
print.title=打印 print.title=打印
print_label=打印 print_label=打印
download.title=下载 save.title=保存
download_label=下载 save_label=保存
bookmark.title=当前视图(复制或在新窗口中打开) # LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
bookmark_label=当前视图 download_button.title=下载
# LOCALIZATION NOTE (download_button_label): used in Firefox for Android as a label for the download button (“download” is a verb).
# Length of the translation matters since we are in a mobile context, with limited screen estate.
download_button_label=下载
bookmark1.title=当前页面(在当前页面查看 URL)
bookmark1_label=当前页面
# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
open_in_app.title=在应用中打开
# LOCALIZATION NOTE (open_in_app_label): This string is used in Firefox for Android. Length of the translation matters since we are in a mobile context, with limited screen estate.
open_in_app_label=在应用中打开
# Secondary toolbar and context menu # Secondary toolbar and context menu
tools.title=工具 tools.title=工具
tools_label=工具 tools_label=工具
first_page.title=转到第一页 first_page.title=转到第一页
first_page.label=转到第一页
first_page_label=转到第一页 first_page_label=转到第一页
last_page.title=转到最后一页 last_page.title=转到最后一页
last_page.label=转到最后一页
last_page_label=转到最后一页 last_page_label=转到最后一页
page_rotate_cw.title=顺时针旋转 page_rotate_cw.title=顺时针旋转
page_rotate_cw.label=顺时针旋转
page_rotate_cw_label=顺时针旋转 page_rotate_cw_label=顺时针旋转
page_rotate_ccw.title=逆时针旋转 page_rotate_ccw.title=逆时针旋转
page_rotate_ccw.label=逆时针旋转
page_rotate_ccw_label=逆时针旋转 page_rotate_ccw_label=逆时针旋转
hand_tool_enable.title=启用手形工具 cursor_text_select_tool.title=启用文本选择工具
hand_tool_enable_label=启用手形工具 cursor_text_select_tool_label=文本选择工具
hand_tool_disable.title=禁用手形工具 cursor_hand_tool.title=启用手形工具
hand_tool_disable_label=禁用手形工具 cursor_hand_tool_label=手形工具
scroll_page.title=使用页面滚动
scroll_page_label=页面滚动
scroll_vertical.title=使用垂直滚动
scroll_vertical_label=垂直滚动
scroll_horizontal.title=使用水平滚动
scroll_horizontal_label=水平滚动
scroll_wrapped.title=使用平铺滚动
scroll_wrapped_label=平铺滚动
spread_none.title=不加入衔接页
spread_none_label=单页视图
spread_odd.title=加入衔接页使奇数页作为起始页
spread_odd_label=双页视图
spread_even.title=加入衔接页使偶数页作为起始页
spread_even_label=书籍视图
# Document properties dialog box # Document properties dialog box
document_properties.title=文档属性… document_properties.title=文档属性…
...@@ -83,63 +107,104 @@ document_properties_modification_date=修改日期: ...@@ -83,63 +107,104 @@ document_properties_modification_date=修改日期:
# will be replaced by the creation/modification date, and time, of the PDF file. # will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}} document_properties_date_string={{date}}, {{time}}
document_properties_creator=创建者: document_properties_creator=创建者:
document_properties_producer=PDF 制作者: document_properties_producer=PDF 生成器:
document_properties_version=PDF 版本: document_properties_version=PDF 版本:
document_properties_page_count=页数: document_properties_page_count=页数:
document_properties_page_size=页面大小:
document_properties_page_size_unit_inches=英寸
document_properties_page_size_unit_millimeters=毫米
document_properties_page_size_orientation_portrait=纵向
document_properties_page_size_orientation_landscape=横向
document_properties_page_size_name_a3=A3
document_properties_page_size_name_a4=A4
document_properties_page_size_name_letter=文本
document_properties_page_size_name_legal=法律
# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement and orientation, of the (current) page.
document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}}({{orientation}})
# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}}({{name}},{{orientation}})
# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_linearized=快速 Web 视图:
document_properties_linearized_yes=是
document_properties_linearized_no=否
document_properties_close=关闭 document_properties_close=关闭
print_progress_message=正在准备打印文档…
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=取消
# Tooltips and alt text for side panel toolbar buttons # Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are # (the _label strings are alt text for the buttons, the .title strings are
# tooltips) # tooltips)
toggle_sidebar.title=切换侧栏 toggle_sidebar.title=切换侧栏
toggle_sidebar_notification2.title=切换侧栏(文档所含的大纲/附件/图层)
toggle_sidebar_label=切换侧栏 toggle_sidebar_label=切换侧栏
outline.title=显示文档大纲 document_outline.title=显示文档大纲(双击展开/折叠所有项)
outline_label=文档大纲 document_outline_label=文档大纲
attachments.title=显示附件 attachments.title=显示附件
attachments_label=附件 attachments_label=附件
layers.title=显示图层(双击即可将所有图层重置为默认状态)
layers_label=图层
thumbs.title=显示缩略图 thumbs.title=显示缩略图
thumbs_label=缩略图 thumbs_label=缩略图
current_outline_item.title=查找当前大纲项目
current_outline_item_label=当前大纲项目
findbar.title=在文档中查找 findbar.title=在文档中查找
findbar_label=查找 findbar_label=查找
additional_layers=其他图层
# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
page_landmark=第 {{page}} 页
# Thumbnails panel item (tooltip and alt text for images) # Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number. # number.
thumb_page_title=页码 {{page}} thumb_page_title=第 {{page}} 页
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number. # number.
thumb_page_canvas=页面 {{page}} 的缩略图 thumb_page_canvas=页面 {{page}} 的缩略图
# Find panel button title and messages # Find panel button title and messages
find_label=查找: find_input.title=查找
find_input.placeholder=在文档中查找…
find_previous.title=查找词语上一次出现的位置 find_previous.title=查找词语上一次出现的位置
find_previous_label=上一页 find_previous_label=上一页
find_next.title=查找词语后一次出现的位置 find_next.title=查找词语后一次出现的位置
find_next_label=下一页 find_next_label=下一页
find_highlight=全部高亮显示 find_highlight=全部高亮显示
find_match_case_label=区分大小写 find_match_case_label=区分大小写
find_match_diacritics_label=匹配变音符号
find_entire_word_label=全词匹配
find_reached_top=到达文档开头,从末尾继续 find_reached_top=到达文档开头,从末尾继续
find_reached_bottom=到达文档末尾,从开头继续 find_reached_bottom=到达文档末尾,从开头继续
find_not_found=词语未找到 # LOCALIZATION NOTE (find_match_count): The supported plural forms are
# [one|two|few|many|other], with [other] as the default value.
# Error panel labels # "{{current}}" and "{{total}}" will be replaced by a number representing the
error_more_info=更多信息 # index of the currently active find result, respectively a number representing
error_less_info=更少信息 # the total number of matches in the document.
error_close=关闭 find_match_count={[ plural(total) ]}
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be find_match_count[one]=第 {{current}} 项,共匹配 {{total}} 项
# replaced by the PDF.JS version and build ID. find_match_count[two]=第 {{current}} 项,共匹配 {{total}} 项
error_version_info=PDF.js v{{version}} (build: {{build}}) find_match_count[few]=第 {{current}} 项,共匹配 {{total}} 项
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an find_match_count[many]=第 {{current}} 项,共匹配 {{total}} 项
# english string describing the error. find_match_count[other]=第 {{current}} 项,共匹配 {{total}} 项
error_message=信息:{{message}} # LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack # [zero|one|two|few|many|other], with [other] as the default value.
# trace. # "{{limit}}" will be replaced by a numerical value.
error_stack=堆栈:{{stack}} find_match_count_limit={[ plural(limit) ]}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename find_match_count_limit[zero]=超过 {{limit}} 项匹配
error_file=文件:{{file}} find_match_count_limit[one]=超过 {{limit}} 项匹配
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number find_match_count_limit[two]=超过 {{limit}} 项匹配
error_line=行号:{{line}} find_match_count_limit[few]=超过 {{limit}} 项匹配
rendering_error=渲染页面时发生错误。 find_match_count_limit[many]=超过 {{limit}} 项匹配
find_match_count_limit[other]=超过 {{limit}} 项匹配
find_not_found=找不到指定词语
# Predefined zoom values # Predefined zoom values
page_scale_width=适合页宽 page_scale_width=适合页宽
...@@ -151,23 +216,69 @@ page_scale_actual=实际大小 ...@@ -151,23 +216,69 @@ page_scale_actual=实际大小
page_scale_percent={{scale}}% page_scale_percent={{scale}}%
# Loading indicator messages # Loading indicator messages
loading_error_indicator=错误 loading_error=加载 PDF 时发生错误。
loading_error=载入PDF时发生错误。 invalid_file_error=无效或损坏的 PDF 文件。
invalid_file_error=无效或损坏的PDF文件。 missing_file_error=缺少 PDF 文件。
missing_file_error=缺少PDF文件。
unexpected_response_error=意外的服务器响应。 unexpected_response_error=意外的服务器响应。
rendering_error=渲染页面时发生错误。
# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
# replaced by the modification date, and time, of the annotation.
annotation_date_string={{date}},{{time}}
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in # "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types). # the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note" # Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} 注] text_annotation_type.alt=[{{type}} 注]
password_label=输入密码以打开此 PDF 文件。 password_label=输入密码以打开此 PDF 文件。
password_invalid=密码无效。请重试。 password_invalid=密码无效。请重试。
password_ok=确定 password_ok=确定
password_cancel=取消 password_cancel=取消
printing_not_supported=警告:打印功能不完全支持此浏览器。 printing_not_supported=警告:此浏览器尚未完整支持打印功能。
printing_not_ready=警告:该 PDF 未完全加载以供打印。 printing_not_ready=警告:此 PDF 未完成加载,无法打印。
web_fonts_disabled=Web 字体已被禁用:无法使用嵌入的PDF字体。 web_fonts_disabled=Web 字体已被禁用:无法使用嵌入的 PDF 字体。
document_colors_not_allowed=不允许 PDF 文档使用自己的颜色:浏览器中“允许页面选择自己的颜色”的选项已停用。
# Editor
editor_free_text2.title=文本
editor_free_text2_label=文本
editor_ink2.title=绘图
editor_ink2_label=绘图
editor_stamp1.title=添加或编辑图像
editor_stamp1_label=添加或编辑图像
free_text2_default_content=开始输入…
# Editor Parameters
editor_free_text_color=颜色
editor_free_text_size=字号
editor_ink_color=颜色
editor_ink_thickness=粗细
editor_ink_opacity=不透明度
editor_stamp_add_image_label=添加图像
editor_stamp_add_image.title=添加图像
# Editor aria
editor_free_text2_aria_label=文本编辑器
editor_ink2_aria_label=绘图编辑器
editor_ink_canvas_aria_label=用户创建图像
# Alt-text dialog
# LOCALIZATION NOTE (editor_alt_text_button_label): Alternative text (alt text) helps
# when people can't see the image.
editor_alt_text_button_label=替换文字
editor_alt_text_edit_button_label=编辑替换文字
editor_alt_text_dialog_label=选择一个选项
editor_alt_text_dialog_description=替换文字可在用户无法看到或加载图像时,描述其内容。
editor_alt_text_add_description_label=添加描述
editor_alt_text_add_description_description=描述主题、背景或动作,长度尽量控制在两句话内。
editor_alt_text_mark_decorative_label=标记为装饰
editor_alt_text_mark_decorative_description=用于装饰性图像,例如边框和水印。
editor_alt_text_cancel_button=取消
editor_alt_text_save_button=保存
editor_alt_text_decorative_tooltip=已标记为装饰
# This is a placeholder for the alt text input area
editor_alt_text_textarea.placeholder=例如:一个少年坐到桌前,准备吃饭
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value> <value> <string>application/octet-stream</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
/*jslint indent: 2, nomen: true */ /*jslint indent: 2, nomen: true */
/*global window, rJS, RSVP, PDFJS, configure, webViewerInitialized, /*global window, rJS, RSVP, PDFViewerApplication, PDFViewerApplicationOptions, FileReader */
PDFViewerApplication, FileReader, PasswordPrompt */ (function (window, rJS, RSVP, PDFViewerApplication, PDFViewerApplicationOptions) {
(function (window, rJS, RSVP, PDFJS, configure, webViewerInitialized, PDFViewerApplication, PasswordPrompt) {
"use strict"; "use strict";
function getViewerConfiguration() {
return {
appContainer: document.body,
mainContainer: document.getElementById("viewerContainer"),
viewerContainer: document.getElementById("viewer"),
toolbar: {
container: document.getElementById("toolbarViewer"),
numPages: document.getElementById("numPages"),
pageNumber: document.getElementById("pageNumber"),
scaleSelect: document.getElementById("scaleSelect"),
customScaleOption: document.getElementById("customScaleOption"),
previous: document.getElementById("previous"),
next: document.getElementById("next"),
zoomIn: document.getElementById("zoomIn"),
zoomOut: document.getElementById("zoomOut"),
viewFind: document.getElementById("viewFind"),
openFile: document.getElementById("openFile"),
print: document.getElementById("print"),
editorFreeTextButton: document.getElementById("editorFreeText"),
editorFreeTextParamsToolbar: document.getElementById("editorFreeTextParamsToolbar"),
editorInkButton: document.getElementById("editorInk"),
editorInkParamsToolbar: document.getElementById("editorInkParamsToolbar"),
editorStampButton: document.getElementById("editorStamp"),
editorStampParamsToolbar: document.getElementById("editorStampParamsToolbar"),
download: document.getElementById("download")
},
secondaryToolbar: {
toolbar: document.getElementById("secondaryToolbar"),
toggleButton: document.getElementById("secondaryToolbarToggle"),
presentationModeButton: document.getElementById("presentationMode"),
openFileButton: document.getElementById("secondaryOpenFile"),
printButton: document.getElementById("secondaryPrint"),
downloadButton: document.getElementById("secondaryDownload"),
viewBookmarkButton: document.getElementById("viewBookmark"),
firstPageButton: document.getElementById("firstPage"),
lastPageButton: document.getElementById("lastPage"),
pageRotateCwButton: document.getElementById("pageRotateCw"),
pageRotateCcwButton: document.getElementById("pageRotateCcw"),
cursorSelectToolButton: document.getElementById("cursorSelectTool"),
cursorHandToolButton: document.getElementById("cursorHandTool"),
scrollPageButton: document.getElementById("scrollPage"),
scrollVerticalButton: document.getElementById("scrollVertical"),
scrollHorizontalButton: document.getElementById("scrollHorizontal"),
scrollWrappedButton: document.getElementById("scrollWrapped"),
spreadNoneButton: document.getElementById("spreadNone"),
spreadOddButton: document.getElementById("spreadOdd"),
spreadEvenButton: document.getElementById("spreadEven"),
documentPropertiesButton: document.getElementById("documentProperties")
},
sidebar: {
outerContainer: document.getElementById("outerContainer"),
sidebarContainer: document.getElementById("sidebarContainer"),
toggleButton: document.getElementById("sidebarToggle"),
resizer: document.getElementById("sidebarResizer"),
thumbnailButton: document.getElementById("viewThumbnail"),
outlineButton: document.getElementById("viewOutline"),
attachmentsButton: document.getElementById("viewAttachments"),
layersButton: document.getElementById("viewLayers"),
thumbnailView: document.getElementById("thumbnailView"),
outlineView: document.getElementById("outlineView"),
attachmentsView: document.getElementById("attachmentsView"),
layersView: document.getElementById("layersView"),
outlineOptionsContainer: document.getElementById("outlineOptionsContainer"),
currentOutlineItemButton: document.getElementById("currentOutlineItem")
},
findBar: {
bar: document.getElementById("findbar"),
toggleButton: document.getElementById("viewFind"),
findField: document.getElementById("findInput"),
highlightAllCheckbox: document.getElementById("findHighlightAll"),
caseSensitiveCheckbox: document.getElementById("findMatchCase"),
matchDiacriticsCheckbox: document.getElementById("findMatchDiacritics"),
entireWordCheckbox: document.getElementById("findEntireWord"),
findMsg: document.getElementById("findMsg"),
findResultsCount: document.getElementById("findResultsCount"),
findPreviousButton: document.getElementById("findPrevious"),
findNextButton: document.getElementById("findNext")
},
passwordOverlay: {
dialog: document.getElementById("passwordDialog"),
label: document.getElementById("passwordText"),
input: document.getElementById("password"),
submitButton: document.getElementById("passwordSubmit"),
cancelButton: document.getElementById("passwordCancel")
},
documentProperties: {
dialog: document.getElementById("documentPropertiesDialog"),
closeButton: document.getElementById("documentPropertiesClose"),
fields: {
fileName: document.getElementById("fileNameField"),
fileSize: document.getElementById("fileSizeField"),
title: document.getElementById("titleField"),
author: document.getElementById("authorField"),
subject: document.getElementById("subjectField"),
keywords: document.getElementById("keywordsField"),
creationDate: document.getElementById("creationDateField"),
modificationDate: document.getElementById("modificationDateField"),
creator: document.getElementById("creatorField"),
producer: document.getElementById("producerField"),
version: document.getElementById("versionField"),
pageCount: document.getElementById("pageCountField"),
pageSize: document.getElementById("pageSizeField"),
linearized: document.getElementById("linearizedField")
}
},
altTextDialog: {
dialog: document.getElementById("altTextDialog"),
optionDescription: document.getElementById("descriptionButton"),
optionDecorative: document.getElementById("decorativeButton"),
textarea: document.getElementById("descriptionTextarea"),
cancelButton: document.getElementById("altTextCancel"),
saveButton: document.getElementById("altTextSave")
},
annotationEditorParams: {
editorFreeTextFontSize: document.getElementById("editorFreeTextFontSize"),
editorFreeTextColor: document.getElementById("editorFreeTextColor"),
editorInkColor: document.getElementById("editorInkColor"),
editorInkThickness: document.getElementById("editorInkThickness"),
editorInkOpacity: document.getElementById("editorInkOpacity"),
editorStampAddImage: document.getElementById("editorStampAddImage")
},
printContainer: document.getElementById("printContainer"),
openFileInput: document.getElementById("fileInput"),
debuggerScriptPath: "./debugger.js"
};
};
rJS(window) rJS(window)
.ready(function (gadget) { .ready(function (gadget) {
gadget.props = {}; gadget.props = {};
...@@ -15,27 +141,49 @@ ...@@ -15,27 +141,49 @@
.declareMethod("render", function (options) { .declareMethod("render", function (options) {
var gadget = this; var gadget = this;
gadget.props.key = options.key; gadget.props.key = options.key;
configure(PDFJS); var config = getViewerConfiguration();
PDFJS.locale = options.language; PDFViewerApplicationOptions.set("disablePreferences", true);
PDFViewerApplicationOptions.set("locale", options.language);
PDFViewerApplicationOptions.set("workerSrc", "./pdf_js/build/pdf.worker.js");
return PDFViewerApplication.initialize(config).then(function() {
// hide some buttons that do not make sense for us
gadget.props.element.querySelector('#viewBookmark').hidden = true;
gadget.props.element.querySelector('#documentProperties').hidden = true;
gadget.props.element.querySelector('#download').hidden = true;
gadget.props.element.querySelector('#openFile').hidden = true;
gadget.props.element.querySelector('#editorStamp').hidden = true;
if (options.password) { if (options.password) {
PasswordPrompt._original_open = PasswordPrompt.open; PDFViewerApplication.passwordPrompt._original_open = PDFViewerApplication.passwordPrompt.open;
var retries = 0; var retries = 0;
PasswordPrompt.open = function () { PDFViewerApplication.passwordPrompt.open = function () {
if (retries) { if (retries) {
return this._original_open(); return this._original_open();
} }
return new Promise((resolve) => {
this.input.value = options.password;
this.submitButton.dispatchEvent(new Event("click"));
retries++; retries++;
return this.updatePassword(options.password); resolve();
}).then(() => {
PDFViewerApplication.passwordPrompt.close();
});
}; };
} }
return PDFViewerApplication.initialize().then(function() { }).then(function() {
webViewerInitialized(options.value); return PDFViewerApplication.open({url: options.value})
// hide some buttons that do not make sense for us .catch(function(e){
gadget.props.element.querySelector('#viewBookmark').hidden = true; if (e.name == "InvalidPDFException" || e.name == "PasswordException") {
gadget.props.element.querySelector('#documentProperties').hidden = true; const dialog = document.createElement("dialog");
gadget.props.element.querySelector('#download').hidden = true; dialog.textContent = e.message;
gadget.props.element.querySelector('#openFile').hidden = true; document.getElementById("dialogContainer").append(dialog);
}); dialog.showModal();
return;
}
throw e;
})
})
}) })
.declareMethod("getContent", function () { .declareMethod("getContent", function () {
var form_data = {}; var form_data = {};
...@@ -43,11 +191,11 @@ ...@@ -43,11 +191,11 @@
return new RSVP.Queue() return new RSVP.Queue()
.push(function () { .push(function () {
if (PDFViewerApplication.pdfDocument) { if (PDFViewerApplication.pdfDocument) {
return PDFViewerApplication.pdfDocument.getData(); return PDFViewerApplication.pdfDocument.saveDocument();
} }
}) })
.push(function (data) { .push(function (data) {
var blob = PDFJS.createBlob(data, "application/pdf"); var blob = new Blob([data], {"type": "application/pdf"});
var filereader = new FileReader(); var filereader = new FileReader();
return new RSVP.Promise(function (resolve, reject, notify) { return new RSVP.Promise(function (resolve, reject, notify) {
filereader.addEventListener("load", resolve); filereader.addEventListener("load", resolve);
...@@ -63,4 +211,4 @@ ...@@ -63,4 +211,4 @@
return form_data; return form_data;
}); });
}); });
}(window, rJS, RSVP, PDFJS, configure, webViewerInitialized, PDFViewerApplication, PasswordPrompt)); }(window, rJS, RSVP, PDFViewerApplication, PDFViewerApplicationOptions));
...@@ -28,20 +28,9 @@ See https://github.com/adobe-type-tools/cmap-resources ...@@ -28,20 +28,9 @@ See https://github.com/adobe-type-tools/cmap-resources
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>PDF.js viewer</title> <title>PDF.js viewer</title>
<link rel="stylesheet" href="viewer.css"/> <link rel="stylesheet" href="viewer.css"/>
<script src="compatibility.js"></script>
<!-- This snippet is used in production (included from viewer.html) -->
<link rel="resource" type="application/l10n" href="locale/locale.properties"/> <link rel="resource" type="application/l10n" href="locale/locale.properties"/>
<script src="l10n.js"></script>
<script src="build/pdf.js"></script> <script src="build/pdf.js"></script>
<script src="debugger.js"></script>
<script src="viewer.js"></script> <script src="viewer.js"></script>
<!-- renderjs --> <!-- renderjs -->
...@@ -52,21 +41,36 @@ See https://github.com/adobe-type-tools/cmap-resources ...@@ -52,21 +41,36 @@ See https://github.com/adobe-type-tools/cmap-resources
</head> </head>
<body tabindex="1" class="loadingInProgress"> <body tabindex="1">
<div id="outerContainer"> <div id="outerContainer">
<div id="sidebarContainer"> <div id="sidebarContainer">
<div id="toolbarSidebar"> <div id="toolbarSidebar">
<div class="splitToolbarButton toggled"> <div id="toolbarSidebarLeft">
<button id="viewThumbnail" class="toolbarButton group toggled" title="Show Thumbnails" tabindex="2" data-l10n-id="thumbs"> <div id="sidebarViewButtons" class="splitToolbarButton toggled" role="radiogroup">
<button id="viewThumbnail" class="toolbarButton toggled" title="Show Thumbnails" tabindex="2" data-l10n-id="thumbs" role="radio" aria-checked="true" aria-controls="thumbnailView">
<span data-l10n-id="thumbs_label">Thumbnails</span> <span data-l10n-id="thumbs_label">Thumbnails</span>
</button> </button>
<button id="viewOutline" class="toolbarButton group" title="Show Document Outline" tabindex="3" data-l10n-id="outline"> <button id="viewOutline" class="toolbarButton" title="Show Document Outline (double-click to expand/collapse all items)" tabindex="3" data-l10n-id="document_outline" role="radio" aria-checked="false" aria-controls="outlineView">
<span data-l10n-id="outline_label">Document Outline</span> <span data-l10n-id="document_outline_label">Document Outline</span>
</button> </button>
<button id="viewAttachments" class="toolbarButton group" title="Show Attachments" tabindex="4" data-l10n-id="attachments"> <button id="viewAttachments" class="toolbarButton" title="Show Attachments" tabindex="4" data-l10n-id="attachments" role="radio" aria-checked="false" aria-controls="attachmentsView">
<span data-l10n-id="attachments_label">Attachments</span> <span data-l10n-id="attachments_label">Attachments</span>
</button> </button>
<button id="viewLayers" class="toolbarButton" title="Show Layers (double-click to reset all layers to the default state)" tabindex="5" data-l10n-id="layers" role="radio" aria-checked="false" aria-controls="layersView">
<span data-l10n-id="layers_label">Layers</span>
</button>
</div>
</div>
<div id="toolbarSidebarRight">
<div id="outlineOptionsContainer" class="hidden">
<div class="verticalToolbarSeparator"></div>
<button id="currentOutlineItem" class="toolbarButton" disabled="disabled" title="Find Current Outline Item" tabindex="6" data-l10n-id="current_outline_item">
<span data-l10n-id="current_outline_item_label">Current Outline Item</span>
</button>
</div>
</div> </div>
</div> </div>
<div id="sidebarContent"> <div id="sidebarContent">
...@@ -76,80 +80,172 @@ See https://github.com/adobe-type-tools/cmap-resources ...@@ -76,80 +80,172 @@ See https://github.com/adobe-type-tools/cmap-resources
</div> </div>
<div id="attachmentsView" class="hidden"> <div id="attachmentsView" class="hidden">
</div> </div>
<div id="layersView" class="hidden">
</div>
</div> </div>
<div id="sidebarResizer"></div>
</div> <!-- sidebarContainer --> </div> <!-- sidebarContainer -->
<div id="mainContainer"> <div id="mainContainer">
<div class="findbar hidden doorHanger hiddenSmallView" id="findbar"> <div class="findbar hidden doorHanger" id="findbar">
<label for="findInput" class="toolbarLabel" data-l10n-id="find_label">Find:</label> <div id="findbarInputContainer">
<input id="findInput" class="toolbarField" tabindex="91"> <input id="findInput" class="toolbarField" title="Find" placeholder="Find in document…" tabindex="91" data-l10n-id="find_input" aria-invalid="false">
<div class="splitToolbarButton"> <div class="splitToolbarButton">
<button class="toolbarButton findPrevious" title="" id="findPrevious" tabindex="92" data-l10n-id="find_previous"> <button id="findPrevious" class="toolbarButton" title="Find the previous occurrence of the phrase" tabindex="92" data-l10n-id="find_previous">
<span data-l10n-id="find_previous_label">Previous</span> <span data-l10n-id="find_previous_label">Previous</span>
</button> </button>
<div class="splitToolbarButtonSeparator"></div> <div class="splitToolbarButtonSeparator"></div>
<button class="toolbarButton findNext" title="" id="findNext" tabindex="93" data-l10n-id="find_next"> <button id="findNext" class="toolbarButton" title="Find the next occurrence of the phrase" tabindex="93" data-l10n-id="find_next">
<span data-l10n-id="find_next_label">Next</span> <span data-l10n-id="find_next_label">Next</span>
</button> </button>
</div> </div>
</div>
<div id="findbarOptionsOneContainer">
<input type="checkbox" id="findHighlightAll" class="toolbarField" tabindex="94"> <input type="checkbox" id="findHighlightAll" class="toolbarField" tabindex="94">
<label for="findHighlightAll" class="toolbarLabel" data-l10n-id="find_highlight">Highlight all</label> <label for="findHighlightAll" class="toolbarLabel" data-l10n-id="find_highlight">Highlight All</label>
<input type="checkbox" id="findMatchCase" class="toolbarField" tabindex="95"> <input type="checkbox" id="findMatchCase" class="toolbarField" tabindex="95">
<label for="findMatchCase" class="toolbarLabel" data-l10n-id="find_match_case_label">Match case</label> <label for="findMatchCase" class="toolbarLabel" data-l10n-id="find_match_case_label">Match Case</label>
<span id="findResultsCount" class="toolbarLabel hidden"></span> </div>
<div id="findbarOptionsTwoContainer">
<input type="checkbox" id="findMatchDiacritics" class="toolbarField" tabindex="96">
<label for="findMatchDiacritics" class="toolbarLabel" data-l10n-id="find_match_diacritics_label">Match Diacritics</label>
<input type="checkbox" id="findEntireWord" class="toolbarField" tabindex="97">
<label for="findEntireWord" class="toolbarLabel" data-l10n-id="find_entire_word_label">Whole Words</label>
</div>
<div id="findbarMessageContainer" aria-live="polite">
<span id="findResultsCount" class="toolbarLabel"></span>
<span id="findMsg" class="toolbarLabel"></span> <span id="findMsg" class="toolbarLabel"></span>
</div>
</div> <!-- findbar --> </div> <!-- findbar -->
<div id="secondaryToolbar" class="secondaryToolbar hidden doorHangerRight"> <div class="editorParamsToolbar hidden doorHangerRight" id="editorFreeTextParamsToolbar">
<div id="secondaryToolbarButtonContainer"> <div class="editorParamsToolbarContainer">
<button id="secondaryPresentationMode" class="secondaryToolbarButton presentationMode visibleLargeView" title="Switch to Presentation Mode" tabindex="51" data-l10n-id="presentation_mode"> <div class="editorParamsSetter">
<span data-l10n-id="presentation_mode_label">Presentation Mode</span> <label for="editorFreeTextColor" class="editorParamsLabel" data-l10n-id="editor_free_text_color">Color</label>
<input type="color" id="editorFreeTextColor" class="editorParamsColor" tabindex="100">
</div>
<div class="editorParamsSetter">
<label for="editorFreeTextFontSize" class="editorParamsLabel" data-l10n-id="editor_free_text_size">Size</label>
<input type="range" id="editorFreeTextFontSize" class="editorParamsSlider" value="10" min="5" max="100" step="1" tabindex="101">
</div>
</div>
</div>
<div class="editorParamsToolbar hidden doorHangerRight" id="editorInkParamsToolbar">
<div class="editorParamsToolbarContainer">
<div class="editorParamsSetter">
<label for="editorInkColor" class="editorParamsLabel" data-l10n-id="editor_ink_color">Color</label>
<input type="color" id="editorInkColor" class="editorParamsColor" tabindex="102">
</div>
<div class="editorParamsSetter">
<label for="editorInkThickness" class="editorParamsLabel" data-l10n-id="editor_ink_thickness">Thickness</label>
<input type="range" id="editorInkThickness" class="editorParamsSlider" value="1" min="1" max="20" step="1" tabindex="103">
</div>
<div class="editorParamsSetter">
<label for="editorInkOpacity" class="editorParamsLabel" data-l10n-id="editor_ink_opacity">Opacity</label>
<input type="range" id="editorInkOpacity" class="editorParamsSlider" value="100" min="1" max="100" step="1" tabindex="104">
</div>
</div>
</div>
<div class="editorParamsToolbar hidden doorHangerRight" id="editorStampParamsToolbar">
<div class="editorParamsToolbarContainer">
<button id="editorStampAddImage" class="secondaryToolbarButton" title="Add image" tabindex="105" data-l10n-id="editor_stamp_add_image">
<span data-l10n-id="editor_stamp_add_image_label">Add image</span>
</button> </button>
</div>
</div>
<button id="secondaryOpenFile" class="secondaryToolbarButton openFile visibleLargeView" title="Open File" tabindex="52" data-l10n-id="open_file"> <div id="secondaryToolbar" class="secondaryToolbar hidden doorHangerRight">
<div id="secondaryToolbarButtonContainer">
<button id="secondaryOpenFile" class="secondaryToolbarButton visibleLargeView" title="Open File" tabindex="51" data-l10n-id="open_file">
<span data-l10n-id="open_file_label">Open</span> <span data-l10n-id="open_file_label">Open</span>
</button> </button>
<button id="secondaryPrint" class="secondaryToolbarButton print visibleMediumView" title="Print" tabindex="53" data-l10n-id="print"> <button id="secondaryPrint" class="secondaryToolbarButton visibleMediumView" title="Print" tabindex="52" data-l10n-id="print">
<span data-l10n-id="print_label">Print</span> <span data-l10n-id="print_label">Print</span>
</button> </button>
<button id="secondaryDownload" class="secondaryToolbarButton download visibleMediumView" title="Download" tabindex="54" data-l10n-id="download"> <button id="secondaryDownload" class="secondaryToolbarButton visibleMediumView" title="Save" tabindex="53" data-l10n-id="save">
<span data-l10n-id="download_label">Download</span> <span data-l10n-id="save_label">Save</span>
</button>
<div class="horizontalToolbarSeparator visibleLargeView"></div>
<button id="presentationMode" class="secondaryToolbarButton" title="Switch to Presentation Mode" tabindex="54" data-l10n-id="presentation_mode">
<span data-l10n-id="presentation_mode_label">Presentation Mode</span>
</button> </button>
<a href="#" id="secondaryViewBookmark" class="secondaryToolbarButton bookmark visibleSmallView" title="Current view (copy or open in new window)" tabindex="55" data-l10n-id="bookmark"> <a href="#" id="viewBookmark" class="secondaryToolbarButton" title="Current Page (View URL from Current Page)" tabindex="55" data-l10n-id="bookmark1">
<span data-l10n-id="bookmark_label">Current View</span> <span data-l10n-id="bookmark1_label">Current Page</span>
</a> </a>
<div class="horizontalToolbarSeparator visibleLargeView"></div> <div id="viewBookmarkSeparator" class="horizontalToolbarSeparator"></div>
<button id="firstPage" class="secondaryToolbarButton firstPage" title="Go to First Page" tabindex="56" data-l10n-id="first_page"> <button id="firstPage" class="secondaryToolbarButton" title="Go to First Page" tabindex="56" data-l10n-id="first_page">
<span data-l10n-id="first_page_label">Go to First Page</span> <span data-l10n-id="first_page_label">Go to First Page</span>
</button> </button>
<button id="lastPage" class="secondaryToolbarButton lastPage" title="Go to Last Page" tabindex="57" data-l10n-id="last_page"> <button id="lastPage" class="secondaryToolbarButton" title="Go to Last Page" tabindex="57" data-l10n-id="last_page">
<span data-l10n-id="last_page_label">Go to Last Page</span> <span data-l10n-id="last_page_label">Go to Last Page</span>
</button> </button>
<div class="horizontalToolbarSeparator"></div> <div class="horizontalToolbarSeparator"></div>
<button id="pageRotateCw" class="secondaryToolbarButton rotateCw" title="Rotate Clockwise" tabindex="58" data-l10n-id="page_rotate_cw"> <button id="pageRotateCw" class="secondaryToolbarButton" title="Rotate Clockwise" tabindex="58" data-l10n-id="page_rotate_cw">
<span data-l10n-id="page_rotate_cw_label">Rotate Clockwise</span> <span data-l10n-id="page_rotate_cw_label">Rotate Clockwise</span>
</button> </button>
<button id="pageRotateCcw" class="secondaryToolbarButton rotateCcw" title="Rotate Counterclockwise" tabindex="59" data-l10n-id="page_rotate_ccw"> <button id="pageRotateCcw" class="secondaryToolbarButton" title="Rotate Counterclockwise" tabindex="59" data-l10n-id="page_rotate_ccw">
<span data-l10n-id="page_rotate_ccw_label">Rotate Counterclockwise</span> <span data-l10n-id="page_rotate_ccw_label">Rotate Counterclockwise</span>
</button> </button>
<div class="horizontalToolbarSeparator"></div> <div class="horizontalToolbarSeparator"></div>
<button id="toggleHandTool" class="secondaryToolbarButton handTool" title="Enable hand tool" tabindex="60" data-l10n-id="hand_tool_enable"> <div id="cursorToolButtons" role="radiogroup">
<span data-l10n-id="hand_tool_enable_label">Enable hand tool</span> <button id="cursorSelectTool" class="secondaryToolbarButton toggled" title="Enable Text Selection Tool" tabindex="60" data-l10n-id="cursor_text_select_tool" role="radio" aria-checked="true">
<span data-l10n-id="cursor_text_select_tool_label">Text Selection Tool</span>
</button>
<button id="cursorHandTool" class="secondaryToolbarButton" title="Enable Hand Tool" tabindex="61" data-l10n-id="cursor_hand_tool" role="radio" aria-checked="false">
<span data-l10n-id="cursor_hand_tool_label">Hand Tool</span>
</button>
</div>
<div class="horizontalToolbarSeparator"></div>
<div id="scrollModeButtons" role="radiogroup">
<button id="scrollPage" class="secondaryToolbarButton" title="Use Page Scrolling" tabindex="62" data-l10n-id="scroll_page" role="radio" aria-checked="false">
<span data-l10n-id="scroll_page_label">Page Scrolling</span>
</button>
<button id="scrollVertical" class="secondaryToolbarButton toggled" title="Use Vertical Scrolling" tabindex="63" data-l10n-id="scroll_vertical" role="radio" aria-checked="true">
<span data-l10n-id="scroll_vertical_label" >Vertical Scrolling</span>
</button>
<button id="scrollHorizontal" class="secondaryToolbarButton" title="Use Horizontal Scrolling" tabindex="64" data-l10n-id="scroll_horizontal" role="radio" aria-checked="false">
<span data-l10n-id="scroll_horizontal_label">Horizontal Scrolling</span>
</button>
<button id="scrollWrapped" class="secondaryToolbarButton" title="Use Wrapped Scrolling" tabindex="65" data-l10n-id="scroll_wrapped" role="radio" aria-checked="false">
<span data-l10n-id="scroll_wrapped_label">Wrapped Scrolling</span>
</button> </button>
</div>
<div class="horizontalToolbarSeparator"></div> <div class="horizontalToolbarSeparator"></div>
<button id="documentProperties" class="secondaryToolbarButton documentProperties" title="Document Properties" tabindex="61" data-l10n-id="document_properties"> <div id="spreadModeButtons" role="radiogroup">
<span data-l10n-id="document_properties_label">Document Properties</span> <button id="spreadNone" class="secondaryToolbarButton toggled" title="Do not join page spreads" tabindex="66" data-l10n-id="spread_none" role="radio" aria-checked="true">
<span data-l10n-id="spread_none_label">No Spreads</span>
</button>
<button id="spreadOdd" class="secondaryToolbarButton" title="Join page spreads starting with odd-numbered pages" tabindex="67" data-l10n-id="spread_odd" role="radio" aria-checked="false">
<span data-l10n-id="spread_odd_label">Odd Spreads</span>
</button>
<button id="spreadEven" class="secondaryToolbarButton" title="Join page spreads starting with even-numbered pages" tabindex="68" data-l10n-id="spread_even" role="radio" aria-checked="false">
<span data-l10n-id="spread_even_label">Even Spreads</span>
</button>
</div>
<div class="horizontalToolbarSeparator"></div>
<button id="documentProperties" class="secondaryToolbarButton" title="Document Properties…" tabindex="69" data-l10n-id="document_properties" aria-controls="documentPropertiesDialog">
<span data-l10n-id="document_properties_label">Document Properties…</span>
</button> </button>
</div> </div>
</div> <!-- secondaryToolbar --> </div> <!-- secondaryToolbar -->
...@@ -158,60 +254,65 @@ See https://github.com/adobe-type-tools/cmap-resources ...@@ -158,60 +254,65 @@ See https://github.com/adobe-type-tools/cmap-resources
<div id="toolbarContainer"> <div id="toolbarContainer">
<div id="toolbarViewer"> <div id="toolbarViewer">
<div id="toolbarViewerLeft"> <div id="toolbarViewerLeft">
<button id="sidebarToggle" class="toolbarButton" title="Toggle Sidebar" tabindex="11" data-l10n-id="toggle_sidebar"> <button id="sidebarToggle" class="toolbarButton" title="Toggle Sidebar" tabindex="11" data-l10n-id="toggle_sidebar" aria-expanded="false" aria-controls="sidebarContainer">
<span data-l10n-id="toggle_sidebar_label">Toggle Sidebar</span> <span data-l10n-id="toggle_sidebar_label">Toggle Sidebar</span>
</button> </button>
<div class="toolbarButtonSpacer"></div> <div class="toolbarButtonSpacer"></div>
<button id="viewFind" class="toolbarButton group hiddenSmallView" title="Find in Document" tabindex="12" data-l10n-id="findbar"> <button id="viewFind" class="toolbarButton" title="Find in Document" tabindex="12" data-l10n-id="findbar" aria-expanded="false" aria-controls="findbar">
<span data-l10n-id="findbar_label">Find</span> <span data-l10n-id="findbar_label">Find</span>
</button> </button>
<div class="splitToolbarButton"> <div class="splitToolbarButton hiddenSmallView">
<button class="toolbarButton pageUp" title="Previous Page" id="previous" tabindex="13" data-l10n-id="previous"> <button class="toolbarButton" title="Previous Page" id="previous" tabindex="13" data-l10n-id="previous">
<span data-l10n-id="previous_label">Previous</span> <span data-l10n-id="previous_label">Previous</span>
</button> </button>
<div class="splitToolbarButtonSeparator"></div> <div class="splitToolbarButtonSeparator"></div>
<button class="toolbarButton pageDown" title="Next Page" id="next" tabindex="14" data-l10n-id="next"> <button class="toolbarButton" title="Next Page" id="next" tabindex="14" data-l10n-id="next">
<span data-l10n-id="next_label">Next</span> <span data-l10n-id="next_label">Next</span>
</button> </button>
</div> </div>
<label id="pageNumberLabel" class="toolbarLabel" for="pageNumber" data-l10n-id="page_label">Page: </label> <input type="number" id="pageNumber" class="toolbarField" title="Page" value="1" min="1" tabindex="15" data-l10n-id="page" autocomplete="off">
<input type="number" id="pageNumber" class="toolbarField pageNumber" value="1" size="4" min="1" tabindex="15">
<span id="numPages" class="toolbarLabel"></span> <span id="numPages" class="toolbarLabel"></span>
</div> </div>
<div id="toolbarViewerRight"> <div id="toolbarViewerRight">
<button id="presentationMode" class="toolbarButton presentationMode hiddenLargeView" title="Switch to Presentation Mode" tabindex="31" data-l10n-id="presentation_mode"> <button id="openFile" class="toolbarButton hiddenLargeView" title="Open File" tabindex="31" data-l10n-id="open_file">
<span data-l10n-id="presentation_mode_label">Presentation Mode</span>
</button>
<button id="openFile" class="toolbarButton openFile hiddenLargeView" title="Open File" tabindex="32" data-l10n-id="open_file">
<span data-l10n-id="open_file_label">Open</span> <span data-l10n-id="open_file_label">Open</span>
</button> </button>
<button id="print" class="toolbarButton print hiddenMediumView" title="Print" tabindex="33" data-l10n-id="print"> <button id="print" class="toolbarButton hiddenMediumView" title="Print" tabindex="32" data-l10n-id="print">
<span data-l10n-id="print_label">Print</span> <span data-l10n-id="print_label">Print</span>
</button> </button>
<button id="download" class="toolbarButton download hiddenMediumView" title="Download" tabindex="34" data-l10n-id="download"> <button id="download" class="toolbarButton hiddenMediumView" title="Save" tabindex="33" data-l10n-id="save">
<span data-l10n-id="download_label">Download</span> <span data-l10n-id="save_label">Save</span>
</button> </button>
<a href="#" id="viewBookmark" class="toolbarButton bookmark hiddenSmallView" title="Current view (copy or open in new window)" tabindex="35" data-l10n-id="bookmark">
<span data-l10n-id="bookmark_label">Current View</span>
</a>
<div class="verticalToolbarSeparator hiddenSmallView"></div> <div class="verticalToolbarSeparator hiddenMediumView"></div>
<div id="editorModeButtons" class="splitToolbarButton toggled" role="radiogroup">
<button id="editorFreeText" class="toolbarButton" disabled="disabled" title="Text" role="radio" aria-checked="false" aria-controls="editorFreeTextParamsToolbar" tabindex="34" data-l10n-id="editor_free_text2">
<span data-l10n-id="editor_free_text2_label">Text</span>
</button>
<button id="editorInk" class="toolbarButton" disabled="disabled" title="Draw" role="radio" aria-checked="false" aria-controls="editorInkParamsToolbar" tabindex="35" data-l10n-id="editor_ink2">
<span data-l10n-id="editor_ink2_label">Draw</span>
</button>
<button id="editorStamp" class="toolbarButton hidden" disabled="disabled" title="Add or edit images" role="radio" aria-checked="false" aria-controls="editorStampParamsToolbar" tabindex="36" data-l10n-id="editor_stamp1">
<span data-l10n-id="editor_stamp1_label">Add or edit images</span>
</button>
</div>
<div id="editorModeSeparator" class="verticalToolbarSeparator"></div>
<button id="secondaryToolbarToggle" class="toolbarButton" title="Tools" tabindex="36" data-l10n-id="tools"> <button id="secondaryToolbarToggle" class="toolbarButton" title="Tools" tabindex="48" data-l10n-id="tools" aria-expanded="false" aria-controls="secondaryToolbar">
<span data-l10n-id="tools_label">Tools</span> <span data-l10n-id="tools_label">Tools</span>
</button> </button>
</div> </div>
<div class="outerCenter"> <div id="toolbarViewerMiddle">
<div class="innerCenter" id="toolbarViewerMiddle">
<div class="splitToolbarButton"> <div class="splitToolbarButton">
<button id="zoomOut" class="toolbarButton zoomOut" title="Zoom Out" tabindex="21" data-l10n-id="zoom_out"> <button id="zoomOut" class="toolbarButton" title="Zoom Out" tabindex="21" data-l10n-id="zoom_out">
<span data-l10n-id="zoom_out_label">Zoom Out</span> <span data-l10n-id="zoom_out_label">Zoom Out</span>
</button> </button>
<div class="splitToolbarButtonSeparator"></div> <div class="splitToolbarButtonSeparator"></div>
<button id="zoomIn" class="toolbarButton zoomIn" title="Zoom In" tabindex="22" data-l10n-id="zoom_in"> <button id="zoomIn" class="toolbarButton" title="Zoom In" tabindex="22" data-l10n-id="zoom_in">
<span data-l10n-id="zoom_in_label">Zoom In</span> <span data-l10n-id="zoom_in_label">Zoom In</span>
</button> </button>
</div> </div>
...@@ -219,9 +320,9 @@ See https://github.com/adobe-type-tools/cmap-resources ...@@ -219,9 +320,9 @@ See https://github.com/adobe-type-tools/cmap-resources
<select id="scaleSelect" title="Zoom" tabindex="23" data-l10n-id="zoom"> <select id="scaleSelect" title="Zoom" tabindex="23" data-l10n-id="zoom">
<option id="pageAutoOption" title="" value="auto" selected="selected" data-l10n-id="page_scale_auto">Automatic Zoom</option> <option id="pageAutoOption" title="" value="auto" selected="selected" data-l10n-id="page_scale_auto">Automatic Zoom</option>
<option id="pageActualOption" title="" value="page-actual" data-l10n-id="page_scale_actual">Actual Size</option> <option id="pageActualOption" title="" value="page-actual" data-l10n-id="page_scale_actual">Actual Size</option>
<option id="pageFitOption" title="" value="page-fit" data-l10n-id="page_scale_fit">Fit Page</option> <option id="pageFitOption" title="" value="page-fit" data-l10n-id="page_scale_fit">Page Fit</option>
<option id="pageWidthOption" title="" value="page-width" data-l10n-id="page_scale_width">Full Width</option> <option id="pageWidthOption" title="" value="page-width" data-l10n-id="page_scale_width">Page Width</option>
<option id="customScaleOption" title="" value="custom"></option> <option id="customScaleOption" title="" value="custom" disabled="disabled" hidden="true"></option>
<option title="" value="0.5" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 50 }'>50%</option> <option title="" value="0.5" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 50 }'>50%</option>
<option title="" value="0.75" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 75 }'>75%</option> <option title="" value="0.75" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 75 }'>75%</option>
<option title="" value="1" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 100 }'>100%</option> <option title="" value="1" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 100 }'>100%</option>
...@@ -234,7 +335,6 @@ See https://github.com/adobe-type-tools/cmap-resources ...@@ -234,7 +335,6 @@ See https://github.com/adobe-type-tools/cmap-resources
</span> </span>
</div> </div>
</div> </div>
</div>
<div id="loadingBar"> <div id="loadingBar">
<div class="progress"> <div class="progress">
<div class="glimmer"> <div class="glimmer">
...@@ -244,186 +344,150 @@ See https://github.com/adobe-type-tools/cmap-resources ...@@ -244,186 +344,150 @@ See https://github.com/adobe-type-tools/cmap-resources
</div> </div>
</div> </div>
<menu type="context" id="viewerContextMenu">
<menuitem id="contextFirstPage" label="First Page"
data-l10n-id="first_page"></menuitem>
<menuitem id="contextLastPage" label="Last Page"
data-l10n-id="last_page"></menuitem>
<menuitem id="contextPageRotateCw" label="Rotate Clockwise"
data-l10n-id="page_rotate_cw"></menuitem>
<menuitem id="contextPageRotateCcw" label="Rotate Counter-Clockwise"
data-l10n-id="page_rotate_ccw"></menuitem>
</menu>
<div id="viewerContainer" tabindex="0"> <div id="viewerContainer" tabindex="0">
<div id="viewer" class="pdfViewer"></div> <div id="viewer" class="pdfViewer"></div>
</div> </div>
<div id="errorWrapper" hidden='true'>
<div id="errorMessageLeft">
<span id="errorMessage"></span>
<button id="errorShowMore" data-l10n-id="error_more_info">
More Information
</button>
<button id="errorShowLess" data-l10n-id="error_less_info" hidden='true'>
Less Information
</button>
</div>
<div id="errorMessageRight">
<button id="errorClose" data-l10n-id="error_close">
Close
</button>
</div>
<div class="clearBoth"></div>
<textarea id="errorMoreInfo" hidden='true' readonly="readonly"></textarea>
</div>
</div> <!-- mainContainer --> </div> <!-- mainContainer -->
<div id="overlayContainer" class="hidden"> <div id="dialogContainer">
<div id="passwordOverlay" class="container hidden"> <dialog id="passwordDialog">
<div class="dialog">
<div class="row"> <div class="row">
<p id="passwordText" data-l10n-id="password_label">Enter the password to open this PDF file:</p> <label for="password" id="passwordText" data-l10n-id="password_label">Enter the password to open this PDF file:</label>
</div> </div>
<div class="row"> <div class="row">
<!-- The type="password" attribute is set via script, to prevent warnings in Firefox for all http:// documents. --> <input type="password" id="password" class="toolbarField">
<input id="password" class="toolbarField" />
</div> </div>
<div class="buttonRow"> <div class="buttonRow">
<button id="passwordCancel" class="overlayButton"><span data-l10n-id="password_cancel">Cancel</span></button> <button id="passwordCancel" class="dialogButton"><span data-l10n-id="password_cancel">Cancel</span></button>
<button id="passwordSubmit" class="overlayButton"><span data-l10n-id="password_ok">OK</span></button> <button id="passwordSubmit" class="dialogButton"><span data-l10n-id="password_ok">OK</span></button>
</div> </div>
</div> </dialog>
</div> <dialog id="documentPropertiesDialog">
<div id="documentPropertiesOverlay" class="container hidden">
<div class="dialog">
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_file_name">File name:</span> <p id="fileNameField">-</p> <span id="fileNameLabel" data-l10n-id="document_properties_file_name">File name:</span>
<p id="fileNameField" aria-labelledby="fileNameLabel">-</p>
</div> </div>
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_file_size">File size:</span> <p id="fileSizeField">-</p> <span id="fileSizeLabel" data-l10n-id="document_properties_file_size">File size:</span>
<p id="fileSizeField" aria-labelledby="fileSizeLabel">-</p>
</div> </div>
<div class="separator"></div> <div class="separator"></div>
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_title">Title:</span> <p id="titleField">-</p> <span id="titleLabel" data-l10n-id="document_properties_title">Title:</span>
<p id="titleField" aria-labelledby="titleLabel">-</p>
</div> </div>
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_author">Author:</span> <p id="authorField">-</p> <span id="authorLabel" data-l10n-id="document_properties_author">Author:</span>
<p id="authorField" aria-labelledby="authorLabel">-</p>
</div> </div>
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_subject">Subject:</span> <p id="subjectField">-</p> <span id="subjectLabel" data-l10n-id="document_properties_subject">Subject:</span>
<p id="subjectField" aria-labelledby="subjectLabel">-</p>
</div> </div>
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_keywords">Keywords:</span> <p id="keywordsField">-</p> <span id="keywordsLabel" data-l10n-id="document_properties_keywords">Keywords:</span>
<p id="keywordsField" aria-labelledby="keywordsLabel">-</p>
</div> </div>
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_creation_date">Creation Date:</span> <p id="creationDateField">-</p> <span id="creationDateLabel" data-l10n-id="document_properties_creation_date">Creation Date:</span>
<p id="creationDateField" aria-labelledby="creationDateLabel">-</p>
</div> </div>
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_modification_date">Modification Date:</span> <p id="modificationDateField">-</p> <span id="modificationDateLabel" data-l10n-id="document_properties_modification_date">Modification Date:</span>
<p id="modificationDateField" aria-labelledby="modificationDateLabel">-</p>
</div> </div>
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_creator">Creator:</span> <p id="creatorField">-</p> <span id="creatorLabel" data-l10n-id="document_properties_creator">Creator:</span>
<p id="creatorField" aria-labelledby="creatorLabel">-</p>
</div> </div>
<div class="separator"></div> <div class="separator"></div>
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_producer">PDF Producer:</span> <p id="producerField">-</p> <span id="producerLabel" data-l10n-id="document_properties_producer">PDF Producer:</span>
<p id="producerField" aria-labelledby="producerLabel">-</p>
</div>
<div class="row">
<span id="versionLabel" data-l10n-id="document_properties_version">PDF Version:</span>
<p id="versionField" aria-labelledby="versionLabel">-</p>
</div>
<div class="row">
<span id="pageCountLabel" data-l10n-id="document_properties_page_count">Page Count:</span>
<p id="pageCountField" aria-labelledby="pageCountLabel">-</p>
</div> </div>
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_version">PDF Version:</span> <p id="versionField">-</p> <span id="pageSizeLabel" data-l10n-id="document_properties_page_size">Page Size:</span>
<p id="pageSizeField" aria-labelledby="pageSizeLabel">-</p>
</div> </div>
<div class="separator"></div>
<div class="row"> <div class="row">
<span data-l10n-id="document_properties_page_count">Page Count:</span> <p id="pageCountField">-</p> <span id="linearizedLabel" data-l10n-id="document_properties_linearized">Fast Web View:</span>
<p id="linearizedField" aria-labelledby="linearizedLabel">-</p>
</div> </div>
<div class="buttonRow"> <div class="buttonRow">
<button id="documentPropertiesClose" class="overlayButton"><span data-l10n-id="document_properties_close">Close</span></button> <button id="documentPropertiesClose" class="dialogButton"><span data-l10n-id="document_properties_close">Close</span></button>
</div>
</dialog>
<dialog id="altTextDialog" aria-labelledby="dialogLabel" aria-describedby="dialogDescription">
<div id="altTextContainer">
<div id="overallDescription">
<span id="dialogLabel" data-l10n-id="editor_alt_text_dialog_label" class="title">Choose an option</span>
<span id="dialogDescription" data-l10n-id="editor_alt_text_dialog_description">
Alt text (alternative text) helps when people can’t see the image or when it doesn’t load.
</span>
</div> </div>
<div id="addDescription">
<div class="radio">
<div class="radioButton">
<input type="radio" id="descriptionButton" name="altTextOption" tabindex="0" aria-describedby="descriptionAreaLabel" checked>
<label for="descriptionButton" data-l10n-id="editor_alt_text_add_description_label">Add a description</label>
</div> </div>
<div class="radioLabel">
<span id="descriptionAreaLabel" data-l10n-id="editor_alt_text_add_description_description">
Aim for 1-2 sentences that describe the subject, setting, or actions.
</span>
</div> </div>
</div> <!-- overlayContainer -->
</div> <!-- outerContainer -->
<div id="printContainer"></div>
<div id="mozPrintCallback-shim" hidden>
<style>
@media print {
#printContainer div {
page-break-after: always;
page-break-inside: avoid;
}
}
</style>
<style scoped>
#mozPrintCallback-shim {
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 9999999;
display: block;
text-align: center;
background-color: rgba(0, 0, 0, 0.5);
}
#mozPrintCallback-shim[hidden] {
display: none;
}
@media print {
#mozPrintCallback-shim {
display: none;
}
}
#mozPrintCallback-shim .mozPrintCallback-dialog-box {
display: inline-block;
margin: -50px auto 0;
position: relative;
top: 45%;
left: 0;
min-width: 220px;
max-width: 400px;
padding: 9px;
border: 1px solid hsla(0, 0%, 0%, .5);
border-radius: 2px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
background-color: #474747;
color: hsl(0, 0%, 85%);
font-size: 16px;
line-height: 20px;
}
#mozPrintCallback-shim .progress-row {
clear: both;
padding: 1em 0;
}
#mozPrintCallback-shim progress {
width: 100%;
}
#mozPrintCallback-shim .relative-progress {
clear: both;
float: right;
}
#mozPrintCallback-shim .progress-actions {
clear: both;
}
</style>
<div class="mozPrintCallback-dialog-box">
<!-- TODO: Localise the following strings -->
Preparing document for printing...
<div class="progress-row">
<progress value="0" max="100"></progress>
<span class="relative-progress">0%</span>
</div> </div>
<div class="progress-actions"> <div class="descriptionArea">
<input type="button" value="Cancel" class="mozPrintCallback-cancel"> <textarea id="descriptionTextarea" placeholder="For example, “A young man sits down at a table to eat a meal”" aria-labelledby="descriptionAreaLabel" data-l10n-id="editor_alt_text_textarea" tabindex="0"></textarea>
</div>
</div>
<div id="markAsDecorative">
<div class="radio">
<div class="radioButton">
<input type="radio" id="decorativeButton" name="altTextOption" aria-describedby="decorativeLabel">
<label for="decorativeButton" data-l10n-id="editor_alt_text_mark_decorative_label">Mark as decorative</label>
</div>
<div class="radioLabel">
<span id="decorativeLabel" data-l10n-id="editor_alt_text_mark_decorative_description">
This is used for ornamental images, like borders or watermarks.
</span>
</div>
</div>
</div>
<div id="buttons">
<button id="altTextCancel" tabindex="0"><span data-l10n-id="editor_alt_text_cancel_button">Cancel</span></button>
<button id="altTextSave" tabindex="0"><span data-l10n-id="editor_alt_text_save_button">Save</span></button>
</div>
</div>
</dialog>
<dialog id="printServiceDialog" style="min-width: 200px;">
<div class="row">
<span data-l10n-id="print_progress_message">Preparing document for printing…</span>
</div>
<div class="row">
<progress value="0" max="100"></progress>
<span data-l10n-id="print_progress_percent" data-l10n-args='{ "progress": 0 }' class="relative-progress">0%</span>
</div> </div>
<div class="buttonRow">
<button id="printCancel" class="dialogButton"><span data-l10n-id="print_progress_close">Cancel</span></button>
</div> </div>
</div> </dialog>
</div> <!-- dialogContainer -->
</div> <!-- outerContainer -->
<div id="printContainer"></div>
<input type="file" id="fileInput" class="hidden">
</body> </body>
</html> </html>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>standard_fonts</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>FoxitDingbats.pfb</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-font</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>FoxitFixed.pfb</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-font</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>FoxitFixedBold.pfb</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-font</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>FoxitFixedBoldItalic.pfb</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-font</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>FoxitFixedItalic.pfb</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-font</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>FoxitSerif.pfb</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-font</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>FoxitSerifBold.pfb</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-font</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>FoxitSerifBoldItalic.pfb</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-font</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>FoxitSerifItalic.pfb</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-font</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>FoxitSymbol.pfb</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-font</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
// Copyright 2014 PDFium Authors. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>LICENSE_FOXIT</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
Digitized data copyright (c) 2010 Google Corporation
with Reserved Font Arimo, Tinos and Cousine.
Copyright (c) 2012 Red Hat, Inc.
with Reserved Font Name Liberation.
This Font Software is licensed under the SIL Open Font License,
Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
PREAMBLE The goals of the Open Font License (OFL) are to stimulate
worldwide development of collaborative font projects, to support the font
creation efforts of academic and linguistic communities, and to provide
a free and open framework in which fonts may be shared and improved in
partnership with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves.
The fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply to
any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such.
This may include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components
as distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting ? in part or in whole ?
any of the components of the Original Version, by changing formats or
by porting the Font Software to a new environment.
"Author" refers to any designer, engineer, programmer, technical writer
or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a
copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,in
Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the
corresponding Copyright Holder. This restriction only applies to the
primary font name as presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole, must
be distributed entirely under this license, and must not be distributed
under any other license. The requirement for fonts to remain under
this license does not apply to any document created using the Font
Software.
TERMINATION
This license becomes null and void if any of the above conditions are not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
DEALINGS IN THE FONT SOFTWARE.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>LICENSE_LIBERATION</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>LiberationSans-Bold.ttf</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>font/truetype</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>LiberationSans-BoldItalic.ttf</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>font/truetype</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>LiberationSans-Italic.ttf</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>font/truetype</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>LiberationSans-Regular.ttf</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>font/truetype</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</item> </item>
<item> <item>
<key> <string>content_type</string> </key> <key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value> <value> <string>text/javascript</string> </value>
</item> </item>
<item> <item>
<key> <string>precondition</string> </key> <key> <string>precondition</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Zuite" module="Products.Zelenium.zuite"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>pdf_gadget_zuite</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testBrokenDocumentPDFPreview</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>PDF Preview with Invalid Documents</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_and_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tr>
<td>openAndWait</td>
<td>${base_url}/document_module</td>
<td></td>
</tr>
<tr>
<td>selectAndWait</td>
<td>select_action</td>
<td>Add PDF</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Preview</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@id="dialogContainer"]/dialog[contains(text(), "The PDF file is empty")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=View</td>
<td></td>
</tr>
<tr>
<td>setFile</td>
<td>field_my_file</td>
<td>getId broken.pdf application/pdf</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>Base_edit:method</td>
<td></td>
</tr>
<tr>
<td>assertPortalStatusMessage</td>
<td>Data updated.</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Preview</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@id="dialogContainer"]/dialog[contains(text(), "Invalid PDF structure.")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testEditPDF</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>Edit PDF</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -13,7 +13,17 @@ ...@@ -13,7 +13,17 @@
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" /> <tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tr> <tr>
<td>openAndWait</td> <td>openAndWait</td>
<td>${base_url}/document_module/test_ERP5_Logo_Encrypted_PDF</td> <td>${base_url}/document_module/test_ERP5_Logo_PDF</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>Base_createCloneDocument:method</td>
<td></td>
</tr>
<tr>
<td>assertPortalStatusMessage</td>
<td>Created Clone PDF.</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -33,7 +43,7 @@ ...@@ -33,7 +43,7 @@
</tr> </tr>
<tr> <tr>
<td>waitForText</td> <td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td> <td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td> <td>This is a sample PDF with some text and an image</td>
</tr> </tr>
<tr> <tr>
...@@ -41,21 +51,14 @@ ...@@ -41,21 +51,14 @@
<td>relative=top</td> <td>relative=top</td>
<td></td> <td></td>
</tr> </tr>
<!--
This PDF is automatically decrypted because of the ID
(see portal_skins/erp5_dms_ui_test/PDF_getContentPassword)
Make a clone, that will not be automatically decrypted (because Id will be different)
It is still possible for user to enter a password and view.
-->
<tr> <tr>
<td>clickAndWait</td> <td>clickAndWait</td>
<td>Base_createCloneDocument:method</td> <td>Base_edit:method</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td>assertPortalStatusMessage</td> <td>assertPortalStatusMessage</td>
<td>Created Clone PDF.</td> <td>Data updated.</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -68,24 +71,9 @@ ...@@ -68,24 +71,9 @@
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td> <td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td> <td></td>
</tr> </tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@id="passwordOverlay" and not(contains(@class, "hidden"))]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>password</td>
<td>secret</td>
</tr>
<tr>
<td>click</td>
<td>passwordSubmit</td>
<td></td>
</tr>
<tr> <tr>
<td>waitForText</td> <td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td> <td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td> <td>This is a sample PDF with some text and an image</td>
</tr> </tr>
<tr> <tr>
......
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_and_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tr>
<td>openAndWait</td>
<td>${base_url}/document_module/test_ERP5_Logo_Encrypted_PDF</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Preview</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
<!--
This PDF is automatically decrypted because of the ID
(see portal_skins/erp5_dms_ui_test/PDF_getContentPassword)
Make a clone, that will not be automatically decrypted (because Id will be different)
It is still possible for user to enter a password and view.
-->
<tr>
<td>clickAndWait</td>
<td>Base_createCloneDocument:method</td>
<td></td>
</tr>
<tr>
<td>assertPortalStatusMessage</td>
<td>Created Clone PDF.</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//dialog[@id="passwordDialog" and @open]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>password</td>
<td>secret</td>
</tr>
<tr>
<td>click</td>
<td>passwordSubmit</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
<!-- when user enter a wrong password, this does not cause a crash. -->
<tr>
<td>clickAndWait</td>
<td>link=Preview</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//dialog[@id="passwordDialog" and @open]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>password</td>
<td>wrong</td>
</tr>
<tr>
<td>click</td>
<td>passwordSubmit</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>css=#passwordText</td>
<td>Invalid password. Please try again.</td>
</tr>
<tr>
<td>click</td>
<td>passwordCancel</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@id="dialogContainer"]/dialog[contains(text(), "Incorrect Password")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
</tr> </tr>
<tr> <tr>
<td>waitForText</td> <td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td> <td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td> <td>This is a sample PDF with some text and an image</td>
</tr> </tr>
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
</tr> </tr>
<tr> <tr>
<td>waitForText</td> <td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td> <td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td> <td>This is a sample PDF with some text and an image</td>
</tr> </tr>
<tr> <tr>
......
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
</tr> </tr>
<tr> <tr>
<td>waitForElementPresent</td> <td>waitForElementPresent</td>
<td>//div[@id='pageContainer1']</td> <td>//div[@id='viewerContainer']//div[@data-page-number="1"]</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
......
...@@ -11,237 +11,264 @@ url_list = [ ...@@ -11,237 +11,264 @@ url_list = [
"gadget_erp5_page_ojs_about.css", "gadget_erp5_page_ojs_about.css",
#pdf_js #pdf_js
"pdf_js/pdfjs.gadget.html",
"pdf_js/pdf.gadget.js",
"pdf_js/images/toolbarButton-pageUp.png",
"pdf_js/images/annotation-insert.svg",
"pdf_js/images/annotation-paragraph.svg",
"pdf_js/images/secondaryToolbarButton-rotateCcw.png",
"pdf_js/images/grab.cur",
"pdf_js/images/treeitem-collapsed-rtl.png",
"pdf_js/images/toolbarButton-presentationMode.png",
"pdf_js/images/secondaryToolbarButton-firstPage.png",
"pdf_js/images/toolbarButton-zoomIn.png",
"pdf_js/images/toolbarButton-pageDown.png",
"pdf_js/images/toolbarButton-search.png",
"pdf_js/images/findbarButton-next.png",
"pdf_js/images/annotation-note.svg",
"pdf_js/images/shadow.png",
"pdf_js/images/texture.png",
"pdf_js/images/loading-icon.gif",
"pdf_js/images/toolbarButton-sidebarToggle.png",
"pdf_js/images/toolbarButton-pageDown-rtl.png",
"pdf_js/images/toolbarButton-menuArrows.png",
"pdf_js/images/toolbarButton-secondaryToolbarToggle-rtl.png",
"pdf_js/images/annotation-comment.svg",
"pdf_js/images/treeitem-collapsed.png",
"pdf_js/images/secondaryToolbarButton-handTool.png",
"pdf_js/images/annotation-newparagraph.svg",
"pdf_js/images/toolbarButton-sidebarToggle-rtl.png",
"pdf_js/images/secondaryToolbarButton-lastPage.png",
"pdf_js/images/toolbarButton-secondaryToolbarToggle.png",
"pdf_js/images/grabbing.cur",
"pdf_js/images/annotation-help.svg",
"pdf_js/images/toolbarButton-viewOutline-rtl.png",
"pdf_js/images/toolbarButton-openFile.png",
"pdf_js/images/toolbarButton-viewOutline.png",
"pdf_js/images/annotation-check.svg",
"pdf_js/images/annotation-noicon.svg",
"pdf_js/images/loading-small.png",
"pdf_js/images/secondaryToolbarButton-rotateCw.png",
"pdf_js/images/findbarButton-next-rtl.png",
"pdf_js/images/toolbarButton-bookmark.png",
"pdf_js/images/findbarButton-previous.png",
"pdf_js/images/toolbarButton-download.png",
"pdf_js/images/secondaryToolbarButton-documentProperties.png",
"pdf_js/images/annotation-key.svg",
"pdf_js/images/toolbarButton-zoomOut.png",
"pdf_js/images/toolbarButton-print.png",
"pdf_js/images/toolbarButton-pageUp-rtl.png",
"pdf_js/images/findbarButton-previous-rtl.png",
"pdf_js/images/toolbarButton-viewAttachments.png",
"pdf_js/images/treeitem-expanded.png",
"pdf_js/images/toolbarButton-viewThumbnail.png",
"pdf_js/compatibility.js",
"pdf_js/viewer.css",
"pdf_js/viewer.js",
"pdf_js/l10n.js",
"pdf_js/locale/uk/viewer.properties",
"pdf_js/locale/en-US/viewer.properties",
"pdf_js/locale/locale.properties",
"pdf_js/locale/en-GB/viewer.properties",
"pdf_js/build/pdf.js", "pdf_js/build/pdf.js",
"pdf_js/build/pdf.worker.js", "pdf_js/build/pdf.sandbox.js",
"pdf_js/cmaps/UniJIS2004-UTF8-H.bcmap", "pdf_js/pdf_js/build/pdf.worker.js",
"pdf_js/cmaps/Hankaku.bcmap", "pdf_js/cmaps/78-EUC-H.bcmap",
"pdf_js/cmaps/UniKS-UTF32-V.bcmap", "pdf_js/cmaps/78-EUC-V.bcmap",
"pdf_js/cmaps/UniGB-UTF16-V.bcmap", "pdf_js/cmaps/78-H.bcmap",
"pdf_js/cmaps/HKscs-B5-V.bcmap", "pdf_js/cmaps/78-RKSJ-H.bcmap",
"pdf_js/cmaps/ETHK-B5-V.bcmap",
"pdf_js/cmaps/Roman.bcmap",
"pdf_js/cmaps/UniKS-UCS2-V.bcmap",
"pdf_js/cmaps/UniCNS-UTF32-H.bcmap",
"pdf_js/cmaps/90ms-RKSJ-H.bcmap",
"pdf_js/cmaps/78-RKSJ-V.bcmap", "pdf_js/cmaps/78-RKSJ-V.bcmap",
"pdf_js/cmaps/GB-H.bcmap", "pdf_js/cmaps/78-V.bcmap",
"pdf_js/cmaps/78ms-RKSJ-H.bcmap",
"pdf_js/cmaps/78ms-RKSJ-V.bcmap",
"pdf_js/cmaps/83pv-RKSJ-H.bcmap",
"pdf_js/cmaps/90ms-RKSJ-H.bcmap",
"pdf_js/cmaps/90ms-RKSJ-V.bcmap",
"pdf_js/cmaps/90msp-RKSJ-H.bcmap",
"pdf_js/cmaps/90msp-RKSJ-V.bcmap",
"pdf_js/cmaps/90pv-RKSJ-H.bcmap",
"pdf_js/cmaps/90pv-RKSJ-V.bcmap",
"pdf_js/cmaps/Add-H.bcmap", "pdf_js/cmaps/Add-H.bcmap",
"pdf_js/cmaps/HKm314-B5-H.bcmap", "pdf_js/cmaps/Add-RKSJ-H.bcmap",
"pdf_js/cmaps/Adobe-CNS1-6.bcmap", "pdf_js/cmaps/Add-RKSJ-V.bcmap",
"pdf_js/cmaps/Ext-H.bcmap", "pdf_js/cmaps/Add-V.bcmap",
"pdf_js/cmaps/ETen-B5-V.bcmap", "pdf_js/cmaps/Adobe-CNS1-0.bcmap",
"pdf_js/cmaps/UniJISPro-UCS2-HW-V.bcmap", "pdf_js/cmaps/Adobe-CNS1-1.bcmap",
"pdf_js/cmaps/Adobe-CNS1-5.bcmap",
"pdf_js/cmaps/UniKS-UCS2-H.bcmap",
"pdf_js/cmaps/NWP-H.bcmap",
"pdf_js/cmaps/NWP-V.bcmap",
"pdf_js/cmaps/78-EUC-V.bcmap",
"pdf_js/cmaps/HKgccs-B5-H.bcmap",
"pdf_js/cmaps/HKscs-B5-H.bcmap",
"pdf_js/cmaps/Adobe-CNS1-2.bcmap", "pdf_js/cmaps/Adobe-CNS1-2.bcmap",
"pdf_js/cmaps/Adobe-CNS1-3.bcmap",
"pdf_js/cmaps/Adobe-CNS1-4.bcmap",
"pdf_js/cmaps/Adobe-CNS1-5.bcmap",
"pdf_js/cmaps/Adobe-CNS1-6.bcmap",
"pdf_js/cmaps/Adobe-CNS1-UCS2.bcmap",
"pdf_js/cmaps/Adobe-GB1-0.bcmap",
"pdf_js/cmaps/Adobe-GB1-1.bcmap", "pdf_js/cmaps/Adobe-GB1-1.bcmap",
"pdf_js/cmaps/UniCNS-UCS2-H.bcmap", "pdf_js/cmaps/Adobe-GB1-2.bcmap",
"pdf_js/cmaps/GBK2K-H.bcmap", "pdf_js/cmaps/Adobe-GB1-3.bcmap",
"pdf_js/cmaps/90pv-RKSJ-V.bcmap",
"pdf_js/cmaps/UniJIS-UTF16-H.bcmap",
"pdf_js/cmaps/Adobe-Japan1-UCS2.bcmap",
"pdf_js/cmaps/HKdlb-B5-H.bcmap",
"pdf_js/cmaps/EUC-H.bcmap",
"pdf_js/cmaps/UniJIS2004-UTF8-V.bcmap",
"pdf_js/cmaps/Adobe-GB1-4.bcmap", "pdf_js/cmaps/Adobe-GB1-4.bcmap",
"pdf_js/cmaps/HKm314-B5-V.bcmap", "pdf_js/cmaps/Adobe-GB1-5.bcmap",
"pdf_js/cmaps/CNS-EUC-H.bcmap", "pdf_js/cmaps/Adobe-GB1-UCS2.bcmap",
"pdf_js/cmaps/H.bcmap", "pdf_js/cmaps/Adobe-Japan1-0.bcmap",
"pdf_js/cmaps/UniJIS-UCS2-HW-V.bcmap", "pdf_js/cmaps/Adobe-Japan1-1.bcmap",
"pdf_js/cmaps/B5pc-V.bcmap", "pdf_js/cmaps/Adobe-Japan1-2.bcmap",
"pdf_js/cmaps/UniKS-UTF16-V.bcmap", "pdf_js/cmaps/Adobe-Japan1-3.bcmap",
"pdf_js/cmaps/90pv-RKSJ-H.bcmap",
"pdf_js/cmaps/78-EUC-H.bcmap",
"pdf_js/cmaps/KSCms-UHC-V.bcmap",
"pdf_js/cmaps/UniJIS-UCS2-H.bcmap",
"pdf_js/cmaps/Adobe-Japan1-4.bcmap", "pdf_js/cmaps/Adobe-Japan1-4.bcmap",
"pdf_js/cmaps/UniJISX0213-UTF32-H.bcmap", "pdf_js/cmaps/Adobe-Japan1-5.bcmap",
"pdf_js/cmaps/UniJIS-UCS2-HW-H.bcmap", "pdf_js/cmaps/Adobe-Japan1-6.bcmap",
"pdf_js/cmaps/GB-EUC-V.bcmap", "pdf_js/cmaps/Adobe-Japan1-UCS2.bcmap",
"pdf_js/cmaps/Adobe-CNS1-1.bcmap", "pdf_js/cmaps/Adobe-Korea1-0.bcmap",
"pdf_js/cmaps/GBKp-EUC-V.bcmap", "pdf_js/cmaps/Adobe-Korea1-1.bcmap",
"pdf_js/cmaps/KSCms-UHC-HW-V.bcmap", "pdf_js/cmaps/Adobe-Korea1-2.bcmap",
"pdf_js/cmaps/B5-H.bcmap",
"pdf_js/cmaps/GB-V.bcmap",
"pdf_js/cmaps/UniKS-UTF8-V.bcmap",
"pdf_js/cmaps/UniJISX02132004-UTF32-H.bcmap",
"pdf_js/cmaps/Add-RKSJ-V.bcmap",
"pdf_js/cmaps/Adobe-Korea1-UCS2.bcmap", "pdf_js/cmaps/Adobe-Korea1-UCS2.bcmap",
"pdf_js/cmaps/HKdlb-B5-V.bcmap", "pdf_js/cmaps/B5-H.bcmap",
"pdf_js/cmaps/Ext-RKSJ-V.bcmap",
"pdf_js/cmaps/GBTpc-EUC-V.bcmap",
"pdf_js/cmaps/UniJIS-UTF8-V.bcmap",
"pdf_js/cmaps/CNS1-H.bcmap",
"pdf_js/cmaps/B5pc-H.bcmap",
"pdf_js/cmaps/HKdla-B5-H.bcmap",
"pdf_js/cmaps/UniKS-UTF16-H.bcmap",
"pdf_js/cmaps/B5-V.bcmap", "pdf_js/cmaps/B5-V.bcmap",
"pdf_js/cmaps/UniJIS2004-UTF32-V.bcmap", "pdf_js/cmaps/B5pc-H.bcmap",
"pdf_js/cmaps/UniGB-UTF32-V.bcmap", "pdf_js/cmaps/B5pc-V.bcmap",
"pdf_js/cmaps/GBT-V.bcmap", "pdf_js/cmaps/CNS-EUC-H.bcmap",
"pdf_js/cmaps/UniJIS2004-UTF16-H.bcmap", "pdf_js/cmaps/CNS-EUC-V.bcmap",
"pdf_js/cmaps/CNS1-H.bcmap",
"pdf_js/cmaps/CNS1-V.bcmap",
"pdf_js/cmaps/CNS2-H.bcmap",
"pdf_js/cmaps/CNS2-V.bcmap",
"pdf_js/cmaps/ETen-B5-H.bcmap",
"pdf_js/cmaps/ETen-B5-V.bcmap",
"pdf_js/cmaps/ETenms-B5-H.bcmap",
"pdf_js/cmaps/ETenms-B5-V.bcmap",
"pdf_js/cmaps/ETHK-B5-H.bcmap", "pdf_js/cmaps/ETHK-B5-H.bcmap",
"pdf_js/cmaps/V.bcmap", "pdf_js/cmaps/ETHK-B5-V.bcmap",
"pdf_js/cmaps/KSC-Johab-V.bcmap", "pdf_js/cmaps/EUC-H.bcmap",
"pdf_js/cmaps/UniJISX0213-UTF32-V.bcmap", "pdf_js/cmaps/EUC-V.bcmap",
"pdf_js/cmaps/UniGB-UCS2-H.bcmap", "pdf_js/cmaps/Ext-H.bcmap",
"pdf_js/cmaps/UniJISPro-UTF8-V.bcmap", "pdf_js/cmaps/Ext-RKSJ-H.bcmap",
"pdf_js/cmaps/UniJIS-UTF32-H.bcmap", "pdf_js/cmaps/Ext-RKSJ-V.bcmap",
"pdf_js/cmaps/UniJIS-UTF32-V.bcmap",
"pdf_js/cmaps/Adobe-Korea1-0.bcmap",
"pdf_js/cmaps/GBK2K-V.bcmap",
"pdf_js/cmaps/Adobe-GB1-UCS2.bcmap",
"pdf_js/cmaps/KSC-EUC-V.bcmap",
"pdf_js/cmaps/UniJISX02132004-UTF32-V.bcmap",
"pdf_js/cmaps/Adobe-GB1-5.bcmap",
"pdf_js/cmaps/90msp-RKSJ-H.bcmap",
"pdf_js/cmaps/UniJIS-UTF8-H.bcmap",
"pdf_js/cmaps/Adobe-CNS1-4.bcmap",
"pdf_js/cmaps/UniCNS-UTF16-H.bcmap",
"pdf_js/cmaps/Adobe-CNS1-0.bcmap",
"pdf_js/cmaps/WP-Symbol.bcmap",
"pdf_js/cmaps/90msp-RKSJ-V.bcmap",
"pdf_js/cmaps/78ms-RKSJ-H.bcmap",
"pdf_js/cmaps/KSCms-UHC-HW-H.bcmap",
"pdf_js/cmaps/HKdla-B5-V.bcmap",
"pdf_js/cmaps/Ext-V.bcmap", "pdf_js/cmaps/Ext-V.bcmap",
"pdf_js/cmaps/GBTpc-EUC-H.bcmap",
"pdf_js/cmaps/UniCNS-UTF32-V.bcmap",
"pdf_js/cmaps/78-V.bcmap",
"pdf_js/cmaps/Adobe-Japan1-6.bcmap",
"pdf_js/cmaps/GBK-EUC-H.bcmap",
"pdf_js/cmaps/KSCms-UHC-H.bcmap",
"pdf_js/cmaps/UniJIS-UCS2-V.bcmap",
"pdf_js/cmaps/GB-EUC-H.bcmap", "pdf_js/cmaps/GB-EUC-H.bcmap",
"pdf_js/cmaps/HKm471-B5-H.bcmap", "pdf_js/cmaps/GB-EUC-V.bcmap",
"pdf_js/cmaps/KSCpc-EUC-H.bcmap", "pdf_js/cmaps/GB-H.bcmap",
"pdf_js/cmaps/HKgccs-B5-V.bcmap", "pdf_js/cmaps/GB-V.bcmap",
"pdf_js/cmaps/UniGB-UTF8-V.bcmap", "pdf_js/cmaps/GBK-EUC-H.bcmap",
"pdf_js/cmaps/78ms-RKSJ-V.bcmap",
"pdf_js/cmaps/UniCNS-UCS2-V.bcmap",
"pdf_js/cmaps/UniGB-UTF16-H.bcmap",
"pdf_js/cmaps/ETenms-B5-H.bcmap",
"pdf_js/cmaps/GBK-EUC-V.bcmap", "pdf_js/cmaps/GBK-EUC-V.bcmap",
"pdf_js/cmaps/Add-V.bcmap", "pdf_js/cmaps/GBK2K-H.bcmap",
"pdf_js/cmaps/Adobe-Japan1-5.bcmap", "pdf_js/cmaps/GBK2K-V.bcmap",
"pdf_js/cmaps/GBT-EUC-V.bcmap", "pdf_js/cmaps/GBKp-EUC-H.bcmap",
"pdf_js/cmaps/KSCpc-EUC-V.bcmap", "pdf_js/cmaps/GBKp-EUC-V.bcmap",
"pdf_js/cmaps/UniCNS-UTF16-V.bcmap", "pdf_js/cmaps/GBpc-EUC-H.bcmap",
"pdf_js/cmaps/LICENSE",
"pdf_js/cmaps/UniKS-UTF32-H.bcmap",
"pdf_js/cmaps/UniGB-UCS2-V.bcmap",
"pdf_js/cmaps/GBpc-EUC-V.bcmap", "pdf_js/cmaps/GBpc-EUC-V.bcmap",
"pdf_js/cmaps/Adobe-GB1-0.bcmap", "pdf_js/cmaps/GBT-EUC-H.bcmap",
"pdf_js/cmaps/GBT-EUC-V.bcmap",
"pdf_js/cmaps/GBT-H.bcmap",
"pdf_js/cmaps/GBT-V.bcmap",
"pdf_js/cmaps/GBTpc-EUC-H.bcmap",
"pdf_js/cmaps/GBTpc-EUC-V.bcmap",
"pdf_js/cmaps/H.bcmap",
"pdf_js/cmaps/Hankaku.bcmap",
"pdf_js/cmaps/Hiragana.bcmap", "pdf_js/cmaps/Hiragana.bcmap",
"pdf_js/cmaps/UniJIS2004-UTF32-H.bcmap", "pdf_js/cmaps/HKdla-B5-H.bcmap",
"pdf_js/cmaps/Ext-RKSJ-H.bcmap", "pdf_js/cmaps/HKdla-B5-V.bcmap",
"pdf_js/cmaps/CNS-EUC-V.bcmap", "pdf_js/cmaps/HKdlb-B5-H.bcmap",
"pdf_js/cmaps/UniGB-UTF8-H.bcmap", "pdf_js/cmaps/HKdlb-B5-V.bcmap",
"pdf_js/cmaps/UniCNS-UTF8-H.bcmap", "pdf_js/cmaps/HKgccs-B5-H.bcmap",
"pdf_js/cmaps/RKSJ-V.bcmap", "pdf_js/cmaps/HKgccs-B5-V.bcmap",
"pdf_js/cmaps/UniGB-UTF32-H.bcmap", "pdf_js/cmaps/HKm314-B5-H.bcmap",
"pdf_js/cmaps/Adobe-CNS1-3.bcmap", "pdf_js/cmaps/HKm314-B5-V.bcmap",
"pdf_js/cmaps/HKm471-B5-H.bcmap",
"pdf_js/cmaps/HKm471-B5-V.bcmap",
"pdf_js/cmaps/HKscs-B5-H.bcmap",
"pdf_js/cmaps/HKscs-B5-V.bcmap",
"pdf_js/cmaps/Katakana.bcmap", "pdf_js/cmaps/Katakana.bcmap",
"pdf_js/cmaps/UniKS-UTF8-H.bcmap", "pdf_js/cmaps/KSC-EUC-H.bcmap",
"pdf_js/cmaps/Adobe-GB1-2.bcmap", "pdf_js/cmaps/KSC-EUC-V.bcmap",
"pdf_js/cmaps/Adobe-Japan1-0.bcmap", "pdf_js/cmaps/KSC-H.bcmap",
"pdf_js/cmaps/CNS2-H.bcmap",
"pdf_js/cmaps/CNS2-V.bcmap",
"pdf_js/cmaps/78-RKSJ-H.bcmap",
"pdf_js/cmaps/Adobe-Japan1-1.bcmap",
"pdf_js/cmaps/CNS1-V.bcmap",
"pdf_js/cmaps/UniJIS-UTF16-V.bcmap",
"pdf_js/cmaps/Adobe-Japan1-2.bcmap",
"pdf_js/cmaps/Adobe-Korea1-1.bcmap",
"pdf_js/cmaps/GBT-H.bcmap",
"pdf_js/cmaps/ETenms-B5-V.bcmap",
"pdf_js/cmaps/GBT-EUC-H.bcmap",
"pdf_js/cmaps/KSC-Johab-H.bcmap", "pdf_js/cmaps/KSC-Johab-H.bcmap",
"pdf_js/cmaps/90ms-RKSJ-V.bcmap", "pdf_js/cmaps/KSC-Johab-V.bcmap",
"pdf_js/cmaps/Adobe-CNS1-UCS2.bcmap",
"pdf_js/cmaps/KSC-V.bcmap", "pdf_js/cmaps/KSC-V.bcmap",
"pdf_js/cmaps/Adobe-Korea1-2.bcmap", "pdf_js/cmaps/KSCms-UHC-H.bcmap",
"pdf_js/cmaps/KSC-H.bcmap", "pdf_js/cmaps/KSCms-UHC-HW-H.bcmap",
"pdf_js/cmaps/KSCms-UHC-HW-V.bcmap",
"pdf_js/cmaps/KSCms-UHC-V.bcmap",
"pdf_js/cmaps/KSCpc-EUC-H.bcmap",
"pdf_js/cmaps/KSCpc-EUC-V.bcmap",
"pdf_js/cmaps/NWP-H.bcmap",
"pdf_js/cmaps/NWP-V.bcmap",
"pdf_js/cmaps/RKSJ-H.bcmap",
"pdf_js/cmaps/RKSJ-V.bcmap",
"pdf_js/cmaps/Roman.bcmap",
"pdf_js/cmaps/UniCNS-UCS2-H.bcmap",
"pdf_js/cmaps/UniCNS-UCS2-V.bcmap",
"pdf_js/cmaps/UniCNS-UTF16-H.bcmap",
"pdf_js/cmaps/UniCNS-UTF16-V.bcmap",
"pdf_js/cmaps/UniCNS-UTF32-H.bcmap",
"pdf_js/cmaps/UniCNS-UTF32-V.bcmap",
"pdf_js/cmaps/UniCNS-UTF8-H.bcmap",
"pdf_js/cmaps/UniCNS-UTF8-V.bcmap", "pdf_js/cmaps/UniCNS-UTF8-V.bcmap",
"pdf_js/cmaps/UniJISPro-UCS2-V.bcmap", "pdf_js/cmaps/UniGB-UCS2-H.bcmap",
"pdf_js/cmaps/83pv-RKSJ-H.bcmap", "pdf_js/cmaps/UniGB-UCS2-V.bcmap",
"pdf_js/cmaps/GBKp-EUC-H.bcmap", "pdf_js/cmaps/UniGB-UTF16-H.bcmap",
"pdf_js/cmaps/78-H.bcmap", "pdf_js/cmaps/UniGB-UTF16-V.bcmap",
"pdf_js/cmaps/GBpc-EUC-H.bcmap", "pdf_js/cmaps/UniGB-UTF32-H.bcmap",
"pdf_js/cmaps/Add-RKSJ-H.bcmap", "pdf_js/cmaps/UniGB-UTF32-V.bcmap",
"pdf_js/cmaps/Adobe-GB1-3.bcmap", "pdf_js/cmaps/UniGB-UTF8-H.bcmap",
"pdf_js/cmaps/UniGB-UTF8-V.bcmap",
"pdf_js/cmaps/UniJIS-UCS2-H.bcmap",
"pdf_js/cmaps/UniJIS-UCS2-HW-H.bcmap",
"pdf_js/cmaps/UniJIS-UCS2-HW-V.bcmap",
"pdf_js/cmaps/UniJIS-UCS2-V.bcmap",
"pdf_js/cmaps/UniJIS-UTF16-H.bcmap",
"pdf_js/cmaps/UniJIS-UTF16-V.bcmap",
"pdf_js/cmaps/UniJIS-UTF32-H.bcmap",
"pdf_js/cmaps/UniJIS-UTF32-V.bcmap",
"pdf_js/cmaps/UniJIS-UTF8-H.bcmap",
"pdf_js/cmaps/UniJIS-UTF8-V.bcmap",
"pdf_js/cmaps/UniJIS2004-UTF16-H.bcmap",
"pdf_js/cmaps/UniJIS2004-UTF16-V.bcmap", "pdf_js/cmaps/UniJIS2004-UTF16-V.bcmap",
"pdf_js/cmaps/Adobe-Japan1-3.bcmap", "pdf_js/cmaps/UniJIS2004-UTF32-H.bcmap",
"pdf_js/cmaps/ETen-B5-H.bcmap", "pdf_js/cmaps/UniJIS2004-UTF32-V.bcmap",
"pdf_js/cmaps/HKm471-B5-V.bcmap", "pdf_js/cmaps/UniJIS2004-UTF8-H.bcmap",
"pdf_js/cmaps/RKSJ-H.bcmap", "pdf_js/cmaps/UniJIS2004-UTF8-V.bcmap",
"pdf_js/cmaps/KSC-EUC-H.bcmap", "pdf_js/cmaps/UniJISPro-UCS2-HW-V.bcmap",
"pdf_js/cmaps/EUC-V.bcmap", "pdf_js/cmaps/UniJISPro-UCS2-V.bcmap",
"pdf_js/debugger.js" "pdf_js/cmaps/UniJISPro-UTF8-V.bcmap",
"pdf_js/cmaps/UniJISX0213-UTF32-H.bcmap",
"pdf_js/cmaps/UniJISX0213-UTF32-V.bcmap",
"pdf_js/cmaps/UniJISX02132004-UTF32-H.bcmap",
"pdf_js/cmaps/UniJISX02132004-UTF32-V.bcmap",
"pdf_js/cmaps/UniKS-UCS2-H.bcmap",
"pdf_js/cmaps/UniKS-UCS2-V.bcmap",
"pdf_js/cmaps/UniKS-UTF16-H.bcmap",
"pdf_js/cmaps/UniKS-UTF16-V.bcmap",
"pdf_js/cmaps/UniKS-UTF32-H.bcmap",
"pdf_js/cmaps/UniKS-UTF32-V.bcmap",
"pdf_js/cmaps/UniKS-UTF8-H.bcmap",
"pdf_js/cmaps/UniKS-UTF8-V.bcmap",
"pdf_js/cmaps/V.bcmap",
"pdf_js/cmaps/WP-Symbol.bcmap",
"pdf_js/images/altText_add.svg",
"pdf_js/images/altText_done.svg",
"pdf_js/images/annotation-check.svg",
"pdf_js/images/annotation-comment.svg",
"pdf_js/images/annotation-help.svg",
"pdf_js/images/annotation-insert.svg",
"pdf_js/images/annotation-key.svg",
"pdf_js/images/annotation-newparagraph.svg",
"pdf_js/images/annotation-noicon.svg",
"pdf_js/images/annotation-note.svg",
"pdf_js/images/annotation-paperclip.svg",
"pdf_js/images/annotation-paragraph.svg",
"pdf_js/images/annotation-pushpin.svg",
"pdf_js/images/cursor-editorFreeText.svg",
"pdf_js/images/cursor-editorInk.svg",
"pdf_js/images/findbarButton-next.svg",
"pdf_js/images/findbarButton-previous.svg",
"pdf_js/images/gv-toolbarButton-download.svg",
"pdf_js/images/gv-toolbarButton-openinapp.svg",
"pdf_js/images/loading-dark.svg",
"pdf_js/images/loading-icon.gif",
"pdf_js/images/loading.svg",
"pdf_js/images/secondaryToolbarButton-documentProperties.svg",
"pdf_js/images/secondaryToolbarButton-firstPage.svg",
"pdf_js/images/secondaryToolbarButton-handTool.svg",
"pdf_js/images/secondaryToolbarButton-lastPage.svg",
"pdf_js/images/secondaryToolbarButton-rotateCcw.svg",
"pdf_js/images/secondaryToolbarButton-rotateCw.svg",
"pdf_js/images/secondaryToolbarButton-scrollHorizontal.svg",
"pdf_js/images/secondaryToolbarButton-scrollPage.svg",
"pdf_js/images/secondaryToolbarButton-scrollVertical.svg",
"pdf_js/images/secondaryToolbarButton-scrollWrapped.svg",
"pdf_js/images/secondaryToolbarButton-selectTool.svg",
"pdf_js/images/secondaryToolbarButton-spreadEven.svg",
"pdf_js/images/secondaryToolbarButton-spreadNone.svg",
"pdf_js/images/secondaryToolbarButton-spreadOdd.svg",
"pdf_js/images/toolbarButton-bookmark.svg",
"pdf_js/images/toolbarButton-currentOutlineItem.svg",
"pdf_js/images/toolbarButton-download.svg",
"pdf_js/images/toolbarButton-editorFreeText.svg",
"pdf_js/images/toolbarButton-editorInk.svg",
"pdf_js/images/toolbarButton-editorStamp.svg",
"pdf_js/images/toolbarButton-menuArrow.svg",
"pdf_js/images/toolbarButton-openFile.svg",
"pdf_js/images/toolbarButton-pageDown.svg",
"pdf_js/images/toolbarButton-pageUp.svg",
"pdf_js/images/toolbarButton-presentationMode.svg",
"pdf_js/images/toolbarButton-print.svg",
"pdf_js/images/toolbarButton-search.svg",
"pdf_js/images/toolbarButton-secondaryToolbarToggle.svg",
"pdf_js/images/toolbarButton-sidebarToggle.svg",
"pdf_js/images/toolbarButton-viewAttachments.svg",
"pdf_js/images/toolbarButton-viewLayers.svg",
"pdf_js/images/toolbarButton-viewOutline.svg",
"pdf_js/images/toolbarButton-viewThumbnail.svg",
"pdf_js/images/toolbarButton-zoomIn.svg",
"pdf_js/images/toolbarButton-zoomOut.svg",
"pdf_js/images/treeitem-collapsed.svg",
"pdf_js/images/treeitem-expanded.svg",
"pdf_js/locale/de/viewer.properties",
"pdf_js/locale/en-GB/viewer.properties",
"pdf_js/locale/en-US/viewer.properties",
"pdf_js/locale/fa/viewer.properties",
"pdf_js/locale/fr/viewer.properties",
"pdf_js/locale/ja/viewer.properties",
"pdf_js/locale/locale.properties",
"pdf_js/locale/pt-BR/viewer.properties",
"pdf_js/locale/uk/viewer.properties",
"pdf_js/locale/zh-CN/viewer.properties",
"pdf_js/pdf.gadget.js",
"pdf_js/pdfjs.gadget.html",
"pdf_js/standard_fonts/FoxitDingbats.pfb",
"pdf_js/standard_fonts/FoxitFixed.pfb",
"pdf_js/standard_fonts/FoxitFixedBold.pfb",
"pdf_js/standard_fonts/FoxitFixedBoldItalic.pfb",
"pdf_js/standard_fonts/FoxitFixedItalic.pfb",
"pdf_js/standard_fonts/FoxitSerif.pfb",
"pdf_js/standard_fonts/FoxitSerifBold.pfb",
"pdf_js/standard_fonts/FoxitSerifBoldItalic.pfb",
"pdf_js/standard_fonts/FoxitSerifItalic.pfb",
"pdf_js/standard_fonts/FoxitSymbol.pfb",
"pdf_js/standard_fonts/LiberationSans-Bold.ttf",
"pdf_js/standard_fonts/LiberationSans-BoldItalic.ttf",
"pdf_js/standard_fonts/LiberationSans-Italic.ttf",
"pdf_js/standard_fonts/LiberationSans-Regular.ttf",
"pdf_js/viewer.css",
"pdf_js/viewer.js",
] ]
return url_list return url_list
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Zuite" module="Products.Zelenium.zuite"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>pdf_gadget_zuite</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testBrokenDocumentPDFPreview</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>PDF Preview with Invalid Documents</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_and_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tr>
<td>open</td>
<td>${base_url}/web_site_module/renderjs_runner/</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Modules'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_panel_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>click</td>
<td>link=Documents</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Add'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>select</td>
<td>//select[@name="field_your_select_action"]</td>
<td>value=add PDF</td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block tal:define="notification_configuration python: {'class': 'success',
'text': 'Object created.'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Views'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Preview'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@id="dialogContainer"]/dialog[contains(text(), "The PDF file is empty")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
<tal:block tal:define="click_configuration python: {'text': 'Views'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'View'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>setFile</td>
<td>field_my_file</td>
<td>getId broken.pdf application/pdf</td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/save" />
<tal:block tal:define="click_configuration python: {'text': 'Views'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Preview'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@id="dialogContainer"]/dialog[contains(text(), "Invalid PDF structure.")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testEditPDF</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>Edit PDF</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_and_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<!-- Access a PDF provided by erp5_dms_ui_test -->
<tr>
<td>open</td>
<td>${base_url}/web_site_module/renderjs_runner/#/document_module/test_ERP5_Logo_PDF?editable=1</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Actions'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Clone Document'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block tal:define="notification_configuration python: {'class': 'success',
'text': 'Created Clone PDF.'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Views'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Preview'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/save" />
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
</tr> </tr>
<tr> <tr>
<td>waitForText</td> <td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td> <td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td> <td>This is a sample PDF with some text and an image</td>
</tr> </tr>
<tr> <tr>
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
</tr> </tr>
<tr> <tr>
<td>waitForElementPresent</td> <td>waitForElementPresent</td>
<td>//div[@id="passwordOverlay" and not(contains(@class, "hidden"))]</td> <td>//dialog[@id="passwordDialog" and @open]</td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
</tr> </tr>
<tr> <tr>
<td>waitForText</td> <td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td> <td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td> <td>This is a sample PDF with some text and an image</td>
</tr> </tr>
<tr> <tr>
...@@ -113,7 +113,60 @@ ...@@ -113,7 +113,60 @@
<td></td> <td></td>
</tr> </tr>
<!-- when user enter a wrong password, this does not cause a crash. -->
<tal:block tal:define="click_configuration python: {'text': 'Views'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Preview'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//dialog[@id="passwordDialog" and @open]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>password</td>
<td>wrong</td>
</tr>
<tr>
<td>click</td>
<td>passwordSubmit</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>css=#passwordText</td>
<td>Invalid password. Please try again.</td>
</tr>
<tr>
<td>click</td>
<td>passwordCancel</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@id="dialogContainer"]/dialog[contains(text(), "Incorrect Password")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tbody></table> </tbody></table>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
</tr> </tr>
<tr> <tr>
<td>waitForText</td> <td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td> <td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td> <td>This is a sample PDF with some text and an image</td>
</tr> </tr>
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
</tr> </tr>
<tr> <tr>
<td>waitForText</td> <td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td> <td>//body//div[@class='textLayer']/span[1]</td>
<td>This is a sample PDF with some text and an image</td> <td>This is a sample PDF with some text and an image</td>
</tr> </tr>
<tr> <tr>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment