@fto-consult/expo-ui 7.4.33 → 7.4.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/bin/index.js +4 -2
  2. package/electron/index.js +30 -30
  3. package/electron/pdf-viewer/locale/en-CA/viewer.ftl +311 -0
  4. package/electron/pdf-viewer/locale/en-GB/viewer.ftl +351 -0
  5. package/electron/pdf-viewer/locale/en-US/viewer.ftl +377 -0
  6. package/electron/pdf-viewer/locale/fr/viewer.ftl +347 -0
  7. package/electron/pdf-viewer/locale/locale.json +6 -0
  8. package/electron/pdf-viewer/pdf.min.mjs +21 -0
  9. package/electron/pdf-viewer/viewer.css +3718 -0
  10. package/electron/pdf-viewer/viewer.html +491 -0
  11. package/electron/pdf-viewer/web/images/altText_add.svg +3 -0
  12. package/electron/pdf-viewer/web/images/altText_done.svg +3 -0
  13. package/electron/pdf-viewer/web/images/annotation-check.svg +11 -0
  14. package/electron/pdf-viewer/web/images/annotation-comment.svg +16 -0
  15. package/electron/pdf-viewer/web/images/annotation-help.svg +26 -0
  16. package/electron/pdf-viewer/web/images/annotation-insert.svg +10 -0
  17. package/electron/pdf-viewer/web/images/annotation-key.svg +11 -0
  18. package/electron/pdf-viewer/web/images/annotation-newparagraph.svg +11 -0
  19. package/electron/pdf-viewer/web/images/annotation-noicon.svg +7 -0
  20. package/electron/pdf-viewer/web/images/annotation-note.svg +42 -0
  21. package/electron/pdf-viewer/web/images/annotation-paperclip.svg +6 -0
  22. package/electron/pdf-viewer/web/images/annotation-paragraph.svg +16 -0
  23. package/electron/pdf-viewer/web/images/annotation-pushpin.svg +7 -0
  24. package/electron/pdf-viewer/web/images/editor-toolbar-delete.svg +5 -0
  25. package/electron/pdf-viewer/web/images/loading-icon.gif +0 -0
  26. package/electron/pdf-viewer/web/pdf_viewer.css +2120 -0
  27. package/electron/pdf-viewer/web/pdf_viewer.mjs +8598 -0
  28. package/electron/pload.js +1 -22
  29. package/electron/preload.js +104 -6
  30. package/electron/utils/index.js +5 -0
  31. package/electron/utils/isBase64.js +14 -0
  32. package/electron/utils/isDataURL.js +13 -0
  33. package/electron/utils/isValidUrl.js +4 -0
  34. package/electron/utils/postMessage.js +1 -1
  35. package/electron/utils/replaceAll.js +12 -0
  36. package/package.json +6 -1
  37. package/src/pdf/index.js +2 -2
  38. package/src/pdf/print.electron.js +4 -0
  39. package/src/pdf/print.js +3 -0
  40. package/src/pdf/print.web.js +3 -0
package/bin/index.js CHANGED
@@ -10,7 +10,7 @@
10
10
  const { program } = require('commander');
11
11
  const path= require("path");
12
12
  const fs = require("fs");
13
- const {createDir,electronDir,copy,exec,throwError,paths:getPaths,writeFile} = require("./utils");
13
+ const {createDir,electronDir,copy,exec,throwError,paths:getPaths,writeFile,isValidUrl} = require("./utils");
14
14
 
15
15
 
16
16
  const dir = path.resolve(__dirname);
@@ -21,6 +21,7 @@ const description = packageObj.description;
21
21
  const packageName = packageObj.name;
22
22
  const localElectronPackage = path.resolve(projectRoot,"node_modules",packageName)
23
23
  const localElectronPackageElectron = path.resolve(localElectronPackage,"electron");
24
+ //const pdfJSPath = path.resolve(projectRoot,"node_modules","pdfjs-dist");
24
25
 
25
26
  program
26
27
  .name(packageName)
@@ -79,6 +80,7 @@ program.command('electron')
79
80
  writeFile(path.resolve(localElectronPackageElectron,"paths.json"),JSON.stringify(paths,null,"\t"));
80
81
  } catch{}
