]> git.parisson.com Git - pdf.js.git/commitdiff
Fallback locale string for JS code; simplify locale embedding for the extension
authorYury Delendik <ydelendik@mozilla.com>
Fri, 4 May 2012 13:37:08 +0000 (08:37 -0500)
committerYury Delendik <ydelendik@mozilla.com>
Fri, 4 May 2012 13:37:08 +0000 (08:37 -0500)
external/webL10n/l10n.js
make.js
web/viewer-snippet-firefox-extension.html
web/viewer.js

index adb0f4108a3fb184cf22847beba61d62370d5a44..f6c11c1781907d1ccdce118e617b0d3f9bdeb5a3 100644 (file)
@@ -21,7 +21,8 @@
 /*
   Additional modifications for PDF.js project:
     - Loading resources from <script type='application/l10n'>;
-    - Disabling language assignment on page loading.
+    - Disabling language initialization on page loading;
+    - Add fallback argument to the translateString.
 */
 'use strict';
 
   }
 
   // translate a string
-  function translateString(key, args) {
+  function translateString(key, args, fallback) {
     var data = getL10nData(key);
+    if (!data && fallback)
+      data = {textContent: fallback};
     if (!data)
       return '{{' + key + '}}';
     return substArguments(data.textContent, args);
diff --git a/make.js b/make.js
index d6caa53c1163057159760cbb01bd3a51775ccb15..3bb70dc91fd19cc4d3529ad1d64d46cd42bfc00c 100755 (executable)
--- a/make.js
+++ b/make.js
@@ -327,7 +327,7 @@ target.firefox = function() {
   // Modify the viewer so it does all the extension-only stuff.
   cd(FIREFOX_BUILD_CONTENT_DIR + '/web');
   sed('-i', /.*PDFJSSCRIPT_INCLUDE_BUNDLE.*\n/, cat(ROOT_DIR + BUILD_TARGET), 'viewer-snippet-firefox-extension.html');
-  sed('-i', /PDFJSSCRIPT_LOCALE_DATA/, JSON.stringify({text: LOCALE_CONTENT}), 'viewer-snippet-firefox-extension.html');
+  sed('-i', /.*PDFJSSCRIPT_LOCALE_DATA.*\n/, LOCALE_CONTENT, 'viewer-snippet-firefox-extension.html');
   sed('-i', /.*PDFJSSCRIPT_REMOVE_CORE.*\n/g, '', 'viewer.html');
   sed('-i', /.*PDFJSSCRIPT_REMOVE_FIREFOX_EXTENSION.*\n/g, '', 'viewer.html');
   sed('-i', /.*PDFJSSCRIPT_INCLUDE_FIREFOX_EXTENSION.*\n/, cat('viewer-snippet-firefox-extension.html'), 'viewer.html');
index a5c0da0a5de14015efedce4c963564813b76226b..57d7875eb3ac8fec53e9c7467c9bbf82c9424836 100644 (file)
@@ -1,15 +1,7 @@
 <!-- This snippet is used in firefox extension, see Makefile -->
 <base href="resource://pdf.js/web/" />
-<script type="text/javascript">
-(function() {
-   // doning script creation here since resource:// urls won't work
-   // for content loading.
-   var localeData = PDFJSSCRIPT_LOCALE_DATA;
-   var script = document.createElement('script');
-   script.type = 'application/l10n';
-   script.text = localeData.text;
-   document.getElementsByTagName('head')[0].appendChild(script);
-})();
+<script type="application/l10n">
+<!-- PDFJSSCRIPT_LOCALE_DATA -->
 </script>
 <script type="text/javascript" src="l10n.js"></script>
 <script type="text/javascript" id="PDFJS_SCRIPT_TAG">
index 849ef83011453a0f293fa16f2ccdf440d333b60a..e8eb9ad3b6c762247ea696737915c89311994f0d 100644 (file)
@@ -349,11 +349,13 @@ var PDFView = {
       },
       function getDocumentError(message, exception) {
         var loadingIndicator = document.getElementById('loading');
-        loadingIndicator.textContent = mozL10n.get('loading_error_indicator');
+        loadingIndicator.textContent = mozL10n.get('loading_error_indicator',
+          null, 'Error');
         var moreInfo = {
           message: message
         };
-        self.error(mozL10n.get('loading_error'), moreInfo);
+        self.error(mozL10n.get('loading_error', null,
+          'An error occurred while loading the PDF.'), moreInfo);
         self.loading = false;
       },
       function getDocumentProgress(progressData) {
@@ -461,22 +463,27 @@ var PDFView = {
     moreInfoButton.removeAttribute('hidden');
     lessInfoButton.setAttribute('hidden', 'true');
     errorMoreInfo.value =
-      mozL10n.get('error_build', {build: PDFJS.build}) + '\n';
+      mozL10n.get('error_build', {build: PDFJS.build},
+      'PDF.JS Build: {{build}}') + '\n';
 
     if (moreInfo) {
       errorMoreInfo.value +=
-        mozL10n.get('error_message', {message: moreInfo.message});
+        mozL10n.get('error_message', {message: moreInfo.message},
+        'Message: {{message}}');
       if (moreInfo.stack) {
         errorMoreInfo.value += '\n' +
-          mozL10n.get('error_stack', {stack: moreInfo.stack});
+          mozL10n.get('error_stack', {stack: moreInfo.stack},
+          'Stack: {{stack}}');
       } else {
         if (moreInfo.filename) {
           errorMoreInfo.value += '\n' +
-            mozL10n.get('error_file', {file: moreInfo.filename});
+            mozL10n.get('error_file', {file: moreInfo.filename},
+            'File: {{file}}');
         }
         if (moreInfo.lineNumber) {
           errorMoreInfo.value += '\n' +
-            mozL10n.get('error_line', {line: moreInfo.lineNumber});
+            mozL10n.get('error_line', {line: moreInfo.lineNumber},
+            'Line: {{line}}');
         }
       }
     }
@@ -486,7 +493,8 @@ var PDFView = {
   progress: function pdfViewProgress(level) {
     var percent = Math.round(level * 100);
     var loadingIndicator = document.getElementById('loading');
-    loadingIndicator.textContent = mozL10n.get('loading', {percent: percent});
+    loadingIndicator.textContent = mozL10n.get('loading', {percent: percent},
+      'Loading... {{percent}}%');
 
     PDFView.loadingBar.percent = percent;
   },
@@ -523,7 +531,7 @@ var PDFView = {
     var id = pdfDocument.fingerprint;
     var storedHash = null;
     document.getElementById('numPages').textContent =
-      mozL10n.get('page_of', {pageCount: pagesCount});
+      mozL10n.get('page_of', {pageCount: pagesCount}, 'of {{pageCount}}');
     document.getElementById('pageNumber').max = pagesCount;
     PDFView.documentFingerprint = id;
     var store = PDFView.store = new Settings(id);
@@ -837,7 +845,8 @@ var PageView = function pageView(container, pdfPage, id, scale,
       var rect = viewport.convertToViewportRectangle(item.rect);
       rect = PDFJS.Util.normalizeRect(rect);
       image.src = kImageDirectory + 'annotation-' + type.toLowerCase() + '.svg';
-      image.alt = mozL10n.get('text_annotation_type', {type: type});
+      image.alt = mozL10n.get('text_annotation_type', {type: type},
+        '[{{type}} Annotation]');
       var content = document.createElement('div');
       content.setAttribute('hidden', true);
       var title = document.createElement('h1');
@@ -1018,8 +1027,10 @@ var PageView = function pageView(container, pdfPage, id, scale,
         delete self.loadingIconDiv;
       }
 
-      if (error)
-        PDFView.error(mozL10n.get('rendering_error'), error);
+      if (error) {
+        PDFView.error(mozL10n.get('rendering_error', null,
+          'An error occurred while rendering the page.'), error);
+      }
 
       self.stats = pdfPage.stats;
       self.updateStats();
@@ -1163,7 +1174,8 @@ var DocumentOutlineView = function documentOutlineView(outline) {
   if (!outline) {
     var noOutline = document.createElement('div');
     noOutline.classList.add('noOutline');
-    noOutline.textContent = mozL10n.get('no_outline');
+    noOutline.textContent = mozL10n.get('no_outline', null,
+      'No Outline Available');
     outlineView.appendChild(noOutline);
     return;
   }