81
82
  }
83
+
82
84
  /**** le project root d'où a été lancé le script electron doit être le même que celui de l'application principale */
83
85
  if(projectRoot !== paths.projectRoot){
84
86
  throwError(`main app project root ${paths.projectRoot} must be equals to ${projectRoot} in which you want to generate electron app`);
@@ -122,7 +124,7 @@ program.command('electron')
122
124
  let cmd = undefined;
123
125
  const start = x=>{
124
126
  return new Promise((resolve,reject)=>{
125
- cmd = `electron "${electronProjectRoot}"${url? ` --url ${url}`:''} --paths ${pathsJSON} --root ${projectRoot}`;
127
+ cmd = `electron "${electronProjectRoot}" --paths ${pathsJSON} --root ${projectRoot} ${isValidUrl(url)? ` --url ${url}`:''}`;
126
128
  exec({
127
129
  cmd,
128
130
  projectRoot : electronProjectRoot,
package/electron/index.js CHANGED
@@ -6,9 +6,9 @@ const { program } = require('commander');
6
6
  const getPaths = require("../electron/utils/paths");
7
7
 
8
8
  program
9
- .option('-u, --url <url>', 'the loading url')
10
- .option('-r, --root <projectRoot>', 'the project root path')
11
- .option('-p, --paths <paths>', 'le chemin vers le fichiers paths.json')
9
+ .option('-u, --url <url>', 'L\'adresse url à ouvrir au lancement de l\'application')
10
+ .option('-r, --root <projectRoot>', 'le chemin du project root de l\'application')
11
+ .option('-p, --paths <paths>', 'le chemin vers le fichiers paths.json contenant la liste des alias de l\'application, exportés au moment de la compilation')
12
12
  .parse();
13
13
 
14
14
  const programOptions = program.opts();
@@ -20,6 +20,7 @@ const projectRoot = mainProjectRoot && fs.existsSync(mainProjectRoot) ? mainProj
20
20
  const electronProjectRoot = projectRoot && fs.existsSync(path.resolve(projectRoot,"electron")) && path.resolve(projectRoot,"electron") || '';
21
21
  const ePathsJSON = path.resolve(electronProjectRoot,"paths.json");
22
22
  const packageJSONPath = path.resolve(projectRoot,"package.json");
23
+ const isValidUrl = require("./utils/isValidUrl");
23
24
  const packageJSON = fs.existsSync(packageJSONPath) ? require(`${packageJSONPath}`) : {};
24
25
  const eePaths = path.resolve(getPaths(projectRoot));
25
26
  if(!paths){
@@ -67,13 +68,14 @@ const setOSTheme = (theme) => {
67
68
  theme = "light";
68
69
  }
69
70
  nativeTheme.themeSource = theme;
70
- session.set("electron-os-theme",theme);
71
+ session.set("os-theme",theme);
71
72
  return nativeTheme.shouldUseDarkColors
72
73
  }
73
- setOSTheme(session.get("electron-os-theme"));
74
- let isObj = x => x && typeof x =='object';
74
+ setOSTheme(session.get("os-theme"));
75
+ const isObj = x => x && typeof x =='object';
76
+
75
77
  function createBrowserWindow (options){
76
- options = options && typeof options =='object'? options : {};
78
+ options = Object.assign({},options);
77
79
  let menu = options.menu;
78
80
  options.webPreferences = isObj(options.webPreferences)? options.webPreferences : {}
79
81
  options.webPreferences = {
@@ -108,17 +110,19 @@ function createBrowserWindow (options){
108
110
  if(typeof mainProcess.beforeCreateWindow =='function'){
109
111
  mainProcess.beforeCreateWindow(options);
110
112
  }
111
- let _win = new BrowserWindow(options);
113
+ const _win = new BrowserWindow(options);
112
114
  if(!menu){
113
115
  _win.setMenu(null);
114
116
  _win.removeMenu();
115
117
  _win.setMenuBarVisibility(false)
116
118
  _win.setAutoHideMenuBar(true)
117
119
  }
118
- const url = options.loadURL && typeof options.loadURL ==='string'? options.loadURL : pUrl || undefined;
120
+ const url = isValidUrl(options.loadURL) ? options.loadURL : isValidUrl(pUrl) ? pUrl : undefined;
119
121
  if(url){
120
122
  _win.loadURL(url);
121
- }
123
+ } else if(options.file && fs.existsSync(options.file)){
124
+ _win.loadFile(options.file);
125
+ }
122
126
  if(showOnLoad){
123
127
  _win.once('ready-to-show', () => {
124
128
  _win.show();
@@ -129,7 +133,6 @@ function createBrowserWindow (options){
129
133
  });
130
134
  return _win;
131
135
  }
132
- const args = require("./utils/parseArgs")();
133
136
  function createWindow () {
134
137
  // Créer le browser window
135
138
  win = createBrowserWindow({
@@ -191,8 +194,8 @@ function createWindow () {
191
194
  win.webContents.send('before-app-exit');
192
195
  }
193
196
  });
194
- if(args.url){
195
- win.loadURL(args.url);
197
+ if(isValidUrl(pUrl)){
198
+ win.loadURL(pUrl);
196
199
  } else {
197
200
  win.loadFile(path.resolve(path.join(electronProjectRoot,"dist",'index.html')))
198
201
  }
@@ -293,7 +296,7 @@ const toggleDevTools = (value)=>{
293
296
  }
294
297
  return false;
295
298
  }
296
- ipcMain.on("electron-toggle-dev-tools",function(event,value) {
299
+ ipcMain.on("toggle-dev-tools",function(event,value) {
297
300
  return toggleDevTools(value);
298
301
  });
299
302
 
@@ -315,7 +318,7 @@ app.whenReady().then(() => {
315
318
  });
316
319
  })
317
320
 
318
- ipcMain.on("electron-restart-app",x =>{app.relaunch();})
321
+ ipcMain.on("restart-app",x =>{app.relaunch();})
319
322
  let tray = null;
320
323
  let isJSON = function (json_string){
321
324
  if(!json_string || typeof json_string != 'string') return false;
@@ -363,7 +366,7 @@ ipcMain.on("get-project-root",(event)=>{
363
366
  event.returnValue = projectRoot;
364
367
  return projectRoot;
365
368
  });
366
- ipcMain.on("get-electron-project-root",(event)=>{
369
+ ipcMain.on("get-project-root",(event)=>{
367
370
  event.returnValue = electronProjectRoot;
368
371
  return event.returnValue ;
369
372
  });
@@ -389,14 +392,14 @@ ipcMain.on("get-media-access-status",(event,mediaType)=>{
389
392
  return p;
390
393
  });
391
394
 
392
- ipcMain.on("electron-ask-for-media-access",(event,mediaType)=>{
395
+ ipcMain.on("ask-for-media-access",(event,mediaType)=>{
393
396
  systemPreferences.askForMediaAccess(mediaType);
394
397
  });
395
398
 
396
399
  ipcMain.on("get-app-icon",(event)=>{
397
400
  event.returnValue = win != win && win.getIcon && win.getIcon();
398
401
  });
399
- ipcMain.on("electron-set-app-icon",(event,iconPath)=>{
402
+ ipcMain.on("set-app-icon",(event,iconPath)=>{
400
403
  if(iconPath && win != null){
401
404
  win.setIcon(iconPath);
402
405
  event.returnValue = iconPath;
@@ -437,9 +440,8 @@ ipcMain.on('close-main-render-process', _ => {
437
440
  function debounce(func, wait, immediate) {
438
441
  var timeout;
439
442
 
440
- return function executedFunction() {
443
+ return function executedFunction(...args) {
441
444
  var context = this;
442
- var args = arguments;
443
445
 
444
446
  var later = function() {
445
447
  timeout = null;
@@ -490,34 +492,32 @@ if(powerMonitor){
490
492
  })
491
493
  })
492
494
  }
493
- ipcMain.on("electron-set-main-window-title",(event,title)=>{
495
+ ipcMain.on("set-main-window-title",(event,title)=>{
494
496
  if(win !== null){
495
497
  win.setTitle(title);
496
498
  }
497
499
  })
498
500
 
499
501
 
500
- ipcMain.handle("electron-create-browser-windows",function(event,options){
501
- if(!isObj(options)){
502
- options = {};
503
- }
502
+ ipcMain.handle("create-browser-windows",function(event,options){
503
+ options = Object.assign({},options);
504
504
  createBrowserWindow(options);
505
505
  })
506
506
 
507
- ipcMain.handle("electron-show-open-dialog",function(event,options){
507
+ ipcMain.handle("show-open-dialog",function(event,options){
508
508
  if(!isObj(options)){
509
509
  options = {};
510
510
  }
511
511
  return dialog.showOpenDialog(win,options)
512
512
  })
513
513
 
514
- ipcMain.handle("electron-show-save-dialog",function(event,options){
514
+ ipcMain.handle("show-save-dialog",function(event,options){
515
515
  if(!isObj(options)){
516
516
  options = {};
517
517
  }
518
518
  return dialog.showSaveDialog(win,options)
519
519
  })
520
- ipcMain.on("electron-is-dev-tools-open",function(event,value) {
520
+ ipcMain.on("is-dev-tools-open",function(event,value) {
521
521
  if(win !==null && win.webContents){
522
522
  return win.webContents.isDevToolsOpened();
523
523
  }
@@ -525,7 +525,7 @@ ipcMain.on("electron-is-dev-tools-open",function(event,value) {
525
525
  })
526
526
 
527
527
 
528
- ipcMain.on("electron-window-set-progressbar",(event,interval)=>{
528
+ ipcMain.on("window-set-progressbar",(event,interval)=>{
529
529
  if(typeof interval !="number" || interval <0) interval = 0;
530
530
  interval = Math.floor(interval);
531
531
  if(win){
@@ -534,6 +534,6 @@ ipcMain.on("electron-window-set-progressbar",(event,interval)=>{
534
534
  })
535
535
 
536
536
  /**** customisation des thèmes de l'application */
537
- ipcMain.handle('electron-set-system-theme:toggle', (event,theme) => {
537
+ ipcMain.handle('set-system-theme:toggle', (event,theme) => {
538
538
  return setOSTheme(theme);
539
539
  });
@@ -0,0 +1,311 @@
1
+ # This Source Code Form is subject to the terms of the Mozilla Public
2
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
4
+
5
+
6
+ ## Main toolbar buttons (tooltips and alt text for images)
7
+
8
+ pdfjs-previous-button =
9
+ .title = Previous Page
10
+ pdfjs-previous-button-label = Previous
11
+ pdfjs-next-button =
12
+ .title = Next Page
13
+ pdfjs-next-button-label = Next
14
+ # .title: Tooltip for the pageNumber input.
15
+ pdfjs-page-input =
16
+ .title = Page
17
+ # Variables:
18
+ # $pagesCount (Number) - the total number of pages in the document
19
+ # This string follows an input field with the number of the page currently displayed.
20
+ pdfjs-of-pages = of { $pagesCount }
21
+ # Variables:
22
+ # $pageNumber (Number) - the currently visible page
23
+ # $pagesCount (Number) - the total number of pages in the document
24
+ pdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })
25
+ pdfjs-zoom-out-button =
26
+ .title = Zoom Out
27
+ pdfjs-zoom-out-button-label = Zoom Out
28
+ pdfjs-zoom-in-button =
29
+ .title = Zoom In
30
+ pdfjs-zoom-in-button-label = Zoom In
31
+ pdfjs-zoom-select =
32
+ .title = Zoom
33
+ pdfjs-presentation-mode-button =
34
+ .title = Switch to Presentation Mode
35
+ pdfjs-presentation-mode-button-label = Presentation Mode
36
+ pdfjs-open-file-button =
37
+ .title = Open File
38
+ pdfjs-open-file-button-label = Open
39
+ pdfjs-print-button =
40
+ .title = Print
41
+ pdfjs-print-button-label = Print
42
+ pdfjs-save-button =
43
+ .title = Save
44
+ pdfjs-save-button-label = Save
45
+ # Used in Firefox for Android as a tooltip for the download button (“download” is a verb).
46
+ pdfjs-download-button =
47
+ .title = Download
48
+ # Used in Firefox for Android as a label for the download button (“download” is a verb).
49
+ # Length of the translation matters since we are in a mobile context, with limited screen estate.
50
+ pdfjs-download-button-label = Download
51
+ pdfjs-bookmark-button =
52
+ .title = Current Page (View URL from Current Page)
53
+ pdfjs-bookmark-button-label = Current Page
54
+ # Used in Firefox for Android.
55
+ pdfjs-open-in-app-button =
56
+ .title = Open in app
57
+ # Used in Firefox for Android.
58
+ # Length of the translation matters since we are in a mobile context, with limited screen estate.
59
+ pdfjs-open-in-app-button-label = Open in app
60
+
61
+ ## Secondary toolbar and context menu
62
+
63
+ pdfjs-tools-button =
64
+ .title = Tools
65
+ pdfjs-tools-button-label = Tools
66
+ pdfjs-first-page-button =
67
+ .title = Go to First Page
68
+ pdfjs-first-page-button-label = Go to First Page
69
+ pdfjs-last-page-button =
70
+ .title = Go to Last Page
71
+ pdfjs-last-page-button-label = Go to Last Page
72
+ pdfjs-page-rotate-cw-button =
73
+ .title = Rotate Clockwise
74
+ pdfjs-page-rotate-cw-button-label = Rotate Clockwise
75
+ pdfjs-page-rotate-ccw-button =
76
+ .title = Rotate Counterclockwise
77
+ pdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise
78
+ pdfjs-cursor-text-select-tool-button =
79
+ .title = Enable Text Selection Tool
80
+ pdfjs-cursor-text-select-tool-button-label = Text Selection Tool
81
+ pdfjs-cursor-hand-tool-button =
82
+ .title = Enable Hand Tool
83
+ pdfjs-cursor-hand-tool-button-label = Hand Tool
84
+ pdfjs-scroll-page-button =
85
+ .title = Use Page Scrolling
86
+ pdfjs-scroll-page-button-label = Page Scrolling
87
+ pdfjs-scroll-vertical-button =
88
+ .title = Use Vertical Scrolling
89
+ pdfjs-scroll-vertical-button-label = Vertical Scrolling
90
+ pdfjs-scroll-horizontal-button =
91
+ .title = Use Horizontal Scrolling
92
+ pdfjs-scroll-horizontal-button-label = Horizontal Scrolling
93
+ pdfjs-scroll-wrapped-button =
94
+ .title = Use Wrapped Scrolling
95
+ pdfjs-scroll-wrapped-button-label = Wrapped Scrolling
96
+ pdfjs-spread-none-button =
97
+ .title = Do not join page spreads
98
+ pdfjs-spread-none-button-label = No Spreads
99
+ pdfjs-spread-odd-button =
100
+ .title = Join page spreads starting with odd-numbered pages
101
+ pdfjs-spread-odd-button-label = Odd Spreads
102
+ pdfjs-spread-even-button =
103
+ .title = Join page spreads starting with even-numbered pages
104
+ pdfjs-spread-even-button-label = Even Spreads
105
+
106
+ ## Document properties dialog
107
+
108
+ pdfjs-document-properties-button =
109
+ .title = Document Properties…
110
+ pdfjs-document-properties-button-label = Document Properties…
111
+ pdfjs-document-properties-file-name = File name:
112
+ pdfjs-document-properties-file-size = File size:
113
+ # Variables:
114
+ # $size_kb (Number) - the PDF file size in kilobytes
115
+ # $size_b (Number) - the PDF file size in bytes
116
+ pdfjs-document-properties-kb = { $size_kb } kB ({ $size_b } bytes)
117
+ # Variables:
118
+ # $size_mb (Number) - the PDF file size in megabytes
119
+ # $size_b (Number) - the PDF file size in bytes
120
+ pdfjs-document-properties-mb = { $size_mb } MB ({ $size_b } bytes)
121
+ pdfjs-document-properties-title = Title:
122
+ pdfjs-document-properties-author = Author:
123
+ pdfjs-document-properties-subject = Subject:
124
+ pdfjs-document-properties-keywords = Keywords:
125
+ pdfjs-document-properties-creation-date = Creation Date:
126
+ pdfjs-document-properties-modification-date = Modification Date:
127
+ # Variables:
128
+ # $date (Date) - the creation/modification date of the PDF file
129
+ # $time (Time) - the creation/modification time of the PDF file
130
+ pdfjs-document-properties-date-string = { $date }, { $time }
131
+ pdfjs-document-properties-creator = Creator:
132
+ pdfjs-document-properties-producer = PDF Producer:
133
+ pdfjs-document-properties-version = PDF Version:
134
+ pdfjs-document-properties-page-count = Page Count:
135
+ pdfjs-document-properties-page-size = Page Size:
136
+ pdfjs-document-properties-page-size-unit-inches = in
137
+ pdfjs-document-properties-page-size-unit-millimeters = mm
138
+ pdfjs-document-properties-page-size-orientation-portrait = portrait
139
+ pdfjs-document-properties-page-size-orientation-landscape = landscape
140
+ pdfjs-document-properties-page-size-name-a-three = A3
141
+ pdfjs-document-properties-page-size-name-a-four = A4
142
+ pdfjs-document-properties-page-size-name-letter = Letter
143
+ pdfjs-document-properties-page-size-name-legal = Legal
144
+
145
+ ## Variables:
146
+ ## $width (Number) - the width of the (current) page
147
+ ## $height (Number) - the height of the (current) page
148
+ ## $unit (String) - the unit of measurement of the (current) page
149
+ ## $name (String) - the name of the (current) page
150
+ ## $orientation (String) - the orientation of the (current) page
151
+
152
+ pdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })
153
+ pdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })
154
+
155
+ ##
156
+
157
+ # The linearization status of the document; usually called "Fast Web View" in
158
+ # English locales of Adobe software.
159
+ pdfjs-document-properties-linearized = Fast Web View:
160
+ pdfjs-document-properties-linearized-yes = Yes
161
+ pdfjs-document-properties-linearized-no = No
162
+ pdfjs-document-properties-close-button = Close
163
+
164
+ ## Print
165
+
166
+ pdfjs-print-progress-message = Preparing document for printing…
167
+ # Variables:
168
+ # $progress (Number) - percent value
169
+ pdfjs-print-progress-percent = { $progress }%
170
+ pdfjs-print-progress-close-button = Cancel
171
+ pdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.
172
+ pdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.
173
+
174
+ ## Tooltips and alt text for side panel toolbar buttons
175
+
176
+ pdfjs-toggle-sidebar-button =
177
+ .title = Toggle Sidebar
178
+ pdfjs-toggle-sidebar-notification-button =
179
+ .title = Toggle Sidebar (document contains outline/attachments/layers)
180
+ pdfjs-toggle-sidebar-button-label = Toggle Sidebar
181
+ pdfjs-document-outline-button =
182
+ .title = Show Document Outline (double-click to expand/collapse all items)
183
+ pdfjs-document-outline-button-label = Document Outline
184
+ pdfjs-attachments-button =
185
+ .title = Show Attachments
186
+ pdfjs-attachments-button-label = Attachments
187
+ pdfjs-layers-button =
188
+ .title = Show Layers (double-click to reset all layers to the default state)
189
+ pdfjs-layers-button-label = Layers
190
+ pdfjs-thumbs-button =
191
+ .title = Show Thumbnails
192
+ pdfjs-thumbs-button-label = Thumbnails
193
+ pdfjs-current-outline-item-button =
194
+ .title = Find Current Outline Item
195
+ pdfjs-current-outline-item-button-label = Current Outline Item
196
+ pdfjs-findbar-button =
197
+ .title = Find in Document
198
+ pdfjs-findbar-button-label = Find
199
+ pdfjs-additional-layers = Additional Layers
200
+
201
+ ## Thumbnails panel item (tooltip and alt text for images)
202
+
203
+ # Variables:
204
+ # $page (Number) - the page number
205
+ pdfjs-thumb-page-title =
206
+ .title = Page { $page }
207
+ # Variables:
208
+ # $page (Number) - the page number
209
+ pdfjs-thumb-page-canvas =
210
+ .aria-label = Thumbnail of Page { $page }
211
+
212
+ ## Find panel button title and messages
213
+
214
+ pdfjs-find-input =
215
+ .title = Find
216
+ .placeholder = Find in document…
217
+ pdfjs-find-previous-button =
218
+ .title = Find the previous occurrence of the phrase
219
+ pdfjs-find-previous-button-label = Previous
220
+ pdfjs-find-next-button =
221
+ .title = Find the next occurrence of the phrase
222
+ pdfjs-find-next-button-label = Next
223
+ pdfjs-find-highlight-checkbox = Highlight All
224
+ pdfjs-find-match-case-checkbox-label = Match Case
225
+ pdfjs-find-match-diacritics-checkbox-label = Match Diacritics
226
+ pdfjs-find-entire-word-checkbox-label = Whole Words
227
+ pdfjs-find-reached-top = Reached top of document, continued from bottom
228
+ pdfjs-find-reached-bottom = Reached end of document, continued from top
229
+ pdfjs-find-not-found = Phrase not found
230
+
231
+ ## Predefined zoom values
232
+
233
+ pdfjs-page-scale-width = Page Width
234
+ pdfjs-page-scale-fit = Page Fit
235
+ pdfjs-page-scale-auto = Automatic Zoom
236
+ pdfjs-page-scale-actual = Actual Size
237
+ # Variables:
238
+ # $scale (Number) - percent value for page scale
239
+ pdfjs-page-scale-percent = { $scale }%
240
+
241
+ ## PDF page
242
+
243
+ # Variables:
244
+ # $page (Number) - the page number
245
+ pdfjs-page-landmark =
246
+ .aria-label = Page { $page }
247
+
248
+ ## Loading indicator messages
249
+
250
+ pdfjs-loading-error = An error occurred while loading the PDF.
251
+ pdfjs-invalid-file-error = Invalid or corrupted PDF file.
252
+ pdfjs-missing-file-error = Missing PDF file.
253
+ pdfjs-unexpected-response-error = Unexpected server response.
254
+ pdfjs-rendering-error = An error occurred while rendering the page.
255
+
256
+ ## Annotations
257
+
258
+ # Variables:
259
+ # $date (Date) - the modification date of the annotation
260
+ # $time (Time) - the modification time of the annotation
261
+ pdfjs-annotation-date-string = { $date }, { $time }
262
+ # .alt: This is used as a tooltip.
263
+ # Variables:
264
+ # $type (String) - an annotation type from a list defined in the PDF spec
265
+ # (32000-1:2008 Table 169 – Annotation types).
266
+ # Some common types are e.g.: "Check", "Text", "Comment", "Note"
267
+ pdfjs-text-annotation-type =
268
+ .alt = [{ $type } Annotation]
269
+
270
+ ## Password
271
+
272
+ pdfjs-password-label = Enter the password to open this PDF file.
273
+ pdfjs-password-invalid = Invalid password. Please try again.
274
+ pdfjs-password-ok-button = OK
275
+ pdfjs-password-cancel-button = Cancel
276
+ pdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.
277
+
278
+ ## Editing
279
+
280
+ pdfjs-editor-free-text-button =
281
+ .title = Text
282
+ pdfjs-editor-free-text-button-label = Text
283
+ pdfjs-editor-ink-button =
284
+ .title = Draw
285
+ pdfjs-editor-ink-button-label = Draw
286
+ pdfjs-editor-stamp-button =
287
+ .title = Add or edit images
288
+ pdfjs-editor-stamp-button-label = Add or edit images
289
+ # Editor Parameters
290
+ pdfjs-editor-free-text-color-input = Colour
291
+ pdfjs-editor-free-text-size-input = Size
292
+ pdfjs-editor-ink-color-input = Colour
293
+ pdfjs-editor-ink-thickness-input = Thickness
294
+ pdfjs-editor-ink-opacity-input = Opacity
295
+ pdfjs-editor-stamp-add-image-button =
296
+ .title = Add image
297
+ pdfjs-editor-stamp-add-image-button-label = Add image
298
+ pdfjs-free-text =
299
+ .aria-label = Text Editor
300
+ pdfjs-free-text-default-content = Start typing…
301
+ pdfjs-ink =
302
+ .aria-label = Draw Editor
303
+ pdfjs-ink-canvas =
304
+ .aria-label = User-created image
305
+
306
+ ## Alt-text dialog
307
+
308
+
309
+ ## Editor resizers
310
+ ## This is used in an aria label to help to understand the role of the resizer.
311
+