+
+ No Spreads
+
+
+ Odd Spreads
+
+
+ Even Spreads
+
+
+
+
+
+ Document Properties…
@@ -155,81 +253,85 @@ See https://github.com/adobe-type-tools/cmap-resources
-
+ Toggle Sidebar
-
- Find
+
+ Find
-
-
+
+ Previous
-
+ Next
-
-
+
-
- Presentation Mode
-
-
-
+ Open
-
+ Print
-
- Download
+
+ Save
-
- Current View
-
-
+
-
+
+
+ Text
+
+
+ Draw
+
+
+ Add or edit images
+
+
+
+
+
+ Tools
-
-
-
-
- Zoom Out
-
-
-
- Zoom In
-
-
-
-
-
+
+
+
+ Zoom Out
+
+
+
+ Zoom In
+
+
+
+
@@ -241,187 +343,149 @@ See https://github.com/adobe-type-tools/cmap-resources
-
-
-
-
-
-
-
- More Information
-
-
- Less Information
-
-
-
-
- Close
-
-
-
-
-
-
-
-
-
-
Enter the password to open this PDF file:
+
+
+
+
-
-
-
-
-
- Preparing document for printing...
-
-
- 0%
-
-
-
-
-
-
+
+
-
-
diff --git a/static/pdf.js/locale/ach/viewer.properties b/static/pdf.js/locale/ach/viewer.properties
index 50747b6e0..110e317fc 100644
--- a/static/pdf.js/locale/ach/viewer.properties
+++ b/static/pdf.js/locale/ach/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Mukato
next.title=Pot buk malubo
next_label=Malubo
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Pot buk:
-page_of=pi {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pot buk
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=pi {{pagesCount}}
+# 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}} me {{pagesCount}})
zoom_out.title=Jwik Matidi
zoom_out_label=Jwik Matidi
@@ -36,31 +39,30 @@ open_file.title=Yab Pwail
open_file_label=Yab
print.title=Go
print_label=Go
-download.title=Gam
-download_label=Gam
-bookmark.title=Neno ma kombedi (lok onyo yab i dirica manyen)
-bookmark_label=Neno ma kombedi
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+# 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.
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+# 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.
# Secondary toolbar and context menu
tools.title=Gintic
tools_label=Gintic
first_page.title=Cit i pot buk mukwongo
-first_page.label=Cit i pot buk mukwongo
first_page_label=Cit i pot buk mukwongo
last_page.title=Cit i pot buk magiko
-last_page.label=Cit i pot buk magiko
last_page_label=Cit i pot buk magiko
page_rotate_cw.title=Wire i tung lacuc
-page_rotate_cw.label=Wire i tung lacuc
page_rotate_cw_label=Wire i tung lacuc
page_rotate_ccw.title=Wire i tung lacam
-page_rotate_ccw.label=Wire i tung lacam
page_rotate_ccw_label=Wire i tung lacam
-hand_tool_enable.title=Ye gintic me cing
-hand_tool_enable_label=Ye gintic me cing
-hand_tool_disable.title=Juk gintic me cing
-hand_tool_disable_label=Juk gintic me cing
+cursor_text_select_tool.title=Cak gitic me yero coc
+cursor_text_select_tool_label=Gitic me yero coc
+cursor_hand_tool.title=Cak gitic me cing
+cursor_hand_tool_label=Gitic cing
+
+
# Document properties dialog box
document_properties.title=Jami me gin acoya…
@@ -75,7 +77,7 @@ document_properties_kb={{size_kb}} KB ({{size_b}} bytes)
document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
document_properties_title=Wiye:
document_properties_author=Ngat mucoyo:
-document_properties_subject=Lok:
+document_properties_subject=Subjek:
document_properties_keywords=Lok mapire tek:
document_properties_creation_date=Nino dwe me cwec:
document_properties_modification_date=Nino dwe me yub:
@@ -86,15 +88,42 @@ document_properties_creator=Lacwec:
document_properties_producer=Layub PDF:
document_properties_version=Kit PDF:
document_properties_page_count=Kwan me pot buk:
+document_properties_page_size=Dit pa potbuk:
+document_properties_page_size_unit_inches=i
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=atir
+document_properties_page_size_orientation_landscape=arii
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Waraga
+document_properties_page_size_name_legal=Cik
+# 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=Eyo
+document_properties_linearized_no=Pe
document_properties_close=Lor
+print_progress_message=Yubo coc me agoya…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Juki
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Lok gintic ma inget
toggle_sidebar_label=Lok gintic ma inget
-outline.title=Nyut rek pa gin acoya
-outline_label=Pek pa gin acoya
+document_outline.title=Nyut Wiyewiye me Gin acoya (dii-kiryo me yaro/kano jami weng)
+document_outline_label=Pek pa gin acoya
attachments.title=Nyut twec
attachments_label=Twec
thumbs.title=Nyut cal
@@ -102,6 +131,7 @@ thumbs_label=Cal
findbar.title=Nong iye gin acoya
findbar_label=Nong
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +141,26 @@ thumb_page_title=Pot buk {{page}}
thumb_page_canvas=Cal me pot buk {{page}}
# Find panel button title and messages
-find_label=Nong:
+find_input.title=Nong
+find_input.placeholder=Nong i dokumen…
find_previous.title=Nong timme pa lok mukato
find_previous_label=Mukato
find_next.title=Nong timme pa lok malubo
find_next_label=Malubo
-find_highlight=Wer weng
+find_highlight=Ket Lanyut I Weng
find_match_case_label=Lok marwate
find_reached_top=Oo iwi gin acoya, omede ki i tere
find_reached_bottom=Oo i agiki me gin acoya, omede ki iwiye
+# 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.
+# 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=Lok pe ononge
-# Error panel labels
-error_more_info=Ngec Mukene
-error_less_info=Ngec Manok
-error_close=Lor
-# 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=Kwena: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Can kikore {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Pwail: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Rek: {{line}}
-rendering_error=Bal otime i kare me nyuto pot buk.
-
# Predefined zoom values
page_scale_width=Lac me iye pot buk
page_scale_fit=Porre me pot buk
@@ -151,11 +171,14 @@ page_scale_actual=Dite kikome
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Bal
loading_error=Bal otime kun cano PDF.
invalid_file_error=Pwail me PDF ma pe atir onyo obale woko.
missing_file_error=Pwail me PDF tye ka rem.
unexpected_response_error=Lagam mape kigeno pa lapok tic.
+rendering_error=Bal otime i kare me nyuto pot buk.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -165,9 +188,16 @@ text_annotation_type.alt=[{{type}} Lok angea manok]
password_label=Ket mung me donyo me yabo pwail me PDF man.
password_invalid=Mung me donyo pe atir. Tim ber i tem doki.
password_ok=OK
-password_cancel=Juk
+password_cancel=Juki
printing_not_supported=Ciko: Layeny ma pe teno goyo liweng.
printing_not_ready=Ciko: PDF pe ocane weng me agoya.
web_fonts_disabled=Kijuko dit pa coc me kakube woko: pe romo tic ki dit pa coc me PDF ma kiketo i kine.
-document_colors_not_allowed=Pe ki ye ki gin acoya me PDF me tic ki rangi gi kengi: 'Ye pot buk me yero rangi mamegi kengi' kijuko woko i layeny.
+
+# Editor
+
+
+
+# Editor Parameters
+
+# Editor aria
diff --git a/static/pdf.js/locale/af/viewer.properties b/static/pdf.js/locale/af/viewer.properties
index 052413ddf..f2a9e2a1d 100644
--- a/static/pdf.js/locale/af/viewer.properties
+++ b/static/pdf.js/locale/af/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Vorige
next.title=Volgende bladsy
next_label=Volgende
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Bladsy:
-page_of=van {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Bladsy
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=van {{pagesCount}}
+# 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}} van {{pagesCount}})
zoom_out.title=Zoem uit
zoom_out_label=Zoem uit
@@ -36,31 +39,23 @@ open_file.title=Open lêer
open_file_label=Open
print.title=Druk
print_label=Druk
-download.title=Laai af
-download_label=Laai af
-bookmark.title=Huidige aansig (kopieer of open in nuwe venster)
-bookmark_label=Huidige aansig
# Secondary toolbar and context menu
tools.title=Nutsgoed
tools_label=Nutsgoed
first_page.title=Gaan na eerste bladsy
-first_page.label=Gaan na eerste bladsy
first_page_label=Gaan na eerste bladsy
last_page.title=Gaan na laaste bladsy
-last_page.label=Gaan na laaste bladsy
last_page_label=Gaan na laaste bladsy
page_rotate_cw.title=Roteer kloksgewys
-page_rotate_cw.label=Roteer kloksgewys
page_rotate_cw_label=Roteer kloksgewys
page_rotate_ccw.title=Roteer anti-kloksgewys
-page_rotate_ccw.label=Roteer anti-kloksgewys
page_rotate_ccw_label=Roteer anti-kloksgewys
-hand_tool_enable.title=Aktiveer handjie
-hand_tool_enable_label=Aktiveer handjie
-hand_tool_disable.title=Deaktiveer handjie
-hand_tool_disable_label=Deaktiveer handjie
+cursor_text_select_tool.title=Aktiveer gereedskap om teks te merk
+cursor_text_select_tool_label=Teksmerkgereedskap
+cursor_hand_tool.title=Aktiveer handjie
+cursor_hand_tool_label=Handjie
# Document properties dialog box
document_properties.title=Dokumenteienskappe…
@@ -88,13 +83,19 @@ document_properties_version=PDF-weergawe:
document_properties_page_count=Aantal bladsye:
document_properties_close=Sluit
+print_progress_message=Berei tans dokument voor om te druk…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Kanselleer
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Sypaneel aan/af
toggle_sidebar_label=Sypaneel aan/af
-outline.title=Wys dokumentoorsig
-outline_label=Dokumentoorsig
+document_outline.title=Wys dokumentskema (dubbelklik om alle items oop/toe te vou)
+document_outline_label=Dokumentoorsig
attachments.title=Wys aanhegsels
attachments_label=Aanhegsels
thumbs.title=Wys duimnaels
@@ -111,36 +112,18 @@ thumb_page_title=Bladsy {{page}}
thumb_page_canvas=Duimnael van bladsy {{page}}
# Find panel button title and messages
-find_label=Vind:
+find_input.title=Vind
+find_input.placeholder=Soek in dokument…
find_previous.title=Vind die vorige voorkoms van die frase
find_previous_label=Vorige
find_next.title=Vind die volgende voorkoms van die frase
find_next_label=Volgende
-find_highlight=Verlig alle
+find_highlight=Verlig almal
find_match_case_label=Kassensitief
find_reached_top=Bokant van dokument is bereik; gaan voort van onder af
find_reached_bottom=Einde van dokument is bereik; gaan voort van bo af
find_not_found=Frase nie gevind nie
-# Error panel labels
-error_more_info=Meer inligting
-error_less_info=Minder inligting
-error_close=Sluit
-# 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}} (ID: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Boodskap: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stapel: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Lêer: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Lyn: {{line}}
-rendering_error='n Fout het voorgekom toe die bladsy weergegee is.
-
# Predefined zoom values
page_scale_width=Bladsywydte
page_scale_fit=Pas bladsy
@@ -150,18 +133,18 @@ page_scale_actual=Werklike grootte
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Fout
loading_error='n Fout het voorgekom met die laai van die PDF.
invalid_file_error=Ongeldige of korrupte PDF-lêer.
missing_file_error=PDF-lêer is weg.
unexpected_response_error=Onverwagse antwoord van bediener.
+rendering_error='n Fout het voorgekom toe die bladsy weergegee is.
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}}-annotasie
+text_annotation_type.alt=[{{type}}-annotasie]
password_label=Gee die wagwoord om dié PDF-lêer mee te open.
password_invalid=Ongeldige wagwoord. Probeer gerus weer.
password_ok=OK
@@ -170,4 +153,4 @@ password_cancel=Kanselleer
printing_not_supported=Waarskuwing: Dié blaaier ondersteun nie drukwerk ten volle nie.
printing_not_ready=Waarskuwing: Die PDF is nog nie volledig gelaai vir drukwerk nie.
web_fonts_disabled=Webfonte is gedeaktiveer: kan nie PDF-fonte wat ingebed is, gebruik nie.
-document_colors_not_allowed=PDF-dokumente word nie toegelaat om hul eie kleure te gebruik nie: 'Laat bladsye toe om hul eie kleure te kies' is gedeaktiveer in die blaaier.
+
diff --git a/static/pdf.js/locale/ak/viewer.properties b/static/pdf.js/locale/ak/viewer.properties
deleted file mode 100644
index 83eacd63e..000000000
--- a/static/pdf.js/locale/ak/viewer.properties
+++ /dev/null
@@ -1,131 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Krataafa baako a etwa mu
-previous_label=Ekyiri-baako
-next.title=Krataafa a edi so baako
-next_label=Dea-ɛ-di-so-baako
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Krataafa:
-page_of=wɔ {{pageCount}}
-
-zoom_out.title=Zuum pue
-zoom_out_label=Zuum ba abɔnten
-zoom_in.title=Zuum kɔ mu
-zoom_in_label=Zuum kɔ mu
-zoom.title=Zuum
-presentation_mode.title=Sesa kɔ Yɛkyerɛ Tebea mu
-presentation_mode_label=Yɛkyerɛ Tebea
-open_file.title=Bue Fael
-open_file_label=Bue
-print.title=Prente
-print_label=Prente
-download.title=Twe
-download_label=Twe
-bookmark.title=Seisei nhwɛ (fa anaaso bue wɔ tokuro foforo mu)
-bookmark_label=Seisei nhwɛ
-
-# Secondary toolbar and context menu
-
-
-# Document properties dialog box
-# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
-# will be replaced by the PDF file size in kilobytes, respectively in 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_title=Ti asɛm:
-# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
-# will be replaced by the creation/modification date, and time, of the PDF file.
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=Sɔ anaaso dum saedbaa
-toggle_sidebar_label=Sɔ anaaso dum saedbaa
-outline.title=Kyerɛ dɔkomɛnt bɔbea
-outline_label=Dɔkomɛnt bɔbea
-thumbs.title=Kyerɛ mfoniwaa
-thumbs_label=Mfoniwaa
-findbar.title=Hu wɔ dɔkomɛnt no mu
-findbar_label=Hu
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=Krataafa {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=Krataafa ne mfoniwaa {{page}}
-
-# Find panel button title and messages
-find_label=Hunu:
-find_previous.title=San hu fres wɔ ekyiri baako
-find_previous_label=Ekyiri baako
-find_next.title=San hu fres no wɔ enim baako
-find_next_label=Ndiso
-find_highlight=Hyɛ bibiara nso
-find_match_case_label=Fa susu kaase
-find_reached_top=Edu krataafa ne soro, atoa so efiri ase
-find_reached_bottom=Edu krataafa n'ewiei, atoa so efiri soro
-find_not_found=Ennhu fres
-
-# Error panel labels
-error_more_info=Infɔmehyɛn bio a wɔka ho
-error_less_info=Te infɔmehyɛn bio a wɔka ho so
-# 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{{vɛɛhyen}} (nsi: {{si}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Nkrato: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Staake: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fael: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Laen: {{line}}
-rendering_error=Mfomso bae wɔ bere a wɔ rekyerɛ krataafa no.
-
-# Predefined zoom values
-page_scale_width=Krataafa tɛtrɛtɛ
-page_scale_fit=Krataafa ehimtwa
-page_scale_auto=Zuum otomatik
-page_scale_actual=Kɛseyɛ ankasa
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-loading_error_indicator=Mfomso
-loading_error=Mfomso bae wɔ bere a wɔreloode PDF no.
-invalid_file_error=PDF fael no nndi mu anaaso ho atɔ kyima.
-missing_file_error=PDF fael no ayera.
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Tɛkst-nyiano]
-password_ok=OK
-password_cancel=Twa-mu
-
-printing_not_supported=Kɔkɔbɔ: Brawsa yi nnhyɛ daa mma prent ho kwan.
-printing_not_ready=Kɔkɔbɔ: Wɔnntwee PDF fael no nyinara mmbaee ama wo ɛ tumi aprente.
-web_fonts_disabled=Ɔedum wɛb-mfɔnt: nntumi mmfa PDF mfɔnt a wɔhyɛ mu nndi dwuma.
-document_colors_not_allowed=Wɔmma ho kwan sɛ PDF adɔkomɛnt de wɔn ara wɔn ahosu bɛdi dwuma: wɔ adum 'Ma ho kwan ma nkrataafa mpaw wɔn ara wɔn ahosu' wɔ brawsa yi mu.
diff --git a/static/pdf.js/locale/an/viewer.properties b/static/pdf.js/locale/an/viewer.properties
index ad26285e0..2fc1056b3 100644
--- a/static/pdf.js/locale/an/viewer.properties
+++ b/static/pdf.js/locale/an/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Anterior
next.title=Pachina siguient
next_label=Siguient
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Pachina:
-page_of=de {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pachina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
zoom_out.title=Achiquir
zoom_out_label=Achiquir
@@ -36,31 +39,37 @@ open_file.title=Ubrir o fichero
open_file_label=Ubrir
print.title=Imprentar
print_label=Imprentar
-download.title=Descargar
-download_label=Descargar
-bookmark.title=Vista actual (copiar u ubrir en una nueva finestra)
-bookmark_label=Anvista actual
# Secondary toolbar and context menu
tools.title=Ferramientas
tools_label=Ferramientas
first_page.title=Ir ta la primer pachina
-first_page.label=Ir ta la primer pachina
first_page_label=Ir ta la primer pachina
last_page.title=Ir ta la zaguer pachina
-last_page.label=Ir ta la zaguera pachina
last_page_label=Ir ta la zaguer pachina
page_rotate_cw.title=Chirar enta la dreita
-page_rotate_cw.label=Chirar enta la dreita
page_rotate_cw_label=Chira enta la dreita
page_rotate_ccw.title=Chirar enta la zurda
-page_rotate_ccw.label=Chirar en sentiu antihorario
page_rotate_ccw_label=Chirar enta la zurda
-hand_tool_enable.title=Activar a ferramienta man
-hand_tool_enable_label=Activar a ferramenta man
-hand_tool_disable.title=Desactivar a ferramienta man
-hand_tool_disable_label=Desactivar a ferramienta man
+cursor_text_select_tool.title=Activar la ferramienta de selección de texto
+cursor_text_select_tool_label=Ferramienta de selección de texto
+cursor_hand_tool.title=Activar la ferramienta man
+cursor_hand_tool_label=Ferramienta man
+
+scroll_vertical.title=Usar lo desplazamiento vertical
+scroll_vertical_label=Desplazamiento vertical
+scroll_horizontal.title=Usar lo desplazamiento horizontal
+scroll_horizontal_label=Desplazamiento horizontal
+scroll_wrapped.title=Activaar lo desplazamiento contino
+scroll_wrapped_label=Desplazamiento contino
+
+spread_none.title=No unir vistas de pachinas
+spread_none_label=Una pachina nomás
+spread_odd.title=Mostrar vista de pachinas, con as impars a la zurda
+spread_odd_label=Doble pachina, impar a la zurda
+spread_even.title=Amostrar vista de pachinas, con as pars a la zurda
+spread_even_label=Doble pachina, para a la zurda
# Document properties dialog box
document_properties.title=Propiedatz d'o documento...
@@ -86,22 +95,54 @@ document_properties_creator=Creyador:
document_properties_producer=Creyador de PDF:
document_properties_version=Versión de PDF:
document_properties_page_count=Numero de pachinas:
+document_properties_page_size=Mida de pachina:
+document_properties_page_size_unit_inches=pulgadas
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertical
+document_properties_page_size_orientation_landscape=horizontal
+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=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}} x {{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}} x {{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=Vista web rapida:
+document_properties_linearized_yes=Sí
+document_properties_linearized_no=No
document_properties_close=Zarrar
+print_progress_message=Se ye preparando la documentación pa imprentar…
+# 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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Amostrar u amagar a barra lateral
+toggle_sidebar_notification2.title=Cambiar barra lateral (lo documento contiene esquema/adchuntos/capas)
toggle_sidebar_label=Amostrar a barra lateral
-outline.title=Amostrar o esquema d'o documento
-outline_label=Esquema d'o documento
+document_outline.title=Amostrar esquema d'o documento (fer doble clic pa expandir/compactar totz los items)
+document_outline_label=Esquema d'o documento
attachments.title=Amostrar os adchuntos
attachments_label=Adchuntos
+layers.title=Amostrar capas (doble clic para reiniciar totas las capas a lo estau per defecto)
+layers_label=Capas
thumbs.title=Amostrar as miniaturas
thumbs_label=Miniaturas
findbar.title=Trobar en o documento
findbar_label=Trobar
+additional_layers=Capas adicionals
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +152,40 @@ thumb_page_title=Pachina {{page}}
thumb_page_canvas=Miniatura d'a pachina {{page}}
# Find panel button title and messages
-find_label=Trobar:
+find_input.title=Trobar
+find_input.placeholder=Trobar en o documento…
find_previous.title=Trobar l'anterior coincidencia d'a frase
find_previous_label=Anterior
find_next.title=Trobar a siguient coincidencia d'a frase
find_next_label=Siguient
find_highlight=Resaltar-lo tot
find_match_case_label=Coincidencia de mayusclas/minusclas
+find_entire_word_label=Parolas completas
find_reached_top=S'ha plegau a l'inicio d'o documento, se contina dende baixo
find_reached_bottom=S'ha plegau a la fin d'o documento, se contina dende alto
+# 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}} de {{total}} coincidencia
+find_match_count[two]={{current}} de {{total}} coincidencias
+find_match_count[few]={{current}} de {{total}} coincidencias
+find_match_count[many]={{current}} de {{total}} coincidencias
+find_match_count[other]={{current}} de {{total}} coincidencias
+# 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]=Mas de {{limit}} coincidencias
+find_match_count_limit[one]=Mas de {{limit}} coincidencias
+find_match_count_limit[two]=Mas que {{limit}} coincidencias
+find_match_count_limit[few]=Mas que {{limit}} coincidencias
+find_match_count_limit[many]=Mas que {{limit}} coincidencias
+find_match_count_limit[other]=Mas que {{limit}} coincidencias
find_not_found=No s'ha trobau a frase
-# Error panel labels
-error_more_info=Mas información
-error_less_info=Menos información
-error_close=Zarrar
-# 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=Mensache: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Pila: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fichero: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linia: {{line}}
-rendering_error=Ha ocurriu una error en renderizar a pachina.
-
# Predefined zoom values
page_scale_width=Amplaria d'a pachina
page_scale_fit=Achuste d'a pachina
@@ -150,13 +195,17 @@ page_scale_actual=Grandaria actual
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Error
loading_error=S'ha produciu una error en cargar o PDF.
invalid_file_error=O PDF no ye valido u ye estorbau.
missing_file_error=No i ha fichero PDF.
unexpected_response_error=Respuesta a lo servicio inasperada.
+rendering_error=Ha ocurriu una error en renderizar a pachina.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +219,4 @@ password_cancel=Cancelar
printing_not_supported=Pare cuenta: Iste navegador no maneya totalment as impresions.
printing_not_ready=Aviso: Encara no se ha cargau completament o PDF ta imprentar-lo.
web_fonts_disabled=As fuents web son desactivadas: no se puet incrustar fichers PDF.
-document_colors_not_allowed=Os documentos PDF no pueden fer servir as suyas propias colors: 'Permitir que as pachinas triguen as suyas propias colors' ye desactivau en o navegador.
+
diff --git a/static/pdf.js/locale/ar/viewer.properties b/static/pdf.js/locale/ar/viewer.properties
index 3dd50c884..01c942395 100644
--- a/static/pdf.js/locale/ar/viewer.properties
+++ b/static/pdf.js/locale/ar/viewer.properties
@@ -18,12 +18,15 @@ previous_label=السابقة
next.title=الصفحة التالية
next_label=التالية
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=صفحة:
-page_of=من {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=صفحة
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=من {{pagesCount}}
+# 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_label=بعّد
@@ -36,31 +39,37 @@ open_file.title=افتح ملفًا
open_file_label=افتح
print.title=اطبع
print_label=اطبع
-download.title=نزّل
-download_label=نزّل
-bookmark.title=المنظور الحالي (انسخ أو افتح في نافذة جديدة)
-bookmark_label=المنظور الحالي
# Secondary toolbar and context menu
tools.title=الأدوات
tools_label=الأدوات
-first_page.title=اذهب إلى الصفحة الأولى
-first_page.label=اذهب إلى الصفحة الأولى
-first_page_label=اذهب إلى الصفحة الأولى
-last_page.title=اذهب إلى الصفحة الأخيرة
-last_page.label=اذهب إلى الصفحة الأخيرة
-last_page_label=اذهب إلى الصفحة الأخيرة
+first_page.title=انتقل إلى الصفحة الأولى
+first_page_label=انتقل إلى الصفحة الأولى
+last_page.title=انتقل إلى الصفحة الأخيرة
+last_page_label=انتقل إلى الصفحة الأخيرة
page_rotate_cw.title=أدر باتجاه عقارب الساعة
-page_rotate_cw.label=أدر باتجاه عقارب الساعة
page_rotate_cw_label=أدر باتجاه عقارب الساعة
page_rotate_ccw.title=أدر بعكس اتجاه عقارب الساعة
-page_rotate_ccw.label=أدر بعكس اتجاه عقارب الساعة
page_rotate_ccw_label=أدر بعكس اتجاه عقارب الساعة
-hand_tool_enable.title=فعّل أداة اليد
-hand_tool_enable_label=فعّل أداة اليد
-hand_tool_disable.title=عطّل أداة اليد
-hand_tool_disable_label=عطّل أداة اليد
+cursor_text_select_tool.title=فعّل أداة اختيار النص
+cursor_text_select_tool_label=أداة اختيار النص
+cursor_hand_tool.title=فعّل أداة اليد
+cursor_hand_tool_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.title=خصائص المستند…
@@ -86,22 +95,56 @@ document_properties_creator=المنشئ:
document_properties_producer=منتج PDF:
document_properties_version=إصدارة PDF:
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=العرض السريع عبر الوِب:
+document_properties_linearized_yes=نعم
+document_properties_linearized_no=لا
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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-toggle_sidebar.title=بدّل الشريط الجانبي
-toggle_sidebar_label=بدّل الشريط الجانبي
-outline.title=اعرض مخطط المستند
-outline_label=مخطط المستند
+toggle_sidebar.title=بدّل ظهور الشريط الجانبي
+toggle_sidebar_notification2.title=بدّل ظهور الشريط الجانبي (يحتوي المستند على مخطط أو مرفقات أو طبقات)
+toggle_sidebar_label=بدّل ظهور الشريط الجانبي
+document_outline.title=اعرض فهرس المستند (نقر مزدوج لتمديد أو تقليص كل العناصر)
+document_outline_label=مخطط المستند
attachments.title=اعرض المرفقات
attachments_label=المُرفقات
+layers.title=اعرض الطبقات (انقر مرتين لتصفير كل الطبقات إلى الحالة المبدئية)
+layers_label=الطبقات
thumbs.title=اعرض مُصغرات
thumbs_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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,52 +154,60 @@ thumb_page_title=صفحة {{page}}
thumb_page_canvas=مصغّرة صفحة {{page}}
# Find panel button title and messages
-find_label=ابحث:
+find_input.title=ابحث
+find_input.placeholder=ابحث في المستند…
find_previous.title=ابحث عن التّواجد السّابق للعبارة
find_previous_label=السابق
find_next.title=ابحث عن التّواجد التّالي للعبارة
find_next_label=التالي
find_highlight=أبرِز الكل
find_match_case_label=طابق حالة الأحرف
+find_entire_word_label=كلمات كاملة
find_reached_top=تابعت من الأسفل بعدما وصلت إلى بداية المستند
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}} من أصل مطابقة واحدة
+find_match_count[two]={{current}} من أصل مطابقتين
+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]=فقط
+find_match_count_limit[one]=أكثر من مطابقة واحدة
+find_match_count_limit[two]=أكثر من مطابقتين
+find_match_count_limit[few]=أكثر من {{limit}} مطابقات
+find_match_count_limit[many]=أكثر من {{limit}} مطابقة
+find_match_count_limit[other]=أكثر من {{limit}} مطابقة
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
page_scale_width=عرض الصفحة
page_scale_fit=ملائمة الصفحة
page_scale_auto=تقريب تلقائي
-page_scale_actual=الحجم الحقيقي
+page_scale_actual=الحجم الفعلي
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}٪
-# Loading indicator messages
-loading_error_indicator=عطل
loading_error=حدث عطل أثناء تحميل ملف PDF.
invalid_file_error=ملف PDF تالف أو غير صحيح.
missing_file_error=ملف PDF غير موجود.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +221,4 @@ password_cancel=ألغِ
printing_not_supported=تحذير: لا يدعم هذا المتصفح الطباعة بشكل كامل.
printing_not_ready=تحذير: ملف PDF لم يُحمّل كاملًا للطباعة.
web_fonts_disabled=خطوط الوب مُعطّلة: تعذّر استخدام خطوط PDF المُضمّنة.
-document_colors_not_allowed=ليس مسموحًا لملفات PDF باستخدام ألوانها الخاصة: خيار 'اسمح للصفحات باختيار ألوانها الخاصة' ليس مُفعّلًا في المتصفح.
+
diff --git a/static/pdf.js/locale/as/viewer.properties b/static/pdf.js/locale/as/viewer.properties
deleted file mode 100644
index 58ccd84e0..000000000
--- a/static/pdf.js/locale/as/viewer.properties
+++ /dev/null
@@ -1,172 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=পূৰ্বৱৰ্তী পৃষ্ঠা
-previous_label=পূৰ্বৱৰ্তী
-next.title=পৰৱৰ্তী পৃষ্ঠা
-next_label=পৰৱৰ্তী
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=পৃষ্ঠা:
-page_of=ৰ {{pageCount}}
-
-zoom_out.title=জুম আউট
-zoom_out_label=জুম আউট
-zoom_in.title=জুম ইন
-zoom_in_label=জুম ইন
-zoom.title=জুম কৰক
-presentation_mode.title=উপস্থাপন অৱস্থালে যাওক
-presentation_mode_label=উপস্থাপন অৱস্থা
-open_file.title=ফাইল খোলক
-open_file_label=খোলক
-print.title=প্ৰিন্ট কৰক
-print_label=প্ৰিন্ট কৰক
-download.title=ডাউনল'ড কৰক
-download_label=ডাউনল'ড কৰক
-bookmark.title=বৰ্তমান দৃশ্য (কপি কৰক অথবা নতুন উইন্ডোত খোলক)
-bookmark_label=বৰ্তমান দৃশ্য
-
-# Secondary toolbar and context menu
-tools.title=সঁজুলিসমূহ
-tools_label=সঁজুলিসমূহ
-first_page.title=প্ৰথম পৃষ্ঠাত যাওক
-first_page.label=প্ৰথম পৃষ্ঠাত যাওক
-first_page_label=প্ৰথম পৃষ্ঠাত যাওক
-last_page.title=সৰ্বশেষ পৃষ্ঠাত যাওক
-last_page.label=সৰ্বশেষ পৃষ্ঠাত যাওক
-last_page_label=সৰ্বশেষ পৃষ্ঠাত যাওক
-page_rotate_cw.title=ঘড়ীৰ দিশত ঘুৰাওক
-page_rotate_cw.label=ঘড়ীৰ দিশত ঘুৰাওক
-page_rotate_cw_label=ঘড়ীৰ দিশত ঘুৰাওক
-page_rotate_ccw.title=ঘড়ীৰ ওলোটা দিশত ঘুৰাওক
-page_rotate_ccw.label=ঘড়ীৰ ওলোটা দিশত ঘুৰাওক
-page_rotate_ccw_label=ঘড়ীৰ ওলোটা দিশত ঘুৰাওক
-
-hand_tool_enable.title=হাঁত সঁজুলি সামৰ্থবান কৰক
-hand_tool_enable_label=হাঁত সঁজুলি সামৰ্থবান কৰক
-hand_tool_disable.title=হাঁত সঁজুলি অসামৰ্থবান কৰক
-hand_tool_disable_label=হাঁত সঁজুলি অসামৰ্থবান কৰক
-
-# Document properties dialog box
-document_properties.title=দস্তাবেজৰ বৈশিষ্ট্যসমূহ…
-document_properties_label=দস্তাবেজৰ বৈশিষ্ট্যসমূহ…
-document_properties_file_name=ফাইল নাম:
-document_properties_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)
-# 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_title=শীৰ্ষক:
-document_properties_author=লেখক:
-document_properties_subject=বিষয়:
-document_properties_keywords=কিৱাৰ্ডসমূহ:
-document_properties_creation_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_creator=সৃষ্টিকৰ্তা:
-document_properties_producer=PDF উৎপাদক:
-document_properties_version=PDF সংস্কৰণ:
-document_properties_page_count=পৃষ্ঠাৰ গণনা:
-document_properties_close=বন্ধ কৰক
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=কাষবাৰ টগল কৰক
-toggle_sidebar_label=কাষবাৰ টগল কৰক
-outline.title=দস্তাবেজ আউটলাইন দেখুৱাওক
-outline_label=দস্তাবেজ আউটলাইন
-attachments.title=এটাচমেন্টসমূহ দেখুৱাওক
-attachments_label=এটাচমেন্টসমূহ
-thumbs.title=থাম্বনেইলসমূহ দেখুৱাওক
-thumbs_label=থাম্বনেইলসমূহ
-findbar.title=দস্তাবেজত সন্ধান কৰক
-findbar_label=সন্ধান কৰক
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=পৃষ্ঠা {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=পৃষ্ঠাৰ থাম্বনেইল {{page}}
-
-# Find panel button title and messages
-find_label=সন্ধান কৰক:
-find_previous.title=বাক্যাংশৰ পূৰ্বৱৰ্তী উপস্থিতি সন্ধান কৰক
-find_previous_label=পূৰ্বৱৰ্তী
-find_next.title=বাক্যাংশৰ পৰৱৰ্তী উপস্থিতি সন্ধান কৰক
-find_next_label=পৰৱৰ্তী
-find_highlight=সকলো উজ্জ্বল কৰক
-find_match_case_label=ফলা মিলাওক
-find_reached_top=তলৰ পৰা আৰম্ভ কৰি, দস্তাবেজৰ ওপৰলৈ অহা হৈছে
-find_reached_bottom=ওপৰৰ পৰা আৰম্ভ কৰি, দস্তাবেজৰ তললৈ অহা হৈছে
-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
-page_scale_width=পৃষ্ঠাৰ প্ৰস্থ
-page_scale_fit=পৃষ্ঠা খাপ
-page_scale_auto=স্বচালিত জুম
-page_scale_actual=প্ৰকৃত আকাৰ
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-loading_error_indicator=ত্ৰুটি
-loading_error=PDF ল'ড কৰোতে এটা ত্ৰুটি দেখা দিলে।
-invalid_file_error=অবৈধ অথবা ক্ষতিগ্ৰস্থ PDF file।
-missing_file_error=সন্ধানহিন PDF ফাইল।
-unexpected_response_error=অপ্ৰত্যাশিত চাৰ্ভাৰ প্ৰতিক্ৰিয়া।
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} টোকা]
-password_label=এই PDF ফাইল খোলিবলৈ পাছৱৰ্ড সুমুৱাওক।
-password_invalid=অবৈধ পাছৱৰ্ড। অনুগ্ৰহ কৰি পুনৰ চেষ্টা কৰক।
-password_ok=ঠিক আছে
-password_cancel=বাতিল কৰক
-
-printing_not_supported=সতৰ্কবাৰ্তা: প্ৰিন্টিং এই ব্ৰাউছাৰ দ্বাৰা সম্পূৰ্ণভাৱে সমৰ্থিত নহয়।
-printing_not_ready=সতৰ্কবাৰ্তা: PDF প্ৰিন্টিংৰ বাবে সম্পূৰ্ণভাৱে ল'ডেড নহয়।
-web_fonts_disabled=ৱেব ফন্টসমূহ অসামৰ্থবান কৰা আছে: অন্তৰ্ভুক্ত PDF ফন্টসমূহ ব্যৱহাৰ কৰিবলে অক্ষম।
-document_colors_not_allowed=PDF দস্তাবেজসমূহৰ সিহতৰ নিজস্ব ৰঙ ব্যৱহাৰ কৰাৰ অনুমতি নাই: ব্ৰাউছাৰত 'পৃষ্ঠাসমূহক সিহতৰ নিজস্ব ৰঙ নিৰ্বাচন কৰাৰ অনুমতি দিয়ক' অসামৰ্থবান কৰা আছে।
diff --git a/static/pdf.js/locale/ast/viewer.properties b/static/pdf.js/locale/ast/viewer.properties
index 2346c54ba..4274e1801 100644
--- a/static/pdf.js/locale/ast/viewer.properties
+++ b/static/pdf.js/locale/ast/viewer.properties
@@ -1,111 +1,185 @@
-# 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/.
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Páxina anterior
+previous_label=Anterior
+next.title=Páxina siguiente
+next_label=Siguiente
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Páxina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
+
+zoom_out.title=Alloñar
+zoom_out_label=Alloña
+zoom_in.title=Averar
+zoom_in_label=Avera
+zoom.title=Zoom
+presentation_mode.title=Cambiar al mou de presentación
+presentation_mode_label=Mou de presentación
+open_file_label=Abrir
+print.title=Imprentar
+print_label=Imprentar
+
+# Secondary toolbar and context menu
+tools.title=Ferramientes
+tools_label=Ferramientes
+first_page_label=Dir a la primer páxina
+last_page_label=Dir a la última páxina
+page_rotate_cw.title=Voltia a la derecha
+page_rotate_cw_label=Voltiar a la derecha
+page_rotate_ccw.title=Voltia a la esquierda
+page_rotate_ccw_label=Voltiar a la esquierda
+
+cursor_text_select_tool.title=Activa la ferramienta d'esbilla de testu
+cursor_text_select_tool_label=Ferramienta d'esbilla de testu
+cursor_hand_tool.title=Activa la ferramienta de mano
+cursor_hand_tool_label=Ferramienta de mano
+
+scroll_vertical.title=Usa'l desplazamientu vertical
+scroll_vertical_label=Desplazamientu vertical
+scroll_horizontal.title=Usa'l desplazamientu horizontal
+scroll_horizontal_label=Desplazamientu horizontal
+scroll_wrapped.title=Usa'l desplazamientu continuu
+scroll_wrapped_label=Desplazamientu continuu
+
+spread_none_label=Fueyes individuales
+spread_odd_label=Fueyes pares
+spread_even_label=Fueyes impares
+
+# Document properties dialog box
+document_properties.title=Propiedaes del documentu…
+document_properties_label=Propiedaes del documentu…
+document_properties_file_name=Nome del ficheru:
+document_properties_file_size=Tamañu del ficheru:
+# 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)
+# 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_title=Títulu:
+document_properties_keywords=Pallabres clave:
+document_properties_creation_date=Data de creación:
+document_properties_modification_date=Data de modificación:
+# 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_producer=Productor del PDF:
+document_properties_version=Versión del PDF:
+document_properties_page_count=Númberu de páxines:
+document_properties_page_size=Tamañu de páxina:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertical
+document_properties_page_size_orientation_landscape=horizontal
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+# 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=Vista web rápida:
+document_properties_linearized_yes=Sí
+document_properties_linearized_no=Non
+document_properties_close=Zarrar
+
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Encaboxar
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Alternar la barra llateral
+attachments.title=Amosar los axuntos
+attachments_label=Axuntos
+layers_label=Capes
+thumbs.title=Amosar les miniatures
+thumbs_label=Miniatures
+findbar_label=Atopar
+
+additional_layers=Capes adicionales
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Páxina {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Páxina {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+
+# Find panel button title and messages
+find_previous_label=Anterior
+find_next_label=Siguiente
+find_entire_word_label=Pallabres completes
+find_reached_top=Algamóse'l comienzu de la páxina, síguese dende abaxo
+find_reached_bottom=Algamóse la fin del documentu, síguese dende arriba
+# 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}} de {{total}} coincidencia
+find_match_count[two]={{current}} de {{total}} coincidencies
+find_match_count[few]={{current}} de {{total}} coincidencies
+find_match_count[many]={{current}} de {{total}} coincidencies
+find_match_count[other]={{current}} de {{total}} coincidencies
+# 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[zero]=Más de {{limit}} coincidencies
+find_match_count_limit[one]=Más de {{limit}} coincidencia
+find_match_count_limit[two]=Más de {{limit}} coincidencies
+find_match_count_limit[few]=Más de {{limit}} coincidencies
+find_match_count_limit[many]=Más de {{limit}} coincidencies
+find_match_count_limit[other]=Más de {{limit}} coincidencies
+
+# Predefined zoom values
+page_scale_auto=Zoom automáticu
+page_scale_actual=Tamañu real
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+loading_error=Asocedió un fallu mentanto se cargaba'l PDF.
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+password_ok=Aceptar
+password_cancel=Encaboxar
+
+# LOCALIZATION NOTE (unsupported_feature_signatures): Should contain the same
+# exact string as in the `chrome.properties` file.
-previous.title = Páxina anterior
-previous_label = Anterior
-next.title = Páxina siguiente
-next_label = Siguiente
-page_label = Páxina:
-page_of = de {{pageCount}}
-zoom_out.title = Reducir
-zoom_out_label = Reducir
-zoom_in.title = Aumentar
-zoom_in_label = Aumentar
-zoom.title = Tamañu
-print.title = Imprentar
-print_label = Imprentar
-open_file.title = Abrir ficheru
-open_file_label = Abrir
-download.title = Descargar
-download_label = Descargar
-bookmark.title = Vista actual (copiar o abrir nuna nueva ventana)
-bookmark_label = Vista actual
-outline.title = Amosar l'esquema del documentu
-outline_label = Esquema del documentu
-thumbs.title = Amosar miniatures
-thumbs_label = Miniatures
-thumb_page_title = Páxina {{page}}
-thumb_page_canvas = Miniatura de la páxina {{page}}
-error_more_info = Más información
-error_less_info = Menos información
-error_close = Zarrar
-error_message = Mensaxe: {{message}}
-error_stack = Pila: {{stack}}
-error_file = Ficheru: {{file}}
-error_line = Llinia: {{line}}
-rendering_error = Hebo un fallu al renderizar la páxina.
-page_scale_width = Anchor de la páxina
-page_scale_fit = Axuste de la páxina
-page_scale_auto = Tamañu automáticu
-page_scale_actual = Tamañu actual
-loading_error_indicator = Fallu
-loading_error = Hebo un fallu al cargar el PDF.
-printing_not_supported = Avisu: Imprentar nun tien sofitu téunicu completu nesti navegador.
-presentation_mode_label =
-presentation_mode.title =
-page_rotate_cw.label =
-page_rotate_ccw.label =
-last_page.label = Dir a la cabera páxina
-invalid_file_error = Ficheru PDF inválidu o corruptu.
-first_page.label = Dir a la primer páxina
-findbar_label = Guetar
-findbar.title = Guetar nel documentu
-find_previous_label = Anterior
-find_previous.title = Alcontrar l'anterior apaición de la fras
-find_not_found = Frase non atopada
-find_next_label = Siguiente
-find_next.title = Alcontrar la siguiente apaición d'esta fras
-find_match_case_label = Coincidencia de mayús./minús.
-find_label = Guetar:
-find_highlight = Remarcar toos
-find_reached_top=Algamóse'l principiu del documentu, siguir dende'l final
-find_reached_bottom=Algamóse'l final del documentu, siguir dende'l principiu
-web_fonts_disabled = Les fontes web tán desactivaes: ye imposible usar les fontes PDF embebíes.
-toggle_sidebar_label = Camudar barra llateral
-toggle_sidebar.title = Camudar barra llateral
-missing_file_error = Nun hai ficheru PDF.
-error_version_info = PDF.js v{{version}} (build: {{build}})
-printing_not_ready = Avisu: Esti PDF nun se cargó completamente pa poder imprentase.
-text_annotation_type.alt = [Anotación {{type}}]
-document_colors_disabled = Los documentos PDF nun tienen permitío usar los sos propios colores: 'Permitir a les páxines elexir los sos propios colores' ta desactivao nel navegador.
-tools_label = Ferramientes
-tools.title = Ferramientes
-password_ok = Aceutar
-password_label = Introduz la contraseña p'abrir esti ficheru PDF
-password_invalid = Contraseña non válida. Vuelvi a intentalo.
-password_cancel = Encaboxar
-page_rotate_cw_label = Xirar en sen horariu
-page_rotate_cw.title = Xirar en sen horariu
-page_rotate_ccw_label = Xirar en sen antihorariu
-page_rotate_ccw.title = Xirar en sen antihorariu
-last_page_label = Dir a la postrer páxina
-last_page.title = Dir a la postrer páxina
-hand_tool_enable_label = Activar ferramienta mano
-hand_tool_enable.title = Activar ferramienta mano
-hand_tool_disable_label = Desactivar ferramienta mano
-hand_tool_disable.title = Desactivar ferramienta mano
-first_page_label = Dir a la primer páxina
-first_page.title = Dir a la primer páxina
-document_properties_version = Versión PDF:
-document_properties_title = Títulu:
-document_properties_subject = Asuntu:
-document_properties_producer = Productor PDF:
-document_properties_page_count = Númberu de páxines:
-document_properties_modification_date = Data de modificación:
-document_properties_mb = {{size_mb}} MB ({{size_b}} bytes)
-document_properties_label = Propiedaes del documentu…
-document_properties_keywords = Pallabres clave:
-document_properties_kb = {{size_kb}} KB ({{size_b}} bytes)
-document_properties_file_size = Tamañu de ficheru:
-document_properties_file_name = Nome de ficheru:
-document_properties_date_string = {{date}}, {{time}}
-document_properties_creator = Creador:
-document_properties_creation_date = Data de creación:
-document_properties_close = Zarrar
-document_properties_author = Autor:
-document_properties.title = Propiedaes del documentu…
-attachments_label = Axuntos
-attachments.title = Amosar axuntos
-unexpected_response_error = Rempuesta inesperada del sirvidor.
-page_scale_percent = {{scale}}%
diff --git a/static/pdf.js/locale/az/viewer.properties b/static/pdf.js/locale/az/viewer.properties
index 7aa41980d..ee114846b 100644
--- a/static/pdf.js/locale/az/viewer.properties
+++ b/static/pdf.js/locale/az/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Əvvəlkini tap
next.title=Növbəti səhifə
next_label=İrəli
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Səhifə:
-page_of=/ {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Səhifə
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=/ {{pagesCount}}
+# 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=Uzaqlaş
zoom_out_label=Uzaqlaş
@@ -36,31 +39,37 @@ open_file.title=Fayl Aç
open_file_label=Aç
print.title=Yazdır
print_label=Yazdır
-download.title=Yüklə
-download_label=Yüklə
-bookmark.title=Hazırkı görünüş (köçür və ya yeni pəncərədə aç)
-bookmark_label=Hazırki görünüş
# Secondary toolbar and context menu
tools.title=Alətlər
tools_label=Alətlər
first_page.title=İlk Səhifəyə get
-first_page.label=İlk Səhifəyə get
first_page_label=İlk Səhifəyə get
last_page.title=Son Səhifəyə get
-last_page.label=Son Səhifəyə get
last_page_label=Son Səhifəyə get
page_rotate_cw.title=Saat İstiqamətində Fırlat
-page_rotate_cw.label=Saat İstiqamətində Fırlat
page_rotate_cw_label=Saat İstiqamətində Fırlat
page_rotate_ccw.title=Saat İstiqamətinin Əksinə Fırlat
-page_rotate_ccw.label=Saat İstiqamətinin Əksinə Fırlat
page_rotate_ccw_label=Saat İstiqamətinin Əksinə Fırlat
-hand_tool_enable.title=Əl alətini aktiv et
-hand_tool_enable_label=Əl alətini aktiv et
-hand_tool_disable.title=Əl alətini deaktiv et
-hand_tool_disable_label=Əl alətini deaktiv et
+cursor_text_select_tool.title=Yazı seçmə alətini aktivləşdir
+cursor_text_select_tool_label=Yazı seçmə aləti
+cursor_hand_tool.title=Əl alətini aktivləşdir
+cursor_hand_tool_label=Əl aləti
+
+scroll_vertical.title=Şaquli sürüşdürmə işlət
+scroll_vertical_label=Şaquli sürüşdürmə
+scroll_horizontal.title=Üfüqi sürüşdürmə işlət
+scroll_horizontal_label=Üfüqi sürüşdürmə
+scroll_wrapped.title=Bükülü sürüşdürmə işlət
+scroll_wrapped_label=Bükülü sürüşdürmə
+
+spread_none.title=Yan-yana birləşdirilmiş səhifələri işlətmə
+spread_none_label=Birləşdirmə
+spread_odd.title=Yan-yana birləşdirilmiş səhifələri tək nömrəli səhifələrdən başlat
+spread_odd_label=Tək nömrəli
+spread_even.title=Yan-yana birləşdirilmiş səhifələri cüt nömrəli səhifələrdən başlat
+spread_even_label=Cüt nömrəli
# Document properties dialog box
document_properties.title=Sənəd xüsusiyyətləri…
@@ -86,22 +95,54 @@ document_properties_creator=Yaradan:
document_properties_producer=PDF yaradıcısı:
document_properties_version=PDF versiyası:
document_properties_page_count=Səhifə sayı:
+document_properties_page_size=Səhifə Ölçüsü:
+document_properties_page_size_unit_inches=inç
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=portret
+document_properties_page_size_orientation_landscape=albom
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Məktub
+document_properties_page_size_name_legal=Hüquqi
+# 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=Bəli
+document_properties_linearized_no=Xeyr
document_properties_close=Qapat
+print_progress_message=Sənəd çap üçün hazırlanır…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Ləğv et
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Yan Paneli Aç/Bağla
+toggle_sidebar_notification2.title=Yan paneli çevir (sənəddə icmal/bağlamalar/laylar mövcuddur)
toggle_sidebar_label=Yan Paneli Aç/Bağla
-outline.title=Sənəd struktunu göstər
-outline_label=Sənəd strukturu
+document_outline.title=Sənədin eskizini göstər (bütün bəndləri açmaq/yığmaq üçün iki dəfə klikləyin)
+document_outline_label=Sənəd strukturu
attachments.title=Bağlamaları göstər
attachments_label=Bağlamalar
+layers.title=Layları göstər (bütün layları ilkin halına sıfırlamaq üçün iki dəfə klikləyin)
+layers_label=Laylar
thumbs.title=Kiçik şəkilləri göstər
thumbs_label=Kiçik şəkillər
findbar.title=Sənəddə Tap
findbar_label=Tap
+additional_layers=Əlavə laylar
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,63 +152,71 @@ thumb_page_title=Səhifə{{page}}
thumb_page_canvas={{page}} səhifəsinin kiçik vəziyyəti
# Find panel button title and messages
-find_label=Tap:
+find_input.title=Tap
+find_input.placeholder=Sənəddə tap…
find_previous.title=Bir öncəki uyğun gələn sözü tapır
find_previous_label=Geri
find_next.title=Bir sonrakı uyğun gələn sözü tapır
find_next_label=İrəli
find_highlight=İşarələ
find_match_case_label=Böyük/kiçik hərfə həssaslıq
+find_entire_word_label=Tam sözlər
find_reached_top=Sənədin yuxarısına çatdı, aşağıdan davam edir
find_reached_bottom=Sənədin sonuna çatdı, yuxarıdan davam edir
+# 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}} uyğunluq
+find_match_count[two]={{current}} / {{total}} uyğunluq
+find_match_count[few]={{current}} / {{total}} uyğunluq
+find_match_count[many]={{current}} / {{total}} uyğunluq
+find_match_count[other]={{current}} / {{total}} uyğunluq
+# 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}}-dan çox uyğunluq
+find_match_count_limit[one]={{limit}}-dən çox uyğunluq
+find_match_count_limit[two]={{limit}}-dən çox uyğunluq
+find_match_count_limit[few]={{limit}} uyğunluqdan daha çox
+find_match_count_limit[many]={{limit}} uyğunluqdan daha çox
+find_match_count_limit[other]={{limit}} uyğunluqdan daha çox
find_not_found=Uyğunlaşma tapılmadı
-# Error panel labels
-error_more_info=Daha çox məlumati
-error_less_info=Daha az məlumat
-error_close=Qapat
-# 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}} (yığma: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=İsmarıc: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stek: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fayl: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Sətir: {{line}}
-rendering_error=Səhifə göstərilərkən səhv yarandı.
-
# Predefined zoom values
page_scale_width=Səhifə genişliyi
page_scale_fit=Səhifəni sığdır
page_scale_auto=Avtomatik yaxınlaşdır
-page_scale_actual=Hazırki Həcm
+page_scale_actual=Hazırkı Həcm
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Səhv
loading_error=PDF yüklenərkən bir səhv yarandı.
invalid_file_error=Səhv və ya zədələnmiş olmuş PDF fayl.
missing_file_error=PDF fayl yoxdur.
unexpected_response_error=Gözlənilməz server cavabı.
+rendering_error=Səhifə göstərilərkən səhv yarandı.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} Annotasiyası]
-password_label=Bu PDF faylı açmaq üçün şifrəni daxil edin.
-password_invalid=Şifrə yanlışdır. Bir daha sınayın.
+password_label=Bu PDF faylı açmaq üçün parolu daxil edin.
+password_invalid=Parol səhvdir. Bir daha yoxlayın.
password_ok=Tamam
password_cancel=Ləğv et
printing_not_supported=Xəbərdarlıq: Çap bu səyyah tərəfindən tam olaraq dəstəklənmir.
printing_not_ready=Xəbərdarlıq: PDF çap üçün tam yüklənməyib.
web_fonts_disabled=Web Şriftlər söndürülüb: yerləşdirilmiş PDF şriftlərini istifadə etmək mümkün deyil.
-document_colors_not_allowed=PDF sənədlərə öz rənglərini işlətməyə icazə verilmir: 'Səhifələrə öz rənglərini istifadə etməyə icazə vermə' səyyahda söndürülüb.
+
diff --git a/static/pdf.js/locale/be/viewer.properties b/static/pdf.js/locale/be/viewer.properties
index 031b1df5d..7981034b5 100644
--- a/static/pdf.js/locale/be/viewer.properties
+++ b/static/pdf.js/locale/be/viewer.properties
@@ -1,105 +1,270 @@
-previous.title = Папярэдняя старонка
-previous_label = Папярэдняя
-next.title = Наступная старонка
-next_label = Наступная
-page_label = Старонка:
-page_of = з {{pageCount}}
-zoom_out.title = Паменшыць
-zoom_out_label = Паменшыць
-zoom_in.title = Павялічыць
-zoom_in_label = Павялічыць
-zoom.title = Павялічэнне тэксту
-presentation_mode.title = Пераключыцца ў рэжым паказу
-presentation_mode_label = Рэжым паказу
-open_file.title = Адчыніць файл
-open_file_label = Адчыніць
-print.title = Друкаваць
-print_label = Друкаваць
-download.title = Загрузка
-download_label = Загрузка
-bookmark.title = Цяперашняя праява (скапіяваць або адчыніць у новым акне)
-bookmark_label = Цяперашняя праява
-tools.title = Прылады
-tools_label = Прылады
-first_page.title = Перайсці на першую старонку
-first_page.label = Перайсці на першую старонку
-first_page_label = Перайсці на першую старонку
-last_page.title = Перайсці на апошнюю старонку
-last_page.label = Перайсці на апошнюю старонку
-last_page_label = Перайсці на апошнюю старонку
-page_rotate_cw.title = Павярнуць па гадзіннікавай стрэлцы
-page_rotate_cw.label = Павярнуць па гадзіннікавай стрэлцы
-page_rotate_cw_label = Павярнуць па гадзіннікавай стрэлцы
-page_rotate_ccw.title = Павярнуць супраць гадзіннікавай стрэлкі
-page_rotate_ccw.label = Павярнуць супраць гадзіннікавай стрэлкі
-page_rotate_ccw_label = Павярнуць супраць гадзіннікавай стрэлкі
-hand_tool_enable.title = Дазволіць ручную прыладу
-hand_tool_enable_label = Дазволіць ручную прыладу
-hand_tool_disable.title = Забараніць ручную прыладу
-hand_tool_disable_label = Забараніць ручную прыладу
-document_properties.title = Уласцівасці дакумента…
-document_properties_label = Уласцівасці дакумента…
-document_properties_file_name = Назва файла:
-document_properties_file_size = Памер файла:
-document_properties_kb = {{size_kb}} КБ ({{size_b}} байт)
-document_properties_mb = {{size_mb}} МБ ({{size_b}} байт)
-document_properties_title = Загаловак:
-document_properties_author = Аўтар:
-document_properties_subject = Тэма:
-document_properties_keywords = Ключавыя словы:
-document_properties_creation_date = Дата стварэння:
-document_properties_modification_date = Дата змянення:
-document_properties_date_string = {{date}}, {{time}}
-document_properties_creator = Стваральнік:
-document_properties_producer = Вырабнік PDF:
-document_properties_version = Версія PDF:
-document_properties_page_count = Колькасць старонак:
-document_properties_close = Зачыніць
-toggle_sidebar.title = Пераключэнне палічкі
-toggle_sidebar_label = Пераключыць палічку
-outline.title = Паказ будовы дакумента
-outline_label = Будова дакумента
-attachments.title = Паказаць далучэнні
-attachments_label = Далучэнні
-thumbs.title = Паказ накідаў
-thumbs_label = Накіды
-findbar.title = Пошук у дакуменце
-findbar_label = Знайсці
-thumb_page_title = Старонка {{page}}
-thumb_page_canvas = Накід старонкі {{page}}
-find_label = Пошук:
-find_previous.title = Знайсці папярэдні выпадак выразу
-find_previous_label = Папярэдні
-find_next.title = Знайсці наступны выпадак выразу
-find_next_label = Наступны
-find_highlight = Падфарбаваць усе
-find_match_case_label = Адрозніваць вялікія/малыя літары
-find_reached_top = Дасягнуты пачатак дакумента, працяг з канца
-find_reached_bottom = Дасягнуты канец дакумента, працяг з пачатку
-find_not_found = Выраз не знойдзены
-error_more_info = Падрабязней
-error_less_info = Сцісла
-error_close = Закрыць
-error_version_info = PDF.js в{{version}} (пабудова: {{build}})
-error_message = Паведамленне: {{message}}
-error_stack = Стос: {{stack}}
-error_file = Файл: {{file}}
-error_line = Радок: {{line}}
-rendering_error = Здарылася памылка падчас адлюстравання старонкі.
-page_scale_width = Шырыня старонкі
-page_scale_fit = Уцісненне старонкі
-page_scale_auto = Самастойнае павялічэнне
-page_scale_actual = Сапраўдны памер
-loading_error_indicator = Памылка
-loading_error = Здарылася памылка падчас загрузкі PDF.
-invalid_file_error = Няспраўны або пашкоджаны файл PDF.
-missing_file_error = Адсутны файл PDF.
-text_annotation_type.alt = [{{type}} Annotation]
-password_label = Увядзіце пароль, каб адчыніць гэты файл PDF.
-password_invalid = Крывы пароль. Паспрабуйце зноў.
-password_ok = Добра
-password_cancel = Скасаваць
-printing_not_supported = Папярэджанне: друк не падтрымлівацца цалкам гэтым азіральнікам.
-printing_not_ready = Увага: PDF не сцягнуты цалкам для друкавання.
-web_fonts_disabled = Шрыфты Сеціва забаронены: немгчыма ўжываць укладзеныя шрыфты PDF.
-document_colors_disabled = Дакументам PDF не дазволена карыстацца сваімі ўласнымі колерамі: 'Дазволіць старонкам выбіраць свае ўласныя колеры' абяздзейнена ў азіральніку.
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Папярэдняя старонка
+previous_label=Папярэдняя
+next.title=Наступная старонка
+next_label=Наступная
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Старонка
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=з {{pagesCount}}
+# 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_label=Паменшыць
+zoom_in.title=Павялічыць
+zoom_in_label=Павялічыць
+zoom.title=Павялічэнне тэксту
+presentation_mode.title=Пераключыцца ў рэжым паказу
+presentation_mode_label=Рэжым паказу
+open_file.title=Адкрыць файл
+open_file_label=Адкрыць
+print.title=Друкаваць
+print_label=Друкаваць
+save.title=Захаваць
+save_label=Захаваць
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
+tools.title=Прылады
+tools_label=Прылады
+first_page.title=Перайсці на першую старонку
+first_page_label=Перайсці на першую старонку
+last_page.title=Перайсці на апошнюю старонку
+last_page_label=Перайсці на апошнюю старонку
+page_rotate_cw.title=Павярнуць па сонцу
+page_rotate_cw_label=Павярнуць па сонцу
+page_rotate_ccw.title=Павярнуць супраць сонца
+page_rotate_ccw_label=Павярнуць супраць сонца
+
+cursor_text_select_tool.title=Уключыць прыладу выбару тэксту
+cursor_text_select_tool_label=Прылада выбару тэксту
+cursor_hand_tool.title=Уключыць ручную прыладу
+cursor_hand_tool_label=Ручная прылада
+
+scroll_page.title=Выкарыстоўваць пракрутку старонкi
+scroll_page_label=Пракрутка старонкi
+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.title=Уласцівасці дакумента…
+document_properties_label=Уласцівасці дакумента…
+document_properties_file_name=Назва файла:
+document_properties_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}} КБ ({{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}} МБ ({{size_b}} байт)
+document_properties_title=Загаловак:
+document_properties_author=Аўтар:
+document_properties_subject=Тэма:
+document_properties_keywords=Ключавыя словы:
+document_properties_creation_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_creator=Стваральнік:
+document_properties_producer=Вырабнік PDF:
+document_properties_version=Версія PDF:
+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=Закрыць
+
+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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Паказаць/схаваць бакавую панэль
+toggle_sidebar_notification2.title=Паказаць/схаваць бакавую панэль (дакумент мае змест/укладанні/пласты)
+toggle_sidebar_label=Паказаць/схаваць бакавую панэль
+document_outline.title=Паказаць структуру дакумента (двайная пстрычка, каб разгарнуць /згарнуць усе элементы)
+document_outline_label=Структура дакумента
+attachments.title=Паказаць далучэнні
+attachments_label=Далучэнні
+layers.title=Паказаць пласты (націсніце двойчы, каб скінуць усе пласты да прадвызначанага стану)
+layers_label=Пласты
+thumbs.title=Паказ мініяцюр
+thumbs_label=Мініяцюры
+current_outline_item.title=Знайсці бягучы элемент структуры
+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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Старонка {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Мініяцюра старонкі {{page}}
+
+# Find panel button title and messages
+find_input.title=Шукаць
+find_input.placeholder=Шукаць у дакуменце…
+find_previous.title=Знайсці папярэдні выпадак выразу
+find_previous_label=Папярэдні
+find_next.title=Знайсці наступны выпадак выразу
+find_next_label=Наступны
+find_highlight=Падфарбаваць усе
+find_match_case_label=Адрозніваць вялікія/малыя літары
+find_match_diacritics_label=З улікам дыякрытык
+find_entire_word_label=Словы цалкам
+find_reached_top=Дасягнуты пачатак дакумента, працяг з канца
+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=Выраз не знойдзены
+
+# Predefined zoom values
+page_scale_width=Шырыня старонкі
+page_scale_fit=Уцісненне старонкі
+page_scale_auto=Аўтаматычнае павелічэнне
+page_scale_actual=Сапраўдны памер
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Здарылася памылка ў часе загрузкі PDF.
+invalid_file_error=Няспраўны або пашкоджаны файл PDF.
+missing_file_error=Адсутны файл PDF.
+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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Annotation]
+password_label=Увядзіце пароль, каб адкрыць гэты файл PDF.
+password_invalid=Нядзейсны пароль. Паспрабуйце зноў.
+password_ok=Добра
+password_cancel=Скасаваць
+
+printing_not_supported=Папярэджанне: друк не падтрымліваецца цалкам гэтым браўзерам.
+printing_not_ready=Увага: PDF не сцягнуты цалкам для друкавання.
+web_fonts_disabled=Шрыфты Сеціва забаронены: немагчыма ўжываць укладзеныя шрыфты PDF.
+
+# 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=Выява, створаная карыстальнікам
diff --git a/static/pdf.js/locale/bg/viewer.properties b/static/pdf.js/locale/bg/viewer.properties
index 576cb5678..1dde358e3 100644
--- a/static/pdf.js/locale/bg/viewer.properties
+++ b/static/pdf.js/locale/bg/viewer.properties
@@ -18,17 +18,20 @@ previous_label=Предишна
next.title=Следваща страница
next_label=Следваща
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Страница:
-page_of=от {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Страница
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=от {{pagesCount}}
+# 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_label=Отдалечаване
-zoom_in.title=Приближаване
-zoom_in_label=Приближаване
+zoom_out.title=Намаляване
+zoom_out_label=Намаляване
+zoom_in.title=Увеличаване
+zoom_in_label=Увеличаване
zoom.title=Мащабиране
presentation_mode.title=Превключване към режим на представяне
presentation_mode_label=Режим на представяне
@@ -36,31 +39,37 @@ open_file.title=Отваряне на файл
open_file_label=Отваряне
print.title=Отпечатване
print_label=Отпечатване
-download.title=Изтегляне
-download_label=Изтегляне
-bookmark.title=Текущ изглед (копиране или отваряне в нов прозорец)
-bookmark_label=Текущ изглед
# Secondary toolbar and context menu
tools.title=Инструменти
tools_label=Инструменти
first_page.title=Към първата страница
-first_page.label=Към първата страница
first_page_label=Към първата страница
last_page.title=Към последната страница
-last_page.label=Към последната страница
last_page_label=Към последната страница
-page_rotate_cw.title=Превъртане по часовниковата стрелка
-page_rotate_cw.label=Превъртане по часовниковата стрелка
-page_rotate_cw_label=Превъртане по часовниковата стрелка
-page_rotate_ccw.title=Превъртане обратно на часовниковата стрелка
-page_rotate_ccw.label=Превъртане обратно на часовниковата стрелка
-page_rotate_ccw_label=Превъртане обратно на часовниковата стрелка
+page_rotate_cw.title=Завъртане по час. стрелка
+page_rotate_cw_label=Завъртане по часовниковата стрелка
+page_rotate_ccw.title=Завъртане обратно на час. стрелка
+page_rotate_ccw_label=Завъртане обратно на часовниковата стрелка
-hand_tool_enable.title=Включване на инструмента ръка
-hand_tool_enable_label=Включване на инструмента ръка
-hand_tool_disable.title=Изключване на инструмента ръка
-hand_tool_disable_label=Изключване на инструмента ръка
+cursor_text_select_tool.title=Включване на инструмента за избор на текст
+cursor_text_select_tool_label=Инструмент за избор на текст
+cursor_hand_tool.title=Включване на инструмента ръка
+cursor_hand_tool_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.title=Свойства на документа…
@@ -84,17 +93,45 @@ document_properties_modification_date=Дата на промяна:
document_properties_date_string={{date}}, {{time}}
document_properties_creator=Създател:
document_properties_producer=PDF произведен от:
-document_properties_version=PDF версия:
+document_properties_version=Издание на PDF:
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=Правни въпроси
+# 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=Затваряне
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Превключване на страничната лента
toggle_sidebar_label=Превключване на страничната лента
-outline.title=Показване на очертанията на документа
-outline_label=Очертание на документа
+document_outline.title=Показване на структурата на документа (двукратно щракване за свиване/разгъване на всичко)
+document_outline_label=Структура на документа
attachments.title=Показване на притурките
attachments_label=Притурки
thumbs.title=Показване на миниатюрите
@@ -111,36 +148,40 @@ thumb_page_title=Страница {{page}}
thumb_page_canvas=Миниатюра на страница {{page}}
# Find panel button title and messages
-find_label=Търсене:
-find_previous.title=Намиране на предното споменаване на тази фраза
+find_input.title=Търсене
+find_input.placeholder=Търсене в документа…
+find_previous.title=Намиране на предишно съвпадение на фразата
find_previous_label=Предишна
-find_next.title=Намиране на следващото споменаване на тази фраза
+find_next.title=Намиране на следващо съвпадение на фразата
find_next_label=Следваща
-find_highlight=Маркирай всички
-find_match_case_label=Точно съвпадения
+find_highlight=Открояване на всички
+find_match_case_label=Съвпадение на регистъра
+find_entire_word_label=Цели думи
find_reached_top=Достигнато е началото на документа, продължаване от края
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=Фразата не е намерена
-# 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: {{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
page_scale_width=Ширина на страницата
page_scale_fit=Вместване в страницата
@@ -150,13 +191,13 @@ page_scale_actual=Действителен размер
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Грешка
loading_error=Получи се грешка при зареждане на PDF-а.
invalid_file_error=Невалиден или повреден PDF файл.
missing_file_error=Липсващ PDF файл.
unexpected_response_error=Неочакван отговор от сървъра.
+rendering_error=Грешка при изчертаване на страницата.
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -167,7 +208,7 @@ password_invalid=Невалидна парола. Моля, опитайте о
password_ok=Добре
password_cancel=Отказ
-printing_not_supported=Внимание: Този браузър няма пълна поддръжка на отпечатване.
+printing_not_supported=Внимание: Този четец няма пълна поддръжка на отпечатване.
printing_not_ready=Внимание: Този PDF файл не е напълно зареден за печат.
web_fonts_disabled=Уеб-шрифтовете са забранени: разрешаване на използването на вградените PDF шрифтове.
-document_colors_not_allowed=На PDF-документите не е разрешено да използват собствени цветове: „Разрешаване на страниците да избират собствени цветове“ е изключено в браузъра.
+
diff --git a/static/pdf.js/locale/bn-IN/viewer.properties b/static/pdf.js/locale/bn-IN/viewer.properties
deleted file mode 100644
index 9aef9ffa2..000000000
--- a/static/pdf.js/locale/bn-IN/viewer.properties
+++ /dev/null
@@ -1,173 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=পূর্ববর্তী পৃষ্ঠা
-previous_label=পূর্ববর্তী
-next.title=পরবর্তী পৃষ্ঠা
-next_label=পরবর্তী
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=পৃষ্ঠা:
-page_of=সর্বমোট {{pageCount}}
-
-zoom_out.title=ছোট মাপে প্রদর্শন
-zoom_out_label=ছোট মাপে প্রদর্শন
-zoom_in.title=বড় মাপে প্রদর্শন
-zoom_in_label=বড় মাপে প্রদর্শন
-zoom.title=প্রদর্শনের মাপ
-presentation_mode.title=উপস্থাপনা মোড স্যুইচ করুন
-presentation_mode_label=উপস্থাপনা মোড
-open_file.title=ফাইল খুলুন
-open_file_label=খুলুন
-print.title=প্রিন্ট করুন
-print_label=প্রিন্ট করুন
-download.title=ডাউনলোড করুন
-download_label=ডাউনলোড করুন
-bookmark.title=বর্তমান প্রদর্শন (কপি করুন অথবা নতুন উইন্ডোতে খুলুন)
-bookmark_label=বর্তমান প্রদর্শন
-
-# Secondary toolbar and context menu
-tools.title=সরঞ্জাম
-tools_label=সরঞ্জাম
-first_page.title=প্রথম পৃষ্ঠায় চলুন
-first_page.label=প্রথম পৃষ্ঠায় চলুন
-first_page_label=প্রথম পৃষ্ঠায় চলুন
-last_page.title=সর্বশেষ পৃষ্ঠায় চলুন
-last_page.label=সর্বশেষ পৃষ্ঠায় চলুন
-last_page_label=সর্বশেষ পৃষ্ঠায় চলুন
-page_rotate_cw.title=ডানদিকে ঘোরানো হবে
-page_rotate_cw.label=ডানদিকে ঘোরানো হবে
-page_rotate_cw_label=ডানদিকে ঘোরানো হবে
-page_rotate_ccw.title=বাঁদিকে ঘোরানো হবে
-page_rotate_ccw.label=বাঁদিকে ঘোরানো হবে
-page_rotate_ccw_label=বাঁদিকে ঘোরানো হবে
-
-hand_tool_enable.title=হ্যান্ড টুল সক্রিয় করুন
-hand_tool_enable_label=হ্যান্ড টুল সক্রিয় করুন
-hand_tool_disable.title=হ্যান্ড টুল নিস্ক্রিয় করুন
-hand_tool_disable_label=হ্যান্ড টুল নিস্ক্রিয় করুন
-
-# Document properties dialog box
-document_properties.title=নথির বৈশিষ্ট্য…
-document_properties_label=নথির বৈশিষ্ট্য…
-document_properties_file_name=ফাইলের নাম:
-document_properties_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)
-# 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}} মেগাবাইট ({{size_b}} bytes)
-document_properties_title=শিরোনাম:
-document_properties_author=লেখক:
-document_properties_subject=বিষয়:
-document_properties_keywords=নির্দেশক শব্দ:
-document_properties_creation_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_creator=নির্মাতা:
-document_properties_producer=PDF নির্মাতা:
-document_properties_version=PDF সংস্করণ:
-document_properties_page_count=মোট পৃষ্ঠা:
-document_properties_close=বন্ধ করুন
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=সাইডবার টগল করুন
-toggle_sidebar_label=সাইডবার টগল করুন
-outline.title=নথির রূপরেখা প্রদর্শন
-outline_label=নথির রূপরেখা প্রদর্শন
-attachments.title=সংযুক্তিসমূহ দেখান
-attachments_label=সংযুক্ত বস্তু
-thumbs.title=থাম্ব-নেইল প্রদর্শন
-thumbs_label=থাম্ব-নেইল প্রদর্শন
-findbar.title=নথিতে খুঁজুন
-findbar_label=অনুসন্ধান করুন
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=পৃষ্ঠা {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=পৃষ্ঠা {{page}}-র থাম্ব-নেইল
-
-# Find panel button title and messages
-find_label=অনুসন্ধান:
-find_previous.title=চিহ্নিত পংক্তির পূর্ববর্তী উপস্থিতি অনুসন্ধান করুন
-find_previous_label=পূর্ববর্তী
-find_next.title=চিহ্নিত পংক্তির পরবর্তী উপস্থিতি অনুসন্ধান করুন
-find_next_label=পরবর্তী
-find_highlight=সমগ্র উজ্জ্বল করুন
-find_match_case_label=হরফের ছাঁদ মেলানো হবে
-find_reached_top=পৃষ্ঠার প্রারম্ভে পৌছে গেছে, নীচের অংশ থেকে আরম্ভ করা হবে
-find_reached_bottom=পৃষ্ঠার অন্তিম প্রান্তে পৌছে গেছে, প্রথম অংশ থেকে আরম্ভ করা হবে
-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: {{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=পৃষ্ঠা প্রদর্শনকালে একটি সমস্যা দেখা দিয়েছে।
-
-# Predefined zoom values
-page_scale_width=পৃষ্ঠার প্রস্থ অনুযায়ী
-page_scale_fit=পৃষ্ঠার মাপ অনুযায়ী
-page_scale_auto=স্বয়ংক্রিয় মাপ নির্ধারণ
-page_scale_actual=প্রকৃত মাপ
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-page_scale_percent={{scale}}%
-
-# Loading indicator messages
-loading_error_indicator=ত্রুটি
-loading_error=PDF লোড করার সময় সমস্যা দেখা দিয়েছে।
-invalid_file_error=অবৈধ বা ক্ষতিগ্রস্ত পিডিএফ ফাইল।
-missing_file_error=অনুপস্থিত PDF ফাইল
-unexpected_response_error=সার্ভার থেকে অপ্রত্যাশিত সাড়া পাওয়া গেছে।
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Annotation]
-password_label=এই PDF ফাইল খোলার জন্য পাসওয়ার্ড দিন।
-password_invalid=পাসওয়ার্ড সঠিক নয়। অনুগ্রহ করে পুনরায় প্রচেষ্টা করুন।
-password_ok=OK
-password_cancel=বাতিল করুন
-
-printing_not_supported=সতর্কবার্তা: এই ব্রাউজার দ্বারা প্রিন্ট ব্যবস্থা সম্পূর্ণরূপে সমর্থিত নয়।
-printing_not_ready=সতর্কবাণী: পিডিএফ সম্পূর্ণরূপে মুদ্রণের জন্য লোড করা হয় না.
-web_fonts_disabled=ওয়েব ফন্ট নিষ্ক্রিয় করা হয়েছে: এমবেডেড পিডিএফ ফন্ট ব্যবহার করতে অক্ষম.
-document_colors_not_allowed=পিডিএফ নথি তাদের নিজস্ব রং ব্যবহার করার জন্য অনুমতিপ্রাপ্ত নয়: ব্রাউজারে নিষ্ক্রিয় করা হয়েছে য়েন 'পেজ তাদের নিজস্ব রং নির্বাচন করার অনুমতি প্রদান করা য়ায়।'
diff --git a/static/pdf.js/locale/bn-BD/viewer.properties b/static/pdf.js/locale/bn/viewer.properties
similarity index 51%
rename from static/pdf.js/locale/bn-BD/viewer.properties
rename to static/pdf.js/locale/bn/viewer.properties
index b5e3048bd..d842f4dcc 100644
--- a/static/pdf.js/locale/bn-BD/viewer.properties
+++ b/static/pdf.js/locale/bn/viewer.properties
@@ -13,17 +13,20 @@
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
-previous.title=পূর্ববর্তী পৃষ্ঠা
+previous.title=পূর্ববর্তী পাতা
previous_label=পূর্ববর্তী
-next.title=পরবর্তী পৃষ্ঠা
+next.title=পরবর্তী পাতা
next_label=পরবর্তী
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=পৃষ্ঠা:
-page_of={{pageCount}} এর
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=পাতা
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} এর
+# 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=({{pagesCount}} এর {{pageNumber}})
zoom_out.title=ছোট আকারে প্রদর্শন
zoom_out_label=ছোট আকারে প্রদর্শন
@@ -36,31 +39,35 @@ open_file.title=ফাইল খুলুন
open_file_label=খুলুন
print.title=মুদ্রণ
print_label=মুদ্রণ
-download.title=ডাউনলোড
-download_label=ডাউনলোড
-bookmark.title=বর্তমান অবস্থা (অনুলিপি অথবা নতুন উইন্ডো তে খুলুন)
-bookmark_label=বর্তমান অবস্থা
# Secondary toolbar and context menu
tools.title=টুল
tools_label=টুল
first_page.title=প্রথম পাতায় যাও
-first_page.label=প্রথম পাতায় যাও
first_page_label=প্রথম পাতায় যাও
last_page.title=শেষ পাতায় যাও
-last_page.label=শেষ পাতায় যাও
last_page_label=শেষ পাতায় যাও
page_rotate_cw.title=ঘড়ির কাঁটার দিকে ঘোরাও
-page_rotate_cw.label=ঘড়ির কাঁটার দিকে ঘোরাও
page_rotate_cw_label=ঘড়ির কাঁটার দিকে ঘোরাও
page_rotate_ccw.title=ঘড়ির কাঁটার বিপরীতে ঘোরাও
-page_rotate_ccw.label=ঘড়ির কাঁটার বিপরীতে ঘোরাও
page_rotate_ccw_label=ঘড়ির কাঁটার বিপরীতে ঘোরাও
-hand_tool_enable.title=হ্যান্ড টুল সক্রিয় করুন
-hand_tool_enable_label=হ্যান্ড টুল সক্রিয় করুন
-hand_tool_disable.title=হ্যান্ড টুল নিস্ক্রিয় করুন
-hand_tool_disable_label=হ্যান্ড টুল নিস্ক্রিয় করুন
+cursor_text_select_tool.title=লেখা নির্বাচক টুল সক্রিয় করুন
+cursor_text_select_tool_label=লেখা নির্বাচক টুল
+cursor_hand_tool.title=হ্যান্ড টুল সক্রিয় করুন
+cursor_hand_tool_label=হ্যান্ড টুল
+
+scroll_vertical.title=উলম্ব স্ক্রলিং ব্যবহার করুন
+scroll_vertical_label=উলম্ব স্ক্রলিং
+scroll_horizontal.title=অনুভূমিক স্ক্রলিং ব্যবহার করুন
+scroll_horizontal_label=অনুভূমিক স্ক্রলিং
+scroll_wrapped.title=Wrapped স্ক্রোলিং ব্যবহার করুন
+scroll_wrapped_label=Wrapped স্ক্রোলিং
+
+spread_none.title=পেজ স্প্রেডগুলোতে যোগদান করবেন না
+spread_none_label=Spreads নেই
+spread_odd_label=বিজোড় Spreads
+spread_even_label=জোড় Spreads
# Document properties dialog box
document_properties.title=নথি বৈশিষ্ট্য…
@@ -86,64 +93,97 @@ document_properties_creator=প্রস্তুতকারক:
document_properties_producer=পিডিএফ প্রস্তুতকারক:
document_properties_version=পিডিএফ সংষ্করণ:
document_properties_page_count=মোট পাতা:
+document_properties_page_size=পাতার সাইজ:
+document_properties_page_size_unit_inches=এর মধ্যে
+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=Fast Web View:
+document_properties_linearized_yes=হ্যাঁ
+document_properties_linearized_no=না
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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=সাইডবার টগল করুন
toggle_sidebar_label=সাইডবার টগল করুন
-outline.title=নথির রূপরেখা প্রদর্শন করুন
-outline_label=নথির রূপরেখা
+document_outline.title=নথির আউটলাইন দেখাও (সব আইটেম প্রসারিত/সঙ্কুচিত করতে ডবল ক্লিক করুন)
+document_outline_label=নথির রূপরেখা
attachments.title=সংযুক্তি দেখাও
attachments_label=সংযুক্তি
-thumbs.title=থাম্বনেইল সমূহ প্রদর্শন করুন
+thumbs.title=থাম্বনেইল সমূহ প্রদর্শন করুন
thumbs_label=থাম্বনেইল সমূহ
findbar.title=নথির মধ্যে খুঁজুন
-findbar_label=অনুসন্ধান
+findbar_label=খুঁজুন
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
-thumb_page_title=পৃষ্ঠা {{page}}
+thumb_page_title=পাতা {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
-thumb_page_canvas={{page}} পৃষ্ঠার থাম্বনেইল
+thumb_page_canvas={{page}} পাতার থাম্বনেইল
# Find panel button title and messages
-find_label=অনুসন্ধান:
+find_input.title=খুঁজুন
+find_input.placeholder=নথির মধ্যে খুঁজুন…
find_previous.title=বাক্যাংশের পূর্ববর্তী উপস্থিতি অনুসন্ধান
find_previous_label=পূর্ববর্তী
find_next.title=বাক্যাংশের পরবর্তী উপস্থিতি অনুসন্ধান
find_next_label=পরবর্তী
-find_highlight=সব হাইলাইট করা হবে
+find_highlight=সব হাইলাইট করুন
find_match_case_label=অক্ষরের ছাঁদ মেলানো
-find_reached_top=পৃষ্ঠার শুরুতে পৌছে গেছে, নীচ থেকে আরম্ভ করা হয়েছে
-find_reached_bottom=পৃষ্ঠার শেষে পৌছে গেছে, উপর থেকে আরম্ভ করা হয়েছে
+find_entire_word_label=সম্পূর্ণ শব্দ
+find_reached_top=পাতার শুরুতে পৌছে গেছে, নীচ থেকে আরম্ভ করা হয়েছে
+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]={{total}} এর {{current}} মিল
+find_match_count[two]={{total}} এর {{current}} মিল
+find_match_count[few]={{total}} এর {{current}} মিল
+find_match_count[many]={{total}} এর {{current}} মিল
+find_match_count[other]={{total}} এর {{current}} মিল
+# 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=বাক্যাংশ পাওয়া যায়নি
-# 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: {{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
-page_scale_width=পৃষ্ঠার প্রস্থ
-page_scale_fit=পৃষ্ঠা ফিট করুন
+page_scale_width=পাতার প্রস্থ
+page_scale_fit=পাতা ফিট করুন
page_scale_auto=স্বয়ংক্রিয় জুম
page_scale_actual=প্রকৃত আকার
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
@@ -151,12 +191,17 @@ page_scale_actual=প্রকৃত আকার
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=ত্রুটি
loading_error=পিডিএফ লোড করার সময় ত্রুটি দেখা দিয়েছে।
invalid_file_error=অকার্যকর অথবা ক্ষতিগ্রস্ত পিডিএফ ফাইল।
-missing_file_error=পিডিএফ ফাইল পাওয়া যাচ্ছে না।
+missing_file_error=নিখোঁজ PDF ফাইল।
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +215,4 @@ password_cancel=বাতিল
printing_not_supported=সতর্কতা: এই ব্রাউজারে মুদ্রণ সম্পূর্ণভাবে সমর্থিত নয়।
printing_not_ready=সতর্কীকরণ: পিডিএফটি মুদ্রণের জন্য সম্পূর্ণ লোড হয়নি।
web_fonts_disabled=ওয়েব ফন্ট নিষ্ক্রিয়: সংযুক্ত পিডিএফ ফন্ট ব্যবহার করা যাচ্ছে না।
-document_colors_not_allowed=পিডিএফ ডকুমেন্টকে তাদের নিজস্ব রঙ ব্যবহারে অনুমতি নেই: 'পাতা তাদের নিজেস্ব রঙ নির্বাচন করতে অনুমতি দিন' এই ব্রাউজারে নিষ্ক্রিয় রয়েছে।
+
diff --git a/static/pdf.js/locale/en-ZA/viewer.properties b/static/pdf.js/locale/bo/viewer.properties
similarity index 51%
rename from static/pdf.js/locale/en-ZA/viewer.properties
rename to static/pdf.js/locale/bo/viewer.properties
index edb9fd0e7..dbfb2d137 100644
--- a/static/pdf.js/locale/en-ZA/viewer.properties
+++ b/static/pdf.js/locale/bo/viewer.properties
@@ -13,17 +13,20 @@
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Previous Page
-previous_label=Previous
-next.title=Next Page
-next_label=Next
+previous.title=དྲ་ངོས་སྔོན་མ
+previous_label=སྔོན་མ
+next.title=དྲ་ངོས་རྗེས་མ
+next_label=རྗེས་མ
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Page:
-page_of=of {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=ཤོག་ངོས
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=of {{pagesCount}}
+# 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_label=Zoom Out
@@ -36,31 +39,37 @@ open_file.title=Open File
open_file_label=Open
print.title=Print
print_label=Print
-download.title=Download
-download_label=Download
-bookmark.title=Current view (copy or open in new window)
-bookmark_label=Current View
# Secondary toolbar and context menu
tools.title=Tools
tools_label=Tools
first_page.title=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.label=Go to Last Page
last_page_label=Go to Last Page
page_rotate_cw.title=Rotate Clockwise
-page_rotate_cw.label=Rotate Clockwise
page_rotate_cw_label=Rotate Clockwise
page_rotate_ccw.title=Rotate Counterclockwise
-page_rotate_ccw.label=Rotate Counterclockwise
page_rotate_ccw_label=Rotate Counterclockwise
-hand_tool_enable.title=Enable hand tool
-hand_tool_enable_label=Enable hand tool
-hand_tool_disable.title=Disable hand tool
-hand_tool_disable_label=Disable hand tool
+cursor_text_select_tool.title=Enable Text Selection Tool
+cursor_text_select_tool_label=Text Selection Tool
+cursor_hand_tool.title=Enable Hand Tool
+cursor_hand_tool_label=Hand Tool
+
+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.title=Document Properties…
@@ -86,15 +95,43 @@ document_properties_creator=Creator:
document_properties_producer=PDF Producer:
document_properties_version=PDF Version:
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
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Toggle Sidebar
toggle_sidebar_label=Toggle Sidebar
-outline.title=Show Document Outline
-outline_label=Document Outline
+document_outline.title=Show Document Outline (double-click to expand/collapse all items)
+document_outline_label=Document Outline
attachments.title=Show Attachments
attachments_label=Attachments
thumbs.title=Show Thumbnails
@@ -111,36 +148,40 @@ thumb_page_title=Page {{page}}
thumb_page_canvas=Thumbnail of Page {{page}}
# 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_label=Previous
find_next.title=Find the next occurrence of the phrase
find_next_label=Next
find_highlight=Highlight all
find_match_case_label=Match case
+find_entire_word_label=Whole words
find_reached_top=Reached top of document, continued from bottom
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
-# 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
page_scale_width=Page Width
page_scale_fit=Page Fit
@@ -150,13 +191,16 @@ page_scale_actual=Actual Size
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Error
loading_error=An error occurred while loading the PDF.
invalid_file_error=Invalid or corrupted PDF file.
missing_file_error=Missing PDF file.
unexpected_response_error=Unexpected server response.
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+
+rendering_error=An error occurred while rendering the page.
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +214,4 @@ password_cancel=Cancel
printing_not_supported=Warning: Printing is not fully supported by this browser.
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.
-document_colors_not_allowed=PDF documents are not allowed to use their own colours: 'Allow pages to choose their own colours' is deactivated in the browser.
+
diff --git a/static/pdf.js/locale/br/viewer.properties b/static/pdf.js/locale/br/viewer.properties
index f9672277c..5c5da0faf 100644
--- a/static/pdf.js/locale/br/viewer.properties
+++ b/static/pdf.js/locale/br/viewer.properties
@@ -18,12 +18,15 @@ previous_label=A-raok
next.title=Pajenn war-lerc'h
next_label=War-lerc'h
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Pajenn :
-page_of=eus {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pajenn
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=eus {{pagesCount}}
+# 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}} war {{pagesCount}})
zoom_out.title=Zoum bihanaat
zoom_out_label=Zoum bihanaat
@@ -36,72 +39,112 @@ open_file.title=Digeriñ ur restr
open_file_label=Digeriñ ur restr
print.title=Moullañ
print_label=Moullañ
-download.title=Pellgargañ
-download_label=Pellgargañ
-bookmark.title=Gwel bremanel (eilañ pe zigeriñ e-barzh ur prenestr nevez)
-bookmark_label=Gwel bremanel
# Secondary toolbar and context menu
tools.title=Ostilhoù
tools_label=Ostilhoù
first_page.title=Mont d'ar bajenn gentañ
-first_page.label=Mont d'ar bajenn gentañ
first_page_label=Mont d'ar bajenn gentañ
last_page.title=Mont d'ar bajenn diwezhañ
-last_page.label=Mont d'ar bajenn diwezhañ
last_page_label=Mont d'ar bajenn diwezhañ
page_rotate_cw.title=C'hwelañ gant roud ar bizied
-page_rotate_cw.label=C'hwelañ gant roud ar bizied
page_rotate_cw_label=C'hwelañ gant roud ar bizied
page_rotate_ccw.title=C'hwelañ gant roud gin ar bizied
-page_rotate_ccw.label=C'hwelañ gant roud gin ar bizied
page_rotate_ccw_label=C'hwelañ gant roud gin ar bizied
-hand_tool_enable.title=Gweredekaat an ostilh "dorn"
-hand_tool_enable_label=Gweredekaat an ostilh "dorn"
-hand_tool_disable.title=Diweredekaat an ostilh "dorn"
-hand_tool_disable_label=Diweredekaat an ostilh "dorn"
+cursor_text_select_tool.title=Gweredekaat an ostilh diuzañ testenn
+cursor_text_select_tool_label=Ostilh diuzañ testenn
+cursor_hand_tool.title=Gweredekaat an ostilh dorn
+cursor_hand_tool_label=Ostilh dorn
+
+scroll_vertical.title=Arverañ an dibunañ a-blom
+scroll_vertical_label=Dibunañ a-serzh
+scroll_horizontal.title=Arverañ an dibunañ a-blaen
+scroll_horizontal_label=Dibunañ a-blaen
+scroll_wrapped.title=Arverañ an dibunañ paket
+scroll_wrapped_label=Dibunañ paket
+
+spread_none.title=Chom hep stagañ ar skignadurioù
+spread_none_label=Skignadenn ebet
+spread_odd.title=Lakaat ar pajennadoù en ur gregiñ gant ar pajennoù ampar
+spread_odd_label=Pajennoù ampar
+spread_even.title=Lakaat ar pajennadoù en ur gregiñ gant ar pajennoù par
+spread_even_label=Pajennoù par
# Document properties dialog box
document_properties.title=Perzhioù an teul…
document_properties_label=Perzhioù an teul…
-document_properties_file_name=Anv restr :
-document_properties_file_size=Ment ar restr :
+document_properties_file_name=Anv restr:
+document_properties_file_size=Ment ar restr:
# 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}} Ke ({{size_b}} eizhbit)
# 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}} Me ({{size_b}} eizhbit)
-document_properties_title=Titl :
-document_properties_author=Aozer :
-document_properties_subject=Danvez :
-document_properties_keywords=Gerioù-alc'hwez :
-document_properties_creation_date=Deiziad krouiñ :
-document_properties_modification_date=Deiziad kemmañ :
+document_properties_title=Titl:
+document_properties_author=Aozer:
+document_properties_subject=Danvez:
+document_properties_keywords=Gerioù-alc'hwez:
+document_properties_creation_date=Deiziad krouiñ:
+document_properties_modification_date=Deiziad kemmañ:
# 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=Krouer :
-document_properties_producer=Kenderc'her PDF :
-document_properties_version=Handelv PDF :
-document_properties_page_count=Niver a bajennoù :
+document_properties_creator=Krouer:
+document_properties_producer=Kenderc'her PDF:
+document_properties_version=Handelv PDF:
+document_properties_page_count=Niver a bajennoù:
+document_properties_page_size=Ment ar bajenn:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=poltred
+document_properties_page_size_orientation_landscape=gweledva
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Lizher
+document_properties_page_size_name_legal=Lezennel
+# 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=Gwel Web Herrek:
+document_properties_linearized_yes=Ya
+document_properties_linearized_no=Ket
document_properties_close=Serriñ
+print_progress_message=O prientiñ an teul evit moullañ...
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Nullañ
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Diskouez/kuzhat ar varrenn gostez
+toggle_sidebar_notification2.title=Trec'haoliñ ar varrenn-gostez (ur steuñv pe stagadennoù a zo en teul)
toggle_sidebar_label=Diskouez/kuzhat ar varrenn gostez
-outline.title=Diskouez ar sinedoù
-outline_label=Sinedoù an teuliad
+document_outline.title=Diskouez steuñv an teul (daouglikit evit brasaat/bihanaat an holl elfennoù)
+document_outline_label=Sinedoù an teuliad
attachments.title=Diskouez ar c'henstagadurioù
attachments_label=Kenstagadurioù
+layers.title=Diskouez ar gwiskadoù (daou-glikañ evit adderaouekaat an holl gwiskadoù d'o stad dre ziouer)
+layers_label=Gwiskadoù
thumbs.title=Diskouez ar melvennoù
thumbs_label=Melvennoù
findbar.title=Klask e-barzh an teuliad
findbar_label=Klask
+additional_layers=Gwiskadoù ouzhpenn
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Pajenn {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +154,40 @@ thumb_page_title=Pajenn {{page}}
thumb_page_canvas=Melvenn ar bajenn {{page}}
# Find panel button title and messages
-find_label=Kavout :
+find_input.title=Klask
+find_input.placeholder=Klask e-barzh an teuliad
find_previous.title=Kavout an tamm frazenn kent o klotañ ganti
find_previous_label=Kent
find_next.title=Kavout an tamm frazenn war-lerc'h o klotañ ganti
find_next_label=War-lerc'h
find_highlight=Usskediñ pep tra
find_match_case_label=Teurel evezh ouzh ar pennlizherennoù
+find_entire_word_label=Gerioù a-bezh
find_reached_top=Tizhet eo bet derou ar bajenn, kenderc'hel diouzh an diaz
find_reached_bottom=Tizhet eo bet dibenn ar bajenn, kenderc'hel diouzh ar c'hrec'h
+# 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]=Klotadenn {{current}} war {{total}}
+find_match_count[two]=Klotadenn {{current}} war {{total}}
+find_match_count[few]=Klotadenn {{current}} war {{total}}
+find_match_count[many]=Klotadenn {{current}} war {{total}}
+find_match_count[other]=Klotadenn {{current}} war {{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]=Muioc'h eget {{limit}} a glotadennoù
+find_match_count_limit[one]=Muioc'h eget {{limit}} a glotadennoù
+find_match_count_limit[two]=Muioc'h eget {{limit}} a glotadennoù
+find_match_count_limit[few]=Muioc'h eget {{limit}} a glotadennoù
+find_match_count_limit[many]=Muioc'h eget {{limit}} a glotadennoù
+find_match_count_limit[other]=Muioc'h eget {{limit}} a glotadennoù
find_not_found=N'haller ket kavout ar frazenn
-# Error panel labels
-error_more_info=Muioc'h a ditouroù
-error_less_info=Nebeutoc'h a ditouroù
-error_close=Serriñ
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-error_version_info=PDF.js handelv {{version}} (kempunadur : {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Kemennadenn : {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Torn : {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Restr : {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linenn : {{line}}
-rendering_error=Degouezhet ez eus bet ur fazi e-pad skrammañ ar bajennad.
-
# Predefined zoom values
page_scale_width=Led ar bajenn
page_scale_fit=Pajenn a-bezh
@@ -150,13 +197,17 @@ page_scale_actual=Ment wir
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Fazi
loading_error=Degouezhet ez eus bet ur fazi e-pad kargañ ar PDF.
invalid_file_error=Restr PDF didalvoudek pe kontronet.
missing_file_error=Restr PDF o vankout.
unexpected_response_error=Respont dic'hortoz a-berzh an dafariad
+rendering_error=Degouezhet ez eus bet ur fazi e-pad skrammañ ar bajennad.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -167,7 +218,7 @@ password_invalid=Ger-tremen didalvoudek. Klaskit en-dro mar plij.
password_ok=Mat eo
password_cancel=Nullañ
-printing_not_supported=Kemenn : N'eo ket skoret penn-da-benn ar moullañ gant ar merdeer-mañ.
-printing_not_ready=Kemenn : N'hall ket bezañ moullet ar restr PDF rak n'eo ket karget penn-da-benn.
-web_fonts_disabled=Diweredekaet eo an nodrezhoù web : n'haller ket arverañ an nodrezhoù PDF enframmet.
-document_colors_not_allowed=N'eo ket aotreet an teuliadoù PDF da arverañ o livioù dezho : diweredekaet eo 'Aotren ar pajennoù da zibab o livioù dezho' e-barzh ar merdeer.
+printing_not_supported=Kemenn: N'eo ket skoret penn-da-benn ar moullañ gant ar merdeer-mañ.
+printing_not_ready=Kemenn: N'hall ket bezañ moullet ar restr PDF rak n'eo ket karget penn-da-benn.
+web_fonts_disabled=Diweredekaet eo an nodrezhoù web: n'haller ket arverañ an nodrezhoù PDF enframmet.
+
diff --git a/static/pdf.js/locale/brx/viewer.properties b/static/pdf.js/locale/brx/viewer.properties
new file mode 100644
index 000000000..1c2fc07f2
--- /dev/null
+++ b/static/pdf.js/locale/brx/viewer.properties
@@ -0,0 +1,184 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=आगोलनि बिलाइ
+previous_label=आगोलनि
+next.title=उननि बिलाइ
+next_label=उननि
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=बिलाइ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} नि
+# 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=({{pagesCount}} नि {{pageNumber}})
+
+zoom_out.title=फिसायै जुम खालाम
+zoom_out_label=फिसायै जुम खालाम
+zoom_in.title=गेदेरै जुम खालाम
+zoom_in_label=गेदेरै जुम खालाम
+zoom.title=जुम खालाम
+presentation_mode.title=दिन्थिफुंनाय म'डआव थां
+presentation_mode_label=दिन्थिफुंनाय म'ड
+open_file.title=फाइलखौ खेव
+open_file_label=खेव
+print.title=साफाय
+print_label=साफाय
+
+# Secondary toolbar and context menu
+tools.title=टुल
+tools_label=टुल
+first_page.title=गिबि बिलाइआव थां
+first_page_label=गिबि बिलाइआव थां
+last_page.title=जोबथा बिलाइआव थां
+last_page_label=जोबथा बिलाइआव थां
+page_rotate_cw.title=घरि गिदिंनाय फार्से फिदिं
+page_rotate_cw_label=घरि गिदिंनाय फार्से फिदिं
+page_rotate_ccw.title=घरि गिदिंनाय उल्था फार्से फिदिं
+page_rotate_ccw_label=घरि गिदिंनाय उल्था फार्से फिदिं
+
+
+
+
+# Document properties dialog box
+document_properties.title=फोरमान बिलाइनि आखुथाय...
+document_properties_label=फोरमान बिलाइनि आखुथाय...
+document_properties_file_name=फाइलनि मुं:
+document_properties_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}} बाइट)
+# 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_author=लिरगिरि:
+document_properties_subject=आयदा:
+document_properties_keywords=गाहाय सोदोब:
+document_properties_creation_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_creator=सोरजिग्रा:
+document_properties_producer=PDF दिहुनग्रा:
+document_properties_version=PDF बिसान:
+document_properties_page_count=बिलाइनि हिसाब:
+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=लायजाम
+# 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=बन्द खालाम
+
+# 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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=टग्गल साइडबार
+toggle_sidebar_label=टग्गल साइडबार
+document_outline_label=फोरमान बिलाइ सिमा हांखो
+attachments.title=नांजाब होनायखौ दिन्थि
+attachments_label=नांजाब होनाय
+thumbs.title=थामनेइलखौ दिन्थि
+thumbs_label=थामनेइल
+findbar.title=फोरमान बिलाइआव नागिरना दिहुन
+findbar_label=नायगिरना दिहुन
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=बिलाइ {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=बिलाइ {{page}} नि थामनेइल
+
+# Find panel button title and messages
+find_input.title=नायगिरना दिहुन
+find_input.placeholder=फोरमान बिलाइआव नागिरना दिहुन...
+find_previous.title=बाथ्रा खोन्दोबनि सिगांनि नुजाथिनायखौ नागिर
+find_previous_label=आगोलनि
+find_next.title=बाथ्रा खोन्दोबनि उननि नुजाथिनायखौ नागिर
+find_next_label=उननि
+find_highlight=गासैखौबो हाइलाइट खालाम
+find_match_case_label=गोरोबनाय केस
+find_reached_top=थालो निफ्राय जागायनानै फोरमान बिलाइनि बिजौआव सौहैबाय
+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.
+# 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_not_found=बाथ्रा खोन्दोब मोनाखै
+
+# Predefined zoom values
+page_scale_width=बिलाइनि गुवार
+page_scale_fit=बिलाइ गोरोबनाय
+page_scale_auto=गावनोगाव जुम
+page_scale_actual=थार महर
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+loading_error=PDF ल'ड खालामनाय समाव मोनसे गोरोन्थि जाबाय।
+invalid_file_error=बाहायजायै एबा गाज्रि जानाय PDF फाइल
+missing_file_error=गोमानाय PDF फाइल
+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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} सोदोब बेखेवनाय]
+password_label=बे PDF फाइलखौ खेवनो पासवार्ड हाबहो।
+password_invalid=बाहायजायै पासवार्ड। अननानै फिन नाजा।
+password_ok=OK
+password_cancel=नेवसि
+
+printing_not_supported=सांग्रांथि: साफायनाया बे ब्राउजारजों आबुङै हेफाजाब होजाया।
+printing_not_ready=सांग्रांथि: PDF खौ साफायनायनि थाखाय फुरायै ल'ड खालामाखै।
+web_fonts_disabled=वेब फन्टखौ लोरबां खालामबाय: अरजाबहोनाय PDF फन्टखौ बाहायनो हायाखै।
+
diff --git a/static/pdf.js/locale/bs/viewer.properties b/static/pdf.js/locale/bs/viewer.properties
index ccc8bec88..6285b4d57 100644
--- a/static/pdf.js/locale/bs/viewer.properties
+++ b/static/pdf.js/locale/bs/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Prethodna
next.title=Sljedeća strna
next_label=Sljedeća
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Strana:
-page_of=od {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Strana
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=od {{pagesCount}}
+# 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}} od {{pagesCount}})
zoom_out.title=Umanji
zoom_out_label=Umanji
@@ -36,31 +39,23 @@ open_file.title=Otvori fajl
open_file_label=Otvori
print.title=Štampaj
print_label=Štampaj
-download.title=Preuzmi
-download_label=Preuzmi
-bookmark.title=Trenutni prikaz (kopiraj ili otvori u novom prozoru)
-bookmark_label=Trenutni prikaz
# Secondary toolbar and context menu
tools.title=Alati
tools_label=Alati
first_page.title=Idi na prvu stranu
-first_page.label=Idi na prvu stranu
first_page_label=Idi na prvu stranu
last_page.title=Idi na zadnju stranu
-last_page.label=Idi na zadnju stranu
last_page_label=Idi na zadnju stranu
page_rotate_cw.title=Rotiraj u smjeru kazaljke na satu
-page_rotate_cw.label=Rotiraj u smjeru kazaljke na satu
page_rotate_cw_label=Rotiraj u smjeru kazaljke na satu
page_rotate_ccw.title=Rotiraj suprotno smjeru kazaljke na satu
-page_rotate_ccw.label=Rotiraj suprotno smjeru kazaljke na satu
page_rotate_ccw_label=Rotiraj suprotno smjeru kazaljke na satu
-hand_tool_enable.title=Omogući ručni alat
-hand_tool_enable_label=Omogući ručni alat
-hand_tool_disable.title=Onemogući ručni alat
-hand_tool_disable_label=Onemogući ručni alat
+cursor_text_select_tool.title=Omogući alat za označavanje teksta
+cursor_text_select_tool_label=Alat za označavanje teksta
+cursor_hand_tool.title=Omogući ručni alat
+cursor_hand_tool_label=Ručni alat
# Document properties dialog box
document_properties.title=Svojstva dokumenta...
@@ -86,15 +81,38 @@ document_properties_creator=Kreator:
document_properties_producer=PDF stvaratelj:
document_properties_version=PDF verzija:
document_properties_page_count=Broj stranica:
+document_properties_page_size=Veličina stranice:
+document_properties_page_size_unit_inches=u
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=uspravno
+document_properties_page_size_orientation_landscape=vodoravno
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Pismo
+document_properties_page_size_name_legal=Pravni
+# 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}})
document_properties_close=Zatvori
+print_progress_message=Pripremam dokument za štampu…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Otkaži
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Uključi/isključi bočnu traku
toggle_sidebar_label=Uključi/isključi bočnu traku
-outline.title=Prikaži konture dokumenta
-outline_label=Konture dokumenta
+document_outline.title=Prikaži outline dokumenta (dvoklik za skupljanje/širenje svih stavki)
+document_outline_label=Konture dokumenta
attachments.title=Prikaži priloge
attachments_label=Prilozi
thumbs.title=Prikaži thumbnailove
@@ -111,7 +129,8 @@ thumb_page_title=Strana {{page}}
thumb_page_canvas=Thumbnail strane {{page}}
# Find panel button title and messages
-find_label=Pronađi:
+find_input.title=Pronađi
+find_input.placeholder=Pronađi u dokumentu…
find_previous.title=Pronađi prethodno pojavljivanje fraze
find_previous_label=Prethodno
find_next.title=Pronađi sljedeće pojavljivanje fraze
@@ -122,25 +141,6 @@ find_reached_top=Dostigao sam vrh dokumenta, nastavljam sa dna
find_reached_bottom=Dostigao sam kraj dokumenta, nastavljam sa vrha
find_not_found=Fraza nije pronađena
-# Error panel labels
-error_more_info=Više informacija
-error_less_info=Manje informacija
-error_close=Zatvori
-# 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=Poruka: {{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=Fajl: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linija: {{line}}
-rendering_error=Došlo je do greške prilikom renderiranja strane.
-
# Predefined zoom values
page_scale_width=Širina strane
page_scale_fit=Uklopi stranu
@@ -150,13 +150,13 @@ page_scale_actual=Stvarna veličina
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Greška
loading_error=Došlo je do greške prilikom učitavanja PDF-a.
invalid_file_error=Neispravan ili oštećen PDF fajl.
missing_file_error=Nedostaje PDF fajl.
unexpected_response_error=Neočekivani odgovor servera.
+rendering_error=Došlo je do greške prilikom renderiranja strane.
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +170,4 @@ password_cancel=Otkaži
printing_not_supported=Upozorenje: Štampanje nije u potpunosti podržano u ovom browseru.
printing_not_ready=Upozorenje: PDF nije u potpunosti učitan za štampanje.
web_fonts_disabled=Web fontovi su onemogućeni: nemoguće koristiti ubačene PDF fontove.
-document_colors_not_allowed=PDF dokumentima nije dozvoljeno da koriste vlastite boje: 'Dozvoli stranicama da izaberu vlastite boje' je deaktivirano u browseru.
+
diff --git a/static/pdf.js/locale/ca/viewer.properties b/static/pdf.js/locale/ca/viewer.properties
index 6b85bb1ba..a51aa44a4 100644
--- a/static/pdf.js/locale/ca/viewer.properties
+++ b/static/pdf.js/locale/ca/viewer.properties
@@ -18,17 +18,20 @@ previous_label=Anterior
next.title=Pàgina següent
next_label=Següent
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Pàgina:
-page_of=de {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pàgina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
-zoom_out.title=Allunya
-zoom_out_label=Allunya
-zoom_in.title=Apropa
-zoom_in_label=Apropa
+zoom_out.title=Redueix
+zoom_out_label=Redueix
+zoom_in.title=Amplia
+zoom_in_label=Amplia
zoom.title=Escala
presentation_mode.title=Canvia al mode de presentació
presentation_mode_label=Mode de presentació
@@ -36,31 +39,47 @@ open_file.title=Obre el fitxer
open_file_label=Obre
print.title=Imprimeix
print_label=Imprimeix
-download.title=Baixa
-download_label=Baixa
-bookmark.title=Vista actual (copia o obre en una finestra nova)
-bookmark_label=Vista actual
+save.title=Desa
+save_label=Desa
+bookmark1.title=Pàgina actual (mostra l'URL de la pàgina actual)
+bookmark1_label=Pàgina actual
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Obre en una aplicació
+# 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=Obre en una aplicació
# Secondary toolbar and context menu
tools.title=Eines
tools_label=Eines
first_page.title=Vés a la primera pàgina
-first_page.label=Vés a la primera pàgina
first_page_label=Vés a la primera pàgina
last_page.title=Vés a l'última pàgina
-last_page.label=Vés a l'última pàgina
last_page_label=Vés a l'última pàgina
page_rotate_cw.title=Gira cap a la dreta
-page_rotate_cw.label=Gira cap a la dreta
page_rotate_cw_label=Gira cap a la dreta
page_rotate_ccw.title=Gira cap a l'esquerra
-page_rotate_ccw.label=Gira cap a l'esquerra
page_rotate_ccw_label=Gira cap a l'esquerra
-hand_tool_enable.title=Habilita l'eina de mà
-hand_tool_enable_label=Habilita l'eina de mà
-hand_tool_disable.title=Inhabilita l'eina de mà
-hand_tool_disable_label=Inhabilita l'eina de mà
+cursor_text_select_tool.title=Habilita l'eina de selecció de text
+cursor_text_select_tool_label=Eina de selecció de text
+cursor_hand_tool.title=Habilita l'eina de mà
+cursor_hand_tool_label=Eina de mà
+
+scroll_page.title=Usa el desplaçament de pàgina
+scroll_page_label=Desplaçament de pàgina
+scroll_vertical.title=Utilitza el desplaçament vertical
+scroll_vertical_label=Desplaçament vertical
+scroll_horizontal.title=Utilitza el desplaçament horitzontal
+scroll_horizontal_label=Desplaçament horitzontal
+scroll_wrapped.title=Activa el desplaçament continu
+scroll_wrapped_label=Desplaçament continu
+
+spread_none.title=No agrupis les pàgines de dues en dues
+spread_none_label=Una sola pàgina
+spread_odd.title=Mostra dues pàgines començant per les pàgines de numeració senar
+spread_odd_label=Doble pàgina (senar)
+spread_even.title=Mostra dues pàgines començant per les pàgines de numeració parell
+spread_even_label=Doble pàgina (parell)
# Document properties dialog box
document_properties.title=Propietats del document…
@@ -86,22 +105,58 @@ document_properties_creator=Creador:
document_properties_producer=Generador de PDF:
document_properties_version=Versió de PDF:
document_properties_page_count=Nombre de pàgines:
+document_properties_page_size=Mida de la pàgina:
+document_properties_page_size_unit_inches=polzades
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertical
+document_properties_page_size_orientation_landscape=apaïsat
+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=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=Vista web ràpida:
+document_properties_linearized_yes=Sí
+document_properties_linearized_no=No
document_properties_close=Tanca
+print_progress_message=S'està preparant la impressió del document…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Cancel·la
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Mostra/amaga la barra lateral
+toggle_sidebar_notification2.title=Mostra/amaga la barra lateral (el document conté un esquema, adjuncions o capes)
toggle_sidebar_label=Mostra/amaga la barra lateral
-outline.title=Mostra el contorn del document
-outline_label=Contorn del document
+document_outline.title=Mostra l'esquema del document (doble clic per ampliar/reduir tots els elements)
+document_outline_label=Esquema del document
attachments.title=Mostra les adjuncions
attachments_label=Adjuncions
+layers.title=Mostra les capes (doble clic per restablir totes les capes al seu estat per defecte)
+layers_label=Capes
thumbs.title=Mostra les miniatures
thumbs_label=Miniatures
+current_outline_item.title=Cerca l'element d'esquema actual
+current_outline_item_label=Element d'esquema actual
findbar.title=Cerca al document
findbar_label=Cerca
+additional_layers=Capes addicionals
+# 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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,38 +166,43 @@ thumb_page_title=Pàgina {{page}}
thumb_page_canvas=Miniatura de la pàgina {{page}}
# Find panel button title and messages
-find_label=Cerca:
+find_input.title=Cerca
+find_input.placeholder=Cerca al document…
find_previous.title=Cerca l'anterior coincidència de l'expressió
find_previous_label=Anterior
find_next.title=Cerca la següent coincidència de l'expressió
find_next_label=Següent
find_highlight=Ressalta-ho tot
find_match_case_label=Distingeix entre majúscules i minúscules
+find_match_diacritics_label=Respecta els diacrítics
+find_entire_word_label=Paraules senceres
find_reached_top=S'ha arribat al principi del document, es continua pel final
find_reached_bottom=S'ha arribat al final del document, es continua pel principi
+# 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}} de {{total}} coincidència
+find_match_count[two]={{current}} de {{total}} coincidències
+find_match_count[few]={{current}} de {{total}} coincidències
+find_match_count[many]={{current}} de {{total}} coincidències
+find_match_count[other]={{current}} de {{total}} coincidències
+# 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]=Més de {{limit}} coincidències
+find_match_count_limit[one]=Més d'{{limit}} coincidència
+find_match_count_limit[two]=Més de {{limit}} coincidències
+find_match_count_limit[few]=Més de {{limit}} coincidències
+find_match_count_limit[many]=Més de {{limit}} coincidències
+find_match_count_limit[other]=Més de {{limit}} coincidències
find_not_found=No s'ha trobat l'expressió
-# Error panel labels
-error_more_info=Més informació
-error_less_info=Menys informació
-error_close=Tanca
-# 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}} (muntatge: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Missatge: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Pila: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fitxer: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Línia: {{line}}
-rendering_error=S'ha produït un error mentre es renderitzava la pàgina.
-
# Predefined zoom values
-page_scale_width=Amplària de la pàgina
+page_scale_width=Amplada de la pàgina
page_scale_fit=Ajusta la pàgina
page_scale_auto=Zoom automàtic
page_scale_actual=Mida real
@@ -151,11 +211,15 @@ page_scale_actual=Mida real
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Error
loading_error=S'ha produït un error en carregar el PDF.
invalid_file_error=El fitxer PDF no és vàlid o està malmès.
missing_file_error=Falta el fitxer PDF.
unexpected_response_error=Resposta inesperada del servidor.
+rendering_error=S'ha produït un error mentre es renderitzava la 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -169,5 +233,24 @@ password_cancel=Cancel·la
printing_not_supported=Avís: la impressió no és plenament funcional en aquest navegador.
printing_not_ready=Atenció: el PDF no s'ha acabat de carregar per imprimir-lo.
-web_fonts_disabled=Les fonts web estan inhabilitades: no es poden incrustar fitxers PDF.
-document_colors_not_allowed=Els documents PDF no poden usar els seus colors propis: «Permet a les pàgines triar els colors propis» es troba desactivat al navegador.
+web_fonts_disabled=Els tipus de lletra web estan desactivats: no es poden utilitzar els tipus de lletra incrustats al PDF.
+
+# Editor
+editor_free_text2.title=Text
+editor_free_text2_label=Text
+editor_ink2.title=Dibuixa
+editor_ink2_label=Dibuixa
+
+free_text2_default_content=Escriviu…
+
+# Editor Parameters
+editor_free_text_color=Color
+editor_free_text_size=Mida
+editor_ink_color=Color
+editor_ink_thickness=Gruix
+editor_ink_opacity=Opacitat
+
+# Editor aria
+editor_free_text2_aria_label=Editor de text
+editor_ink2_aria_label=Editor de dibuix
+editor_ink_canvas_aria_label=Imatge creada per l'usuari
diff --git a/static/pdf.js/locale/cak/viewer.properties b/static/pdf.js/locale/cak/viewer.properties
new file mode 100644
index 000000000..e504e07bf
--- /dev/null
+++ b/static/pdf.js/locale/cak/viewer.properties
@@ -0,0 +1,253 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Jun kan ruxaq
+previous_label=Jun kan
+next.title=Jun chik ruxaq
+next_label=Jun chik
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Ruxaq
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=richin {{pagesCount}}
+# 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}} richin {{pagesCount}})
+
+zoom_out.title=Tich'utinirisäx
+zoom_out_label=Tich'utinirisäx
+zoom_in.title=Tinimirisäx
+zoom_in_label=Tinimirisäx
+zoom.title=Sum
+presentation_mode.title=Tijal ri rub'anikil niwachin
+presentation_mode_label=Pa rub'eyal niwachin
+open_file.title=Tijaq Yakb'äl
+open_file_label=Tijaq
+print.title=Titz'ajb'äx
+print_label=Titz'ajb'äx
+
+save.title=Tiyak
+save_label=Tiyak
+bookmark1_label=Ruxaq k'o wakami
+
+# Secondary toolbar and context menu
+tools.title=Samajib'äl
+tools_label=Samajib'äl
+first_page.title=Tib'e pa nab'ey ruxaq
+first_page_label=Tib'e pa nab'ey ruxaq
+last_page.title=Tib'e pa ruk'isib'äl ruxaq
+last_page_label=Tib'e pa ruk'isib'äl ruxaq
+page_rotate_cw.title=Tisutïx pan ajkiq'a'
+page_rotate_cw_label=Tisutïx pan ajkiq'a'
+page_rotate_ccw.title=Tisutïx pan ajxokon
+page_rotate_ccw_label=Tisutïx pan ajxokon
+
+cursor_text_select_tool.title=Titzij ri rusamajib'al Rucha'ik Rucholajem Tzij
+cursor_text_select_tool_label=Rusamajib'al Rucha'ik Rucholajem Tzij
+cursor_hand_tool.title=Titzij ri q'ab'aj samajib'äl
+cursor_hand_tool_label=Q'ab'aj Samajib'äl
+
+scroll_page.title=Tokisäx Ruxaq Q'axanem
+scroll_page_label=Ruxaq Q'axanem
+scroll_vertical.title=Tokisäx Pa'äl Q'axanem
+scroll_vertical_label=Pa'äl Q'axanem
+scroll_horizontal.title=Tokisäx Kotz'öl Q'axanem
+scroll_horizontal_label=Kotz'öl Q'axanem
+scroll_wrapped.title=Tokisäx Tzub'aj Q'axanem
+scroll_wrapped_label=Tzub'aj Q'axanem
+
+spread_none.title=Man ketun taq ruxaq pa rub'eyal wuj
+spread_none_label=Majun Rub'eyal
+spread_odd.title=Ke'atunu' ri taq ruxaq rik'in natikirisaj rik'in jun man k'ulaj ta rajilab'al
+spread_odd_label=Man K'ulaj Ta Rub'eyal
+spread_even.title=Ke'atunu' ri taq ruxaq rik'in natikirisaj rik'in jun k'ulaj rajilab'al
+spread_even_label=K'ulaj Rub'eyal
+
+# Document properties dialog box
+document_properties.title=Taq richinil wuj…
+document_properties_label=Taq richinil wuj…
+document_properties_file_name=Rub'i' yakb'äl:
+document_properties_file_size=Runimilem yakb'äl:
+# 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)
+# 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_title=B'i'aj:
+document_properties_author=B'anel:
+document_properties_subject=Taqikil:
+document_properties_keywords=Kixe'el taq tzij:
+document_properties_creation_date=Ruq'ijul xtz'uk:
+document_properties_modification_date=Ruq'ijul xjalwachïx:
+# 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=Q'inonel:
+document_properties_producer=PDF b'anöy:
+document_properties_version=PDF ruwäch:
+document_properties_page_count=Jarupe' ruxaq:
+document_properties_page_size=Runimilem ri Ruxaq:
+document_properties_page_size_unit_inches=pa
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=rupalem
+document_properties_page_size_orientation_landscape=rukotz'olem
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Loman wuj
+document_properties_page_size_name_legal=Taqanel tzijol
+# 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=Anin Rutz'etik Ajk'amaya'l:
+document_properties_linearized_yes=Ja'
+document_properties_linearized_no=Mani
+document_properties_close=Titz'apïx
+
+print_progress_message=Ruchojmirisaxik wuj richin nitz'ajb'äx…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Tiq'at
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Tijal ri ajxikin kajtz'ik
+toggle_sidebar_notification2.title=Tik'ex ri ajxikin yuqkajtz'ik (ri wuj eruk'wan taq ruchi'/taqo/kuchuj)
+toggle_sidebar_label=Tijal ri ajxikin kajtz'ik
+document_outline.title=Tik'ut pe ruch'akulal wuj (kamul-pitz'oj richin nirik'/nich'utinirisäx ronojel ruch'akulal)
+document_outline_label=Ruch'akulal wuj
+attachments.title=Kek'ut pe ri taq taqoj
+attachments_label=Taq taqoj
+layers.title=Kek'ut taq Kuchuj (ka'i'-pitz' richin yetzolïx ronojel ri taq kuchuj e k'o wi)
+layers_label=Taq kuchuj
+thumbs.title=Kek'ut pe taq ch'utiq
+thumbs_label=Koköj
+current_outline_item.title=Kekanöx Taq Ch'akulal Kik'wan Chib'äl
+current_outline_item_label=Taq Ch'akulal Kik'wan Chib'äl
+findbar.title=Tikanöx chupam ri wuj
+findbar_label=Tikanöx
+
+additional_layers=Tz'aqat ta Kuchuj
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Ruxaq {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Ruxaq {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Ruch'utinirisaxik ruxaq {{page}}
+
+# Find panel button title and messages
+find_input.title=Tikanöx
+find_input.placeholder=Tikanöx pa wuj…
+find_previous.title=Tib'an b'enam pa ri jun kan q'aptzij xilitäj
+find_previous_label=Jun kan
+find_next.title=Tib'e pa ri jun chik pajtzij xilitäj
+find_next_label=Jun chik
+find_highlight=Tiya' retal ronojel
+find_match_case_label=Tuk'äm ri' kik'in taq nimatz'ib' chuqa' taq ch'utitz'ib'
+find_match_diacritics_label=Tiya' Kikojol Tz'aqat taq Tz'ib'
+find_entire_word_label=Tz'aqät taq tzij
+find_reached_top=Xb'eq'i' ri rutikirib'al wuj, xtikanöx k'a pa ruk'isib'äl
+find_reached_bottom=Xb'eq'i' ri ruk'isib'äl wuj, xtikanöx pa rutikirib'al
+# 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}} richin {{total}} nuk'äm ri'
+find_match_count[two]={{current}} richin {{total}} nikik'äm ki'
+find_match_count[few]={{current}} richin {{total}} nikik'äm ki'
+find_match_count[many]={{current}} richin {{total}} nikik'äm ki'
+find_match_count[other]={{current}} richin {{total}} nikik'äm ki'
+# 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]=K'ïy chi re {{limit}} nikik'äm ki'
+find_match_count_limit[one]=K'ïy chi re {{limit}} nuk'äm ri'
+find_match_count_limit[two]=K'ïy chi re {{limit}} nikik'äm ki'
+find_match_count_limit[few]=K'ïy chi re {{limit}} nikik'äm ki'
+find_match_count_limit[many]=K'ïy chi re {{limit}} nikik'äm ki'
+find_match_count_limit[other]=K'ïy chi re {{limit}} nikik'äm ki'
+find_not_found=Man xilitäj ta ri pajtzij
+
+# Predefined zoom values
+page_scale_width=Ruwa ruxaq
+page_scale_fit=Tinuk' ruxaq
+page_scale_auto=Yonil chi nimilem
+page_scale_actual=Runimilem Wakami
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=\u0020Xk'ulwachitäj jun sach'oj toq xnuk'ux ri PDF .
+invalid_file_error=Man oke ta o yujtajinäq ri PDF yakb'äl.
+missing_file_error=Man xilitäj ta ri PDF yakb'äl.
+unexpected_response_error=Man oyob'en ta tz'olin rutzij ruk'u'x samaj.
+
+rendering_error=Xk'ulwachitäj jun sachoj toq ninuk'wachij ri ruxaq.
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Tz'ib'anïk]
+password_label=Tatz'ib'aj ri ewan tzij richin najäq re yakb'äl re' pa PDF.
+password_invalid=Man okel ta ri ewan tzij: Tatojtob'ej chik.
+password_ok=Ütz
+password_cancel=Tiq'at
+
+printing_not_supported=Rutzijol k'ayewal: Ri rutz'ajb'axik man koch'el ta ronojel pa re okik'amaya'l re'.
+printing_not_ready=Rutzijol k'ayewal: Ri PDF man xusamajij ta ronojel richin nitz'ajb'äx.
+web_fonts_disabled=E chupül ri taq ajk'amaya'l tz'ib': man tikirel ta nokisäx ri taq tz'ib' PDF pa ch'ikenïk
+
+# Editor
+editor_free_text2.title=Rucholajem tz'ib'
+editor_free_text2_label=Rucholajem tz'ib'
+editor_ink2.title=Tiwachib'ëx
+editor_ink2_label=Tiwachib'ëx
+
+free_text2_default_content=Titikitisäx rutz'ib'axik…
+
+# Editor Parameters
+editor_free_text_color=B'onil
+editor_free_text_size=Nimilem
+editor_ink_color=B'onil
+editor_ink_thickness=Rupimil
+editor_ink_opacity=Q'equmal
+
+# Editor aria
+editor_free_text2_aria_label=Nuk'unel tz'ib'atzij
+editor_ink2_aria_label=Nuk'unel wachib'äl
+editor_ink_canvas_aria_label=Wachib'äl nuk'un ruma okisaxel
diff --git a/static/pdf.js/locale/ckb/viewer.properties b/static/pdf.js/locale/ckb/viewer.properties
new file mode 100644
index 000000000..af4a33215
--- /dev/null
+++ b/static/pdf.js/locale/ckb/viewer.properties
@@ -0,0 +1,213 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=پەڕەی پێشوو
+previous_label=پێشوو
+next.title=پەڕەی دوواتر
+next_label=دوواتر
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=پەرە
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=لە {{pagesCount}}
+# 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_label=ڕۆچوونی
+zoom_in.title=هێنانەپێش
+zoom_in_label=هێنانەپێش
+zoom.title=زووم
+presentation_mode.title=گۆڕین بۆ دۆخی پێشکەشکردن
+presentation_mode_label=دۆخی پێشکەشکردن
+open_file.title=پەڕگە بکەرەوە
+open_file_label=کردنەوە
+print.title=چاپکردن
+print_label=چاپکردن
+
+# Secondary toolbar and context menu
+tools.title=ئامرازەکان
+tools_label=ئامرازەکان
+first_page.title=برۆ بۆ یەکەم پەڕە
+first_page_label=بڕۆ بۆ یەکەم پەڕە
+last_page.title=بڕۆ بۆ کۆتا پەڕە
+last_page_label=بڕۆ بۆ کۆتا پەڕە
+page_rotate_cw.title=ئاڕاستەی میلی کاتژمێر
+page_rotate_cw_label=ئاڕاستەی میلی کاتژمێر
+page_rotate_ccw.title=پێچەوانەی میلی کاتژمێر
+page_rotate_ccw_label=پێچەوانەی میلی کاتژمێر
+
+cursor_text_select_tool.title=توڵامرازی نیشانکەری دەق چالاک بکە
+cursor_text_select_tool_label=توڵامرازی نیشانکەری دەق
+cursor_hand_tool.title=توڵامرازی دەستی چالاک بکە
+cursor_hand_tool_label=توڵامرازی دەستی
+
+scroll_vertical.title=ناردنی ئەستوونی بەکاربێنە
+scroll_vertical_label=ناردنی ئەستوونی
+scroll_horizontal.title=ناردنی ئاسۆیی بەکاربێنە
+scroll_horizontal_label=ناردنی ئاسۆیی
+scroll_wrapped.title=ناردنی لوولکراو بەکاربێنە
+scroll_wrapped_label=ناردنی لوولکراو
+
+
+# Document properties dialog box
+document_properties.title=تایبەتمەندییەکانی بەڵگەنامە...
+document_properties_label=تایبەتمەندییەکانی بەڵگەنامە...
+document_properties_file_name=ناوی پەڕگە:
+document_properties_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}} کب ({{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}} مب ({{size_b}} بایت)
+document_properties_title=سەردێڕ:
+document_properties_author=نووسەر
+document_properties_subject=بابەت:
+document_properties_keywords=کلیلەوشە:
+document_properties_creation_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_creator=درووستکەر:
+document_properties_producer=بەرهەمهێنەری PDF:
+document_properties_version=وەشانی PDF:
+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=پیشاندانی وێبی خێرا:
+document_properties_linearized_yes=بەڵێ
+document_properties_linearized_no=نەخێر
+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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=لاتەنیشت پیشاندان/شاردنەوە
+toggle_sidebar_label=لاتەنیشت پیشاندان/شاردنەوە
+document_outline_label=سنووری چوارچێوە
+attachments.title=پاشکۆکان پیشان بدە
+attachments_label=پاشکۆکان
+layers_label=چینەکان
+thumbs.title=وێنۆچکە پیشان بدە
+thumbs_label=وێنۆچکە
+findbar.title=لە بەڵگەنامە بگەرێ
+findbar_label=دۆزینەوە
+
+additional_layers=چینی زیاتر
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=پەڕەی {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=وێنۆچکەی پەڕەی {{page}}
+
+# Find panel button title and messages
+find_input.title=دۆزینەوە
+find_input.placeholder=لە بەڵگەنامە بگەرێ...
+find_previous.title=هەبوونی پێشوو بدۆزرەوە لە ڕستەکەدا
+find_previous_label=پێشوو
+find_next.title=هەبوونی داهاتوو بدۆزەرەوە لە ڕستەکەدا
+find_next_label=دوواتر
+find_highlight=هەمووی نیشانە بکە
+find_match_case_label=دۆخی لەیەکچوون
+find_entire_word_label=هەموو وشەکان
+find_reached_top=گەشتیتە سەرەوەی بەڵگەنامە، لە خوارەوە دەستت پێکرد
+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=نووسین نەدۆزرایەوە
+
+# Predefined zoom values
+page_scale_width=پانی پەڕە
+page_scale_fit=پڕبوونی پەڕە
+page_scale_auto=زوومی خۆکار
+page_scale_actual=قەبارەی ڕاستی
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+loading_error=هەڵەیەک ڕوویدا لە کاتی بارکردنی PDF.
+invalid_file_error=پەڕگەی pdf تێکچووە یان نەگونجاوە.
+missing_file_error=پەڕگەی pdf بوونی نیە.
+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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} سەرنج]
+password_label=وشەی تێپەڕ بنووسە بۆ کردنەوەی پەڕگەی pdf.
+password_invalid=وشەی تێپەڕ هەڵەیە. تکایە دووبارە هەوڵ بدەرەوە.
+password_ok=باشە
+password_cancel=پاشگەزبوونەوە
+
+printing_not_supported=ئاگاداربە: چاپکردن بە تەواوی پشتگیر ناکرێت لەم وێبگەڕە.
+printing_not_ready=ئاگاداربە: PDF بە تەواوی بارنەبووە بۆ چاپکردن.
+web_fonts_disabled=جۆرەپیتی وێب ناچالاکە: نەتوانی جۆرەپیتی تێخراوی ناو pdfـەکە بەکاربێت.
+
diff --git a/static/pdf.js/locale/cs/viewer.properties b/static/pdf.js/locale/cs/viewer.properties
index b41de1f14..49f88d7d1 100644
--- a/static/pdf.js/locale/cs/viewer.properties
+++ b/static/pdf.js/locale/cs/viewer.properties
@@ -13,17 +13,20 @@
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Předchozí stránka
+previous.title=Přejde na předchozí stránku
previous_label=Předchozí
-next.title=Další stránka
+next.title=Přejde na následující stránku
next_label=Další
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Stránka:
-page_of=z {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Stránka
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=z {{pagesCount}}
+# 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}} z {{pagesCount}})
zoom_out.title=Zmenší velikost
zoom_out_label=Zmenšit
@@ -35,32 +38,53 @@ presentation_mode_label=Režim prezentace
open_file.title=Otevře soubor
open_file_label=Otevřít
print.title=Vytiskne dokument
-print_label=Tisk
-download.title=Stáhne dokument
-download_label=Stáhnout
-bookmark.title=Aktuální pohled (kopírovat nebo otevřít v novém okně)
-bookmark_label=Aktuální pohled
+print_label=Vytisknout
+save.title=Uložit
+save_label=Uložit
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Stáhnout
+# 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=Stáhnout
+bookmark1.title=Aktuální stránka (zobrazit URL od aktuální stránky)
+bookmark1_label=Aktuální stránka
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Otevřít v aplikaci
+# 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=Otevřít v aplikaci
# Secondary toolbar and context menu
tools.title=Nástroje
tools_label=Nástroje
first_page.title=Přejde na první stránku
-first_page.label=Přejít na první stránku
first_page_label=Přejít na první stránku
last_page.title=Přejde na poslední stránku
-last_page.label=Přejít na poslední stránku
last_page_label=Přejít na poslední stránku
page_rotate_cw.title=Otočí po směru hodin
-page_rotate_cw.label=Otočit po směru hodin
page_rotate_cw_label=Otočit po směru hodin
page_rotate_ccw.title=Otočí proti směru hodin
-page_rotate_ccw.label=Otočit proti směru hodin
page_rotate_ccw_label=Otočit proti směru hodin
-hand_tool_enable.title=Povolit nástroj ručička
-hand_tool_enable_label=Povolit nástroj ručička
-hand_tool_disable.title=Zakázat nástroj ručička
-hand_tool_disable_label=Zakázat nástroj ručička
+cursor_text_select_tool.title=Povolí výběr textu
+cursor_text_select_tool_label=Výběr textu
+cursor_hand_tool.title=Povolí nástroj ručička
+cursor_hand_tool_label=Nástroj ručička
+
+scroll_page.title=Posouvat po stránkách
+scroll_page_label=Posouvání po stránkách
+scroll_vertical.title=Použít svislé posouvání
+scroll_vertical_label=Svislé posouvání
+scroll_horizontal.title=Použít vodorovné posouvání
+scroll_horizontal_label=Vodorovné posouvání
+scroll_wrapped.title=Použít postupné posouvání
+scroll_wrapped_label=Postupné posouvání
+
+spread_none.title=Nesdružovat stránky
+spread_none_label=Žádné sdružení
+spread_odd.title=Sdruží stránky s umístěním lichých vlevo
+spread_odd_label=Sdružení stránek (liché vlevo)
+spread_even.title=Sdruží stránky s umístěním sudých vlevo
+spread_even_label=Sdružení stránek (sudé vlevo)
# Document properties dialog box
document_properties.title=Vlastnosti dokumentu…
@@ -73,9 +97,9 @@ document_properties_kb={{size_kb}} KB ({{size_b}} bajtů)
# 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}} bajtů)
-document_properties_title=Nadpis:
+document_properties_title=Název stránky:
document_properties_author=Autor:
-document_properties_subject=Subjekt:
+document_properties_subject=Předmět:
document_properties_keywords=Klíčová slova:
document_properties_creation_date=Datum vytvoření:
document_properties_modification_date=Datum úpravy:
@@ -86,22 +110,58 @@ document_properties_creator=Vytvořil:
document_properties_producer=Tvůrce PDF:
document_properties_version=Verze PDF:
document_properties_page_count=Počet stránek:
+document_properties_page_size=Velikost stránky:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=na výšku
+document_properties_page_size_orientation_landscape=na šířku
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Dopis
+document_properties_page_size_name_legal=Právní dokument
+# 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=Rychlé zobrazování z webu:
+document_properties_linearized_yes=Ano
+document_properties_linearized_no=Ne
document_properties_close=Zavřít
+print_progress_message=Příprava dokumentu pro tisk…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}} %
+print_progress_close=Zrušit
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Postranní lišta
+toggle_sidebar_notification2.title=Přepnout postranní lištu (dokument obsahuje osnovu/přílohy/vrstvy)
toggle_sidebar_label=Postranní lišta
-outline.title=Zobrazí osnovu dokumentu
-outline_label=Osnova dokumentu
+document_outline.title=Zobrazí osnovu dokumentu (poklepání přepne zobrazení všech položek)
+document_outline_label=Osnova dokumentu
attachments.title=Zobrazí přílohy
attachments_label=Přílohy
+layers.title=Zobrazit vrstvy (poklepáním obnovíte všechny vrstvy do výchozího stavu)
+layers_label=Vrstvy
thumbs.title=Zobrazí náhledy
thumbs_label=Náhledy
+current_outline_item.title=Najít aktuální položku v osnově
+current_outline_item_label=Aktuální položka v osnově
findbar.title=Najde v dokumentu
findbar_label=Najít
+additional_layers=Další vrstvy
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Strana {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,35 +171,40 @@ thumb_page_title=Strana {{page}}
thumb_page_canvas=Náhled strany {{page}}
# Find panel button title and messages
-find_label=Najít:
-find_previous.title=Najde předchozí výskyt hledaného spojení
+find_input.title=Najít
+find_input.placeholder=Najít v dokumentu…
+find_previous.title=Najde předchozí výskyt hledaného textu
find_previous_label=Předchozí
-find_next.title=Najde další výskyt hledaného spojení
+find_next.title=Najde další výskyt hledaného textu
find_next_label=Další
find_highlight=Zvýraznit
find_match_case_label=Rozlišovat velikost
+find_match_diacritics_label=Rozlišovat diakritiku
+find_entire_word_label=Celá slova
find_reached_top=Dosažen začátek dokumentu, pokračuje se od konce
find_reached_bottom=Dosažen konec dokumentu, pokračuje se od začátku
-find_not_found=Hledané spojení nenalezeno
-
-# Error panel labels
-error_more_info=Více informací
-error_less_info=Méně informací
-error_close=Zavřít
-# 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}} (sestavení: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Zpráva: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Zásobník: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Soubor: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Řádka: {{line}}
-rendering_error=Při vykreslování stránky nastala chyba.
+# 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}}. z {{total}} výskytu
+find_match_count[two]={{current}}. z {{total}} výskytů
+find_match_count[few]={{current}}. z {{total}} výskytů
+find_match_count[many]={{current}}. z {{total}} výskytů
+find_match_count[other]={{current}}. z {{total}} výskytů
+# 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]=Více než {{limit}} výskytů
+find_match_count_limit[one]=Více než {{limit}} výskyt
+find_match_count_limit[two]=Více než {{limit}} výskyty
+find_match_count_limit[few]=Více než {{limit}} výskyty
+find_match_count_limit[many]=Více než {{limit}} výskytů
+find_match_count_limit[other]=Více než {{limit}} výskytů
+find_not_found=Hledaný text nenalezen
# Predefined zoom values
page_scale_width=Podle šířky
@@ -148,14 +213,18 @@ page_scale_auto=Automatická velikost
page_scale_actual=Skutečná velikost
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
-page_scale_percent={{scale}}%
+page_scale_percent={{scale}} %
# Loading indicator messages
-loading_error_indicator=Chyba
loading_error=Při nahrávání PDF nastala chyba.
invalid_file_error=Neplatný nebo chybný soubor PDF.
missing_file_error=Chybí soubor PDF.
unexpected_response_error=Neočekávaná odpověď serveru.
+rendering_error=Při vykreslování stránky nastala chyba.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,46 @@ password_cancel=Zrušit
printing_not_supported=Upozornění: Tisk není v tomto prohlížeči plně podporován.
printing_not_ready=Upozornění: Dokument PDF není kompletně načten.
web_fonts_disabled=Webová písma jsou zakázána, proto není možné použít vložená písma PDF.
-document_colors_not_allowed=PDF dokumenty nemají povoleno používat vlastní barvy: volba 'Povolit stránkám používat vlastní barvy' je v prohlížeči deaktivována.
+
+# Editor
+editor_free_text2.title=Text
+editor_free_text2_label=Text
+editor_ink2.title=Kreslení
+editor_ink2_label=Kreslení
+
+editor_stamp1.title=Přidání či úprava obrázků
+editor_stamp1_label=Přidání či úprava obrázků
+
+free_text2_default_content=Začněte psát…
+
+# Editor Parameters
+editor_free_text_color=Barva
+editor_free_text_size=Velikost
+editor_ink_color=Barva
+editor_ink_thickness=Tloušťka
+editor_ink_opacity=Průhlednost
+
+editor_stamp_add_image_label=Přidat obrázek
+editor_stamp_add_image.title=Přidat obrázek
+
+# Editor aria
+editor_free_text2_aria_label=Textový editor
+editor_ink2_aria_label=Editor kreslení
+editor_ink_canvas_aria_label=Uživatelem vytvořený obrázek
+
+# 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=Náhradní popis
+editor_alt_text_edit_button_label=Upravit náhradní popis
+editor_alt_text_dialog_label=Vyberte možnost
+editor_alt_text_dialog_description=Náhradní popis pomáhá, když lidé obrázek nevidí nebo když se nenačítá.
+editor_alt_text_add_description_label=Přidat popis
+editor_alt_text_add_description_description=Snažte se o 1-2 věty, které popisují předmět, prostředí nebo činnosti.
+editor_alt_text_mark_decorative_label=Označit jako dekorativní
+editor_alt_text_mark_decorative_description=Používá se pro okrasné obrázky, jako jsou rámečky nebo vodoznaky.
+editor_alt_text_cancel_button=Zrušit
+editor_alt_text_save_button=Uložit
+editor_alt_text_decorative_tooltip=Označen jako dekorativní
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Například: “Mladý muž si sedá ke stolu, aby se najedl.”
diff --git a/static/pdf.js/locale/csb/viewer.properties b/static/pdf.js/locale/csb/viewer.properties
deleted file mode 100644
index 293a353c1..000000000
--- a/static/pdf.js/locale/csb/viewer.properties
+++ /dev/null
@@ -1,134 +0,0 @@
-# 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/.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Pòprzédnô strona
-previous_label=Pòprzédnô
-next.title=Nôslédnô strona
-next_label=Nôslédnô
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Strona:
-page_of=z {{pageCount}}
-
-zoom_out.title=Zmniészë
-zoom_out_label=Zmniészë
-zoom_in.title=Zwikszë
-zoom_in_label=Wiôlgòsc
-zoom.title=Wiôlgòsc
-print.title=Drëkùjë
-print_label=Drëkùjë
-presentation_mode.title=Przéńdzë w trib prezentacje
-presentation_mode_label=Trib prezentacje
-open_file.title=Òtemkni lopk
-open_file_label=Òtemkni
-download.title=Zladënk
-download_label=Zladënk
-bookmark.title=Spamiãtôj wëzdrzatk (kòpérëje, abò òtemkni w nowim òknnie)
-bookmark_label=Aktualny wëzdrzatk
-
-find_label=Szëkôj:
-find_previous.title=Biéj do pòprzédnégò wënikù szëkbë
-find_previous_label=Pòprzédny
-find_next.title=Biéj do nôslédnégò wënikù szëkbë
-find_next_label=Nôslédny
-find_highlight=Pòdszkrzëni wszëtczé
-find_match_case_label=Rozeznôwôj miarã lëterów
-find_not_found=Nie nalôzł tekstu
-find_reached_bottom=Doszedł do kùńca dokùmentu, zaczinającë òd górë
-find_reached_top=Doszedł do pòczątkù dokùmentu, zaczinającë òd dołù
-
-toggle_sidebar.title=Pòsuwk wëbiérkù
-toggle_sidebar_label=Pòsuwk wëbiérkù
-
-outline.title=Wëskrzëni òbcéch dokùmentu
-outline_label=Òbcéch dokùmentu
-thumbs.title=Wëskrzëni miniaturë
-thumbs_label=Miniaturë
-findbar.title=Przeszëkôj dokùment
-findbar_label=Nalezë
-tools_label=Nôrzãdła
-first_page.title=Biéj do pierszi stronë
-first_page.label=Biéj do pierszi stronë
-last_page.label=Biéj do òstatny stronë
-invalid_file_error=Lëchi ôrt, abò pòpsëti lopk PDF.
-
-
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=Strona {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=Miniatura stronë {{page}}
-
-# Error panel labels
-error_more_info=Wicy infòrmacje
-error_less_info=Mni infòrmacje
-error_close=Close
-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: {{wiadło}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stack: {{stóg}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=File: {{lopk}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Line: {{line}}
-rendering_error=Pòkôza sã fela przë renderowanim stronë.
-
-# Predefined zoom values
-page_scale_width=Szérzawa stronë
-page_scale_fit=Dopasëje stronã
-page_scale_auto=Aùtomatnô wiôlgòsc
-page_scale_actual=Naturalnô wiôlgòsc
-
-# Loading indicator messages
-# LOCALIZATION NOTE (error_line): "{{[percent}}" will be replaced with a percentage
-loading_error_indicator=Fela
-loading_error=Pòkôza sã fela przë wczëtiwanim PDFù.
-
-# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
-# "{{[type}}" will be replaced with an annotation type from a list defined in
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-
-request_password=PDF je zabezpieczony parolą:
-printing_not_supported = Òstrzéga: przezérnik nie je do kùńca wspieróny przez drëkôrze
-
-# Context menu
-page_rotate_cw.label=Òbkrãcë w prawò
-page_rotate_ccw.label=Òbkrãcë w lewò
-
-
-last_page.title=Biéj do pòprzédny stronë
-last_page_label=Biéj do pòprzédny stronë
-page_rotate_cw.title=Òbkrãcë w prawò
-page_rotate_cw_label=Òbkrãcë w prawò
-page_rotate_ccw.title=Òbkrãcë w lewò
-page_rotate_ccw_label=Òbkrãcë w lewò
-
-
-web_fonts_disabled=Sécowé czconczi są wëłączoné: włączë je, bë móc ùżiwac òsadzonëch czconków w lopkach PDF.
-
-
-missing_file_error=Felëje lopka PDF.
-printing_not_ready = Òstrzéga: lopk mùszi sã do kùńca wczëtac zanim gò mòże drëkòwac
-
-document_colors_disabled=Dokùmentë PDF nie mògą ù swòjich farwów: \'Pòzwòlë stronóm wëbierac swòje farwë\' je wëłączoné w przezérnikù.
-invalid_password=Lëchô parola.
-text_annotation_type.alt=[Adnotacjô {{type}}]
-
-tools.title=Tools
-first_page_label=Go to First Page
-
-
diff --git a/static/pdf.js/locale/cy/viewer.properties b/static/pdf.js/locale/cy/viewer.properties
index 47db21834..005f742de 100644
--- a/static/pdf.js/locale/cy/viewer.properties
+++ b/static/pdf.js/locale/cy/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Blaenorol
next.title=Tudalen Nesaf
next_label=Nesaf
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Tudalen:
-page_of=o {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Tudalen
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=o {{pagesCount}}
+# 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}} o {{pagesCount}})
zoom_out.title=Chwyddo Allan
zoom_out_label=Chwyddo Allan
@@ -36,31 +39,52 @@ open_file.title=Agor Ffeil
open_file_label=Agor
print.title=Argraffu
print_label=Argraffu
-download.title=Llwyth
-download_label=Llwytho i Lawr
-bookmark.title=Golwg cyfredol (copïo neu agor ffenestr newydd)
-bookmark_label=Golwg Gyfredol
+save.title=Cadw
+save_label=Cadw
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Llwytho i Lawr
+# 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=Llwytho i Lawr
+bookmark1.title=Tudalen Gyfredol (Gweld URL o'r Dudalen Gyfredol)
+bookmark1_label=Tudalen Gyfredol
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Agor yn yr ap
+# 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=Agor yn yr ap
# Secondary toolbar and context menu
tools.title=Offer
tools_label=Offer
first_page.title=Mynd i'r Dudalen Gyntaf
-first_page.label=Mynd i'r Dudalen Gyntaf
first_page_label=Mynd i'r Dudalen Gyntaf
last_page.title=Mynd i'r Dudalen Olaf
-last_page.label=Mynd i'r Dudalen Olaf
last_page_label=Mynd i'r Dudalen Olaf
page_rotate_cw.title=Cylchdroi Clocwedd
-page_rotate_cw.label=Cylchdroi Clocwedd
page_rotate_cw_label=Cylchdroi Clocwedd
page_rotate_ccw.title=Cylchdroi Gwrthglocwedd
-page_rotate_ccw.label=Cylchdroi Gwrthglocwedd
page_rotate_ccw_label=Cylchdroi Gwrthglocwedd
-hand_tool_enable.title=Galluogi offeryn llaw
-hand_tool_enable_label=Galluogi offeryn llaw
-hand_tool_disable.title=Analluogi offeryn llaw
-hand_tool_disable_label=Analluogi offeryn llaw
+cursor_text_select_tool.title=Galluogi Dewis Offeryn Testun
+cursor_text_select_tool_label=Offeryn Dewis Testun
+cursor_hand_tool.title=Galluogi Offeryn Llaw
+cursor_hand_tool_label=Offeryn Llaw
+
+scroll_page.title=Defnyddio Sgrolio Tudalen
+scroll_page_label=Sgrolio Tudalen
+scroll_vertical.title=Defnyddio Sgrolio Fertigol
+scroll_vertical_label=Sgrolio Fertigol
+scroll_horizontal.title=Defnyddio Sgrolio Llorweddol
+scroll_horizontal_label=Sgrolio Llorweddol
+scroll_wrapped.title=Defnyddio Sgrolio Amlapio
+scroll_wrapped_label=Sgrolio Amlapio
+
+spread_none.title=Peidio uno trawsdaleniadau
+spread_none_label=Dim Trawsdaleniadau
+spread_odd.title=Uno trawsdaleniadau gan gychwyn gyda thudalennau odrif
+spread_odd_label=Trawsdaleniadau Odrif
+spread_even.title=Uno trawsdaleniadau gan gychwyn gyda thudalennau eilrif
+spread_even_label=Trawsdaleniadau Eilrif
# Document properties dialog box
document_properties.title=Priodweddau Dogfen…
@@ -86,22 +110,58 @@ document_properties_creator=Crewr:
document_properties_producer=Cynhyrchydd PDF:
document_properties_version=Fersiwn PDF:
document_properties_page_count=Cyfrif Tudalen:
+document_properties_page_size=Maint Tudalen:
+document_properties_page_size_unit_inches=o fewn
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=portread
+document_properties_page_size_orientation_landscape=tirlun
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Llythyr
+document_properties_page_size_name_legal=Cyfreithiol
+# 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=Golwg Gwe Cyflym:
+document_properties_linearized_yes=Iawn
+document_properties_linearized_no=Na
document_properties_close=Cau
+print_progress_message=Paratoi dogfen ar gyfer ei hargraffu…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Diddymu
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Toglo'r Bar Ochr
+toggle_sidebar_notification2.title=Toglo'r Bar Ochr (mae'r ddogfen yn cynnwys amlinelliadau/atodiadau/haenau)
toggle_sidebar_label=Toglo'r Bar Ochr
-outline.title=Dangos Amlinell Dogfen
-outline_label=Amlinelliad Dogfen
+document_outline.title=Dangos Amlinell Dogfen (clic dwbl i ymestyn/cau pob eitem)
+document_outline_label=Amlinelliad Dogfen
attachments.title=Dangos Atodiadau
attachments_label=Atodiadau
+layers.title=Dangos Haenau (cliciwch ddwywaith i ailosod yr holl haenau i'r cyflwr rhagosodedig)
+layers_label=Haenau
thumbs.title=Dangos Lluniau Bach
thumbs_label=Lluniau Bach
+current_outline_item.title=Canfod yr Eitem Amlinellol Gyfredol
+current_outline_item_label=Yr Eitem Amlinellol Gyfredol
findbar.title=Canfod yn y Ddogfen
findbar_label=Canfod
+additional_layers=Haenau Ychwanegol
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Tudalen {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Tudalen {{page}}
thumb_page_canvas=Llun Bach Tudalen {{page}}
# Find panel button title and messages
-find_label=Canfod:
+find_input.title=Canfod
+find_input.placeholder=Canfod yn y ddogfen…
find_previous.title=Canfod enghraifft flaenorol o'r ymadrodd
find_previous_label=Blaenorol
find_next.title=Canfod enghraifft nesaf yr ymadrodd
find_next_label=Nesaf
-find_highlight=Amlygu popeth
-find_match_case_label=Cydweddu maint
+find_highlight=Amlygu Popeth
+find_match_case_label=Cydweddu Maint
+find_match_diacritics_label=Diacritigau Cyfatebol
+find_entire_word_label=Geiriau Cyfan
find_reached_top=Wedi cyrraedd brig y dudalen, parhau o'r gwaelod
find_reached_bottom=Wedi cyrraedd diwedd y dudalen, parhau o'r brig
+# 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}} o {{total}} cydweddiad
+find_match_count[two]={{current}} o {{total}} cydweddiad
+find_match_count[few]={{current}} o {{total}} cydweddiad
+find_match_count[many]={{current}} o {{total}} cydweddiad
+find_match_count[other]={{current}} o {{total}} cydweddiad
+# 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]=Mwy na {{limit}} cydweddiad
+find_match_count_limit[one]=Mwy na {{limit}} cydweddiad
+find_match_count_limit[two]=Mwy na {{limit}} cydweddiad
+find_match_count_limit[few]=Mwy na {{limit}} cydweddiad
+find_match_count_limit[many]=Mwy na {{limit}} cydweddiad
+find_match_count_limit[other]=Mwy na {{limit}} cydweddiad
find_not_found=Heb ganfod ymadrodd
-# Error panel labels
-error_more_info=Rhagor o Wybodaeth
-error_less_info=Llai o wybodaeth
-error_close=Cau
-# 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=Neges: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stac: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Ffeil: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Llinell: {{line}}
-rendering_error=Digwyddodd gwall wrth adeiladu'r dudalen.
-
# Predefined zoom values
page_scale_width=Lled Tudalen
page_scale_fit=Ffit Tudalen
@@ -151,11 +216,15 @@ page_scale_actual=Maint Gwirioneddol
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Gwall
loading_error=Digwyddodd gwall wrth lwytho'r PDF.
invalid_file_error=Ffeil PDF annilys neu llwgr.
missing_file_error=Ffeil PDF coll.
unexpected_response_error=Ymateb annisgwyl gan y gweinydd.
+rendering_error=Digwyddodd gwall wrth adeiladu'r dudalen.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,32 @@ password_cancel=Diddymu
printing_not_supported=Rhybudd: Nid yw argraffu yn cael ei gynnal yn llawn gan y porwr.
printing_not_ready=Rhybudd: Nid yw'r PDF wedi ei lwytho'n llawn ar gyfer argraffu.
web_fonts_disabled=Ffontiau gwe wedi eu hanalluogi: methu defnyddio ffontiau PDF mewnblanedig.
-document_colors_not_allowed=Nid oes caniatâd i ddogfennau PDF i ddefnyddio eu lliwiau eu hunain: Mae 'Caniatáu i dudalennau ddefnyddio eu lliwiau eu hunain' wedi ei atal yn y porwr.
+
+# Editor
+editor_free_text2.title=Testun
+editor_free_text2_label=Testun
+editor_ink2.title=Lluniadu
+editor_ink2_label=Lluniadu
+
+editor_stamp.title=Ychwanegu delwedd
+editor_stamp_label=Ychwanegu delwedd
+
+editor_stamp1.title=Ychwanegu neu olygu delweddau
+editor_stamp1_label=Ychwanegu neu olygu delweddau
+
+free_text2_default_content=Cychwyn teipio…
+
+# Editor Parameters
+editor_free_text_color=Lliw
+editor_free_text_size=Maint
+editor_ink_color=Lliw
+editor_ink_thickness=Trwch
+editor_ink_opacity=Didreiddedd
+
+editor_stamp_add_image_label=Ychwanegu delwedd
+editor_stamp_add_image.title=Ychwanegu delwedd
+
+# Editor aria
+editor_free_text2_aria_label=Golygydd Testun
+editor_ink2_aria_label=Golygydd Lluniadu
+editor_ink_canvas_aria_label=Delwedd wedi'i chreu gan ddefnyddwyr
diff --git a/static/pdf.js/locale/da/viewer.properties b/static/pdf.js/locale/da/viewer.properties
index 33a1e1dd9..305238be3 100644
--- a/static/pdf.js/locale/da/viewer.properties
+++ b/static/pdf.js/locale/da/viewer.properties
@@ -18,56 +18,84 @@ previous_label=Forrige
next.title=Næste side
next_label=Næste
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Side:
-page_of=af {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Side
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=af {{pagesCount}}
+# 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}} af {{pagesCount}})
zoom_out.title=Zoom ud
zoom_out_label=Zoom ud
zoom_in.title=Zoom ind
zoom_in_label=Zoom ind
zoom.title=Zoom
-print.title=Udskriv
-print_label=Udskriv
presentation_mode.title=Skift til fuldskærmsvisning
presentation_mode_label=Fuldskærmsvisning
open_file.title=Åbn fil
open_file_label=Åbn
-download.title=Hent
-download_label=Hent
-bookmark.title=Aktuel visning (kopier eller åbn i et nyt vindue)
-bookmark_label=Aktuel visning
+print.title=Udskriv
+print_label=Udskriv
+save.title=Gem
+save_label=Gem
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Hent
+# 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=Hent
+bookmark1.title=Aktuel side (vis URL fra den aktuelle side)
+bookmark1_label=Aktuel side
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Åbn i 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=Åbn i app
# Secondary toolbar and context menu
tools.title=Funktioner
tools_label=Funktioner
first_page.title=Gå til første side
-first_page.label=Gå til første side
first_page_label=Gå til første side
last_page.title=Gå til sidste side
-last_page.label=Gå til sidste side
last_page_label=Gå til sidste side
page_rotate_cw.title=Roter med uret
-page_rotate_cw.label=Roter med uret
page_rotate_cw_label=Roter med uret
page_rotate_ccw.title=Roter mod uret
-page_rotate_ccw.label=Roter mod uret
page_rotate_ccw_label=Roter mod uret
-hand_tool_enable.title=Aktiver håndværktøj
-hand_tool_enable_label=Aktiver håndværktøj
-hand_tool_disable.title=Deaktiver håndværktøj
-hand_tool_disable_label=Deaktiver håndværktøj
+cursor_text_select_tool.title=Aktiver markeringsværktøj
+cursor_text_select_tool_label=Markeringsværktøj
+cursor_hand_tool.title=Aktiver håndværktøj
+cursor_hand_tool_label=Håndværktøj
+
+scroll_page.title=Brug sidescrolling
+scroll_page_label=Sidescrolling
+scroll_vertical.title=Brug vertikal scrolling
+scroll_vertical_label=Vertikal scrolling
+scroll_horizontal.title=Brug horisontal scrolling
+scroll_horizontal_label=Horisontal scrolling
+scroll_wrapped.title=Brug ombrudt scrolling
+scroll_wrapped_label=Ombrudt scrolling
+
+spread_none.title=Vis enkeltsider
+spread_none_label=Enkeltsider
+spread_odd.title=Vis opslag med ulige sidenumre til venstre
+spread_odd_label=Opslag med forside
+spread_even.title=Vis opslag med lige sidenumre til venstre
+spread_even_label=Opslag uden forside
# Document properties dialog box
document_properties.title=Dokumentegenskaber…
document_properties_label=Dokumentegenskaber…
document_properties_file_name=Filnavn:
document_properties_file_size=Filstørrelse:
+# 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)
+# 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_title=Titel:
document_properties_author=Forfatter:
@@ -75,27 +103,65 @@ document_properties_subject=Emne:
document_properties_keywords=Nøgleord:
document_properties_creation_date=Oprettet:
document_properties_modification_date=Redigeret:
+# 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=Program:
document_properties_producer=PDF-producent:
document_properties_version=PDF-version:
document_properties_page_count=Antal sider:
+document_properties_page_size=Sidestørrelse:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=stående
+document_properties_page_size_orientation_landscape=liggende
+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=Hurtig web-visning:
+document_properties_linearized_yes=Ja
+document_properties_linearized_no=Nej
document_properties_close=Luk
+print_progress_message=Forbereder dokument til udskrivning…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Annuller
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Slå sidepanel til eller fra
+toggle_sidebar_notification2.title=Slå sidepanel til eller fra (dokumentet indeholder disposition/vedhæftede filer/lag)
toggle_sidebar_label=Slå sidepanel til eller fra
-outline.title=Vis dokumentets disposition
-outline_label=Dokument-disposition
+document_outline.title=Vis dokumentets disposition (dobbeltklik for at vise/skjule alle elementer)
+document_outline_label=Dokument-disposition
attachments.title=Vis vedhæftede filer
attachments_label=Vedhæftede filer
+layers.title=Vis lag (dobbeltklik for at nulstille alle lag til standard-tilstanden)
+layers_label=Lag
thumbs.title=Vis miniaturer
thumbs_label=Miniaturer
+current_outline_item.title=Find det aktuelle dispositions-element
+current_outline_item_label=Aktuelt dispositions-element
findbar.title=Find i dokument
findbar_label=Find
+additional_layers=Yderligere lag
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Side {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -105,36 +171,41 @@ thumb_page_title=Side {{page}}
thumb_page_canvas=Miniature af side {{page}}
# Find panel button title and messages
-find_label=Find:
+find_input.title=Find
+find_input.placeholder=Find i dokument…
find_previous.title=Find den forrige forekomst
find_previous_label=Forrige
find_next.title=Find den næste forekomst
find_next_label=Næste
find_highlight=Fremhæv alle
find_match_case_label=Forskel på store og små bogstaver
+find_match_diacritics_label=Diakritiske tegn
+find_entire_word_label=Hele ord
find_reached_top=Toppen af siden blev nået, fortsatte fra bunden
find_reached_bottom=Bunden af siden blev nået, fortsatte fra toppen
+# 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}} af {{total}} forekomst
+find_match_count[two]={{current}} af {{total}} forekomster
+find_match_count[few]={{current}} af {{total}} forekomster
+find_match_count[many]={{current}} af {{total}} forekomster
+find_match_count[other]={{current}} af {{total}} forekomster
+# 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]=Mere end {{limit}} forekomster
+find_match_count_limit[one]=Mere end {{limit}} forekomst
+find_match_count_limit[two]=Mere end {{limit}} forekomster
+find_match_count_limit[few]=Mere end {{limit}} forekomster
+find_match_count_limit[many]=Mere end {{limit}} forekomster
+find_match_count_limit[other]=Mere end {{limit}} forekomster
find_not_found=Der blev ikke fundet noget
-# Error panel labels
-error_more_info=Mere information
-error_less_info=Mindre information
-error_close=Luk
-# 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=Fejlmeddelelse: {{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=Fil: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linje: {{line}}
-rendering_error=Der opstod en fejl ved generering af siden.
-
# Predefined zoom values
page_scale_width=Sidebredde
page_scale_fit=Tilpas til side
@@ -145,11 +216,15 @@ page_scale_actual=Faktisk størrelse
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Fejl
loading_error=Der opstod en fejl ved indlæsning af PDF-filen.
invalid_file_error=PDF-filen er ugyldig eller ødelagt.
missing_file_error=Manglende PDF-fil.
unexpected_response_error=Uventet svar fra serveren.
+rendering_error=Der opstod en fejl ved generering af siden.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -164,4 +239,32 @@ password_cancel=Fortryd
printing_not_supported=Advarsel: Udskrivning er ikke fuldt understøttet af browseren.
printing_not_ready=Advarsel: PDF-filen er ikke fuldt indlæst til udskrivning.
web_fonts_disabled=Webskrifttyper er deaktiverede. De indlejrede skrifttyper i PDF-filen kan ikke anvendes.
-document_colors_not_allowed=PDF-dokumenter må ikke bruge deres egne farver: 'Tillad sider at vælge deres egne farver' er deaktiveret i browseren.
+
+# Editor
+editor_free_text2.title=Tekst
+editor_free_text2_label=Tekst
+editor_ink2.title=Tegn
+editor_ink2_label=Tegn
+
+editor_stamp.title=Tilføj et billede
+editor_stamp_label=Tilføj et billede
+
+editor_stamp1.title=Tilføj eller rediger billeder
+editor_stamp1_label=Tilføj eller rediger billeder
+
+free_text2_default_content=Begynd at skrive…
+
+# Editor Parameters
+editor_free_text_color=Farve
+editor_free_text_size=Størrelse
+editor_ink_color=Farve
+editor_ink_thickness=Tykkelse
+editor_ink_opacity=Uigennemsigtighed
+
+editor_stamp_add_image_label=Tilføj billede
+editor_stamp_add_image.title=Tilføj billede
+
+# Editor aria
+editor_free_text2_aria_label=Teksteditor
+editor_ink2_aria_label=Tegnings-editor
+editor_ink_canvas_aria_label=Brugeroprettet billede
diff --git a/static/pdf.js/locale/de/viewer.properties b/static/pdf.js/locale/de/viewer.properties
index 0e308e9d0..a370ba4ec 100644
--- a/static/pdf.js/locale/de/viewer.properties
+++ b/static/pdf.js/locale/de/viewer.properties
@@ -18,56 +18,84 @@ previous_label=Zurück
next.title=Eine Seite vor
next_label=Vor
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Seite:
-page_of=von {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Seite
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=von {{pagesCount}}
+# 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_label=Verkleinern
zoom_in.title=Vergrößern
zoom_in_label=Vergrößern
zoom.title=Zoom
-print.title=Drucken
-print_label=Drucken
presentation_mode.title=In Präsentationsmodus wechseln
presentation_mode_label=Präsentationsmodus
open_file.title=Datei öffnen
open_file_label=Öffnen
-download.title=Dokument speichern
-download_label=Speichern
-bookmark.title=Aktuelle Ansicht (zum Kopieren oder Öffnen in einem neuen Fenster)
-bookmark_label=Aktuelle Ansicht
+print.title=Drucken
+print_label=Drucken
+save.title=Speichern
+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
tools.title=Werkzeuge
tools_label=Werkzeuge
first_page.title=Erste Seite anzeigen
-first_page.label=Erste Seite anzeigen
first_page_label=Erste Seite anzeigen
last_page.title=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.label=Im Uhrzeigersinn drehen
page_rotate_cw_label=Im Uhrzeigersinn drehen
page_rotate_ccw.title=Gegen Uhrzeigersinn drehen
-page_rotate_ccw.label=Gegen Uhrzeigersinn drehen
page_rotate_ccw_label=Gegen Uhrzeigersinn drehen
-hand_tool_enable.title=Hand-Werkzeug aktivieren
-hand_tool_enable_label=Hand-Werkzeug aktivieren
-hand_tool_disable.title=Hand-Werkzeug deaktivieren
-hand_tool_disable_label=Hand-Werkzeug deaktivieren
+cursor_text_select_tool.title=Textauswahl-Werkzeug aktivieren
+cursor_text_select_tool_label=Textauswahl-Werkzeug
+cursor_hand_tool.title=Hand-Werkzeug aktivieren
+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.title=Dokumenteigenschaften
document_properties_label=Dokumenteigenschaften…
document_properties_file_name=Dateiname:
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)
+# 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_title=Titel:
document_properties_author=Autor:
@@ -75,27 +103,65 @@ document_properties_subject=Thema:
document_properties_keywords=Stichwörter:
document_properties_creation_date=Erstelldatum:
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_creator=Anwendung:
document_properties_producer=PDF erstellt mit:
document_properties_version=PDF-Version:
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
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Sidebar umschalten
+toggle_sidebar_notification2.title=Sidebar umschalten (Dokument enthält Dokumentstruktur/Anhänge/Ebenen)
toggle_sidebar_label=Sidebar umschalten
-outline.title=Dokumentstruktur anzeigen
-outline_label=Dokumentstruktur
+document_outline.title=Dokumentstruktur anzeigen (Doppelklicken, um alle Einträge aus- bzw. einzuklappen)
+document_outline_label=Dokumentstruktur
attachments.title=Anhänge anzeigen
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_label=Miniaturansichten
+current_outline_item.title=Aktuelles Struktur-Element finden
+current_outline_item_label=Aktuelles Struktur-Element
findbar.title=Dokument durchsuchen
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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -105,36 +171,41 @@ thumb_page_title=Seite {{page}}
thumb_page_canvas=Miniaturansicht von Seite {{page}}
# Find panel button title and messages
-find_label=Suchen:
-find_previous.title=Vorheriges Auftreten des Suchbegriffs finden
+find_input.title=Suchen
+find_input.placeholder=Dokument durchsuchen…
+find_previous.title=Vorheriges Vorkommen des Suchbegriffs finden
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_highlight=Alle hervorheben
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_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
-# 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
page_scale_width=Seitenbreite
page_scale_fit=Seitengröße
@@ -142,14 +213,18 @@ page_scale_auto=Automatischer Zoom
page_scale_actual=Originalgröße
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
-page_scale_percent={{scale}}%
+page_scale_percent={{scale}} %
# Loading indicator messages
-loading_error_indicator=Fehler
loading_error=Beim Laden der PDF-Datei trat ein Fehler auf.
invalid_file_error=Ungültige oder beschädigte PDF-Datei
missing_file_error=Fehlende PDF-Datei
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -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_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.
-document_colors_not_allowed=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
diff --git a/static/pdf.js/locale/dsb/viewer.properties b/static/pdf.js/locale/dsb/viewer.properties
new file mode 100644
index 000000000..4094e149e
--- /dev/null
+++ b/static/pdf.js/locale/dsb/viewer.properties
@@ -0,0 +1,284 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Pjerwjejšny bok
+previous_label=Slědk
+next.title=Pśiducy bok
+next_label=Dalej
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Bok
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=z {{pagesCount}}
+# 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}} z {{pagesCount}})
+
+zoom_out.title=Pómjeńšyś
+zoom_out_label=Pómjeńšyś
+zoom_in.title=Pówětšyś
+zoom_in_label=Pówětšyś
+zoom.title=Skalěrowanje
+presentation_mode.title=Do prezentaciskego modusa pśejś
+presentation_mode_label=Prezentaciski modus
+open_file.title=Dataju wócyniś
+open_file_label=Wócyniś
+print.title=Śišćaś
+print_label=Śišćaś
+save.title=Składowaś
+save_label=Składowaś
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Ześěgnuś
+# 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=Ześěgnuś
+bookmark1.title=Aktualny bok (URL z aktualnego boka pokazaś)
+bookmark1_label=Aktualny bok
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=W nałoženju wócyniś
+# 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=W nałoženju wócyniś
+
+# Secondary toolbar and context menu
+tools.title=Rědy
+tools_label=Rědy
+first_page.title=K prědnemu bokoju
+first_page_label=K prědnemu bokoju
+last_page.title=K slědnemu bokoju
+last_page_label=K slědnemu bokoju
+page_rotate_cw.title=Wobwjertnuś ako špěra źo
+page_rotate_cw_label=Wobwjertnuś ako špěra źo
+page_rotate_ccw.title=Wobwjertnuś nawopaki ako špěra źo
+page_rotate_ccw_label=Wobwjertnuś nawopaki ako špěra źo
+
+cursor_text_select_tool.title=Rěd za wuběranje teksta zmóžniś
+cursor_text_select_tool_label=Rěd za wuběranje teksta
+cursor_hand_tool.title=Rucny rěd zmóžniś
+cursor_hand_tool_label=Rucny rěd
+
+scroll_page.title=Kulanje boka wužywaś
+scroll_page_label=Kulanje boka
+scroll_vertical.title=Wertikalne suwanje wužywaś
+scroll_vertical_label=Wertikalne suwanje
+scroll_horizontal.title=Horicontalne suwanje wužywaś
+scroll_horizontal_label=Horicontalne suwanje
+scroll_wrapped.title=Pózlažke suwanje wužywaś
+scroll_wrapped_label=Pózlažke suwanje
+
+spread_none.title=Boki njezwězaś
+spread_none_label=Žeden dwójny bok
+spread_odd.title=Boki zachopinajucy z njerownymi bokami zwězaś
+spread_odd_label=Njerowne boki
+spread_even.title=Boki zachopinajucy z rownymi bokami zwězaś
+spread_even_label=Rowne boki
+
+# Document properties dialog box
+document_properties.title=Dokumentowe kakosći…
+document_properties_label=Dokumentowe kakosći…
+document_properties_file_name=Mě dataje:
+document_properties_file_size=Wjelikosć dataje:
+# 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}} bajtow)
+# 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}} bajtow)
+document_properties_title=Titel:
+document_properties_author=Awtor:
+document_properties_subject=Tema:
+document_properties_keywords=Klucowe słowa:
+document_properties_creation_date=Datum napóranja:
+document_properties_modification_date=Datum změny:
+# 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=Awtor:
+document_properties_producer=PDF-gótowaŕ:
+document_properties_version=PDF-wersija:
+document_properties_page_count=Licba bokow:
+document_properties_page_size=Wjelikosć boka:
+document_properties_page_size_unit_inches=col
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=wusoki format
+document_properties_page_size_orientation_landscape=prěcny format
+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=Jo
+document_properties_linearized_no=Ně
+document_properties_close=Zacyniś
+
+print_progress_message=Dokument pśigótujo se za śišćanje…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Pśetergnuś
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Bócnicu pokazaś/schowaś
+toggle_sidebar_notification2.title=Bocnicu pśešaltowaś (dokument rozrědowanje/pśipiski/warstwy wopśimujo)
+toggle_sidebar_label=Bócnicu pokazaś/schowaś
+document_outline.title=Dokumentowe naraźenje pokazaś (dwójne kliknjenje, aby se wšykne zapiski pokazali/schowali)
+document_outline_label=Dokumentowa struktura
+attachments.title=Pśidanki pokazaś
+attachments_label=Pśidanki
+layers.title=Warstwy pokazaś (klikniśo dwójcy, aby wšykne warstwy na standardny staw slědk stajił)
+layers_label=Warstwy
+thumbs.title=Miniatury pokazaś
+thumbs_label=Miniatury
+current_outline_item.title=Aktualny rozrědowański zapisk pytaś
+current_outline_item_label=Aktualny rozrědowański zapisk
+findbar.title=W dokumenśe pytaś
+findbar_label=Pytaś
+
+additional_layers=Dalšne warstwy
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Bok {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Bok {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura boka {{page}}
+
+# Find panel button title and messages
+find_input.title=Pytaś
+find_input.placeholder=W dokumenśe pytaś…
+find_previous.title=Pjerwjejšne wustupowanje pytańskego wuraza pytaś
+find_previous_label=Slědk
+find_next.title=Pśidujuce wustupowanje pytańskego wuraza pytaś
+find_next_label=Dalej
+find_highlight=Wšykne wuzwignuś
+find_match_case_label=Na wjelikopisanje źiwaś
+find_match_diacritics_label=Diakritiske znamuška wužywaś
+find_entire_word_label=Cełe słowa
+find_reached_top=Zachopjeńk dokumenta dostany, pókšacujo se z kóńcom
+find_reached_bottom=Kóńc dokumenta dostany, pókšacujo se ze zachopjeńkom
+# 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}} z {{total}} wótpowědnika
+find_match_count[two]={{current}} z {{total}} wótpowědnikowu
+find_match_count[few]={{current}} z {{total}} wótpowědnikow
+find_match_count[many]={{current}} z {{total}} wótpowědnikow
+find_match_count[other]={{current}} z {{total}} wótpowědnikow
+# 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]=Wěcej ako {{limit}} wótpowědnikow
+find_match_count_limit[one]=Wěcej ako {{limit}} wótpowědnik
+find_match_count_limit[two]=Wěcej ako {{limit}} wótpowědnika
+find_match_count_limit[few]=Wěcej ako {{limit}} wótpowědniki
+find_match_count_limit[many]=Wěcej ako {{limit}} wótpowědnikow
+find_match_count_limit[other]=Wěcej ako {{limit}} wótpowědnikow
+find_not_found=Pytański wuraz njejo se namakał
+
+# Predefined zoom values
+page_scale_width=Šyrokosć boka
+page_scale_fit=Wjelikosć boka
+page_scale_auto=Awtomatiske skalěrowanje
+page_scale_actual=Aktualna wjelikosć
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Pśi zacytowanju PDF jo zmólka nastała.
+invalid_file_error=Njepłaśiwa abo wobškóźona PDF-dataja.
+missing_file_error=Felujuca PDF-dataja.
+unexpected_response_error=Njewócakane serwerowe wótegrono.
+rendering_error=Pśi zwobraznjanju boka jo zmólka nastała.
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Typ pśipiskow: {{type}}]
+password_label=Zapódajśo gronidło, aby PDF-dataju wócynił.
+password_invalid=Njepłaśiwe gronidło. Pšosym wopytajśo hyšći raz.
+password_ok=W pórěźe
+password_cancel=Pśetergnuś
+
+printing_not_supported=Warnowanje: Śišćanje njepódpěra se połnje pśez toś ten wobglědowak.
+printing_not_ready=Warnowanje: PDF njejo se za śišćanje dopołnje zacytał.
+web_fonts_disabled=Webpisma su znjemóžnjone: njejo móžno, zasajźone PDF-pisma wužywaś.
+
+# Editor
+editor_free_text2.title=Tekst
+editor_free_text2_label=Tekst
+editor_ink2.title=Kresliś
+editor_ink2_label=Kresliś
+
+editor_stamp1.title=Wobraze pśidaś abo wobźěłaś
+editor_stamp1_label=Wobraze pśidaś abo wobźěłaś
+
+free_text2_default_content=Zachopśo pisaś…
+
+# Editor Parameters
+editor_free_text_color=Barwa
+editor_free_text_size=Wjelikosć
+editor_ink_color=Barwa
+editor_ink_thickness=Tłustosć
+editor_ink_opacity=Opacita
+
+editor_stamp_add_image_label=Wobraz pśidaś
+editor_stamp_add_image.title=Wobraz pśidaś
+
+# Editor aria
+editor_free_text2_aria_label=Tekstowy editor
+editor_ink2_aria_label=Kresleński editor
+editor_ink_canvas_aria_label=Wobraz napórany wót wužywarja
+
+# 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=Alternatiwny tekst
+editor_alt_text_edit_button_label=Alternatiwny tekst wobźěłaś
+editor_alt_text_dialog_label=Nastajenje wubraś
+editor_alt_text_dialog_description=Alternatiwny tekst pomaga, gaž luźe njamógu wobraz wiźeś abo gaž se wobraz njezacytajo.
+editor_alt_text_add_description_label=Wopisanje pśidaś
+editor_alt_text_add_description_description=Pišćo 1 sadu abo 2 saźe, kótarejž temu, nastajenje abo akcije wopisujotej.
+editor_alt_text_mark_decorative_label=Ako dekoratiwny markěrowaś
+editor_alt_text_mark_decorative_description=To se za pyšnjece wobraze wužywa, na pśikład ramiki abo wódowe znamjenja.
+editor_alt_text_cancel_button=Pśetergnuś
+editor_alt_text_save_button=Składowaś
+editor_alt_text_decorative_tooltip=Ako dekoratiwny markěrowany
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Na pśikład, „Młody muski za blidom sejźi, aby jěź jědł“
diff --git a/static/pdf.js/locale/el/viewer.properties b/static/pdf.js/locale/el/viewer.properties
index 9d968c9a9..e28ab7f23 100644
--- a/static/pdf.js/locale/el/viewer.properties
+++ b/static/pdf.js/locale/el/viewer.properties
@@ -18,49 +18,73 @@ previous_label=Προηγούμενη
next.title=Επόμενη σελίδα
next_label=Επόμενη
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Σελίδα:
-page_of=από {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Σελίδα
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=από {{pagesCount}}
+# 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_label=Σμίκρυνση
zoom_in.title=Μεγέθυνση
zoom_in_label=Μεγέθυνση
-zoom.title=Μεγέθυνση
-presentation_mode.title=Μετάβαση σε λειτουργία παρουσίασης
+zoom.title=Ζουμ
+presentation_mode.title=Εναλλαγή σε λειτουργία παρουσίασης
presentation_mode_label=Λειτουργία παρουσίασης
open_file.title=Άνοιγμα αρχείου
open_file_label=Άνοιγμα
print.title=Εκτύπωση
print_label=Εκτύπωση
-download.title=Λήψη
-download_label=Λήψη
-bookmark.title=Τρέχουσα προβολή (αντίγραφο ή άνοιγμα σε νέο παράθυρο)
-bookmark_label=Τρέχουσα προβολή
+save.title=Αποθήκευση
+save_label=Αποθήκευση
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
tools.title=Εργαλεία
tools_label=Εργαλεία
first_page.title=Μετάβαση στην πρώτη σελίδα
-first_page.label=Μετάβαση στην πρώτη σελίδα
first_page_label=Μετάβαση στην πρώτη σελίδα
-last_page.title=Μετάβαση στη τελευταία σελίδα
-last_page.label=Μετάβαση στη τελευταία σελίδα
-last_page_label=Μετάβαση στη τελευταία σελίδα
+last_page.title=Μετάβαση στην τελευταία σελίδα
+last_page_label=Μετάβαση στην τελευταία σελίδα
page_rotate_cw.title=Δεξιόστροφη περιστροφή
-page_rotate_cw.label=Δεξιόστροφη περιστροφή
page_rotate_cw_label=Δεξιόστροφη περιστροφή
page_rotate_ccw.title=Αριστερόστροφη περιστροφή
-page_rotate_ccw.label=Αριστερόστροφη περιστροφή
page_rotate_ccw_label=Αριστερόστροφη περιστροφή
-hand_tool_enable.title=Ενεργοποίηση εργαλείου χεριού
-hand_tool_enable_label=Ενεργοποίηση εργαλείου χεριού
-hand_tool_disable.title=Απενεργοποίηση εργαλείου χεριού
-hand_tool_disable_label=Απενεργοποίηση εργαλείου χεριού
+cursor_text_select_tool.title=Ενεργοποίηση εργαλείου επιλογής κειμένου
+cursor_text_select_tool_label=Εργαλείο επιλογής κειμένου
+cursor_hand_tool.title=Ενεργοποίηση εργαλείου χεριού
+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.title=Ιδιότητες εγγράφου…
@@ -69,97 +93,178 @@ document_properties_file_name=Όνομα αρχείου:
document_properties_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)
# 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_title=Τίτλος:
document_properties_author=Συγγραφέας:
document_properties_subject=Θέμα:
-document_properties_keywords=Λέξεις κλειδιά:
+document_properties_keywords=Λέξεις-κλειδιά:
document_properties_creation_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_creator=Δημιουργός:
document_properties_producer=Παραγωγός PDF:
document_properties_version=Έκδοση PDF:
document_properties_page_count=Αριθμός σελίδων:
+document_properties_page_size=Μέγεθος σελίδας:
+document_properties_page_size_unit_inches=ίντσες
+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=Τύπου 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=Κλείσιμο
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-toggle_sidebar.title=Εναλλαγή προβολής πλευρικής στήλης
-toggle_sidebar_label=Εναλλαγή προβολής πλευρικής στήλης
-outline.title=Προβολή διάρθρωσης κειμένου
-outline_label=Διάρθρωση κειμένου
-attachments.title=Προβολή συνημμένου
+toggle_sidebar.title=(Απ)ενεργοποίηση πλαϊνής γραμμής
+toggle_sidebar_notification2.title=(Απ)ενεργοποίηση πλαϊνής γραμμής (το έγγραφο περιέχει περίγραμμα/συνημμένα/επίπεδα)
+toggle_sidebar_label=(Απ)ενεργοποίηση πλαϊνής γραμμής
+document_outline.title=Εμφάνιση διάρθρωσης εγγράφου (διπλό κλικ για ανάπτυξη/σύμπτυξη όλων των στοιχείων)
+document_outline_label=Διάρθρωση εγγράφου
+attachments.title=Εμφάνιση συνημμένων
attachments_label=Συνημμένα
-thumbs.title=Προβολή μικρογραφιών
+layers.title=Εμφάνιση επιπέδων (διπλό κλικ για επαναφορά όλων των επιπέδων στην προεπιλεγμένη κατάσταση)
+layers_label=Επίπεδα
+thumbs.title=Εμφάνιση μικρογραφιών
thumbs_label=Μικρογραφίες
+current_outline_item.title=Εύρεση τρέχοντος στοιχείου διάρθρωσης
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Σελίδα {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
-thumb_page_canvas=Μικρογραφία της σελίδας {{page}}
+thumb_page_canvas=Μικρογραφία σελίδας {{page}}
# Find panel button title and messages
-find_label=Εύρεση:
+find_input.title=Εύρεση
+find_input.placeholder=Εύρεση στο έγγραφο…
find_previous.title=Εύρεση της προηγούμενης εμφάνισης της φράσης
find_previous_label=Προηγούμενο
find_next.title=Εύρεση της επόμενης εμφάνισης της φράσης
find_next_label=Επόμενο
find_highlight=Επισήμανση όλων
-find_match_case_label=Ταίριασμα χαρακτήρα
-find_reached_top=Έλευση στην αρχή του εγγράφου, συνέχεια από το τέλος
-find_reached_bottom=Έλευση στο τέλος του εγγράφου, συνέχεια από την αρχή
+find_match_case_label=Συμφωνία πεζών/κεφαλαίων
+find_match_diacritics_label=Αντιστοίχιση διακριτικών
+find_entire_word_label=Ολόκληρες λέξεις
+find_reached_top=Φτάσατε στην αρχή του εγγράφου, συνέχεια από το τέλος
+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=Η φράση δεν βρέθηκε
-# 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.
-# 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.
-# 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
-rendering_error=Προέκυψε σφάλμα κατά την ανάλυση της σελίδας.
-
# Predefined zoom values
page_scale_width=Πλάτος σελίδας
page_scale_fit=Μέγεθος σελίδας
-page_scale_auto=Αυτόματη μεγέθυνση
+page_scale_auto=Αυτόματο ζουμ
page_scale_actual=Πραγματικό μέγεθος
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
+page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Σφάλμα
-loading_error=Προέκυψε ένα σφάλμα κατά τη φόρτωση του PDF.
+loading_error=Προέκυψε σφάλμα κατά τη φόρτωση του PDF.
invalid_file_error=Μη έγκυρο ή κατεστραμμένο αρχείο PDF.
missing_file_error=Λείπει αρχείο PDF.
+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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Σχόλιο]
-password_label=Εισαγωγή κωδικού για το άνοιγμα του PDF αρχείου.
-password_invalid=Μη έγκυρος κωδικός. Προσπαθείστε ξανά.
-password_ok=ΟΚ
+text_annotation_type.alt=[Σχόλιο «{{type}}»]
+password_label=Εισαγάγετε τον κωδικό πρόσβασης για να ανοίξετε αυτό το αρχείο PDF.
+password_invalid=Μη έγκυρος κωδικός πρόσβασης. Παρακαλώ δοκιμάστε ξανά.
+password_ok=OK
password_cancel=Ακύρωση
-printing_not_supported=Προειδοποίηση: Η εκτύπωση δεν υποστηρίζεται πλήρως από αυτόν τον περιηγητή.
+printing_not_supported=Προειδοποίηση: Η εκτύπωση δεν υποστηρίζεται πλήρως από το πρόγραμμα περιήγησης.
printing_not_ready=Προειδοποίηση: Το PDF δεν φορτώθηκε πλήρως για εκτύπωση.
-web_fonts_disabled=Οι γραμματοσειρές Web απενεργοποιημένες: αδυναμία χρήσης των ενσωματωμένων γραμματοσειρών PDF.
-document_colors_disabled=Δεν επιτρέπεται στα έγγραφα PDF να χρησιμοποιούν τα δικά τους χρώματα: Η επιλογή \'Να επιτρέπεται η χρήση χρωμάτων της σελίδας\' δεν είναι ενεργή στην εφαρμογή.
+web_fonts_disabled=Οι γραμματοσειρές ιστού είναι ανενεργές: δεν είναι δυνατή η χρήση των ενσωματωμένων γραμματοσειρών PDF.
+
+# 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=Εικόνα από τον χρήστη
diff --git a/static/pdf.js/locale/en-CA/viewer.properties b/static/pdf.js/locale/en-CA/viewer.properties
new file mode 100644
index 000000000..8e10fcfb8
--- /dev/null
+++ b/static/pdf.js/locale/en-CA/viewer.properties
@@ -0,0 +1,270 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Previous Page
+previous_label=Previous
+next.title=Next Page
+next_label=Next
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Page
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=of {{pagesCount}}
+# 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_label=Zoom Out
+zoom_in.title=Zoom In
+zoom_in_label=Zoom In
+zoom.title=Zoom
+presentation_mode.title=Switch to Presentation Mode
+presentation_mode_label=Presentation Mode
+open_file.title=Open File
+open_file_label=Open
+print.title=Print
+print_label=Print
+save.title=Save
+save_label=Save
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
+tools.title=Tools
+tools_label=Tools
+first_page.title=Go to First Page
+first_page_label=Go to First Page
+last_page.title=Go to Last Page
+last_page_label=Go to Last Page
+page_rotate_cw.title=Rotate Clockwise
+page_rotate_cw_label=Rotate Clockwise
+page_rotate_ccw.title=Rotate Counterclockwise
+page_rotate_ccw_label=Rotate Counterclockwise
+
+cursor_text_select_tool.title=Enable Text Selection Tool
+cursor_text_select_tool_label=Text Selection Tool
+cursor_hand_tool.title=Enable 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.title=Document Properties…
+document_properties_label=Document Properties…
+document_properties_file_name=File name:
+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)
+# 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_title=Title:
+document_properties_author=Author:
+document_properties_subject=Subject:
+document_properties_keywords=Keywords:
+document_properties_creation_date=Creation 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_creator=Creator:
+document_properties_producer=PDF Producer:
+document_properties_version=PDF Version:
+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
+
+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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Toggle Sidebar
+toggle_sidebar_notification2.title=Toggle Sidebar (document contains outline/attachments/layers)
+toggle_sidebar_label=Toggle Sidebar
+document_outline.title=Show Document Outline (double-click to expand/collapse all items)
+document_outline_label=Document Outline
+attachments.title=Show 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_label=Thumbnails
+current_outline_item.title=Find Current Outline Item
+current_outline_item_label=Current Outline Item
+findbar.title=Find in Document
+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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Page {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Thumbnail of Page {{page}}
+
+# Find panel button title and messages
+find_input.title=Find
+find_input.placeholder=Find in document…
+find_previous.title=Find the previous occurrence of the phrase
+find_previous_label=Previous
+find_next.title=Find the next occurrence of the phrase
+find_next_label=Next
+find_highlight=Highlight All
+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_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
+
+# Predefined zoom values
+page_scale_width=Page Width
+page_scale_fit=Page Fit
+page_scale_auto=Automatic Zoom
+page_scale_actual=Actual Size
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=An error occurred while loading the PDF.
+invalid_file_error=Invalid or corrupted PDF file.
+missing_file_error=Missing PDF file.
+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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Annotation]
+password_label=Enter the password to open this PDF file.
+password_invalid=Invalid password. Please try again.
+password_ok=OK
+password_cancel=Cancel
+
+printing_not_supported=Warning: Printing is not fully supported by this browser.
+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.
+
+# Editor
+editor_free_text2.title=Text
+editor_free_text2_label=Text
+editor_ink2.title=Draw
+editor_ink2_label=Draw
+
+editor_stamp.title=Add an image
+editor_stamp_label=Add an image
+
+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
diff --git a/static/pdf.js/locale/en-GB/viewer.properties b/static/pdf.js/locale/en-GB/viewer.properties
index d0d1e647b..50f50f66d 100644
--- a/static/pdf.js/locale/en-GB/viewer.properties
+++ b/static/pdf.js/locale/en-GB/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Previous
next.title=Next Page
next_label=Next
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Page:
-page_of=of {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Page
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=of {{pagesCount}}
+# 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_label=Zoom Out
@@ -36,31 +39,52 @@ open_file.title=Open File
open_file_label=Open
print.title=Print
print_label=Print
-download.title=Download
-download_label=Download
-bookmark.title=Current view (copy or open in new window)
-bookmark_label=Current View
+save.title=Save
+save_label=Save
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
tools.title=Tools
tools_label=Tools
first_page.title=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.label=Go to Last Page
last_page_label=Go to Last Page
page_rotate_cw.title=Rotate Clockwise
-page_rotate_cw.label=Rotate Clockwise
page_rotate_cw_label=Rotate Clockwise
page_rotate_ccw.title=Rotate Anti-Clockwise
-page_rotate_ccw.label=Rotate Anti-Clockwise
page_rotate_ccw_label=Rotate Anti-Clockwise
-hand_tool_enable.title=Enable hand tool
-hand_tool_enable_label=Enable hand tool
-hand_tool_disable.title=Disable hand tool
-hand_tool_disable_label=Disable hand tool
+cursor_text_select_tool.title=Enable Text Selection Tool
+cursor_text_select_tool_label=Text Selection Tool
+cursor_hand_tool.title=Enable 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.title=Document Properties…
@@ -86,22 +110,58 @@ document_properties_creator=Creator:
document_properties_producer=PDF Producer:
document_properties_version=PDF Version:
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
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Toggle Sidebar
+toggle_sidebar_notification2.title=Toggle Sidebar (document contains outline/attachments/layers)
toggle_sidebar_label=Toggle Sidebar
-outline.title=Show Document Outline
-outline_label=Document Outline
+document_outline.title=Show Document Outline (double-click to expand/collapse all items)
+document_outline_label=Document Outline
attachments.title=Show 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_label=Thumbnails
+current_outline_item.title=Find Current Outline Item
+current_outline_item_label=Current Outline Item
findbar.title=Find in Document
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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Page {{page}}
thumb_page_canvas=Thumbnail of Page {{page}}
# 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_label=Previous
find_next.title=Find the next occurrence of the phrase
find_next_label=Next
-find_highlight=Highlight all
-find_match_case_label=Match case
+find_highlight=Highlight All
+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_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
-# 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
page_scale_width=Page Width
page_scale_fit=Page Fit
@@ -151,11 +216,15 @@ page_scale_actual=Actual Size
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Error
loading_error=An error occurred while loading the PDF.
invalid_file_error=Invalid or corrupted PDF file.
missing_file_error=Missing PDF file.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,46 @@ password_cancel=Cancel
printing_not_supported=Warning: Printing is not fully supported by this browser.
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.
-document_colors_not_allowed=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”
diff --git a/static/pdf.js/locale/en-US/viewer.properties b/static/pdf.js/locale/en-US/viewer.properties
index 20c919566..b0369cc22 100644
--- a/static/pdf.js/locale/en-US/viewer.properties
+++ b/static/pdf.js/locale/en-US/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Previous
next.title=Next Page
next_label=Next
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Page:
-page_of=of {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Page
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=of {{pagesCount}}
+# 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_label=Zoom Out
@@ -36,31 +39,52 @@ open_file.title=Open File
open_file_label=Open
print.title=Print
print_label=Print
-download.title=Download
-download_label=Download
-bookmark.title=Current view (copy or open in new window)
-bookmark_label=Current View
+save.title=Save
+save_label=Save
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
tools.title=Tools
tools_label=Tools
first_page.title=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.label=Go to Last Page
last_page_label=Go to Last Page
page_rotate_cw.title=Rotate Clockwise
-page_rotate_cw.label=Rotate Clockwise
page_rotate_cw_label=Rotate Clockwise
page_rotate_ccw.title=Rotate Counterclockwise
-page_rotate_ccw.label=Rotate Counterclockwise
page_rotate_ccw_label=Rotate Counterclockwise
-hand_tool_enable.title=Enable hand tool
-hand_tool_enable_label=Enable hand tool
-hand_tool_disable.title=Disable hand tool
-hand_tool_disable_label=Disable hand tool
+cursor_text_select_tool.title=Enable Text Selection Tool
+cursor_text_select_tool_label=Text Selection Tool
+cursor_hand_tool.title=Enable 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.title=Document Properties…
@@ -86,22 +110,58 @@ document_properties_creator=Creator:
document_properties_producer=PDF Producer:
document_properties_version=PDF Version:
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
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Toggle Sidebar
+toggle_sidebar_notification2.title=Toggle Sidebar (document contains outline/attachments/layers)
toggle_sidebar_label=Toggle Sidebar
-outline.title=Show Document Outline
-outline_label=Document Outline
+document_outline.title=Show Document Outline (double-click to expand/collapse all items)
+document_outline_label=Document Outline
attachments.title=Show 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_label=Thumbnails
+current_outline_item.title=Find Current Outline Item
+current_outline_item_label=Current Outline Item
findbar.title=Find in Document
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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Page {{page}}
thumb_page_canvas=Thumbnail of Page {{page}}
# 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_label=Previous
find_next.title=Find the next occurrence of the phrase
find_next_label=Next
-find_highlight=Highlight all
-find_match_case_label=Match case
+find_highlight=Highlight All
+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_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
-# 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
page_scale_width=Page Width
page_scale_fit=Page Fit
@@ -151,11 +216,15 @@ page_scale_actual=Actual Size
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Error
loading_error=An error occurred while loading the PDF.
invalid_file_error=Invalid or corrupted PDF file.
missing_file_error=Missing PDF file.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,44 @@ password_cancel=Cancel
printing_not_supported=Warning: Printing is not fully supported by this browser.
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.
-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”
diff --git a/static/pdf.js/locale/eo/viewer.properties b/static/pdf.js/locale/eo/viewer.properties
index 7cc95c64b..2018f9e70 100644
--- a/static/pdf.js/locale/eo/viewer.properties
+++ b/static/pdf.js/locale/eo/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Malantaŭen
next.title=Venonta paĝo
next_label=Antaŭen
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Paĝo:
-page_of=el {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Paĝo
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=el {{pagesCount}}
+# 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}} el {{pagesCount}})
zoom_out.title=Malpligrandigi
zoom_out_label=Malpligrandigi
@@ -36,37 +39,58 @@ open_file.title=Malfermi dosieron
open_file_label=Malfermi
print.title=Presi
print_label=Presi
-download.title=Elŝuti
-download_label=Elŝuti
-bookmark.title=Nuna vido (kopii aŭ malfermi en nova fenestro)
-bookmark_label=Nuna vido
+save.title=Konservi
+save_label=Konservi
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Elŝuti
+# 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=Elŝuti
+bookmark1.title=Nuna paĝo (Montri adreson de la nuna paĝo)
+bookmark1_label=Nuna paĝo
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Malfermi en programo
+# 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=Malfermi en programo
# Secondary toolbar and context menu
tools.title=Iloj
tools_label=Iloj
first_page.title=Iri al la unua paĝo
-first_page.label=Iri al la unua paĝo
first_page_label=Iri al la unua paĝo
last_page.title=Iri al la lasta paĝo
-last_page.label=Iri al la lasta paĝo
last_page_label=Iri al la lasta paĝo
page_rotate_cw.title=Rotaciigi dekstrume
-page_rotate_cw.label=Rotaciigi dekstrume
page_rotate_cw_label=Rotaciigi dekstrume
page_rotate_ccw.title=Rotaciigi maldekstrume
-page_rotate_ccw.label=Rotaciigi maldekstrume
page_rotate_ccw_label=Rotaciigi maldekstrume
-hand_tool_enable.title=Aktivigi manan ilon
-hand_tool_enable_label=Aktivigi manan ilon
-hand_tool_disable.title=Malaktivigi manan ilon
-hand_tool_disable_label=Malaktivigi manan ilon
+cursor_text_select_tool.title=Aktivigi tekstan elektilon
+cursor_text_select_tool_label=Teksta elektilo
+cursor_hand_tool.title=Aktivigi ilon de mano
+cursor_hand_tool_label=Ilo de mano
+
+scroll_page.title=Uzi ŝovadon de paĝo
+scroll_page_label=Ŝovado de paĝo
+scroll_vertical.title=Uzi vertikalan ŝovadon
+scroll_vertical_label=Vertikala ŝovado
+scroll_horizontal.title=Uzi horizontalan ŝovadon
+scroll_horizontal_label=Horizontala ŝovado
+scroll_wrapped.title=Uzi ambaŭdirektan ŝovadon
+scroll_wrapped_label=Ambaŭdirekta ŝovado
+
+spread_none.title=Ne montri paĝojn po du
+spread_none_label=Unupaĝa vido
+spread_odd.title=Kunigi paĝojn komencante per nepara paĝo
+spread_odd_label=Po du paĝoj, neparaj maldekstre
+spread_even.title=Kunigi paĝojn komencante per para paĝo
+spread_even_label=Po du paĝoj, paraj maldekstre
# Document properties dialog box
document_properties.title=Atributoj de dokumento…
document_properties_label=Atributoj de dokumento…
document_properties_file_name=Nomo de dosiero:
-document_properties_file_size=Grado de dosiero:
+document_properties_file_size=Grando de dosiero:
# 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}} oktetoj)
@@ -86,22 +110,58 @@ document_properties_creator=Kreinto:
document_properties_producer=Produktinto de PDF:
document_properties_version=Versio de PDF:
document_properties_page_count=Nombro de paĝoj:
+document_properties_page_size=Grando de paĝo:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertikala
+document_properties_page_size_orientation_landscape=horizontala
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Letera
+document_properties_page_size_name_legal=Jura
+# 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=Rapida tekstaĵa vido:
+document_properties_linearized_yes=Jes
+document_properties_linearized_no=Ne
document_properties_close=Fermi
+print_progress_message=Preparo de dokumento por presi ĝin …
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Nuligi
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Montri/kaŝi flankan strion
+toggle_sidebar_notification2.title=Montri/kaŝi flankan strion (la dokumento enhavas konturon/kunsendaĵojn/tavolojn)
toggle_sidebar_label=Montri/kaŝi flankan strion
-outline.title=Montri skemon de dokumento
-outline_label=Skemo de dokumento
+document_outline.title=Montri la konturon de dokumento (alklaku duoble por faldi/malfaldi ĉiujn elementojn)
+document_outline_label=Konturo de dokumento
attachments.title=Montri kunsendaĵojn
attachments_label=Kunsendaĵojn
+layers.title=Montri tavolojn (duoble alklaku por remeti ĉiujn tavolojn en la norman staton)
+layers_label=Tavoloj
thumbs.title=Montri miniaturojn
thumbs_label=Miniaturoj
+current_outline_item.title=Trovi nunan konturan elementon
+current_outline_item_label=Nuna kontura elemento
findbar.title=Serĉi en dokumento
findbar_label=Serĉi
+additional_layers=Aldonaj tavoloj
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Paĝo {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,51 +171,60 @@ thumb_page_title=Paĝo {{page}}
thumb_page_canvas=Miniaturo de paĝo {{page}}
# Find panel button title and messages
-find_label=Serĉi:
+find_input.title=Serĉi
+find_input.placeholder=Serĉi en dokumento…
find_previous.title=Serĉi la antaŭan aperon de la frazo
find_previous_label=Malantaŭen
find_next.title=Serĉi la venontan aperon de la frazo
find_next_label=Antaŭen
find_highlight=Elstarigi ĉiujn
find_match_case_label=Distingi inter majuskloj kaj minuskloj
+find_match_diacritics_label=Respekti supersignojn
+find_entire_word_label=Tutaj vortoj
find_reached_top=Komenco de la dokumento atingita, daŭrigado ekde la fino
find_reached_bottom=Fino de la dokumento atingita, daŭrigado ekde la komenco
+# 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}} el {{total}} kongruo
+find_match_count[two]={{current}} el {{total}} kongruoj
+find_match_count[few]={{current}} el {{total}} kongruoj
+find_match_count[many]={{current}} el {{total}} kongruoj
+find_match_count[other]={{current}} el {{total}} kongruoj
+# 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]=Pli ol {{limit}} kongruoj
+find_match_count_limit[one]=Pli ol {{limit}} kongruo
+find_match_count_limit[two]=Pli ol {{limit}} kongruoj
+find_match_count_limit[few]=Pli ol {{limit}} kongruoj
+find_match_count_limit[many]=Pli ol {{limit}} kongruoj
+find_match_count_limit[other]=Pli ol {{limit}} kongruoj
find_not_found=Frazo ne trovita
-# Error panel labels
-error_more_info=Pli da informo
-error_less_info=Mapli da informo
-error_close=Fermi
-# 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=Mesaĝo: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stako: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Dosiero: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linio: {{line}}
-rendering_error=Okazis eraro dum la montrado de la paĝo.
-
# Predefined zoom values
page_scale_width=Larĝo de paĝo
page_scale_fit=Adapti paĝon
page_scale_auto=Aŭtomata skalo
-page_scale_actual=Reala gandeco
+page_scale_actual=Reala grando
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Eraro
loading_error=Okazis eraro dum la ŝargado de la PDF dosiero.
invalid_file_error=Nevalida aŭ difektita PDF dosiero.
missing_file_error=Mankas dosiero PDF.
unexpected_response_error=Neatendita respondo de servilo.
+rendering_error=Okazis eraro dum la montro de la paĝo.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -168,6 +237,34 @@ password_ok=Akcepti
password_cancel=Nuligi
printing_not_supported=Averto: tiu ĉi retumilo ne plene subtenas presadon.
-printing_not_ready=Averto: La PDF dosiero ne estas plene ŝargita por presado.
+printing_not_ready=Averto: la PDF dosiero ne estas plene ŝargita por presado.
web_fonts_disabled=Neaktivaj teksaĵaj tiparoj: ne elbas uzi enmetitajn tiparojn de PDF.
-document_colors_disabled=Dokumentoj PDF ne rajtas havi siajn proprajn kolorojn: \'Permesi al paĝoj elekti siajn proprajn kolorojn\' estas malaktiva en la retumilo.
+
+# Editor
+editor_free_text2.title=Teksto
+editor_free_text2_label=Teksto
+editor_ink2.title=Desegni
+editor_ink2_label=Desegni
+
+editor_stamp.title=Aldoni bildon
+editor_stamp_label=Aldoni bildon
+
+editor_stamp1.title=Aldoni aŭ modifi bildojn
+editor_stamp1_label=Aldoni aŭ modifi bildojn
+
+free_text2_default_content=Ektajpi…
+
+# Editor Parameters
+editor_free_text_color=Koloro
+editor_free_text_size=Grando
+editor_ink_color=Koloro
+editor_ink_thickness=Dikeco
+editor_ink_opacity=Maldiafaneco
+
+editor_stamp_add_image_label=Aldoni bildon
+editor_stamp_add_image.title=Aldoni bildon
+
+# Editor aria
+editor_free_text2_aria_label=Tekstan redaktilon
+editor_ink2_aria_label=Desegnan redaktilon
+editor_ink_canvas_aria_label=Bildo kreita de uzanto
diff --git a/static/pdf.js/locale/es-AR/viewer.properties b/static/pdf.js/locale/es-AR/viewer.properties
index cbef06695..63bb5389e 100644
--- a/static/pdf.js/locale/es-AR/viewer.properties
+++ b/static/pdf.js/locale/es-AR/viewer.properties
@@ -18,56 +18,84 @@ previous_label=Anterior
next.title=Página siguiente
next_label=Siguiente
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Página:
-page_of=de {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Página
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}} )
zoom_out.title=Alejar
zoom_out_label=Alejar
zoom_in.title=Acercar
zoom_in_label=Acercar
zoom.title=Zoom
-print.title=Imprimir
-print_label=Imprimir
presentation_mode.title=Cambiar a modo presentación
presentation_mode_label=Modo presentación
open_file.title=Abrir archivo
open_file_label=Abrir
-download.title=Descargar
-download_label=Descargar
-bookmark.title=Vista actual (copiar o abrir en nueva ventana)
-bookmark_label=Vista actual
+print.title=Imprimir
+print_label=Imprimir
+save.title=Guardar
+save_label=Guardar
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Descargar
+# 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=Descargar
+bookmark1.title=Página actual (Ver URL de la página actual)
+bookmark1_label=Página actual
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Abrir en la aplicación
+# 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 en la aplicación
# Secondary toolbar and context menu
tools.title=Herramientas
tools_label=Herramientas
first_page.title=Ir a primera página
-first_page.label=Ir a primera página
first_page_label=Ir a primera página
last_page.title=Ir a última página
-last_page.label=Ir a última página
last_page_label=Ir a última página
page_rotate_cw.title=Rotar horario
-page_rotate_cw.label=Rotar horario
page_rotate_cw_label=Rotar horario
page_rotate_ccw.title=Rotar antihorario
-page_rotate_ccw.label=Rotar antihorario
page_rotate_ccw_label=Rotar antihorario
-hand_tool_enable.title=Habilitar herramienta mano
-hand_tool_enable_label=Habilitar herramienta mano
-hand_tool_disable.title=Deshabilitar herramienta mano
-hand_tool_disable_label=Deshabilitar herramienta mano
+cursor_text_select_tool.title=Habilitar herramienta de selección de texto
+cursor_text_select_tool_label=Herramienta de selección de texto
+cursor_hand_tool.title=Habilitar herramienta mano
+cursor_hand_tool_label=Herramienta mano
+
+scroll_page.title=Usar desplazamiento de página
+scroll_page_label=Desplazamiento de página
+scroll_vertical.title=Usar desplazamiento vertical
+scroll_vertical_label=Desplazamiento vertical
+scroll_horizontal.title=Usar desplazamiento vertical
+scroll_horizontal_label=Desplazamiento horizontal
+scroll_wrapped.title=Usar desplazamiento encapsulado
+scroll_wrapped_label=Desplazamiento encapsulado
+
+spread_none.title=No unir páginas dobles
+spread_none_label=Sin dobles
+spread_odd.title=Unir páginas dobles comenzando con las impares
+spread_odd_label=Dobles impares
+spread_even.title=Unir páginas dobles comenzando con las pares
+spread_even_label=Dobles pares
# Document properties dialog box
document_properties.title=Propiedades del documento…
document_properties_label=Propiedades del documento…
document_properties_file_name=Nombre de archivo:
document_properties_file_size=Tamaño de archovo:
+# 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)
+# 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_title=Título:
document_properties_author=Autor:
@@ -75,27 +103,65 @@ document_properties_subject=Asunto:
document_properties_keywords=Palabras clave:
document_properties_creation_date=Fecha de creación:
document_properties_modification_date=Fecha de modificación:
+# 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=Creador:
document_properties_producer=PDF Productor:
document_properties_version=Versión de PDF:
document_properties_page_count=Cantidad de páginas:
+document_properties_page_size=Tamaño de página:
+document_properties_page_size_unit_inches=en
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=normal
+document_properties_page_size_orientation_landscape=apaisado
+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=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=Vista rápida de la Web:
+document_properties_linearized_yes=Sí
+document_properties_linearized_no=No
document_properties_close=Cerrar
+print_progress_message=Preparando documento para imprimir…
+# 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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Alternar barra lateral
+toggle_sidebar_notification2.title=Alternar barra lateral (el documento contiene esquemas/adjuntos/capas)
toggle_sidebar_label=Alternar barra lateral
-outline.title=Mostrar esquema del documento
-outline_label=Esquema del documento
+document_outline.title=Mostrar esquema del documento (doble clic para expandir/colapsar todos los ítems)
+document_outline_label=Esquema del documento
attachments.title=Mostrar adjuntos
attachments_label=Adjuntos
+layers.title=Mostrar capas (doble clic para restablecer todas las capas al estado predeterminado)
+layers_label=Capas
thumbs.title=Mostrar miniaturas
thumbs_label=Miniaturas
+current_outline_item.title=Buscar elemento de esquema actual
+current_outline_item_label=Elemento de esquema actual
findbar.title=Buscar en documento
findbar_label=Buscar
+additional_layers=Capas adicionales
+# 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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -105,36 +171,41 @@ thumb_page_title=Página {{page}}
thumb_page_canvas=Miniatura de página {{page}}
# Find panel button title and messages
-find_label=Buscar:
+find_input.title=Buscar
+find_input.placeholder=Buscar en documento…
find_previous.title=Buscar la aparición anterior de la frase
find_previous_label=Anterior
find_next.title=Buscar la siguiente aparición de la frase
find_next_label=Siguiente
find_highlight=Resaltar todo
find_match_case_label=Coincidir mayúsculas
+find_match_diacritics_label=Coincidir diacríticos
+find_entire_word_label=Palabras completas
find_reached_top=Inicio de documento alcanzado, continuando desde abajo
find_reached_bottom=Fin de documento alcanzando, continuando desde arriba
+# 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}} de {{total}} coincidencias
+find_match_count[two]={{current}} de {{total}} coincidencias
+find_match_count[few]={{current}} de {{total}} coincidencias
+find_match_count[many]={{current}} de {{total}} coincidencias
+find_match_count[other]={{current}} de {{total}} coincidencias
+# 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]=Más de {{limit}} coincidencias
+find_match_count_limit[one]=Más de {{limit}} coinciden
+find_match_count_limit[two]=Más de {{limit}} coincidencias
+find_match_count_limit[few]=Más de {{limit}} coincidencias
+find_match_count_limit[many]=Más de {{limit}} coincidencias
+find_match_count_limit[other]=Más de {{limit}} coincidencias
find_not_found=Frase no encontrada
-# Error panel labels
-error_more_info=Más información
-error_less_info=Menos información
-error_close=Cerrar
-# 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=Mensaje: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Pila: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Archivo: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Línea: {{line}}
-rendering_error=Ocurrió un error al dibujar la página.
-
# Predefined zoom values
page_scale_width=Ancho de página
page_scale_fit=Ajustar página
@@ -145,11 +216,15 @@ page_scale_actual=Tamaño real
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Error
loading_error=Ocurrió un error al cargar el PDF.
invalid_file_error=Archivo PDF no válido o cocrrupto.
missing_file_error=Archivo PDF faltante.
unexpected_response_error=Respuesta del servidor inesperada.
+rendering_error=Ocurrió un error al dibujar la 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -164,4 +239,46 @@ password_cancel=Cancelar
printing_not_supported=Advertencia: La impresión no está totalmente soportada por este navegador.
printing_not_ready=Advertencia: El PDF no está completamente cargado para impresión.
web_fonts_disabled=Tipografía web deshabilitada: no se pueden usar tipos incrustados en PDF.
-document_colors_not_allowed=Los documentos PDF no tienen permitido usar sus propios colores: 'Permitir a las páginas elegir sus propios colores' está desactivado en el navegador.
+
+# Editor
+editor_free_text2.title=Texto
+editor_free_text2_label=Texto
+editor_ink2.title=Dibujar
+editor_ink2_label=Dibujar
+
+editor_stamp1.title=Agregar o editar imágenes
+editor_stamp1_label=Agregar o editar imágenes
+
+free_text2_default_content=Empezar a tipear…
+
+# Editor Parameters
+editor_free_text_color=Color
+editor_free_text_size=Tamaño
+editor_ink_color=Color
+editor_ink_thickness=Espesor
+editor_ink_opacity=Opacidad
+
+editor_stamp_add_image_label=Agregar una imagen
+editor_stamp_add_image.title=Agregar una imagen
+
+# Editor aria
+editor_free_text2_aria_label=Editor de texto
+editor_ink2_aria_label=Editor de dibujos
+editor_ink_canvas_aria_label=Imagen creada por el usuario
+
+# 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=Texto alternativo
+editor_alt_text_edit_button_label=Editar el texto alternativo
+editor_alt_text_dialog_label=Eligir una opción
+editor_alt_text_dialog_description=El texto alternativo (texto alternativo) ayuda cuando las personas no pueden ver la imagen o cuando no se carga.
+editor_alt_text_add_description_label=Agregar una descripción
+editor_alt_text_add_description_description=Intente escribir 1 o 2 oraciones que describan el tema, el entorno o las acciones.
+editor_alt_text_mark_decorative_label=Marcar como decorativo
+editor_alt_text_mark_decorative_description=Esto se usa para imágenes ornamentales, como bordes o marcas de agua.
+editor_alt_text_cancel_button=Cancelar
+editor_alt_text_save_button=Guardar
+editor_alt_text_decorative_tooltip=Marcado como decorativo
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Por ejemplo: “Un joven se sienta a la mesa a comer”
diff --git a/static/pdf.js/locale/es-CL/viewer.properties b/static/pdf.js/locale/es-CL/viewer.properties
index 0c610e6d0..b7996bc93 100644
--- a/static/pdf.js/locale/es-CL/viewer.properties
+++ b/static/pdf.js/locale/es-CL/viewer.properties
@@ -12,52 +12,90 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-previous.title = Página anterior
-previous_label = Anterior
-next.title = Página siguiente
-next_label = Siguiente
-page_label = Página:
-page_of = de {{pageCount}}
-zoom_out.title = Alejar
-zoom_out_label = Alejar
-zoom_in.title = Acercar
-zoom_in_label = Acercar
-zoom.title = Ampliación
-print.title = Imprimir
-print_label = Imprimir
-presentation_mode.title = Cambiar al modo de presentación
-presentation_mode_label = Modo de presentación
-open_file.title = Abrir archivo
-open_file_label = Abrir
-download.title = Descargar
-download_label = Descargar
-bookmark.title = Vista actual (copiar o abrir en nueva ventana)
-bookmark_label = Vista actual
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Página anterior
+previous_label=Anterior
+next.title=Página siguiente
+next_label=Siguiente
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Página
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
+
+zoom_out.title=Alejar
+zoom_out_label=Alejar
+zoom_in.title=Acercar
+zoom_in_label=Acercar
+zoom.title=Ampliación
+presentation_mode.title=Cambiar al modo de presentación
+presentation_mode_label=Modo de presentación
+open_file.title=Abrir archivo
+open_file_label=Abrir
+print.title=Imprimir
+print_label=Imprimir
+save.title=Guardar
+save_label=Guardar
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Descargar
+# 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=Descargar
+bookmark1.title=Página actual (Ver URL de la página actual)
+bookmark1_label=Página actual
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Abrir en una aplicación
+# 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 en una aplicación
+
+# Secondary toolbar and context menu
tools.title=Herramientas
tools_label=Herramientas
first_page.title=Ir a la primera página
-first_page.label=Ir a la primera página
first_page_label=Ir a la primera página
last_page.title=Ir a la última página
-last_page.label=Ir a la última página
last_page_label=Ir a la última página
page_rotate_cw.title=Girar a la derecha
-page_rotate_cw.label=Girar a la derecha
page_rotate_cw_label=Girar a la derecha
page_rotate_ccw.title=Girar a la izquierda
-page_rotate_ccw.label=Girar a la izquierda
page_rotate_ccw_label=Girar a la izquierda
-hand_tool_enable.title=Activar herramienta de mano
-hand_tool_enable_label=Activar herramienta de mano
-hand_tool_disable.title=Desactivar herramienta de mano
-hand_tool_disable_label=Desactivar herramienta de mano
+cursor_text_select_tool.title=Activar la herramienta de selección de texto
+cursor_text_select_tool_label=Herramienta de selección de texto
+cursor_hand_tool.title=Activar la herramienta de mano
+cursor_hand_tool_label=Herramienta de mano
+scroll_page.title=Usar desplazamiento de página
+scroll_page_label=Desplazamiento de página
+scroll_vertical.title=Usar desplazamiento vertical
+scroll_vertical_label=Desplazamiento vertical
+scroll_horizontal.title=Usar desplazamiento horizontal
+scroll_horizontal_label=Desplazamiento horizontal
+scroll_wrapped.title=Usar desplazamiento en bloque
+scroll_wrapped_label=Desplazamiento en bloque
+
+spread_none.title=No juntar páginas a modo de libro
+spread_none_label=Vista de una página
+spread_odd.title=Junta las páginas partiendo con una de número impar
+spread_odd_label=Vista de libro impar
+spread_even.title=Junta las páginas partiendo con una de número par
+spread_even_label=Vista de libro par
+
+# Document properties dialog box
document_properties.title=Propiedades del documento…
document_properties_label=Propiedades del documento…
-document_properties_file_name=Nombre del archivo:
+document_properties_file_name=Nombre de archivo:
document_properties_file_size=Tamaño del archivo:
+# 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)
+# 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_title=Título:
document_properties_author=Autor:
@@ -65,66 +103,182 @@ document_properties_subject=Asunto:
document_properties_keywords=Palabras clave:
document_properties_creation_date=Fecha de creación:
document_properties_modification_date=Fecha de modificación:
+# 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=Creador:
document_properties_producer=Productor del PDF:
document_properties_version=Versión de PDF:
document_properties_page_count=Cantidad de páginas:
+document_properties_page_size=Tamaño de la página:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertical
+document_properties_page_size_orientation_landscape=horizontal
+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=Oficio
+# 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=Vista rápida en Web:
+document_properties_linearized_yes=Sí
+document_properties_linearized_no=No
document_properties_close=Cerrar
+print_progress_message=Preparando documento para impresión…
+# 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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
toggle_sidebar.title=Barra lateral
+toggle_sidebar_notification2.title=Cambiar barra lateral (índice de contenidos del documento/adjuntos/capas)
toggle_sidebar_label=Mostrar u ocultar la barra lateral
-outline.title = Mostrar esquema del documento
-outline_label = Esquema del documento
+document_outline.title=Mostrar esquema del documento (doble clic para expandir/contraer todos los elementos)
+document_outline_label=Esquema del documento
attachments.title=Mostrar adjuntos
attachments_label=Adjuntos
-thumbs.title = Mostrar miniaturas
-thumbs_label = Miniaturas
-findbar.title = Buscar en el documento
-findbar_label = Buscar
-thumb_page_title = Página {{page}}
-thumb_page_canvas = Miniatura de la página {{page}}
-first_page.label = Ir a la primera página
-last_page.label = Ir a la última página
-page_rotate_cw.label = Rotar en sentido de los punteros del reloj
-page_rotate_ccw.label = Rotar en sentido contrario a los punteros del reloj
-find_label = Buscar:
-find_previous.title = Encontrar la aparición anterior de la frase
-find_previous_label = Previo
-find_next.title = Encontrar la siguiente aparición de la frase
-find_next_label = Siguiente
-find_highlight = Destacar todos
-find_match_case_label = Coincidir mayús./minús.
+layers.title=Mostrar capas (doble clic para restablecer todas las capas al estado predeterminado)
+layers_label=Capas
+thumbs.title=Mostrar miniaturas
+thumbs_label=Miniaturas
+current_outline_item.title=Buscar elemento de esquema actual
+current_outline_item_label=Elemento de esquema actual
+findbar.title=Buscar en el documento
+findbar_label=Buscar
+
+additional_layers=Capas adicionales
+# 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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Página {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura de la página {{page}}
+
+# Find panel button title and messages
+find_input.title=Encontrar
+find_input.placeholder=Encontrar en el documento…
+find_previous.title=Buscar la aparición anterior de la frase
+find_previous_label=Previo
+find_next.title=Buscar la siguiente aparición de la frase
+find_next_label=Siguiente
+find_highlight=Destacar todos
+find_match_case_label=Coincidir mayús./minús.
+find_match_diacritics_label=Coincidir diacríticos
+find_entire_word_label=Palabras completas
find_reached_top=Se alcanzó el inicio del documento, continuando desde el final
find_reached_bottom=Se alcanzó el final del documento, continuando desde el inicio
-find_not_found = Frase no encontrada
-error_more_info = Más información
-error_less_info = Menos información
-error_close = Cerrar
-error_version_info=PDF.js v{{version}} (compilación: {{build}})
-error_message = Mensaje: {{message}}
-error_stack = Pila: {{stack}}
-error_file = Archivo: {{file}}
-error_line = Línea: {{line}}
-rendering_error = Ha ocurrido un error al renderizar la página.
-page_scale_width = Ancho de página
-page_scale_fit = Ajuste de página
-page_scale_auto = Aumento automático
-page_scale_actual = Tamaño actual
+# 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]=Coincidencia {{current}} de {{total}}
+find_match_count[two]=Coincidencia {{current}} de {{total}}
+find_match_count[few]=Coincidencia {{current}} de {{total}}
+find_match_count[many]=Coincidencia {{current}} de {{total}}
+find_match_count[other]=Coincidencia {{current}} de {{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]=Más de {{limit}} coincidencias
+find_match_count_limit[one]=Más de {{limit}} coincidencia
+find_match_count_limit[two]=Más de {{limit}} coincidencias
+find_match_count_limit[few]=Más de {{limit}} coincidencias
+find_match_count_limit[many]=Más de {{limit}} coincidencias
+find_match_count_limit[other]=Más de {{limit}} coincidencias
+find_not_found=Frase no encontrada
+
+# Predefined zoom values
+page_scale_width=Ancho de página
+page_scale_fit=Ajuste de página
+page_scale_auto=Aumento automático
+page_scale_actual=Tamaño actual
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
page_scale_percent={{scale}}%
-loading_error_indicator = Error
-loading_error = Ha ocurrido un error al cargar el PDF.
-invalid_file_error = Archivo PDF inválido o corrupto.
+
+# Loading indicator messages
+loading_error=Ocurrió un error al cargar el PDF.
+invalid_file_error=Archivo PDF inválido o corrupto.
missing_file_error=Falta el archivo PDF.
unexpected_response_error=Respuesta del servidor inesperada.
+rendering_error=Ocurrió un error al renderizar la 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} Anotación]
password_label=Ingrese la contraseña para abrir este archivo PDF.
-password_invalid=Contraseña inválida. Por favor, vuelva a intentarlo.
+password_invalid=Contraseña inválida. Por favor, vuelve a intentarlo.
password_ok=Aceptar
password_cancel=Cancelar
-printing_not_supported = Advertencia: Imprimir no está soportado completamente por este navegador.
+printing_not_supported=Advertencia: Imprimir no está soportado completamente por este navegador.
printing_not_ready=Advertencia: El PDF no está completamente cargado para ser impreso.
-web_fonts_disabled=Las fuentes web están desactivadas: imposible usar las fuentes PDF embebidas.
-document_colors_not_allowed=Los documentos PDF no tienen permitido usar sus propios colores: 'Permitir a las páginas elegir sus propios colores' está desactivado en el navegador.
+web_fonts_disabled=Las tipografías web están desactivadas: imposible usar las fuentes PDF embebidas.
+
+# Editor
+editor_free_text2.title=Texto
+editor_free_text2_label=Texto
+editor_ink2.title=Dibujar
+editor_ink2_label=Dibujar
+
+editor_stamp1.title=Añadir o editar imágenes
+editor_stamp1_label=Añadir o editar imágenes
+
+free_text2_default_content=Empieza a escribir…
+
+# Editor Parameters
+editor_free_text_color=Color
+editor_free_text_size=Tamaño
+editor_ink_color=Color
+editor_ink_thickness=Grosor
+editor_ink_opacity=Opacidad
+
+editor_stamp_add_image_label=Añadir imagen
+editor_stamp_add_image.title=Añadir imagen
+
+# Editor aria
+editor_free_text2_aria_label=Editor de texto
+editor_ink2_aria_label=Editor de dibujos
+editor_ink_canvas_aria_label=Imagen creada por el usuario
+
+# 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=Texto alternativo
+editor_alt_text_edit_button_label=Editar texto alternativo
+editor_alt_text_dialog_label=Elige una opción
+editor_alt_text_dialog_description=El texto alternativo (alt text) ayuda cuando las personas no pueden ver la imagen o cuando no se carga.
+editor_alt_text_add_description_label=Añade una descripción
+editor_alt_text_add_description_description=Intenta escribir 1 o 2 oraciones que describan el tema, el ambiente o las acciones.
+editor_alt_text_mark_decorative_label=Marcar como decorativa
+editor_alt_text_mark_decorative_description=Se utiliza para imágenes ornamentales, como bordes o marcas de agua.
+editor_alt_text_cancel_button=Cancelar
+editor_alt_text_save_button=Guardar
+editor_alt_text_decorative_tooltip=Marcada como decorativa
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Por ejemplo: “Un joven se sienta a la mesa a comer”
diff --git a/static/pdf.js/locale/es-ES/viewer.properties b/static/pdf.js/locale/es-ES/viewer.properties
index 54e17d211..7435385b1 100644
--- a/static/pdf.js/locale/es-ES/viewer.properties
+++ b/static/pdf.js/locale/es-ES/viewer.properties
@@ -1,111 +1,270 @@
-# 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/.
+# 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.
-previous.title = Página anterior
-previous_label = Anterior
-next.title = Página siguiente
-next_label = Siguiente
-page_label = Página:
-page_of = de {{pageCount}}
-zoom_out.title = Reducir
-zoom_out_label = Reducir
-zoom_in.title = Aumentar
-zoom_in_label = Aumentar
-zoom.title = Tamaño
-presentation_mode.title = Cambiar al modo presentación
-presentation_mode_label = Modo presentación
-open_file.title = Abrir archivo
-open_file_label = Abrir
-print.title = Imprimir
-print_label = Imprimir
-download.title = Descargar
-download_label = Descargar
-bookmark.title = Vista actual (copiar o abrir en una nueva ventana)
-bookmark_label = Vista actual
-tools.title = Herramientas
-tools_label = Herramientas
-first_page.title = Ir a la primera página
-first_page.label = Ir a la primera página
-first_page_label = Ir a la primera página
-last_page.title = Ir a la última página
-last_page.label = Ir a la última página
-last_page_label = Ir a la última página
-page_rotate_cw.title = Rotar en sentido horario
-page_rotate_cw.label = Rotar en sentido horario
-page_rotate_cw_label = Rotar en sentido horario
-page_rotate_ccw.title = Rotar en sentido antihorario
-page_rotate_ccw.label = Rotar en sentido antihorario
-page_rotate_ccw_label = Rotar en sentido antihorario
-hand_tool_enable.title = Activar herramienta mano
-hand_tool_enable_label = Activar herramienta mano
-hand_tool_disable.title = Desactivar herramienta mano
-hand_tool_disable_label = Desactivar herramienta mano
-document_properties.title = Propiedades del documento…
-document_properties_label = Propiedades del documento…
-document_properties_file_name = Nombre de archivo:
-document_properties_file_size = Tamaño de archivo:
-document_properties_kb = {{size_kb}} KB ({{size_b}} bytes)
-document_properties_mb = {{size_mb}} MB ({{size_b}} bytes)
-document_properties_title = Título:
-document_properties_author = Autor:
-document_properties_subject = Asunto:
-document_properties_keywords = Palabras clave:
-document_properties_creation_date = Fecha de creación:
-document_properties_modification_date = Fecha de modificación:
-document_properties_date_string = {{date}}, {{time}}
-document_properties_creator = Creador:
-document_properties_producer = Productor PDF:
-document_properties_version = Versión PDF:
-document_properties_page_count = Número de páginas:
-document_properties_close = Cerrar
-toggle_sidebar.title = Cambiar barra lateral
-toggle_sidebar_label = Cambiar barra lateral
-outline.title = Mostrar el esquema del documento
-outline_label = Esquema del documento
-attachments.title = Mostrar adjuntos
-attachments_label = Adjuntos
-thumbs.title = Mostrar miniaturas
-thumbs_label = Miniaturas
-findbar.title = Buscar en el documento
-findbar_label = Buscar
-thumb_page_title = Página {{page}}
-thumb_page_canvas = Miniatura de la página {{page}}
-find_label = Buscar:
-find_previous.title = Encontrar la anterior aparición de la frase
-find_previous_label = Anterior
-find_next.title = Encontrar la siguiente aparición de esta frase
-find_next_label = Siguiente
-find_highlight = Resaltar todos
-find_match_case_label = Coincidencia de mayús./minús.
-find_reached_top = Se alcanzó el inicio del documento, se continúa desde el final
-find_reached_bottom = Se alcanzó el final del documento, se continúa desde el inicio
-find_not_found = Frase no encontrada
-error_more_info = Más información
-error_less_info = Menos información
-error_close = Cerrar
-error_version_info = PDF.js v{{version}} (build: {{build}})
-error_message = Mensaje: {{message}}
-error_stack = Pila: {{stack}}
-error_file = Archivo: {{file}}
-error_line = Línea: {{line}}
-rendering_error = Ocurrió un error al renderizar la página.
-page_scale_width = Anchura de la página
-page_scale_fit = Ajuste de la página
-page_scale_auto = Tamaño automático
-page_scale_actual = Tamaño real
-page_scale_percent = {{scale}}%
-loading_error_indicator = Error
-loading_error = Ocurrió un error al cargar el PDF.
-invalid_file_error = Fichero PDF no válido o corrupto.
-missing_file_error = No hay fichero PDF.
-unexpected_response_error = Respuesta inesperada del servidor.
-text_annotation_type.alt = [Anotación {{type}}]
-password_label = Introduzca la contraseña para abrir este archivo PDF.
-password_invalid = Contraseña no válida. Vuelva a intentarlo.
-password_ok = Aceptar
-password_cancel = Cancelar
-printing_not_supported = Advertencia: Imprimir no está totalmente soportado por este navegador.
-printing_not_ready = Advertencia: Este PDF no se ha cargado completamente para poder imprimirse.
-web_fonts_disabled = Las tipografías web están desactivadas: es imposible usar las tipografías PDF embebidas.
-document_colors_not_allowed = Los documentos PDF no tienen permitido usar sus propios colores: 'Permitir a las páginas elegir sus propios colores' está desactivado en el navegador.
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Página anterior
+previous_label=Anterior
+next.title=Página siguiente
+next_label=Siguiente
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Página
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
+
+zoom_out.title=Reducir
+zoom_out_label=Reducir
+zoom_in.title=Aumentar
+zoom_in_label=Aumentar
+zoom.title=Tamaño
+presentation_mode.title=Cambiar al modo presentación
+presentation_mode_label=Modo presentación
+open_file.title=Abrir archivo
+open_file_label=Abrir
+print.title=Imprimir
+print_label=Imprimir
+save.title=Guardar
+save_label=Guardar
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Descargar
+# 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=Descargar
+bookmark1.title=Página actual (Ver URL de la página actual)
+bookmark1_label=Página actual
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Abrir en aplicación
+# 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 en aplicación
+
+# Secondary toolbar and context menu
+tools.title=Herramientas
+tools_label=Herramientas
+first_page.title=Ir a la primera página
+first_page_label=Ir a la primera página
+last_page.title=Ir a la última página
+last_page_label=Ir a la última página
+page_rotate_cw.title=Rotar en sentido horario
+page_rotate_cw_label=Rotar en sentido horario
+page_rotate_ccw.title=Rotar en sentido antihorario
+page_rotate_ccw_label=Rotar en sentido antihorario
+
+cursor_text_select_tool.title=Activar herramienta de selección de texto
+cursor_text_select_tool_label=Herramienta de selección de texto
+cursor_hand_tool.title=Activar herramienta de mano
+cursor_hand_tool_label=Herramienta de mano
+
+scroll_page.title=Usar desplazamiento de página
+scroll_page_label=Desplazamiento de página
+scroll_vertical.title=Usar desplazamiento vertical
+scroll_vertical_label=Desplazamiento vertical
+scroll_horizontal.title=Usar desplazamiento horizontal
+scroll_horizontal_label=Desplazamiento horizontal
+scroll_wrapped.title=Usar desplazamiento en bloque
+scroll_wrapped_label=Desplazamiento en bloque
+
+spread_none.title=No juntar páginas en vista de libro
+spread_none_label=Vista de libro
+spread_odd.title=Juntar las páginas partiendo de una con número impar
+spread_odd_label=Vista de libro impar
+spread_even.title=Juntar las páginas partiendo de una con número par
+spread_even_label=Vista de libro par
+
+# Document properties dialog box
+document_properties.title=Propiedades del documento…
+document_properties_label=Propiedades del documento…
+document_properties_file_name=Nombre de archivo:
+document_properties_file_size=Tamaño de archivo:
+# 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)
+# 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_title=Título:
+document_properties_author=Autor:
+document_properties_subject=Asunto:
+document_properties_keywords=Palabras clave:
+document_properties_creation_date=Fecha de creación:
+document_properties_modification_date=Fecha de modificación:
+# 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=Creador:
+document_properties_producer=Productor PDF:
+document_properties_version=Versión PDF:
+document_properties_page_count=Número de páginas:
+document_properties_page_size=Tamaño de la página:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertical
+document_properties_page_size_orientation_landscape=horizontal
+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=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=Vista rápida de la web:
+document_properties_linearized_yes=Sí
+document_properties_linearized_no=No
+document_properties_close=Cerrar
+
+print_progress_message=Preparando documento para impresión…
+# 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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Cambiar barra lateral
+toggle_sidebar_notification2.title=Alternar barra lateral (el documento contiene esquemas/adjuntos/capas)
+toggle_sidebar_label=Cambiar barra lateral
+document_outline.title=Mostrar resumen del documento (doble clic para expandir/contraer todos los elementos)
+document_outline_label=Resumen de documento
+attachments.title=Mostrar adjuntos
+attachments_label=Adjuntos
+layers.title=Mostrar capas (doble clic para restablecer todas las capas al estado predeterminado)
+layers_label=Capas
+thumbs.title=Mostrar miniaturas
+thumbs_label=Miniaturas
+current_outline_item.title=Encontrar elemento de esquema actual
+current_outline_item_label=Elemento de esquema actual
+findbar.title=Buscar en el documento
+findbar_label=Buscar
+
+additional_layers=Capas adicionales
+# 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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Página {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura de la página {{page}}
+
+# Find panel button title and messages
+find_input.title=Buscar
+find_input.placeholder=Buscar en el documento…
+find_previous.title=Encontrar la anterior aparición de la frase
+find_previous_label=Anterior
+find_next.title=Encontrar la siguiente aparición de esta frase
+find_next_label=Siguiente
+find_highlight=Resaltar todos
+find_match_case_label=Coincidencia de mayús./minús.
+find_match_diacritics_label=Coincidir diacríticos
+find_entire_word_label=Palabras completas
+find_reached_top=Se alcanzó el inicio del documento, se continúa desde el final
+find_reached_bottom=Se alcanzó el final del documento, se continúa desde el inicio
+# 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}} de {{total}} coincidencia
+find_match_count[two]={{current}} de {{total}} coincidencias
+find_match_count[few]={{current}} de {{total}} coincidencias
+find_match_count[many]={{current}} de {{total}} coincidencias
+find_match_count[other]={{current}} de {{total}} coincidencias
+# 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]=Más de {{limit}} coincidencias
+find_match_count_limit[one]=Más de {{limit}} coincidencia
+find_match_count_limit[two]=Más de {{limit}} coincidencias
+find_match_count_limit[few]=Más de {{limit}} coincidencias
+find_match_count_limit[many]=Más de {{limit}} coincidencias
+find_match_count_limit[other]=Más de {{limit}} coincidencias
+find_not_found=Frase no encontrada
+
+# Predefined zoom values
+page_scale_width=Anchura de la página
+page_scale_fit=Ajuste de la página
+page_scale_auto=Tamaño automático
+page_scale_actual=Tamaño real
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Ocurrió un error al cargar el PDF.
+invalid_file_error=Fichero PDF no válido o corrupto.
+missing_file_error=No hay fichero PDF.
+unexpected_response_error=Respuesta inesperada del servidor.
+rendering_error=Ocurrió un error al renderizar la 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Anotación {{type}}]
+password_label=Introduzca la contraseña para abrir este archivo PDF.
+password_invalid=Contraseña no válida. Vuelva a intentarlo.
+password_ok=Aceptar
+password_cancel=Cancelar
+
+printing_not_supported=Advertencia: Imprimir no está totalmente soportado por este navegador.
+printing_not_ready=Advertencia: Este PDF no se ha cargado completamente para poder imprimirse.
+web_fonts_disabled=Las tipografías web están desactivadas: es imposible usar las tipografías PDF embebidas.
+
+# Editor
+editor_free_text2.title=Texto
+editor_free_text2_label=Texto
+editor_ink2.title=Dibujar
+editor_ink2_label=Dibujar
+
+editor_stamp.title=Añadir una imagen
+editor_stamp_label=Añadir una imagen
+
+editor_stamp1.title=Añadir o editar imágenes
+editor_stamp1_label=Añadir o editar imágenes
+
+free_text2_default_content=Empezar a escribir…
+
+# Editor Parameters
+editor_free_text_color=Color
+editor_free_text_size=Tamaño
+editor_ink_color=Color
+editor_ink_thickness=Grosor
+editor_ink_opacity=Opacidad
+
+editor_stamp_add_image_label=Añadir imagen
+editor_stamp_add_image.title=Añadir imagen
+
+# Editor aria
+editor_free_text2_aria_label=Editor de texto
+editor_ink2_aria_label=Editor de dibujos
+editor_ink_canvas_aria_label=Imagen creada por el usuario
diff --git a/static/pdf.js/locale/es-MX/viewer.properties b/static/pdf.js/locale/es-MX/viewer.properties
index 4b85e8ffa..42bad4145 100644
--- a/static/pdf.js/locale/es-MX/viewer.properties
+++ b/static/pdf.js/locale/es-MX/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Anterior
next.title=Página siguiente
next_label=Siguiente
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Página:
-page_of=de {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Página
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
zoom_out.title=Reducir
zoom_out_label=Reducir
@@ -36,31 +39,47 @@ open_file.title=Abrir archivo
open_file_label=Abrir
print.title=Imprimir
print_label=Imprimir
-download.title=Descargar
-download_label=Descargar
-bookmark.title=Vista actual (copiar o abrir en una nueva ventana)
-bookmark_label=Vista actual
+
+save.title=Guardar
+save_label=Guardar
+bookmark1.title=Página actual (Ver URL de la página actual)
+bookmark1_label=Página actual
+
+open_in_app.title=Abrir en la aplicación
+open_in_app_label=Abrir en la aplicación
# Secondary toolbar and context menu
tools.title=Herramientas
tools_label=Herramientas
first_page.title=Ir a la primera página
-first_page.label=Ir a la primera página
first_page_label=Ir a la primera página
last_page.title=Ir a la última página
-last_page.label=Ir a la última página
last_page_label=Ir a la última página
page_rotate_cw.title=Girar a la derecha
-page_rotate_cw.label=Girar a la derecha
page_rotate_cw_label=Girar a la derecha
page_rotate_ccw.title=Girar a la izquierda
-page_rotate_ccw.label=Girar a la izquierda
page_rotate_ccw_label=Girar a la izquierda
-hand_tool_enable.title=Activar herramienta mano
-hand_tool_enable_label=Activar herramienta mano
-hand_tool_disable.title=Desactivar herramienta mano
-hand_tool_disable_label=Desactivar herramienta mano
+cursor_text_select_tool.title=Activar la herramienta de selección de texto
+cursor_text_select_tool_label=Herramienta de selección de texto
+cursor_hand_tool.title=Activar la herramienta de mano
+cursor_hand_tool_label=Herramienta de mano
+
+scroll_page.title=Usar desplazamiento de página
+scroll_page_label=Desplazamiento de página
+scroll_vertical.title=Usar desplazamiento vertical
+scroll_vertical_label=Desplazamiento vertical
+scroll_horizontal.title=Usar desplazamiento horizontal
+scroll_horizontal_label=Desplazamiento horizontal
+scroll_wrapped.title=Usar desplazamiento encapsulado
+scroll_wrapped_label=Desplazamiento encapsulado
+
+spread_none.title=No unir páginas separadas
+spread_none_label=Vista de una página
+spread_odd.title=Unir las páginas partiendo con una de número impar
+spread_odd_label=Vista de libro impar
+spread_even.title=Juntar las páginas partiendo con una de número par
+spread_even_label=Vista de libro par
# Document properties dialog box
document_properties.title=Propiedades del documento…
@@ -86,22 +105,58 @@ document_properties_creator=Creador:
document_properties_producer=Productor PDF:
document_properties_version=Versión PDF:
document_properties_page_count=Número de páginas:
+document_properties_page_size=Tamaño de la página:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertical
+document_properties_page_size_orientation_landscape=horizontal
+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=Oficio
+# 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=Vista rápida de la web:
+document_properties_linearized_yes=Sí
+document_properties_linearized_no=No
document_properties_close=Cerrar
+print_progress_message=Preparando documento para impresión…
+# 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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Cambiar barra lateral
+toggle_sidebar_notification2.title=Alternar barra lateral (el documento contiene esquemas/adjuntos/capas)
toggle_sidebar_label=Cambiar barra lateral
-outline.title=Mostrar esquema del documento
-outline_label=Esquema del documento
+document_outline.title=Mostrar esquema del documento (doble clic para expandir/contraer todos los elementos)
+document_outline_label=Esquema del documento
attachments.title=Mostrar adjuntos
attachments_label=Adjuntos
+layers.title=Mostrar capas (doble clic para restablecer todas las capas al estado predeterminado)
+layers_label=Capas
thumbs.title=Mostrar miniaturas
thumbs_label=Miniaturas
+current_outline_item.title=Buscar elemento de esquema actual
+current_outline_item_label=Elemento de esquema actual
findbar.title=Buscar en el documento
findbar_label=Buscar
+additional_layers=Capas adicionales
+# 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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +166,41 @@ thumb_page_title=Página {{page}}
thumb_page_canvas=Miniatura de la página {{page}}
# Find panel button title and messages
-find_label=Encontrar:
+find_input.title=Buscar
+find_input.placeholder=Buscar en el documento…
find_previous.title=Ir a la anterior frase encontrada
find_previous_label=Anterior
find_next.title=Ir a la siguiente frase encontrada
find_next_label=Siguiente
find_highlight=Resaltar todo
find_match_case_label=Coincidir con mayúsculas y minúsculas
+find_match_diacritics_label=Coincidir diacríticos
+find_entire_word_label=Palabras completas
find_reached_top=Se alcanzó el inicio del documento, se buscará al final
find_reached_bottom=Se alcanzó el final del documento, se buscará al inicio
+# 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}} de {{total}} coincidencia
+find_match_count[two]={{current}} de {{total}} coincidencias
+find_match_count[few]={{current}} de {{total}} coincidencias
+find_match_count[many]={{current}} de {{total}} coincidencias
+find_match_count[other]={{current}} de {{total}} coincidencias
+# 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]=Más de {{limit}} coincidencias
+find_match_count_limit[one]=Más de {{limit}} coinciden
+find_match_count_limit[two]=Más de {{limit}} coincidencias
+find_match_count_limit[few]=Más de {{limit}} coincidencias
+find_match_count_limit[many]=Más de {{limit}} coincidencias
+find_match_count_limit[other]=Más de {{limit}} coincidencias
find_not_found=No se encontró la frase
-# Error panel labels
-error_more_info=Más información
-error_less_info=Menos información
-error_close=Cerrar
-# 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=Mensaje: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Pila: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Archivo: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Línea: {{line}}
-rendering_error=Un error ocurrió al renderizar la página.
-
# Predefined zoom values
page_scale_width=Ancho de página
page_scale_fit=Ajustar página
@@ -151,12 +211,17 @@ page_scale_actual=Tamaño real
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Error
loading_error=Un error ocurrió al cargar el PDF.
invalid_file_error=Archivo PDF invalido o dañado.
missing_file_error=Archivo PDF no encontrado.
unexpected_response_error=Respuesta inesperada del servidor.
+rendering_error=Un error ocurrió al renderizar la 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +235,23 @@ password_cancel=Cancelar
printing_not_supported=Advertencia: La impresión no esta completamente soportada por este navegador.
printing_not_ready=Advertencia: El PDF no cargo completamente para impresión.
web_fonts_disabled=Las fuentes web están desactivadas: es imposible usar las fuentes PDF embebidas.
-document_colors_not_allowed=Los documentos PDF no tienen permiso de usar sus propios colores: 'Permitir que las páginas elijan sus propios colores' esta desactivada en el navegador.
+
+# Editor
+editor_free_text2.title=Texto
+editor_free_text2_label=Texto
+editor_ink2.title=Dibujar
+editor_ink2_label=Dibujar
+
+free_text2_default_content=Empieza a escribir…
+
+# Editor Parameters
+editor_free_text_color=Color
+editor_free_text_size=Tamaño
+editor_ink_color=Color
+editor_ink_thickness=Grossor
+editor_ink_opacity=Opacidad
+
+# Editor aria
+editor_free_text2_aria_label=Editor de texto
+editor_ink2_aria_label=Editor de dibujo
+editor_ink_canvas_aria_label=Imagen creada por el usuario
diff --git a/static/pdf.js/locale/es/viewer.properties b/static/pdf.js/locale/es/viewer.properties
deleted file mode 100644
index fc8848f8b..000000000
--- a/static/pdf.js/locale/es/viewer.properties
+++ /dev/null
@@ -1,141 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Página anterior
-previous_label=Anterior
-next.title=Página siguiente
-next_label=Siguiente
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Página:
-page_of=de {{pageCount}}
-
-zoom_out.title=Reducir
-zoom_out_label=Reducir
-zoom_in.title=Aumentar
-zoom_in_label=Aumentar
-zoom.title=Ampliación
-presentation_mode.title=Cambiar al modo de presentación
-presentation_mode_label=Modo de presentación
-open_file.title=Abrir un archivo
-open_file_label=Abrir
-print.title=Imprimir
-print_label=Imprimir
-download.title=Descargar
-download_label=Descargar
-bookmark.title=Vista actual (para copiar o abrir en otra ventana)
-bookmark_label=Vista actual
-
-# Secondary toolbar and context menu
-tools.title=Herramientas
-tools_label=Herramientas
-first_page.title=Ir a la primera página
-first_page.label=Ir a la primera página
-first_page_label=Ir a la primera página
-last_page.title=Ir a la última página
-last_page.label=Ir a la última página
-last_page_label=Ir a la última página
-page_rotate_cw.title=Girar a la derecha
-page_rotate_cw.label=Girar a la derecha
-page_rotate_cw_label=Girar a la derecha
-page_rotate_ccw.title=Girar a la izquierda
-page_rotate_ccw.label=Girar a la izquierda
-page_rotate_ccw_label=Girar a la izquierda
-
-hand_tool_enable.title=Activar la herramienta Mano
-hand_tool_enable_label=Activar la herramienta Mano
-hand_tool_disable.title=Desactivar la herramienta Mano
-hand_tool_disable_label=Desactivar la herramienta Mano
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=Mostrar u ocultar la barra lateral
-toggle_sidebar_label=Conmutar la barra lateral
-outline.title=Mostrar el esquema del documento
-outline_label=Esquema del documento
-thumbs.title=Mostrar las miniaturas
-thumbs_label=Miniaturas
-findbar.title=Buscar en el documento
-findbar_label=Buscar
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=Página {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=Miniatura de la página {{page}}
-
-# Find panel button title and messages
-find_label=Buscar:
-find_previous.title=Ir a la frase encontrada anterior
-find_previous_label=Anterior
-find_next.title=Ir a la frase encontrada siguiente
-find_next_label=Siguiente
-find_highlight=Resaltar todo
-find_match_case_label=Coincidir mayúsculas y minúsculas
-find_reached_top=Se alcanzó el inicio del documento, se continúa desde el final
-find_reached_bottom=Se alcanzó el final del documento, se continúa desde el inicio
-find_not_found=No se encontró la frase
-
-# Error panel labels
-error_more_info=Más información
-error_less_info=Menos información
-error_close=Cerrar
-# 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}} (compilación: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Mensaje: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Pila: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Archivo: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Línea: {{line}}
-rendering_error=Ocurrió un error al renderizar la página.
-
-# Predefined zoom values
-page_scale_width=Anchura de la página
-page_scale_fit=Ajustar a la página
-page_scale_auto=Ampliación automática
-page_scale_actual=Tamaño real
-
-# Loading indicator messages
-loading_error_indicator=Error
-loading_error=Ocurrió un error al cargar el PDF.
-invalid_file_error=El archivo PDF no es válido o está dañado.
-missing_file_error=Falta el archivo PDF.
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[Anotación {{type}}]
-password_label=Escriba la contraseña para abrir este archivo PDF.
-password_invalid=La contraseña no es válida. Inténtelo de nuevo.
-password_ok=Aceptar
-password_cancel=Cancelar
-
-printing_not_supported=Aviso: Este navegador no es compatible completamente con la impresión.
-printing_not_ready=Aviso: El PDF no se ha cargado completamente para su impresión.
-web_fonts_disabled=Se han desactivado los tipos de letra web: no se pueden usar los tipos de letra incrustados en el PDF.
-document_colors_disabled=No se permite que los documentos PDF usen sus propios colores: la opción «Permitir que las páginas elijan sus propios colores» está desactivada en el navegador.
diff --git a/static/pdf.js/locale/et/viewer.properties b/static/pdf.js/locale/et/viewer.properties
index 83da357b3..12b2ce55e 100644
--- a/static/pdf.js/locale/et/viewer.properties
+++ b/static/pdf.js/locale/et/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Eelmine
next.title=Järgmine lehekülg
next_label=Järgmine
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Lehekülg:
-page_of=(kokku {{pageCount}})
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Leht
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=/ {{pagesCount}}
+# 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=Vähenda
zoom_out_label=Vähenda
@@ -36,38 +39,50 @@ open_file.title=Ava fail
open_file_label=Ava
print.title=Prindi
print_label=Prindi
-download.title=Laadi alla
-download_label=Laadi alla
-bookmark.title=Praegune vaade (kopeeri või ava uues aknas)
-bookmark_label=Praegune vaade
# Secondary toolbar and context menu
tools.title=Tööriistad
tools_label=Tööriistad
first_page.title=Mine esimesele leheküljele
-first_page.label=Mine esimesele leheküljele
first_page_label=Mine esimesele leheküljele
last_page.title=Mine viimasele leheküljele
-last_page.label=Mine viimasele leheküljele
last_page_label=Mine viimasele leheküljele
page_rotate_cw.title=Pööra päripäeva
-page_rotate_cw.label=Pööra päripäeva
page_rotate_cw_label=Pööra päripäeva
page_rotate_ccw.title=Pööra vastupäeva
-page_rotate_ccw.label=Pööra vastupäeva
page_rotate_ccw_label=Pööra vastupäeva
-hand_tool_enable.title=Luba sirvimine
-hand_tool_enable_label=Luba sirvimine
-hand_tool_disable.title=Keela sirvimine
-hand_tool_disable_label=Keela sirvimine
+cursor_text_select_tool.title=Luba teksti valimise tööriist
+cursor_text_select_tool_label=Teksti valimise tööriist
+cursor_hand_tool.title=Luba sirvimistööriist
+cursor_hand_tool_label=Sirvimistööriist
+
+scroll_page.title=Kasutatakse lehe kaupa kerimist
+scroll_page_label=Lehe kaupa kerimine
+scroll_vertical.title=Kasuta vertikaalset kerimist
+scroll_vertical_label=Vertikaalne kerimine
+scroll_horizontal.title=Kasuta horisontaalset kerimist
+scroll_horizontal_label=Horisontaalne kerimine
+scroll_wrapped.title=Kasuta rohkem mahutavat kerimist
+scroll_wrapped_label=Rohkem mahutav kerimine
+
+spread_none.title=Ära kõrvuta lehekülgi
+spread_none_label=Lehtede kõrvutamine puudub
+spread_odd.title=Kõrvuta leheküljed, alustades paaritute numbritega lehekülgedega
+spread_odd_label=Kõrvutamine paaritute numbritega alustades
+spread_even.title=Kõrvuta leheküljed, alustades paarisnumbritega lehekülgedega
+spread_even_label=Kõrvutamine paarisnumbritega alustades
# Document properties dialog box
document_properties.title=Dokumendi omadused…
document_properties_label=Dokumendi omadused…
document_properties_file_name=Faili nimi:
document_properties_file_size=Faili suurus:
+# 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}} KiB ({{size_b}} baiti)
+# 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}} MiB ({{size_b}} baiti)
document_properties_title=Pealkiri:
document_properties_author=Autor:
@@ -75,27 +90,65 @@ document_properties_subject=Teema:
document_properties_keywords=Märksõnad:
document_properties_creation_date=Loodud:
document_properties_modification_date=Muudetud:
+# 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=Looja:
document_properties_producer=Generaator:
document_properties_version=Generaatori versioon:
document_properties_page_count=Lehekülgi:
+document_properties_page_size=Lehe suurus:
+document_properties_page_size_unit_inches=tolli
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertikaalpaigutus
+document_properties_page_size_orientation_landscape=rõhtpaigutus
+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" tugi:
+document_properties_linearized_yes=Jah
+document_properties_linearized_no=Ei
document_properties_close=Sulge
+print_progress_message=Dokumendi ettevalmistamine printimiseks…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Loobu
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Näita külgriba
+toggle_sidebar_notification2.title=Näita külgriba (dokument sisaldab sisukorda/manuseid/kihte)
toggle_sidebar_label=Näita külgriba
-outline.title=Näita sisukorda
-outline_label=Näita sisukorda
+document_outline.title=Näita sisukorda (kõigi punktide laiendamiseks/ahendamiseks topeltklõpsa)
+document_outline_label=Näita sisukorda
attachments.title=Näita manuseid
attachments_label=Manused
+layers.title=Näita kihte (kõikide kihtide vaikeolekusse lähtestamiseks topeltklõpsa)
+layers_label=Kihid
thumbs.title=Näita pisipilte
thumbs_label=Pisipildid
+current_outline_item.title=Otsi üles praegune kontuuriüksus
+current_outline_item_label=Praegune kontuuriüksus
findbar.title=Otsi dokumendist
findbar_label=Otsi
+additional_layers=Täiendavad kihid
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Lehekülg {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -105,36 +158,41 @@ thumb_page_title={{page}}. lehekülg
thumb_page_canvas={{page}}. lehekülje pisipilt
# Find panel button title and messages
-find_label=Otsi:
+find_input.title=Otsi
+find_input.placeholder=Otsi dokumendist…
find_previous.title=Otsi fraasi eelmine esinemiskoht
find_previous_label=Eelmine
find_next.title=Otsi fraasi järgmine esinemiskoht
find_next_label=Järgmine
find_highlight=Too kõik esile
find_match_case_label=Tõstutundlik
+find_match_diacritics_label=Otsitakse diakriitiliselt
+find_entire_word_label=Täissõnad
find_reached_top=Jõuti dokumendi algusesse, jätkati lõpust
find_reached_bottom=Jõuti dokumendi lõppu, jätkati algusest
+# 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]=vaste {{current}}/{{total}}
+find_match_count[two]=vaste {{current}}/{{total}}
+find_match_count[few]=vaste {{current}}/{{total}}
+find_match_count[many]=vaste {{current}}/{{total}}
+find_match_count[other]=vaste {{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]=Rohkem kui {{limit}} vastet
+find_match_count_limit[one]=Rohkem kui {{limit}} vaste
+find_match_count_limit[two]=Rohkem kui {{limit}} vastet
+find_match_count_limit[few]=Rohkem kui {{limit}} vastet
+find_match_count_limit[many]=Rohkem kui {{limit}} vastet
+find_match_count_limit[other]=Rohkem kui {{limit}} vastet
find_not_found=Fraasi ei leitud
-# Error panel labels
-error_more_info=Rohkem teavet
-error_less_info=Vähem teavet
-error_close=Sulge
-# 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=Teade: {{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=Fail: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Rida: {{line}}
-rendering_error=Lehe renderdamisel esines viga.
-
# Predefined zoom values
page_scale_width=Mahuta laiusele
page_scale_fit=Mahuta leheküljele
@@ -144,14 +202,18 @@ page_scale_actual=Tegelik suurus
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Viga
loading_error=PDFi laadimisel esines viga.
invalid_file_error=Vigane või rikutud PDF-fail.
missing_file_error=PDF-fail puudub.
unexpected_response_error=Ootamatu vastus serverilt.
-# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+rendering_error=Lehe renderdamisel esines viga.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
@@ -164,4 +226,4 @@ password_cancel=Loobu
printing_not_supported=Hoiatus: printimine pole selle brauseri poolt täielikult toetatud.
printing_not_ready=Hoiatus: PDF pole printimiseks täielikult laaditud.
web_fonts_disabled=Veebifondid on keelatud: PDFiga kaasatud fonte pole võimalik kasutada.
-document_colors_disabled=PDF-dokumentidel pole oma värvide kasutamine lubatud: \'Veebilehtedel on lubatud kasutada oma värve\' on brauseris deaktiveeritud.
+
diff --git a/static/pdf.js/locale/eu/viewer.properties b/static/pdf.js/locale/eu/viewer.properties
index c30298965..45ecd663b 100644
--- a/static/pdf.js/locale/eu/viewer.properties
+++ b/static/pdf.js/locale/eu/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Aurrekoa
next.title=Hurrengo orria
next_label=Hurrengoa
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Orria:
-page_of=/ {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Orria
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=/ {{pagesCount}}
+# 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={{pagesCount}}/{{pageNumber}}
zoom_out.title=Urrundu zooma
zoom_out_label=Urrundu zooma
@@ -36,31 +39,52 @@ open_file.title=Ireki fitxategia
open_file_label=Ireki
print.title=Inprimatu
print_label=Inprimatu
-download.title=Deskargatu
-download_label=Deskargatu
-bookmark.title=Uneko ikuspegia (kopiatu edo ireki leiho berrian)
-bookmark_label=Uneko ikuspegia
+save.title=Gorde
+save_label=Gorde
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Deskargatu
+# 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=Deskargatu
+bookmark1.title=Uneko orria (ikusi uneko orriaren URLa)
+bookmark1_label=Uneko orria
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Ireki aplikazioan
+# 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=Ireki aplikazioan
# Secondary toolbar and context menu
tools.title=Tresnak
tools_label=Tresnak
first_page.title=Joan lehen orrira
-first_page.label=Joan lehen orrira
first_page_label=Joan lehen orrira
last_page.title=Joan azken orrira
-last_page.label=Joan azken orrira
last_page_label=Joan azken orrira
page_rotate_cw.title=Biratu erlojuaren norantzan
-page_rotate_cw.label=Biratu erlojuaren norantzan
page_rotate_cw_label=Biratu erlojuaren norantzan
page_rotate_ccw.title=Biratu erlojuaren aurkako norantzan
-page_rotate_ccw.label=Biratu erlojuaren aurkako norantzan
page_rotate_ccw_label=Biratu erlojuaren aurkako norantzan
-hand_tool_enable.title=Gaitu eskuaren tresna
-hand_tool_enable_label=Gaitu eskuaren tresna
-hand_tool_disable.title=Desgaitu eskuaren tresna
-hand_tool_disable_label=Desgaitu eskuaren tresna
+cursor_text_select_tool.title=Gaitu testuaren hautapen tresna
+cursor_text_select_tool_label=Testuaren hautapen tresna
+cursor_hand_tool.title=Gaitu eskuaren tresna
+cursor_hand_tool_label=Eskuaren tresna
+
+scroll_page.title=Erabili orriaren korritzea
+scroll_page_label=Orriaren korritzea
+scroll_vertical.title=Erabili korritze bertikala
+scroll_vertical_label=Korritze bertikala
+scroll_horizontal.title=Erabili korritze horizontala
+scroll_horizontal_label=Korritze horizontala
+scroll_wrapped.title=Erabili korritze egokitua
+scroll_wrapped_label=Korritze egokitua
+
+spread_none.title=Ez elkartu barreiatutako orriak
+spread_none_label=Barreiatzerik ez
+spread_odd.title=Elkartu barreiatutako orriak bakoiti zenbakidunekin hasita
+spread_odd_label=Barreiatze bakoitia
+spread_even.title=Elkartu barreiatutako orriak bikoiti zenbakidunekin hasita
+spread_even_label=Barreiatze bikoitia
# Document properties dialog box
document_properties.title=Dokumentuaren propietateak…
@@ -86,22 +110,58 @@ document_properties_creator=Sortzailea:
document_properties_producer=PDFaren ekoizlea:
document_properties_version=PDF bertsioa:
document_properties_page_count=Orrialde kopurua:
+document_properties_page_size=Orriaren tamaina:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=bertikala
+document_properties_page_size_orientation_landscape=horizontala
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Gutuna
+document_properties_page_size_name_legal=Legala
+# 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=Webeko ikuspegi bizkorra:
+document_properties_linearized_yes=Bai
+document_properties_linearized_no=Ez
document_properties_close=Itxi
+print_progress_message=Dokumentua inprimatzeko prestatzen…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent=%{{progress}}
+print_progress_close=Utzi
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Txandakatu alboko barra
+toggle_sidebar_notification2.title=Txandakatu alboko barra (dokumentuak eskema/eranskinak/geruzak ditu)
toggle_sidebar_label=Txandakatu alboko barra
-outline.title=Erakutsi dokumentuaren eskema
-outline_label=Dokumentuaren eskema
+document_outline.title=Erakutsi dokumentuaren eskema (klik bikoitza elementu guztiak zabaltzeko/tolesteko)
+document_outline_label=Dokumentuaren eskema
attachments.title=Erakutsi eranskinak
attachments_label=Eranskinak
+layers.title=Erakutsi geruzak (klik bikoitza geruza guztiak egoera lehenetsira berrezartzeko)
+layers_label=Geruzak
thumbs.title=Erakutsi koadro txikiak
thumbs_label=Koadro txikiak
+current_outline_item.title=Bilatu uneko eskemaren elementua
+current_outline_item_label=Uneko eskemaren elementua
findbar.title=Bilatu dokumentuan
findbar_label=Bilatu
+additional_layers=Geruza gehigarriak
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark={{page}}. orria
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title={{page}}. orria
thumb_page_canvas={{page}}. orriaren koadro txikia
# Find panel button title and messages
-find_label=Bilatu:
+find_input.title=Bilatu
+find_input.placeholder=Bilatu dokumentuan…
find_previous.title=Bilatu esaldiaren aurreko parekatzea
find_previous_label=Aurrekoa
find_next.title=Bilatu esaldiaren hurrengo parekatzea
find_next_label=Hurrengoa
find_highlight=Nabarmendu guztia
find_match_case_label=Bat etorri maiuskulekin/minuskulekin
+find_match_diacritics_label=Bereizi diakritikoak
+find_entire_word_label=Hitz osoak
find_reached_top=Dokumentuaren hasierara heldu da, bukaeratik jarraitzen
find_reached_bottom=Dokumentuaren bukaerara heldu da, hasieratik jarraitzen
+# 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]={{total}}/{{current}}. bat etortzea
+find_match_count[two]={{total}}/{{current}}. bat etortzea
+find_match_count[few]={{total}}/{{current}}. bat etortzea
+find_match_count[many]={{total}}/{{current}}. bat etortzea
+find_match_count[other]={{total}}/{{current}}. bat etortzea
+# 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}} bat-etortze baino gehiago
+find_match_count_limit[one]=Bat-etortze {{limit}} baino gehiago
+find_match_count_limit[two]={{limit}} bat-etortze baino gehiago
+find_match_count_limit[few]={{limit}} bat-etortze baino gehiago
+find_match_count_limit[many]={{limit}} bat-etortze baino gehiago
+find_match_count_limit[other]={{limit}} bat-etortze baino gehiago
find_not_found=Esaldia ez da aurkitu
-# Error panel labels
-error_more_info=Informazio gehiago
-error_less_info=Informazio gutxiago
-error_close=Itxi
-# 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}} (eraikuntza: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Mezua: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Pila: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fitxategia: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Lerroa: {{line}}
-rendering_error=Errorea gertatu da orria errendatzean.
-
# Predefined zoom values
page_scale_width=Orriaren zabalera
page_scale_fit=Doitu orrira
@@ -151,11 +216,15 @@ page_scale_actual=Benetako tamaina
page_scale_percent=%{{scale}}
# Loading indicator messages
-loading_error_indicator=Errorea
loading_error=Errorea gertatu da PDFa kargatzean.
invalid_file_error=PDF fitxategi baliogabe edo hondatua.
missing_file_error=PDF fitxategia falta da.
unexpected_response_error=Espero gabeko zerbitzariaren erantzuna.
+rendering_error=Errorea gertatu da orria errendatzean.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,46 @@ password_cancel=Utzi
printing_not_supported=Abisua: inprimatzeko euskarria ez da erabatekoa nabigatzaile honetan.
printing_not_ready=Abisua: PDFa ez dago erabat kargatuta inprimatzeko.
web_fonts_disabled=Webeko letra-tipoak desgaituta daude: ezin dira kapsulatutako PDF letra-tipoak erabili.
-document_colors_not_allowed=PDF dokumentuek ez dute beraien koloreak erabiltzeko baimenik: 'Baimendu orriak beraien letra-tipoak aukeratzea' desaktibatuta dago nabigatzailean.
+
+# Editor
+editor_free_text2.title=Testua
+editor_free_text2_label=Testua
+editor_ink2.title=Marrazkia
+editor_ink2_label=Marrazkia
+
+editor_stamp1.title=Gehitu edo editatu irudiak
+editor_stamp1_label=Gehitu edo editatu irudiak
+
+free_text2_default_content=Hasi idazten…
+
+# Editor Parameters
+editor_free_text_color=Kolorea
+editor_free_text_size=Tamaina
+editor_ink_color=Kolorea
+editor_ink_thickness=Loditasuna
+editor_ink_opacity=Opakutasuna
+
+editor_stamp_add_image_label=Gehitu irudia
+editor_stamp_add_image.title=Gehitu irudia
+
+# Editor aria
+editor_free_text2_aria_label=Testu-editorea
+editor_ink2_aria_label=Marrazki-editorea
+editor_ink_canvas_aria_label=Erabiltzaileak sortutako irudia
+
+# 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=Testu alternatiboa
+editor_alt_text_edit_button_label=Editatu testu alternatiboa
+editor_alt_text_dialog_label=Aukeratu aukera
+editor_alt_text_dialog_description=Testu alternatiboak laguntzen du jendeak ezin duenean irudia ikusi edo ez denean kargatzen.
+editor_alt_text_add_description_label=Gehitu azalpena
+editor_alt_text_add_description_description=Saiatu idazten gaia, ezarpena edo ekintzak deskribatzen dituen esaldi 1 edo 2.
+editor_alt_text_mark_decorative_label=Markatu apaingarri gisa
+editor_alt_text_mark_decorative_description=Irudiak apaingarrientzat erabiltzen da, adibidez ertz edo ur-marketarako.
+editor_alt_text_cancel_button=Utzi
+editor_alt_text_save_button=Gorde
+editor_alt_text_decorative_tooltip=Apaingarri gisa markatuta
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Adibidez, "gizon gaztea mahaian eserita dago bazkaltzeko"
diff --git a/static/pdf.js/locale/fa/viewer.properties b/static/pdf.js/locale/fa/viewer.properties
index 28f2cb651..a78b022d8 100644
--- a/static/pdf.js/locale/fa/viewer.properties
+++ b/static/pdf.js/locale/fa/viewer.properties
@@ -18,12 +18,15 @@ previous_label=قبلی
next.title=صفحهٔ بعدی
next_label=بعدی
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=صفحه:
-page_of=از {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=صفحه
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=از {{pagesCount}}
+# 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_label=کوچکنمایی
@@ -36,31 +39,32 @@ open_file.title=باز کردن پرونده
open_file_label=باز کردن
print.title=چاپ
print_label=چاپ
-download.title=بارگیری
-download_label=بارگیری
-bookmark.title=نمای فعلی (رونوشت و یا نشان دادن در پنجره جدید)
-bookmark_label=نمای فعلی
+
+save_label=ذخیره
+
# Secondary toolbar and context menu
tools.title=ابزارها
tools_label=ابزارها
first_page.title=برو به اولین صفحه
-first_page.label=برو یه اولین صفحه
first_page_label=برو به اولین صفحه
last_page.title=برو به آخرین صفحه
-last_page.label=برو به آخرین صفحه
last_page_label=برو به آخرین صفحه
page_rotate_cw.title=چرخش ساعتگرد
-page_rotate_cw.label=چرخش ساعتگرد
page_rotate_cw_label=چرخش ساعتگرد
page_rotate_ccw.title=چرخش پاد ساعتگرد
-page_rotate_ccw.label=چرخش پاد ساعتگرد
page_rotate_ccw_label=چرخش پاد ساعتگرد
-hand_tool_enable.title=فعال سازی ابزار دست
-hand_tool_enable_label=فعال سازی ابزار دست
-hand_tool_disable.title=غیرفعال سازی ابزار دست
-hand_tool_disable_label=غیرفعال سازی ابزار دست
+cursor_text_select_tool.title=فعال کردن ابزارِ انتخابِ متن
+cursor_text_select_tool_label=ابزارِ انتخابِ متن
+cursor_hand_tool.title=فعال کردن ابزارِ دست
+cursor_hand_tool_label=ابزار دست
+
+scroll_vertical.title=استفاده از پیمایش عمودی
+scroll_vertical_label=پیمایش عمودی
+scroll_horizontal.title=استفاده از پیمایش افقی
+scroll_horizontal_label=پیمایش افقی
+
# Document properties dialog box
document_properties.title=خصوصیات سند...
@@ -86,22 +90,50 @@ document_properties_creator=ایجاد کننده:
document_properties_producer=ایجاد کننده PDF:
document_properties_version=نسخه PDF:
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=بستن
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=باز و بسته کردن نوار کناری
toggle_sidebar_label=تغییرحالت نوارکناری
-outline.title=نمایش طرح نوشتار
-outline_label=طرح نوشتار
+document_outline.title=نمایش رئوس مطالب مدارک(برای بازشدن/جمع شدن همه موارد دوبار کلیک کنید)
+document_outline_label=طرح نوشتار
attachments.title=نمایش پیوستها
attachments_label=پیوستها
+layers_label=لایهها
thumbs.title=نمایش تصاویر بندانگشتی
thumbs_label=تصاویر بندانگشتی
findbar.title=جستجو در سند
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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +143,32 @@ thumb_page_title=صفحه {{page}}
thumb_page_canvas=تصویر بند انگشتی صفحه {{page}}
# Find panel button title and messages
-find_label=جستجو:
+find_input.title=پیدا کردن
+find_input.placeholder=پیدا کردن در سند…
find_previous.title=پیدا کردن رخداد قبلی عبارت
find_previous_label=قبلی
find_next.title=پیدا کردن رخداد بعدی عبارت
find_next_label=بعدی
find_highlight=برجسته و هایلایت کردن همه موارد
find_match_case_label=تطبیق کوچکی و بزرگی حروف
+find_entire_word_label=تمام کلمهها
find_reached_top=به بالای صفحه رسیدیم، از پایین ادامه میدهیم
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=عبارت پیدا نشد
-# 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
page_scale_width=عرض صفحه
page_scale_fit=اندازه کردن صفحه
@@ -151,12 +179,18 @@ page_scale_actual=اندازه واقعی
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=خطا
+
+# Loading indicator messages
loading_error=هنگام بارگیری پرونده PDF خطایی رخ داد.
invalid_file_error=پرونده PDF نامعتبر یامعیوب میباشد.
missing_file_error=پرونده PDF یافت نشد.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -165,9 +199,23 @@ text_annotation_type.alt=[{{type}} Annotation]
password_label=جهت باز کردن پرونده PDF گذرواژه را وارد نمائید.
password_invalid=گذرواژه نامعتبر. لطفا مجددا تلاش کنید.
password_ok=تأیید
-password_cancel=انصراف
+password_cancel=لغو
printing_not_supported=هشدار: قابلیت چاپ بهطور کامل در این مرورگر پشتیبانی نمیشود.
printing_not_ready=اخطار: پرونده 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 Parameters
+editor_free_text_color=رنگ
+editor_free_text_size=اندازه
+editor_ink_color=رنگ
+
+# Editor aria
+
diff --git a/static/pdf.js/locale/ff/viewer.properties b/static/pdf.js/locale/ff/viewer.properties
index 026c4bf22..bd984f559 100644
--- a/static/pdf.js/locale/ff/viewer.properties
+++ b/static/pdf.js/locale/ff/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Ɓennuɗo
next.title=Hello faango
next_label=Yeeso
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Hello:
-page_of=e nder {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Hello
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=e nder {{pagesCount}}
+# 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=Lonngo Woɗɗa
zoom_out_label=Lonngo Woɗɗa
@@ -36,31 +39,37 @@ open_file.title=Uddit Fiilde
open_file_label=Uddit
print.title=Winndito
print_label=Winndito
-download.title=Aawto
-download_label=Aawto
-bookmark.title=Jiytol gonangol (natto walla uddit e henorde)
-bookmark_label=Jiytol Gonangol
# Secondary toolbar and context menu
tools.title=Kuutorɗe
tools_label=Kuutorɗe
first_page.title=Yah to hello adanngo
-first_page.label=Yah to hello adanngo
first_page_label=Yah to hello adanngo
last_page.title=Yah to hello wattindiingo
-last_page.label=Yah to hello wattindiingo
last_page_label=Yah to hello wattindiingo
page_rotate_cw.title=Yiiltu Faya Ñaamo
-page_rotate_cw.label=Yiiltu Faya Ñaamo
page_rotate_cw_label=Yiiltu Faya Ñaamo
page_rotate_ccw.title=Yiiltu Faya Nano
-page_rotate_ccw.label=Yiiltu Faya Nano
page_rotate_ccw_label=Yiiltu Faya Nano
-hand_tool_enable.title=Hurmin kuutorgal junngo
-hand_tool_enable_label=Hurmin kuutorgal junngo
-hand_tool_disable.title=Daaƴ kuutorgal junngo
-hand_tool_disable_label=Daaƴ kuutorgal junngo
+cursor_text_select_tool.title=Gollin kaɓirgel cuɓirgel binndi
+cursor_text_select_tool_label=Kaɓirgel cuɓirgel binndi
+cursor_hand_tool.title=Hurmin kuutorgal junngo
+cursor_hand_tool_label=Kaɓirgel junngo
+
+scroll_vertical.title=Huutoro gorwitol daringol
+scroll_vertical_label=Gorwitol daringol
+scroll_horizontal.title=Huutoro gorwitol lelingol
+scroll_horizontal_label=Gorwitol daringol
+scroll_wrapped.title=Huutoro gorwitol coomingol
+scroll_wrapped_label=Gorwitol coomingol
+
+spread_none.title=Hoto tawtu kelle kelle
+spread_none_label=Alaa Spreads
+spread_odd.title=Tawtu kelle puɗɗortooɗe kelle teelɗe
+spread_odd_label=Kelle teelɗe
+spread_even.title=Tawtu ɗereeji kelle puɗɗoriiɗi kelle teeltuɗe
+spread_even_label=Kelle teeltuɗe
# Document properties dialog box
document_properties.title=Keeroraaɗi Winndannde…
@@ -86,15 +95,43 @@ document_properties_creator=Cosɗo:
document_properties_producer=Paggiiɗo PDF:
document_properties_version=Yamre PDF:
document_properties_page_count=Limoore Kelle:
+document_properties_page_size=Ɓeto Hello:
+document_properties_page_size_unit_inches=nder
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=dariingo
+document_properties_page_size_orientation_landscape=wertiingo
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Ɓataake
+document_properties_page_size_name_legal=Laawol
+# 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=Ɗisngo geese yaawngo:
+document_properties_linearized_yes=Eey
+document_properties_linearized_no=Alaa
document_properties_close=Uddu
+print_progress_message=Nana heboo winnditaade fiilannde…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Haaytu
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Toggilo Palal Sawndo
toggle_sidebar_label=Toggilo Palal Sawndo
-outline.title=Hollu Toɓɓe Fiilannde
-outline_label=Toɓɓe Fiilannde
+document_outline.title=Hollu Ƴiyal Fiilannde (dobdobo ngam wertude/taggude teme fof)
+document_outline_label=Toɓɓe Fiilannde
attachments.title=Hollu Ɗisanɗe
attachments_label=Ɗisanɗe
thumbs.title=Hollu Dooɓe
@@ -111,36 +148,40 @@ thumb_page_title=Hello {{page}}
thumb_page_canvas=Dooɓre Hello {{page}}
# Find panel button title and messages
-find_label=Yiytu:
+find_input.title=Yiytu
+find_input.placeholder=Yiylo nder dokimaa
find_previous.title=Yiylo cilol ɓennugol konngol ngol
find_previous_label=Ɓennuɗo
find_next.title=Yiylo cilol garowol konngol ngol
find_next_label=Yeeso
find_highlight=Jalbin fof
find_match_case_label=Jaaɓnu darnde
+find_entire_word_label=Kelme timmuɗe tan
find_reached_top=Heɓii fuɗɗorde fiilannde, jokku faya les
find_reached_bottom=Heɓii hoore fiilannde, jokku faya les
+# 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}} wonande laabi {{total}}
+find_match_count[two]={{current}} wonande laabi {{total}}
+find_match_count[few]={{current}} wonande laabi {{total}}
+find_match_count[many]={{current}} wonande laabi {{total}}
+find_match_count[other]={{current}} wonande laabi {{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]=Ko ɓuri laabi {{limit}}
+find_match_count_limit[one]=Ko ɓuri laani {{limit}}
+find_match_count_limit[two]=Ko ɓuri laabi {{limit}}
+find_match_count_limit[few]=Ko ɓuri laabi {{limit}}
+find_match_count_limit[many]=Ko ɓuri laabi {{limit}}
+find_match_count_limit[other]=Ko ɓuri laabi {{limit}}
find_not_found=Konngi njiyataa
-# Error panel labels
-error_more_info=Ɓeydu Humpito
-error_less_info=Ustu Humpito
-error_close=Uddu
-# 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=Ɓatakuure: {{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=Fiilde: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Gorol: {{line}}
-rendering_error=Juumre waɗii tuma nde yoŋkittoo hello.
-
# Predefined zoom values
page_scale_width=Njaajeendi Hello
page_scale_fit=Keƴeendi Hello
@@ -150,13 +191,13 @@ page_scale_actual=Ɓetol Jaati
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Juumre
loading_error=Juumre waɗii tuma nde loowata PDF oo.
invalid_file_error=Fiilde PDF moƴƴaani walla jiibii.
missing_file_error=Fiilde PDF ena ŋakki.
unexpected_response_error=Jaabtol sarworde tijjinooka.
+rendering_error=Juumre waɗii tuma nde yoŋkittoo hello.
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +211,4 @@ password_cancel=Haaytu
printing_not_supported=Reentino: Winnditagol tammbitaaka no feewi e ndee wanngorde.
printing_not_ready=Reentino: PDF oo loowaaki haa timmi ngam winnditagol.
web_fonts_disabled=Ponte geese ko daaƴaaɗe: horiima huutoraade ponte PDF coomtoraaɗe.
-document_colors_not_allowed=Piilanɗe PDF njamiraaka yoo kuutoro goobuuji mum'en keeriiɗi: 'Yamir kello yoo kuutoro goobuuki keeriiɗi' koko daaƴaa e wanngorde ndee.
+
diff --git a/static/pdf.js/locale/fi/viewer.properties b/static/pdf.js/locale/fi/viewer.properties
index be543b6a7..e03e6a7c9 100644
--- a/static/pdf.js/locale/fi/viewer.properties
+++ b/static/pdf.js/locale/fi/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Edellinen
next.title=Seuraava sivu
next_label=Seuraava
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Sivu:
-page_of=/ {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Sivu
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=/ {{pagesCount}}
+# 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=Loitonna
zoom_out_label=Loitonna
@@ -36,38 +39,63 @@ open_file.title=Avaa tiedosto
open_file_label=Avaa
print.title=Tulosta
print_label=Tulosta
-download.title=Lataa
-download_label=Lataa
-bookmark.title=Avoin ikkuna (kopioi tai avaa uuteen ikkunaan)
-bookmark_label=Avoin ikkuna
+save.title=Tallenna
+save_label=Tallenna
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Lataa
+# 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=Lataa
+bookmark1.title=Nykyinen sivu (Näytä URL-osoite nykyiseltä sivulta)
+bookmark1_label=Nykyinen sivu
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Avaa sovelluksessa
+# 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=Avaa sovelluksessa
# Secondary toolbar and context menu
tools.title=Tools
tools_label=Tools
first_page.title=Siirry ensimmäiselle sivulle
-first_page.label=Siirry ensimmäiselle sivulle
first_page_label=Siirry ensimmäiselle sivulle
last_page.title=Siirry viimeiselle sivulle
-last_page.label=Siirry viimeiselle sivulle
last_page_label=Siirry viimeiselle sivulle
page_rotate_cw.title=Kierrä oikealle
-page_rotate_cw.label=Kierrä oikealle
page_rotate_cw_label=Kierrä oikealle
page_rotate_ccw.title=Kierrä vasemmalle
-page_rotate_ccw.label=Kierrä vasemmalle
page_rotate_ccw_label=Kierrä vasemmalle
-hand_tool_enable.title=Käytä käsityökalua
-hand_tool_enable_label=Käytä käsityökalua
-hand_tool_disable.title=Poista käsityökalu käytöstä
-hand_tool_disable_label=Poista käsityökalu käytöstä
+cursor_text_select_tool.title=Käytä tekstinvalintatyökalua
+cursor_text_select_tool_label=Tekstinvalintatyökalu
+cursor_hand_tool.title=Käytä käsityökalua
+cursor_hand_tool_label=Käsityökalu
+
+scroll_page.title=Käytä sivun vieritystä
+scroll_page_label=Sivun vieritys
+scroll_vertical.title=Käytä pystysuuntaista vieritystä
+scroll_vertical_label=Pystysuuntainen vieritys
+scroll_horizontal.title=Käytä vaakasuuntaista vieritystä
+scroll_horizontal_label=Vaakasuuntainen vieritys
+scroll_wrapped.title=Käytä rivittyvää vieritystä
+scroll_wrapped_label=Rivittyvä vieritys
+
+spread_none.title=Älä yhdistä sivuja aukeamiksi
+spread_none_label=Ei aukeamia
+spread_odd.title=Yhdistä sivut aukeamiksi alkaen parittomalta sivulta
+spread_odd_label=Parittomalta alkavat aukeamat
+spread_even.title=Yhdistä sivut aukeamiksi alkaen parilliselta sivulta
+spread_even_label=Parilliselta alkavat aukeamat
# Document properties dialog box
document_properties.title=Dokumentin ominaisuudet…
document_properties_label=Dokumentin ominaisuudet…
-document_properties_file_name=Tiedostonimi:
+document_properties_file_name=Tiedoston nimi:
document_properties_file_size=Tiedoston koko:
+# 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}} kt ({{size_b}} tavua)
+# 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}} Mt ({{size_b}} tavua)
document_properties_title=Otsikko:
document_properties_author=Tekijä:
@@ -75,27 +103,65 @@ document_properties_subject=Aihe:
document_properties_keywords=Avainsanat:
document_properties_creation_date=Luomispäivämäärä:
document_properties_modification_date=Muokkauspäivämäärä:
+# 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=Luoja:
document_properties_producer=PDF-tuottaja:
document_properties_version=PDF-versio:
document_properties_page_count=Sivujen määrä:
+document_properties_page_size=Sivun koko:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=pysty
+document_properties_page_size_orientation_landscape=vaaka
+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=Nopea web-katselu:
+document_properties_linearized_yes=Kyllä
+document_properties_linearized_no=Ei
document_properties_close=Sulje
+print_progress_message=Valmistellaan dokumenttia tulostamista varten…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}} %
+print_progress_close=Peruuta
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Näytä/piilota sivupaneeli
+toggle_sidebar_notification2.title=Näytä/piilota sivupaneeli (dokumentissa on sisällys/liitteitä/tasoja)
toggle_sidebar_label=Näytä/piilota sivupaneeli
-outline.title=Näytä dokumentin rakenne
-outline_label=Dokumentin rakenne
+document_outline.title=Näytä dokumentin sisällys (laajenna tai kutista kohdat kaksoisnapsauttamalla)
+document_outline_label=Dokumentin sisällys
attachments.title=Näytä liitteet
attachments_label=Liitteet
+layers.title=Näytä tasot (kaksoisnapsauta palauttaaksesi kaikki tasot oletustilaan)
+layers_label=Tasot
thumbs.title=Näytä pienoiskuvat
thumbs_label=Pienoiskuvat
+current_outline_item.title=Etsi nykyinen sisällyksen kohta
+current_outline_item_label=Nykyinen sisällyksen kohta
findbar.title=Etsi dokumentista
findbar_label=Etsi
+additional_layers=Lisätasot
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Sivu {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -105,36 +171,41 @@ thumb_page_title=Sivu {{page}}
thumb_page_canvas=Pienoiskuva sivusta {{page}}
# Find panel button title and messages
-find_label=Etsi:
+find_input.title=Etsi
+find_input.placeholder=Etsi dokumentista…
find_previous.title=Etsi hakusanan edellinen osuma
find_previous_label=Edellinen
find_next.title=Etsi hakusanan seuraava osuma
find_next_label=Seuraava
find_highlight=Korosta kaikki
find_match_case_label=Huomioi kirjainkoko
+find_match_diacritics_label=Erota tarkkeet
+find_entire_word_label=Kokonaiset sanat
find_reached_top=Päästiin dokumentin alkuun, jatketaan lopusta
-find_reached_bottom=Päästiin dokumentin loppuun, continued from top
+find_reached_bottom=Päästiin dokumentin loppuun, jatketaan alusta
+# 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}} osuma
+find_match_count[two]={{current}} / {{total}} osumaa
+find_match_count[few]={{current}} / {{total}} osumaa
+find_match_count[many]={{current}} / {{total}} osumaa
+find_match_count[other]={{current}} / {{total}} osumaa
+# 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]=Enemmän kuin {{limit}} osumaa
+find_match_count_limit[one]=Enemmän kuin {{limit}} osuma
+find_match_count_limit[two]=Enemmän kuin {{limit}} osumaa
+find_match_count_limit[few]=Enemmän kuin {{limit}} osumaa
+find_match_count_limit[many]=Enemmän kuin {{limit}} osumaa
+find_match_count_limit[other]=Enemmän kuin {{limit}} osumaa
find_not_found=Hakusanaa ei löytynyt
-# Error panel labels
-error_more_info=Lisätietoja
-error_less_info=Lisätietoja
-error_close=Sulje
-# 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}} (kooste: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Virheilmoitus: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Pino: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Tiedosto: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Rivi: {{line}}
-rendering_error=Tapahtui virhe piirrettäessä sivua.
-
# Predefined zoom values
page_scale_width=Sivun leveys
page_scale_fit=Koko sivu
@@ -145,17 +216,21 @@ page_scale_actual=Todellinen koko
page_scale_percent={{scale}} %
# Loading indicator messages
-loading_error_indicator=Virhe
loading_error=Tapahtui virhe ladattaessa PDF-tiedostoa.
invalid_file_error=Virheellinen tai vioittunut PDF-tiedosto.
missing_file_error=Puuttuva PDF-tiedosto.
unexpected_response_error=Odottamaton vastaus palvelimelta.
+rendering_error=Tapahtui virhe piirrettäessä sivua.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Annotation]
+text_annotation_type.alt=[{{type}}-merkintä]
password_label=Kirjoita PDF-tiedoston salasana.
password_invalid=Virheellinen salasana. Yritä uudestaan.
password_ok=OK
@@ -164,4 +239,32 @@ password_cancel=Peruuta
printing_not_supported=Varoitus: Selain ei tue kaikkia tulostustapoja.
printing_not_ready=Varoitus: PDF-tiedosto ei ole vielä latautunut kokonaan, eikä sitä voi vielä tulostaa.
web_fonts_disabled=Verkkosivujen omat kirjasinlajit on estetty: ei voida käyttää upotettuja PDF-kirjasinlajeja.
-document_colors_not_allowed=PDF-dokumenttien ei ole sallittua käyttää omia värejään: Asetusta "Sivut saavat käyttää omia värejään oletusten sijaan" ei ole valittu selaimen asetuksissa.
+
+# Editor
+editor_free_text2.title=Teksti
+editor_free_text2_label=Teksti
+editor_ink2.title=Piirros
+editor_ink2_label=Piirros
+
+editor_stamp.title=Lisää kuva
+editor_stamp_label=Lisää kuva
+
+editor_stamp1.title=Lisää tai muokkaa kuvia
+editor_stamp1_label=Lisää tai muokkaa kuvia
+
+free_text2_default_content=Aloita kirjoittaminen…
+
+# Editor Parameters
+editor_free_text_color=Väri
+editor_free_text_size=Koko
+editor_ink_color=Väri
+editor_ink_thickness=Paksuus
+editor_ink_opacity=Peittävyys
+
+editor_stamp_add_image_label=Lisää kuva
+editor_stamp_add_image.title=Lisää kuva
+
+# Editor aria
+editor_free_text2_aria_label=Tekstimuokkain
+editor_ink2_aria_label=Piirrustusmuokkain
+editor_ink_canvas_aria_label=Käyttäjän luoma kuva
diff --git a/static/pdf.js/locale/fr/viewer.properties b/static/pdf.js/locale/fr/viewer.properties
index 4c1ee28bb..70146b92c 100644
--- a/static/pdf.js/locale/fr/viewer.properties
+++ b/static/pdf.js/locale/fr/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Précédent
next.title=Page suivante
next_label=Suivant
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Page :
-page_of=sur {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Page
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=sur {{pagesCount}}
+# 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_label=Zoom arrière
@@ -36,41 +39,129 @@ open_file.title=Ouvrir le fichier
open_file_label=Ouvrir le fichier
print.title=Imprimer
print_label=Imprimer
-download.title=Télécharger
-download_label=Télécharger
-bookmark.title=Affichage courant (copier ou ouvrir dans une nouvelle fenêtre)
-bookmark_label=Affichage actuel
+save.title=Enregistrer
+save_label=Enregistrer
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
tools.title=Outils
tools_label=Outils
first_page.title=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.label=Aller à la dernière page
last_page_label=Aller à la dernière page
page_rotate_cw.title=Rotation horaire
-page_rotate_cw.label=Rotation horaire
page_rotate_cw_label=Rotation horaire
-page_rotate_ccw.title=Rotation anti-horaire
-page_rotate_ccw.label=Rotation anti-horaire
-page_rotate_ccw_label=Rotation anti-horaire
+page_rotate_ccw.title=Rotation antihoraire
+page_rotate_ccw_label=Rotation antihoraire
+
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
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
-outline.title=Afficher les signets
-outline_label=Signets du document
+document_outline.title=Afficher les signets du document (double-cliquer pour développer/réduire tous les éléments)
+document_outline_label=Signets du document
attachments.title=Afficher les 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_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_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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -79,61 +170,41 @@ thumb_page_title=Page {{page}}
# number.
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_label=Rechercher :
-find_previous.title=Trouver l’occurrence précédente de la phrase
+find_input.title=Rechercher
+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_next.title=Trouver la prochaine occurrence de la phrase
+find_next.title=Trouver la prochaine occurrence de l’expression
find_next_label=Suivant
find_highlight=Tout surligner
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_bottom=Bas de la page atteint, poursuite au début
-find_not_found=Phrase introuvable
-
-# Error panel labels
-error_more_info=Plus d’informations
-error_less_info=Moins d’informations
-error_close=Fermer
-# 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}} (identifiant de compilation : {{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=Pile : {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fichier : {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Ligne : {{line}}
-rendering_error=Une erreur s’est produite lors de l’affichage de la page.
+# 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]=Occurrence {{current}} sur {{total}}
+find_match_count[two]=Occurrence {{current}} sur {{total}}
+find_match_count[few]=Occurrence {{current}} sur {{total}}
+find_match_count[many]=Occurrence {{current}} sur {{total}}
+find_match_count[other]=Occurrence {{current}} sur {{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]=Plus de {{limit}} correspondances
+find_match_count_limit[one]=Plus de {{limit}} correspondance
+find_match_count_limit[two]=Plus de {{limit}} correspondances
+find_match_count_limit[few]=Plus de {{limit}} correspondances
+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
page_scale_width=Pleine largeur
@@ -145,11 +216,15 @@ page_scale_actual=Taille réelle
page_scale_percent={{scale}} %
# Loading indicator messages
-loading_error_indicator=Erreur
loading_error=Une erreur s’est produite lors du chargement du fichier PDF.
invalid_file_error=Fichier PDF invalide ou corrompu.
missing_file_error=Fichier PDF manquant.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -164,4 +239,32 @@ password_cancel=Annuler
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.
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.
+
+# 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
diff --git a/static/pdf.js/locale/fur/viewer.properties b/static/pdf.js/locale/fur/viewer.properties
new file mode 100644
index 000000000..9bc87cd5c
--- /dev/null
+++ b/static/pdf.js/locale/fur/viewer.properties
@@ -0,0 +1,270 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Pagjine precedente
+previous_label=Indaûr
+next.title=Prossime pagjine
+next_label=Indevant
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pagjine
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=di {{pagesCount}}
+# 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}} di {{pagesCount}})
+
+zoom_out.title=Impiçulìs
+zoom_out_label=Impiçulìs
+zoom_in.title=Ingrandìs
+zoom_in_label=Ingrandìs
+zoom.title=Ingrandiment
+presentation_mode.title=Passe ae modalitât presentazion
+presentation_mode_label=Modalitât presentazion
+open_file.title=Vierç un file
+open_file_label=Vierç
+print.title=Stampe
+print_label=Stampe
+save.title=Salve
+save_label=Salve
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Discjame
+# 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=Discjame
+bookmark1.title=Pagjine corinte (mostre URL de pagjine atuâl)
+bookmark1_label=Pagjine corinte
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Vierç te aplicazion
+# 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=Vierç te aplicazion
+
+# Secondary toolbar and context menu
+tools.title=Struments
+tools_label=Struments
+first_page.title=Va ae prime pagjine
+first_page_label=Va ae prime pagjine
+last_page.title=Va ae ultime pagjine
+last_page_label=Va ae ultime pagjine
+page_rotate_cw.title=Zire in sens orari
+page_rotate_cw_label=Zire in sens orari
+page_rotate_ccw.title=Zire in sens antiorari
+page_rotate_ccw_label=Zire in sens antiorari
+
+cursor_text_select_tool.title=Ative il strument di selezion dal test
+cursor_text_select_tool_label=Strument di selezion dal test
+cursor_hand_tool.title=Ative il strument manute
+cursor_hand_tool_label=Strument manute
+
+scroll_page.title=Dopre il scoriment des pagjinis
+scroll_page_label=Scoriment pagjinis
+scroll_vertical.title=Dopre scoriment verticâl
+scroll_vertical_label=Scoriment verticâl
+scroll_horizontal.title=Dopre scoriment orizontâl
+scroll_horizontal_label=Scoriment orizontâl
+scroll_wrapped.title=Dopre scoriment par blocs
+scroll_wrapped_label=Scoriment par blocs
+
+spread_none.title=No sta meti dongje pagjinis in cubie
+spread_none_label=No cubiis di pagjinis
+spread_odd.title=Met dongje cubiis di pagjinis scomençant des pagjinis dispar
+spread_odd_label=Cubiis di pagjinis, dispar a çampe
+spread_even.title=Met dongje cubiis di pagjinis scomençant des pagjinis pâr
+spread_even_label=Cubiis di pagjinis, pâr a çampe
+
+# Document properties dialog box
+document_properties.title=Proprietâts dal document…
+document_properties_label=Proprietâts dal document…
+document_properties_file_name=Non dal file:
+document_properties_file_size=Dimension dal file:
+# 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)
+# 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_title=Titul:
+document_properties_author=Autôr:
+document_properties_subject=Ogjet:
+document_properties_keywords=Peraulis clâf:
+document_properties_creation_date=Date di creazion:
+document_properties_modification_date=Date di modifiche:
+# 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=Creatôr
+document_properties_producer=Gjeneradôr PDF:
+document_properties_version=Version PDF:
+document_properties_page_count=Numar di pagjinis:
+document_properties_page_size=Dimension de pagjine:
+document_properties_page_size_unit_inches=oncis
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=verticâl
+document_properties_page_size_orientation_landscape=orizontâl
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Letare
+document_properties_page_size_name_legal=Legâl
+# 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=Visualizazion web svelte:
+document_properties_linearized_yes=Sì
+document_properties_linearized_no=No
+document_properties_close=Siere
+
+print_progress_message=Daûr a prontâ il document pe stampe…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Anule
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Ative/Disative sbare laterâl
+toggle_sidebar_notification2.title=Ative/Disative sbare laterâl (il document al conten struture/zontis/strâts)
+toggle_sidebar_label=Ative/Disative sbare laterâl
+document_outline.title=Mostre la struture dal document (dopli clic par slargjâ/strenzi ducj i elements)
+document_outline_label=Struture dal document
+attachments.title=Mostre lis zontis
+attachments_label=Zontis
+layers.title=Mostre i strâts (dopli clic par ristabilî ducj i strâts al stât predefinît)
+layers_label=Strâts
+thumbs.title=Mostre miniaturis
+thumbs_label=Miniaturis
+current_outline_item.title=Cjate l'element de struture atuâl
+current_outline_item_label=Element de struture atuâl
+findbar.title=Cjate tal document
+findbar_label=Cjate
+
+additional_layers=Strâts adizionâi
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Pagjine {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Pagjine {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniature de pagjine {{page}}
+
+# Find panel button title and messages
+find_input.title=Cjate
+find_input.placeholder=Cjate tal document…
+find_previous.title=Cjate il câs precedent dal test
+find_previous_label=Precedent
+find_next.title=Cjate il câs sucessîf dal test
+find_next_label=Sucessîf
+find_highlight=Evidenzie dut
+find_match_case_label=Fâs distinzion tra maiusculis e minusculis
+find_match_diacritics_label=Corispondence diacritiche
+find_entire_word_label=Peraulis interiis
+find_reached_top=Si è rivâts al inizi dal document e si à continuât de fin
+find_reached_bottom=Si è rivât ae fin dal document e si à continuât dal inizi
+# 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}} di {{total}} corispondence
+find_match_count[two]={{current}} di {{total}} corispondencis
+find_match_count[few]={{current}} di {{total}} corispondencis
+find_match_count[many]={{current}} di {{total}} corispondencis
+find_match_count[other]={{current}} di {{total}} corispondencis
+# 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]=Plui di {{limit}} corispondencis
+find_match_count_limit[one]=Plui di {{limit}} corispondence
+find_match_count_limit[two]=Plui di {{limit}} corispondencis
+find_match_count_limit[few]=Plui di {{limit}} corispondencis
+find_match_count_limit[many]=Plui di {{limit}} corispondencis
+find_match_count_limit[other]=Plui di {{limit}} corispondencis
+find_not_found=Test no cjatât
+
+# Predefined zoom values
+page_scale_width=Largjece de pagjine
+page_scale_fit=Pagjine interie
+page_scale_auto=Ingrandiment automatic
+page_scale_actual=Dimension reâl
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Al è vignût fûr un erôr intant che si cjariave il PDF.
+invalid_file_error=File PDF no valit o ruvinât.
+missing_file_error=Al mancje il file PDF.
+unexpected_response_error=Rispueste dal servidôr inspietade.
+rendering_error=Al è vignût fûr un erôr tal realizâ la visualizazion de pagjine.
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Anotazion {{type}}]
+password_label=Inserìs la password par vierzi chest file PDF.
+password_invalid=Password no valide. Par plasê torne prove.
+password_ok=Va ben
+password_cancel=Anule
+
+printing_not_supported=Atenzion: la stampe no je supuartade ad implen di chest navigadôr.
+printing_not_ready=Atenzion: il PDF nol è stât cjamât dal dut pe stampe.
+web_fonts_disabled=I caratars dal Web a son disativâts: Impussibil doprâ i caratars PDF incorporâts.
+
+# Editor
+editor_free_text2.title=Test
+editor_free_text2_label=Test
+editor_ink2.title=Dissen
+editor_ink2_label=Dissen
+
+editor_stamp.title=Zonte une imagjin
+editor_stamp_label=Zonte une imagjin
+
+editor_stamp1.title=Zonte o modifiche imagjins
+editor_stamp1_label=Zonte o modifiche imagjins
+
+free_text2_default_content=Scomence a scrivi…
+
+# Editor Parameters
+editor_free_text_color=Colôr
+editor_free_text_size=Dimension
+editor_ink_color=Colôr
+editor_ink_thickness=Spessôr
+editor_ink_opacity=Opacitât
+
+editor_stamp_add_image_label=Zonte imagjin
+editor_stamp_add_image.title=Zonte imagjin
+
+# Editor aria
+editor_free_text2_aria_label=Editôr di test
+editor_ink2_aria_label=Editôr dissens
+editor_ink_canvas_aria_label=Imagjin creade dal utent
diff --git a/static/pdf.js/locale/fy-NL/viewer.properties b/static/pdf.js/locale/fy-NL/viewer.properties
index d195428c9..003102ba6 100644
--- a/static/pdf.js/locale/fy-NL/viewer.properties
+++ b/static/pdf.js/locale/fy-NL/viewer.properties
@@ -18,49 +18,73 @@ previous_label=Foarige
next.title=Folgjende side
next_label=Folgjende
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=side:
-page_of=fan {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Side
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=fan {{pagesCount}}
+# 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}} fan {{pagesCount}})
zoom_out.title=Utzoome
zoom_out_label=Utzoome
zoom_in.title=Ynzoome
zoom_in_label=Ynzoome
zoom.title=Zoome
-print.title=Ofdrukke
-print_label=Ofdrukke
-presentation_mode.title=Wikselje nei presintaasjemoadus
-presentation_mode_label=Presintaasjemoadus
+presentation_mode.title=Wikselje nei presintaasjemodus
+presentation_mode_label=Presintaasjemodus
open_file.title=Bestân iepenje
open_file_label=Iepenje
-download.title=Ynlade
-download_label=Ynlade
-bookmark.title=Aktuele finster (kopiearje of iepenje yn nij finster)
-bookmark_label=Aktuele finster
+print.title=Ofdrukke
+print_label=Ofdrukke
+save.title=Bewarje
+save_label=Bewarje
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Downloade
+# 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=Downloade
+bookmark1.title=Aktuele side (URL fan aktuele side besjen)
+bookmark1_label=Aktuele side
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Iepenje yn 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=Iepenje yn app
# Secondary toolbar and context menu
tools.title=Ark
tools_label=Ark
first_page.title=Gean nei earste side
-first_page.label=Gean nei earste side
first_page_label=Gean nei earste side
last_page.title=Gean nei lêste side
-last_page.label=Gean nei lêste side
last_page_label=Gean nei lêste side
page_rotate_cw.title=Rjochtsom draaie
-page_rotate_cw.label=Rjochtsom draaie
page_rotate_cw_label=Rjochtsom draaie
page_rotate_ccw.title=Linksom draaie
-page_rotate_ccw.label=Linksom draaie
page_rotate_ccw_label=Linksom draaie
-hand_tool_enable.title=Hânark ynskeakelje
-hand_tool_enable_label=Hânark ynskeakelje
-hand_tool_disable.title=Hânark úyskeakelje
-hand_tool_disable_label=Hânark úyskeakelje
+cursor_text_select_tool.title=Tekstseleksjehelpmiddel ynskeakelje
+cursor_text_select_tool_label=Tekstseleksjehelpmiddel
+cursor_hand_tool.title=Hânhelpmiddel ynskeakelje
+cursor_hand_tool_label=Hânhelpmiddel
+
+scroll_page.title=Sideskowen brûke
+scroll_page_label=Sideskowen
+scroll_vertical.title=Fertikaal skowe brûke
+scroll_vertical_label=Fertikaal skowe
+scroll_horizontal.title=Horizontaal skowe brûke
+scroll_horizontal_label=Horizontaal skowe
+scroll_wrapped.title=Skowe mei oersjoch brûke
+scroll_wrapped_label=Skowe mei oersjoch
+
+spread_none.title=Sidesprieding net gearfetsje
+spread_none_label=Gjin sprieding
+spread_odd.title=Sidesprieding gearfetsje te starten mei ûneven nûmers
+spread_odd_label=Uneven sprieding
+spread_even.title=Sidesprieding gearfetsje te starten mei even nûmers
+spread_even_label=Even sprieding
# Document properties dialog box
document_properties.title=Dokuminteigenskippen…
@@ -86,22 +110,58 @@ document_properties_creator=Makker:
document_properties_producer=PDF-makker:
document_properties_version=PDF-ferzje:
document_properties_page_count=Siden:
+document_properties_page_size=Sideformaat:
+document_properties_page_size_unit_inches=yn
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=steand
+document_properties_page_size_orientation_landscape=lizzend
+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=Juridysk
+# 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=Flugge webwerjefte:
+document_properties_linearized_yes=Ja
+document_properties_linearized_no=Nee
document_properties_close=Slute
+print_progress_message=Dokumint tariede oar ôfdrukken…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Annulearje
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Sidebalke yn-/útskeakelje
+toggle_sidebar_notification2.title=Sidebalke yn-/útskeakelje (dokumint befettet oersjoch/bylagen/lagen)
toggle_sidebar_label=Sidebalke yn-/útskeakelje
-outline.title=Dokumint ynhâldsopjefte toane
-outline_label=Dokumint ynhâldsopjefte
+document_outline.title=Dokumintoersjoch toane (dûbelklik om alle items út/yn te klappen)
+document_outline_label=Dokumintoersjoch
attachments.title=Bylagen toane
attachments_label=Bylagen
+layers.title=Lagen toane (dûbelklik om alle lagen nei de standertsteat werom te setten)
+layers_label=Lagen
thumbs.title=Foarbylden toane
thumbs_label=Foarbylden
+current_outline_item.title=Aktueel item yn ynhâldsopjefte sykje
+current_outline_item_label=Aktueel item yn ynhâldsopjefte
findbar.title=Sykje yn dokumint
findbar_label=Sykje
+additional_layers=Oanfoljende lagen
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Side {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -110,58 +170,61 @@ thumb_page_title=Side {{page}}
# number.
thumb_page_canvas=Foarbyld fan side {{page}}
-# Context menu
-first_page.label=Nei earste side gean
-last_page.label=Nei lêste side gean
-page_rotate_cw.label=Rjochtsom draaie
-page_rotate_ccw.label=Linksom draaie
-
# Find panel button title and messages
-find_label=Sykje:
+find_input.title=Sykje
+find_input.placeholder=Sykje yn dokumint…
find_previous.title=It foarige foarkommen fan de tekst sykje
find_previous_label=Foarige
find_next.title=It folgjende foarkommen fan de tekst sykje
find_next_label=Folgjende
find_highlight=Alles markearje
find_match_case_label=Haadlettergefoelich
-find_reached_top=Boppekant fan dokumint berikt, trochgien fanôf ûnder
-find_reached_bottom=Ein fan dokumint berikt, trochgien fanôf boppe
+find_match_diacritics_label=Diakrityske tekens brûke
+find_entire_word_label=Hiele wurden
+find_reached_top=Boppekant fan dokumint berikt, trochgien fan ûnder ôf
+find_reached_bottom=Ein fan dokumint berikt, trochgien fan boppe ôf
+# 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}} fan {{total}} oerienkomst
+find_match_count[two]={{current}} fan {{total}} oerienkomsten
+find_match_count[few]={{current}} fan {{total}} oerienkomsten
+find_match_count[many]={{current}} fan {{total}} oerienkomsten
+find_match_count[other]={{current}} fan {{total}} oerienkomsten
+# 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]=Mear as {{limit}} oerienkomsten
+find_match_count_limit[one]=Mear as {{limit}} oerienkomst
+find_match_count_limit[two]=Mear as {{limit}} oerienkomsten
+find_match_count_limit[few]=Mear as {{limit}} oerienkomsten
+find_match_count_limit[many]=Mear as {{limit}} oerienkomsten
+find_match_count_limit[other]=Mear as {{limit}} oerienkomsten
find_not_found=Tekst net fûn
-# Error panel labels
-error_more_info=Mear ynformaasje
-error_less_info=Minder ynformaasje
-error_close=Slute
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-error_version_info=PDF.js f{{version}} (build: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Berjocht: {{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=Bestân: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Rigel: {{line}}
-rendering_error=Der is in flater bard by it renderjen fan de side.
-
# Predefined zoom values
page_scale_width=Sidebreedte
page_scale_fit=Hiele side
page_scale_auto=Automatysk zoome
-page_scale_actual=Wurklike grutte
+page_scale_actual=Werklike grutte
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Flater
loading_error=Der is in flater bard by it laden fan de PDF.
invalid_file_error=Ynfalide of korruptearre PDF-bestân.
missing_file_error=PDF-bestân ûntbrekt.
-unexpected_response_error=Unferwacht tsjinnerantwurd.
+unexpected_response_error=Unferwacht serverantwurd.
+rendering_error=Der is in flater bard by it renderjen fan de side.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -176,5 +239,32 @@ password_cancel=Annulearje
printing_not_supported=Warning: Printen is net folslein stipe troch dizze browser.
printing_not_ready=Warning: PDF is net folslein laden om ôf te drukken.
web_fonts_disabled=Weblettertypen binne útskeakele: gebrûk fan ynsluten PDF-lettertypen is net mooglik.
-document_colors_not_allowed=PDF-dokuminten meie harren eigen kleuren net brûike: ‘Siden tastean om harren eigen kleuren te kiezen’ is útskeakele yn de browser.
+# Editor
+editor_free_text2.title=Tekst
+editor_free_text2_label=Tekst
+editor_ink2.title=Tekenje
+editor_ink2_label=Tekenje
+
+editor_stamp.title=Ofbylding tafoegje
+editor_stamp_label=Ofbylding tafoegje
+
+editor_stamp1.title=Ofbyldingen tafoegje of bewurkje
+editor_stamp1_label=Ofbyldingen tafoegje of bewurkje
+
+free_text2_default_content=Begjin mei typen…
+
+# Editor Parameters
+editor_free_text_color=Kleur
+editor_free_text_size=Grutte
+editor_ink_color=Kleur
+editor_ink_thickness=Tsjokte
+editor_ink_opacity=Transparânsje
+
+editor_stamp_add_image_label=Ofbylding tafoegje
+editor_stamp_add_image.title=Ofbylding tafoegje
+
+# Editor aria
+editor_free_text2_aria_label=Tekstbewurker
+editor_ink2_aria_label=Tekeningbewurker
+editor_ink_canvas_aria_label=Troch brûker makke ôfbylding
diff --git a/static/pdf.js/locale/ga-IE/viewer.properties b/static/pdf.js/locale/ga-IE/viewer.properties
index 7fa5076f6..8a1dc4dee 100644
--- a/static/pdf.js/locale/ga-IE/viewer.properties
+++ b/static/pdf.js/locale/ga-IE/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Roimhe Seo
next.title=An Chéad Leathanach Eile
next_label=Ar Aghaidh
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Leathanach:
-page_of=as {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Leathanach
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=as {{pagesCount}}
+# 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}} as {{pagesCount}})
zoom_out.title=Súmáil Amach
zoom_out_label=Súmáil Amach
@@ -36,31 +39,25 @@ open_file.title=Oscail Comhad
open_file_label=Oscail
print.title=Priontáil
print_label=Priontáil
-download.title=Íosluchtaigh
-download_label=Íosluchtaigh
-bookmark.title=An t-amharc reatha (cóipeáil nó oscail i bhfuinneog nua)
-bookmark_label=An tAmharc Reatha
# Secondary toolbar and context menu
tools.title=Uirlisí
tools_label=Uirlisí
first_page.title=Go dtí an chéad leathanach
-first_page.label=Go dtí an chéad leathanach
first_page_label=Go dtí an chéad leathanach
last_page.title=Go dtí an leathanach deiridh
-last_page.label=Go dtí an leathanach deiridh
last_page_label=Go dtí an leathanach deiridh
page_rotate_cw.title=Rothlaigh ar deiseal
-page_rotate_cw.label=Rothlaigh ar deiseal
page_rotate_cw_label=Rothlaigh ar deiseal
page_rotate_ccw.title=Rothlaigh ar tuathal
-page_rotate_ccw.label=Rothlaigh ar tuathal
page_rotate_ccw_label=Rothlaigh ar tuathal
-hand_tool_enable.title=Cumasaigh uirlis láimhe
-hand_tool_enable_label=Cumasaigh uirlis láimhe
-hand_tool_disable.title=Díchumasaigh uirlis láimhe
-hand_tool_disable_label=Díchumasaigh uirlis láimhe
+cursor_text_select_tool.title=Cumasaigh an Uirlis Roghnaithe Téacs
+cursor_text_select_tool_label=Uirlis Roghnaithe Téacs
+cursor_hand_tool.title=Cumasaigh an Uirlis Láimhe
+cursor_hand_tool_label=Uirlis Láimhe
+
+
# Document properties dialog box
document_properties.title=Airíonna na Cáipéise…
@@ -86,15 +83,29 @@ document_properties_creator=Cruthaitheoir:
document_properties_producer=Cruthaitheoir an PDF:
document_properties_version=Leagan PDF:
document_properties_page_count=Líon Leathanach:
+# 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.
+# 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.
+# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
+# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_close=Dún
+print_progress_message=Cáipéis á hullmhú le priontáil…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Cealaigh
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Scoránaigh an Barra Taoibh
toggle_sidebar_label=Scoránaigh an Barra Taoibh
-outline.title=Taispeáin Creatlach na Cáipéise
-outline_label=Creatlach na Cáipéise
+document_outline.title=Taispeáin Imlíne na Cáipéise (déchliceáil chun chuile rud a leathnú nó a laghdú)
+document_outline_label=Creatlach na Cáipéise
attachments.title=Taispeáin Iatáin
attachments_label=Iatáin
thumbs.title=Taispeáin Mionsamhlacha
@@ -102,6 +113,7 @@ thumbs_label=Mionsamhlacha
findbar.title=Aimsigh sa Cháipéis
findbar_label=Aimsigh
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,35 +123,27 @@ thumb_page_title=Leathanach {{page}}
thumb_page_canvas=Mionsamhail Leathanaigh {{page}}
# Find panel button title and messages
-find_label=Aimsigh:
+find_input.title=Aimsigh
+find_input.placeholder=Aimsigh sa cháipéis…
find_previous.title=Aimsigh an sampla roimhe seo den nath seo
find_previous_label=Roimhe seo
find_next.title=Aimsigh an chéad sampla eile den nath sin
find_next_label=Ar aghaidh
find_highlight=Aibhsigh uile
find_match_case_label=Cásíogair
+find_entire_word_label=Focail iomlána
find_reached_top=Ag barr na cáipéise, ag leanúint ón mbun
find_reached_bottom=Ag bun na cáipéise, ag leanúint ón mbarr
-find_not_found=Abairtín gan aimsiú
-
-# Error panel labels
-error_more_info=Tuilleadh Eolais
-error_less_info=Níos Lú Eolais
-error_close=Dún
-# 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=Teachtaireacht: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Cruach: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Comhad: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Líne: {{line}}
-rendering_error=Tharla earráid agus an leathanach á leagan amach.
+# 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) ]}
+# 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=Frása gan aimsiú
# Predefined zoom values
page_scale_width=Leithead Leathanaigh
@@ -151,11 +155,15 @@ page_scale_actual=Fíormhéid
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Earráid
-loading_error=Tharla earráid agus an cháipéis PDF á luchtú.
+loading_error=Tharla earráid agus an cháipéis PDF á lódáil.
invalid_file_error=Comhad neamhbhailí nó truaillithe PDF.
missing_file_error=Comhad PDF ar iarraidh.
-unexpected_response_error=Freagra ón bhfreastalaí gan súil leis.
+unexpected_response_error=Freagra ón bhfreastalaí nach rabhthas ag súil leis.
+
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+
+rendering_error=Tharla earráid agus an leathanach á leagan amach.
# 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
@@ -168,6 +176,6 @@ password_ok=OK
password_cancel=Cealaigh
printing_not_supported=Rabhadh: Ní thacaíonn an brabhsálaí le priontáil go hiomlán.
-printing_not_ready=Rabhadh: Ní féidir an PDF a phriontáil go dtí go mbeidh an cháipéis iomlán luchtaithe.
+printing_not_ready=Rabhadh: Ní féidir an PDF a phriontáil go dtí go mbeidh an cháipéis iomlán lódáilte.
web_fonts_disabled=Tá clófhoirne Gréasáin díchumasaithe: ní féidir clófhoirne leabaithe PDF a úsáid.
-document_colors_not_allowed=Níl cead ag cáipéisí PDF a ndathanna féin a roghnú; tá 'Tabhair cead do leathanaigh a ndathanna féin a roghnú' díchumasaithe sa mbrabhsálaí.
+
diff --git a/static/pdf.js/locale/gd/viewer.properties b/static/pdf.js/locale/gd/viewer.properties
index 509b71b2f..231d927ac 100644
--- a/static/pdf.js/locale/gd/viewer.properties
+++ b/static/pdf.js/locale/gd/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Air ais
next.title=An ath-dhuilleag
next_label=Air adhart
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Duilleag:
-page_of=à {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Duilleag
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=à {{pagesCount}}
+# 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=Sùm a-mach
zoom_out_label=Sùm a-mach
@@ -36,31 +39,47 @@ open_file.title=Fosgail faidhle
open_file_label=Fosgail
print.title=Clò-bhuail
print_label=Clò-bhuail
-download.title=Luchdaich a-nuas
-download_label=Luchdaich a-nuas
-bookmark.title=An sealladh làithreach (dèan lethbhreac no fosgail e ann an uinneag ùr)
-bookmark_label=An sealladh làithreach
+
+save.title=Sàbhail
+save_label=Sàbhail
+bookmark1.title=An duilleag làithreach (Seall an URL on duilleag làithreach)
+bookmark1_label=An duilleag làithreach
+
+open_in_app.title=Fosgail san aplacaid
+open_in_app_label=Fosgail san aplacaid
# Secondary toolbar and context menu
tools.title=Innealan
tools_label=Innealan
first_page.title=Rach gun chiad duilleag
-first_page.label=Rach gun chiad duilleag
first_page_label=Rach gun chiad duilleag
last_page.title=Rach gun duilleag mu dheireadh
-last_page.label=Rach gun duilleag mu dheireadh
last_page_label=Rach gun duilleag mu dheireadh
page_rotate_cw.title=Cuairtich gu deiseil
-page_rotate_cw.label=Cuairtich gu deiseil
page_rotate_cw_label=Cuairtich gu deiseil
page_rotate_ccw.title=Cuairtich gu tuathail
-page_rotate_ccw.label=Cuairtich gu tuathail
page_rotate_ccw_label=Cuairtich gu tuathail
-hand_tool_enable.title=Cuir inneal na làimhe an comas
-hand_tool_enable_label=Cuir inneal na làimhe an comas
-hand_tool_disable.title=Cuir inneal na làimhe à comas
-hand_tool_disable_label=Cuir à comas inneal na làimhe
+cursor_text_select_tool.title=Cuir an comas inneal taghadh an teacsa
+cursor_text_select_tool_label=Inneal taghadh an teacsa
+cursor_hand_tool.title=Cuir inneal na làimhe an comas
+cursor_hand_tool_label=Inneal na làimhe
+
+scroll_page.title=Cleachd sgroladh duilleige
+scroll_page_label=Sgroladh duilleige
+scroll_vertical.title=Cleachd sgroladh inghearach
+scroll_vertical_label=Sgroladh inghearach
+scroll_horizontal.title=Cleachd sgroladh còmhnard
+scroll_horizontal_label=Sgroladh còmhnard
+scroll_wrapped.title=Cleachd sgroladh paisgte
+scroll_wrapped_label=Sgroladh paisgte
+
+spread_none.title=Na cuir còmhla sgoileadh dhuilleagan
+spread_none_label=Gun sgaoileadh dhuilleagan
+spread_odd.title=Cuir còmhla duilleagan sgaoilte a thòisicheas le duilleagan aig a bheil àireamh chorr
+spread_odd_label=Sgaoileadh dhuilleagan corra
+spread_even.title=Cuir còmhla duilleagan sgaoilte a thòisicheas le duilleagan aig a bheil àireamh chothrom
+spread_even_label=Sgaoileadh dhuilleagan cothrom
# Document properties dialog box
document_properties.title=Roghainnean na sgrìobhainne…
@@ -86,22 +105,58 @@ document_properties_creator=Cruthadair:
document_properties_producer=Saothraiche a' PDF:
document_properties_version=Tionndadh a' PDF:
document_properties_page_count=Àireamh de dhuilleagan:
+document_properties_page_size=Meud na duilleige:
+document_properties_page_size_unit_inches=ann an
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=portraid
+document_properties_page_size_orientation_landscape=dreach-tìre
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Litir
+document_properties_page_size_name_legal=Laghail
+# 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=Grad shealladh-lìn:
+document_properties_linearized_yes=Tha
+document_properties_linearized_no=Chan eil
document_properties_close=Dùin
+print_progress_message=Ag ullachadh na sgrìobhainn airson clò-bhualadh…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Sguir dheth
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Toglaich am bàr-taoibh
+toggle_sidebar_notification2.title=Toglaich am bàr-taoibh (tha oir-loidhne/ceanglachain/breathan aig an sgrìobhainn)
toggle_sidebar_label=Toglaich am bàr-taoibh
-outline.title=Seall an sgrìobhainn far loidhne
-outline_label=Oir-loidhne na sgrìobhainne
+document_outline.title=Seall oir-loidhne na sgrìobhainn (dèan briogadh dùbailte airson a h-uile nì a leudachadh/a cho-theannadh)
+document_outline_label=Oir-loidhne na sgrìobhainne
attachments.title=Seall na ceanglachain
attachments_label=Ceanglachain
+layers.title=Seall na breathan (dèan briogadh dùbailte airson a h-uile breath ath-shuidheachadh dhan staid bhunaiteach)
+layers_label=Breathan
thumbs.title=Seall na dealbhagan
thumbs_label=Dealbhagan
+current_outline_item.title=Lorg nì làithreach na h-oir-loidhne
+current_outline_item_label=Nì làithreach na h-oir-loidhne
findbar.title=Lorg san sgrìobhainn
findbar_label=Lorg
+additional_layers=Barrachd breathan
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Duilleag {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +166,41 @@ thumb_page_title=Duilleag a {{page}}
thumb_page_canvas=Dealbhag duilleag a {{page}}
# Find panel button title and messages
-find_label=Lorg:
+find_input.title=Lorg
+find_input.placeholder=Lorg san sgrìobhainn...
find_previous.title=Lorg làthair roimhe na h-abairt seo
find_previous_label=Air ais
find_next.title=Lorg ath-làthair na h-abairt seo
find_next_label=Air adhart
find_highlight=Soillsich a h-uile
find_match_case_label=Aire do litrichean mòra is beaga
+find_match_diacritics_label=Aire do stràcan
+find_entire_word_label=Faclan-slàna
find_reached_top=Ràinig sinn barr na duilleige, a' leantainn air adhart o bhonn na duilleige
find_reached_bottom=Ràinig sinn bonn na duilleige, a' leantainn air adhart o bharr na duilleige
+# 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}} mhaids
+find_match_count[two]={{current}} à {{total}} mhaids
+find_match_count[few]={{current}} à {{total}} maidsichean
+find_match_count[many]={{current}} à {{total}} maids
+find_match_count[other]={{current}} à {{total}} maids
+# 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]=Barrachd air {{limit}} maids
+find_match_count_limit[one]=Barrachd air {{limit}} mhaids
+find_match_count_limit[two]=Barrachd air {{limit}} mhaids
+find_match_count_limit[few]=Barrachd air {{limit}} maidsichean
+find_match_count_limit[many]=Barrachd air {{limit}} maids
+find_match_count_limit[other]=Barrachd air {{limit}} maids
find_not_found=Cha deach an abairt a lorg
-# Error panel labels
-error_more_info=Barrachd fiosrachaidh
-error_less_info=Nas lugha de dh'fhiosrachadh
-error_close=Dùin
-# 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=Teachdaireachd: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stac: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Faidhle: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Loidhne: {{line}}
-rendering_error=Thachair mearachd rè reandaradh na duilleige.
-
# Predefined zoom values
page_scale_width=Leud na duilleige
page_scale_fit=Freagair ri meud na duilleige
@@ -151,12 +211,17 @@ page_scale_actual=Am fìor-mheud
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Mearachd
loading_error=Thachair mearachd rè luchdadh a' PDF.
invalid_file_error=Faidhle PDF a tha mì-dhligheach no coirbte.
missing_file_error=Faidhle PDF a tha a dhìth.
unexpected_response_error=Freagairt on fhrithealaiche ris nach robh dùil.
+rendering_error=Thachair mearachd rè reandaradh na duilleige.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -164,10 +229,29 @@ unexpected_response_error=Freagairt on fhrithealaiche ris nach robh dùil.
text_annotation_type.alt=[Nòtachadh {{type}}]
password_label=Cuir a-steach am facal-faire gus am faidhle PDF seo fhosgladh.
password_invalid=Tha am facal-faire cearr. Nach fheuch thu ris a-rithist?
-password_ok=Ceart ma-tha
+password_ok=Ceart ma-thà
password_cancel=Sguir dheth
printing_not_supported=Rabhadh: Chan eil am brabhsair seo a' cur làn-taic ri clò-bhualadh.
printing_not_ready=Rabhadh: Cha deach am PDF a luchdadh gu tur airson clò-bhualadh.
web_fonts_disabled=Tha cruthan-clò lìn à comas: Chan urrainn dhuinn cruthan-clò PDF leabaichte a chleachdadh.
-document_colors_not_allowed=Chan fhaod sgrìobhainnean PDF na dathan aca fhèin a chleachdadh: Tha "Leig le duilleagan na dathan aca fhèin a chleachdadh" à comas sa bhrabhsair.
+
+# Editor
+editor_free_text2.title=Teacsa
+editor_free_text2_label=Teacsa
+editor_ink2.title=Tarraing
+editor_ink2_label=Tarraing
+
+free_text2_default_content=Tòisich air sgrìobhadh…
+
+# Editor Parameters
+editor_free_text_color=Dath
+editor_free_text_size=Meud
+editor_ink_color=Dath
+editor_ink_thickness=Tighead
+editor_ink_opacity=Trìd-dhoilleireachd
+
+# Editor aria
+editor_free_text2_aria_label=An deasaiche teacsa
+editor_ink2_aria_label=An deasaiche tharraingean
+editor_ink_canvas_aria_label=Dealbh a chruthaich cleachdaiche
diff --git a/static/pdf.js/locale/gl/viewer.properties b/static/pdf.js/locale/gl/viewer.properties
index 0acc4f789..508ea5e47 100644
--- a/static/pdf.js/locale/gl/viewer.properties
+++ b/static/pdf.js/locale/gl/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Anterior
next.title=Seguinte páxina
next_label=Seguinte
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Páxina:
-page_of=de {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Páxina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
zoom_out.title=Reducir
zoom_out_label=Reducir
@@ -36,31 +39,52 @@ open_file.title=Abrir ficheiro
open_file_label=Abrir
print.title=Imprimir
print_label=Imprimir
-download.title=Descargar
-download_label=Descargar
-bookmark.title=Vista actual (copiar ou abrir nunha nova xanela)
-bookmark_label=Vista actual
+save.title=Gardar
+save_label=Gardar
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Descargar
+# 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=Descargar
+bookmark1.title=Páxina actual (ver o URL da páxina actual)
+bookmark1_label=Páxina actual
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Abrir cunha aplicación
+# 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 cunha aplicación
# Secondary toolbar and context menu
tools.title=Ferramentas
tools_label=Ferramentas
first_page.title=Ir á primeira páxina
-first_page.label=Ir á primeira páxina
first_page_label=Ir á primeira páxina
last_page.title=Ir á última páxina
-last_page.label=Ir á última páxina
last_page_label=Ir á última páxina
page_rotate_cw.title=Rotar no sentido das agullas do reloxo
-page_rotate_cw.label=Rotar no sentido das agullas do reloxo
page_rotate_cw_label=Rotar no sentido das agullas do reloxo
page_rotate_ccw.title=Rotar no sentido contrario ás agullas do reloxo
-page_rotate_ccw.label=Rotar no sentido contrario ás agullas do reloxo
page_rotate_ccw_label=Rotar no sentido contrario ás agullas do reloxo
-hand_tool_enable.title=Activar ferramenta man
-hand_tool_enable_label=Activar ferramenta man
-hand_tool_disable.title=Desactivar ferramenta man
-hand_tool_disable_label=Desactivar ferramenta man
+cursor_text_select_tool.title=Activar a ferramenta de selección de texto
+cursor_text_select_tool_label=Ferramenta de selección de texto
+cursor_hand_tool.title=Activar a ferramenta de man
+cursor_hand_tool_label=Ferramenta de man
+
+scroll_page.title=Usar o desprazamento da páxina
+scroll_page_label=Desprazamento da páxina
+scroll_vertical.title=Usar o desprazamento vertical
+scroll_vertical_label=Desprazamento vertical
+scroll_horizontal.title=Usar o desprazamento horizontal
+scroll_horizontal_label=Desprazamento horizontal
+scroll_wrapped.title=Usar o desprazamento en bloque
+scroll_wrapped_label=Desprazamento por bloque
+
+spread_none.title=Non agrupar páxinas
+spread_none_label=Ningún agrupamento
+spread_odd.title=Crea grupo de páxinas que comezan con números de páxina impares
+spread_odd_label=Agrupamento impar
+spread_even.title=Crea grupo de páxinas que comezan con números de páxina pares
+spread_even_label=Agrupamento par
# Document properties dialog box
document_properties.title=Propiedades do documento…
@@ -75,7 +99,7 @@ document_properties_kb={{size_kb}} KB ({{size_b}} bytes)
document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
document_properties_title=Título:
document_properties_author=Autor:
-document_properties_subject=Asunto:
+document_properties_subject=Asunto:
document_properties_keywords=Palabras clave:
document_properties_creation_date=Data de creación:
document_properties_modification_date=Data de modificación:
@@ -86,22 +110,58 @@ document_properties_creator=Creado por:
document_properties_producer=Xenerador do PDF:
document_properties_version=Versión de PDF:
document_properties_page_count=Número de páxinas:
+document_properties_page_size=Tamaño da páxina:
+document_properties_page_size_unit_inches=pol
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertical
+document_properties_page_size_orientation_landscape=horizontal
+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=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=Visualización rápida das páxinas web:
+document_properties_linearized_yes=Si
+document_properties_linearized_no=Non
document_properties_close=Pechar
+print_progress_message=Preparando o documento para imprimir…
+# 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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Amosar/agochar a barra lateral
+toggle_sidebar_notification2.title=Alternar barra lateral (o documento contén esquema/anexos/capas)
toggle_sidebar_label=Amosar/agochar a barra lateral
-outline.title=Amosar esquema do documento
-outline_label=Esquema do documento
+document_outline.title=Amosar a estrutura do documento (dobre clic para expandir/contraer todos os elementos)
+document_outline_label=Estrutura do documento
attachments.title=Amosar anexos
attachments_label=Anexos
+layers.title=Mostrar capas (prema dúas veces para restaurar todas as capas o estado predeterminado)
+layers_label=Capas
thumbs.title=Amosar miniaturas
thumbs_label=Miniaturas
+current_outline_item.title=Atopar o elemento delimitado actualmente
+current_outline_item_label=Elemento delimitado actualmente
findbar.title=Atopar no documento
findbar_label=Atopar
+additional_layers=Capas adicionais
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Páxina {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Páxina {{page}}
thumb_page_canvas=Miniatura da páxina {{page}}
# Find panel button title and messages
-find_label=Atopar:
+find_input.title=Atopar
+find_input.placeholder=Atopar no documento…
find_previous.title=Atopar a anterior aparición da frase
find_previous_label=Anterior
find_next.title=Atopar a seguinte aparición da frase
find_next_label=Seguinte
find_highlight=Realzar todo
find_match_case_label=Diferenciar maiúsculas de minúsculas
+find_match_diacritics_label=Distinguir os diacríticos
+find_entire_word_label=Palabras completas
find_reached_top=Chegouse ao inicio do documento, continuar desde o final
find_reached_bottom=Chegouse ao final do documento, continuar desde o inicio
+# 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}} de {{total}} coincidencia
+find_match_count[two]={{current}} de {{total}} coincidencias
+find_match_count[few]={{current}} de {{total}} coincidencias
+find_match_count[many]={{current}} de {{total}} coincidencias
+find_match_count[other]={{current}} de {{total}} coincidencias
+# 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]=Máis de {{limit}} coincidencias
+find_match_count_limit[one]=Máis de {{limit}} coincidencia
+find_match_count_limit[two]=Máis de {{limit}} coincidencias
+find_match_count_limit[few]=Máis de {{limit}} coincidencias
+find_match_count_limit[many]=Máis de {{limit}} coincidencias
+find_match_count_limit[other]=Máis de {{limit}} coincidencias
find_not_found=Non se atopou a frase
-# Error panel labels
-error_more_info=Máis información
-error_less_info=Menos información
-error_close=Pechar
-# 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}} (Identificador da compilación: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Mensaxe: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Pila: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Ficheiro: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Liña: {{line}}
-rendering_error=Produciuse un erro ao representar a páxina.
-
# Predefined zoom values
page_scale_width=Largura da páxina
page_scale_fit=Axuste de páxina
@@ -151,11 +216,15 @@ page_scale_actual=Tamaño actual
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Erro
loading_error=Produciuse un erro ao cargar o PDF.
-invalid_file_error=Ficheiro PDF danado ou incorrecto.
+invalid_file_error=Ficheiro PDF danado ou non válido.
missing_file_error=Falta o ficheiro PDF.
unexpected_response_error=Resposta inesperada do servidor.
+rendering_error=Produciuse un erro ao representar a páxina.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,29 @@ password_cancel=Cancelar
printing_not_supported=Aviso: A impresión non é compatíbel de todo con este navegador.
printing_not_ready=Aviso: O PDF non se cargou completamente para imprimirse.
web_fonts_disabled=Desactiváronse as fontes web: foi imposíbel usar as fontes incrustadas no PDF.
-document_colors_disabled=Non se permite que os documentos PDF usen as súas propias cores: «Permitir que as páxinas escollan as súas propias cores» está desactivado no navegador.
+
+# Editor
+editor_free_text2.title=Texto
+editor_free_text2_label=Texto
+editor_ink2.title=Debuxo
+editor_ink2_label=Debuxo
+
+editor_stamp1.title=Engadir ou editar imaxes
+editor_stamp1_label=Engadir ou editar imaxes
+
+free_text2_default_content=Comezar a teclear…
+
+# Editor Parameters
+editor_free_text_color=Cor
+editor_free_text_size=Tamaño
+editor_ink_color=Cor
+editor_ink_thickness=Grosor
+editor_ink_opacity=Opacidade
+
+editor_stamp_add_image_label=Engadir imaxe
+editor_stamp_add_image.title=Engadir imaxe
+
+# Editor aria
+editor_free_text2_aria_label=Editor de texto
+editor_ink2_aria_label=Editor de debuxos
+editor_ink_canvas_aria_label=Imaxe creada por unha usuaria
diff --git a/static/pdf.js/locale/gn/viewer.properties b/static/pdf.js/locale/gn/viewer.properties
new file mode 100644
index 000000000..0ba9d36cc
--- /dev/null
+++ b/static/pdf.js/locale/gn/viewer.properties
@@ -0,0 +1,278 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Kuatiarogue mboyvegua
+previous_label=Mboyvegua
+next.title=Kuatiarogue upeigua
+next_label=Upeigua
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Kuatiarogue
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} gui
+# 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=Momichĩ
+zoom_out_label=Momichĩ
+zoom_in.title=Mbotuicha
+zoom_in_label=Mbotuicha
+zoom.title=Tuichakue
+presentation_mode.title=Jehechauka reko moambue
+presentation_mode_label=Jehechauka reko
+open_file.title=Marandurendápe jeike
+open_file_label=Jeike
+print.title=Monguatia
+print_label=Monguatia
+save.title=Ñongatu
+save_label=Ñongatu
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Mboguejy
+# 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=Mboguejy
+bookmark1.title=Kuatiarogue ag̃agua (Ehecha URL kuatiarogue ag̃agua)
+bookmark1_label=Kuatiarogue Ag̃agua
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Embojuruja tembiporu’ípe
+# 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=Embojuruja tembiporu’ípe
+
+# Secondary toolbar and context menu
+tools.title=Tembiporu
+tools_label=Tembiporu
+first_page.title=Kuatiarogue ñepyrũme jeho
+first_page_label=Kuatiarogue ñepyrũme jeho
+last_page.title=Kuatiarogue pahápe jeho
+last_page_label=Kuatiarogue pahápe jeho
+page_rotate_cw.title=Aravóicha mbojere
+page_rotate_cw_label=Aravóicha mbojere
+page_rotate_ccw.title=Aravo rapykue gotyo mbojere
+page_rotate_ccw_label=Aravo rapykue gotyo mbojere
+
+cursor_text_select_tool.title=Emyandy moñe’ẽrã jeporavo rembiporu
+cursor_text_select_tool_label=Moñe’ẽrã jeporavo rembiporu
+cursor_hand_tool.title=Tembiporu po pegua myandy
+cursor_hand_tool_label=Tembiporu po pegua
+
+scroll_page.title=Eiporu kuatiarogue jeku’e
+scroll_page_label=Kuatiarogue jeku’e
+scroll_vertical.title=Eiporu jeku’e ykeguáva
+scroll_vertical_label=Jeku’e ykeguáva
+scroll_horizontal.title=Eiporu jeku’e yvate gotyo
+scroll_horizontal_label=Jeku’e yvate gotyo
+scroll_wrapped.title=Eiporu jeku’e mbohyrupyre
+scroll_wrapped_label=Jeku’e mbohyrupyre
+
+spread_none.title=Ani ejuaju spreads kuatiarogue ndive
+spread_none_label=Spreads ỹre
+spread_odd.title=Embojuaju kuatiarogue jepysokue eñepyrũvo kuatiarogue impar-vagui
+spread_odd_label=Spreads impar
+spread_even.title=Embojuaju kuatiarogue jepysokue eñepyrũvo kuatiarogue par-vagui
+spread_even_label=Ipukuve uvei
+
+# Document properties dialog box
+document_properties.title=Kuatia mba’etee…
+document_properties_label=Kuatia mba’etee…
+document_properties_file_name=Marandurenda réra:
+document_properties_file_size=Marandurenda tuichakue:
+# 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)
+# 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_title=Teratee:
+document_properties_author=Apohára:
+document_properties_subject=Mba’egua:
+document_properties_keywords=Jehero:
+document_properties_creation_date=Teñoihague arange:
+document_properties_modification_date=Iñambue hague arange:
+# 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=Apo’ypyha:
+document_properties_producer=PDF mbosako’iha:
+document_properties_version=PDF mbojuehegua:
+document_properties_page_count=Kuatiarogue papapy:
+document_properties_page_size=Kuatiarogue tuichakue:
+document_properties_page_size_unit_inches=Amo
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=Oĩháicha
+document_properties_page_size_orientation_landscape=apaisado
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Kuatiañe’ẽ
+document_properties_page_size_name_legal=Tee
+# 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=Ñanduti jahecha pya’e:
+document_properties_linearized_yes=Añete
+document_properties_linearized_no=Ahániri
+document_properties_close=Mboty
+
+print_progress_message=Embosako’i kuatia emonguatia hag̃ua…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Heja
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Tenda yke moambue
+toggle_sidebar_notification2.title=Embojopyru tenda ykegua (kuatia oguereko kuaakaha/moirũha/ñuãha)
+toggle_sidebar_label=Tenda yke moambue
+document_outline.title=Ehechauka kuatia rape (eikutu mokõi jey embotuicha/emomichĩ hag̃ua opavavete mba’eporu)
+document_outline_label=Kuatia apopyre
+attachments.title=Moirũha jehechauka
+attachments_label=Moirũha
+layers.title=Ehechauka ñuãha (eikutu jo’a emomba’apo hag̃ua opaite ñuãha tekoypýpe)
+layers_label=Ñuãha
+thumbs.title=Mba’emirĩ jehechauka
+thumbs_label=Mba’emirĩ
+current_outline_item.title=Eheka mba’eporu ag̃aguaitéva
+current_outline_item_label=Mba’eporu ag̃aguaitéva
+findbar.title=Kuatiápe jeheka
+findbar_label=Juhu
+
+additional_layers=Ñuãha moirũguáva
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Kuatiarogue {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Kuatiarogue {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Kuatiarogue mba’emirĩ {{page}}
+
+# Find panel button title and messages
+find_input.title=Juhu
+find_input.placeholder=Kuatiápe jejuhu…
+find_previous.title=Ejuhu ñe’ẽrysýi osẽ’ypy hague
+find_previous_label=Mboyvegua
+find_next.title=Eho ñe’ẽ juhupyre upeiguávape
+find_next_label=Upeigua
+find_highlight=Embojekuaavepa
+find_match_case_label=Ejesareko taiguasu/taimichĩre
+find_match_diacritics_label=Diacrítico moñondive
+find_entire_word_label=Ñe’ẽ oĩmbáva
+find_reached_top=Ojehupyty kuatia ñepyrũ, oku’ejeýta kuatia paha guive
+find_reached_bottom=Ojehupyty kuatia paha, oku’ejeýta kuatia ñepyrũ guive
+# 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}} ojojoguáva
+find_match_count[two]={{current}} {{total}} ojojoguáva
+find_match_count[few]={{current}} {{total}} ojojoguáva
+find_match_count[many]={{current}} {{total}} ojojoguáva
+find_match_count[other]={{current}} {{total}} ojojoguáva
+# 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]=Hetave {{limit}} ojojoguáva
+find_match_count_limit[one]=Hetave {{limit}} ojojogua
+find_match_count_limit[two]=Hetave {{limit}} ojojoguáva
+find_match_count_limit[few]=Hetave {{limit}} ojojoguáva
+find_match_count_limit[many]=Hetave {{limit}} ojojoguáva
+find_match_count_limit[other]=Hetave {{limit}} ojojoguáva
+find_not_found=Ñe’ẽrysýi ojejuhu’ỹva
+
+# Predefined zoom values
+page_scale_width=Kuatiarogue pekue
+page_scale_fit=Kuatiarogue ñemoĩporã
+page_scale_auto=Tuichakue ijeheguíva
+page_scale_actual=Tuichakue ag̃agua
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Oiko jejavy PDF oñemyeñyhẽnguévo.
+invalid_file_error=PDF marandurenda ndoikóiva térã ivaipyréva.
+missing_file_error=Ndaipóri PDF marandurenda
+unexpected_response_error=Mohendahavusu mbohovái ñeha’arõ’ỹva.
+rendering_error=Oiko jejavy ehechaukasévo kuatiarogue.
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Jehaipy {{type}}]
+password_label=Emoinge ñe’ẽñemi eipe’a hag̃ua ko marandurenda PDF.
+password_invalid=Ñe’ẽñemi ndoikóiva. Eha’ã jey.
+password_ok=MONEĨ
+password_cancel=Heja
+
+printing_not_supported=Kyhyjerã: Ñembokuatia ndojokupytypái ko kundahára ndive.
+printing_not_ready=Kyhyjerã: Ko PDF nahenyhẽmbái oñembokuatia hag̃uáicha.
+web_fonts_disabled=Ñanduti taity oñemongéma: ndaikatumo’ãi eiporu PDF jehai’íva taity.
+
+# Editor
+editor_free_text2.title=Moñe’ẽrã
+editor_free_text2_label=Moñe’ẽrã
+editor_ink2.title=Moha’ãnga
+editor_ink2_label=Moha’ãnga
+
+editor_stamp1.title=Embojuaju térã embosako’i ta’ãnga
+editor_stamp1_label=Embojuaju térã embosako’i ta’ãnga
+
+free_text2_default_content=Ehai ñepyrũ…
+
+# Editor Parameters
+editor_free_text_color=Sa’y
+editor_free_text_size=Tuichakue
+editor_ink_color=Sa’y
+editor_ink_thickness=Anambusu
+editor_ink_opacity=Pytũngy
+
+editor_stamp_add_image_label=Embojuaju ta’ãnga
+editor_stamp_add_image.title=Embojuaju ta’ãnga
+
+# Editor aria
+editor_free_text2_aria_label=Moñe’ẽrã moheñoiha
+editor_ink2_aria_label=Ta’ãnga moheñoiha
+editor_ink_canvas_aria_label=Ta’ãnga omoheñóiva poruhára
+
+# 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=Moñe’ẽrã mokõiháva
+editor_alt_text_edit_button_label=Embojuruja moñe’ẽrã mokõiháva
+editor_alt_text_dialog_label=Eiporavo poravorã
+editor_alt_text_add_description_label=Embojuaju ñemoha’anga
+editor_alt_text_cancel_button=Heja
+editor_alt_text_save_button=Ñongatu
+# This is a placeholder for the alt text input area
diff --git a/static/pdf.js/locale/gu-IN/viewer.properties b/static/pdf.js/locale/gu-IN/viewer.properties
index df6bb15be..ebb758086 100644
--- a/static/pdf.js/locale/gu-IN/viewer.properties
+++ b/static/pdf.js/locale/gu-IN/viewer.properties
@@ -18,12 +18,15 @@ previous_label=પહેલાનુ
next.title=આગળનુ પાનું
next_label=આગળનું
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=પાનું:
-page_of={{pageCount}} નું
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=પાનું
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=નો {{pagesCount}}
+# 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_label=મોટુ કરો
@@ -36,27 +39,37 @@ open_file.title=ફાઇલ ખોલો
open_file_label=ખોલો
print.title=છાપો
print_label=છારો
-download.title=ડાઉનલોડ
-download_label=ડાઉનલોડ
-bookmark.title=વર્તમાન દૃશ્ય (નવી વિન્ડોમાં નકલ કરો અથવા ખોલો)
-bookmark_label=વર્તમાન દૃશ્ય
# Secondary toolbar and context menu
tools.title=સાધનો
tools_label=સાધનો
-first_page.label=પહેલાં પાનામાં જાવ
+first_page.title=પહેલાં પાનામાં જાવ
first_page_label=પ્રથમ પાનાં પર જાવ
-last_page.label=છેલ્લા પાનામાં જાવ
+last_page.title=છેલ્લા પાનાં પર જાવ
last_page_label=છેલ્લા પાનાં પર જાવ
-page_rotate_cw.label=ઘડિયાળનાં કાંટાની જેમ ફેરવો
+page_rotate_cw.title=ઘડિયાળનાં કાંટા તરફ ફેરવો
page_rotate_cw_label=ઘડિયાળનાં કાંટા તરફ ફેરવો
-page_rotate_ccw.label=ઘડિયાળનાં કાંટાની ઉલટી દિશામાં ફેરવો
+page_rotate_ccw.title=ઘડિયાળનાં કાંટાની ઉલટી દિશામાં ફેરવો
page_rotate_ccw_label=ઘડિયાળનાં કાંટાની વિરુદ્દ ફેરવો
-hand_tool_enable.title=હાથનાં સાધનને સક્રિય કરો
-hand_tool_enable_label=હાથનાં સાધનને સક્રિય કરો
-hand_tool_disable.title=હાથનાં સાધનને નિષ્ક્રિય કરો
-hand_tool_disable_label=હાથનાં સાધનને નિષ્ક્રિય કરો
+cursor_text_select_tool.title=ટેક્સ્ટ પસંદગી ટૂલ સક્ષમ કરો
+cursor_text_select_tool_label=ટેક્સ્ટ પસંદગી ટૂલ
+cursor_hand_tool.title=હાથનાં સાધનને સક્રિય કરો
+cursor_hand_tool_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.title=દસ્તાવેજ ગુણધર્મો…
@@ -82,15 +95,43 @@ document_properties_creator=નિર્માતા:
document_properties_producer=PDF નિર્માતા:
document_properties_version=PDF આવૃત્તિ:
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=ઝડપી વૅબ દૃશ્ય:
+document_properties_linearized_yes=હા
+document_properties_linearized_no=ના
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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=ટૉગલ બાજુપટ્ટી
toggle_sidebar_label=ટૉગલ બાજુપટ્ટી
-outline.title=દસ્તાવેજ રૂપરેખા બતાવો
-outline_label=દસ્તાવેજ રૂપરેખા
+document_outline.title=દસ્તાવેજની રૂપરેખા બતાવો(બધી આઇટમ્સને વિસ્તૃત/સંકુચિત કરવા માટે ડબલ-ક્લિક કરો)
+document_outline_label=દસ્તાવેજ રૂપરેખા
attachments.title=જોડાણોને બતાવો
attachments_label=જોડાણો
thumbs.title=થંબનેલ્સ બતાવો
@@ -107,36 +148,40 @@ thumb_page_title=પાનું {{page}}
thumb_page_canvas=પાનાં {{page}} નું થંબનેલ્સ
# Find panel button title and messages
-find_label=શોધો:
+find_input.title=શોધો
+find_input.placeholder=દસ્તાવેજમાં શોધો…
find_previous.title=શબ્દસમૂહની પાછલી ઘટનાને શોધો
find_previous_label=પહેલાંનુ
find_next.title=શબ્દસમૂહની આગળની ઘટનાને શોધો
find_next_label=આગળનું
find_highlight=બધુ પ્રકાશિત કરો
find_match_case_label=કેસ બંધબેસાડો
+find_entire_word_label=સંપૂર્ણ શબ્દો
find_reached_top=દસ્તાવેજનાં ટોચે પહોંચી ગયા, તળિયેથી ચાલુ કરેલ હતુ
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]={{total}} માંથી {{current}} સરખું મળ્યું
+find_match_count[two]={{total}} માંથી {{current}} સરખા મળ્યાં
+find_match_count[few]={{total}} માંથી {{current}} સરખા મળ્યાં
+find_match_count[many]={{total}} માંથી {{current}} સરખા મળ્યાં
+find_match_count[other]={{total}} માંથી {{current}} સરખા મળ્યાં
+# 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=શબ્દસમૂહ મળ્યુ નથી
-# 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
page_scale_width=પાનાની પહોળાઇ
page_scale_fit=પાનું બંધબેસતુ
@@ -144,12 +189,14 @@ page_scale_auto=આપમેળે નાનુંમોટુ કરો
page_scale_actual=ચોક્કસ માપ
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
+page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=ભૂલ
loading_error=ભૂલ ઉદ્ભવી જ્યારે PDF ને લાવી રહ્યા હોય.
invalid_file_error=અયોગ્ય અથવા ભાંગેલ PDF ફાઇલ.
missing_file_error=ગુમ થયેલ PDF ફાઇલ.
+unexpected_response_error=અનપેક્ષિત સર્વર પ્રતિસાદ.
+
+rendering_error=ભૂલ ઉદ્ભવી જ્યારે પાનાંનુ રેન્ડ કરી રહ્યા હોય.
# 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
@@ -164,4 +211,4 @@ password_cancel=રદ કરો
printing_not_supported=ચેતવણી: છાપવાનું આ બ્રાઉઝર દ્દારા સંપૂર્ણપણે આધારભૂત નથી.
printing_not_ready=Warning: PDF એ છાપવા માટે સંપૂર્ણપણે લાવેલ છે.
web_fonts_disabled=વેબ ફોન્ટ નિષ્ક્રિય થયેલ છે: ઍમ્બેડ થયેલ PDF ફોન્ટને વાપરવાનું અસમર્થ.
-document_colors_not_allowed=PDF દસ્તાવેજો તેનાં પોતાના રંગોને વાપરવા પરવાનગી આપતા નથી: 'તેનાં પોતાનાં રંગોને પસંદ કરવા માટે પાનાંને પરવાનગી આપો' બ્રાઉઝરમાં નિષ્ક્રિય થયેલ છે.
+
diff --git a/static/pdf.js/locale/he/viewer.properties b/static/pdf.js/locale/he/viewer.properties
index 10f1177ee..306ff703b 100644
--- a/static/pdf.js/locale/he/viewer.properties
+++ b/static/pdf.js/locale/he/viewer.properties
@@ -18,12 +18,15 @@ previous_label=קודם
next.title=דף הבא
next_label=הבא
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=עמוד:
-page_of=מתוך {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=דף
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=מתוך {{pagesCount}}
+# 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_label=התרחקות
@@ -36,31 +39,51 @@ open_file.title=פתיחת קובץ
open_file_label=פתיחה
print.title=הדפסה
print_label=הדפסה
-download.title=הורדה
-download_label=הורדה
-bookmark.title=תצוגה נוכחית (העתקה או פתיחה בחלון חדש)
-bookmark_label=תצוגה נוכחית
+save.title=שמירה
+save_label=שמירה
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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_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
tools.title=כלים
tools_label=כלים
first_page.title=מעבר לעמוד הראשון
-first_page.label=מעבר לעמוד הראשון
first_page_label=מעבר לעמוד הראשון
last_page.title=מעבר לעמוד האחרון
-last_page.label=מעבר לעמוד האחרון
last_page_label=מעבר לעמוד האחרון
page_rotate_cw.title=הטיה עם כיוון השעון
-page_rotate_cw.label=הטיה עם כיוון השעון
page_rotate_cw_label=הטיה עם כיוון השעון
page_rotate_ccw.title=הטיה כנגד כיוון השעון
-page_rotate_ccw.label=הטיה כנגד כיוון השעון
page_rotate_ccw_label=הטיה כנגד כיוון השעון
-hand_tool_enable.title=הפעלת כלי היד
-hand_tool_enable_label=הפעלת כלי היד
-hand_tool_disable.title=נטרול כלי היד
-hand_tool_disable_label=נטרול כלי היד
+cursor_text_select_tool.title=הפעלת כלי בחירת טקסט
+cursor_text_select_tool_label=כלי בחירת טקסט
+cursor_hand_tool.title=הפעלת כלי היד
+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.title=מאפייני מסמך…
@@ -86,22 +109,58 @@ document_properties_creator=יוצר:
document_properties_producer=יצרן PDF:
document_properties_version=גרסת PDF:
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=תצוגת דף מהירה:
+document_properties_linearized_yes=כן
+document_properties_linearized_no=לא
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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=הצגה/הסתרה של סרגל הצד
+toggle_sidebar_notification2.title=החלפת תצוגת סרגל צד (מסמך שמכיל תוכן עניינים/קבצים מצורפים/שכבות)
toggle_sidebar_label=הצגה/הסתרה של סרגל הצד
-outline.title=הצגת מתאר מסמך
-outline_label=מתאר מסמך
+document_outline.title=הצגת תוכן העניינים של המסמך (לחיצה כפולה כדי להרחיב או לצמצם את כל הפריטים)
+document_outline_label=תוכן העניינים של המסמך
attachments.title=הצגת צרופות
attachments_label=צרופות
+layers.title=הצגת שכבות (יש ללחוץ לחיצה כפולה כדי לאפס את כל השכבות למצב ברירת המחדל)
+layers_label=שכבות
thumbs.title=הצגת תצוגה מקדימה
thumbs_label=תצוגה מקדימה
+current_outline_item.title=מציאת פריט תוכן העניינים הנוכחי
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,51 +170,60 @@ thumb_page_title=עמוד {{page}}
thumb_page_canvas=תצוגה מקדימה של עמוד {{page}}
# Find panel button title and messages
-find_label=חיפוש:
-find_previous.title=חיפוש מופע קודם של הביטוי
+find_input.title=חיפוש
+find_input.placeholder=חיפוש במסמך…
+find_previous.title=מציאת המופע הקודם של הביטוי
find_previous_label=קודם
-find_next.title=חיפוש המופע הבא של הביטוי
+find_next.title=מציאת המופע הבא של הביטוי
find_next_label=הבא
find_highlight=הדגשת הכול
find_match_case_label=התאמת אותיות
+find_match_diacritics_label=התאמה דיאקריטית
+find_entire_word_label=מילים שלמות
find_reached_top=הגיע לראש הדף, ממשיך מלמטה
find_reached_bottom=הגיע לסוף הדף, ממשיך מלמעלה
-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=אירעה שגיאה בעת עיבוד הדף.
+# 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]=יותר מתוצאה אחת
+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
page_scale_width=רוחב העמוד
page_scale_fit=התאמה לעמוד
page_scale_auto=מרחק מתצוגה אוטומטי
-page_scale_actual=גודל אמתי
+page_scale_actual=גודל אמיתי
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=שגיאה
loading_error=אירעה שגיאה בעת טעינת ה־PDF.
invalid_file_error=קובץ PDF פגום או לא תקין.
missing_file_error=קובץ PDF חסר.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -168,6 +236,48 @@ password_ok=אישור
password_cancel=ביטול
printing_not_supported=אזהרה: הדפסה אינה נתמכת במלואה בדפדפן זה.
-printing_not_ready=אזהרה: ה־PDF לא ניתן לחלוטין עד מצב שמאפשר הדפסה.
+printing_not_ready=אזהרה: מסמך ה־PDF לא נטען לחלוטין עד מצב שמאפשר הדפסה.
web_fonts_disabled=גופני רשת מנוטרלים: לא ניתן להשתמש בגופני PDF מוטבעים.
-document_colors_disabled=מסמכי 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=לדוגמה, ״גבר צעיר מתיישב ליד שולחן לאכול ארוחה״
diff --git a/static/pdf.js/locale/hi-IN/viewer.properties b/static/pdf.js/locale/hi-IN/viewer.properties
index d65eb9215..97f1da170 100644
--- a/static/pdf.js/locale/hi-IN/viewer.properties
+++ b/static/pdf.js/locale/hi-IN/viewer.properties
@@ -18,12 +18,15 @@ previous_label=पिछला
next.title=अगला पृष्ठ
next_label=आगे
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=पृष्ठ:
-page_of={{pageCount}} का
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=पृष्ठ:
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} का
+# 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=\u0020छोटा करें
zoom_out_label=\u0020छोटा करें
@@ -36,31 +39,37 @@ open_file.title=फ़ाइल खोलें
open_file_label=\u0020खोलें
print.title=छापें
print_label=\u0020छापें
-download.title=डाउनलोड
-download_label=डाउनलोड
-bookmark.title=मौजूदा दृश्य (नए विंडो में नक़ल लें या खोलें)
-bookmark_label=\u0020मौजूदा दृश्य
+# 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
tools.title=औज़ार
tools_label=औज़ार
first_page.title=प्रथम पृष्ठ पर जाएँ
-first_page.label=\u0020प्रथम पृष्ठ पर जाएँ
first_page_label=प्रथम पृष्ठ पर जाएँ
last_page.title=अंतिम पृष्ठ पर जाएँ
-last_page.label=\u0020अंतिम पृष्ठ पर जाएँ
last_page_label=\u0020अंतिम पृष्ठ पर जाएँ
page_rotate_cw.title=घड़ी की दिशा में घुमाएँ
-page_rotate_cw.label=घड़ी की दिशा में घुमाएँ
page_rotate_cw_label=घड़ी की दिशा में घुमाएँ
page_rotate_ccw.title=घड़ी की दिशा से उल्टा घुमाएँ
-page_rotate_ccw.label=घड़ी की दिशा से उल्टा घुमाएँ
page_rotate_ccw_label=\u0020घड़ी की दिशा से उल्टा घुमाएँ
-hand_tool_enable.title=हाथ औजार सक्रिय करें
-hand_tool_enable_label=हाथ औजार सक्रिय करें
-hand_tool_disable.title=हाथ औजार निष्क्रिय करना
-hand_tool_disable_label=हाथ औजार निष्क्रिय करना
+cursor_text_select_tool.title=पाठ चयन उपकरण सक्षम करें
+cursor_text_select_tool_label=पाठ चयन उपकरण
+cursor_hand_tool.title=हस्त उपकरण सक्षम करें
+cursor_hand_tool_label=हस्त उपकरण
+
+scroll_vertical.title=लंबवत स्क्रॉलिंग का उपयोग करें
+scroll_vertical_label=लंबवत स्क्रॉलिंग
+scroll_horizontal.title=क्षितिजिय स्क्रॉलिंग का उपयोग करें
+scroll_horizontal_label=क्षितिजिय स्क्रॉलिंग
+scroll_wrapped.title=व्राप्पेड स्क्रॉलिंग का उपयोग करें
+
+spread_none_label=कोई स्प्रेड उपलब्ध नहीं
+spread_odd.title=विषम-क्रमांकित पृष्ठों से प्रारंभ होने वाले पृष्ठ स्प्रेड में शामिल हों
+spread_odd_label=विषम फैलाव
# Document properties dialog box
document_properties.title=दस्तावेज़ विशेषता...
@@ -69,10 +78,10 @@ document_properties_file_name=फ़ाइल नाम:
document_properties_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}} बाइट)
+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}} बाइट)
+document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
document_properties_title=शीर्षक:
document_properties_author=लेखकः
document_properties_subject=विषय:
@@ -86,22 +95,51 @@ document_properties_creator=निर्माता:
document_properties_producer=PDF उत्पादक:
document_properties_version=PDF संस्करण:
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=तीव्र वेब व्यू:
+document_properties_linearized_yes=हाँ
+document_properties_linearized_no=नहीं
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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=\u0020स्लाइडर टॉगल करें
toggle_sidebar_label=स्लाइडर टॉगल करें
-outline.title=\u0020दस्तावेज़ आउटलाइन दिखाएँ
-outline_label=दस्तावेज़ आउटलाइन
+document_outline.title=दस्तावेज़ की रूपरेखा दिखाइए (सारी वस्तुओं को फलने अथवा समेटने के लिए दो बार क्लिक करें)
+document_outline_label=दस्तावेज़ आउटलाइन
attachments.title=संलग्नक दिखायें
attachments_label=संलग्नक
thumbs.title=लघुछवियाँ दिखाएँ
thumbs_label=लघु छवि
findbar.title=\u0020दस्तावेज़ में ढूँढ़ें
-findbar_label=ढूँढ़ें
+findbar_label=ढूँढें
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +149,40 @@ thumb_page_title=पृष्ठ {{page}}
thumb_page_canvas=पृष्ठ {{page}} की लघु-छवि
# Find panel button title and messages
-find_label=ढूंढें:
+find_input.title=ढूँढें
+find_input.placeholder=दस्तावेज़ में खोजें...
find_previous.title=वाक्यांश की पिछली उपस्थिति ढूँढ़ें
find_previous_label=पिछला
find_next.title=वाक्यांश की अगली उपस्थिति ढूँढ़ें
-find_next_label=आगे
+find_next_label=अगला
find_highlight=\u0020सभी आलोकित करें
find_match_case_label=मिलान स्थिति
+find_entire_word_label=संपूर्ण शब्द
find_reached_top=पृष्ठ के ऊपर पहुंच गया, नीचे से जारी रखें
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]={{total}} में {{current}} मेल
+find_match_count[two]={{total}} में {{current}} मेल
+find_match_count[few]={{total}} में {{current}} मेल
+find_match_count[many]={{total}} में {{current}} मेल
+find_match_count[other]={{total}} में {{current}} मेल
+# 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=वाक्यांश नहीं मिला
-# 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=\u0020संदेश: {{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
page_scale_width=\u0020पृष्ठ चौड़ाई
page_scale_fit=पृष्ठ फिट
@@ -151,23 +193,35 @@ page_scale_actual=वास्तविक आकार
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=त्रुटि
-loading_error=पीडीएफ लोड करते समय एक त्रुटि हुई.
+loading_error=PDF लोड करते समय एक त्रुटि हुई.
invalid_file_error=अमान्य या भ्रष्ट PDF फ़ाइल.
missing_file_error=\u0020अनुपस्थित PDF फ़ाइल.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=\u0020[{{type}} Annotation]
-password_label=इस पीडीएफ फ़ाइल को खोलने के लिए कृपया कूटशब्द भरें.
+password_label=इस PDF फ़ाइल को खोलने के लिए कृपया कूटशब्द भरें.
password_invalid=अवैध कूटशब्द, कृपया फिर कोशिश करें.
-password_ok=ठीक
+password_ok=OK
password_cancel=रद्द करें
printing_not_supported=चेतावनी: इस ब्राउज़र पर छपाई पूरी तरह से समर्थित नहीं है.
-printing_not_ready=\u0020चेतावनी: पीडीएफ छपाई के लिए पूरी तरह से लोड नहीं है.
+printing_not_ready=चेतावनी: PDF छपाई के लिए पूरी तरह से लोड नहीं है.
web_fonts_disabled=वेब फॉन्ट्स निष्क्रिय हैं: अंतःस्थापित PDF फॉन्टस के उपयोग में असमर्थ.
-document_colors_not_allowed=PDF दस्तावेज़ उनके अपने रंग को उपयोग करने के लिए अनुमति प्राप्त नहीं है: 'पृष्ठों को उनके अपने रंग को चुनने के लिए स्वीकृति दें कि वह उस ब्राउज़र में निष्क्रिय है.
+
+# Editor
+
+
+
+# Editor Parameters
+editor_free_text_color=रंग
+
+# Editor aria
diff --git a/static/pdf.js/locale/hr/viewer.properties b/static/pdf.js/locale/hr/viewer.properties
index 83cc5d9b8..05b54ffc7 100644
--- a/static/pdf.js/locale/hr/viewer.properties
+++ b/static/pdf.js/locale/hr/viewer.properties
@@ -18,53 +18,64 @@ previous_label=Prethodna
next.title=Sljedeća stranica
next_label=Sljedeća
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Stranica:
-page_of=od {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Stranica
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=od {{pagesCount}}
+# 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}} od {{pagesCount}})
-zoom_out.title=Uvećaj
-zoom_out_label=Smanji
+zoom_out.title=Umanji
+zoom_out_label=Umanji
zoom_in.title=Uvećaj
-zoom_in_label=Smanji
-zoom.title=Uvećanje
+zoom_in_label=Uvećaj
+zoom.title=Zumiranje
presentation_mode.title=Prebaci u prezentacijski način rada
presentation_mode_label=Prezentacijski način rada
open_file.title=Otvori datoteku
open_file_label=Otvori
-print.title=Ispis
-print_label=Ispis
-download.title=Preuzmi
-download_label=Preuzmi
-bookmark.title=Trenutni prikaz (kopiraj ili otvori u novom prozoru)
-bookmark_label=Trenutni prikaz
+print.title=Ispiši
+print_label=Ispiši
+save.title=Spremi
+save_label=Spremi
# Secondary toolbar and context menu
tools.title=Alati
tools_label=Alati
first_page.title=Idi na prvu stranicu
-first_page.label=Idi na prvu stranicu
first_page_label=Idi na prvu stranicu
last_page.title=Idi na posljednju stranicu
-last_page.label=Idi na posljednju stranicu
last_page_label=Idi na posljednju stranicu
page_rotate_cw.title=Rotiraj u smjeru kazaljke na satu
-page_rotate_cw.label=Rotiraj u smjeru kazaljke na satu
page_rotate_cw_label=Rotiraj u smjeru kazaljke na satu
page_rotate_ccw.title=Rotiraj obrnutno od smjera kazaljke na satu
-page_rotate_ccw.label=Rotiraj obrnutno od smjera kazaljke na satu
page_rotate_ccw_label=Rotiraj obrnutno od smjera kazaljke na satu
-hand_tool_enable.title=Omogući ručni alat
-hand_tool_enable_label=Omogući ručni alat
-hand_tool_disable.title=Onemogući ručni alat
-hand_tool_disable_label=Onemogući ručni alat
+cursor_text_select_tool.title=Omogući alat za označavanje teksta
+cursor_text_select_tool_label=Alat za označavanje teksta
+cursor_hand_tool.title=Omogući ručni alat
+cursor_hand_tool_label=Ručni alat
+
+scroll_vertical.title=Koristi okomito pomicanje
+scroll_vertical_label=Okomito pomicanje
+scroll_horizontal.title=Koristi vodoravno pomicanje
+scroll_horizontal_label=Vodoravno pomicanje
+scroll_wrapped.title=Koristi kontinuirani raspored stranica
+scroll_wrapped_label=Kontinuirani raspored stranica
+
+spread_none.title=Ne izrađuj duplerice
+spread_none_label=Pojedinačne stranice
+spread_odd.title=Izradi duplerice koje počinju s neparnim stranicama
+spread_odd_label=Neparne duplerice
+spread_even.title=Izradi duplerice koje počinju s parnim stranicama
+spread_even_label=Parne duplerice
# Document properties dialog box
-document_properties.title=Svojstva dokumenta...
-document_properties_label=Svojstva dokumenta...
+document_properties.title=Svojstva dokumenta …
+document_properties_label=Svojstva dokumenta …
document_properties_file_name=Naziv datoteke:
document_properties_file_size=Veličina datoteke:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
@@ -84,90 +95,149 @@ document_properties_modification_date=Datum promjene:
document_properties_date_string={{date}}, {{time}}
document_properties_creator=Stvaratelj:
document_properties_producer=PDF stvaratelj:
-document_properties_version=PDF inačica:
+document_properties_version=PDF verzija:
document_properties_page_count=Broj stranica:
+document_properties_page_size=Dimenzije stranice:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=uspravno
+document_properties_page_size_orientation_landscape=položeno
+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=Brzi web pregled:
+document_properties_linearized_yes=Da
+document_properties_linearized_no=Ne
document_properties_close=Zatvori
+print_progress_message=Pripremanje dokumenta za ispis…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Odustani
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Prikaži/sakrij bočnu traku
+toggle_sidebar_notification2.title=Prikazivanje i sklanjanje bočne trake (dokument sadrži strukturu/privitke/slojeve)
toggle_sidebar_label=Prikaži/sakrij bočnu traku
-outline.title=Prikaži obris dokumenta
-outline_label=Obris dokumenta
+document_outline.title=Prikaži strukturu dokumenta (dvostruki klik za rasklapanje/sklapanje svih stavki)
+document_outline_label=Struktura dokumenta
attachments.title=Prikaži privitke
attachments_label=Privitci
-thumbs.title=Prikaži sličice
-thumbs_label=Sličice
-findbar.title=Traži u dokumentu
-findbar_label=Traži
+layers.title=Prikaži slojeve (dvoklik za vraćanje svih slojeva u zadano stanje)
+layers_label=Slojevi
+thumbs.title=Prikaži minijature
+thumbs_label=Minijature
+current_outline_item.title=Pronađi trenutačni element strukture
+current_outline_item_label=Trenutačni element strukture
+findbar.title=Pronađi u dokumentu
+findbar_label=Pronađi
+additional_layers=Dodatni slojevi
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Stranica {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Stranica {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
-thumb_page_canvas=Sličica stranice {{page}}
+thumb_page_canvas=Minijatura stranice {{page}}
# Find panel button title and messages
-find_label=Traži:
-find_previous.title=Pronađi prethodno javljanje ovog izraza
+find_input.title=Pronađi
+find_input.placeholder=Pronađi u dokumentu …
+find_previous.title=Pronađi prethodno pojavljivanje ovog izraza
find_previous_label=Prethodno
-find_next.title=Pronađi iduće javljanje ovog izraza
+find_next.title=Pronađi sljedeće pojavljivanje ovog izraza
find_next_label=Sljedeće
find_highlight=Istankni sve
-find_match_case_label=Slučaj podudaranja
-find_reached_top=Dosegnut vrh dokumenta, nastavak od dna
-find_reached_bottom=Dosegnut vrh dokumenta, nastavak od vrha
+find_match_case_label=Razlikovanje velikih i malih slova
+find_entire_word_label=Cijele riječi
+find_reached_top=Dosegnut početak dokumenta, nastavak s kraja
+find_reached_bottom=Dosegnut kraj dokumenta, nastavak s početka
+# 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}} od {{total}} se podudara
+find_match_count[two]={{current}} od {{total}} se podudara
+find_match_count[few]={{current}} od {{total}} se podudara
+find_match_count[many]={{current}} od {{total}} se podudara
+find_match_count[other]={{current}} od {{total}} se podudara
+# 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]=Više od {{limit}} podudaranja
+find_match_count_limit[one]=Više od {{limit}} podudaranja
+find_match_count_limit[two]=Više od {{limit}} podudaranja
+find_match_count_limit[few]=Više od {{limit}} podudaranja
+find_match_count_limit[many]=Više od {{limit}} podudaranja
+find_match_count_limit[other]=Više od {{limit}} podudaranja
find_not_found=Izraz nije pronađen
-# Error panel labels
-error_more_info=Više informacija
-error_less_info=Manje informacija
-error_close=Zatvori
-# 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=Poruka: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stog: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Datoteka: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Redak: {{line}}
-rendering_error=Došlo je do greške prilikom iscrtavanja stranice.
-
# Predefined zoom values
-page_scale_width=Širina stranice
-page_scale_fit=Pristajanje stranici
-page_scale_auto=Automatsko uvećanje
-page_scale_actual=Prava veličina
+page_scale_width=Prilagodi širini prozora
+page_scale_fit=Prilagodi veličini prozora
+page_scale_auto=Automatsko zumiranje
+page_scale_actual=Stvarna veličina
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
-page_scale_percent={{scale}}%
+page_scale_percent={{scale}} %
-# Loading indicator messages
-loading_error_indicator=Greška
loading_error=Došlo je do greške pri učitavanju PDF-a.
-invalid_file_error=Kriva ili oštećena PDF datoteka.
+invalid_file_error=Neispravna ili oštećena PDF datoteka.
missing_file_error=Nedostaje PDF datoteka.
unexpected_response_error=Neočekivani odgovor poslužitelja.
+rendering_error=Došlo je do greške prilikom iscrtavanja stranice.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} Bilješka]
-password_label=Upišite lozinku da biste otvorili ovu PDF datoteku.
-password_invalid=Neispravna lozinka. Pokušajte ponovo.
+password_label=Za otvoranje ove PDF datoteku upiši lozinku.
+password_invalid=Neispravna lozinka. Pokušaj ponovo.
password_ok=U redu
password_cancel=Odustani
-printing_not_supported=Upozorenje: Ispisivanje nije potpuno podržano u ovom pregledniku.
+printing_not_supported=Upozorenje: Ovaj preglednik ne podržava u potpunosti ispisivanje.
printing_not_ready=Upozorenje: PDF nije u potpunosti učitan za ispis.
-web_fonts_disabled=Web fontovi su onemogućeni: nije moguće koristiti umetnute PDF fontove.
-document_colors_not_allowed=PDF dokumenti nemaju dopuštene koristiti vlastite boje: opcija 'Dopusti stranicama da koriste vlastite boje' je deaktivirana.
+web_fonts_disabled=Web fontovi su deaktivirani: nije moguće koristiti ugrađene PDF fontove.
+
+# Editor
+editor_free_text2.title=Tekst
+editor_free_text2_label=Tekst
+
+free_text2_default_content=Počni tipkati …
+
+# Editor Parameters
+editor_free_text_color=Boja
+editor_free_text_size=Veličina
+editor_ink_color=Boja
+editor_ink_thickness=Debljina
+editor_ink_opacity=Neprozirnost
+
+# Editor aria
+editor_free_text2_aria_label=Uređivač teksta
diff --git a/static/pdf.js/locale/hsb/viewer.properties b/static/pdf.js/locale/hsb/viewer.properties
new file mode 100644
index 000000000..d96940d4d
--- /dev/null
+++ b/static/pdf.js/locale/hsb/viewer.properties
@@ -0,0 +1,284 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Předchadna strona
+previous_label=Wróćo
+next.title=Přichodna strona
+next_label=Dale
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Strona
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=z {{pagesCount}}
+# 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}} z {{pagesCount}})
+
+zoom_out.title=Pomjeńšić
+zoom_out_label=Pomjeńšić
+zoom_in.title=Powjetšić
+zoom_in_label=Powjetšić
+zoom.title=Skalowanje
+presentation_mode.title=Do prezentaciskeho modusa přeńć
+presentation_mode_label=Prezentaciski modus
+open_file.title=Dataju wočinić
+open_file_label=Wočinić
+print.title=Ćišćeć
+print_label=Ćišćeć
+save.title=Składować
+save_label=Składować
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Sćahnyć
+# 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=Sćahnyć
+bookmark1.title=Aktualna strona (URL z aktualneje strony pokazać)
+bookmark1_label=Aktualna strona
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=W nałoženju wočinić
+# 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=W nałoženju wočinić
+
+# Secondary toolbar and context menu
+tools.title=Nastroje
+tools_label=Nastroje
+first_page.title=K prěnjej stronje
+first_page_label=K prěnjej stronje
+last_page.title=K poslednjej stronje
+last_page_label=K poslednjej stronje
+page_rotate_cw.title=K směrej časnika wjerćeć
+page_rotate_cw_label=K směrej časnika wjerćeć
+page_rotate_ccw.title=Přećiwo směrej časnika wjerćeć
+page_rotate_ccw_label=Přećiwo směrej časnika wjerćeć
+
+cursor_text_select_tool.title=Nastroj za wuběranje teksta zmóžnić
+cursor_text_select_tool_label=Nastroj za wuběranje teksta
+cursor_hand_tool.title=Ručny nastroj zmóžnić
+cursor_hand_tool_label=Ručny nastroj
+
+scroll_page.title=Kulenje strony wužiwać
+scroll_page_label=Kulenje strony
+scroll_vertical.title=Wertikalne suwanje wužiwać
+scroll_vertical_label=Wertikalne suwanje
+scroll_horizontal.title=Horicontalne suwanje wužiwać
+scroll_horizontal_label=Horicontalne suwanje
+scroll_wrapped.title=Postupne suwanje wužiwać
+scroll_wrapped_label=Postupne suwanje
+
+spread_none.title=Strony njezwjazać
+spread_none_label=Žana dwójna strona
+spread_odd.title=Strony započinajo z njerunymi stronami zwjazać
+spread_odd_label=Njerune strony
+spread_even.title=Strony započinajo z runymi stronami zwjazać
+spread_even_label=Rune strony
+
+# Document properties dialog box
+document_properties.title=Dokumentowe kajkosće…
+document_properties_label=Dokumentowe kajkosće…
+document_properties_file_name=Mjeno dataje:
+document_properties_file_size=Wulkosć dataje:
+# 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}} bajtow)
+# 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}} bajtow)
+document_properties_title=Titul:
+document_properties_author=Awtor:
+document_properties_subject=Předmjet:
+document_properties_keywords=Klučowe słowa:
+document_properties_creation_date=Datum wutworjenja:
+document_properties_modification_date=Datum změny:
+# 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=Awtor:
+document_properties_producer=PDF-zhotowjer:
+document_properties_version=PDF-wersija:
+document_properties_page_count=Ličba stronow:
+document_properties_page_size=Wulkosć strony:
+document_properties_page_size_unit_inches=cól
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=wysoki format
+document_properties_page_size_orientation_landscape=prěčny format
+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=Haj
+document_properties_linearized_no=Ně
+document_properties_close=Začinić
+
+print_progress_message=Dokument so za ćišćenje přihotuje…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Přetorhnyć
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Bóčnicu pokazać/schować
+toggle_sidebar_notification2.title=Bóčnicu přepinać (dokument rozrjad/přiwěški/woršty wobsahuje)
+toggle_sidebar_label=Bóčnicu pokazać/schować
+document_outline.title=Dokumentowy naćisk pokazać (dwójne kliknjenje, zo bychu so wšě zapiski pokazali/schowali)
+document_outline_label=Dokumentowa struktura
+attachments.title=Přiwěški pokazać
+attachments_label=Přiwěški
+layers.title=Woršty pokazać (klikńće dwójce, zo byšće wšě woršty na standardny staw wróćo stajił)
+layers_label=Woršty
+thumbs.title=Miniatury pokazać
+thumbs_label=Miniatury
+current_outline_item.title=Aktualny rozrjadowy zapisk pytać
+current_outline_item_label=Aktualny rozrjadowy zapisk
+findbar.title=W dokumenće pytać
+findbar_label=Pytać
+
+additional_layers=Dalše woršty
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Strona {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Strona {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura strony {{page}}
+
+# Find panel button title and messages
+find_input.title=Pytać
+find_input.placeholder=W dokumenće pytać…
+find_previous.title=Předchadne wustupowanje pytanskeho wuraza pytać
+find_previous_label=Wróćo
+find_next.title=Přichodne wustupowanje pytanskeho wuraza pytać
+find_next_label=Dale
+find_highlight=Wšě wuzběhnyć
+find_match_case_label=Wulkopisanje wobkedźbować
+find_match_diacritics_label=Diakritiske znamješka wužiwać
+find_entire_word_label=Cyłe słowa
+find_reached_top=Spočatk dokumenta docpěty, pokročuje so z kóncom
+find_reached_bottom=Kónc dokument docpěty, pokročuje so ze spočatkom
+# 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}} z {{total}} wotpowědnika
+find_match_count[two]={{current}} z {{total}} wotpowědnikow
+find_match_count[few]={{current}} z {{total}} wotpowědnikow
+find_match_count[many]={{current}} z {{total}} wotpowědnikow
+find_match_count[other]={{current}} z {{total}} wotpowědnikow
+# 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]=Wjace hač {{limit}} wotpowědnikow
+find_match_count_limit[one]=Wjace hač {{limit}} wotpowědnik
+find_match_count_limit[two]=Wjace hač {{limit}} wotpowědnikaj
+find_match_count_limit[few]=Wjace hač {{limit}} wotpowědniki
+find_match_count_limit[many]=Wjace hač {{limit}} wotpowědnikow
+find_match_count_limit[other]=Wjace hač {{limit}} wotpowědnikow
+find_not_found=Pytanski wuraz njeje so namakał
+
+# Predefined zoom values
+page_scale_width=Šěrokosć strony
+page_scale_fit=Wulkosć strony
+page_scale_auto=Awtomatiske skalowanje
+page_scale_actual=Aktualna wulkosć
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Při začitowanju PDF je zmylk wustupił.
+invalid_file_error=Njepłaćiwa abo wobškodźena PDF-dataja.
+missing_file_error=Falowaca PDF-dataja.
+unexpected_response_error=Njewočakowana serwerowa wotmołwa.
+rendering_error=Při zwobraznjenju strony je zmylk wustupił.
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Typ přispomnjenki: {{type}}]
+password_label=Zapodajće hesło, zo byšće PDF-dataju wočinił.
+password_invalid=Njepłaćiwe hesło. Prošu spytajće hišće raz.
+password_ok=W porjadku
+password_cancel=Přetorhnyć
+
+printing_not_supported=Warnowanje: Ćišćenje so přez tutón wobhladowak połnje njepodpěruje.
+printing_not_ready=Warnowanje: PDF njeje so za ćišćenje dospołnje začitał.
+web_fonts_disabled=Webpisma su znjemóžnjene: njeje móžno, zasadźene PDF-pisma wužiwać.
+
+# Editor
+editor_free_text2.title=Tekst
+editor_free_text2_label=Tekst
+editor_ink2.title=Rysować
+editor_ink2_label=Rysować
+
+editor_stamp1.title=Wobrazy přidać abo wobdźěłać
+editor_stamp1_label=Wobrazy přidać abo wobdźěłać
+
+free_text2_default_content=Započńće pisać…
+
+# Editor Parameters
+editor_free_text_color=Barba
+editor_free_text_size=Wulkosć
+editor_ink_color=Barba
+editor_ink_thickness=Tołstosć
+editor_ink_opacity=Opacita
+
+editor_stamp_add_image_label=Wobraz přidać
+editor_stamp_add_image.title=Wobraz přidać
+
+# Editor aria
+editor_free_text2_aria_label=Tekstowy editor
+editor_ink2_aria_label=Rysowanski editor
+editor_ink_canvas_aria_label=Wobraz wutworjeny wot wužiwarja
+
+# 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=Alternatiwny tekst
+editor_alt_text_edit_button_label=Alternatiwny tekst wobdźěłać
+editor_alt_text_dialog_label=Nastajenje wubrać
+editor_alt_text_dialog_description=Alternatiwny tekst pomha, hdyž ludźo njemóža wobraz widźeć abo hdyž so wobraz njezačita.
+editor_alt_text_add_description_label=Wopisanje přidać
+editor_alt_text_add_description_description=Pisajće 1 sadu abo 2 sadźe, kotrejž temu, nastajenje abo akcije wopisujetej.
+editor_alt_text_mark_decorative_label=Jako dekoratiwny markěrować
+editor_alt_text_mark_decorative_description=To so za pyšace wobrazy wužiwa, na přikład ramiki abo wodowe znamjenja.
+editor_alt_text_cancel_button=Přetorhnyć
+editor_alt_text_save_button=Składować
+editor_alt_text_decorative_tooltip=Jako dekoratiwny markěrowany
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Na přikład, „Młody muž za blidom sedźi, zo by jědź jědł“
diff --git a/static/pdf.js/locale/hu/viewer.properties b/static/pdf.js/locale/hu/viewer.properties
index 549137cef..028aa058a 100644
--- a/static/pdf.js/locale/hu/viewer.properties
+++ b/static/pdf.js/locale/hu/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Előző
next.title=Következő oldal
next_label=Tovább
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Oldal:
-page_of=összesen: {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Oldal
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=összesen: {{pagesCount}}
+# 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=Kicsinyítés
zoom_out_label=Kicsinyítés
@@ -36,31 +39,52 @@ open_file.title=Fájl megnyitása
open_file_label=Megnyitás
print.title=Nyomtatás
print_label=Nyomtatás
-download.title=Letöltés
-download_label=Letöltés
-bookmark.title=Jelenlegi nézet (másolás vagy megnyitás új ablakban)
-bookmark_label=Aktuális nézet
+save.title=Mentés
+save_label=Mentés
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Letöltés
+# 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=Letöltés
+bookmark1.title=Jelenlegi oldal (webcím megtekintése a jelenlegi oldalról)
+bookmark1_label=Jelenlegi oldal
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Megnyitás alkalmazásban
+# 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=Megnyitás alkalmazásban
# Secondary toolbar and context menu
tools.title=Eszközök
tools_label=Eszközök
first_page.title=Ugrás az első oldalra
-first_page.label=Ugrás az első oldalra
first_page_label=Ugrás az első oldalra
last_page.title=Ugrás az utolsó oldalra
-last_page.label=Ugrás az utolsó oldalra
last_page_label=Ugrás az utolsó oldalra
page_rotate_cw.title=Forgatás az óramutató járásával egyezően
-page_rotate_cw.label=Forgatás az óramutató járásával egyezően
page_rotate_cw_label=Forgatás az óramutató járásával egyezően
page_rotate_ccw.title=Forgatás az óramutató járásával ellentétesen
-page_rotate_ccw.label=Forgatás az óramutató járásával ellentétesen
page_rotate_ccw_label=Forgatás az óramutató járásával ellentétesen
-hand_tool_enable.title=Kéz eszköz bekapcsolása
-hand_tool_enable_label=Kéz eszköz bekapcsolása
-hand_tool_disable.title=Kéz eszköz kikapcsolása
-hand_tool_disable_label=Kéz eszköz kikapcsolása
+cursor_text_select_tool.title=Szövegkijelölő eszköz bekapcsolása
+cursor_text_select_tool_label=Szövegkijelölő eszköz
+cursor_hand_tool.title=Kéz eszköz bekapcsolása
+cursor_hand_tool_label=Kéz eszköz
+
+scroll_page.title=Oldalgörgetés használata
+scroll_page_label=Oldalgörgetés
+scroll_vertical.title=Függőleges görgetés használata
+scroll_vertical_label=Függőleges görgetés
+scroll_horizontal.title=Vízszintes görgetés használata
+scroll_horizontal_label=Vízszintes görgetés
+scroll_wrapped.title=Rácsos elrendezés használata
+scroll_wrapped_label=Rácsos elrendezés
+
+spread_none.title=Ne tapassza össze az oldalakat
+spread_none_label=Nincs összetapasztás
+spread_odd.title=Lapok összetapasztása, a páratlan számú oldalakkal kezdve
+spread_odd_label=Összetapasztás: páratlan
+spread_even.title=Lapok összetapasztása, a páros számú oldalakkal kezdve
+spread_even_label=Összetapasztás: páros
# Document properties dialog box
document_properties.title=Dokumentum tulajdonságai…
@@ -86,22 +110,58 @@ document_properties_creator=Létrehozta:
document_properties_producer=PDF előállító:
document_properties_version=PDF verzió:
document_properties_page_count=Oldalszám:
+document_properties_page_size=Lapméret:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=álló
+document_properties_page_size_orientation_landscape=fekvő
+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=Jogi információk
+# 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=Gyors webes nézet:
+document_properties_linearized_yes=Igen
+document_properties_linearized_no=Nem
document_properties_close=Bezárás
+print_progress_message=Dokumentum előkészítése nyomtatáshoz…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Mégse
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Oldalsáv be/ki
+toggle_sidebar_notification2.title=Oldalsáv be/ki (a dokumentum vázlatot/mellékleteket/rétegeket tartalmaz)
toggle_sidebar_label=Oldalsáv be/ki
-outline.title=Dokumentumvázlat megjelenítése
-outline_label=Dokumentumvázlat
+document_outline.title=Dokumentum megjelenítése online (dupla kattintás minden elem kinyitásához/összecsukásához)
+document_outline_label=Dokumentumvázlat
attachments.title=Mellékletek megjelenítése
attachments_label=Van melléklet
+layers.title=Rétegek megjelenítése (dupla kattintás az összes réteg alapértelmezett állapotra visszaállításához)
+layers_label=Rétegek
thumbs.title=Bélyegképek megjelenítése
thumbs_label=Bélyegképek
+current_outline_item.title=Jelenlegi vázlatelem megkeresése
+current_outline_item_label=Jelenlegi vázlatelem
findbar.title=Keresés a dokumentumban
findbar_label=Keresés
+additional_layers=További rétegek
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark={{page}}. oldal
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title={{page}}. oldal
thumb_page_canvas={{page}}. oldal bélyegképe
# Find panel button title and messages
-find_label=Keresés:
+find_input.title=Keresés
+find_input.placeholder=Keresés a dokumentumban…
find_previous.title=A kifejezés előző előfordulásának keresése
find_previous_label=Előző
find_next.title=A kifejezés következő előfordulásának keresése
find_next_label=Tovább
find_highlight=Összes kiemelése
find_match_case_label=Kis- és nagybetűk megkülönböztetése
+find_match_diacritics_label=Diakritikus jelek
+find_entire_word_label=Teljes szavak
find_reached_top=A dokumentum eleje elérve, folytatás a végétől
find_reached_bottom=A dokumentum vége elérve, folytatás az elejétől
+# 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}} találat
+find_match_count[two]={{current}} / {{total}} találat
+find_match_count[few]={{current}} / {{total}} találat
+find_match_count[many]={{current}} / {{total}} találat
+find_match_count[other]={{current}} / {{total}} találat
+# 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]=Több mint {{limit}} találat
+find_match_count_limit[one]=Több mint {{limit}} találat
+find_match_count_limit[two]=Több mint {{limit}} találat
+find_match_count_limit[few]=Több mint {{limit}} találat
+find_match_count_limit[many]=Több mint {{limit}} találat
+find_match_count_limit[other]=Több mint {{limit}} találat
find_not_found=A kifejezés nem található
-# Error panel labels
-error_more_info=További tudnivalók
-error_less_info=Kevesebb információ
-error_close=Bezárás
-# 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=Üzenet: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Nyomkövetés: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fájl: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Sor: {{line}}
-rendering_error=Hiba történt az oldal feldolgozása közben.
-
# Predefined zoom values
page_scale_width=Oldalszélesség
page_scale_fit=Teljes oldal
@@ -151,11 +216,15 @@ page_scale_actual=Valódi méret
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Hiba
loading_error=Hiba történt a PDF betöltésekor.
invalid_file_error=Érvénytelen vagy sérült PDF fájl.
missing_file_error=Hiányzó PDF fájl.
unexpected_response_error=Váratlan kiszolgálóválasz.
+rendering_error=Hiba történt az oldal feldolgozása közben.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,46 @@ password_cancel=Mégse
printing_not_supported=Figyelmeztetés: Ez a böngésző nem teljesen támogatja a nyomtatást.
printing_not_ready=Figyelmeztetés: A PDF nincs teljesen betöltve a nyomtatáshoz.
web_fonts_disabled=Webes betűkészletek letiltva: nem használhatók a beágyazott PDF betűkészletek.
-document_colors_not_allowed=A PDF dokumentumok nem használhatják saját színeiket: „Az oldalak a saját maguk által kiválasztott színeket használhatják” beállítás ki van kapcsolva a böngészőben.
+
+# Editor
+editor_free_text2.title=Szöveg
+editor_free_text2_label=Szöveg
+editor_ink2.title=Rajzolás
+editor_ink2_label=Rajzolás
+
+editor_stamp1.title=Képek hozzáadása vagy szerkesztése
+editor_stamp1_label=Képek hozzáadása vagy szerkesztése
+
+free_text2_default_content=Kezdjen el gépelni…
+
+# Editor Parameters
+editor_free_text_color=Szín
+editor_free_text_size=Méret
+editor_ink_color=Szín
+editor_ink_thickness=Vastagság
+editor_ink_opacity=Átlátszatlanság
+
+editor_stamp_add_image_label=Kép hozzáadása
+editor_stamp_add_image.title=Kép hozzáadása
+
+# Editor aria
+editor_free_text2_aria_label=Szövegszerkesztő
+editor_ink2_aria_label=Rajzszerkesztő
+editor_ink_canvas_aria_label=Felhasználó által készített kép
+
+# 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=Alternatív szöveg
+editor_alt_text_edit_button_label=Alternatív szöveg szerkesztése
+editor_alt_text_dialog_label=Válasszon egy lehetőséget
+editor_alt_text_dialog_description=Az alternatív szöveg segít, ha az emberek nem látják a képet, vagy ha az nem töltődik be.
+editor_alt_text_add_description_label=Leírás hozzáadása
+editor_alt_text_add_description_description=Törekedjen 1-2 mondatra, amely jellemzi a témát, környezetet vagy cselekvést.
+editor_alt_text_mark_decorative_label=Megjelölés dekoratívként
+editor_alt_text_mark_decorative_description=Ez a díszítőképeknél használatos, mint a szegélyek vagy a vízjelek.
+editor_alt_text_cancel_button=Mégse
+editor_alt_text_save_button=Mentés
+editor_alt_text_decorative_tooltip=Megjelölve dekoratívként
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Például: „Egy fiatal férfi leül enni egy asztalhoz”
diff --git a/static/pdf.js/locale/hy-AM/viewer.properties b/static/pdf.js/locale/hy-AM/viewer.properties
index d49051710..a2de23bc3 100644
--- a/static/pdf.js/locale/hy-AM/viewer.properties
+++ b/static/pdf.js/locale/hy-AM/viewer.properties
@@ -18,55 +18,67 @@ previous_label=Նախորդը
next.title=Հաջորդ էջը
next_label=Հաջորդը
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Էջ.
-page_of={{pageCount}}-ից
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Էջ.
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=-ը՝ {{pagesCount}}-ից
+# 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_label=Փոքրացնել
zoom_in.title=Խոշորացնել
zoom_in_label=Խոշորացնել
-zoom.title=Մասշտաբը\u0020
+zoom.title=Մասշտաբ
presentation_mode.title=Անցնել Ներկայացման եղանակին
presentation_mode_label=Ներկայացման եղանակ
-open_file.title=Բացել Ֆայլ
+open_file.title=Բացել նիշք
open_file_label=Բացել
print.title=Տպել
print_label=Տպել
-download.title=Բեռնել
-download_label=Բեռնել
-bookmark.title=Ընթացիկ տեսքով (պատճենել կամ բացել նոր պատուհանում)
-bookmark_label=Ընթացիկ տեսքը
+
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+# 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.
# Secondary toolbar and context menu
tools.title=Գործիքներ
tools_label=Գործիքներ
first_page.title=Անցնել առաջին էջին
-first_page.label=Անցնել առաջին էջին
first_page_label=Անցնել առաջին էջին
last_page.title=Անցնել վերջին էջին
-last_page.label=Անցնել վերջին էջին
last_page_label=Անցնել վերջին էջին
page_rotate_cw.title=Պտտել ըստ ժամացույցի սլաքի
-page_rotate_cw.label=Պտտել ըստ ժամացույցի սլաքի
page_rotate_cw_label=Պտտել ըստ ժամացույցի սլաքի
page_rotate_ccw.title=Պտտել հակառակ ժամացույցի սլաքի
-page_rotate_ccw.label=Պտտել հակառակ ժամացույցի սլաքի
page_rotate_ccw_label=Պտտել հակառակ ժամացույցի սլաքի
-hand_tool_enable.title=Միացնել ձեռքի գործիքը
-hand_tool_enable_label=Միացնել ձեռքի գործիքը
-hand_tool_disable.title=Անջատել ձեռքի գործիքը
-hand_tool_disable_label=ԱՆջատել ձեռքի գործիքը
+cursor_text_select_tool.title=Միացնել գրույթ ընտրելու գործիքը
+cursor_text_select_tool_label=Գրույթը ընտրելու գործիք
+cursor_hand_tool.title=Միացնել Ձեռքի գործիքը
+cursor_hand_tool_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.title=Փաստաթղթի հատկությունները...
-document_properties_label=Փաստաթղթի հատկությունները...
-document_properties_file_name=Ֆայլի անունը.
-document_properties_file_size=Ֆայլի չափը.
+document_properties.title=Փաստաթղթի հատկությունները…
+document_properties_label=Փաստաթղթի հատկությունները…
+document_properties_file_name=Նիշքի անունը.
+document_properties_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}} ԿԲ ({{size_b}} բայթ)
@@ -86,15 +98,43 @@ document_properties_creator=Ստեղծող.
document_properties_producer=PDF-ի հեղինակը.
document_properties_version=PDF-ի տարբերակը.
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=Արագ վեբ դիտում․
+document_properties_linearized_yes=Այո
+document_properties_linearized_no=Ոչ
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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Բացել/Փակել Կողային վահանակը
toggle_sidebar_label=Բացել/Փակել Կողային վահանակը
-outline.title=Ցուցադրել փաստաթղթի բովանդակությունը
-outline_label=Փաստաթղթի բովանդակությունը
+document_outline.title=Ցուցադրել փաստաթղթի ուրվագիծը (կրկնակի սեղմեք՝ միավորները ընդարձակելու/կոծկելու համար)
+document_outline_label=Փաստաթղթի բովանդակությունը
attachments.title=Ցուցադրել կցորդները
attachments_label=Կցորդներ
thumbs.title=Ցուցադրել Մանրապատկերը
@@ -102,6 +142,7 @@ thumbs_label=Մանրապատկերը
findbar.title=Գտնել փաստաթղթում
findbar_label=Որոնում
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +152,40 @@ thumb_page_title=Էջը {{page}}
thumb_page_canvas=Էջի մանրապատկերը {{page}}
# Find panel button title and messages
-find_label=Գտնել`
+find_input.title=Որոնում
+find_input.placeholder=Գտնել փաստաթղթում...
find_previous.title=Գտնել անրահայտության նախորդ հանդիպումը
find_previous_label=Նախորդը
find_next.title=Գտիր արտահայտության հաջորդ հանդիպումը
find_next_label=Հաջորդը
find_highlight=Գունանշել բոլորը
find_match_case_label=Մեծ(փոքր)ատառ հաշվի առնել
+find_entire_word_label=Ամբողջ բառերը
find_reached_top=Հասել եք փաստաթղթի վերևին, կշարունակվի ներքևից
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={[ հոգնակի(ընդհանուր) ]}
+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={[ հոգնակի (սահմանը) ]}
+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=Արտահայտությունը չգտնվեց
-# 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}})
-# 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
page_scale_width=Էջի լայնքը
page_scale_fit=Ձգել էջը
@@ -151,12 +196,19 @@ page_scale_actual=Իրական չափը
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Սխալ
+
+# Loading indicator messages
loading_error=Սխալ՝ PDF ֆայլը բացելիս։
-invalid_file_error=Սխալ կամ բնասված PDF ֆայլ:
+invalid_file_error=Սխալ կամ վնասված PDF ֆայլ:
missing_file_error=PDF ֆայլը բացակայում է:
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -164,10 +216,17 @@ unexpected_response_error=Սպասարկիչի անսպասելի պատասխա
text_annotation_type.alt=[{{type}} Ծանոթություն]
password_label=Մուտքագրեք PDF-ի գաղտնաբառը:
password_invalid=Գաղտնաբառը սխալ է: Կրկին փորձեք:
-password_ok=ԼԱՎ
+password_ok=Լավ
password_cancel=Չեղարկել
printing_not_supported=Զգուշացում. Տպելը ամբողջությամբ չի աջակցվում դիտարկիչի կողմից։
printing_not_ready=Զգուշացում. PDF-ը ամբողջությամբ չի բեռնավորվել տպելու համար:
web_fonts_disabled=Վեբ-տառատեսակները անջատված են. հնարավոր չէ օգտագործել ներկառուցված PDF տառատեսակները:
-document_colors_not_allowed=PDF փաստաթղթերին թույլատրված չէ օգտագործել իրենց սեփական գույները: 'Թույլատրել էջերին ընտրել իրենց սեփական գույները' ընտրանքը անջատված է դիտարկիչում:
+
+# Editor
+
+
+# Editor Parameters
+
+# Editor aria
+
diff --git a/static/pdf.js/locale/hye/viewer.properties b/static/pdf.js/locale/hye/viewer.properties
new file mode 100644
index 000000000..2e289516b
--- /dev/null
+++ b/static/pdf.js/locale/hye/viewer.properties
@@ -0,0 +1,229 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Նախորդ էջ
+previous_label=Նախորդը
+next.title=Յաջորդ էջ
+next_label=Յաջորդը
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=էջ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}}-ից\u0020
+# 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_label=Փոքրացնել
+zoom_in.title=Խոշորացնել
+zoom_in_label=Խոշորացնել
+zoom.title=Խոշորացում
+presentation_mode.title=Անցնել ներկայացման եղանակին
+presentation_mode_label=Ներկայացման եղանակ
+open_file.title=Բացել նիշքը
+open_file_label=Բացել
+print.title=Տպել
+print_label=Տպել
+
+# Secondary toolbar and context menu
+tools.title=Գործիքներ
+tools_label=Գործիքներ
+first_page.title=Գնալ դէպի առաջին էջ
+first_page_label=Գնալ դէպի առաջին էջ
+last_page.title=Գնալ դէպի վերջին էջ
+last_page_label=Գնալ դէպի վերջին էջ
+page_rotate_cw.title=Պտտել ժամացոյցի սլաքի ուղղութեամբ
+page_rotate_cw_label=Պտտել ժամացոյցի սլաքի ուղղութեամբ
+page_rotate_ccw.title=Պտտել ժամացոյցի սլաքի հակառակ ուղղութեամբ
+page_rotate_ccw_label=Պտտել ժամացոյցի սլաքի հակառակ ուղղութեամբ
+
+cursor_text_select_tool.title=Միացնել գրոյթ ընտրելու գործիքը
+cursor_text_select_tool_label=Գրուածք ընտրելու գործիք
+cursor_hand_tool.title=Միացնել ձեռքի գործիքը
+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.title=Փաստաթղթի հատկութիւնները…
+document_properties_label=Փաստաթղթի յատկութիւնները…
+document_properties_file_name=Նիշքի անունը․
+document_properties_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}} ԿԲ ({{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}} ՄԲ ({{size_b}} բայթ)
+document_properties_title=Վերնագիր
+document_properties_author=Հեղինակ․
+document_properties_subject=առարկայ
+document_properties_keywords=Հիմնաբառեր
+document_properties_creation_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_creator=Ստեղծող
+document_properties_producer=PDF-ի Արտադրողը.
+document_properties_version=PDF-ի տարբերակը.
+document_properties_page_count=Էջերի քանակը.
+document_properties_page_size=Էջի չափը.
+document_properties_page_size_unit_inches=ում
+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=Փակել
+
+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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Փոխարկել կողային վահանակը
+toggle_sidebar_notification2.title=Փոխանջատել կողմնասիւնը (փաստաթուղթը պարունակում է ուրուագիծ/կցորդներ/շերտեր)
+toggle_sidebar_label=Փոխարկել կողային վահանակը
+document_outline.title=Ցուցադրել փաստաթղթի ուրուագիծը (կրկնակի սեղմէք՝ միաւորները ընդարձակելու/կոծկելու համար)
+document_outline_label=Փաստաթղթի ուրուագիծ
+attachments.title=Ցուցադրել կցորդները
+attachments_label=Կցորդներ
+layers.title=Ցուցադրել շերտերը (կրկնահպել վերակայելու բոլոր շերտերը սկզբնադիր վիճակի)
+layers_label=Շերտեր
+thumbs.title=Ցուցադրել մանրապատկերը
+thumbs_label=Մանրապատկեր
+current_outline_item.title=Գտէք ընթացիկ գծագրման տարրը
+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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Էջը {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Էջի մանրապատկերը {{page}}
+
+# Find panel button title and messages
+find_input.title=Որոնում
+find_input.placeholder=Գտնել փաստաթղթում…
+find_previous.title=Գտնել արտայայտութեան նախորդ արտայայտութիւնը
+find_previous_label=Նախորդը
+find_next.title=Գտիր արտայայտութեան յաջորդ արտայայտութիւնը
+find_next_label=Հաջորդը
+find_highlight=Գունանշել բոլորը
+find_match_case_label=Հաշուի առնել հանգամանքը
+find_match_diacritics_label=Հնչիւնատարբերիչ նշանների համապատասխանեցում
+find_entire_word_label=Ամբողջ բառերը
+find_reached_top=Հասել եք փաստաթղթի վերեւին,շարունակել ներքեւից
+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=Արտայայտութիւնը չգտնուեց
+
+# Predefined zoom values
+page_scale_width=Էջի լայնութիւն
+page_scale_fit=Հարմարեցնել էջը
+page_scale_auto=Ինքնաշխատ խոշորացում
+page_scale_actual=Իրական չափը
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+loading_error=PDF նիշքը բացելիս սխալ է տեղի ունեցել։
+invalid_file_error=Սխալ կամ վնասուած PDF նիշք։
+missing_file_error=PDF նիշքը բացակաիւմ է։
+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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Ծանոթութիւն]
+password_label=Մուտքագրէք գաղտնաբառը այս PDF նիշքը բացելու համար
+password_invalid=Գաղտնաբառը սխալ է: Կրկին փորձէք:
+password_ok=Լաւ
+password_cancel=Չեղարկել
+
+printing_not_supported=Զգուշացում. Տպելը ամբողջութեամբ չի աջակցուում զննարկիչի կողմից։
+printing_not_ready=Զգուշացում. PDF֊ը ամբողջութեամբ չի բեռնաւորուել տպելու համար։
+web_fonts_disabled=Վեբ-տառատեսակները անջատուած են. հնարաւոր չէ աւգտագործել ներկառուցուած PDF տառատեսակները։
+
diff --git a/static/pdf.js/locale/ia/viewer.properties b/static/pdf.js/locale/ia/viewer.properties
new file mode 100644
index 000000000..a0e296e75
--- /dev/null
+++ b/static/pdf.js/locale/ia/viewer.properties
@@ -0,0 +1,284 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Pagina previe
+previous_label=Previe
+next.title=Pagina sequente
+next_label=Sequente
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pagina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
+
+zoom_out.title=Distantiar
+zoom_out_label=Distantiar
+zoom_in.title=Approximar
+zoom_in_label=Approximar
+zoom.title=Zoom
+presentation_mode.title=Excambiar a modo presentation
+presentation_mode_label=Modo presentation
+open_file.title=Aperir le file
+open_file_label=Aperir
+print.title=Imprimer
+print_label=Imprimer
+save.title=Salvar
+save_label=Salvar
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Discargar
+# 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=Discargar
+bookmark1.title=Pagina actual (vide le URL del pagina actual)
+bookmark1_label=Pagina actual
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Aperir 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=Aperir in app
+
+# Secondary toolbar and context menu
+tools.title=Instrumentos
+tools_label=Instrumentos
+first_page.title=Ir al prime pagina
+first_page_label=Ir al prime pagina
+last_page.title=Ir al prime pagina
+last_page_label=Ir al prime pagina
+page_rotate_cw.title=Rotar in senso horari
+page_rotate_cw_label=Rotar in senso horari
+page_rotate_ccw.title=Rotar in senso antihorari
+page_rotate_ccw_label=Rotar in senso antihorari
+
+cursor_text_select_tool.title=Activar le instrumento de selection de texto
+cursor_text_select_tool_label=Instrumento de selection de texto
+cursor_hand_tool.title=Activar le instrumento mano
+cursor_hand_tool_label=Instrumento mano
+
+scroll_page.title=Usar rolamento de pagina
+scroll_page_label=Rolamento de pagina
+scroll_vertical.title=Usar rolamento vertical
+scroll_vertical_label=Rolamento vertical
+scroll_horizontal.title=Usar rolamento horizontal
+scroll_horizontal_label=Rolamento horizontal
+scroll_wrapped.title=Usar rolamento incapsulate
+scroll_wrapped_label=Rolamento incapsulate
+
+spread_none.title=Non junger paginas dual
+spread_none_label=Sin paginas dual
+spread_odd.title=Junger paginas dual a partir de paginas con numeros impar
+spread_odd_label=Paginas dual impar
+spread_even.title=Junger paginas dual a partir de paginas con numeros par
+spread_even_label=Paginas dual par
+
+# Document properties dialog box
+document_properties.title=Proprietates del documento…
+document_properties_label=Proprietates del documento…
+document_properties_file_name=Nomine del file:
+document_properties_file_size=Dimension de file:
+# 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)
+# 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_title=Titulo:
+document_properties_author=Autor:
+document_properties_subject=Subjecto:
+document_properties_keywords=Parolas clave:
+document_properties_creation_date=Data de creation:
+document_properties_modification_date=Data de modification:
+# 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=Creator:
+document_properties_producer=Productor PDF:
+document_properties_version=Version PDF:
+document_properties_page_count=Numero de paginas:
+document_properties_page_size=Dimension del pagina:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertical
+document_properties_page_size_orientation_landscape=horizontal
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Littera
+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=Vista web rapide:
+document_properties_linearized_yes=Si
+document_properties_linearized_no=No
+document_properties_close=Clauder
+
+print_progress_message=Preparation del documento pro le impression…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Cancellar
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Monstrar/celar le barra lateral
+toggle_sidebar_notification2.title=Monstrar/celar le barra lateral (le documento contine structura/attachamentos/stratos)
+toggle_sidebar_label=Monstrar/celar le barra lateral
+document_outline.title=Monstrar le schema del documento (clic duple pro expander/contraher tote le elementos)
+document_outline_label=Schema del documento
+attachments.title=Monstrar le annexos
+attachments_label=Annexos
+layers.title=Monstrar stratos (clicca duple pro remontar tote le stratos al stato predefinite)
+layers_label=Stratos
+thumbs.title=Monstrar le vignettes
+thumbs_label=Vignettes
+current_outline_item.title=Trovar le elemento de structura actual
+current_outline_item_label=Elemento de structura actual
+findbar.title=Cercar in le documento
+findbar_label=Cercar
+
+additional_layers=Altere stratos
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Pagina {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Pagina {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Vignette del pagina {{page}}
+
+# Find panel button title and messages
+find_input.title=Cercar
+find_input.placeholder=Cercar in le documento…
+find_previous.title=Trovar le previe occurrentia del phrase
+find_previous_label=Previe
+find_next.title=Trovar le successive occurrentia del phrase
+find_next_label=Sequente
+find_highlight=Evidentiar toto
+find_match_case_label=Distinguer majusculas/minusculas
+find_match_diacritics_label=Differentiar diacriticos
+find_entire_word_label=Parolas integre
+find_reached_top=Initio del documento attingite, continuation ab fin
+find_reached_bottom=Fin del documento attingite, continuation ab initio
+# 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}} de {{total}} concordantia
+find_match_count[two]={{current}} de {{total}} concordantias
+find_match_count[few]={{current}} de {{total}} concordantias
+find_match_count[many]={{current}} de {{total}} concordantias
+find_match_count[other]={{current}} de {{total}} concordantias
+# 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]=Plus de {{limit}} concordantias
+find_match_count_limit[one]=Plus de {{limit}} concordantia
+find_match_count_limit[two]=Plus de {{limit}} concordantias
+find_match_count_limit[few]=Plus de {{limit}} concordantias
+find_match_count_limit[many]=Plus de {{limit}} correspondentias
+find_match_count_limit[other]=Plus de {{limit}} concordantias
+find_not_found=Phrase non trovate
+
+# Predefined zoom values
+page_scale_width=Plen largor del pagina
+page_scale_fit=Pagina integre
+page_scale_auto=Zoom automatic
+page_scale_actual=Dimension real
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Un error occurreva durante que on cargava le file PDF.
+invalid_file_error=File PDF corrumpite o non valide.
+missing_file_error=File PDF mancante.
+unexpected_response_error=Responsa del servitor inexpectate.
+rendering_error=Un error occurreva durante que on processava le pagina.
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Annotation]
+password_label=Insere le contrasigno pro aperir iste file PDF.
+password_invalid=Contrasigno invalide. Per favor retenta.
+password_ok=OK
+password_cancel=Cancellar
+
+printing_not_supported=Attention : le impression non es totalmente supportate per ce navigator.
+printing_not_ready=Attention: le file PDF non es integremente cargate pro lo poter imprimer.
+web_fonts_disabled=Le typos de litteras web es disactivate: impossibile usar le typos de litteras PDF incorporate.
+
+# Editor
+editor_free_text2.title=Texto
+editor_free_text2_label=Texto
+editor_ink2.title=Designar
+editor_ink2_label=Designar
+
+editor_stamp1.title=Adder o rediger imagines
+editor_stamp1_label=Adder o rediger imagines
+
+free_text2_default_content=Comenciar a scriber…
+
+# Editor Parameters
+editor_free_text_color=Color
+editor_free_text_size=Dimension
+editor_ink_color=Color
+editor_ink_thickness=Spissor
+editor_ink_opacity=Opacitate
+
+editor_stamp_add_image_label=Adder imagine
+editor_stamp_add_image.title=Adder imagine
+
+# Editor aria
+editor_free_text2_aria_label=Editor de texto
+editor_ink2_aria_label=Editor de designos
+editor_ink_canvas_aria_label=Imagine create per le usator
+
+# 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=Texto alternative
+editor_alt_text_edit_button_label=Rediger texto alternative
+editor_alt_text_dialog_label=Elige un option
+editor_alt_text_dialog_description=Le texto alternative (alt text) adjuta quando le personas non pote vider le imagine o quando illo non carga.
+editor_alt_text_add_description_label=Adder un description
+editor_alt_text_add_description_description=Mira a 1-2 phrases que describe le subjecto, parametro, o actiones.
+editor_alt_text_mark_decorative_label=Marcar como decorative
+editor_alt_text_mark_decorative_description=Isto es usate pro imagines ornamental, como bordaturas o filigranas.
+editor_alt_text_cancel_button=Cancellar
+editor_alt_text_save_button=Salvar
+editor_alt_text_decorative_tooltip=Marcate como decorative
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Per exemplo, “Un juvene sede a un tabula pro mangiar un repasto”
diff --git a/static/pdf.js/locale/id/viewer.properties b/static/pdf.js/locale/id/viewer.properties
index 762a472e6..6d82e9797 100644
--- a/static/pdf.js/locale/id/viewer.properties
+++ b/static/pdf.js/locale/id/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Sebelumnya
next.title=Laman Selanjutnya
next_label=Selanjutnya
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Laman:
-page_of=dari {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Halaman
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=dari {{pagesCount}}
+# 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}} dari {{pagesCount}})
zoom_out.title=Perkecil
zoom_out_label=Perkecil
@@ -36,31 +39,44 @@ open_file.title=Buka Berkas
open_file_label=Buka
print.title=Cetak
print_label=Cetak
-download.title=Unduh
-download_label=Unduh
-bookmark.title=Tampilan Sekarang (salin atau buka di jendela baru)
-bookmark_label=Tampilan Sekarang
+save.title=Simpan
+save_label=Simpan
+
+bookmark1.title=Laman Saat Ini (Lihat URL dari Laman Sekarang)
+bookmark1_label=Laman Saat Ini
# Secondary toolbar and context menu
tools.title=Alat
tools_label=Alat
first_page.title=Buka Halaman Pertama
-first_page.label=Ke Halaman Pertama
first_page_label=Buka Halaman Pertama
last_page.title=Buka Halaman Terakhir
-last_page.label=Ke Halaman Terakhir
last_page_label=Buka Halaman Terakhir
page_rotate_cw.title=Putar Searah Jarum Jam
-page_rotate_cw.label=Putar Searah Jarum Jam
page_rotate_cw_label=Putar Searah Jarum Jam
page_rotate_ccw.title=Putar Berlawanan Arah Jarum Jam
-page_rotate_ccw.label=Putar Berlawanan Arah Jarum Jam
page_rotate_ccw_label=Putar Berlawanan Arah Jarum Jam
-hand_tool_enable.title=Aktifkan alat tangan
-hand_tool_enable_label=Aktifkan alat tangan
-hand_tool_disable.title=Nonaktifkan alat tangan
-hand_tool_disable_label=Nonaktifkan alat tangan
+cursor_text_select_tool.title=Aktifkan Alat Seleksi Teks
+cursor_text_select_tool_label=Alat Seleksi Teks
+cursor_hand_tool.title=Aktifkan Alat Tangan
+cursor_hand_tool_label=Alat Tangan
+
+scroll_page.title=Gunakan Pengguliran Laman
+scroll_page_label=Pengguliran Laman
+scroll_vertical.title=Gunakan Penggeseran Vertikal
+scroll_vertical_label=Penggeseran Vertikal
+scroll_horizontal.title=Gunakan Penggeseran Horizontal
+scroll_horizontal_label=Penggeseran Horizontal
+scroll_wrapped.title=Gunakan Penggeseran Terapit
+scroll_wrapped_label=Penggeseran Terapit
+
+spread_none.title=Jangan gabungkan lembar halaman
+spread_none_label=Tidak Ada Lembaran
+spread_odd.title=Gabungkan lembar lamanan mulai dengan halaman ganjil
+spread_odd_label=Lembaran Ganjil
+spread_even.title=Gabungkan lembar halaman dimulai dengan halaman genap
+spread_even_label=Lembaran Genap
# Document properties dialog box
document_properties.title=Properti Dokumen…
@@ -86,22 +102,58 @@ document_properties_creator=Pembuat:
document_properties_producer=Pemroduksi PDF:
document_properties_version=Versi PDF:
document_properties_page_count=Jumlah Halaman:
+document_properties_page_size=Ukuran Laman:
+document_properties_page_size_unit_inches=inci
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=tegak
+document_properties_page_size_orientation_landscape=mendatar
+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=Tampilan Web Kilat:
+document_properties_linearized_yes=Ya
+document_properties_linearized_no=Tidak
document_properties_close=Tutup
+print_progress_message=Menyiapkan dokumen untuk pencetakan…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Batalkan
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Aktif/Nonaktifkan Bilah Samping
+toggle_sidebar_notification2.title=Aktif/Nonaktifkan Bilah Samping (dokumen berisi kerangka/lampiran/lapisan)
toggle_sidebar_label=Aktif/Nonaktifkan Bilah Samping
-outline.title=Buka Kerangka Dokumen
-outline_label=Kerangka Dokumen
+document_outline.title=Tampilkan Kerangka Dokumen (klik ganda untuk membentangkan/menciutkan semua item)
+document_outline_label=Kerangka Dokumen
attachments.title=Tampilkan Lampiran
attachments_label=Lampiran
+layers.title=Tampilkan Lapisan (klik ganda untuk mengatur ulang semua lapisan ke keadaan baku)
+layers_label=Lapisan
thumbs.title=Tampilkan Miniatur
thumbs_label=Miniatur
+current_outline_item.title=Cari Butir Ikhtisar Saat Ini
+current_outline_item_label=Butir Ikhtisar Saat Ini
findbar.title=Temukan di Dokumen
findbar_label=Temukan
+additional_layers=Lapisan Tambahan
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Halaman {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +163,41 @@ thumb_page_title=Laman {{page}}
thumb_page_canvas=Miniatur Laman {{page}}
# Find panel button title and messages
-find_label=Temukan:
+find_input.title=Temukan
+find_input.placeholder=Temukan di dokumen…
find_previous.title=Temukan kata sebelumnya
find_previous_label=Sebelumnya
find_next.title=Temukan lebih lanjut
find_next_label=Selanjutnya
find_highlight=Sorot semuanya
find_match_case_label=Cocokkan BESAR/kecil
+find_match_diacritics_label=Pencocokan Diakritik
+find_entire_word_label=Seluruh teks
find_reached_top=Sampai di awal dokumen, dilanjutkan dari bawah
find_reached_bottom=Sampai di akhir dokumen, dilanjutkan dari atas
+# 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}} dari {{total}} hasil
+find_match_count[two]={{current}} dari {{total}} hasil
+find_match_count[few]={{current}} dari {{total}} hasil
+find_match_count[many]={{current}} dari {{total}} hasil
+find_match_count[other]={{current}} dari {{total}} hasil
+# 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]=Ditemukan lebih dari {{limit}}
+find_match_count_limit[one]=Ditemukan lebih dari {{limit}}
+find_match_count_limit[two]=Ditemukan lebih dari {{limit}}
+find_match_count_limit[few]=Ditemukan lebih dari {{limit}}
+find_match_count_limit[many]=Ditemukan lebih dari {{limit}}
+find_match_count_limit[other]=Ditemukan lebih dari {{limit}}
find_not_found=Frasa tidak ditemukan
-# Error panel labels
-error_more_info=Lebih Banyak Informasi
-error_less_info=Lebih Sedikit Informasi
-error_close=Tutup
-# 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=Pesan: {{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=Berkas: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Baris: {{line}}
-rendering_error=Galat terjadi saat merender laman.
-
# Predefined zoom values
page_scale_width=Lebar Laman
page_scale_fit=Muat Laman
@@ -150,13 +207,17 @@ page_scale_actual=Ukuran Asli
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Galat
loading_error=Galat terjadi saat memuat PDF.
invalid_file_error=Berkas PDF tidak valid atau rusak.
missing_file_error=Berkas PDF tidak ada.
unexpected_response_error=Balasan server yang tidak diharapkan.
+rendering_error=Galat terjadi saat merender laman.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +231,23 @@ password_cancel=Batal
printing_not_supported=Peringatan: Pencetakan tidak didukung secara lengkap pada peramban ini.
printing_not_ready=Peringatan: Berkas PDF masih belum dimuat secara lengkap untuk dapat dicetak.
web_fonts_disabled=Font web dinonaktifkan: tidak dapat menggunakan font PDF yang tersemat.
-document_colors_not_allowed=Dokumen PDF tidak diizinkan untuk menggunakan warnanya sendiri karena setelan 'Izinkan laman memilih warna sendiri' dinonaktifkan pada pengaturan.
+
+# Editor
+editor_free_text2.title=Teks
+editor_free_text2_label=Teks
+editor_ink2.title=Gambar
+editor_ink2_label=Gambar
+
+free_text2_default_content=Mulai mengetik…
+
+# Editor Parameters
+editor_free_text_color=Warna
+editor_free_text_size=Ukuran
+editor_ink_color=Warna
+editor_ink_thickness=Ketebalan
+editor_ink_opacity=Opasitas
+
+# Editor aria
+editor_free_text2_aria_label=Editor Teks
+editor_ink2_aria_label=Editor Gambar
+editor_ink_canvas_aria_label=Gambar yang dibuat pengguna
diff --git a/static/pdf.js/locale/is/viewer.properties b/static/pdf.js/locale/is/viewer.properties
index e969f4eb9..4b40c1b68 100644
--- a/static/pdf.js/locale/is/viewer.properties
+++ b/static/pdf.js/locale/is/viewer.properties
@@ -18,17 +18,20 @@ previous_label=Fyrri
next.title=Næsta síða
next_label=Næsti
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Síða:
-page_of=af {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Síða
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=af {{pagesCount}}
+# 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}} af {{pagesCount}})
-zoom_out.title=Minnka
-zoom_out_label=Minnka
-zoom_in.title=Stækka
-zoom_in_label=Stækka
+zoom_out.title=Minnka aðdrátt
+zoom_out_label=Minnka aðdrátt
+zoom_in.title=Auka aðdrátt
+zoom_in_label=Auka aðdrátt
zoom.title=Aðdráttur
presentation_mode.title=Skipta yfir á kynningarham
presentation_mode_label=Kynningarhamur
@@ -36,31 +39,52 @@ open_file.title=Opna skrá
open_file_label=Opna
print.title=Prenta
print_label=Prenta
-download.title=Hala niður
-download_label=Hala niður
-bookmark.title=Núverandi sýn (afritaðu eða opnaðu í nýjum glugga)
-bookmark_label=Núverandi sýn
+save.title=Vista
+save_label=Vista
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Sækja
+# 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=Sækja
+bookmark1.title=Núverandi síða (Skoða vefslóð frá núverandi síðu)
+bookmark1_label=Núverandi síða
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Opna í smáforriti
+# 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=Opna í smáforriti
# Secondary toolbar and context menu
tools.title=Verkfæri
tools_label=Verkfæri
first_page.title=Fara á fyrstu síðu
-first_page.label=Fara á fyrstu síðu
first_page_label=Fara á fyrstu síðu
last_page.title=Fara á síðustu síðu
-last_page.label=Fara á síðustu síðu
last_page_label=Fara á síðustu síðu
page_rotate_cw.title=Snúa réttsælis
-page_rotate_cw.label=Snúa réttsælis
page_rotate_cw_label=Snúa réttsælis
page_rotate_ccw.title=Snúa rangsælis
-page_rotate_ccw.label=Snúa rangsælis
page_rotate_ccw_label=Snúa rangsælis
-hand_tool_enable.title=Virkja handarverkfæri
-hand_tool_enable_label=Virkja handarverkfæri
-hand_tool_disable.title=Gera handarverkfæri óvirkt
-hand_tool_disable_label=Gera handarverkfæri óvirkt
+cursor_text_select_tool.title=Virkja textavalsáhald
+cursor_text_select_tool_label=Textavalsáhald
+cursor_hand_tool.title=Virkja handarverkfæri
+cursor_hand_tool_label=Handarverkfæri
+
+scroll_page.title=Nota síðuskrun
+scroll_page_label=Síðuskrun
+scroll_vertical.title=Nota lóðrétt skrun
+scroll_vertical_label=Lóðrétt skrun
+scroll_horizontal.title=Nota lárétt skrun
+scroll_horizontal_label=Lárétt skrun
+scroll_wrapped.title=Nota línuskipt síðuskrun
+scroll_wrapped_label=Línuskipt síðuskrun
+
+spread_none.title=Ekki taka þátt í dreifingu síðna
+spread_none_label=Engin dreifing
+spread_odd.title=Taka þátt í dreifingu síðna með oddatölum
+spread_odd_label=Oddatöludreifing
+spread_even.title=Taktu þátt í dreifingu síðna með jöfnuntölum
+spread_even_label=Jafnatöludreifing
# Document properties dialog box
document_properties.title=Eiginleikar skjals…
@@ -86,22 +110,58 @@ document_properties_creator=Höfundur:
document_properties_producer=PDF framleiðandi:
document_properties_version=PDF útgáfa:
document_properties_page_count=Blaðsíðufjöldi:
+document_properties_page_size=Stærð síðu:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=skammsnið
+document_properties_page_size_orientation_landscape=langsnið
+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=Fljótleg vefskoðun:
+document_properties_linearized_yes=Já
+document_properties_linearized_no=Nei
document_properties_close=Loka
+print_progress_message=Undirbý skjal fyrir prentun…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Hætta við
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-toggle_sidebar.title=Víxla hliðslá
-toggle_sidebar_label=Víxla hliðslá
-outline.title=Sýna efniskipan skjals
-outline_label=Efnisskipan skjals
+toggle_sidebar.title=Víxla hliðarspjaldi af/á
+toggle_sidebar_notification2.title=Víxla hliðarslá (skjal inniheldur yfirlit/viðhengi/lög)
+toggle_sidebar_label=Víxla hliðarspjaldi af/á
+document_outline.title=Sýna yfirlit skjals (tvísmelltu til að opna/loka öllum hlutum)
+document_outline_label=Efnisskipan skjals
attachments.title=Sýna viðhengi
attachments_label=Viðhengi
+layers.title=Birta lög (tvísmelltu til að endurstilla öll lög í sjálfgefna stöðu)
+layers_label=Lög
thumbs.title=Sýna smámyndir
thumbs_label=Smámyndir
+current_outline_item.title=Finna núverandi atriði efnisskipunar
+current_outline_item_label=Núverandi atriði efnisskipunar
findbar.title=Leita í skjali
findbar_label=Leita
+additional_layers=Viðbótarlög
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Síða {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Síða {{page}}
thumb_page_canvas=Smámynd af síðu {{page}}
# Find panel button title and messages
-find_label=Leita:
+find_input.title=Leita
+find_input.placeholder=Leita í skjali…
find_previous.title=Leita að fyrra tilfelli þessara orða
find_previous_label=Fyrri
find_next.title=Leita að næsta tilfelli þessara orða
find_next_label=Næsti
find_highlight=Lita allt
find_match_case_label=Passa við stafstöðu
+find_match_diacritics_label=Passa við broddstafi
+find_entire_word_label=Heil orð
find_reached_top=Náði efst í skjal, held áfram neðst
find_reached_bottom=Náði enda skjals, held áfram efst
+# 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}} af {{total}} niðurstöðu
+find_match_count[two]={{current}} af {{total}} niðurstöðum
+find_match_count[few]={{current}} af {{total}} niðurstöðum
+find_match_count[many]={{current}} af {{total}} niðurstöðum
+find_match_count[other]={{current}} af {{total}} niðurstöðum
+# 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]=Fleiri en {{limit}} niðurstöður
+find_match_count_limit[one]=Fleiri en {{limit}} niðurstaða
+find_match_count_limit[two]=Fleiri en {{limit}} niðurstöður
+find_match_count_limit[few]=Fleiri en {{limit}} niðurstöður
+find_match_count_limit[many]=Fleiri en {{limit}} niðurstöður
+find_match_count_limit[other]=Fleiri en {{limit}} niðurstöður
find_not_found=Fann ekki orðið
-# Error panel labels
-error_more_info=Meiri upplýsingar
-error_less_info=Minni upplýsingar
-error_close=Loka
-# 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=Skilaboð: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stafli: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Skrá: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Lína: {{line}}
-rendering_error=Upp kom villa við að birta síðuna.
-
# Predefined zoom values
page_scale_width=Síðubreidd
page_scale_fit=Passa á síðu
@@ -151,11 +216,15 @@ page_scale_actual=Raunstærð
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Villa
loading_error=Villa kom upp við að hlaða inn PDF.
invalid_file_error=Ógild eða skemmd PDF skrá.
missing_file_error=Vantar PDF skrá.
unexpected_response_error=Óvænt svar frá netþjóni.
+rendering_error=Upp kom villa við að birta síðuna.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,46 @@ password_cancel=Hætta við
printing_not_supported=Aðvörun: Prentun er ekki með fyllilegan stuðning á þessum vafra.
printing_not_ready=Aðvörun: Ekki er búið að hlaða inn allri PDF skránni fyrir prentun.
web_fonts_disabled=Vef leturgerðir eru óvirkar: get ekki notað innbyggðar PDF leturgerðir.
-document_colors_not_allowed=PDF skjöl hafa ekki leyfi til að nota sína eigin liti: 'Leyfa síðum að velja eigin liti' er óvirkt í vafranum.
+
+# Editor
+editor_free_text2.title=Texti
+editor_free_text2_label=Texti
+editor_ink2.title=Teikna
+editor_ink2_label=Teikna
+
+editor_stamp1.title=Bæta við eða breyta myndum
+editor_stamp1_label=Bæta við eða breyta myndum
+
+free_text2_default_content=Byrjaðu að skrifa…
+
+# Editor Parameters
+editor_free_text_color=Litur
+editor_free_text_size=Stærð
+editor_ink_color=Litur
+editor_ink_thickness=Þykkt
+editor_ink_opacity=Ógegnsæi
+
+editor_stamp_add_image_label=Bæta við mynd
+editor_stamp_add_image.title=Bæta við mynd
+
+# Editor aria
+editor_free_text2_aria_label=Textaritill
+editor_ink2_aria_label=Teikniritill
+editor_ink_canvas_aria_label=Mynd gerð af notanda
+
+# 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-varatexti
+editor_alt_text_edit_button_label=Breyta alt-varatexta
+editor_alt_text_dialog_label=Veldu valkost
+editor_alt_text_dialog_description=Alt-varatexti (auka-myndatexti) hjálpar þegar fólk getur ekki séð myndina eða þegar hún hleðst ekki inn.
+editor_alt_text_add_description_label=Bættu við lýsingu
+editor_alt_text_add_description_description=Reyndu að takmarka þetta við 1-2 setningar sem lýsa efninu, umhverfi eða aðgerðum.
+editor_alt_text_mark_decorative_label=Merkja sem skraut
+editor_alt_text_mark_decorative_description=Þetta er notað fyrir skrautmyndir, eins og borða eða vatnsmerki.
+editor_alt_text_cancel_button=Hætta við
+editor_alt_text_save_button=Vista
+editor_alt_text_decorative_tooltip=Merkt sem skraut
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Til dæmis: „Ungur maður sest við borð til að snæða máltíð“
diff --git a/static/pdf.js/locale/it/viewer.properties b/static/pdf.js/locale/it/viewer.properties
index 9ddd35b46..990642486 100644
--- a/static/pdf.js/locale/it/viewer.properties
+++ b/static/pdf.js/locale/it/viewer.properties
@@ -1,111 +1,284 @@
-# 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/.
+# 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.
-previous.title = Pagina precedente
-previous_label = Precedente
-next.title = Pagina successiva
-next_label = Successiva
-page_label = Pagina:
-page_of = di {{pageCount}}
-zoom_out.title = Riduci zoom
-zoom_out_label = Riduci zoom
-zoom_in.title = Aumenta zoom
-zoom_in_label = Aumenta zoom
-zoom.title = Zoom
-presentation_mode.title = Passa alla modalità presentazione
-presentation_mode_label = Modalità presentazione
-open_file.title = Apri file
-open_file_label = Apri
-print.title = Stampa
-print_label = Stampa
-download.title = Scarica questo documento
-download_label = Download
-bookmark.title = Visualizzazione corrente (copia o apri in una nuova finestra)
-bookmark_label = Visualizzazione corrente
-tools.title = Strumenti
-tools_label = Strumenti
-first_page.title = Vai alla prima pagina
-first_page.label = Vai alla prima pagina
-first_page_label = Vai alla prima pagina
-last_page.title = Vai all’ultima pagina
-last_page.label = Vai all’ultima pagina
-last_page_label = Vai all’ultima pagina
-page_rotate_cw.title = Ruota in senso orario
-page_rotate_cw.label = Ruota in senso orario
-page_rotate_cw_label = Ruota in senso orario
-page_rotate_ccw.title = Ruota in senso antiorario
-page_rotate_ccw.label = Ruota in senso antiorario
-page_rotate_ccw_label = Ruota in senso antiorario
-hand_tool_enable.title = Attiva strumento mano
-hand_tool_enable_label = Attiva strumento mano
-hand_tool_disable.title = Disattiva strumento mano
-hand_tool_disable_label = Disattiva strumento mano
-document_properties.title = Proprietà del documento…
-document_properties_label = Proprietà del documento…
-document_properties_file_name = Nome file:
-document_properties_file_size = Dimensione file:
-document_properties_kb = {{size_kb}} kB ({{size_b}} byte)
-document_properties_mb = {{size_mb}} MB ({{size_b}} byte)
-document_properties_title = Titolo:
-document_properties_author = Autore:
-document_properties_subject = Oggetto:
-document_properties_keywords = Parole chiave:
-document_properties_creation_date = Data creazione:
-document_properties_modification_date = Data modifica:
-document_properties_date_string = {{date}}, {{time}}
-document_properties_creator = Autore originale:
-document_properties_producer = Produttore PDF:
-document_properties_version = Versione PDF:
-document_properties_page_count = Conteggio pagine:
-document_properties_close = Chiudi
-toggle_sidebar.title = Attiva/disattiva barra laterale
-toggle_sidebar_label = Attiva/disattiva barra laterale
-outline.title = Visualizza la struttura del documento
-outline_label = Struttura documento
-attachments.title = Visualizza allegati
-attachments_label = Allegati
-thumbs.title = Mostra le miniature
-thumbs_label = Miniature
-findbar.title = Trova nel documento
-findbar_label = Trova
-thumb_page_title = Pagina {{page}}
-thumb_page_canvas = Miniatura della pagina {{page}}
-find_label = Trova:
-find_previous.title = Trova l’occorrenza precedente del testo da cercare
-find_previous_label = Precedente
-find_next.title = Trova l’occorrenza successiva del testo da cercare
-find_next_label = Successivo
-find_highlight = Evidenzia
-find_match_case_label = Maiuscole/minuscole
-find_reached_top = Raggiunto l’inizio della pagina, continua dalla fine
-find_reached_bottom = Raggiunta la fine della pagina, continua dall’inizio
-find_not_found = Testo non trovato
-error_more_info = Ulteriori informazioni
-error_less_info = Nascondi dettagli
-error_close = Chiudi
-error_version_info = PDF.js v{{version}} (build: {{build}})
-error_message = Messaggio: {{message}}
-error_stack = Stack: {{stack}}
-error_file = File: {{file}}
-error_line = Riga: {{line}}
-rendering_error = Si è verificato un errore durante il rendering della pagina.
-page_scale_width = Larghezza pagina
-page_scale_fit = Adatta a una pagina
-page_scale_auto = Zoom automatico
-page_scale_actual = Dimensioni effettive
-page_scale_percent = {{scale}}%
-loading_error_indicator = Errore
-loading_error = Si è verificato un errore durante il caricamento del PDF.
-invalid_file_error = File PDF non valido o danneggiato.
-missing_file_error = File PDF non disponibile.
-unexpected_response_error = Risposta imprevista del server
-text_annotation_type.alt = [Annotazione: {{type}}]
-password_label = Inserire la password per aprire questo file PDF.
-password_invalid = Password non corretta. Riprovare.
-password_ok = OK
-password_cancel = Annulla
-printing_not_supported = Attenzione: la stampa non è completamente supportata da questo browser.
-printing_not_ready = Attenzione: il PDF non è ancora stato caricato completamente per la stampa.
-web_fonts_disabled = I web font risultano disattivati: impossibile utilizzare i caratteri inclusi nel PDF.
-document_colors_not_allowed = Non è possibile visualizzare i colori originali definiti nel file PDF: l’opzione del browser “Consenti alle pagine di scegliere i propri colori invece di quelli impostati” è disattivata.
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Pagina precedente
+previous_label=Precedente
+next.title=Pagina successiva
+next_label=Successiva
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pagina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=di {{pagesCount}}
+# 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}} di {{pagesCount}})
+
+zoom_out.title=Riduci zoom
+zoom_out_label=Riduci zoom
+zoom_in.title=Aumenta zoom
+zoom_in_label=Aumenta zoom
+zoom.title=Zoom
+presentation_mode.title=Passa alla modalità presentazione
+presentation_mode_label=Modalità presentazione
+open_file.title=Apri file
+open_file_label=Apri
+print.title=Stampa
+print_label=Stampa
+save.title=Salva
+save_label=Salva
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Scarica
+# 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=Scarica
+bookmark1.title=Pagina corrente (mostra URL della pagina corrente)
+bookmark1_label=Pagina corrente
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Apri 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=Apri in app
+
+# Secondary toolbar and context menu
+tools.title=Strumenti
+tools_label=Strumenti
+first_page.title=Vai alla prima pagina
+first_page_label=Vai alla prima pagina
+last_page.title=Vai all’ultima pagina
+last_page_label=Vai all’ultima pagina
+page_rotate_cw.title=Ruota in senso orario
+page_rotate_cw_label=Ruota in senso orario
+page_rotate_ccw.title=Ruota in senso antiorario
+page_rotate_ccw_label=Ruota in senso antiorario
+
+cursor_text_select_tool.title=Attiva strumento di selezione testo
+cursor_text_select_tool_label=Strumento di selezione testo
+cursor_hand_tool.title=Attiva strumento mano
+cursor_hand_tool_label=Strumento mano
+
+scroll_page.title=Utilizza scorrimento pagine
+scroll_page_label=Scorrimento pagine
+scroll_vertical.title=Scorri le pagine in verticale
+scroll_vertical_label=Scorrimento verticale
+scroll_horizontal.title=Scorri le pagine in orizzontale
+scroll_horizontal_label=Scorrimento orizzontale
+scroll_wrapped.title=Scorri le pagine in verticale, disponendole da sinistra a destra e andando a capo automaticamente
+scroll_wrapped_label=Scorrimento con a capo automatico
+
+spread_none.title=Non raggruppare pagine
+spread_none_label=Nessun raggruppamento
+spread_odd.title=Crea gruppi di pagine che iniziano con numeri di pagina dispari
+spread_odd_label=Raggruppamento dispari
+spread_even.title=Crea gruppi di pagine che iniziano con numeri di pagina pari
+spread_even_label=Raggruppamento pari
+
+# Document properties dialog box
+document_properties.title=Proprietà del documento…
+document_properties_label=Proprietà del documento…
+document_properties_file_name=Nome file:
+document_properties_file_size=Dimensione file:
+# 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}} byte)
+# 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}} byte)
+document_properties_title=Titolo:
+document_properties_author=Autore:
+document_properties_subject=Oggetto:
+document_properties_keywords=Parole chiave:
+document_properties_creation_date=Data creazione:
+document_properties_modification_date=Data modifica:
+# 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=Autore originale:
+document_properties_producer=Produttore PDF:
+document_properties_version=Versione PDF:
+document_properties_page_count=Conteggio pagine:
+document_properties_page_size=Dimensioni pagina:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=verticale
+document_properties_page_size_orientation_landscape=orizzontale
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Lettera
+document_properties_page_size_name_legal=Legale
+# 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=Visualizzazione web veloce:
+document_properties_linearized_yes=Sì
+document_properties_linearized_no=No
+document_properties_close=Chiudi
+
+print_progress_message=Preparazione documento per la stampa…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Annulla
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Attiva/disattiva barra laterale
+toggle_sidebar_notification2.title=Attiva/disattiva barra laterale (il documento contiene struttura/allegati/livelli)
+toggle_sidebar_label=Attiva/disattiva barra laterale
+document_outline.title=Visualizza la struttura del documento (doppio clic per visualizzare/comprimere tutti gli elementi)
+document_outline_label=Struttura documento
+attachments.title=Visualizza allegati
+attachments_label=Allegati
+layers.title=Visualizza livelli (doppio clic per ripristinare tutti i livelli allo stato predefinito)
+layers_label=Livelli
+thumbs.title=Mostra le miniature
+thumbs_label=Miniature
+current_outline_item.title=Trova elemento struttura corrente
+current_outline_item_label=Elemento struttura corrente
+findbar.title=Trova nel documento
+findbar_label=Trova
+
+additional_layers=Livelli aggiuntivi
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Pagina {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Pagina {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura della pagina {{page}}
+
+# Find panel button title and messages
+find_input.title=Trova
+find_input.placeholder=Trova nel documento…
+find_previous.title=Trova l’occorrenza precedente del testo da cercare
+find_previous_label=Precedente
+find_next.title=Trova l’occorrenza successiva del testo da cercare
+find_next_label=Successivo
+find_highlight=Evidenzia
+find_match_case_label=Maiuscole/minuscole
+find_match_diacritics_label=Segni diacritici
+find_entire_word_label=Parole intere
+find_reached_top=Raggiunto l’inizio della pagina, continua dalla fine
+find_reached_bottom=Raggiunta la fine della pagina, continua dall’inizio
+# 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}} di {{total}} corrispondenza
+find_match_count[two]={{current}} di {{total}} corrispondenze
+find_match_count[few]={{current}} di {{total}} corrispondenze
+find_match_count[many]={{current}} di {{total}} corrispondenze
+find_match_count[other]={{current}} di {{total}} corrispondenze
+# 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]=Più di {{limit}} corrispondenze
+find_match_count_limit[one]=Più di {{limit}} corrispondenza
+find_match_count_limit[two]=Più di {{limit}} corrispondenze
+find_match_count_limit[few]=Più di {{limit}} corrispondenze
+find_match_count_limit[many]=Più di {{limit}} corrispondenze
+find_match_count_limit[other]=Più di {{limit}} corrispondenze
+find_not_found=Testo non trovato
+
+# Predefined zoom values
+page_scale_width=Larghezza pagina
+page_scale_fit=Adatta a una pagina
+page_scale_auto=Zoom automatico
+page_scale_actual=Dimensioni effettive
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Si è verificato un errore durante il caricamento del PDF.
+invalid_file_error=File PDF non valido o danneggiato.
+missing_file_error=File PDF non disponibile.
+unexpected_response_error=Risposta imprevista del server
+rendering_error=Si è verificato un errore durante il rendering della pagina.
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Annotazione: {{type}}]
+password_label=Inserire la password per aprire questo file PDF.
+password_invalid=Password non corretta. Riprovare.
+password_ok=OK
+password_cancel=Annulla
+
+printing_not_supported=Attenzione: la stampa non è completamente supportata da questo browser.
+printing_not_ready=Attenzione: il PDF non è ancora stato caricato completamente per la stampa.
+web_fonts_disabled=I web font risultano disattivati: impossibile utilizzare i caratteri incorporati nel PDF.
+
+# Editor
+editor_free_text2.title=Testo
+editor_free_text2_label=Testo
+editor_ink2.title=Disegno
+editor_ink2_label=Disegno
+
+editor_stamp1.title=Aggiungi o rimuovi immagine
+editor_stamp1_label=Aggiungi o rimuovi immagine
+
+free_text2_default_content=Inizia a digitare…
+
+# Editor Parameters
+editor_free_text_color=Colore
+editor_free_text_size=Dimensione
+editor_ink_color=Colore
+editor_ink_thickness=Spessore
+editor_ink_opacity=Opacità
+
+editor_stamp_add_image_label=Aggiungi immagine
+editor_stamp_add_image.title=Aggiungi immagine
+
+# Editor aria
+editor_free_text2_aria_label=Editor di testo
+editor_ink2_aria_label=Editor disegni
+editor_ink_canvas_aria_label=Immagine creata dall’utente
+
+# 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=Testo alternativo
+editor_alt_text_edit_button_label=Modifica testo alternativo
+editor_alt_text_dialog_label=Scegli un’opzione
+editor_alt_text_dialog_description=Il testo alternativo (“alt text”) aiuta quando le persone non possono vedere l’immagine o quando l’immagine non viene caricata.
+editor_alt_text_add_description_label=Aggiungi una descrizione
+editor_alt_text_add_description_description=Punta a una o due frasi che descrivono l’argomento, l’ambientazione o le azioni.
+editor_alt_text_mark_decorative_label=Contrassegna come decorativa
+editor_alt_text_mark_decorative_description=Viene utilizzato per immagini ornamentali, come bordi o filigrane.
+editor_alt_text_cancel_button=Annulla
+editor_alt_text_save_button=Salva
+editor_alt_text_decorative_tooltip=Contrassegnata come decorativa
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Ad esempio, “Un giovane si siede a tavola per mangiare”
diff --git a/static/pdf.js/locale/ja/viewer.properties b/static/pdf.js/locale/ja/viewer.properties
index 4a4997159..797e6e6ea 100644
--- a/static/pdf.js/locale/ja/viewer.properties
+++ b/static/pdf.js/locale/ja/viewer.properties
@@ -18,12 +18,15 @@ previous_label=前へ
next.title=次のページへ進みます
next_label=次へ
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=ページ:
-page_of=/ {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=ページ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=/ {{pagesCount}}
+# 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_label=縮小
@@ -32,108 +35,176 @@ zoom_in_label=拡大
zoom.title=拡大/縮小
presentation_mode.title=プレゼンテーションモードに切り替えます
presentation_mode_label=プレゼンテーションモード
-open_file.title=ファイルを指定して開きます
+open_file.title=ファイルを開きます
open_file_label=開く
print.title=印刷します
print_label=印刷
-download.title=ダウンロードします
-download_label=ダウンロード
-bookmark.title=現在のビューの URL です (コピーまたは新しいウィンドウに開く)
-bookmark_label=現在のビュー
+save.title=保存します
+save_label=保存
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
tools.title=ツール
tools_label=ツール
first_page.title=最初のページへ移動します
-first_page.label=最初のページへ移動
first_page_label=最初のページへ移動
last_page.title=最後のページへ移動します
-last_page.label=最後のページへ移動
last_page_label=最後のページへ移動
page_rotate_cw.title=ページを右へ回転します
-page_rotate_cw.label=右回転
page_rotate_cw_label=右回転
page_rotate_ccw.title=ページを左へ回転します
-page_rotate_ccw.label=左回転
page_rotate_ccw_label=左回転
-hand_tool_enable.title=手のひらツールを有効にします
-hand_tool_enable_label=手のひらツールを有効にする
-hand_tool_disable.title=手のひらツールを無効にします
-hand_tool_disable_label=手のひらツールを無効にする
+cursor_text_select_tool.title=テキスト選択ツールを有効にします
+cursor_text_select_tool_label=テキスト選択ツール
+cursor_hand_tool.title=手のひらツールを有効にします
+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.title=文書のプロパティ...
document_properties_label=文書のプロパティ...
document_properties_file_name=ファイル名:
document_properties_file_size=ファイルサイズ:
-document_properties_kb={{size_kb}} KB ({{size_b}} bytes)
-document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
+# 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}} バイト)
+# 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_author=作成者:
document_properties_subject=件名:
document_properties_keywords=キーワード:
document_properties_creation_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_creator=アプリケーション:
document_properties_producer=PDF 作成:
document_properties_version=PDF のバージョン:
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=閉じる
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=サイドバー表示を切り替えます
+toggle_sidebar_notification2.title=サイドバー表示を切り替えます (文書に含まれるアウトライン / 添付 / レイヤー)
toggle_sidebar_label=サイドバーの切り替え
-outline.title=文書の目次を表示します
-outline_label=文書の目次
+document_outline.title=文書の目次を表示します (ダブルクリックで項目を開閉します)
+document_outline_label=文書の目次
attachments.title=添付ファイルを表示します
attachments_label=添付ファイル
+layers.title=レイヤーを表示します (ダブルクリックですべてのレイヤーが初期状態に戻ります)
+layers_label=レイヤー
thumbs.title=縮小版を表示します
thumbs_label=縮小版
+current_outline_item.title=現在のアウトライン項目を検索
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title={{page}} ページ
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
-thumb_page_canvas=ページの縮小版 {{page}}
+thumb_page_canvas={{page}} ページの縮小版
# Find panel button title and messages
-find_label=検索:
-find_previous.title=指定文字列に一致する 1 つ前の部分を検索します
+find_input.title=検索
+find_input.placeholder=文書内を検索...
+find_previous.title=現在より前の位置で指定文字列が現れる部分を検索します
find_previous_label=前へ
-find_next.title=指定文字列に一致する次の部分を検索します
+find_next.title=現在より後の位置で指定文字列が現れる部分を検索します
find_next_label=次へ
find_highlight=すべて強調表示
find_match_case_label=大文字/小文字を区別
-find_reached_top=文書先頭に到達したので末尾に戻って検索しました。
-find_reached_bottom=文書末尾に到達したので先頭に戻って検索しました。
-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}})
-# 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=ページのレンダリング中にエラーが発生しました
+find_match_diacritics_label=発音区別符号を区別
+find_entire_word_label=単語一致
+find_reached_top=文書先頭に到達したので末尾から続けて検索します
+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]={{total}} 件中 {{current}} 件目
+find_match_count[two]={{total}} 件中 {{current}} 件目
+find_match_count[few]={{total}} 件中 {{current}} 件目
+find_match_count[many]={{total}} 件中 {{current}} 件目
+find_match_count[other]={{total}} 件中 {{current}} 件目
+# 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=見つかりませんでした
# Predefined zoom values
page_scale_width=幅に合わせる
@@ -145,11 +216,15 @@ page_scale_actual=実際のサイズ
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=エラー
-loading_error=PDF の読み込み中にエラーが発生しました
-invalid_file_error=無効または破損した PDF ファイル
+loading_error=PDF の読み込み中にエラーが発生しました。
+invalid_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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -161,7 +236,35 @@ password_invalid=無効なパスワードです。もう一度やり直してく
password_ok=OK
password_cancel=キャンセル
-printing_not_supported=警告: このブラウザでは印刷が完全にサポートされていません
-printing_not_ready=警告: PDF を印刷するための読み込みが終了していません
-web_fonts_disabled=Web フォントが無効になっています: 埋め込まれた PDF のフォントを使用できません
-document_colors_not_allowed=PDF 文書は、Web ページが指定した配色を使用することができません: 'Web ページが指定した配色' はブラウザで無効になっています。
+printing_not_supported=警告: このブラウザーでは印刷が完全にサポートされていません。
+printing_not_ready=警告: PDF を印刷するための読み込みが終了していません。
+web_fonts_disabled=ウェブフォントが無効になっています: 埋め込まれた PDF のフォントを使用できません。
+
+# 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=ユーザー作成画像
diff --git a/static/pdf.js/locale/ka/viewer.properties b/static/pdf.js/locale/ka/viewer.properties
index 84bdd5255..9ea7a963d 100644
--- a/static/pdf.js/locale/ka/viewer.properties
+++ b/static/pdf.js/locale/ka/viewer.properties
@@ -18,156 +18,267 @@ previous_label=წინა
next.title=შემდეგი გვერდი
next_label=შემდეგი
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=გვერდი:
-page_of=/ {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=გვერდი
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}}-დან
+# 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_in.title=მიახლოება
-zoom_in_label=მიახლოება
-zoom.title=მასშტაბი
-presentation_mode.title=პრეზენტაციის რეჟიმზე გადართვა
-presentation_mode_label=პრეზენტაციის რეჟიმი
+zoom_in.title=ზომის გაზრდა
+zoom_in_label=მოახლოება
+zoom.title=ზომა
+presentation_mode.title=ჩვენების რეჟიმზე გადართვა
+presentation_mode_label=ჩვენების რეჟიმი
open_file.title=ფაილის გახსნა
open_file_label=გახსნა
-print.title=დაბეჭდვა
-print_label=დაბეჭდვა
-download.title=ჩამოტვირთვა
-download_label=ჩამოტვირთვა
-bookmark.title=მიმდინარე ხედი (კოპირება ან გახსნა ახალ ფანჯარაში)
-bookmark_label=მიმდინარე ხედი
+print.title=ამობეჭდვა
+print_label=ამობეჭდვა
+save.title=შენახვა
+save_label=შენახვა
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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=მიმდინარე გვერდი (ბმული ამ გვერდისთვის)
+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
tools.title=ხელსაწყოები
tools_label=ხელსაწყოები
first_page.title=პირველ გვერდზე გადასვლა
-first_page.label=პირველ გვერდზე გადასვლა
first_page_label=პირველ გვერდზე გადასვლა
last_page.title=ბოლო გვერდზე გადასვლა
-last_page.label=ბოლო გვერდზე გადასვლა
last_page_label=ბოლო გვერდზე გადასვლა
-page_rotate_cw.title=ისრის მიმართულებით შებრუნება
-page_rotate_cw.label=ისრის მიმართულებით შებრუნება
-page_rotate_cw_label=ისრის მიმართულებით შებრუნება
-page_rotate_ccw.title=ისრის საპირისპიროდ შებრუნება
-page_rotate_ccw.label=ისრის საპირისპიროდ შებრუნება
-page_rotate_ccw_label=ისრის საპირისპიროდ შებრუნება
+page_rotate_cw.title=საათის ისრის მიმართულებით შებრუნება
+page_rotate_cw_label=მარჯვნივ გადაბრუნება
+page_rotate_ccw.title=საათის ისრის საპირისპიროდ შებრუნება
+page_rotate_ccw_label=მარცხნივ გადაბრუნება
-hand_tool_enable.title=ხელის ხელსაწყოს ჩართვა
-hand_tool_enable_label=ხელის ხელსაწყოს ჩართვა
-hand_tool_disable.title=ხელის ხელსაწყოს გამორთვა
-hand_tool_disable_label=ხელის ხელსაწყოს გამორთვა
+cursor_text_select_tool.title=მოსანიშნი მაჩვენებლის გამოყენება
+cursor_text_select_tool_label=მოსანიშნი მაჩვენებელი
+cursor_hand_tool.title=გადასაადგილებელი მაჩვენებლის გამოყენება
+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.title=დოკუმენტის თვისებები…
-document_properties_label=დოკუმენტის თვისებები…
+document_properties.title=დოკუმენტის შესახებ…
+document_properties_label=დოკუმენტის შესახებ…
document_properties_file_name=ფაილის სახელი:
-document_properties_file_size=ფაილის ზომა:
+document_properties_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}} ბაიტი)
+document_properties_kb={{size_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_mb={{size_mb}} მბ ({{size_b}} ბაიტი)
document_properties_title=სათაური:
-document_properties_author=ავტორი:
+document_properties_author=შემქმნელი:
document_properties_subject=თემა:
document_properties_keywords=საკვანძო სიტყვები:
-document_properties_creation_date=შექმნის თარიღი:
-document_properties_modification_date=სახეცვალების თარიღი:
+document_properties_creation_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_creator=შემქმნელი:
-document_properties_producer=PDF მწარმოებელი:
-document_properties_version=PDF ვერსია:
-document_properties_page_count=გვერდების რაოდენობა:
+document_properties_creator=გამომცემი:
+document_properties_producer=PDF-შემდგენელი:
+document_properties_version=PDF-ვერსია:
+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=დახურვა
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-toggle_sidebar.title=გვერდითა ზოლის ბერკეტი
-toggle_sidebar_label=გვერდითა ზოლის ბერკეტი
-outline.title=დოკუმენტის კონტურის ჩვენება
-outline_label=დოკუმენტის კონტური
+toggle_sidebar.title=გვერდითა ზოლის გამოჩენა/დამალვა
+toggle_sidebar_notification2.title=გვერდითი ზოლის გამოჩენა (შეიცავს სარჩევს/დანართს/ფენებს)
+toggle_sidebar_label=გვერდითა ზოლის გამოჩენა/დამალვა
+document_outline.title=დოკუმენტის სარჩევის ჩვენება (ორმაგი წკაპით თითოეულის ჩამოშლა/აკეცვა)
+document_outline_label=დოკუმენტის სარჩევი
attachments.title=დანართების ჩვენება
attachments_label=დანართები
-thumbs.title=ესკიზების ჩვენება
+layers.title=ფენების გამოჩენა (ორმაგი წკაპით ყველა ფენის ნაგულისხმევზე დაბრუნება)
+layers_label=ფენები
+thumbs.title=შეთვალიერება
thumbs_label=ესკიზები
+current_outline_item.title=მიმდინარე გვერდის მონახვა სარჩევში
+current_outline_item_label=მიმდინარე გვერდი სარჩევში
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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=გვერდი {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
-thumb_page_canvas=გვერდის ესკიზი {{page}}
+thumb_page_canvas=გვერდის შეთვალიერება {{page}}
# Find panel button title and messages
-find_label=პოვნა:
+find_input.title=ძიება
+find_input.placeholder=პოვნა დოკუმენტში…
find_previous.title=ფრაზის წინა კონტექსტის პოვნა
find_previous_label=წინა
find_next.title=ფრაზის შემდეგი კონტექსტის პოვნა
find_next_label=შემდეგი
find_highlight=ყველას მონიშვნა
-find_match_case_label=მთავრულის გათვალისწინება
-find_reached_top=მიღწეულია დოკუმენტის უმაღლესი წერტილი, გრძელდება ქვემოდან
-find_reached_bottom=მიღწეულია დოკუმენტის ბოლი, გრძელდება ზემოდან
-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=გვერდის რენდერისას დაფიქსირდა შეცდომა.
+find_match_case_label=მთავრულით
+find_match_diacritics_label=ნიშნებით
+find_entire_word_label=მთლიანი სიტყვები
+find_reached_top=მიღწეულია დოკუმენტის დასაწყისი, გრძელდება ბოლოდან
+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=ფრაზა ვერ მოიძებნა
# Predefined zoom values
-page_scale_width=გვერდის სიგანე
-page_scale_fit=გვერდის მორგება
-page_scale_auto=ავტომატური მასშტაბი
-page_scale_actual=აქტუალური ზომა
+page_scale_width=გვერდის სიგანეზე
+page_scale_fit=მთლიანი გვერდი
+page_scale_auto=ავტომატური
+page_scale_actual=საწყისი ზომა
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=შეცდომა
-loading_error=PDF-ის ჩატვირთვისას დაფიქსირდა შეცდომა.
-invalid_file_error=არამართებული ან დაზიანებული PDF ფაილი.
-missing_file_error=ნაკლული PDF ფაილი.
+loading_error=შეცდომა, PDF-ფაილის ჩატვირთვისას.
+invalid_file_error=არამართებული ან დაზიანებული PDF-ფაილი.
+missing_file_error=ნაკლული PDF-ფაილი.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} ანოტაცია]
-password_label=შეიყვანეთ პაროლი, რათა გახსნათ ეს PDF ფაილი.
-password_invalid=არასწორი პაროლი. გთხოვთ, სცადეთ ხელახლა.
-password_ok=დიახ
+text_annotation_type.alt=[{{type}} შენიშვნა]
+password_label=შეიყვანეთ პაროლი PDF-ფაილის გასახსნელად.
+password_invalid=არასწორი პაროლი. გთხოვთ, სცადოთ ხელახლა.
+password_ok=კარგი
password_cancel=გაუქმება
-printing_not_supported=გაფრთხილება: ამ ბრაუზერის მიერ დაბეჭდვა ბოლომდე მხარდაჭერილი არაა.
-printing_not_ready=გაფრთხილება: PDF ამობეჭდვისთვის ბოლომდე ჩატვირთული არაა.
-web_fonts_disabled=ვებ-შრიფტები გამორთულია: ჩაშენებული PDF შრიფტების გამოყენება ვერ ხერხდება.
-document_colors_not_allowed=PDF დოკუმენტებს არ აქვთ საკუთარი ფერების გამოყენების უფლება: ბრაუზერში გამორთულია "გვერდებისთვის საკუთარი ფერების გამოყენების უფლება".
+printing_not_supported=გაფრთხილება: ამობეჭდვა ამ ბრაუზერში არაა სრულად მხარდაჭერილი.
+printing_not_ready=გაფრთხილება: PDF სრულად ჩატვირთული არაა, ამობეჭდვის დასაწყებად.
+web_fonts_disabled=ვებშრიფტები გამორთულია: ჩაშენებული 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=მაგალითად, „ახალგაზრდა მამაკაცი მაგიდასთან ზის და სადილობს“
diff --git a/static/pdf.js/locale/kab/viewer.properties b/static/pdf.js/locale/kab/viewer.properties
new file mode 100644
index 000000000..8802ba824
--- /dev/null
+++ b/static/pdf.js/locale/kab/viewer.properties
@@ -0,0 +1,264 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Asebter azewwar
+previous_label=Azewwar
+next.title=Asebter d-iteddun
+next_label=Ddu ɣer zdat
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Asebter
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=ɣef {{pagesCount}}
+# 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}} n {{pagesCount}})
+
+zoom_out.title=Semẓi
+zoom_out_label=Semẓi
+zoom_in.title=Semɣeṛ
+zoom_in_label=Semɣeṛ
+zoom.title=Semɣeṛ/Semẓi
+presentation_mode.title=Uɣal ɣer Uskar Tihawt
+presentation_mode_label=Askar Tihawt
+open_file.title=Ldi Afaylu
+open_file_label=Ldi
+print.title=Siggez
+print_label=Siggez
+save.title=Sekles
+save_label=Sekles
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Sader
+# 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=Sader
+bookmark1.title=Asebter amiran (Sken-d tansa URL seg usebter amiran)
+bookmark1_label=Asebter amiran
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Ldi deg usnas
+# 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=Ldi deg usnas
+
+# Secondary toolbar and context menu
+tools.title=Ifecka
+tools_label=Ifecka
+first_page.title=Ddu ɣer usebter amezwaru
+first_page_label=Ddu ɣer usebter amezwaru
+last_page.title=Ddu ɣer usebter aneggaru
+last_page_label=Ddu ɣer usebter aneggaru
+page_rotate_cw.title=Tuzzya tusrigt
+page_rotate_cw_label=Tuzzya tusrigt
+page_rotate_ccw.title=Tuzzya amgal-usrig
+page_rotate_ccw_label=Tuzzya amgal-usrig
+
+cursor_text_select_tool.title=Rmed afecku n tefrant n uḍris
+cursor_text_select_tool_label=Afecku n tefrant n uḍris
+cursor_hand_tool.title=Rmed afecku afus
+cursor_hand_tool_label=Afecku afus
+
+scroll_page.title=Seqdec adrurem n usebter
+scroll_page_label=Adrurem n usebter
+scroll_vertical.title=Seqdec adrurem ubdid
+scroll_vertical_label=Adrurem ubdid
+scroll_horizontal.title=Seqdec adrurem aglawan
+scroll_horizontal_label=Adrurem aglawan
+scroll_wrapped.title=Seqdec adrurem yuẓen
+scroll_wrapped_label=Adrurem yuẓen
+
+spread_none.title=Ur sedday ara isiɣzaf n usebter
+spread_none_label=Ulac isiɣzaf
+spread_odd.title=Seddu isiɣzaf n usebter ibeddun s yisebtar irayuganen
+spread_odd_label=Isiɣzaf irayuganen
+spread_even.title=Seddu isiɣzaf n usebter ibeddun s yisebtar iyuganen
+spread_even_label=Isiɣzaf iyuganen
+
+# Document properties dialog box
+document_properties.title=Taɣaṛa n isemli…
+document_properties_label=Taɣaṛa n isemli…
+document_properties_file_name=Isem n ufaylu:
+document_properties_file_size=Teɣzi n ufaylu:
+# 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}} KAṬ ({{size_b}} ibiten)
+# 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}} MAṬ ({{size_b}} iṭamḍanen)
+document_properties_title=Azwel:
+document_properties_author=Ameskar:
+document_properties_subject=Amgay:
+document_properties_keywords=Awalen n tsaruţ
+document_properties_creation_date=Azemz n tmerna:
+document_properties_modification_date=Azemz n usnifel:
+# 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=Yerna-t:
+document_properties_producer=Afecku n uselket PDF:
+document_properties_version=Lqem PDF:
+document_properties_page_count=Amḍan n yisebtar:
+document_properties_page_size=Tuγzi n usebter:
+document_properties_page_size_unit_inches=deg
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=s teɣzi
+document_properties_page_size_orientation_landscape=s tehri
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Asekkil
+document_properties_page_size_name_legal=Usḍif
+# 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=Taskant Web taruradt:
+document_properties_linearized_yes=Ih
+document_properties_linearized_no=Ala
+document_properties_close=Mdel
+
+print_progress_message=Aheggi i usiggez n isemli…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Sefsex
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Sken/Fer agalis adisan
+toggle_sidebar_notification2.title=Ffer/Sekn agalis adisan (isemli yegber aɣawas/ticeqqufin yeddan/tissiwin)
+toggle_sidebar_label=Sken/Fer agalis adisan
+document_outline.title=Sken isemli (Senned snat tikal i wesemɣer/Afneẓ n iferdisen meṛṛa)
+document_outline_label=Isɣalen n isebtar
+attachments.title=Sken ticeqqufin yeddan
+attachments_label=Ticeqqufin yeddan
+layers.title=Skeen tissiwin (sit sin yiberdan i uwennez n meṛṛa tissiwin ɣer waddad amezwer)
+layers_label=Tissiwin
+thumbs.title=Sken tanfult.
+thumbs_label=Tinfulin
+current_outline_item.title=Af-d aferdis n uɣawas amiran
+current_outline_item_label=Aferdis n uɣawas amiran
+findbar.title=Nadi deg isemli
+findbar_label=Nadi
+
+additional_layers=Tissiwin-nniḍen
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Asebter {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Asebter {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Tanfult n usebter {{page}}
+
+# Find panel button title and messages
+find_input.title=Nadi
+find_input.placeholder=Nadi deg isemli…
+find_previous.title=Aff-d tamseḍriwt n twinest n deffir
+find_previous_label=Azewwar
+find_next.title=Aff-d timseḍriwt n twinest d-iteddun
+find_next_label=Ddu ɣer zdat
+find_highlight=Err izirig imaṛṛa
+find_match_case_label=Qadeṛ amasal n isekkilen
+find_match_diacritics_label=Qadeṛ ifeskilen
+find_entire_word_label=Awalen iččuranen
+find_reached_top=Yabbeḍ s afella n usebter, tuɣalin s wadda
+find_reached_bottom=Tebḍeḍ s adda n usebter, tuɣalin s afella
+# 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}} seg {{total}} n tmeɣṛuḍin
+find_match_count[two]={{current}} seg {{total}} n tmeɣṛuḍin
+find_match_count[few]={{current}} seg {{total}} n tmeɣṛuḍin
+find_match_count[many]={{current}} seg {{total}} n tmeɣṛuḍin
+find_match_count[other]={{current}} seg {{total}} n tmeɣṛuḍin
+# 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]=Ugar n {{limit}} n tmeɣṛuḍin
+find_match_count_limit[one]=Ugar n {{limit}} n tmeɣṛuḍin
+find_match_count_limit[two]=Ugar n {{limit}} n tmeɣṛuḍin
+find_match_count_limit[few]=Ugar n {{limit}} n tmeɣṛuḍin
+find_match_count_limit[many]=Ugar n {{limit}} n tmeɣṛuḍin
+find_match_count_limit[other]=Ugar n {{limit}} n tmeɣṛuḍin
+find_not_found=Ulac tawinest
+
+# Predefined zoom values
+page_scale_width=Tehri n usebter
+page_scale_fit=Asebter imaṛṛa
+page_scale_auto=Asemɣeṛ/Asemẓi awurman
+page_scale_actual=Teɣzi tilawt
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Teḍra-d tuccḍa deg alluy n PDF:
+invalid_file_error=Afaylu PDF arameɣtu neɣ yexṣeṛ.
+missing_file_error=Ulac afaylu PDF.
+unexpected_response_error=Aqeddac yerra-d yir tiririt ur nettwaṛǧi ara.
+rendering_error=Teḍra-d tuccḍa deg uskan n usebter.
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Tabzimt {{type}}]
+password_label=Sekcem awal uffir akken ad ldiḍ afaylu-yagi PDF
+password_invalid=Awal uffir mačči d ameɣtu, Ɛreḍ tikelt-nniḍen.
+password_ok=IH
+password_cancel=Sefsex
+
+printing_not_supported=Ɣuṛ-k: Asiggez ur ittusefrak ara yakan imaṛṛa deg iminig-a.
+printing_not_ready=Ɣuṛ-k: Afaylu PDF ur d-yuli ara imeṛṛa akken ad ittusiggez.
+web_fonts_disabled=Tisefsiyin web ttwassensent; D awezɣi useqdec n tsefsiyin yettwarnan ɣer PDF.
+
+# Editor
+editor_free_text2.title=Aḍris
+editor_free_text2_label=Aḍris
+editor_ink2.title=Suneɣ
+editor_ink2_label=Suneɣ
+
+
+
+free_text2_default_content=Bdu tira...
+
+# Editor Parameters
+editor_free_text_color=Initen
+editor_free_text_size=Teɣzi
+editor_ink_color=Ini
+editor_ink_thickness=Tuzert
+editor_ink_opacity=Tebrek
+
+
+# Editor aria
+editor_free_text2_aria_label=Amaẓrag n uḍris
+editor_ink2_aria_label=Amaẓrag n usuneɣ
+editor_ink_canvas_aria_label=Tugna yettwarnan sɣur useqdac
diff --git a/static/pdf.js/locale/kk/viewer.properties b/static/pdf.js/locale/kk/viewer.properties
index 39e7118b3..920f0a3bb 100644
--- a/static/pdf.js/locale/kk/viewer.properties
+++ b/static/pdf.js/locale/kk/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Алдыңғысы
next.title=Келесі парақ
next_label=Келесі
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Парақ:
-page_of={{pageCount}} ішінен
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Парақ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} ішінен
+# 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_label=Кішірейту
@@ -36,31 +39,52 @@ open_file.title=Файлды ашу
open_file_label=Ашу
print.title=Баспаға шығару
print_label=Баспаға шығару
-download.title=Жүктеп алу
-download_label=Жүктеп алу
-bookmark.title=Ағымдағы көрініс (көшіру не жаңа терезеде ашу)
-bookmark_label=Ағымдағы көрініс
+save.title=Сақтау
+save_label=Сақтау
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
-tools.title=Саймандар
-tools_label=Саймандар
+tools.title=Құралдар
+tools_label=Құралдар
first_page.title=Алғашқы параққа өту
-first_page.label=Алғашқы параққа өту
first_page_label=Алғашқы параққа өту
last_page.title=Соңғы параққа өту
-last_page.label=Соңғы параққа өту
last_page_label=Соңғы параққа өту
page_rotate_cw.title=Сағат тілі бағытымен айналдыру
-page_rotate_cw.label=Сағат тілі бағытымен бұру
page_rotate_cw_label=Сағат тілі бағытымен бұру
page_rotate_ccw.title=Сағат тілі бағытына қарсы бұру
-page_rotate_ccw.label=Сағат тілі бағытына қарсы бұру
page_rotate_ccw_label=Сағат тілі бағытына қарсы бұру
-hand_tool_enable.title=Қол сайманын іске қосу
-hand_tool_enable_label=Қол сайманын іске қосу
-hand_tool_disable.title=Қол сайманын сөндіру
-hand_tool_disable_label=Қол сайманын сөндіру
+cursor_text_select_tool.title=Мәтінді таңдау құралын іске қосу
+cursor_text_select_tool_label=Мәтінді таңдау құралы
+cursor_hand_tool.title=Қол құралын іске қосу
+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.title=Құжат қасиеттері…
@@ -73,7 +97,7 @@ document_properties_kb={{size_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}} МБ ({{size_b}} байт)
-document_properties_title=Тақырыбы...
+document_properties_title=Тақырыбы:
document_properties_author=Авторы:
document_properties_subject=Тақырыбы:
document_properties_keywords=Кілт сөздер:
@@ -86,22 +110,58 @@ document_properties_creator=Жасаған:
document_properties_producer=PDF өндірген:
document_properties_version=PDF нұсқасы:
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=Жылдам Web көрінісі:
+document_properties_linearized_yes=Иә
+document_properties_linearized_no=Жоқ
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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Бүйір панелін көрсету/жасыру
+toggle_sidebar_notification2.title=Бүйір панелін көрсету/жасыру (құжатта құрылымы/салынымдар/қабаттар бар)
toggle_sidebar_label=Бүйір панелін көрсету/жасыру
-outline.title=Құжат құрамасын көрсету
-outline_label=Құжат құрамасы
+document_outline.title=Құжат құрылымын көрсету (барлық нәрселерді жазық қылу/жинау үшін қос шерту керек)
+document_outline_label=Құжат құрамасы
attachments.title=Салынымдарды көрсету
attachments_label=Салынымдар
+layers.title=Қабаттарды көрсету (барлық қабаттарды бастапқы күйге келтіру үшін екі рет шертіңіз)
+layers_label=Қабаттар
thumbs.title=Кіші көріністерді көрсету
thumbs_label=Кіші көріністер
+current_outline_item.title=Құрылымның ағымдағы элементін табу
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title={{page}} парағы
thumb_page_canvas={{page}} парағы үшін кіші көрінісі
# Find panel button title and messages
-find_label=Табу:
+find_input.title=Табу
+find_input.placeholder=Құжаттан табу…
find_previous.title=Осы сөздердің мәтіннен алдыңғы кездесуін табу
find_previous_label=Алдыңғысы
find_next.title=Осы сөздердің мәтіннен келесі кездесуін табу
find_next_label=Келесі
find_highlight=Барлығын түспен ерекшелеу
find_match_case_label=Регистрді ескеру
+find_match_diacritics_label=Диакритиканы ескеру
+find_entire_word_label=Сөздер толығымен
find_reached_top=Құжаттың басына жеттік, соңынан бастап жалғастырамыз
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=Сөз(дер) табылмады
-# 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}})
-# 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
page_scale_width=Парақ ені
page_scale_fit=Парақты сыйдыру
@@ -151,11 +216,15 @@ page_scale_actual=Нақты өлшемі
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Қате
loading_error=PDF жүктеу кезінде қате кетті.
invalid_file_error=Зақымдалған немесе қате PDF файл.
missing_file_error=PDF файлы жоқ.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,46 @@ password_cancel=Бас тарту
printing_not_supported=Ескерту: Баспаға шығаруды бұл браузер толығымен қолдамайды.
printing_not_ready=Ескерту: Баспаға шығару үшін, бұл 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=Мысалы, "Жас жігіт тамақ ішу үшін үстел басына отырады"
diff --git a/static/pdf.js/locale/km/viewer.properties b/static/pdf.js/locale/km/viewer.properties
index 87f700e6e..68a8f55f1 100644
--- a/static/pdf.js/locale/km/viewer.properties
+++ b/static/pdf.js/locale/km/viewer.properties
@@ -18,12 +18,15 @@ previous_label=មុន
next.title=ទំព័របន្ទាប់
next_label=បន្ទាប់
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=ទំព័រ ៖
-page_of=នៃ {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=ទំព័រ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=នៃ {{pagesCount}}
+# 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_label=បង្រួម
@@ -36,31 +39,25 @@ open_file.title=បើកឯកសារ
open_file_label=បើក
print.title=បោះពុម្ព
print_label=បោះពុម្ព
-download.title=ទាញយក
-download_label=ទាញយក
-bookmark.title=ទិដ្ឋភាពបច្ចុប្បន្ន (ចម្លង ឬបើកនៅក្នុងបង្អួចថ្មី)
-bookmark_label=ទិដ្ឋភាពបច្ចុប្បន្ន
# Secondary toolbar and context menu
tools.title=ឧបករណ៍
tools_label=ឧបករណ៍
first_page.title=ទៅកាន់ទំព័រដំបូង
-first_page.label=ទៅកាន់ទំព័រដំបូង
first_page_label=ទៅកាន់ទំព័រដំបូង
last_page.title=ទៅកាន់ទំព័រចុងក្រោយ
-last_page.label=ទៅកាន់ទំព័រចុងក្រោយ
last_page_label=ទៅកាន់ទំព័រចុងក្រោយ
page_rotate_cw.title=បង្វិលស្របទ្រនិចនាឡិកា
-page_rotate_cw.label=បង្វិលស្របទ្រនិចនាឡិកា
page_rotate_cw_label=បង្វិលស្របទ្រនិចនាឡិកា
page_rotate_ccw.title=បង្វិលច្រាសទ្រនិចនាឡិកា
-page_rotate_ccw.label=បង្វិលច្រាសទ្រនិចនាឡិកា
page_rotate_ccw_label=បង្វិលច្រាសទ្រនិចនាឡិកា
-hand_tool_enable.title=បើកឧបករណ៍ដោយដៃ
-hand_tool_enable_label=បើកឧបករណ៍ដោយដៃ
-hand_tool_disable.title=បិទឧបករណ៍ប្រើដៃ
-hand_tool_disable_label=បិទឧបករណ៍ប្រើដៃ
+cursor_text_select_tool.title=បើកឧបករណ៍ជ្រើសអត្ថបទ
+cursor_text_select_tool_label=ឧបករណ៍ជ្រើសអត្ថបទ
+cursor_hand_tool.title=បើកឧបករណ៍ដៃ
+cursor_hand_tool_label=ឧបករណ៍ដៃ
+
+
# Document properties dialog box
document_properties.title=លក្ខណសម្បត្តិឯកសារ…
@@ -69,11 +66,11 @@ document_properties_file_name=ឈ្មោះឯកសារ៖
document_properties_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}} បៃ)
# 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_title=ចំណងជើង ៖
+document_properties_mb={{size_mb}} MB ({{size_b}} បៃ)
+document_properties_title=ចំណងជើង៖
document_properties_author=អ្នកនិពន្ធ៖
document_properties_subject=ប្រធានបទ៖
document_properties_keywords=ពាក្យគន្លឹះ៖
@@ -86,15 +83,40 @@ document_properties_creator=អ្នកបង្កើត៖
document_properties_producer=កម្មវិធីបង្កើត PDF ៖
document_properties_version=កំណែ PDF ៖
document_properties_page_count=ចំនួនទំព័រ៖
+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=សំបុត្រ
+# 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=បិទ
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=បិទ/បើកគ្រាប់រំកិល
toggle_sidebar_label=បិទ/បើកគ្រាប់រំកិល
-outline.title=បង្ហាញគ្រោងឯកសារ
-outline_label=គ្រោងឯកសារ
+document_outline.title=បង្ហាញគ្រោងឯកសារ (ចុចទ្វេដងដើម្បីពង្រីក/បង្រួមធាតុទាំងអស់)
+document_outline_label=គ្រោងឯកសារ
attachments.title=បង្ហាញឯកសារភ្ជាប់
attachments_label=ឯកសារភ្ជាប់
thumbs.title=បង្ហាញរូបភាពតូចៗ
@@ -102,6 +124,7 @@ thumbs_label=រួបភាពតូចៗ
findbar.title=រកនៅក្នុងឯកសារ
findbar_label=រក
+# LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,7 +134,8 @@ thumb_page_title=ទំព័រ {{page}}
thumb_page_canvas=រូបភាពតូចរបស់ទំព័រ {{page}}
# Find panel button title and messages
-find_label=រក ៖
+find_input.title=រក
+find_input.placeholder=រកនៅក្នុងឯកសារ...
find_previous.title=រកពាក្យ ឬឃ្លាដែលបានជួបមុន
find_previous_label=មុន
find_next.title=រកពាក្យ ឬឃ្លាដែលបានជួបបន្ទាប់
@@ -120,27 +144,16 @@ find_highlight=បន្លិចទាំងអស់
find_match_case_label=ករណីដំណូច
find_reached_top=បានបន្តពីខាងក្រោម ទៅដល់ខាងលើនៃឯកសារ
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.
+# 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=រកមិនឃើញពាក្យ ឬឃ្លា
-# 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
page_scale_width=ទទឹងទំព័រ
page_scale_fit=សមទំព័រ
@@ -150,13 +163,16 @@ page_scale_actual=ទំហំជាក់ស្ដែង
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=កំហុស
loading_error=មានកំហុសបានកើតឡើងពេលកំពុងផ្ទុក PDF ។
invalid_file_error=ឯកសារ PDF ខូច ឬមិនត្រឹមត្រូវ ។
missing_file_error=បាត់ឯកសារ PDF
unexpected_response_error=ការឆ្លើយតមម៉ាស៊ីនមេដែលមិនបានរំពឹង។
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+
+rendering_error=មានកំហុសបានកើតឡើងពេលបង្ហាញទំព័រ ។
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +186,4 @@ password_cancel=បោះបង់
printing_not_supported=ការព្រមាន ៖ ការបោះពុម្ពមិនត្រូវបានគាំទ្រពេញលេញដោយកម្មវិធីរុករកនេះទេ ។
printing_not_ready=ព្រមាន៖ PDF មិនត្រូវបានផ្ទុកទាំងស្រុងដើម្បីបោះពុម្ពទេ។
web_fonts_disabled=បានបិទពុម្ពអក្សរបណ្ដាញ ៖ មិនអាចប្រើពុម្ពអក្សរ PDF ដែលបានបង្កប់បានទេ ។
-document_colors_not_allowed=ឯកសារ PDF មិនត្រូវបានអនុញ្ញាតឲ្យប្រើពណ៌ផ្ទាល់របស់វាទេ៖ 'អនុញ្ញាតឲ្យទំព័រជ្រើសពណ៌ផ្ទាល់ខ្លួន' ត្រូវបានធ្វើឲ្យអសកម្មក្នុងកម្មវិធីរុករក។
+
diff --git a/static/pdf.js/locale/kn/viewer.properties b/static/pdf.js/locale/kn/viewer.properties
index f206717de..aa4584353 100644
--- a/static/pdf.js/locale/kn/viewer.properties
+++ b/static/pdf.js/locale/kn/viewer.properties
@@ -18,12 +18,15 @@ previous_label=ಹಿಂದಿನ
next.title=ಮುಂದಿನ ಪುಟ
next_label=ಮುಂದಿನ
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=ಪುಟ:
-page_of={{pageCount}} ರಲ್ಲಿ
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=ಪುಟ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} ರಲ್ಲಿ
+# 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=({{pagesCount}} ರಲ್ಲಿ {{pageNumber}})
zoom_out.title=ಕಿರಿದಾಗಿಸು
zoom_out_label=ಕಿರಿದಾಗಿಸಿ
@@ -36,31 +39,25 @@ open_file.title=ಕಡತವನ್ನು ತೆರೆ
open_file_label=ತೆರೆಯಿರಿ
print.title=ಮುದ್ರಿಸು
print_label=ಮುದ್ರಿಸಿ
-download.title=ಇಳಿಸು
-download_label=ಇಳಿಸಿಕೊಳ್ಳಿ
-bookmark.title=ಪ್ರಸಕ್ತ ನೋಟ (ಪ್ರತಿ ಮಾಡು ಅಥವ ಹೊಸ ಕಿಟಕಿಯಲ್ಲಿ ತೆರೆ)
-bookmark_label=ಪ್ರಸಕ್ತ ನೋಟ
# Secondary toolbar and context menu
tools.title=ಉಪಕರಣಗಳು
tools_label=ಉಪಕರಣಗಳು
first_page.title=ಮೊದಲ ಪುಟಕ್ಕೆ ತೆರಳು
-first_page.label=ಮೊದಲ ಪುಟಕ್ಕೆ ತೆರಳು
first_page_label=ಮೊದಲ ಪುಟಕ್ಕೆ ತೆರಳು
last_page.title=ಕೊನೆಯ ಪುಟಕ್ಕೆ ತೆರಳು
-last_page.label=ಕೊನೆಯ ಪುಟಕ್ಕೆ ತೆರಳು
last_page_label=ಕೊನೆಯ ಪುಟಕ್ಕೆ ತೆರಳು
page_rotate_cw.title=ಪ್ರದಕ್ಷಿಣೆಯಲ್ಲಿ ತಿರುಗಿಸು
-page_rotate_cw.label=ಪ್ರದಕ್ಷಿಣೆಯಲ್ಲಿ ತಿರುಗಿಸು
page_rotate_cw_label=ಪ್ರದಕ್ಷಿಣೆಯಲ್ಲಿ ತಿರುಗಿಸು
page_rotate_ccw.title=ಅಪ್ರದಕ್ಷಿಣೆಯಲ್ಲಿ ತಿರುಗಿಸು
-page_rotate_ccw.label=ಅಪ್ರದಕ್ಷಿಣೆಯಲ್ಲಿ ತಿರುಗಿಸು
page_rotate_ccw_label=ಅಪ್ರದಕ್ಷಿಣೆಯಲ್ಲಿ ತಿರುಗಿಸು
-hand_tool_enable.title=ಕೈ ಉಪಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸು
-hand_tool_enable_label=ಕೈ ಉಪಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸು
-hand_tool_disable.title=ಕೈ ಉಪಕರಣವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸು
-hand_tool_disable_label=ಕೈ ಉಪಕರಣವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸು
+cursor_text_select_tool.title=ಪಠ್ಯ ಆಯ್ಕೆ ಉಪಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ
+cursor_text_select_tool_label=ಪಠ್ಯ ಆಯ್ಕೆಯ ಉಪಕರಣ
+cursor_hand_tool.title=ಕೈ ಉಪಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ
+cursor_hand_tool_label=ಕೈ ಉಪಕರಣ
+
+
# Document properties dialog box
document_properties.title=ಡಾಕ್ಯುಮೆಂಟ್ ಗುಣಗಳು...
@@ -86,15 +83,29 @@ document_properties_creator=ರಚಿಸಿದವರು:
document_properties_producer=PDF ಉತ್ಪಾದಕ:
document_properties_version=PDF ಆವೃತ್ತಿ:
document_properties_page_count=ಪುಟದ ಎಣಿಕೆ:
+document_properties_page_size_unit_inches=ಇದರಲ್ಲಿ
+document_properties_page_size_orientation_portrait=ಭಾವಚಿತ್ರ
+document_properties_page_size_orientation_landscape=ಪ್ರಕೃತಿ ಚಿತ್ರ
+# 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.
+# 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_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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=ಬದಿಪಟ್ಟಿಯನ್ನು ಹೊರಳಿಸು
toggle_sidebar_label=ಬದಿಪಟ್ಟಿಯನ್ನು ಹೊರಳಿಸು
-outline.title=ದಸ್ತಾವೇಜಿನ ಹೊರರೇಖೆಯನ್ನು ತೋರಿಸು
-outline_label=ದಸ್ತಾವೇಜಿನ ಹೊರರೇಖೆ
+document_outline_label=ದಸ್ತಾವೇಜಿನ ಹೊರರೇಖೆ
attachments.title=ಲಗತ್ತುಗಳನ್ನು ತೋರಿಸು
attachments_label=ಲಗತ್ತುಗಳು
thumbs.title=ಚಿಕ್ಕಚಿತ್ರದಂತೆ ತೋರಿಸು
@@ -111,7 +122,8 @@ thumb_page_title=ಪುಟ {{page}}
thumb_page_canvas=ಪುಟವನ್ನು ಚಿಕ್ಕಚಿತ್ರದಂತೆ ತೋರಿಸು {{page}}
# Find panel button title and messages
-find_label=ಹುಡುಕು:
+find_input.title=ಹುಡುಕು
+find_input.placeholder=ದಸ್ತಾವೇಜಿನಲ್ಲಿ ಹುಡುಕು…
find_previous.title=ವಾಕ್ಯದ ಹಿಂದಿನ ಇರುವಿಕೆಯನ್ನು ಹುಡುಕು
find_previous_label=ಹಿಂದಿನ
find_next.title=ವಾಕ್ಯದ ಮುಂದಿನ ಇರುವಿಕೆಯನ್ನು ಹುಡುಕು
@@ -122,25 +134,6 @@ find_reached_top=ದಸ್ತಾವೇಜಿನ ಮೇಲ್ಭಾಗವನ್
find_reached_bottom=ದಸ್ತಾವೇಜಿನ ಕೊನೆಯನ್ನು ತಲುಪಿದೆ, ಮೇಲಿನಿಂದ ಆರಂಭಿಸು
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
page_scale_width=ಪುಟದ ಅಗಲ
page_scale_fit=ಪುಟದ ಸರಿಹೊಂದಿಕೆ
@@ -150,13 +143,13 @@ page_scale_actual=ನಿಜವಾದ ಗಾತ್ರ
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=ದೋಷ
loading_error=PDF ಅನ್ನು ಲೋಡ್ ಮಾಡುವಾಗ ಒಂದು ದೋಷ ಎದುರಾಗಿದೆ.
invalid_file_error=ಅಮಾನ್ಯವಾದ ಅಥವ ಹಾಳಾದ PDF ಕಡತ.
missing_file_error=PDF ಕಡತ ಇಲ್ಲ.
unexpected_response_error=ಅನಿರೀಕ್ಷಿತವಾದ ಪೂರೈಕೆಗಣಕದ ಪ್ರತಿಕ್ರಿಯೆ.
+rendering_error=ಪುಟವನ್ನು ನಿರೂಪಿಸುವಾಗ ಒಂದು ದೋಷ ಎದುರಾಗಿದೆ.
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +163,4 @@ password_cancel=ರದ್ದು ಮಾಡು
printing_not_supported=ಎಚ್ಚರಿಕೆ: ಈ ಜಾಲವೀಕ್ಷಕದಲ್ಲಿ ಮುದ್ರಣಕ್ಕೆ ಸಂಪೂರ್ಣ ಬೆಂಬಲವಿಲ್ಲ.
printing_not_ready=ಎಚ್ಚರಿಕೆ: PDF ಕಡತವು ಮುದ್ರಿಸಲು ಸಂಪೂರ್ಣವಾಗಿ ಲೋಡ್ ಆಗಿಲ್ಲ.
web_fonts_disabled=ಜಾಲ ಅಕ್ಷರಶೈಲಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ: ಅಡಕಗೊಳಿಸಿದ PDF ಅಕ್ಷರಶೈಲಿಗಳನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ.
-document_colors_not_allowed=PDF ದಸ್ತಾವೇಜುಗಳು ತಮ್ಮದೆ ಆದ ಬಣ್ಣಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿ ಇರುವುದಿಲ್ಲ: 'ಪುಟಗಳು ತಮ್ಮದೆ ಆದ ಬಣ್ಣವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಅನುಮತಿಸು' ಅನ್ನು ಜಾಲವೀಕ್ಷಕದಲ್ಲಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುತ್ತದೆ.
+
diff --git a/static/pdf.js/locale/ko/viewer.properties b/static/pdf.js/locale/ko/viewer.properties
index 132a5f7c8..da4b02394 100644
--- a/static/pdf.js/locale/ko/viewer.properties
+++ b/static/pdf.js/locale/ko/viewer.properties
@@ -18,55 +18,79 @@ previous_label=이전
next.title=다음 페이지
next_label=다음
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=페이지:
-page_of=/{{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=페이지
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=/ {{pagesCount}}
+# 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_label=축소
zoom_in.title=확대
zoom_in_label=확대
-zoom.title=크기
-presentation_mode.title=발표 모드로 전환
-presentation_mode_label=발표 모드
+zoom.title=확대/축소
+presentation_mode.title=프레젠테이션 모드로 전환
+presentation_mode_label=프레젠테이션 모드
open_file.title=파일 열기
open_file_label=열기
print.title=인쇄
print_label=인쇄
-download.title=다운로드
-download_label=다운로드
-bookmark.title=지금 보이는 그대로 (복사하거나 새 창에 열기)
-bookmark_label=지금 보이는 그대로
+save.title=저장
+save_label=저장
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
tools.title=도구
tools_label=도구
first_page.title=첫 페이지로 이동
-first_page.label=첫 페이지로 이동
first_page_label=첫 페이지로 이동
last_page.title=마지막 페이지로 이동
-last_page.label=마지막 페이지로 이동
last_page_label=마지막 페이지로 이동
page_rotate_cw.title=시계방향으로 회전
-page_rotate_cw.label=시계방향으로 회전
page_rotate_cw_label=시계방향으로 회전
page_rotate_ccw.title=시계 반대방향으로 회전
-page_rotate_ccw.label=시계 반대방향으로 회전
page_rotate_ccw_label=시계 반대방향으로 회전
-hand_tool_enable.title=손 도구 켜기
-hand_tool_enable_label=손 도구 켜기
-hand_tool_disable.title=손 도구 끄기
-hand_tool_disable_label=손 도구 끄기
+cursor_text_select_tool.title=텍스트 선택 도구 활성화
+cursor_text_select_tool_label=텍스트 선택 도구
+cursor_hand_tool.title=손 도구 활성화
+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.title=문서 속성…
document_properties_label=문서 속성…
document_properties_file_name=파일 이름:
-document_properties_file_size=파일 사이즈:
+document_properties_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}}바이트)
@@ -74,100 +98,187 @@ document_properties_kb={{size_kb}} KB ({{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_author=저자:
+document_properties_author=작성자:
document_properties_subject=주제:
document_properties_keywords=키워드:
-document_properties_creation_date=생성일:
-document_properties_modification_date=수정일:
+document_properties_creation_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_creator=생성자:
-document_properties_producer=PDF 생성기:
+document_properties_creator=작성 프로그램:
+document_properties_producer=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=닫기
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-toggle_sidebar.title=탐색창 열고 닫기
-toggle_sidebar_label=탐색창 열고 닫기
-outline.title=문서 개요 보기
-outline_label=문서 개요
+toggle_sidebar.title=사이드바 표시/숨기기
+toggle_sidebar_notification2.title=사이드바 표시/숨기기 (문서에 아웃라인/첨부파일/레이어 포함됨)
+toggle_sidebar_label=사이드바 표시/숨기기
+document_outline.title=문서 아웃라인 보기 (더블 클릭해서 모든 항목 펼치기/접기)
+document_outline_label=문서 아웃라인
attachments.title=첨부파일 보기
attachments_label=첨부파일
+layers.title=레이어 보기 (더블 클릭해서 모든 레이어를 기본 상태로 재설정)
+layers_label=레이어
thumbs.title=미리보기
thumbs_label=미리보기
+current_outline_item.title=현재 아웃라인 항목 찾기
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
-thumb_page_title={{page}}쪽
+thumb_page_title={{page}} 페이지
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
-thumb_page_canvas={{page}}쪽 미리보기
+thumb_page_canvas={{page}} 페이지 미리보기
# Find panel button title and messages
-find_label=검색:
+find_input.title=찾기
+find_input.placeholder=문서에서 찾기…
find_previous.title=지정 문자열에 일치하는 1개 부분을 검색
find_previous_label=이전
find_next.title=지정 문자열에 일치하는 다음 부분을 검색
find_next_label=다음
find_highlight=모두 강조 표시
-find_match_case_label=대문자/소문자 구별
+find_match_case_label=대/소문자 구분
+find_match_diacritics_label=분음 부호 일치
+find_entire_word_label=단어 단위로
find_reached_top=문서 처음까지 검색하고 끝으로 돌아와 검색했습니다.
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]={{total}} 중 {{current}} 일치
+find_match_count[two]={{total}} 중 {{current}} 일치
+find_match_count[few]={{total}} 중 {{current}} 일치
+find_match_count[many]={{total}} 중 {{current}} 일치
+find_match_count[other]={{total}} 중 {{current}} 일치
+# 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=검색 결과 없음
-# 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}})
-# 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
-page_scale_width=페이지 너비에 맞춤
-page_scale_fit=페이지에 맞춤
-page_scale_auto=알아서 맞춤
-page_scale_actual=실제 크기에 맞춤
+page_scale_width=페이지 너비에 맞추기
+page_scale_fit=페이지에 맞추기
+page_scale_auto=자동
+page_scale_actual=실제 크기
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=오류
-loading_error=PDF를 읽는 중 오류가 생겼습니다.
-invalid_file_error=유효하지 않거나 파손된 PDF 파일
-missing_file_error=PDF 파일이 없습니다.
-unexpected_response_error=알 수 없는 서버 응답입니다.
+loading_error=PDF를 로드하는 동안 오류가 발생했습니다.
+invalid_file_error=잘못되었거나 손상된 PDF 파일.
+missing_file_error=PDF 파일 없음.
+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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} 주석]
-password_label=이 PDF 파일을 열 수 있는 암호를 입력하십시오.
-password_invalid=잘못된 암호입니다. 다시 시도해 주십시오.
+password_label=이 PDF 파일을 열 수 있는 비밀번호를 입력하세요.
+password_invalid=잘못된 비밀번호입니다. 다시 시도하세요.
password_ok=확인
password_cancel=취소
printing_not_supported=경고: 이 브라우저는 인쇄를 완전히 지원하지 않습니다.
printing_not_ready=경고: 이 PDF를 인쇄를 할 수 있을 정도로 읽어들이지 못했습니다.
-web_fonts_disabled=웹 폰트가 꺼져있음: 내장된 PDF 글꼴을 쓸 수 없습니다.
-document_colors_not_allowed=PDF 문서의 색상을 쓰지 못하게 되어 있음: '웹 페이지 자체 색상 사용 허용'이 브라우저에서 꺼져 있습니다.
+web_fonts_disabled=웹 폰트가 비활성화됨: 내장된 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=예를 들어, “한 청년이 식탁에 앉아 식사를 하고 있습니다.”
diff --git a/static/pdf.js/locale/ku/viewer.properties b/static/pdf.js/locale/ku/viewer.properties
deleted file mode 100644
index 8f40dbac6..000000000
--- a/static/pdf.js/locale/ku/viewer.properties
+++ /dev/null
@@ -1,147 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Rûpela berê
-previous_label=Paşve
-next.title=Rûpela pêş
-next_label=Pêş
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Rûpel:
-page_of=/ {{pageCount}}
-
-zoom_out.title=Dûr bike
-zoom_out_label=Dûr bike
-zoom_in.title=Nêzîk bike
-zoom_in_label=Nêzîk bike
-zoom.title=Nêzîk Bike
-presentation_mode.title=Derbasî mûda pêşkêşkariyê bibe
-presentation_mode_label=Moda Pêşkêşkariyê
-open_file.title=Pelî veke
-open_file_label=Veke
-print.title=Çap bike
-print_label=Çap bike
-download.title=Jêbar bike
-download_label=Jêbar bike
-bookmark.title=Xuyakirina niha (kopî yan jî di pencereyeke nû de veke)
-bookmark_label=Xuyakirina niha
-
-# Secondary toolbar and context menu
-tools.title=Amûr
-tools_label=Amûr
-first_page.title=Here rûpela yekemîn
-first_page.label=Here rûpela yekemîn
-first_page_label=Here rûpela yekemîn
-last_page.title=Here rûpela dawîn
-last_page.label=Here rûpela dawîn
-last_page_label=Here rûpela dawîn
-page_rotate_cw.title=Bi aliyê saetê ve bizivirîne
-page_rotate_cw.label=Bi aliyê saetê ve bizivirîne
-page_rotate_cw_label=Bi aliyê saetê ve bizivirîne
-page_rotate_ccw.title=Berevajî aliyê saetê ve bizivirîne
-page_rotate_ccw.label=Berevajî aliyê saetê ve bizivirîne
-page_rotate_ccw_label=Berevajî aliyê saetê ve bizivirîne
-
-
-# Document properties dialog box
-# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
-# will be replaced by the PDF file size in kilobytes, respectively in 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_title=Sernav:
-# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
-# will be replaced by the creation/modification date, and time, of the PDF file.
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=Darikê kêlekê veke/bigire
-toggle_sidebar_label=Darikê kêlekê veke/bigire
-outline.title=Şemaya belgeyê nîşan bide
-outline_label=Şemaya belgeyê
-thumbs.title=Wênekokan nîşan bide
-thumbs_label=Wênekok
-findbar.title=Di belgeyê de bibîne
-findbar_label=Bibîne
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=Rûpel {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=Wênekoka rûpelê {{page}}
-
-# Find panel button title and messages
-find_label=Bibîne:
-find_previous.title=Peyva berê bibîne
-find_previous_label=Paşve
-find_next.title=Peyya pêş bibîne
-find_next_label=Pêşve
-find_highlight=Tevî beloq bike
-find_match_case_label=Ji bo tîpên hûrdek-girdek bihîstyar
-find_reached_top=Gihîşt serê rûpelê, ji dawiya rûpelê bidomîne
-find_reached_bottom=Gihîşt dawiya rûpelê, ji serê rûpelê bidomîne
-find_not_found=Peyv nehat dîtin
-
-# Error panel labels
-error_more_info=Zêdetir agahî
-error_less_info=Zêdetir agahî
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-error_version_info=PDF.js versiyon {{version}} (avanî: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Peyam: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Komik: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Pel: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Rêzik: {{line}}
-rendering_error=Di vehûrandina rûpelê de çewtî çêbû.
-
-# Predefined zoom values
-page_scale_width=Firehiya rûpelê
-page_scale_fit=Di rûpelê de bicî bike
-page_scale_auto=Xweber nêzîk bike
-page_scale_actual=Mezinahiya rastîn
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-loading_error_indicator=Xeletî
-loading_error=Dema ku PDF dihat barkirin çewtiyek çêbû.
-invalid_file_error=Pelê PDFê nederbasdar yan jî xirabe ye.
-missing_file_error=Pelê PDFê kêm e.
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[Nîşaneya {{type}}ê]
-password_label=Ji bo PDFê vekî şîfreyê binivîse.
-password_invalid=Şîfre çewt e. Tika ye dîsa biceribîne.
-password_ok=Temam
-password_cancel=Betal
-
-printing_not_supported=Hişyarî: Çapkirin ji hêla vê gerokê ve bi temamî nayê destekirin.
-printing_not_ready=Hişyarî: PDF bi temamî nehat barkirin û ji bo çapê ne amade ye.
-web_fonts_disabled=Fontên Webê neçalak in: Fontên PDFê yên veşartî nayên bikaranîn.
-document_colors_not_allowed=Destûr tune ye ku belgeyên PDFê rengên xwe bi kar bînin: Di gerokê de 'destûrê bide rûpelan ku rengên xwe bi kar bînin' nehatiye çalakirin.
diff --git a/static/pdf.js/locale/lij/viewer.properties b/static/pdf.js/locale/lij/viewer.properties
index 04445c0e9..754a39389 100644
--- a/static/pdf.js/locale/lij/viewer.properties
+++ b/static/pdf.js/locale/lij/viewer.properties
@@ -1,124 +1,214 @@
-# 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/.
+# 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.
-previous.title = Pagina precedente
-previous_label = Precedente
-next.title = Pagina dòppo
-next_label = Pròscima
-page_label = Pagina:
-page_of = de {{pageCount}}
-zoom_out.title = Diminoisci zoom
-zoom_out_label = Diminoisci zoom
-zoom_in.title = Aomenta zoom
-zoom_in_label = Aomenta zoom
-zoom.title = Zoom
-print.title = Stanpa
-print_label = Stanpa
-open_file.title = Arvi file
-open_file_label = Arvi
-download.title = Descaregamento
-download_label = Descaregamento
-bookmark.title = Vixon corente (còpia ò arvi inte 'n neuvo barcon)
-bookmark_label = Vixon corente
-outline.title = Veddi strutua documento
-outline_label = Strutua documento
-thumbs.title = Mostra miniatue
-thumbs_label = Miniatue
-thumb_page_title = Pagina {{page}}
-thumb_page_canvas = Miniatua da pagina {{page}}
-error_more_info = Ciù informaçioin
-error_less_info = Meno informaçioin
-error_version_info = PDF.js v{{version}} (build: {{build}})
-error_close = Særa
-missing_file_error = O file PDF o no gh'é.
-toggle_sidebar.title = Ativa/dizativa bara de scianco
-toggle_sidebar_label = Ativa/dizativa bara de scianco
-error_message = Mesaggio: {{message}}
-error_stack = Stack: {{stack}}
-error_file = File: {{file}}
-error_line = Linia: {{line}}
-rendering_error = Gh'é stæto 'n'erô itno rendering da pagina.
-page_scale_width = Larghessa pagina
-page_scale_fit = Adatta a una pagina
-page_scale_auto = Zoom aotomatico
-page_scale_actual = Dimenscioin efetive
-loading_error_indicator = Erô
-loading_error = S'é verificou 'n'erô itno caregamento do PDF.
-printing_not_supported = Atençion: a stanpa a no l'é conpletamente soportâ da sto navegatô.
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Pagina primma
+previous_label=Precedente
+next.title=Pagina dòppo
+next_label=Pròscima
-# Context menu
-page_rotate_cw.label=Gia in senso do releuio
-page_rotate_ccw.label=Gia in senso do releuio a-a reversa
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pagina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
+zoom_out.title=Diminoisci zoom
+zoom_out_label=Diminoisci zoom
+zoom_in.title=Aomenta zoom
+zoom_in_label=Aomenta zoom
+zoom.title=Zoom
presentation_mode.title=Vanni into mòddo de prezentaçion
presentation_mode_label=Mòddo de prezentaçion
+open_file.title=Arvi file
+open_file_label=Arvi
+print.title=Stanpa
+print_label=Stanpa
-find_label = Treuva:
-find_previous.title = Treuva a ripetiçion precedente do testo da çercâ
-find_previous_label = Precedente
-find_next.title = Treuva a ripetiçion dòppo do testo da çercâ
-find_next_label = Segoente
-find_highlight = Evidençia
-find_match_case_label = Maioscole/minoscole
-find_reached_bottom = Razonto l'iniçio da pagina, continoa da-a fin
-find_reached_top = Razonto a fin da pagina, continoa da l'iniçio
-find_not_found = Testo no trovou
-findbar.title = Treuva into documento
-findbar_label = Treuva
-first_page.label = Vanni a-a primma pagina
-last_page.label = Vanni a l'urtima pagina
-invalid_file_error = O file PDF o l'é no valido ò aroinou.
+# Secondary toolbar and context menu
+tools.title=Atressi
+tools_label=Atressi
+first_page.title=Vanni a-a primma pagina
+first_page_label=Vanni a-a primma pagina
+last_page.title=Vanni a l'urtima pagina
+last_page_label=Vanni a l'urtima pagina
+page_rotate_cw.title=Gia into verso oraio
+page_rotate_cw_label=Gia into verso oraio
+page_rotate_ccw.title=Gia into verso antioraio
+page_rotate_ccw_label=Gia into verso antioraio
-web_fonts_disabled = I font do web en dizativæ: inposcibile adeuviâ i carateri do PDF.
-printing_not_ready = Atençion: o PDF o no l'é ancon caregou conpletamente pe-a stanpa.
+cursor_text_select_tool.title=Abilita strumento de seleçion do testo
+cursor_text_select_tool_label=Strumento de seleçion do testo
+cursor_hand_tool.title=Abilita strumento man
+cursor_hand_tool_label=Strumento man
-document_colors_not_allowed = No l'é poscibile adeuviâ i pròpi coî pe-i documenti PDF: l'opçion do navegatô “Permetti a-e pagine de çerne i pròpi coî in cangio de quelli inpostæ” a l'é dizativâ.
-text_annotation_type.alt = [Anotaçion: {{type}}]
+scroll_vertical.title=Deuvia rebelamento verticale
+scroll_vertical_label=Rebelamento verticale
+scroll_horizontal.title=Deuvia rebelamento orizontâ
+scroll_horizontal_label=Rebelamento orizontâ
+scroll_wrapped.title=Deuvia rebelamento incapsolou
+scroll_wrapped_label=Rebelamento incapsolou
-first_page.title = Vanni a-a primma pagina
-first_page_label = Vanni a-a primma pagina
-last_page.title = Vanni a l'urtima pagina
-last_page_label = Vanni a l'urtima pagina
-page_rotate_ccw.title = Gia into verso antioraio
-page_rotate_ccw_label = Gia into verso antioraio
-page_rotate_cw.title = Gia into verso oraio
-page_rotate_cw_label = Gia into verso oraio
-tools.title = Strumenti
-tools_label = Strumenti
-password_label = Dimme a paròlla segreta pe arvî sto file PDF.
-password_invalid = Paròlla segreta sbalia. Preuva torna.
-password_ok = Va ben
-password_cancel = Anulla
+spread_none.title=No unite a-a difuxon de pagina
+spread_none_label=No difuxon
+spread_odd.title=Uniscite a-a difuxon de pagina co-o numero dèspa
+spread_odd_label=Difuxon dèspa
+spread_even.title=Uniscite a-a difuxon de pagina co-o numero pari
+spread_even_label=Difuxon pari
-document_properties.title = Propietæ do documento…
-document_properties_label = Propietæ do documento…
-document_properties_file_name = Nomme file:
-document_properties_file_size = Dimenscion file:
-document_properties_kb = {{size_kb}} kB ({{size_b}} byte)
-document_properties_mb = {{size_kb}} MB ({{size_b}} byte)
-document_properties_title = Titolo:
-document_properties_author = Aoto:
-document_properties_subject = Ogetto:
-document_properties_keywords = Paròlle ciave:
-document_properties_creation_date = Dæta creaçion:
-document_properties_modification_date = Dæta cangiamento:
-document_properties_date_string = {{date}}, {{time}}
-document_properties_creator = Aotô originale:
-document_properties_producer = Produtô PDF:
-document_properties_version = Verscion PDF:
-document_properties_page_count = Contezzo pagine:
-document_properties_close = Særa
+# Document properties dialog box
+document_properties.title=Propietæ do documento…
+document_properties_label=Propietæ do documento…
+document_properties_file_name=Nomme schedaio:
+document_properties_file_size=Dimenscion schedaio:
+# 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}} byte)
+# 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}} byte)
+document_properties_title=Titolo:
+document_properties_author=Aoto:
+document_properties_subject=Ogetto:
+document_properties_keywords=Paròlle ciave:
+document_properties_creation_date=Dæta creaçion:
+document_properties_modification_date=Dæta cangiamento:
+# 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=Aotô originale:
+document_properties_producer=Produtô PDF:
+document_properties_version=Verscion PDF:
+document_properties_page_count=Contezzo pagine:
+document_properties_page_size=Dimenscion da pagina:
+document_properties_page_size_unit_inches=dii gròsci
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=drito
+document_properties_page_size_orientation_landscape=desteizo
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Letia
+document_properties_page_size_name_legal=Lezze
+# 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=Vista veloce do Web:
+document_properties_linearized_yes=Sci
+document_properties_linearized_no=No
+document_properties_close=Særa
-hand_tool_enable.title = Ativa strumento man
-hand_tool_enable_label = Ativa strumento man
-hand_tool_disable.title = Dizativa strumento man
-hand_tool_disable_label = Dizativa strumento man
-attachments.title = Fanni vedde alegæ
-attachments_label = Alegæ
-page_scale_percent = {{scale}}%
-unexpected_response_error = Risposta inprevista do-u server
+print_progress_message=Praparo o documento pe-a stanpa…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Anulla
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Ativa/dizativa bara de scianco
+toggle_sidebar_label=Ativa/dizativa bara de scianco
+document_outline.title=Fanni vedde o contorno do documento (scicca doggio pe espande/ridue tutti i elementi)
+document_outline_label=Contorno do documento
+attachments.title=Fanni vedde alegæ
+attachments_label=Alegæ
+thumbs.title=Mostra miniatue
+thumbs_label=Miniatue
+findbar.title=Treuva into documento
+findbar_label=Treuva
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Pagina {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatua da pagina {{page}}
+# Find panel button title and messages
+find_input.title=Treuva
+find_input.placeholder=Treuva into documento…
+find_previous.title=Treuva a ripetiçion precedente do testo da çercâ
+find_previous_label=Precedente
+find_next.title=Treuva a ripetiçion dòppo do testo da çercâ
+find_next_label=Segoente
+find_highlight=Evidençia
+find_match_case_label=Maioscole/minoscole
+find_entire_word_label=Poula intrega
+find_reached_top=Razonto a fin da pagina, continoa da l'iniçio
+find_reached_bottom=Razonto l'iniçio da pagina, continoa da-a fin
+# 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}} de {{total}} corispondensa
+find_match_count[two]={{current}} de {{total}} corispondense
+find_match_count[few]={{current}} de {{total}} corispondense
+find_match_count[many]={{current}} de {{total}} corispondense
+find_match_count[other]={{current}} de {{total}} corispondense
+# 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]=Ciù de {{limit}} corispondense
+find_match_count_limit[one]=Ciù de {{limit}} corispondensa
+find_match_count_limit[two]=Ciù de {{limit}} corispondense
+find_match_count_limit[few]=Ciù de {{limit}} corispondense
+find_match_count_limit[many]=Ciù de {{limit}} corispondense
+find_match_count_limit[other]=Ciù de {{limit}} corispondense
+find_not_found=Testo no trovou
+
+# Predefined zoom values
+page_scale_width=Larghessa pagina
+page_scale_fit=Adatta a una pagina
+page_scale_auto=Zoom aotomatico
+page_scale_actual=Dimenscioin efetive
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+loading_error=S'é verificou 'n'erô itno caregamento do PDF.
+invalid_file_error=O schedaio PDF o l'é no valido ò aroinou.
+missing_file_error=O schedaio PDF o no gh'é.
+unexpected_response_error=Risposta inprevista do-u server
+
+rendering_error=Gh'é stæto 'n'erô itno rendering da pagina.
+
+# 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
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Anotaçion: {{type}}]
+password_label=Dimme a paròlla segreta pe arvî sto schedaio PDF.
+password_invalid=Paròlla segreta sbalia. Preuva torna.
+password_ok=Va ben
+password_cancel=Anulla
+
+printing_not_supported=Atençion: a stanpa a no l'é conpletamente soportâ da sto navegatô.
+printing_not_ready=Atençion: o PDF o no l'é ancon caregou conpletamente pe-a stanpa.
+web_fonts_disabled=I font do web en dizativæ: inposcibile adeuviâ i carateri do PDF.
diff --git a/static/pdf.js/locale/lo/viewer.properties b/static/pdf.js/locale/lo/viewer.properties
new file mode 100644
index 000000000..d0adc7099
--- /dev/null
+++ b/static/pdf.js/locale/lo/viewer.properties
@@ -0,0 +1,257 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=ຫນ້າກ່ອນຫນ້າ
+previous_label=ກ່ອນຫນ້າ
+next.title=ຫນ້າຖັດໄປ
+next_label=ຖັດໄປ
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=ຫນ້າ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=ຈາກ {{pagesCount}}
+# 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_label=ຂະຫຍາຍອອກ
+zoom_in.title=ຂະຫຍາຍເຂົ້າ
+zoom_in_label=ຂະຫຍາຍເຂົ້າ
+zoom.title=ຂະຫຍາຍ
+presentation_mode.title=ສັບປ່ຽນເປັນໂຫມດການນຳສະເຫນີ
+presentation_mode_label=ໂຫມດການນຳສະເຫນີ
+open_file.title=ເປີດໄຟລ໌
+open_file_label=ເປີດ
+print.title=ພິມ
+print_label=ພິມ
+
+save.title=ບັນທຶກ
+save_label=ບັນທຶກ
+bookmark1.title=ໜ້າປັດຈຸບັນ (ເບິ່ງ URL ຈາກໜ້າປັດຈຸບັນ)
+bookmark1_label=ຫນ້າປັດຈຸບັນ
+
+open_in_app.title=ເປີດໃນ App
+open_in_app_label=ເປີດໃນ App
+
+# Secondary toolbar and context menu
+tools.title=ເຄື່ອງມື
+tools_label=ເຄື່ອງມື
+first_page.title=ໄປທີ່ຫນ້າທຳອິດ
+first_page_label=ໄປທີ່ຫນ້າທຳອິດ
+last_page.title=ໄປທີ່ຫນ້າສຸດທ້າຍ
+last_page_label=ໄປທີ່ຫນ້າສຸດທ້າຍ
+page_rotate_cw.title=ຫມູນຕາມເຂັມໂມງ
+page_rotate_cw_label=ຫມູນຕາມເຂັມໂມງ
+page_rotate_ccw.title=ຫມູນທວນເຂັມໂມງ
+page_rotate_ccw_label=ຫມູນທວນເຂັມໂມງ
+
+cursor_text_select_tool.title=ເປີດໃຊ້ເຄື່ອງມືການເລືອກຂໍ້ຄວາມ
+cursor_text_select_tool_label=ເຄື່ອງມືເລືອກຂໍ້ຄວາມ
+cursor_hand_tool.title=ເປີດໃຊ້ເຄື່ອງມືມື
+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=ໃຊ້ Wrapped Scrolling
+scroll_wrapped_label=Wrapped Scrolling
+
+spread_none.title=ບໍ່ຕ້ອງຮ່ວມການແຜ່ກະຈາຍຫນ້າ
+spread_none_label=ບໍ່ມີການແຜ່ກະຈາຍ
+spread_odd.title=ເຂົ້າຮ່ວມການແຜ່ກະຈາຍຫນ້າເລີ່ມຕົ້ນດ້ວຍຫນ້າເລກຄີກ
+spread_odd_label=ການແຜ່ກະຈາຍຄີກ
+spread_even.title=ເຂົ້າຮ່ວມການແຜ່ກະຈາຍຂອງຫນ້າເລີ່ມຕົ້ນດ້ວຍຫນ້າເລກຄູ່
+spread_even_label=ການແຜ່ກະຈາຍຄູ່
+
+# Document properties dialog box
+document_properties.title=ຄຸນສົມບັດເອກະສານ...
+document_properties_label=ຄຸນສົມບັດເອກະສານ...
+document_properties_file_name=ຊື່ໄຟລ໌:
+document_properties_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}} ໄບຕ໌)
+# 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_author=ຜູ້ຂຽນ:
+document_properties_subject=ຫົວຂໍ້:
+document_properties_keywords=ຄໍາທີ່ຕ້ອງການຄົ້ນຫາ:
+document_properties_creation_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_creator=ຜູ້ສ້າງ:
+document_properties_producer=ຜູ້ຜະລິດ PDF:
+document_properties_version=ເວີຊັ່ນ PDF:
+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=ປິດ
+
+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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=ເປີດ/ປິດແຖບຂ້າງ
+toggle_sidebar_notification2.title=ສະຫຼັບແຖບດ້ານຂ້າງ (ເອກະສານປະກອບມີໂຄງຮ່າງ/ໄຟລ໌ແນບ/ຊັ້ນຂໍ້ມູນ)
+toggle_sidebar_label=ເປີດ/ປິດແຖບຂ້າງ
+document_outline.title=ສະແດງໂຄງຮ່າງເອກະສານ (ກົດສອງຄັ້ງເພື່ອຂະຫຍາຍ / ຫຍໍ້ລາຍການທັງຫມົດ)
+document_outline_label=ເຄົ້າຮ່າງເອກະສານ
+attachments.title=ສະແດງໄຟລ໌ແນບ
+attachments_label=ໄຟລ໌ແນບ
+layers.title=ສະແດງຊັ້ນຂໍ້ມູນ (ຄລິກສອງເທື່ອເພື່ອຣີເຊັດຊັ້ນຂໍ້ມູນທັງໝົດໃຫ້ເປັນສະຖານະເລີ່ມຕົ້ນ)
+layers_label=ຊັ້ນ
+thumbs.title=ສະແດງຮູບຫຍໍ້
+thumbs_label=ຮູບຕົວຢ່າງ
+current_outline_item.title=ຊອກຫາລາຍການໂຄງຮ່າງປະຈຸບັນ
+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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=ໜ້າ {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=ຮູບຕົວຢ່າງຂອງໜ້າ {{page}}
+
+# Find panel button title and messages
+find_input.title=ຄົ້ນຫາ
+find_input.placeholder=ຊອກຫາໃນເອກະສານ...
+find_previous.title=ຊອກຫາການປະກົດຕົວທີ່ຜ່ານມາຂອງປະໂຫຍກ
+find_previous_label=ກ່ອນຫນ້ານີ້
+find_next.title=ຊອກຫາຕຳແຫນ່ງຖັດໄປຂອງວະລີ
+find_next_label=ຕໍ່ໄປ
+find_highlight=ໄຮໄລທ໌ທັງຫມົດ
+find_match_case_label=ກໍລະນີທີ່ກົງກັນ
+find_match_diacritics_label=ເຄື່ອງໝາຍກຳກັບການອອກສຽງກົງກັນ
+find_entire_word_label=ກົງກັນທຸກຄຳ
+find_reached_top=ມາຮອດເທິງຂອງເອກະສານ, ສືບຕໍ່ຈາກລຸ່ມ
+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=ບໍ່ພົບວະລີທີ່ຕ້ອງການ
+
+# Predefined zoom values
+page_scale_width=ຄວາມກວ້າງໜ້າ
+page_scale_fit=ໜ້າພໍດີ
+page_scale_auto=ຊູມອັດຕະໂນມັດ
+page_scale_actual=ຂະໜາດຕົວຈິງ
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=ມີຂໍ້ຜິດພາດເກີດຂື້ນຂະນະທີ່ກຳລັງໂຫລດ PDF.
+invalid_file_error=ໄຟລ໌ PDF ບໍ່ຖືກຕ້ອງຫລືເສຍຫາຍ.
+missing_file_error=ບໍ່ມີໄຟລ໌ PDF.
+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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} ຄຳບັນຍາຍ]
+password_label=ໃສ່ລະຫັດຜ່ານເພື່ອເປີດໄຟລ໌ PDF ນີ້.
+password_invalid=ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ. ກະລຸນາລອງອີກຄັ້ງ.
+password_ok=ຕົກລົງ
+password_cancel=ຍົກເລີກ
+
+printing_not_supported=ຄຳເຕືອນ: ບຼາວເຊີນີ້ບໍ່ຮອງຮັບການພິມຢ່າງເຕັມທີ່.
+printing_not_ready=ຄໍາເຕືອນ: PDF ບໍ່ໄດ້ຖືກໂຫຼດຢ່າງເຕັມທີ່ສໍາລັບການພິມ.
+web_fonts_disabled=ຟອນເວັບຖືກປິດໃຊ້ງານ: ບໍ່ສາມາດໃຊ້ຟອນ PDF ທີ່ຝັງໄວ້ໄດ້.
+
+# Editor
+editor_free_text2.title=ຂໍ້ຄວາມ
+editor_free_text2_label=ຂໍ້ຄວາມ
+editor_ink2.title=ແຕ້ມ
+editor_ink2_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 aria
+editor_free_text2_aria_label=ຕົວແກ້ໄຂຂໍ້ຄວາມ
+editor_ink2_aria_label=ຕົວແກ້ໄຂຮູບແຕ້ມ
+editor_ink_canvas_aria_label=ຮູບພາບທີ່ຜູ້ໃຊ້ສ້າງ
diff --git a/static/pdf.js/locale/locale.properties b/static/pdf.js/locale/locale.properties
index 9aded1b59..386801572 100644
--- a/static/pdf.js/locale/locale.properties
+++ b/static/pdf.js/locale/locale.properties
@@ -4,18 +4,12 @@
[af]
@import url(af/viewer.properties)
-[ak]
-@import url(ak/viewer.properties)
-
[an]
@import url(an/viewer.properties)
[ar]
@import url(ar/viewer.properties)
-[as]
-@import url(as/viewer.properties)
-
[ast]
@import url(ast/viewer.properties)
@@ -28,27 +22,33 @@
[bg]
@import url(bg/viewer.properties)
-[bn-BD]
-@import url(bn-BD/viewer.properties)
+[bn]
+@import url(bn/viewer.properties)
-[bn-IN]
-@import url(bn-IN/viewer.properties)
+[bo]
+@import url(bo/viewer.properties)
[br]
@import url(br/viewer.properties)
+[brx]
+@import url(brx/viewer.properties)
+
[bs]
@import url(bs/viewer.properties)
[ca]
@import url(ca/viewer.properties)
+[cak]
+@import url(cak/viewer.properties)
+
+[ckb]
+@import url(ckb/viewer.properties)
+
[cs]
@import url(cs/viewer.properties)
-[csb]
-@import url(csb/viewer.properties)
-
[cy]
@import url(cy/viewer.properties)
@@ -58,18 +58,21 @@
[de]
@import url(de/viewer.properties)
+[dsb]
+@import url(dsb/viewer.properties)
+
[el]
@import url(el/viewer.properties)
+[en-CA]
+@import url(en-CA/viewer.properties)
+
[en-GB]
@import url(en-GB/viewer.properties)
[en-US]
@import url(en-US/viewer.properties)
-[en-ZA]
-@import url(en-ZA/viewer.properties)
-
[eo]
@import url(eo/viewer.properties)
@@ -103,6 +106,9 @@
[fr]
@import url(fr/viewer.properties)
+[fur]
+@import url(fur/viewer.properties)
+
[fy-NL]
@import url(fy-NL/viewer.properties)
@@ -115,6 +121,9 @@
[gl]
@import url(gl/viewer.properties)
+[gn]
+@import url(gn/viewer.properties)
+
[gu-IN]
@import url(gu-IN/viewer.properties)
@@ -127,12 +136,21 @@
[hr]
@import url(hr/viewer.properties)
+[hsb]
+@import url(hsb/viewer.properties)
+
[hu]
@import url(hu/viewer.properties)
[hy-AM]
@import url(hy-AM/viewer.properties)
+[hye]
+@import url(hye/viewer.properties)
+
+[ia]
+@import url(ia/viewer.properties)
+
[id]
@import url(id/viewer.properties)
@@ -148,6 +166,9 @@
[ka]
@import url(ka/viewer.properties)
+[kab]
+@import url(kab/viewer.properties)
+
[kk]
@import url(kk/viewer.properties)
@@ -160,33 +181,27 @@
[ko]
@import url(ko/viewer.properties)
-[ku]
-@import url(ku/viewer.properties)
-
-[lg]
-@import url(lg/viewer.properties)
-
[lij]
@import url(lij/viewer.properties)
+[lo]
+@import url(lo/viewer.properties)
+
[lt]
@import url(lt/viewer.properties)
+[ltg]
+@import url(ltg/viewer.properties)
+
[lv]
@import url(lv/viewer.properties)
-[mai]
-@import url(mai/viewer.properties)
+[meh]
+@import url(meh/viewer.properties)
[mk]
@import url(mk/viewer.properties)
-[ml]
-@import url(ml/viewer.properties)
-
-[mn]
-@import url(mn/viewer.properties)
-
[mr]
@import url(mr/viewer.properties)
@@ -199,21 +214,18 @@
[nb-NO]
@import url(nb-NO/viewer.properties)
+[ne-NP]
+@import url(ne-NP/viewer.properties)
+
[nl]
@import url(nl/viewer.properties)
[nn-NO]
@import url(nn-NO/viewer.properties)
-[nso]
-@import url(nso/viewer.properties)
-
[oc]
@import url(oc/viewer.properties)
-[or]
-@import url(or/viewer.properties)
-
[pa-IN]
@import url(pa-IN/viewer.properties)
@@ -235,11 +247,17 @@
[ru]
@import url(ru/viewer.properties)
-[rw]
-@import url(rw/viewer.properties)
+[sat]
+@import url(sat/viewer.properties)
-[sah]
-@import url(sah/viewer.properties)
+[sc]
+@import url(sc/viewer.properties)
+
+[scn]
+@import url(scn/viewer.properties)
+
+[sco]
+@import url(sco/viewer.properties)
[si]
@import url(si/viewer.properties)
@@ -247,6 +265,9 @@
[sk]
@import url(sk/viewer.properties)
+[skr]
+@import url(skr/viewer.properties)
+
[sl]
@import url(sl/viewer.properties)
@@ -262,36 +283,39 @@
[sv-SE]
@import url(sv-SE/viewer.properties)
-[sw]
-@import url(sw/viewer.properties)
+[szl]
+@import url(szl/viewer.properties)
[ta]
@import url(ta/viewer.properties)
-[ta-LK]
-@import url(ta-LK/viewer.properties)
-
[te]
@import url(te/viewer.properties)
+[tg]
+@import url(tg/viewer.properties)
+
[th]
@import url(th/viewer.properties)
[tl]
@import url(tl/viewer.properties)
-[tn]
-@import url(tn/viewer.properties)
-
[tr]
@import url(tr/viewer.properties)
+[trs]
+@import url(trs/viewer.properties)
+
[uk]
@import url(uk/viewer.properties)
[ur]
@import url(ur/viewer.properties)
+[uz]
+@import url(uz/viewer.properties)
+
[vi]
@import url(vi/viewer.properties)
@@ -307,6 +331,3 @@
[zh-TW]
@import url(zh-TW/viewer.properties)
-[zu]
-@import url(zu/viewer.properties)
-
diff --git a/static/pdf.js/locale/lt/viewer.properties b/static/pdf.js/locale/lt/viewer.properties
index e2f50b9c7..6d83b07e4 100644
--- a/static/pdf.js/locale/lt/viewer.properties
+++ b/static/pdf.js/locale/lt/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Ankstesnis
next.title=Kitas puslapis
next_label=Kitas
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Puslapis:
-page_of=iš {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Puslapis
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=iš {{pagesCount}}
+# 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}} iš {{pagesCount}})
zoom_out.title=Sumažinti
zoom_out_label=Sumažinti
@@ -36,31 +39,39 @@ open_file.title=Atverti failą
open_file_label=Atverti
print.title=Spausdinti
print_label=Spausdinti
-download.title=Parsiųsti
-download_label=Parsiųsti
-bookmark.title=Esamojo rodinio saitas (kopijavimui ar atvėrimui kitame lange)
-bookmark_label=Esamasis rodinys
# Secondary toolbar and context menu
tools.title=Priemonės
tools_label=Priemonės
first_page.title=Eiti į pirmą puslapį
-first_page.label=Eiti į pirmą puslapį
first_page_label=Eiti į pirmą puslapį
last_page.title=Eiti į paskutinį puslapį
-last_page.label=Eiti į paskutinį puslapį
last_page_label=Eiti į paskutinį puslapį
page_rotate_cw.title=Pasukti pagal laikrodžio rodyklę
-page_rotate_cw.label=Pasukti pagal laikrodžio rodyklę
page_rotate_cw_label=Pasukti pagal laikrodžio rodyklę
page_rotate_ccw.title=Pasukti prieš laikrodžio rodyklę
-page_rotate_ccw.label=Pasukti prieš laikrodžio rodyklę
page_rotate_ccw_label=Pasukti prieš laikrodžio rodyklę
-hand_tool_enable.title=Įgalinti vilkimo veikseną
-hand_tool_enable_label=Įgalinti vilkimo veikseną
-hand_tool_disable.title=Išjungti vilkimo veikseną
-hand_tool_disable_label=Išjungti vilkimo veikseną
+cursor_text_select_tool.title=Įjungti teksto žymėjimo įrankį
+cursor_text_select_tool_label=Teksto žymėjimo įrankis
+cursor_hand_tool.title=Įjungti vilkimo įrankį
+cursor_hand_tool_label=Vilkimo įrankis
+
+scroll_page.title=Naudoti puslapio slinkimą
+scroll_page_label=Puslapio slinkimas
+scroll_vertical.title=Naudoti vertikalų slinkimą
+scroll_vertical_label=Vertikalus slinkimas
+scroll_horizontal.title=Naudoti horizontalų slinkimą
+scroll_horizontal_label=Horizontalus slinkimas
+scroll_wrapped.title=Naudoti išklotą slinkimą
+scroll_wrapped_label=Išklotas slinkimas
+
+spread_none.title=Nejungti puslapių į dvilapius
+spread_none_label=Be dvilapių
+spread_odd.title=Sujungti į dvilapius pradedant nelyginiais puslapiais
+spread_odd_label=Nelyginiai dvilapiai
+spread_even.title=Sujungti į dvilapius pradedant lyginiais puslapiais
+spread_even_label=Lyginiai dvilapiai
# Document properties dialog box
document_properties.title=Dokumento savybės…
@@ -86,22 +97,58 @@ document_properties_creator=Kūrėjas:
document_properties_producer=PDF generatorius:
document_properties_version=PDF versija:
document_properties_page_count=Puslapių skaičius:
+document_properties_page_size=Puslapio dydis:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=stačias
+document_properties_page_size_orientation_landscape=gulsčias
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Laiškas
+document_properties_page_size_name_legal=Dokumentas
+# 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=Spartus žiniatinklio rodinys:
+document_properties_linearized_yes=Taip
+document_properties_linearized_no=Ne
document_properties_close=Užverti
+print_progress_message=Dokumentas ruošiamas spausdinimui…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Atsisakyti
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Rodyti / slėpti šoninį polangį
+toggle_sidebar_notification2.title=Parankinė (dokumentas turi struktūrą / priedų / sluoksnių)
toggle_sidebar_label=Šoninis polangis
-outline.title=Rodyti dokumento metmenis
-outline_label=Dokumento metmenys
+document_outline.title=Rodyti dokumento struktūrą (spustelėkite dukart norėdami išplėsti/suskleisti visus elementus)
+document_outline_label=Dokumento struktūra
attachments.title=Rodyti priedus
attachments_label=Priedai
+layers.title=Rodyti sluoksnius (spustelėkite dukart, norėdami atstatyti visus sluoksnius į numatytąją būseną)
+layers_label=Sluoksniai
thumbs.title=Rodyti puslapių miniatiūras
thumbs_label=Miniatiūros
+current_outline_item.title=Rasti dabartinį struktūros elementą
+current_outline_item_label=Dabartinis struktūros elementas
findbar.title=Ieškoti dokumente
-findbar_label=Ieškoti
+findbar_label=Rasti
+additional_layers=Papildomi sluoksniai
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark={{page}} puslapis
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +158,41 @@ thumb_page_title={{page}} puslapis
thumb_page_canvas={{page}} puslapio miniatiūra
# Find panel button title and messages
-find_label=Ieškoti:
+find_input.title=Rasti
+find_input.placeholder=Rasti dokumente…
find_previous.title=Ieškoti ankstesnio frazės egzemplioriaus
find_previous_label=Ankstesnis
find_next.title=Ieškoti tolesnio frazės egzemplioriaus
find_next_label=Tolesnis
find_highlight=Viską paryškinti
find_match_case_label=Skirti didžiąsias ir mažąsias raides
+find_match_diacritics_label=Skirti diakritinius ženklus
+find_entire_word_label=Ištisi žodžiai
find_reached_top=Pasiekus dokumento pradžią, paieška pratęsta nuo pabaigos
find_reached_bottom=Pasiekus dokumento pabaigą, paieška pratęsta nuo pradžios
+# 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}} iš {{total}} atitikmens
+find_match_count[two]={{current}} iš {{total}} atitikmenų
+find_match_count[few]={{current}} iš {{total}} atitikmenų
+find_match_count[many]={{current}} iš {{total}} atitikmenų
+find_match_count[other]={{current}} iš {{total}} atitikmens
+# 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]=Daugiau nei {{limit}} atitikmenų
+find_match_count_limit[one]=Daugiau nei {{limit}} atitikmuo
+find_match_count_limit[two]=Daugiau nei {{limit}} atitikmenys
+find_match_count_limit[few]=Daugiau nei {{limit}} atitikmenys
+find_match_count_limit[many]=Daugiau nei {{limit}} atitikmenų
+find_match_count_limit[other]=Daugiau nei {{limit}} atitikmuo
find_not_found=Ieškoma frazė nerasta
-# Error panel labels
-error_more_info=Išsamiau
-error_less_info=Glausčiau
-error_close=Užverti
-# 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}} (darinys: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Pranešimas: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Dėklas: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Failas: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Eilutė: {{line}}
-rendering_error=Atvaizduojant puslapį, įvyko klaida.
-
# Predefined zoom values
page_scale_width=Priderinti prie lapo pločio
page_scale_fit=Pritaikyti prie lapo dydžio
@@ -150,13 +202,17 @@ page_scale_actual=Tikras dydis
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Klaida
-loading_error=Įkeliant PDF failą, įvyko klaida.
+loading_error=Įkeliant PDF failą įvyko klaida.
invalid_file_error=Tai nėra PDF failas arba jis yra sugadintas.
missing_file_error=PDF failas nerastas.
unexpected_response_error=Netikėtas serverio atsakas.
+rendering_error=Atvaizduojant puslapį įvyko klaida.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -169,5 +225,5 @@ password_cancel=Atsisakyti
printing_not_supported=Dėmesio! Spausdinimas šioje naršyklėje nėra pilnai realizuotas.
printing_not_ready=Dėmesio! PDF failas dar nėra pilnai įkeltas spausdinimui.
-web_fonts_disabled=Neįgalinti saityno šriftai – šiame PDF faile esančių šriftų naudoti negalima.
-document_colors_not_allowed=PDF dokumentams neleidžiama nurodyti savo spalvų, nes išjungta naršyklės nuostata „Leisti tinklalapiams nurodyti spalvas“.
+web_fonts_disabled=Saityno šriftai išjungti – PDF faile esančių šriftų naudoti negalima.
+
diff --git a/static/pdf.js/locale/ltg/viewer.properties b/static/pdf.js/locale/ltg/viewer.properties
new file mode 100644
index 000000000..26ee0696c
--- /dev/null
+++ b/static/pdf.js/locale/ltg/viewer.properties
@@ -0,0 +1,192 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Īprīkšejā lopa
+previous_label=Īprīkšejā
+next.title=Nuokomuo lopa
+next_label=Nuokomuo
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Lopa
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=nu {{pagesCount}}
+# 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}} nu {{pagesCount}})
+
+zoom_out.title=Attuolynuot
+zoom_out_label=Attuolynuot
+zoom_in.title=Pītuvynuot
+zoom_in_label=Pītuvynuot
+zoom.title=Palelynuojums
+presentation_mode.title=Puorslēgtīs iz Prezentacejis režymu
+presentation_mode_label=Prezentacejis režyms
+open_file.title=Attaiseit failu
+open_file_label=Attaiseit
+print.title=Drukuošona
+print_label=Drukōt
+
+# Secondary toolbar and context menu
+tools.title=Reiki
+tools_label=Reiki
+first_page.title=Īt iz pyrmū lopu
+first_page_label=Īt iz pyrmū lopu
+last_page.title=Īt iz piedejū lopu
+last_page_label=Īt iz piedejū lopu
+page_rotate_cw.title=Pagrīzt pa pulksteni
+page_rotate_cw_label=Pagrīzt pa pulksteni
+page_rotate_ccw.title=Pagrīzt pret pulksteni
+page_rotate_ccw_label=Pagrīzt pret pulksteni
+
+cursor_text_select_tool.title=Aktivizēt teksta izvieles reiku
+cursor_text_select_tool_label=Teksta izvieles reiks
+cursor_hand_tool.title=Aktivēt rūkys reiku
+cursor_hand_tool_label=Rūkys reiks
+
+scroll_vertical.title=Izmontōt vertikalū ritinōšonu
+scroll_vertical_label=Vertikalō ritinōšona
+scroll_horizontal.title=Izmontōt horizontalū ritinōšonu
+scroll_horizontal_label=Horizontalō ritinōšona
+scroll_wrapped.title=Izmontōt mārūgojamū ritinōšonu
+scroll_wrapped_label=Mārūgojamō ritinōšona
+
+spread_none.title=Naizmontōt lopu atvāruma režimu
+spread_none_label=Bez atvārumim
+spread_odd.title=Izmontōt lopu atvārumus sōkut nu napōra numeru lopom
+spread_odd_label=Napōra lopys pa kreisi
+spread_even.title=Izmontōt lopu atvārumus sōkut nu pōra numeru lopom
+spread_even_label=Pōra lopys pa kreisi
+
+# Document properties dialog box
+document_properties.title=Dokumenta īstatiejumi…
+document_properties_label=Dokumenta īstatiejumi…
+document_properties_file_name=Faila nūsaukums:
+document_properties_file_size=Faila izmārs:
+# 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}} biti)
+# 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}} biti)
+document_properties_title=Nūsaukums:
+document_properties_author=Autors:
+document_properties_subject=Tema:
+document_properties_keywords=Atslāgi vuordi:
+document_properties_creation_date=Izveides datums:
+document_properties_modification_date=lobuošonys datums:
+# 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=Radeituojs:
+document_properties_producer=PDF producents:
+document_properties_version=PDF verseja:
+document_properties_page_count=Lopu skaits:
+document_properties_page_size=Lopas izmārs:
+document_properties_page_size_unit_inches=collas
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=portreta orientaceja
+document_properties_page_size_orientation_landscape=ainovys orientaceja
+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=Jā
+document_properties_linearized_no=Nā
+document_properties_close=Aiztaiseit
+
+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=Atceļt
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Puorslēgt suonu jūslu
+toggle_sidebar_label=Puorslēgt suonu jūslu
+document_outline.title=Show Document Outline (double-click to expand/collapse all items)
+document_outline_label=Dokumenta saturs
+attachments.title=Show Attachments
+attachments_label=Attachments
+thumbs.title=Paruodeit seiktālus
+thumbs_label=Seiktāli
+findbar.title=Mekleit dokumentā
+findbar_label=Mekleit
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Lopa {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Lopys {{page}} seiktāls
+
+# Find panel button title and messages
+find_input.title=Mekleit
+find_input.placeholder=Mekleit dokumentā…
+find_previous.title=Atrast īprīkšejū
+find_previous_label=Īprīkšejā
+find_next.title=Atrast nuokamū
+find_next_label=Nuokomuo
+find_highlight=Īkruosuot vysys
+find_match_case_label=Lelū, mozū burtu jiuteigs
+find_reached_top=Sasnīgts dokumenta suokums, turpynojom nu beigom
+find_reached_bottom=Sasnīgtys dokumenta beigys, turpynojom nu suokuma
+find_not_found=Frāze nav atrosta
+
+# Predefined zoom values
+page_scale_width=Lopys plotumā
+page_scale_fit=Ītylpynūt lopu
+page_scale_auto=Automatiskais izmārs
+page_scale_actual=Patīsais izmārs
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+loading_error=Īluodejūt PDF nūtyka klaida.
+invalid_file_error=Nadereigs voi būjuots PDF fails.
+missing_file_error=PDF fails nav atrosts.
+unexpected_response_error=Unexpected server response.
+
+rendering_error=Attālojūt lopu rodās klaida
+
+# 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
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Annotation]
+password_label=Īvodit paroli, kab attaiseitu PDF failu.
+password_invalid=Napareiza parole, raugit vēļreiz.
+password_ok=Labi
+password_cancel=Atceļt
+
+printing_not_supported=Uzmaneibu: Drukuošona nu itei puorlūka dorbojās tikai daleji.
+printing_not_ready=Uzmaneibu: PDF nav pilneibā īluodeits drukuošonai.
+web_fonts_disabled=Šķārsteikla fonti nav aktivizāti: Navar īgult PDF fontus.
+
diff --git a/static/pdf.js/locale/lv/viewer.properties b/static/pdf.js/locale/lv/viewer.properties
index 58aa95320..70e258ddf 100644
--- a/static/pdf.js/locale/lv/viewer.properties
+++ b/static/pdf.js/locale/lv/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Iepriekšējā
next.title=Nākamā lapa
next_label=Nākamā
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Lapa:
-page_of=no {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Lapa
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=no {{pagesCount}}
+# 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}} no {{pagesCount}})
zoom_out.title=Attālināt\u0020
zoom_out_label=Attālināt
@@ -36,31 +39,37 @@ open_file.title=Atvērt failu
open_file_label=Atvērt
print.title=Drukāšana
print_label=Drukāt
-download.title=Lejupielāde
-download_label=Lejupielādēt
-bookmark.title=Pašreizējais skats (kopēt vai atvērt jaunā logā)
-bookmark_label=Pašreizējais skats
# Secondary toolbar and context menu
tools.title=Rīki
tools_label=Rīki
first_page.title=Iet uz pirmo lapu
-first_page.label=Iet uz pirmo lapu
first_page_label=Iet uz pirmo lapu
last_page.title=Iet uz pēdējo lapu
-last_page.label=Iet uz pēdējo lapu
last_page_label=Iet uz pēdējo lapu
page_rotate_cw.title=Pagriezt pa pulksteni
-page_rotate_cw.label=Pagriezt pa pulksteni
page_rotate_cw_label=Pagriezt pa pulksteni
page_rotate_ccw.title=Pagriezt pret pulksteni
-page_rotate_ccw.label=Pagriezt pret pulksteni
page_rotate_ccw_label=Pagriezt pret pulksteni
-hand_tool_enable.title=Aktivēt rokas rīku
-hand_tool_enable_label=Aktivēt rokas rīku
-hand_tool_disable.title=Deaktivēt rokas rīku
-hand_tool_disable_label=Deaktivēt rokas rīku
+cursor_text_select_tool.title=Aktivizēt teksta izvēles rīku
+cursor_text_select_tool_label=Teksta izvēles rīks
+cursor_hand_tool.title=Aktivēt rokas rīku
+cursor_hand_tool_label=Rokas rīks
+
+scroll_vertical.title=Izmantot vertikālo ritināšanu
+scroll_vertical_label=Vertikālā ritināšana
+scroll_horizontal.title=Izmantot horizontālo ritināšanu
+scroll_horizontal_label=Horizontālā ritināšana
+scroll_wrapped.title=Izmantot apkļauto ritināšanu
+scroll_wrapped_label=Apkļautā ritināšana
+
+spread_none.title=Nepievienoties lapu izpletumiem
+spread_none_label=Neizmantot izpletumus
+spread_odd.title=Izmantot lapu izpletumus sākot ar nepāra numuru lapām
+spread_odd_label=Nepāra izpletumi
+spread_even.title=Izmantot lapu izpletumus sākot ar pāra numuru lapām
+spread_even_label=Pāra izpletumi
# Document properties dialog box
document_properties.title=Dokumenta iestatījumi…
@@ -86,15 +95,43 @@ document_properties_creator=Radītājs:
document_properties_producer=PDF producents:
document_properties_version=PDF versija:
document_properties_page_count=Lapu skaits:
+document_properties_page_size=Papīra izmērs:
+document_properties_page_size_unit_inches=collas
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=portretorientācija
+document_properties_page_size_orientation_landscape=ainavorientācija
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Vēstule
+document_properties_page_size_name_legal=Juridiskie teksti
+# 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=Ātrā tīmekļa skats:
+document_properties_linearized_yes=Jā
+document_properties_linearized_no=Nē
document_properties_close=Aizvērt
+print_progress_message=Gatavo dokumentu drukāšanai...
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Atcelt
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Pārslēgt sānu joslu
toggle_sidebar_label=Pārslēgt sānu joslu
-outline.title=Parādīt dokumenta saturu
-outline_label=Dokumenta saturs
+document_outline.title=Rādīt dokumenta struktūru (veiciet dubultklikšķi lai izvērstu/sakļautu visus vienumus)
+document_outline_label=Dokumenta saturs
attachments.title=Rādīt pielikumus
attachments_label=Pielikumi
thumbs.title=Parādīt sīktēlus
@@ -111,36 +148,40 @@ thumb_page_title=Lapa {{page}}
thumb_page_canvas=Lapas {{page}} sīktēls
# Find panel button title and messages
-find_label=Meklēt:
+find_input.title=Meklēt
+find_input.placeholder=Meklēt dokumentā…
find_previous.title=Atrast iepriekšējo
find_previous_label=Iepriekšējā
find_next.title=Atrast nākamo
find_next_label=Nākamā
find_highlight=Iekrāsot visas
find_match_case_label=Lielo, mazo burtu jutīgs
+find_entire_word_label=Veselus vārdus
find_reached_top=Sasniegts dokumenta sākums, turpinām no beigām
find_reached_bottom=Sasniegtas dokumenta beigas, turpinām no sākuma
+# 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}} no {{total}} rezultāta
+find_match_count[two]={{current}} no {{total}} rezultātiem
+find_match_count[few]={{current}} no {{total}} rezultātiem
+find_match_count[many]={{current}} no {{total}} rezultātiem
+find_match_count[other]={{current}} no {{total}} rezultātiem
+# 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]=Vairāk nekā {{limit}} rezultāti
+find_match_count_limit[one]=Vairāk nekā {{limit}} rezultāti
+find_match_count_limit[two]=Vairāk nekā {{limit}} rezultāti
+find_match_count_limit[few]=Vairāk nekā {{limit}} rezultāti
+find_match_count_limit[many]=Vairāk nekā {{limit}} rezultāti
+find_match_count_limit[other]=Vairāk nekā {{limit}} rezultāti
find_not_found=Frāze nav atrasta
-# Error panel labels
-error_more_info=Vairāk informācijas
-error_less_info=MAzāk informācijas
-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=Ziņojums: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Steks: {{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=Rindiņa: {{line}}
-rendering_error=Attēlojot lapu radās kļūda
-
# Predefined zoom values
page_scale_width=Lapas platumā
page_scale_fit=Ietilpinot lapu
@@ -150,13 +191,13 @@ page_scale_actual=Patiesais izmērs
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Kļūda
loading_error=Ielādējot PDF notika kļūda.
invalid_file_error=Nederīgs vai bojāts PDF fails.
missing_file_error=PDF fails nav atrasts.
unexpected_response_error=Negaidīa servera atbilde.
+rendering_error=Attēlojot lapu radās kļūda
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +211,4 @@ password_cancel=Atcelt
printing_not_supported=Uzmanību: Drukāšana no šī pārlūka darbojas tikai daļēji.
printing_not_ready=Uzmanību: PDF nav pilnībā ielādēts drukāšanai.
web_fonts_disabled=Tīmekļa fonti nav aktivizēti: Nevar iegult PDF fontus.
-document_colors_not_allowed=PDF dokumentiem nav atļauts izmantot pašiem savas krāsas: „Atļaut lapām izvēlēties pašām savas krāsas“ ir deaktivēts pārlūkā.
+
diff --git a/static/pdf.js/locale/mai/viewer.properties b/static/pdf.js/locale/mai/viewer.properties
deleted file mode 100644
index 4eb0b17a2..000000000
--- a/static/pdf.js/locale/mai/viewer.properties
+++ /dev/null
@@ -1,173 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=पछिला पृष्ठ
-previous_label=पछिला
-next.title=अगिला पृष्ठ
-next_label=आगाँ
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=पृष्ठ:
-page_of={{pageCount}} क
-
-zoom_out.title=छोट करू
-zoom_out_label=छोट करू
-zoom_in.title=पैघ करू
-zoom_in_label=जूम इन
-zoom.title=छोट-पैघ करू\u0020
-presentation_mode.title=प्रस्तुति अवस्थामे जाउ
-presentation_mode_label=प्रस्तुति अवस्था
-open_file.title=फाइल खोलू
-open_file_label=खोलू
-print.title=छापू
-print_label=छापू
-download.title=डाउनलोड
-download_label=डाउनलोड
-bookmark.title=मोजुदा दृश्य (नव विंडोमे नकल लिअ अथवा खोलू)
-bookmark_label=वर्तमान दृश्य
-
-# Secondary toolbar and context menu
-tools.title=अओजार
-tools_label=अओजार
-first_page.title=प्रथम पृष्ठ पर जाउ
-first_page.label=प्रथम पृष्ठ पर जाउ
-first_page_label=प्रथम पृष्ठ पर जाउ
-last_page.title=अंतिम पृष्ठ पर जाउ
-last_page.label=अंतिम पृष्ठ पर जाउ
-last_page_label=अंतिम पृष्ठ पर जाउ
-page_rotate_cw.title=घड़ीक दिशा मे घुमाउ
-page_rotate_cw.label=घड़ीक दिशा मे घुमाउ
-page_rotate_cw_label=घड़ीक दिशा मे घुमाउ
-page_rotate_ccw.title=घड़ीक दिशा सँ उनटा घुमाउ
-page_rotate_ccw.label=घड़ीक दिशा सँ उनटा घुमाउ
-page_rotate_ccw_label=घड़ीक दिशा सँ उनटा घुमाउ
-
-hand_tool_enable.title=हाथ अओजार सक्रिय करू
-hand_tool_enable_label=हाथ अओजार सक्रिय करू
-hand_tool_disable.title=हाथ अओजार निष्क्रिय कएनाइ
-hand_tool_disable_label=हाथ अओजार निष्क्रिय कएनाइ
-
-# Document properties dialog box
-document_properties.title=दस्तावेज़ विशेषता...
-document_properties_label=दस्तावेज़ विशेषता...
-document_properties_file_name=फाइल नाम:
-document_properties_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}} बाइट)
-# 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_author=लेखकः
-document_properties_subject=विषय
-document_properties_keywords=बीजशब्द
-document_properties_creation_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_creator=सृजक:
-document_properties_producer=PDF उत्पादक:
-document_properties_version=PDF संस्करण:
-document_properties_page_count=पृष्ठ गिनती:
-document_properties_close=बन्न करू
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=स्लाइडर टागल
-toggle_sidebar_label=स्लाइडर टागल
-outline.title=दस्तावेज आउटलाइन देखाउ
-outline_label=दस्तावेज खाका
-attachments.title=संलग्नक देखाबू
-attachments_label=संलग्नक
-thumbs.title=लघु-छवि देखाउ
-thumbs_label=लघु छवि
-findbar.title=दस्तावेजमे ढूँढू
-findbar_label=ताकू
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=पृष्ठ {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=पृष्ठ {{page}} का लघु-चित्र
-
-# Find panel button title and messages
-find_label=ताकू:
-find_previous.title=खोजक पछिला उपस्थिति ताकू
-find_previous_label=पछिला
-find_next.title=खोजक अगिला उपस्थिति ताकू
-find_next_label=आगाँ
-find_highlight=सभटा आलोकित करू
-find_match_case_label=मिलान स्थिति
-find_reached_top=पृष्ठक शीर्ष जाए पहुँचल, तल सँ जारी
-find_reached_bottom=पृष्ठक तल मे जाए पहुँचल, शीर्ष सँ जारी
-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
-page_scale_width=पृष्ठ चओड़ाइ
-page_scale_fit=पृष्ठ फिट
-page_scale_auto=स्वचालित जूम
-page_scale_actual=सही आकार
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-page_scale_percent={{scale}}%
-
-# Loading indicator messages
-loading_error_indicator=त्रुटि
-loading_error=पीडीएफ लोड करैत समय एकटा त्रुटि भेल.
-invalid_file_error=अमान्य अथवा भ्रष्ट PDF फाइल.
-missing_file_error=अनुपस्थित PDF फाइल.
-unexpected_response_error=सर्वर सँ अप्रत्याशित प्रतिक्रिया.
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Annotation]
-password_label=एहि पीडीएफ फ़ाइल केँ खोलबाक लेल कृपया कूटशब्द भरू.
-password_invalid=अवैध कूटशब्द, कृपया फिनु कोशिश करू.
-password_ok=बेस
-password_cancel=रद्द करू\u0020
-
-printing_not_supported=चेतावनी: ई ब्राउजर पर छपाइ पूर्ण तरह सँ समर्थित नहि अछि.
-printing_not_ready=चेतावनी: पीडीएफ छपाइक लेल पूर्ण तरह सँ लोड नहि अछि.
-web_fonts_disabled=वेब फॉन्ट्स निष्क्रिय अछि: अंतःस्थापित PDF फान्टसक उपयोगमे असमर्थ.
-document_colors_not_allowed=PDF दस्तावेज़ हुकर अपन रंग केँ उपयोग करबाक लेल अनुमति प्राप्त नहि अछि: 'पृष्ठ केँ हुकर अपन रंग केँ चुनबाक लेल स्वीकृति दिअ जे ओ ओहि ब्राउज़र मे निष्क्रिय अछि.
diff --git a/static/pdf.js/locale/meh/viewer.properties b/static/pdf.js/locale/meh/viewer.properties
new file mode 100644
index 000000000..6ba24cd07
--- /dev/null
+++ b/static/pdf.js/locale/meh/viewer.properties
@@ -0,0 +1,106 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Página yata
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+# 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.
+
+zoom.title=Nasa´a ka´nu/Nasa´a luli
+open_file_label=Síne
+
+# Secondary toolbar and context menu
+
+
+
+
+# Document properties dialog box
+# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in kilobytes, respectively in bytes.
+# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in megabytes, respectively in bytes.
+# 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}}
+# 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=Kuvi
+document_properties_close=Nakasɨ
+
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Nkuvi-ka
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+findbar_label=Nánuku
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+
+# Find panel button title and messages
+find_input.title=Nánuku
+# 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) ]}
+# 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) ]}
+
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+
+# Predefined zoom values
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+password_cancel=Nkuvi-ka
+
diff --git a/static/pdf.js/locale/mk/viewer.properties b/static/pdf.js/locale/mk/viewer.properties
index 18ded8914..13cc47bd1 100644
--- a/static/pdf.js/locale/mk/viewer.properties
+++ b/static/pdf.js/locale/mk/viewer.properties
@@ -1,6 +1,16 @@
-# 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/.
+# 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.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Претходна страница
@@ -8,40 +18,114 @@ previous_label=Претходна
next.title=Следна страница
next_label=Следна
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Страница:
-page_of=од {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Страница
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=од {{pagesCount}}
+# 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_label=Намали
zoom_in.title=Зголемување
zoom_in_label=Зголеми
zoom.title=Променување на големина
+presentation_mode.title=Премини во презентациски режим
+presentation_mode_label=Презентациски режим
+open_file.title=Отворање датотека
+open_file_label=Отвори
print.title=Печатење
print_label=Печати
-open_file.title=Отварање датотека
-open_file_label=Отвори
-download.title=Преземање
-download_label=Преземи
-bookmark.title=Овој преглед (копирај или отвори во нов прозорец)
-bookmark_label=Овој преглед
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+# 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.
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+# 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.
+
+# Secondary toolbar and context menu
+tools.title=Алатки
+tools_label=Алатки
+first_page.title=Оди до првата страница
+first_page_label=Оди до првата страница
+last_page.title=Оди до последната страница
+last_page_label=Оди до последната страница
+page_rotate_cw.title=Ротирај по стрелките на часовникот
+page_rotate_cw_label=Ротирај по стрелките на часовникот
+page_rotate_ccw.title=Ротирај спротивно од стрелките на часовникот
+page_rotate_ccw_label=Ротирај спротивно од стрелките на часовникот
+
+cursor_text_select_tool.title=Овозможи алатка за избор на текст
+cursor_text_select_tool_label=Алатка за избор на текст
+
+
+
+# Document properties dialog box
+document_properties.title=Својства на документот…
+document_properties_label=Својства на документот…
+document_properties_file_name=Име на датотека:
+document_properties_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}} КБ ({{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}} МБ ({{size_b}} бајти)
+document_properties_title=Наслов:
+document_properties_author=Автор:
+document_properties_subject=Тема:
+document_properties_keywords=Клучни зборови:
+document_properties_creation_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_creator=Креатор:
+document_properties_version=Верзија на PDF:
+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=Писмо
+# 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=Затвори
+
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-toggle_slider.title=Вклучување на лизгач
-toggle_slider_label=Вклучи лизгач
-outline.title=Прикажување на содржина на документот
-outline_label=Содржина на документот
+toggle_sidebar.title=Вклучи странична лента
+toggle_sidebar_label=Вклучи странична лента
+document_outline_label=Содржина на документот
+attachments.title=Прикажи додатоци
thumbs.title=Прикажување на икони
thumbs_label=Икони
+findbar.title=Најди во документот
+findbar_label=Најди
-# Document outline messages
-no_outline=Нема содржина
-
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -50,77 +134,78 @@ thumb_page_title=Страница {{page}}
# number.
thumb_page_canvas=Икона од страница {{page}}
-# Error panel labels
-error_more_info=Повеќе информации
-error_less_info=Помалку информации
-error_close=Затвори
-# LOCALIZATION NOTE (error_build): "{{build}}" will be replaced by the PDF.JS
-# build ID.
-error_build=PDF.JS 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: {{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=Настана грешка при прикажувањето на страницата.
+# Find panel button title and messages
+find_input.title=Пронајди
+find_input.placeholder=Пронајди во документот…
+find_previous.title=Најди ја предходната појава на фразата
+find_previous_label=Претходно
+find_next.title=Најди ја следната појава на фразата
+find_next_label=Следно
+find_highlight=Означи сѐ
+find_match_case_label=Токму така
+find_entire_word_label=Цели зборови
+find_reached_top=Барањето стигна до почетокот на документот и почнува од крајот
+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=Фразата не е пронајдена
# Predefined zoom values
page_scale_width=Ширина на страница
page_scale_fit=Цела страница
page_scale_auto=Автоматска големина
page_scale_actual=Вистинска големина
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
-loading_error_indicator=Грешка
+# Loading indicator messages
loading_error=Настана грешка при вчитувањето на PDF-от.
+invalid_file_error=Невалидна или корумпирана PDF датотека.
+missing_file_error=Недостасува PDF документ.
+unexpected_response_error=Неочекуван одговор од серверот.
+rendering_error=Настана грешка при прикажувањето на страницата.
-# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
-# "{{[type}}" will be replaced with an annotation type from a list defined in
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type=[{{type}} Забелешка]
-request_password=PDF-от е заштитен со лозинка:
-
+password_label=Внесете ја лозинката за да ја отворите оваа датотека.
+password_invalid=Невалидна лозинка. Обидете се повторно.
+password_ok=Во ред
+password_cancel=Откажи
printing_not_supported=Предупредување: Печатењето не е целосно поддржано во овој прелистувач.
-
-find_highlight=Означи сѐ
-
-# Find panel button title and messages
-find_label=Најди:
-find_match_case_label=Токму така
-find_next.title=Најди ја следната појава на фразата
-find_next_label=Следно
-find_not_found=Фразата не е пронајдена
-find_previous.title=Најди ја предходната појава на фразата
-find_previous_label=Претходно
-find_reached_bottom=Барањето стигна до крајот на документот и почнува од почеток
-find_reached_top=Барањето стигна до почетокот на документот и почнува од крајот
-findbar.title=Најди во документот
-findbar_label=Најди
-
-# Context menu
-first_page.label=Оди до првата страница
-invalid_file_error=Невалидна или корумпирана PDF датотека.
-last_page.label=Оди до последната страница
-page_rotate_ccw.label=Ротирај спротивно од стрелките на часовникот
-page_rotate_cw.label=Ротирај по стрелките на часовникот
-presentation_mode.title=Премини во презентациски режим
-presentation_mode_label=Презентациски режим
-
-# 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}})
-missing_file_error=Недостасува PDF документ.
printing_not_ready=Предупредување: PDF документот не е целосно вчитан за печатење.
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=Вклучи странична лента
-toggle_sidebar_label=Вклучи странична лента
web_fonts_disabled=Интернет фонтовите се оневозможени: не може да се користат вградените PDF фонтови.
+
+# Editor
+
+
+
+# Editor Parameters
+
+# Editor aria
diff --git a/static/pdf.js/locale/ml/viewer.properties b/static/pdf.js/locale/ml/viewer.properties
deleted file mode 100644
index 084d87722..000000000
--- a/static/pdf.js/locale/ml/viewer.properties
+++ /dev/null
@@ -1,173 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=മുമ്പുള്ള താള്
-previous_label=മുമ്പു്
-next.title=അടുത്ത താള്
-next_label=അടുത്തതു്
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=താള്:
-page_of={{pageCount}}
-
-zoom_out.title=ചെറുതാക്കുക
-zoom_out_label=ചെറുതാക്കുക
-zoom_in.title=വലുതാക്കുക
-zoom_in_label=വലുതാക്കുക
-zoom.title=വ്യാപ്തി മാറ്റുക
-presentation_mode.title=പ്രസന്റേഷന് രീതിയിലേക്കു് മാറ്റുക
-presentation_mode_label=പ്രസന്റേഷന് രീതി
-open_file.title=ഫയല് തുറക്കുക
-open_file_label=തുറക്കുക
-print.title=പ്രിന്റ് ചെയ്യുക
-print_label=പ്രിന്റ് ചെയ്യുക
-download.title=ഡൌണ്ലോഡ് ചെയ്യുക
-download_label=ഡൌണ്ലോഡ് ചെയ്യുക
-bookmark.title=നിലവിലുള്ള കാഴ്ച (പുതിയ ജാലകത്തില് പകര്ത്തുക അല്ലെങ്കില് തുറക്കുക)
-bookmark_label=നിലവിലുള്ള കാഴ്ച
-
-# Secondary toolbar and context menu
-tools.title=ഉപകരണങ്ങള്
-tools_label=ഉപകരണങ്ങള്
-first_page.title=ആദ്യത്തെ താളിലേയ്ക്കു് പോകുക
-first_page.label=ആദ്യത്തെ താളിലേയ്ക്കു് പോകുക
-first_page_label=ആദ്യത്തെ താളിലേയ്ക്കു് പോകുക
-last_page.title=അവസാന താളിലേയ്ക്കു് പോകുക
-last_page.label=അവസാന താളിലേയ്ക്കു് പോകുക
-last_page_label=അവസാന താളിലേയ്ക്കു് പോകുക
-page_rotate_cw.title=ഘടികാരദിശയില് കറക്കുക
-page_rotate_cw.label=ഘടികാരദിശയില് കറക്കുക
-page_rotate_cw_label=ഘടികാരദിശയില് കറക്കുക
-page_rotate_ccw.title=ഘടികാര ദിശയ്ക്കു് വിപരീതമായി കറക്കുക
-page_rotate_ccw.label=ഘടികാര ദിശയ്ക്കു് വിപരീതമായി കറക്കുക
-page_rotate_ccw_label=ഘടികാര ദിശയ്ക്കു് വിപരീതമായി കറക്കുക
-
-hand_tool_enable.title=ഹാന്ഡ് ടൂള് പ്രവര്ത്തന സജ്ജമാക്കുക
-hand_tool_enable_label=ഹാന്ഡ് ടൂള് പ്രവര്ത്തന സജ്ജമാക്കുക
-hand_tool_disable.title=ഹാന്ഡ് ടൂള് പ്രവര്ത്തന രഹിതമാക്കുക
-hand_tool_disable_label=ഹാന്ഡ് ടൂള് പ്രവര്ത്തന രഹിതമാക്കുക
-
-# Document properties dialog box
-document_properties.title=രേഖയുടെ വിശേഷതകള്...
-document_properties_label=രേഖയുടെ വിശേഷതകള്...
-document_properties_file_name=ഫയലിന്റെ പേര്:
-document_properties_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}} കെബി ({{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}} എംബി ({{size_b}} ബൈറ്റുകള്)
-document_properties_title=തലക്കെട്ട്\u0020
-document_properties_author=രചയിതാവ്:
-document_properties_subject=വിഷയം:
-document_properties_keywords=കീവേര്ഡുകള്:
-document_properties_creation_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_creator=സൃഷ്ടികര്ത്താവ്:
-document_properties_producer=പിഡിഎഫ് പ്രൊഡ്യൂസര്:
-document_properties_version=പിഡിഎഫ് പതിപ്പ്:
-document_properties_page_count=താളിന്റെ എണ്ണം:
-document_properties_close=അടയ്ക്കുക
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=സൈഡ് ബാറിലേക്കു് മാറ്റുക
-toggle_sidebar_label=സൈഡ് ബാറിലേക്കു് മാറ്റുക
-outline.title=രേഖയുടെ ഔട്ട്ലൈന് കാണിയ്ക്കുക
-outline_label=രേഖയുടെ ഔട്ട്ലൈന്
-attachments.title=അറ്റാച്മെന്റുകള് കാണിയ്ക്കുക
-attachments_label=അറ്റാച്മെന്റുകള്
-thumbs.title=തംബ്നെയിലുകള് കാണിയ്ക്കുക
-thumbs_label=തംബ്നെയിലുകള്
-findbar.title=രേഖയില് കണ്ടുപിടിയ്ക്കുക
-findbar_label=കണ്ടെത്തുക\u0020
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=താള് {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas={{page}} താളിനുള്ള തംബ്നെയില്
-
-# Find panel button title and messages
-find_label=കണ്ടെത്തുക
-find_previous.title=വാചകം ഇതിനു മുന്പ് ആവര്ത്തിച്ചത് കണ്ടെത്തുക\u0020
-find_previous_label=മുമ്പു്
-find_next.title=വാചകം വീണ്ടും ആവര്ത്തിക്കുന്നത് കണ്ടെത്തുക\u0020
-find_next_label=അടുത്തതു്
-find_highlight=എല്ലാം എടുത്തുകാണിയ്ക്കുക
-find_match_case_label=അക്ഷരങ്ങള് ഒത്തുനോക്കുക
-find_reached_top=രേഖയുടെ മുകളില് എത്തിയിരിക്കുന്നു, താഴെ നിന്നും തുടരുന്നു
-find_reached_bottom=രേഖയുടെ അവസാനം വരെ എത്തിയിരിക്കുന്നു, മുകളില് നിന്നും തുടരുന്നു\u0020
-find_not_found=വാചകം കണ്ടെത്താനായില്ല\u0020
-
-# 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
-page_scale_width=താളിന്റെ വീതി
-page_scale_fit=താള് പാകത്തിനാക്കുക
-page_scale_auto=സ്വയമായി വലുതാക്കുക
-page_scale_actual=യഥാര്ത്ഥ വ്യാപ്തി
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-page_scale_percent={{scale}}%
-
-# Loading indicator messages
-loading_error_indicator=പിശക്
-loading_error=പിഡിഎഫ് ലഭ്യമാക്കുമ്പോള് പിശക് ഉണ്ടായിരിയ്ക്കുന്നു.
-invalid_file_error=തെറ്റായ അല്ലെങ്കില് തകരാറുള്ള പിഡിഎഫ് ഫയല്.
-missing_file_error=പിഡിഎഫ് ഫയല് ലഭ്യമല്ല.
-unexpected_response_error=പ്രതീക്ഷിക്കാത്ത സെര്വര് മറുപടി.
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Annotation]
-password_label=ഈ പിഡിഎഫ് ഫയല് തുറക്കുന്നതിനു് രഹസ്യവാക്ക് നല്കുക.
-password_invalid=തെറ്റായ രഹസ്യവാക്ക്, ദയവായി വീണ്ടും ശ്രമിയ്ക്കുക.
-password_ok=ശരി
-password_cancel=റദ്ദാക്കുക
-
-printing_not_supported=മുന്നറിയിപ്പു്: ഈ ബ്രൌസര് പൂര്ണ്ണമായി പ്രിന്റിങ് പിന്തുണയ്ക്കുന്നില്ല.
-printing_not_ready=മുന്നറിയിപ്പു്: പ്രിന്റ് ചെയ്യുന്നതിനു് പിഡിഎഫ് പൂര്ണ്ണമായി ലഭ്യമല്ല.
-web_fonts_disabled=വെബിനുള്ള അക്ഷരസഞ്ചയങ്ങള് പ്രവര്ത്തന രഹിതം: എംബഡ്ഡ് ചെയ്ത പിഡിഎഫ് അക്ഷരസഞ്ചയങ്ങള് ഉപയോഗിയ്ക്കുവാന് സാധ്യമല്ല.
-document_colors_not_allowed=സ്വന്തം നിറങ്ങള് ഉപയോഗിയ്ക്കുവാന് പിഡിഎഫ് രേഖകള്ക്കു് അനുവാദമില്ല: 'സ്വന്തം നിറങ്ങള് ഉപയോഗിയ്ക്കുവാന് താളുകളെ അനുവദിയ്ക്കുക' എന്നതു് ബ്രൌസറില് നിര്ജീവമാണു്.
diff --git a/static/pdf.js/locale/mn/viewer.properties b/static/pdf.js/locale/mn/viewer.properties
deleted file mode 100644
index dfa1d6ddd..000000000
--- a/static/pdf.js/locale/mn/viewer.properties
+++ /dev/null
@@ -1,79 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-
-zoom.title=Тэлэлт
-open_file.title=Файл нээ
-open_file_label=Нээ
-
-# Secondary toolbar and context menu
-
-
-# Document properties dialog box
-document_properties_file_name=Файлын нэр:
-# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
-# will be replaced by the PDF file size in kilobytes, respectively in 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_title=Гарчиг:
-# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
-# will be replaced by the creation/modification date, and time, of the PDF file.
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-findbar_label=Ол
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-
-# Find panel button title and messages
-find_previous.title=Хайлтын өмнөх олдцыг харуулна
-find_next.title=Хайлтын дараагийн олдцыг харуулна
-find_not_found=Олдсонгүй
-
-# Error panel labels
-error_more_info=Нэмэлт мэдээлэл
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-
-# Predefined zoom values
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-loading_error_indicator=Алдаа
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-password_ok=OK
-password_cancel=Цуцал
-
diff --git a/static/pdf.js/locale/mr/viewer.properties b/static/pdf.js/locale/mr/viewer.properties
index f9d1ef700..9f2610514 100644
--- a/static/pdf.js/locale/mr/viewer.properties
+++ b/static/pdf.js/locale/mr/viewer.properties
@@ -18,12 +18,15 @@ previous_label=मागील
next.title=पुढील पृष्ठ
next_label=पुढील
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=पृष्ठ:
-page_of=पैकी {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=पृष्ठ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}}पैकी
+# 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=({{pagesCount}} पैकी {{pageNumber}})
zoom_out.title=छोटे करा
zoom_out_label=छोटे करा
@@ -36,31 +39,29 @@ open_file.title=फाइल उघडा
open_file_label=उघडा
print.title=छपाई करा
print_label=छपाई करा
-download.title=डाउनलोड करा
-download_label=डाउनलोड करा
-bookmark.title=सध्याचे अवलोकन (नवीन पटलात प्रत बनवा किंवा उघडा)
-bookmark_label=सध्याचे अवलोकन
# Secondary toolbar and context menu
tools.title=साधने
tools_label=साधने
-first_page.title=पहिल्या पानावर जा
-first_page.label=पहिल्या पानावर जा
-first_page_label=पहिल्या पानावर जा
-last_page.title=शेवटच्या पानावर जा
-last_page.label=शेवटच्या पानावर जा
-last_page_label=शेवटच्या पानावर जा
+first_page.title=पहिल्या पृष्ठावर जा
+first_page_label=पहिल्या पृष्ठावर जा
+last_page.title=शेवटच्या पृष्ठावर जा
+last_page_label=शेवटच्या पृष्ठावर जा
page_rotate_cw.title=घड्याळाच्या काट्याच्या दिशेने फिरवा
-page_rotate_cw.label=घड्याळाच्या काट्याच्या दिशेने फिरवा
page_rotate_cw_label=घड्याळाच्या काट्याच्या दिशेने फिरवा
page_rotate_ccw.title=घड्याळाच्या काट्याच्या उलट दिशेने फिरवा
-page_rotate_ccw.label=घड्याळाच्या काट्याच्या उलट दिशेने फिरवा
page_rotate_ccw_label=घड्याळाच्या काट्याच्या उलट दिशेने फिरवा
-hand_tool_enable.title=हात साधन सुरू करा
-hand_tool_enable_label=हात साधन सुरू करा
-hand_tool_disable.title=हात साधन बंद करा
-hand_tool_disable_label=हात साधन बंद करा
+cursor_text_select_tool.title=मजकूर निवड साधन कार्यान्वयीत करा
+cursor_text_select_tool_label=मजकूर निवड साधन
+cursor_hand_tool.title=हात साधन कार्यान्वित करा
+cursor_hand_tool_label=हस्त साधन
+
+scroll_vertical.title=अनुलंब स्क्रोलिंग वापरा
+scroll_vertical_label=अनुलंब स्क्रोलिंग
+scroll_horizontal.title=क्षैतिज स्क्रोलिंग वापरा
+scroll_horizontal_label=क्षैतिज स्क्रोलिंग
+
# Document properties dialog box
document_properties.title=दस्तऐवज गुणधर्म…
@@ -86,15 +87,43 @@ document_properties_creator=निर्माता:
document_properties_producer=PDF निर्माता:
document_properties_version=PDF आवृत्ती:
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=बंद करा
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=बाजूचीपट्टी टॉगल करा
toggle_sidebar_label=बाजूचीपट्टी टॉगल करा
-outline.title=दस्तऐवज रूपरेषा दाखवा
-outline_label=दस्तऐवज रूपरेषा
+document_outline.title=दस्तऐवज बाह्यरेखा दर्शवा (विस्तृत करण्यासाठी दोनवेळा क्लिक करा /सर्व घटक दाखवा)
+document_outline_label=दस्तऐवज रूपरेषा
attachments.title=जोडपत्र दाखवा
attachments_label=जोडपत्र
thumbs.title=थंबनेल्स् दाखवा
@@ -111,36 +140,40 @@ thumb_page_title=पृष्ठ {{page}}
thumb_page_canvas=पृष्ठाचे थंबनेल {{page}}
# Find panel button title and messages
-find_label=शोधा:
+find_input.title=शोधा
+find_input.placeholder=दस्तऐवजात शोधा…
find_previous.title=वाकप्रयोगची मागील घटना शोधा
find_previous_label=मागील
find_next.title=वाकप्रयोगची पुढील घटना शोधा
find_next_label=पुढील
find_highlight=सर्व ठळक करा
find_match_case_label=आकार जुळवा
+find_entire_word_label=संपूर्ण शब्द
find_reached_top=दस्तऐवजाच्या शीर्षकास पोहचले, तळपासून पुढे
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]={{total}} पैकी {{current}} सुसंगत
+find_match_count[two]={{total}} पैकी {{current}} सुसंगत
+find_match_count[few]={{total}} पैकी {{current}} सुसंगत
+find_match_count[many]={{total}} पैकी {{current}} सुसंगत
+find_match_count[other]={{total}} पैकी {{current}} सुसंगत
+# 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=वाकप्रयोग आढळले नाही
-# 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
page_scale_width=पृष्ठाची रूंदी
page_scale_fit=पृष्ठ बसवा
@@ -150,13 +183,17 @@ page_scale_actual=प्रत्यक्ष आकार
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=त्रुटी
loading_error=PDF लोड करतेवेळी त्रुटी आढळली.
invalid_file_error=अवैध किंवा दोषीत PDF फाइल.
missing_file_error=न आढळणारी PDF फाइल.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -167,7 +204,7 @@ password_invalid=अवैध पासवर्ड. कृपया पुन
password_ok=ठीक आहे
password_cancel=रद्द करा
-printing_not_supported=सावधानता: या ब्राउजरतर्फे छपाइ पूर्णपणे समर्थीत नाही.
+printing_not_supported=सावधानता: या ब्राउझरतर्फे छपाइ पूर्णपणे समर्थीत नाही.
printing_not_ready=सावधानता: छपाईकरिता PDF पूर्णतया लोड झाले नाही.
-web_fonts_disabled=वेब फाँट्स असमर्थीत आहेत: एम्बेडेड PDF फाँट्स्चा वापर अशक्य.
-document_colors_not_allowed=PDF दस्ताएवजांना त्यांचे रंग वापरण्यास अनुमती नाही: ब्राउजरमध्ये ' पानांना त्यांचे रंग निवडण्यास अनुमती द्या' बंद केले आहे.
+web_fonts_disabled=वेब टंक असमर्थीत आहेत: एम्बेडेड PDF टंक वापर अशक्य.
+
diff --git a/static/pdf.js/locale/ms/viewer.properties b/static/pdf.js/locale/ms/viewer.properties
index cc6b70b03..8edd79ba3 100644
--- a/static/pdf.js/locale/ms/viewer.properties
+++ b/static/pdf.js/locale/ms/viewer.properties
@@ -13,58 +13,67 @@
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Laman Sebelumnya
-previous_label=Terdahulu
-next.title=Laman seterusnya
+previous.title=Halaman Dahulu
+previous_label=Dahulu
+next.title=Halaman Berikut
next_label=Berikut
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Laman:
-page_of=daripada {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Halaman
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=daripada {{pagesCount}}
+# 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}} daripada {{pagesCount}})
zoom_out.title=Zum Keluar
zoom_out_label=Zum Keluar
zoom_in.title=Zum Masuk
zoom_in_label=Zum Masuk
zoom.title=Zum
-presentation_mode.title=Bertukar ke Mod Persembahan
+presentation_mode.title=Tukar ke Mod Persembahan
presentation_mode_label=Mod Persembahan
open_file.title=Buka Fail
open_file_label=Buka
print.title=Cetak
print_label=Cetak
-download.title=Muat turun
-download_label=Muat turun
-bookmark.title=Pandangan semasa (salinan atau dibuka dalam tetingkap baru)
-bookmark_label=Lihat semasa
# Secondary toolbar and context menu
tools.title=Alatan
tools_label=Alatan
first_page.title=Pergi ke Halaman Pertama
-first_page.label=Pergi ke Halaman Pertama
first_page_label=Pergi ke Halaman Pertama
last_page.title=Pergi ke Halaman Terakhir
-last_page.label=Pergi ke Halaman Terakhir
last_page_label=Pergi ke Halaman Terakhir
page_rotate_cw.title=Berputar ikut arah Jam
-page_rotate_cw.label=Berputar ikut arah Jam
page_rotate_cw_label=Berputar ikut arah Jam
page_rotate_ccw.title=Pusing berlawan arah jam
-page_rotate_ccw.label=Pusing berlawan arah jam
page_rotate_ccw_label=Pusing berlawan arah jam
-hand_tool_enable.title=Bolehkan alatan tangan
-hand_tool_enable_label=Bolehkan alatan tangan
-hand_tool_disable.title=Lumpuhkan alatan tangan
-hand_tool_disable_label=Lumpuhkan alatan tangan
+cursor_text_select_tool.title=Dayakan Alatan Pilihan Teks
+cursor_text_select_tool_label=Alatan Pilihan Teks
+cursor_hand_tool.title=Dayakan Alatan Tangan
+cursor_hand_tool_label=Alatan Tangan
+
+scroll_vertical.title=Guna Skrol Menegak
+scroll_vertical_label=Skrol Menegak
+scroll_horizontal.title=Guna Skrol Mengufuk
+scroll_horizontal_label=Skrol Mengufuk
+scroll_wrapped.title=Guna Skrol Berbalut
+scroll_wrapped_label=Skrol Berbalut
+
+spread_none.title=Jangan hubungkan hamparan halaman
+spread_none_label=Tanpa Hamparan
+spread_odd.title=Hubungkan hamparan halaman dengan halaman nombor ganjil
+spread_odd_label=Hamparan Ganjil
+spread_even.title=Hubungkan hamparan halaman dengan halaman nombor genap
+spread_even_label=Hamparan Seimbang
# Document properties dialog box
-document_properties.title=Ciri Dokumen…
-document_properties_label=Ciri Dokumen…
+document_properties.title=Sifat Dokumen…
+document_properties_label=Sifat Dokumen…
document_properties_file_name=Nama fail:
document_properties_file_size=Saiz fail:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
@@ -86,18 +95,46 @@ document_properties_creator=Pencipta:
document_properties_producer=Pengeluar PDF:
document_properties_version=Versi PDF:
document_properties_page_count=Kiraan Laman:
+document_properties_page_size=Saiz Halaman:
+document_properties_page_size_unit_inches=dalam
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=potret
+document_properties_page_size_orientation_landscape=landskap
+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=Paparan Web Pantas:
+document_properties_linearized_yes=Ya
+document_properties_linearized_no=Tidak
document_properties_close=Tutup
+print_progress_message=Menyediakan dokumen untuk dicetak…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Batal
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Togol Bar Sisi
toggle_sidebar_label=Togol Bar Sisi
-outline.title=Tunjuk Rangka Dokumen
-outline_label=Rangka Dokument
-attachments.title=Tunjuk Lampiran
+document_outline.title=Papar Rangka Dokumen (klik-dua-kali untuk kembangkan/kolaps semua item)
+document_outline_label=Rangka Dokumen
+attachments.title=Papar Lampiran
attachments_label=Lampiran
-thumbs.title=Tunjuk Imej kecil
+thumbs.title=Papar Thumbnails
thumbs_label=Imej kecil
findbar.title=Cari didalam Dokumen
findbar_label=Cari
@@ -111,36 +148,40 @@ thumb_page_title=Halaman {{page}}
thumb_page_canvas=Halaman Imej kecil {{page}}
# Find panel button title and messages
-find_label=Cari:
+find_input.title=Cari
+find_input.placeholder=Cari dalam dokumen…
find_previous.title=Cari teks frasa berkenaan yang terdahulu
-find_previous_label=Sebelumnya
+find_previous_label=Dahulu
find_next.title=Cari teks frasa berkenaan yang berikut
find_next_label=Berikut
find_highlight=Serlahkan semua
-find_match_case_label=Kes Sepadan
+find_match_case_label=Huruf sepadan
+find_entire_word_label=Seluruh perkataan
find_reached_top=Mencapai teratas daripada dokumen, sambungan daripada bawah
find_reached_bottom=Mencapai terakhir daripada dokumen, sambungan daripada atas
+# 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}} daripada {{total}} padanan
+find_match_count[two]={{current}} daripada {{total}} padanan
+find_match_count[few]={{current}} daripada {{total}} padanan
+find_match_count[many]={{current}} daripada {{total}} padanan
+find_match_count[other]={{current}} daripada {{total}} padanan
+# 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]=Lebih daripada {{limit}} padanan
+find_match_count_limit[one]=Lebih daripada {{limit}} padanan
+find_match_count_limit[two]=Lebih daripada {{limit}} padanan
+find_match_count_limit[few]=Lebih daripada {{limit}} padanan
+find_match_count_limit[many]=Lebih daripada {{limit}} padanan
+find_match_count_limit[other]=Lebih daripada {{limit}} padanan
find_not_found=Frasa tidak ditemui
-# Error panel labels
-error_more_info=Maklumat lanjut
-error_less_info=Kurang Informasi
-error_close=Tutup
-# 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=Mesej: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Timbun: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fail: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Garis: {{line}}
-rendering_error=Ralat berlaku ketika memberikan halaman.
-
# Predefined zoom values
page_scale_width=Lebar Halaman
page_scale_fit=Muat Halaman
@@ -148,12 +189,14 @@ page_scale_auto=Zoom Automatik
page_scale_actual=Saiz Sebenar
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
+page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Ralat
loading_error=Masalah berlaku semasa menuatkan sebuah PDF.
invalid_file_error=Tidak sah atau fail PDF rosak.
missing_file_error=Fail PDF Hilang.
+unexpected_response_error=Respon pelayan yang tidak dijangka.
+
+rendering_error=Ralat berlaku ketika memberikan halaman.
# 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
@@ -167,5 +210,5 @@ password_cancel=Batal
printing_not_supported=Amaran: Cetakan ini tidak sepenuhnya disokong oleh pelayar ini.
printing_not_ready=Amaran: PDF tidak sepenuhnya dimuatkan untuk dicetak.
-web_fonts_disabled=Fon web dilumpuhkan: tidak dapat fon PDF terbenam.
-document_colors_not_allowed=Dokumen PDF tidak dibenarkan untuk menggunakan warna sendiri: 'Benarkan muka surat untuk memilih warna sendiri' telah dinyahaktif dalam pelayar.
+web_fonts_disabled=Fon web dinyahdayakan: tidak dapat menggunakan fon terbenam PDF.
+
diff --git a/static/pdf.js/locale/my/viewer.properties b/static/pdf.js/locale/my/viewer.properties
index 303a9db8d..5a255a716 100644
--- a/static/pdf.js/locale/my/viewer.properties
+++ b/static/pdf.js/locale/my/viewer.properties
@@ -18,49 +18,42 @@ previous_label=အရင်နေရာ
next.title=ရှေ့ စာမျက်နှာ
next_label=နောက်တခု
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=စာမျက်နှာ -
-page_of=၏ {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=စာမျက်နှာ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} ၏
+# 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=({{pagesCount}} ၏ {{pageNumber}})
zoom_out.title=ချုံ့ပါ
zoom_out_label=ချုံ့ပါ
zoom_in.title=ချဲ့ပါ
zoom_in_label=ချဲ့ပါ
zoom.title=ချုံ့/ချဲ့ပါ
-presentation_mode.title=Switch to Presentation Mode
-presentation_mode_label=Presentation Mode
+presentation_mode.title=ဆွေးနွေးတင်ပြစနစ်သို့ ကူးပြောင်းပါ
+presentation_mode_label=ဆွေးနွေးတင်ပြစနစ်
open_file.title=ဖိုင်အားဖွင့်ပါ။
open_file_label=ဖွင့်ပါ
print.title=ပုံနှိုပ်ပါ
print_label=ပုံနှိုပ်ပါ
-download.title=ကူးဆွဲ
-download_label=ကူးဆွဲ
-bookmark.title=လက်ရှိ မြင်ကွင်း (ဝင်းဒိုးအသစ်မှာ ကူးပါ သို့မဟုတ် ဖွင့်ပါ)
-bookmark_label=လက်ရှိ မြင်ကွင်း
# Secondary toolbar and context menu
tools.title=ကိရိယာများ
tools_label=ကိရိယာများ
first_page.title=ပထမ စာမျက်နှာသို့
-first_page.label=ပထမ စာမျက်နှာသို့
first_page_label=ပထမ စာမျက်နှာသို့
last_page.title=နောက်ဆုံး စာမျက်နှာသို့
-last_page.label=နောက်ဆုံး စာမျက်နှာသို့
last_page_label=နောက်ဆုံး စာမျက်နှာသို့
page_rotate_cw.title=နာရီလက်တံ အတိုင်း
-page_rotate_cw.label=နာရီလက်တံ အတိုင်း
page_rotate_cw_label=နာရီလက်တံ အတိုင်း
page_rotate_ccw.title=နာရီလက်တံ ပြောင်းပြန်
-page_rotate_ccw.label=နာရီလက်တံ ပြောင်းပြန်
page_rotate_ccw_label=နာရီလက်တံ ပြောင်းပြန်
-hand_tool_enable.title=လက်ကိုင် ကိရိယာအားသုံး
-hand_tool_enable_label=လက်ကိုင် ကိရိယာဖွင့်
-hand_tool_disable.title=လက်ကိုင် ကိရိယာအားပိတ်
-hand_tool_disable_label=လက်ကိုင်ကိရိယာ အားပိတ်
+
+
# Document properties dialog box
document_properties.title=မှတ်တမ်းမှတ်ရာ ဂုဏ်သတ္တိများ
@@ -69,7 +62,7 @@ document_properties_file_name=ဖိုင် :
document_properties_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}} ကီလိုဘိုတ် ({size_kb}}ဘိုတ်)
+document_properties_kb={{size_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}} bytes)
@@ -86,15 +79,29 @@ document_properties_creator=ဖန်တီးသူ:
document_properties_producer=PDF ထုတ်လုပ်သူ:
document_properties_version=PDF ဗားရှင်း:
document_properties_page_count=စာမျက်နှာအရေအတွက်:
+# 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.
+# 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.
+# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
+# the document; usually called "Fast Web View" in English locales of Adobe software.
document_properties_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=ပယ်ဖျက်ပါ
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=ဘေးတန်းဖွင့်ပိတ်
toggle_sidebar_label=ဖွင့်ပိတ် ဆလိုက်ဒါ
-outline.title=စာတမ်း မူကြမ်း ကိုပြပါ
-outline_label=စာတမ်း မူကြမ်း
+document_outline.title=စာတမ်းအကျဉ်းချုပ်ကို ပြပါ (စာရင်းအားလုံးကို ချုံ့/ချဲ့ရန် ကလစ်နှစ်ချက်နှိပ်ပါ)
+document_outline_label=စာတမ်းအကျဉ်းချုပ်
attachments.title=တွဲချက်များ ပြပါ
attachments_label=တွဲထားချက်များ
thumbs.title=ပုံရိပ်ငယ်များကို ပြပါ
@@ -111,7 +118,8 @@ thumb_page_title=စာမျက်နှာ {{page}}
thumb_page_canvas=စာမျက်နှာရဲ့ ပုံရိပ်ငယ် {{page}}
# Find panel button title and messages
-find_label=ရှာဖွေပါ -
+find_input.title=ရှာဖွေပါ
+find_input.placeholder=စာတမ်းထဲတွင် ရှာဖွေရန်…
find_previous.title=စကားစုရဲ့ အရင် ဖြစ်ပွားမှုကို ရှာဖွေပါ
find_previous_label=နောက်သို့
find_next.title=စကားစုရဲ့ နောက်ထပ် ဖြစ်ပွားမှုကို ရှာဖွေပါ
@@ -120,27 +128,16 @@ find_highlight=အားလုံးကို မျဉ်းသားပါ
find_match_case_label=စာလုံး တိုက်ဆိုင်ပါ
find_reached_top=စာမျက်နှာထိပ် ရောက်နေပြီ၊ အဆုံးကနေ ပြန်စပါ
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.
+# 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=စကားစု မတွေ့ရဘူး
-# 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
page_scale_width=စာမျက်နှာ အကျယ်
page_scale_fit=စာမျက်နှာ ကွက်တိ
@@ -150,19 +147,19 @@ page_scale_actual=အမှန်တကယ်ရှိတဲ့ အရွယ်
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=အမှား
loading_error=PDF ဖိုင် ကိုဆွဲတင်နေချိန်မှာ အမှားတစ်ခုတွေ့ရပါတယ်။
invalid_file_error=မရသော သို့ ပျက်နေသော PDF ဖိုင်
missing_file_error=PDF ပျောက်ဆုံး
unexpected_response_error=မမျှော်လင့်ထားသော ဆာဗာမှ ပြန်ကြားချက်
+rendering_error=စာမျက်နှာကို ပုံဖော်နေချိန်မှာ အမှားတစ်ခုတွေ့ရပါတယ်။
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} အဓိပ္ပာယ်ဖွင့်ဆိုချက်]
-password_label=PDF အားဖွင့်ရန် ပတ်စ်ဝတ်အားထည့်ပါ
+password_label=ယခု PDF ကို ဖွင့်ရန် စကားဝှက်ကို ရိုက်ပါ။
password_invalid=စာဝှက် မှားသည်။ ထပ်ကြိုးစားကြည့်ပါ။
password_ok=OK
password_cancel=ပယ်ဖျက်ပါ
@@ -170,4 +167,4 @@ password_cancel=ပယ်ဖျက်ပါ
printing_not_supported=သတိပေးချက်၊ပရင့်ထုတ်ခြင်းကိုဤဘယောက်ဆာသည် ပြည့်ဝစွာထောက်ပံ့မထားပါ ။
printing_not_ready=သတိပေးချက်: ယခု PDF ဖိုင်သည် ပုံနှိပ်ရန် မပြည့်စုံပါ
web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts.
-document_colors_not_allowed=PDF ဖိုင်အား ၎င်းဤ ကိုယ်ပိုင်အရောင်များကို အသုံးပြုခွင့်မပေးထားပါ ။ 'စာမျက်နှာအားလုံးအားအရောင်ရွေးချယ်ခွင့်' အား ယခု ဘယောက်ဆာတွင် ပိတ်ထားခြင်းကြောင့်ဖြစ် သှ်
+
diff --git a/static/pdf.js/locale/nb-NO/viewer.properties b/static/pdf.js/locale/nb-NO/viewer.properties
index 13d3670ec..810453152 100644
--- a/static/pdf.js/locale/nb-NO/viewer.properties
+++ b/static/pdf.js/locale/nb-NO/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Forrige
next.title=Neste side
next_label=Neste
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Side:
-page_of=av {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Side
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=av {{pagesCount}}
+# 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}} av {{pagesCount}})
zoom_out.title=Zoom ut
zoom_out_label=Zoom ut
@@ -36,31 +39,52 @@ open_file.title=Åpne fil
open_file_label=Åpne
print.title=Skriv ut
print_label=Skriv ut
-download.title=Last ned
-download_label=Last ned
-bookmark.title=Nåværende visning (kopier eller åpne i et nytt vindu)
-bookmark_label=Nåværende visning
+save.title=Lagre
+save_label=Lagre
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Last ned
+# 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=Last ned
+bookmark1.title=Gjeldende side (se URL fra gjeldende side)
+bookmark1_label=Gjeldende side
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Åpne i 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=Åpne i app
# Secondary toolbar and context menu
tools.title=Verktøy
tools_label=Verktøy
first_page.title=Gå til første side
-first_page.label=Gå til første side
first_page_label=Gå til første side
last_page.title=Gå til siste side
-last_page.label=Gå til siste side
last_page_label=Gå til siste side
page_rotate_cw.title=Roter med klokken
-page_rotate_cw.label=Roter med klokken
page_rotate_cw_label=Roter med klokken
page_rotate_ccw.title=Roter mot klokken
-page_rotate_ccw.label=Roter mot klokken
page_rotate_ccw_label=Roter mot klokken
-hand_tool_enable.title=Slå på hånd-verktøy
-hand_tool_enable_label=Slå på hånd-verktøy
-hand_tool_disable.title=Slå av hånd-verktøy
-hand_tool_disable_label=Slå av hånd-verktøy
+cursor_text_select_tool.title=Aktiver tekstmarkeringsverktøy
+cursor_text_select_tool_label=Tekstmarkeringsverktøy
+cursor_hand_tool.title=Aktiver handverktøy
+cursor_hand_tool_label=Handverktøy
+
+scroll_page.title=Bruk siderulling
+scroll_page_label=Siderulling
+scroll_vertical.title=Bruk vertikal rulling
+scroll_vertical_label=Vertikal rulling
+scroll_horizontal.title=Bruk horisontal rulling
+scroll_horizontal_label=Horisontal rulling
+scroll_wrapped.title=Bruk flersiderulling
+scroll_wrapped_label=Flersiderulling
+
+spread_none.title=Vis enkeltsider
+spread_none_label=Enkeltsider
+spread_odd.title=Vis oppslag med ulike sidenumre til venstre
+spread_odd_label=Oppslag med forside
+spread_even.title=Vis oppslag med like sidenumre til venstre
+spread_even_label=Oppslag uten forside
# Document properties dialog box
document_properties.title=Dokumentegenskaper …
@@ -86,22 +110,58 @@ document_properties_creator=Opprettet av:
document_properties_producer=PDF-verktøy:
document_properties_version=PDF-versjon:
document_properties_page_count=Sideantall:
+document_properties_page_size=Sidestørrelse:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=stående
+document_properties_page_size_orientation_landscape=liggende
+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=Hurtig nettvisning:
+document_properties_linearized_yes=Ja
+document_properties_linearized_no=Nei
document_properties_close=Lukk
+print_progress_message=Forbereder dokument for utskrift …
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Avbryt
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Slå av/på sidestolpe
+toggle_sidebar_notification2.title=Vis/gjem sidestolpe (dokumentet inneholder oversikt/vedlegg/lag)
toggle_sidebar_label=Slå av/på sidestolpe
-outline.title=Vis dokumentdisposisjon
-outline_label=Dokumentdisposisjon
+document_outline.title=Vis dokumentdisposisjonen (dobbeltklikk for å utvide/skjule alle elementer)
+document_outline_label=Dokumentdisposisjon
attachments.title=Vis vedlegg
attachments_label=Vedlegg
+layers.title=Vis lag (dobbeltklikk for å tilbakestille alle lag til standardtilstand)
+layers_label=Lag
thumbs.title=Vis miniatyrbilde
thumbs_label=Miniatyrbilde
+current_outline_item.title=Finn gjeldende disposisjonselement
+current_outline_item_label=Gjeldende disposisjonselement
findbar.title=Finn i dokumentet
findbar_label=Finn
+additional_layers=Ytterligere lag
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Side {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Side {{page}}
thumb_page_canvas=Miniatyrbilde av side {{page}}
# Find panel button title and messages
-find_label=Finn:
+find_input.title=Søk
+find_input.placeholder=Søk i dokument…
find_previous.title=Finn forrige forekomst av frasen
find_previous_label=Forrige
find_next.title=Finn neste forekomst av frasen
find_next_label=Neste
find_highlight=Uthev alle
find_match_case_label=Skill store/små bokstaver
+find_match_diacritics_label=Samsvar diakritiske tegn
+find_entire_word_label=Hele ord
find_reached_top=Nådde toppen av dokumentet, fortsetter fra bunnen
find_reached_bottom=Nådde bunnen av dokumentet, fortsetter fra toppen
+# 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}} av {{total}} treff
+find_match_count[two]={{current}} av {{total}} treff
+find_match_count[few]={{current}} av {{total}} treff
+find_match_count[many]={{current}} av {{total}} treff
+find_match_count[other]={{current}} av {{total}} treff
+# 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]=Mer enn {{limit}} treff
+find_match_count_limit[one]=Mer enn {{limit}} treff
+find_match_count_limit[two]=Mer enn {{limit}} treff
+find_match_count_limit[few]=Mer enn {{limit}} treff
+find_match_count_limit[many]=Mer enn {{limit}} treff
+find_match_count_limit[other]=Mer enn {{limit}} treff
find_not_found=Fant ikke teksten
-# Error panel labels
-error_more_info=Mer info
-error_less_info=Mindre info
-error_close=Lukk
-# 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}} (bygg: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Melding: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stakk: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fil: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linje: {{line}}
-rendering_error=En feil oppstod ved opptegning av siden.
-
# Predefined zoom values
page_scale_width=Sidebredde
page_scale_fit=Tilpass til siden
@@ -151,11 +216,15 @@ page_scale_actual=Virkelig størrelse
page_scale_percent={{scale}} %
# Loading indicator messages
-loading_error_indicator=Feil
loading_error=En feil oppstod ved lasting av PDF.
invalid_file_error=Ugyldig eller skadet PDF-fil.
missing_file_error=Manglende PDF-fil.
unexpected_response_error=Uventet serverrespons.
+rendering_error=En feil oppstod ved opptegning av siden.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,46 @@ password_cancel=Avbryt
printing_not_supported=Advarsel: Utskrift er ikke fullstendig støttet av denne nettleseren.
printing_not_ready=Advarsel: PDF er ikke fullstendig innlastet for utskrift.
web_fonts_disabled=Web-fonter er avslått: Kan ikke bruke innbundne PDF-fonter.
-document_colors_not_allowed=PDF-dokumenter tillates ikke å bruke deres egne farger: 'Tillat sider å velge egne farger' er deaktivert i nettleseren.
+
+# Editor
+editor_free_text2.title=Tekst
+editor_free_text2_label=Tekst
+editor_ink2.title=Tegn
+editor_ink2_label=Tegn
+
+editor_stamp1.title=Legg til eller rediger bilder
+editor_stamp1_label=Legg til eller rediger bilder
+
+free_text2_default_content=Begynn å skrive…
+
+# Editor Parameters
+editor_free_text_color=Farge
+editor_free_text_size=Størrelse
+editor_ink_color=Farge
+editor_ink_thickness=Tykkelse
+editor_ink_opacity=Ugjennomsiktighet
+
+editor_stamp_add_image_label=Legg til bilde
+editor_stamp_add_image.title=Legg til bilde
+
+# Editor aria
+editor_free_text2_aria_label=Tekstredigering
+editor_ink2_aria_label=Tegneredigering
+editor_ink_canvas_aria_label=Brukerskapt bilde
+
+# 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-tekst
+editor_alt_text_edit_button_label=Rediger alt-tekst tekst
+editor_alt_text_dialog_label=Velg et alternativ
+editor_alt_text_dialog_description=Alt-tekst (alternativ tekst) hjelper når folk ikke kan se bildet eller når det ikke lastes inn.
+editor_alt_text_add_description_label=Legg til en beskrivelse
+editor_alt_text_add_description_description=Gå etter 1-2 setninger som beskriver emnet, settingen eller handlingene.
+editor_alt_text_mark_decorative_label=Merk som dekorativt
+editor_alt_text_mark_decorative_description=Dette brukes til dekorative bilder, som kantlinjer eller vannmerker.
+editor_alt_text_cancel_button=Avbryt
+editor_alt_text_save_button=Lagre
+editor_alt_text_decorative_tooltip=Merket som dekorativ
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=For eksempel, «En ung mann setter seg ved et bord for å spise et måltid»
diff --git a/static/pdf.js/locale/ne-NP/viewer.properties b/static/pdf.js/locale/ne-NP/viewer.properties
new file mode 100644
index 000000000..97ebe1f0f
--- /dev/null
+++ b/static/pdf.js/locale/ne-NP/viewer.properties
@@ -0,0 +1,197 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=अघिल्लो पृष्ठ
+previous_label=अघिल्लो
+next.title=पछिल्लो पृष्ठ
+next_label=पछिल्लो
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=पृष्ठ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} मध्ये
+# 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=({{pagesCount}} को {{pageNumber}})
+
+zoom_out.title=जुम घटाउनुहोस्
+zoom_out_label=जुम घटाउनुहोस्
+zoom_in.title=जुम बढाउनुहोस्
+zoom_in_label=जुम बढाउनुहोस्
+zoom.title=जुम गर्नुहोस्
+presentation_mode.title=प्रस्तुति मोडमा जानुहोस्
+presentation_mode_label=प्रस्तुति मोड
+open_file.title=फाइल खोल्नुहोस्
+open_file_label=खोल्नुहोस्
+print.title=मुद्रण गर्नुहोस्
+print_label=मुद्रण गर्नुहोस्
+
+# Secondary toolbar and context menu
+tools.title=औजारहरू
+tools_label=औजारहरू
+first_page.title=पहिलो पृष्ठमा जानुहोस्
+first_page_label=पहिलो पृष्ठमा जानुहोस्
+last_page.title=पछिल्लो पृष्ठमा जानुहोस्
+last_page_label=पछिल्लो पृष्ठमा जानुहोस्
+page_rotate_cw.title=घडीको दिशामा घुमाउनुहोस्
+page_rotate_cw_label=घडीको दिशामा घुमाउनुहोस्
+page_rotate_ccw.title=घडीको विपरित दिशामा घुमाउनुहोस्
+page_rotate_ccw_label=घडीको विपरित दिशामा घुमाउनुहोस्
+
+cursor_text_select_tool.title=पाठ चयन उपकरण सक्षम गर्नुहोस्
+cursor_text_select_tool_label=पाठ चयन उपकरण
+cursor_hand_tool.title=हाते उपकरण सक्षम गर्नुहोस्
+cursor_hand_tool_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=स्प्रेड छैन
+
+# Document properties dialog box
+document_properties.title=कागजात विशेषताहरू...
+document_properties_label=कागजात विशेषताहरू...
+document_properties_file_name=फाइल नाम:
+document_properties_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)
+# 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_title=शीर्षक:
+document_properties_author=लेखक:
+document_properties_subject=विषयः
+document_properties_keywords=शब्दकुञ्जीः
+document_properties_creation_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_creator=सर्जक:
+document_properties_producer=PDF निर्माता:
+document_properties_version=PDF संस्करण
+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_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.
+# 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.
+# 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=बन्द गर्नुहोस्
+
+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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=टगल साइडबार
+toggle_sidebar_label=टगल साइडबार
+document_outline.title=कागजातको रूपरेखा देखाउनुहोस् (सबै वस्तुहरू विस्तार/पतन गर्न डबल-क्लिक गर्नुहोस्)
+document_outline_label=दस्तावेजको रूपरेखा
+attachments.title=संलग्नहरू देखाउनुहोस्
+attachments_label=संलग्नकहरू
+thumbs.title=थम्बनेलहरू देखाउनुहोस्
+thumbs_label=थम्बनेलहरू
+findbar.title=कागजातमा फेला पार्नुहोस्
+findbar_label=फेला पार्नुहोस्
+
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=पृष्ठ {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas={{page}} पृष्ठको थम्बनेल
+
+# Find panel button title and messages
+find_input.title=फेला पार्नुहोस्
+find_input.placeholder=कागजातमा फेला पार्नुहोस्…
+find_previous.title=यस वाक्यांशको अघिल्लो घटना फेला पार्नुहोस्
+find_previous_label=अघिल्लो
+find_next.title=यस वाक्यांशको पछिल्लो घटना फेला पार्नुहोस्
+find_next_label=अर्को
+find_highlight=सबै हाइलाइट गर्ने
+find_match_case_label=केस जोडा मिलाउनुहोस्
+find_entire_word_label=पुरा शब्दहरु
+find_reached_top=पृष्ठको शिर्षमा पुगीयो, तलबाट जारी गरिएको थियो
+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.
+# 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=वाक्यांश फेला परेन
+
+# Predefined zoom values
+page_scale_width=पृष्ठ चौडाइ
+page_scale_fit=पृष्ठ ठिक्क मिल्ने
+page_scale_auto=स्वचालित जुम
+page_scale_actual=वास्तविक आकार
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=यो PDF लोड गर्दा एउटा त्रुटि देखापर्यो।
+invalid_file_error=अवैध वा दुषित PDF फाइल।
+missing_file_error=हराईरहेको PDF फाइल।
+unexpected_response_error=अप्रत्याशित सर्भर प्रतिक्रिया।
+
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+
+rendering_error=पृष्ठ प्रतिपादन गर्दा एउटा त्रुटि देखापर्यो।
+
+# 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
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Annotation]
+password_label=यस PDF फाइललाई खोल्न गोप्यशब्द प्रविष्ट गर्नुहोस्।
+password_invalid=अवैध गोप्यशब्द। पुनः प्रयास गर्नुहोस्।
+password_ok=ठिक छ
+password_cancel=रद्द गर्नुहोस्
+
+printing_not_supported=चेतावनी: यो ब्राउजरमा मुद्रण पूर्णतया समर्थित छैन।
+printing_not_ready=चेतावनी: PDF मुद्रणका लागि पूर्णतया लोड भएको छैन।
+web_fonts_disabled=वेब फन्ट असक्षम छन्: एम्बेडेड PDF फन्ट प्रयोग गर्न असमर्थ।
+
diff --git a/static/pdf.js/locale/nl/viewer.properties b/static/pdf.js/locale/nl/viewer.properties
index 1481904f5..c428dac58 100644
--- a/static/pdf.js/locale/nl/viewer.properties
+++ b/static/pdf.js/locale/nl/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Vorige
next.title=Volgende pagina
next_label=Volgende
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Pagina:
-page_of=van {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pagina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=van {{pagesCount}}
+# 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}} van {{pagesCount}})
zoom_out.title=Uitzoomen
zoom_out_label=Uitzoomen
@@ -36,31 +39,52 @@ open_file.title=Bestand openen
open_file_label=Openen
print.title=Afdrukken
print_label=Afdrukken
-download.title=Downloaden
-download_label=Downloaden
-bookmark.title=Huidige weergave (kopiëren of openen in nieuw venster)
-bookmark_label=Huidige weergave
+save.title=Opslaan
+save_label=Opslaan
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Downloaden
+# 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=Downloaden
+bookmark1.title=Huidige pagina (URL van huidige pagina bekijken)
+bookmark1_label=Huidige pagina
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Openen 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=Openen in app
# Secondary toolbar and context menu
tools.title=Hulpmiddelen
tools_label=Hulpmiddelen
first_page.title=Naar eerste pagina gaan
-first_page.label=Naar eerste pagina gaan
first_page_label=Naar eerste pagina gaan
last_page.title=Naar laatste pagina gaan
-last_page.label=Naar laatste pagina gaan
last_page_label=Naar laatste pagina gaan
page_rotate_cw.title=Rechtsom draaien
-page_rotate_cw.label=Rechtsom draaien
page_rotate_cw_label=Rechtsom draaien
page_rotate_ccw.title=Linksom draaien
-page_rotate_ccw.label=Linksom draaien
page_rotate_ccw_label=Linksom draaien
-hand_tool_enable.title=Handhulpmiddel inschakelen
-hand_tool_enable_label=Handhulpmiddel inschakelen
-hand_tool_disable.title=Handhulpmiddel uitschakelen
-hand_tool_disable_label=Handhulpmiddel uitschakelen
+cursor_text_select_tool.title=Tekstselectiehulpmiddel inschakelen
+cursor_text_select_tool_label=Tekstselectiehulpmiddel
+cursor_hand_tool.title=Handhulpmiddel inschakelen
+cursor_hand_tool_label=Handhulpmiddel
+
+scroll_page.title=Paginascrollen gebruiken
+scroll_page_label=Paginascrollen
+scroll_vertical.title=Verticaal scrollen gebruiken
+scroll_vertical_label=Verticaal scrollen
+scroll_horizontal.title=Horizontaal scrollen gebruiken
+scroll_horizontal_label=Horizontaal scrollen
+scroll_wrapped.title=Scrollen met terugloop gebruiken
+scroll_wrapped_label=Scrollen met terugloop
+
+spread_none.title=Dubbele pagina’s niet samenvoegen
+spread_none_label=Geen dubbele pagina’s
+spread_odd.title=Dubbele pagina’s samenvoegen vanaf oneven pagina’s
+spread_odd_label=Oneven dubbele pagina’s
+spread_even.title=Dubbele pagina’s samenvoegen vanaf even pagina’s
+spread_even_label=Even dubbele pagina’s
# Document properties dialog box
document_properties.title=Documenteigenschappen…
@@ -76,32 +100,68 @@ document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
document_properties_title=Titel:
document_properties_author=Auteur:
document_properties_subject=Onderwerp:
-document_properties_keywords=Trefwoorden:
+document_properties_keywords=Sleutelwoorden:
document_properties_creation_date=Aanmaakdatum:
document_properties_modification_date=Wijzigingsdatum:
# 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=Auteur:
+document_properties_creator=Maker:
document_properties_producer=PDF-producent:
document_properties_version=PDF-versie:
document_properties_page_count=Aantal pagina’s:
+document_properties_page_size=Paginagrootte:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=staand
+document_properties_page_size_orientation_landscape=liggend
+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=Snelle webweergave:
+document_properties_linearized_yes=Ja
+document_properties_linearized_no=Nee
document_properties_close=Sluiten
+print_progress_message=Document voorbereiden voor afdrukken…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Annuleren
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Zijbalk in-/uitschakelen
+toggle_sidebar_notification2.title=Zijbalk in-/uitschakelen (document bevat overzicht/bijlagen/lagen)
toggle_sidebar_label=Zijbalk in-/uitschakelen
-outline.title=Documentoverzicht tonen
-outline_label=Documentoverzicht
+document_outline.title=Documentoverzicht tonen (dubbelklik om alle items uit/samen te vouwen)
+document_outline_label=Documentoverzicht
attachments.title=Bijlagen tonen
attachments_label=Bijlagen
+layers.title=Lagen tonen (dubbelklik om alle lagen naar de standaardstatus terug te zetten)
+layers_label=Lagen
thumbs.title=Miniaturen tonen
thumbs_label=Miniaturen
+current_outline_item.title=Huidig item in inhoudsopgave zoeken
+current_outline_item_label=Huidig item in inhoudsopgave
findbar.title=Zoeken in document
findbar_label=Zoeken
+additional_layers=Aanvullende lagen
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Pagina {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Pagina {{page}}
thumb_page_canvas=Miniatuur van pagina {{page}}
# Find panel button title and messages
-find_label=Zoeken:
-find_previous.title=Het vorige voorkomen van de tekst zoeken
+find_input.title=Zoeken
+find_input.placeholder=Zoeken in document…
+find_previous.title=De vorige overeenkomst van de tekst zoeken
find_previous_label=Vorige
-find_next.title=Het volgende voorkomen van de tekst zoeken
+find_next.title=De volgende overeenkomst van de tekst zoeken
find_next_label=Volgende
find_highlight=Alles markeren
find_match_case_label=Hoofdlettergevoelig
-find_reached_top=Bovenkant van het document bereikt, doorgegaan vanaf de onderkant
-find_reached_bottom=Onderkant van het document bereikt, doorgegaan vanaf de bovenkant
+find_match_diacritics_label=Diakritische tekens gebruiken
+find_entire_word_label=Hele woorden
+find_reached_top=Bovenkant van document bereikt, doorgegaan vanaf onderkant
+find_reached_bottom=Onderkant van document bereikt, doorgegaan vanaf bovenkant
+# 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}} van {{total}} overeenkomst
+find_match_count[two]={{current}} van {{total}} overeenkomsten
+find_match_count[few]={{current}} van {{total}} overeenkomsten
+find_match_count[many]={{current}} van {{total}} overeenkomsten
+find_match_count[other]={{current}} van {{total}} overeenkomsten
+# 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]=Meer dan {{limit}} overeenkomsten
+find_match_count_limit[one]=Meer dan {{limit}} overeenkomst
+find_match_count_limit[two]=Meer dan {{limit}} overeenkomsten
+find_match_count_limit[few]=Meer dan {{limit}} overeenkomsten
+find_match_count_limit[many]=Meer dan {{limit}} overeenkomsten
+find_match_count_limit[other]=Meer dan {{limit}} overeenkomsten
find_not_found=Tekst niet gevonden
-# Error panel labels
-error_more_info=Meer informatie
-error_less_info=Minder informatie
-error_close=Sluiten
-# 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=Bericht: {{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=Bestand: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Regel: {{line}}
-rendering_error=Er is een fout opgetreden bij het weergeven van de pagina.
-
# Predefined zoom values
page_scale_width=Paginabreedte
page_scale_fit=Hele pagina
@@ -151,11 +216,15 @@ page_scale_actual=Werkelijke grootte
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Fout
loading_error=Er is een fout opgetreden bij het laden van de PDF.
invalid_file_error=Ongeldig of beschadigd PDF-bestand.
missing_file_error=PDF-bestand ontbreekt.
unexpected_response_error=Onverwacht serverantwoord.
+rendering_error=Er is een fout opgetreden bij het weergeven van de pagina.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,36 @@ password_cancel=Annuleren
printing_not_supported=Waarschuwing: afdrukken wordt niet volledig ondersteund door deze browser.
printing_not_ready=Waarschuwing: de PDF is niet volledig geladen voor afdrukken.
web_fonts_disabled=Weblettertypen zijn uitgeschakeld: gebruik van ingebedde PDF-lettertypen is niet mogelijk.
-document_colors_not_allowed=PDF-documenten mogen hun eigen kleuren niet gebruiken: ‘Pagina’s toestaan om hun eigen kleuren te kiezen’ is uitgeschakeld in de browser.
+
+# Editor
+editor_free_text2.title=Tekst
+editor_free_text2_label=Tekst
+editor_ink2.title=Tekenen
+editor_ink2_label=Tekenen
+
+editor_stamp1.title=Afbeeldingen toevoegen of bewerken
+editor_stamp1_label=Afbeeldingen toevoegen of bewerken
+
+free_text2_default_content=Begin met typen…
+
+# Editor Parameters
+editor_free_text_color=Kleur
+editor_free_text_size=Grootte
+editor_ink_color=Kleur
+editor_ink_thickness=Dikte
+editor_ink_opacity=Opaciteit
+
+editor_stamp_add_image_label=Afbeelding toevoegen
+editor_stamp_add_image.title=Afbeelding toevoegen
+
+# Editor aria
+editor_free_text2_aria_label=Tekstbewerker
+editor_ink2_aria_label=Tekeningbewerker
+editor_ink_canvas_aria_label=Door gebruiker gemaakte afbeelding
+
+# 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_cancel_button=Annuleren
+editor_alt_text_save_button=Opslaan
+# This is a placeholder for the alt text input area
diff --git a/static/pdf.js/locale/nn-NO/viewer.properties b/static/pdf.js/locale/nn-NO/viewer.properties
index b3c808954..0c6a9abca 100644
--- a/static/pdf.js/locale/nn-NO/viewer.properties
+++ b/static/pdf.js/locale/nn-NO/viewer.properties
@@ -13,89 +13,155 @@
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Førre side
-previous_label=Førre
+previous.title=Føregåande side
+previous_label=Føregåande
next.title=Neste side
next_label=Neste
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Side:
-page_of=av {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Side
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=av {{pagesCount}}
+# 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}} av {{pagesCount}})
-zoom_out.title=Mindre
-zoom_out_label=Mindre
-zoom_in.title=Større
-zoom_in_label=Større
-zoom.title=Skalering
+zoom_out.title=Zoom ut
+zoom_out_label=Zoom ut
+zoom_in.title=Zoom inn
+zoom_in_label=Zoom inn
+zoom.title=Zoom
presentation_mode.title=Byt til presentasjonsmodus
presentation_mode_label=Presentasjonsmodus
-open_file.title=Opna fil
-open_file_label=Opna
+open_file.title=Opne fil
+open_file_label=Opne
print.title=Skriv ut
print_label=Skriv ut
-download.title=Last ned
-download_label=Last ned
-bookmark.title=Gjeldande vising (kopier eller opna i nytt vindauge)
-bookmark_label=Gjeldande vising
+save.title=Lagre
+save_label=Lagre
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Last ned
+# 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=Last ned
+bookmark1.title=Gjeldande side (sjå URL frå gjeldande side)
+bookmark1_label=Gjeldande side
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Opne i 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=Opne i app
# Secondary toolbar and context menu
tools.title=Verktøy
tools_label=Verktøy
-first_page.title=Gå til fyrstesida
-first_page.label=Gå til fyrstesida
-first_page_label=Gå til fyrstesida
+first_page.title=Gå til første side
+first_page_label=Gå til første side
last_page.title=Gå til siste side
-last_page.label=Gå til siste side
last_page_label=Gå til siste side
page_rotate_cw.title=Roter med klokka
-page_rotate_cw.label=Roter med klokka
page_rotate_cw_label=Roter med klokka
page_rotate_ccw.title=Roter mot klokka
-page_rotate_ccw.label=Roter mot klokka
page_rotate_ccw_label=Roter mot klokka
-hand_tool_enable.title=Slå på handverktøy
-hand_tool_enable_label=Slå på handverktøy
-hand_tool_disable.title=Så av handverktøy
-hand_tool_disable_label=Slå av handverktøy
+cursor_text_select_tool.title=Aktiver tekstmarkeringsverktøy
+cursor_text_select_tool_label=Tekstmarkeringsverktøy
+cursor_hand_tool.title=Aktiver handverktøy
+cursor_hand_tool_label=Handverktøy
+
+scroll_page.title=Bruk siderulling
+scroll_page_label=Siderulling
+scroll_vertical.title=Bruk vertikal rulling
+scroll_vertical_label=Vertikal rulling
+scroll_horizontal.title=Bruk horisontal rulling
+scroll_horizontal_label=Horisontal rulling
+scroll_wrapped.title=Bruk fleirsiderulling
+scroll_wrapped_label=Fleirsiderulling
+
+spread_none.title=Vis enkeltsider
+spread_none_label=Enkeltside
+spread_odd.title=Vis oppslag med ulike sidenummer til venstre
+spread_odd_label=Oppslag med framside
+spread_even.title=Vis oppslag med like sidenummmer til venstre
+spread_even_label=Oppslag utan framside
# Document properties dialog box
-document_properties.title=Dokumenteigenskapar …
-document_properties_label=Dokumenteigenskapar …
+document_properties.title=Dokumenteigenskapar…
+document_properties_label=Dokumenteigenskapar…
document_properties_file_name=Filnamn:
document_properties_file_size=Filstorleik:
+# 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)
+# 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_title=Dokumenteigenskapar …
+document_properties_title=Tittel:
document_properties_author=Forfattar:
document_properties_subject=Emne:
document_properties_keywords=Stikkord:
document_properties_creation_date=Dato oppretta:
document_properties_modification_date=Dato endra:
+# 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=Oppretta av:
document_properties_producer=PDF-verktøy:
document_properties_version=PDF-versjon:
document_properties_page_count=Sidetal:
-document_properties_close=Lukk
+document_properties_page_size=Sidestørrelse:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=ståande
+document_properties_page_size_orientation_landscape=liggande
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Brev
+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=Rask nettvising:
+document_properties_linearized_yes=Ja
+document_properties_linearized_no=Nei
+document_properties_close=Lat att
+
+print_progress_message=Førebur dokumentet for utskrift…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Avbryt
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Slå av/på sidestolpe
+toggle_sidebar_notification2.title=Vis/gøym sidestolpe (dokumentet inneheld oversikt/vedlegg/lag)
toggle_sidebar_label=Slå av/på sidestolpe
-outline.title=Vis dokumentdisposisjon
-outline_label=Dokumentdisposisjon
+document_outline.title=Vis dokumentdisposisjonen (dobbelklikk for å utvide/gøyme alle elementa)
+document_outline_label=Dokumentdisposisjon
attachments.title=Vis vedlegg
attachments_label=Vedlegg
+layers.title=Vis lag (dobbeltklikk for å tilbakestille alle lag til standardtilstand)
+layers_label=Lag
thumbs.title=Vis miniatyrbilde
thumbs_label=Miniatyrbilde
+current_outline_item.title=Finn gjeldande disposisjonselement
+current_outline_item_label=Gjeldande disposisjonselement
findbar.title=Finn i dokumentet
findbar_label=Finn
+additional_layers=Ytterlegare lag
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Side {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -105,36 +171,41 @@ thumb_page_title=Side {{page}}
thumb_page_canvas=Miniatyrbilde av side {{page}}
# Find panel button title and messages
-find_label=Finn:
-find_previous.title=Finn tidlegare førekomst av frasen
+find_input.title=Søk
+find_input.placeholder=Søk i dokument…
+find_previous.title=Finn førre førekomst av frasen
find_previous_label=Førre
find_next.title=Finn neste førekomst av frasen
find_next_label=Neste
find_highlight=Uthev alle
find_match_case_label=Skil store/små bokstavar
-find_reached_top=Nådde toppen av dokumentet, held fram frå botnen
-find_reached_bottom=Nådde botnen av dokumentet, held fram frå toppen
+find_match_diacritics_label=Samsvar diakritiske teikn
+find_entire_word_label=Heile ord
+find_reached_top=Nådde toppen av dokumentet, fortset frå botnen
+find_reached_bottom=Nådde botnen av dokumentet, fortset frå toppen
+# 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}} av {{total}} treff
+find_match_count[two]={{current}} av {{total}} treff
+find_match_count[few]={{current}} av {{total}} treff
+find_match_count[many]={{current}} av {{total}} treff
+find_match_count[other]={{current}} av {{total}} treff
+# 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]=Meir enn {{limit}} treff
+find_match_count_limit[one]=Meir enn {{limit}} treff
+find_match_count_limit[two]=Meir enn {{limit}} treff
+find_match_count_limit[few]=Meir enn {{limit}} treff
+find_match_count_limit[many]=Meir enn {{limit}} treff
+find_match_count_limit[other]=Meir enn {{limit}} treff
find_not_found=Fann ikkje teksten
-# Error panel labels
-error_more_info=Meir info
-error_less_info=Mindre info
-error_close=Lukk
-# 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}} (bygg: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Melding: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stakk: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fil: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linje: {{line}}
-rendering_error=Ein feil oppstod ved oppteikning av sida.
-
# Predefined zoom values
page_scale_width=Sidebreidde
page_scale_fit=Tilpass til sida
@@ -145,23 +216,55 @@ page_scale_actual=Verkeleg storleik
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Feil
loading_error=Ein feil oppstod ved lasting av PDF.
invalid_file_error=Ugyldig eller korrupt PDF-fil.
missing_file_error=Manglande PDF-fil.
unexpected_response_error=Uventa tenarrespons.
+rendering_error=Ein feil oppstod under vising av sida.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} annotasjon]
-password_label=Skriv inn passordet for å opna denne PDF-fila.
-password_invalid=Ugyldig passord. Prøv igjen.
+password_label=Skriv inn passordet for å opne denne PDF-fila.
+password_invalid=Ugyldig passord. Prøv på nytt.
password_ok=OK
password_cancel=Avbryt
printing_not_supported=Åtvaring: Utskrift er ikkje fullstendig støtta av denne nettlesaren.
printing_not_ready=Åtvaring: PDF ikkje fullstendig innlasta for utskrift.
-web_fonts_disabled=Vev-skrifter er slått av: Kan ikkje bruka innbundne PDF-skrifter.
-document_colors_disabled=PDF-dokument har ikkje løyve til å bruka eigne fargar: 'Tillat sider å velja eigne fargar' er slått av i nettlesaren.
+web_fonts_disabled=Web-skrifter er slått av: Kan ikkje bruke innbundne PDF-skrifter.
+
+# Editor
+editor_free_text2.title=Tekst
+editor_free_text2_label=Tekst
+editor_ink2.title=Teikne
+editor_ink2_label=Teikne
+
+editor_stamp.title=Legg til eit bilde
+editor_stamp_label=Legg til eit bilde
+
+editor_stamp1.title=Legg til eller rediger bilde
+editor_stamp1_label=Legg til eller rediger bilde
+
+free_text2_default_content=Byrje å skrive…
+
+# Editor Parameters
+editor_free_text_color=Farge
+editor_free_text_size=Storleik
+editor_ink_color=Farge
+editor_ink_thickness=Tjukkleik
+editor_ink_opacity=Ugjennomskinleg
+
+editor_stamp_add_image_label=Legg til bilde
+editor_stamp_add_image.title=Legg til bilde
+
+# Editor aria
+editor_free_text2_aria_label=Tekstredigering
+editor_ink2_aria_label=Teikneredigering
+editor_ink_canvas_aria_label=Brukarskapt bilde
diff --git a/static/pdf.js/locale/no/viewer.properties b/static/pdf.js/locale/no/viewer.properties
deleted file mode 100644
index 6c160fc77..000000000
--- a/static/pdf.js/locale/no/viewer.properties
+++ /dev/null
@@ -1,134 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Førre Side
-previous_label=Førre
-next.title=Neste side
-next_label=Neste
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Side:
-page_of=av {{pageCount}}
-
-zoom_out.title=Zoom ut
-zoom_out_label=Zoom ut
-zoom_in.title=Zoom inn
-zoom_in_label=Zoom inn
-zoom.title=Zoom
-presentation_mode.title=Bytt til presentasjonsmodus
-presentation_mode_label=Presentasjonsmodus
-open_file.title=Opne fil
-open_file_label=Opne
-print.title=Skriv ut
-print_label=Skriv ut
-download.title=Last ned
-download_label=Last ned
-bookmark.title=Gjeldande visning (kopier eller opne i nytt vindauge)
-bookmark_label=Gjeldende visning
-
-# Secondary toolbar and context menu
-tools.title=Verktøy
-tools_label=Verktøy
-first_page.title=Gå til første side
-first_page.label=Gå til første side
-first_page_label=Gå til første side
-last_page.title=Gå til siste side
-last_page.label=Gå til siste side
-last_page_label=Gå til siste side
-page_rotate_cw.title=Roter med klokka
-page_rotate_cw.label=Roter med klokka
-page_rotate_cw_label=Roter med klokka
-page_rotate_ccw.title=Roter mot klokka
-page_rotate_ccw.label=Roter mot klokka
-page_rotate_ccw_label=Roter mot klokka
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=Veksle Sidebar
-toggle_sidebar_label=Veksle Sidebar
-outline.title=Vis Document Outline
-outline_label=Document Outline
-thumbs.title=Vis miniatyrbilder
-thumbs_label=Miniatyrbilder
-findbar.title=Finne i Dokument
-findbar_label=Finn
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=Side {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=Thumbnail av siden {{page}}
-
-# Find panel button title and messages
-find_label=Finn:
-find_previous.title=Finn tidlegare førekomst av frasa
-find_previous_label=Førre
-find_next.title=Finn neste førekomst av frasa
-find_next_label=Neste
-find_highlight=Uthev alle
-find_match_case_label=Skil store/små bokstavar
-find_reached_top=Nådde toppen av dokumentet, held fram frå botnen
-find_reached_bottom=Nådde botnen av dokumentet, held fram frå toppen
-find_not_found=Fann ikkje teksten
-
-# Error panel labels
-error_more_info=Meir info
-error_less_info=Mindre info
-error_close=Lukk
-# 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=Melding: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stakk: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fil: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linje: {{line}}
-rendering_error=Ein feil oppstod ved oppteikning av sida.
-
-# Predefined zoom values
-page_scale_width=Sidebreidde
-page_scale_fit=Tilpass til sida
-page_scale_auto=Automatisk zoom
-page_scale_actual=Verkeleg størrelse
-
-# Loading indicator messages
-loading_error_indicator=Feil
-loading_error=Ein feil oppstod ved lasting av PDF.
-invalid_file_error=Ugyldig eller korrupt PDF fil.
-missing_file_error=Manglande PDF-fil.
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} annotasjon]
-request_password=PDF er beskytta av eit passord:
-invalid_password=Ugyldig passord.
-
-printing_not_supported=Åtvaring: Utskrift er ikkje fullstendig støtta av denne nettlesaren.
-printing_not_ready=Åtvaring: PDF ikkje fullstendig innlasta for utskrift.
-web_fonts_disabled=Web-fontar er avslått: Kan ikkje bruke innbundne PDF-fontar.
-document_colors_disabled=PDF-dokument har ikkje løyve til å nytte eigne fargar: \'Tillat sider å velje eigne fargar\' er slått av i nettlesaren.
diff --git a/static/pdf.js/locale/nso/viewer.properties b/static/pdf.js/locale/nso/viewer.properties
deleted file mode 100644
index 02cc7d85f..000000000
--- a/static/pdf.js/locale/nso/viewer.properties
+++ /dev/null
@@ -1,131 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Letlakala le fetilego
-previous_label=Fetilego
-next.title=Letlakala le latelago
-next_label=Latelago
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Letlakala:
-page_of=la {{pageCount}}
-
-zoom_out.title=Bušetša ka gare
-zoom_out_label=Bušetša ka gare
-zoom_in.title=Godišetša ka ntle
-zoom_in_label=Godišetša ka ntle
-zoom.title=Godiša
-presentation_mode.title=Fetogela go mokgwa wa tlhagišo
-presentation_mode_label=Mokgwa wa tlhagišo
-open_file.title=Bula faele
-open_file_label=Bula
-print.title=Gatiša
-print_label=Gatiša
-download.title=Laolla
-download_label=Laolla
-bookmark.title=Pono ya bjale (kopiša le go bula lefasetereng le leswa)
-bookmark_label=Tebelelo ya gona bjale
-
-# Secondary toolbar and context menu
-
-
-# Document properties dialog box
-document_properties_file_name=Leina la faele:
-# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
-# will be replaced by the PDF file size in kilobytes, respectively in 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_title=Thaetlele:
-# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
-# will be replaced by the creation/modification date, and time, of the PDF file.
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=Šielanya para ya ka thoko
-toggle_sidebar_label=Šielanya para ya ka thoko
-outline.title=Laetša kakaretšo ya tokumente
-outline_label=Kakaretšo ya tokumente
-thumbs.title=Laetša dikhutšofatšo
-thumbs_label=Dikhutšofatšo
-findbar.title=Hwetša go tokumente
-findbar_label=Hwetša
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=Letlakala {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=Khutšofatšo ya letlakala {{page}}
-
-# Find panel button title and messages
-find_label=Hwetša:
-find_previous.title=Hwetša tiragalo e fetilego ya sekafoko
-find_previous_label=Fetilego
-find_next.title=Hwetša tiragalo e latelago ya sekafoko
-find_next_label=Latelago
-find_highlight=Bonagatša tšohle
-find_match_case_label=Swantšha kheisi
-find_reached_top=Fihlile godimo ga tokumente, go tšwetšwe pele go tloga tlase
-find_reached_bottom=Fihlile mafelelong a tokumente, go tšwetšwe pele go tloga godimo
-find_not_found=Sekafoko ga sa hwetšwa
-
-# Error panel labels
-error_more_info=Tshedimošo e oketšegilego
-error_less_info=Tshedimošo ya tlasana
-# 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=Molaetša: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Mokgobo: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Faele: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Mothaladi: {{line}}
-rendering_error=Go diregile phošo ge go be go gafelwa letlakala.
-
-# Predefined zoom values
-page_scale_width=Bophara bja letlakala
-page_scale_fit=Go lekana ga letlakala
-page_scale_auto=Kgodišo ya maitirišo
-page_scale_actual=Bogolo bja kgonthe
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-loading_error_indicator=Phošo
-loading_error=Go diregile phošo ge go hlahlelwa PDF.
-invalid_file_error=Faele ye e sa šomego goba e senyegilego ya PDF.
-missing_file_error=Faele yeo e sego gona ya PDF.
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Tlhaloso]
-password_ok=LOKILE
-password_cancel=Khansela
-
-printing_not_supported=Temošo: Go gatiša ga go thekgwe ke praosara ye ka botlalo.
-printing_not_ready=Temošo: PDF ga ya hlahlelwa ka botlalo bakeng sa go gatišwa.
-web_fonts_disabled=Difonte tša wepe di šitišitšwe: ga e kgone go diriša difonte tša PDF tše khutišitšwego.
diff --git a/static/pdf.js/locale/oc/viewer.properties b/static/pdf.js/locale/oc/viewer.properties
index d9a916576..2afe8efd1 100644
--- a/static/pdf.js/locale/oc/viewer.properties
+++ b/static/pdf.js/locale/oc/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Precedent
next.title=Pagina seguenta
next_label=Seguent
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Pagina :
-page_of=sus {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pagina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=sus {{pagesCount}}
+# 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}} de {{pagesCount}})
zoom_out.title=Zoom arrièr
zoom_out_label=Zoom arrièr
@@ -36,72 +39,129 @@ open_file.title=Dobrir lo fichièr
open_file_label=Dobrir
print.title=Imprimir
print_label=Imprimir
-download.title=Telecargar
-download_label=Telecargar
-bookmark.title=Afichatge corrent (copiar o dobrir dins una fenèstra novèla)
-bookmark_label=Afichatge actual
+save.title=Enregistrar
+save_label=Enregistrar
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Telecargar
+# 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=Telecargar
+bookmark1.title=Pagina actuala (mostrar l’adreça de la pagina actuala)
+bookmark1_label=Pagina actuala
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Dobrir amb l’aplicacion
+# 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=Dobrir amb l’aplicacion
# Secondary toolbar and context menu
tools.title=Aisinas
tools_label=Aisinas
first_page.title=Anar a la primièra pagina
-first_page.label=Anar a la primièra pagina
first_page_label=Anar a la primièra pagina
last_page.title=Anar a la darrièra pagina
-last_page.label=Anar a la darrièra pagina
last_page_label=Anar a la darrièra pagina
page_rotate_cw.title=Rotacion orària
-page_rotate_cw.label=Rotacion orària
page_rotate_cw_label=Rotacion orària
page_rotate_ccw.title=Rotacion antiorària
-page_rotate_ccw.label=Rotacion antiorària
page_rotate_ccw_label=Rotacion antiorària
-hand_tool_enable.title=Activar l'aisina man
-hand_tool_enable_label=Activar l'aisina man
-hand_tool_disable.title=Desactivar l'aisina man
-hand_tool_disable_label=Desactivar l'aisina man
+cursor_text_select_tool.title=Activar l'aisina de seleccion de tèxte
+cursor_text_select_tool_label=Aisina de seleccion de tèxte
+cursor_hand_tool.title=Activar l’aisina man
+cursor_hand_tool_label=Aisina man
+
+scroll_page.title=Activar lo defilament per pagina
+scroll_page_label=Defilament per pagina
+scroll_vertical.title=Utilizar lo defilament vertical
+scroll_vertical_label=Defilament vertical
+scroll_horizontal.title=Utilizar lo defilament orizontal
+scroll_horizontal_label=Defilament orizontal
+scroll_wrapped.title=Activar lo defilament continú
+scroll_wrapped_label=Defilament continú
+
+spread_none.title=Agropar pas las paginas doas a doas
+spread_none_label=Una sola pagina
+spread_odd.title=Mostrar doas paginas en començant per las paginas imparas a esquèrra
+spread_odd_label=Dobla pagina, impara a drecha
+spread_even.title=Mostrar doas paginas en començant per las paginas paras a esquèrra
+spread_even_label=Dobla pagina, para a drecha
# Document properties dialog box
-document_properties.title=Proprietats del document...
-document_properties_label=Proprietats del document...
+document_properties.title=Proprietats del document…
+document_properties_label=Proprietats del document…
document_properties_file_name=Nom del fichièr :
-document_properties_file_size=Talha del fichièr :
+document_properties_file_size=Talha del fichièr :
# 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)
+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_mb={{size_mb}} Mo ({{size_b}} octets)
document_properties_title=Títol :
-document_properties_author=Autor :
-document_properties_subject=Subjècte :
+document_properties_author=Autor :
+document_properties_subject=Subjècte :
document_properties_keywords=Mots claus :
-document_properties_creation_date=Data de creacion :
-document_properties_modification_date=Data de modificacion :
+document_properties_creation_date=Data de creacion :
+document_properties_modification_date=Data de modificacion :
# 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=Creator :
-document_properties_producer=Aisina de conversion PDF :
-document_properties_version=Version PDF :
-document_properties_page_count=Nombre de paginas :
+document_properties_date_string={{date}}, a {{time}}
+document_properties_creator=Creator :
+document_properties_producer=Aisina de conversion PDF :
+document_properties_version=Version PDF :
+document_properties_page_count=Nombre de paginas :
+document_properties_page_size=Talha de la pagina :
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=retrach
+document_properties_page_size_orientation_landscape=païsatge
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Letra
+document_properties_page_size_name_legal=Document juridic
+# 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=Vista web rapida :
+document_properties_linearized_yes=Òc
+document_properties_linearized_no=Non
document_properties_close=Tampar
+print_progress_message=Preparacion del document per l’impression…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Anullar
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Afichar/amagar lo panèl lateral
+toggle_sidebar_notification2.title=Afichar/amagar lo panèl lateral (lo document conten esquèmas/pèças juntas/calques)
toggle_sidebar_label=Afichar/amagar lo panèl lateral
-outline.title=Afichar los marcapaginas
-outline_label=Marcapaginas del document
+document_outline.title=Mostrar los esquèmas del document (dobleclicar per espandre/reduire totes los elements)
+document_outline_label=Marcapaginas del document
attachments.title=Visualizar las pèças juntas
attachments_label=Pèças juntas
+layers.title=Afichar los calques (doble-clicar per reïnicializar totes los calques a l’estat per defaut)
+layers_label=Calques
thumbs.title=Afichar las vinhetas
thumbs_label=Vinhetas
-findbar.title=Trobar dins lo document
+current_outline_item.title=Trobar l’element de plan actual
+current_outline_item_label=Element de plan actual
+findbar.title=Cercar dins lo document
findbar_label=Recercar
+additional_layers=Calques suplementaris
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Pagina {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Pagina {{page}}
thumb_page_canvas=Vinheta de la pagina {{page}}
# Find panel button title and messages
-find_label=Recercar
+find_input.title=Recercar
+find_input.placeholder=Cercar dins lo document…
find_previous.title=Tròba l'ocurréncia precedenta de la frasa
find_previous_label=Precedent
find_next.title=Tròba l'ocurréncia venenta de la frasa
find_next_label=Seguent
find_highlight=Suslinhar tot
find_match_case_label=Respectar la cassa
-find_reached_top=Naut de la pagina atench, perseguida dempuèi lo bas
+find_match_diacritics_label=Respectar los diacritics
+find_entire_word_label=Mots entièrs
+find_reached_top=Naut de la pagina atenh, perseguida del bas
find_reached_bottom=Bas de la pagina atench, perseguida al començament
+# 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]=Ocuréncia {{current}} sus {{total}}
+find_match_count[two]=Ocuréncia {{current}} sus {{total}}
+find_match_count[few]=Ocuréncia {{current}} sus {{total}}
+find_match_count[many]=Ocuréncia {{current}} sus {{total}}
+find_match_count[other]=Ocuréncia {{current}} sus {{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]=Mai de {{limit}} ocuréncias
+find_match_count_limit[one]=Mai de {{limit}} ocuréncia
+find_match_count_limit[two]=Mai de {{limit}} ocuréncias
+find_match_count_limit[few]=Mai de {{limit}} ocuréncias
+find_match_count_limit[many]=Mai de {{limit}} ocuréncias
+find_match_count_limit[other]=Mai de {{limit}} ocuréncias
find_not_found=Frasa pas trobada
-# Error panel labels
-error_more_info=Mai de detalhs
-error_less_info=Mens d'informacions
-error_close=Tampar
-# 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}} (identificant de compilacion : {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Messatge : {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Pila : {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fichièr : {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linha : {{line}}
-rendering_error=Una error s'es producha pendent l'afichatge de la pagina.
-
# Predefined zoom values
page_scale_width=Largor plena
page_scale_fit=Pagina entièra
@@ -148,12 +213,18 @@ page_scale_auto=Zoom automatic
page_scale_actual=Talha vertadièra
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
+page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Error
loading_error=Una error s'es producha pendent lo cargament del fichièr PDF.
invalid_file_error=Fichièr PDF invalid o corromput.
missing_file_error=Fichièr PDF mancant.
+unexpected_response_error=Responsa de servidor imprevista.
+rendering_error=Una error s'es producha pendent l'afichatge de la pagina.
+
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}} a {{time}}
# 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
@@ -165,7 +236,43 @@ password_invalid=Senhal incorrècte. Tornatz ensajar.
password_ok=D'acòrdi
password_cancel=Anullar
-printing_not_supported=Atencion : l'estampatge es pas completament gerit per aqueste navigador.
-printing_not_ready=Atencion : lo PDF es pas entièrament cargat per lo poder imprimir.
-web_fonts_disabled=Las poliças web son desactivadas : impossible d'utilizar las poliças integradas al PDF.
-document_colors_not_allowed=Los documents PDF pòdon pas utilizar lors pròprias colors : « Autorizar las paginas web d'utilizar lors pròprias colors » es desactivat dins lo navigador.
+printing_not_supported=Atencion : l'impression es pas complètament gerida per aqueste navegador.
+printing_not_ready=Atencion : lo PDF es pas entièrament cargat per lo poder imprimir.
+web_fonts_disabled=Las polissas web son desactivadas : impossible d'utilizar las polissas integradas al PDF.
+
+# Editor
+editor_free_text2.title=Tèxte
+editor_free_text2_label=Tèxte
+editor_ink2.title=Dessenhar
+editor_ink2_label=Dessenhar
+
+editor_stamp1.title=Apondre o modificar d’imatges
+editor_stamp1_label=Apondre o modificar d’imatges
+
+free_text2_default_content=Començatz d’escriure…
+
+# Editor Parameters
+editor_free_text_color=Color
+editor_free_text_size=Talha
+editor_ink_color=Color
+editor_ink_thickness=Espessor
+editor_ink_opacity=Opacitat
+
+editor_stamp_add_image_label=Apondre imatge
+editor_stamp_add_image.title=Apondre imatge
+
+# Editor aria
+editor_free_text2_aria_label=Editor de tèxte
+editor_ink2_aria_label=Editor de dessenh
+editor_ink_canvas_aria_label=Imatge creat per l’utilizaire
+
+# 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=Tèxt alternatiu
+editor_alt_text_edit_button_label=Modificar lo tèxt alternatiu
+editor_alt_text_dialog_label=Causir una opcion
+editor_alt_text_add_description_label=Apondre una descripcion
+editor_alt_text_cancel_button=Anullar
+editor_alt_text_save_button=Enregistrar
+# This is a placeholder for the alt text input area
diff --git a/static/pdf.js/locale/or/viewer.properties b/static/pdf.js/locale/or/viewer.properties
deleted file mode 100644
index 279407d95..000000000
--- a/static/pdf.js/locale/or/viewer.properties
+++ /dev/null
@@ -1,172 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=ପୂର୍ବ ପୃଷ୍ଠା
-previous_label=ପୂର୍ବ
-next.title=ପର ପୃଷ୍ଠା
-next_label=ପର
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=ପୃଷ୍ଠା:
-page_of={{pageCount}} ର
-
-zoom_out.title=ଛୋଟ କରନ୍ତୁ
-zoom_out_label=ଛୋଟ କରନ୍ତୁ
-zoom_in.title=ବଡ଼ କରନ୍ତୁ
-zoom_in_label=ବଡ଼ କରନ୍ତୁ
-zoom.title=ଛୋଟ ବଡ଼ କରନ୍ତୁ
-presentation_mode.title=ଉପସ୍ଥାପନ ଧାରାକୁ ବଦଳାନ୍ତୁ
-presentation_mode_label=ଉପସ୍ଥାପନ ଧାରା
-open_file.title=ଫାଇଲ ଖୋଲନ୍ତୁ
-open_file_label=ଖୋଲନ୍ତୁ
-print.title=ମୁଦ୍ରଣ
-print_label=ମୁଦ୍ରଣ
-download.title=ଆହରଣ
-download_label=ଆହରଣ
-bookmark.title=ପ୍ରଚଳିତ ଦୃଶ୍ୟ (ନକଲ କରନ୍ତୁ କିମ୍ବା ଏକ ନୂତନ ୱିଣ୍ଡୋରେ ଖୋଲନ୍ତୁ)
-bookmark_label=ପ୍ରଚଳିତ ଦୃଶ୍ୟ
-
-# Secondary toolbar and context menu
-tools.title=ସାଧନଗୁଡ଼ିକ
-tools_label=ସାଧନଗୁଡ଼ିକ
-first_page.title=ପ୍ରଥମ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ
-first_page.label=ପ୍ରଥମ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ
-first_page_label=ପ୍ରଥମ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ
-last_page.title=ଶେଷ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ
-last_page.label=ଶେଷ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ
-last_page_label=ଶେଷ ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ
-page_rotate_cw.title=ଦକ୍ଷିଣାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ
-page_rotate_cw.label=ଦକ୍ଷିଣାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ
-page_rotate_cw_label=ଦକ୍ଷିଣାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ
-page_rotate_ccw.title=ବାମାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ
-page_rotate_ccw.label=ବାମାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ
-page_rotate_ccw_label=ବାମାବର୍ତ୍ତୀ ଘୁରାନ୍ତୁ
-
-hand_tool_enable.title=ହସ୍ତକୃତ ସାଧନକୁ ସକ୍ରିୟ କରନ୍ତୁ
-hand_tool_enable_label=ହସ୍ତକୃତ ସାଧନକୁ ସକ୍ରିୟ କରନ୍ତୁ
-hand_tool_disable.title=ହସ୍ତକୃତ ସାଧନକୁ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ
-hand_tool_disable_label=ହସ୍ତକୃତ ସାଧନକୁ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ
-
-# Document properties dialog box
-document_properties.title=ଦଲିଲ ଗୁଣଧର୍ମ…
-document_properties_label=ଦଲିଲ ଗୁଣଧର୍ମ…
-document_properties_file_name=ଫାଇଲ ନାମ:
-document_properties_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)
-# 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_title=ଶୀର୍ଷକ:
-document_properties_author=ଲେଖକ:
-document_properties_subject=ବିଷୟ:
-document_properties_keywords=ସୂଚକ ଶବ୍ଦ:
-document_properties_creation_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_creator=ନିର୍ମାତା:
-document_properties_producer=PDF ପ୍ରଯୋଜକ:
-document_properties_version=PDF ସଂସ୍କରଣ:
-document_properties_page_count=ପୃଷ୍ଠା ଗଣନା:
-document_properties_close=ବନ୍ଦ କରନ୍ତୁ
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=ପାର୍ଶ୍ୱପଟିକୁ ଆଗପଛ କରନ୍ତୁ
-toggle_sidebar_label=ପାର୍ଶ୍ୱପଟିକୁ ଆଗପଛ କରନ୍ତୁ
-outline.title=ଦଲିଲ ସାରାଂଶ ଦର୍ଶାନ୍ତୁ
-outline_label=ଦଲିଲ ସାରାଂଶ
-attachments.title=ସଂଲଗ୍ନକଗୁଡ଼ିକୁ ଦର୍ଶାନ୍ତୁ
-attachments_label=ସଲଗ୍ନକଗୁଡିକ
-thumbs.title=ସଂକ୍ଷିପ୍ତ ବିବରଣୀ ଦର୍ଶାନ୍ତୁ
-thumbs_label=ସଂକ୍ଷିପ୍ତ ବିବରଣୀ
-findbar.title=ଦଲିଲରେ ଖୋଜନ୍ତୁ
-findbar_label=ଖୋଜନ୍ତୁ
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=ପୃଷ୍ଠା {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=ପୃଷ୍ଠାର ସଂକ୍ଷିପ୍ତ ବିବରଣୀ {{page}}
-
-# Find panel button title and messages
-find_label=ଖୋଜନ୍ତୁ:
-find_previous.title=ଏହି ବାକ୍ୟାଂଶର ପୂର୍ବ ଉପସ୍ଥିତିକୁ ଖୋଜନ୍ତୁ
-find_previous_label=ପୂର୍ବବର୍ତ୍ତୀ
-find_next.title=ଏହି ବାକ୍ୟାଂଶର ପରବର୍ତ୍ତୀ ଉପସ୍ଥିତିକୁ ଖୋଜନ୍ତୁ
-find_next_label=ପରବର୍ତ୍ତୀ\u0020
-find_highlight=ସମସ୍ତଙ୍କୁ ଆଲୋକିତ କରନ୍ତୁ
-find_match_case_label=ଅକ୍ଷର ମେଳାନ୍ତୁ
-find_reached_top=ତଳୁ ଉପରକୁ ଗତି କରି ଦଲିଲର ଉପର ଭାଗରେ ପହଞ୍ଚି ଯାଇଛି
-find_reached_bottom=ଉପରୁ ତଳକୁ ଗତି କରି ଦଲିଲର ଶେଷ ଭାଗରେ ପହଞ୍ଚି ଯାଇଛି
-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
-page_scale_width=ପୃଷ୍ଠା ଓସାର
-page_scale_fit=ପୃଷ୍ଠା ମେଳନ
-page_scale_auto=ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଛୋଟବଡ଼ କରିବା
-page_scale_actual=ପ୍ରକୃତ ଆକାର
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-loading_error_indicator=ତ୍ରୁଟି
-loading_error=PDF ଧାରଣ କରିବା ସମୟରେ ଏକ ତ୍ରୁଟି ଘଟିଲା।
-invalid_file_error=ଅବୈଧ କିମ୍ବା ତ୍ରୁଟିଯୁକ୍ତ PDF ଫାଇଲ।
-missing_file_error=ହଜିଯାଇଥିବା PDF ଫାଇଲ।
-unexpected_response_error=ଅପ୍ରତ୍ୟାଶିତ ସର୍ଭର ଉତ୍ତର।
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Annotation]
-password_label=ଏହି PDF ଫାଇଲକୁ ଖୋଲିବା ପାଇଁ ପ୍ରବେଶ ସଂକେତ ଭରଣ କରନ୍ତୁ।
-password_invalid=ଭୁଲ ପ୍ରବେଶ ସଂକେତ। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।
-password_ok=ଠିକ ଅଛି
-password_cancel=ବାତିଲ କରନ୍ତୁ
-
-printing_not_supported=ଚେତାବନୀ: ଏହି ବ୍ରାଉଜର ଦ୍ୱାରା ମୁଦ୍ରଣ କ୍ରିୟା ସମ୍ପୂର୍ଣ୍ଣ ଭାବରେ ସହାୟତା ପ୍ରାପ୍ତ ନୁହଁ।
-printing_not_ready=ଚେତାବନୀ: PDF ଟି ମୁଦ୍ରଣ ପାଇଁ ସମ୍ପୂର୍ଣ୍ଣ ଭାବରେ ଧାରଣ ହୋଇ ନାହିଁ।
-web_fonts_disabled=ୱେବ ଅକ୍ଷରରୂପଗୁଡ଼ିକୁ ନିଷ୍କ୍ରିୟ କରାଯାଇଛି: ସନ୍ନିହିତ PDF ଅକ୍ଷରରୂପଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିବାରେ ଅସମର୍ଥ।
-document_colors_not_allowed=PDF ଦଲିଲଗୁଡ଼ିକ ସେମାନଙ୍କର ନିଜର ରଙ୍ଗ ବ୍ୟବହାର କରିବା ପାଇଁ ଅନୁମତି ପ୍ରାପ୍ତ ନୁହଁ: 'ସେମାନଙ୍କର ନିଜ ରଙ୍ଗ ବାଛିବା ପାଇଁ ପୃଷ୍ଠାଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ' କୁ ବ୍ରାଉଜରରେ ନିଷ୍କ୍ରିୟ କରାଯାଇଛି।
diff --git a/static/pdf.js/locale/pa-IN/viewer.properties b/static/pdf.js/locale/pa-IN/viewer.properties
index fb26fc311..2cb316fbf 100644
--- a/static/pdf.js/locale/pa-IN/viewer.properties
+++ b/static/pdf.js/locale/pa-IN/viewer.properties
@@ -13,92 +13,155 @@
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
-previous.title=ਸਫ਼ਾ ਪਿੱਛੇ
+previous.title=ਪਿਛਲਾ ਸਫ਼ਾ
previous_label=ਪਿੱਛੇ
-next.title=ਸਫ਼ਾ ਅੱਗੇ
+next.title=ਅਗਲਾ ਸਫ਼ਾ
next_label=ਅੱਗੇ
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=ਸਫ਼ਾ:
-page_of={{pageCount}} ਵਿੱਚੋਂ
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=ਸਫ਼ਾ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} ਵਿੱਚੋਂ
+# 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={{pagesCount}}) ਵਿੱਚੋਂ ({{pageNumber}}
zoom_out.title=ਜ਼ੂਮ ਆਉਟ
zoom_out_label=ਜ਼ੂਮ ਆਉਟ
zoom_in.title=ਜ਼ੂਮ ਇਨ
zoom_in_label=ਜ਼ੂਮ ਇਨ
zoom.title=ਜ਼ੂਨ
-print.title=ਪਰਿੰਟ
-print_label=ਪਰਿੰਟ
presentation_mode.title=ਪਰਿਜੈਂਟੇਸ਼ਨ ਮੋਡ ਵਿੱਚ ਜਾਓ
presentation_mode_label=ਪਰਿਜੈਂਟੇਸ਼ਨ ਮੋਡ
-
-open_file.title=ਫਾਈਲ ਖੋਲ੍ਹੋ
+open_file.title=ਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹੋ
open_file_label=ਖੋਲ੍ਹੋ
-download.title=ਡਾਊਨਲੋਡ
-download_label=ਡਾਊਨਲੋਡ
-bookmark.title=ਮੌਜੂਦਾ ਝਲਕ (ਨਵੀਂ ਵਿੰਡੋ ਵਿੱਚ ਕਾਪੀ ਕਰੋ ਜਾਂ ਖੋਲ੍ਹੋ)
-bookmark_label=ਮੌਜੂਦਾ ਝਲਕ
+print.title=ਪਰਿੰਟ
+print_label=ਪਰਿੰਟ
+save.title=ਸੰਭਾਲੋ
+save_label=ਸੰਭਾਲੋ
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
tools.title=ਟੂਲ
tools_label=ਟੂਲ
first_page.title=ਪਹਿਲੇ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ
-first_page.label=ਪਹਿਲੇ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ
first_page_label=ਪਹਿਲੇ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ
-
last_page.title=ਆਖਰੀ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ
last_page_label=ਆਖਰੀ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ
page_rotate_cw.title=ਸੱਜੇ ਦਾਅ ਘੁੰਮਾਓ
-page_rotate_cw.label=ਸੱਜੇ ਦਾਅ ਘੁੰਮਾਓ
page_rotate_cw_label=ਸੱਜੇ ਦਾਅ ਘੁੰਮਾਓ
page_rotate_ccw.title=ਖੱਬੇ ਦਾਅ ਘੁੰਮਾਓ
page_rotate_ccw_label=ਖੱਬੇ ਦਾਅ ਘੁੰਮਾਓ
-hand_tool_enable.title=ਹੱਥ ਟੂਲ ਚਾਲੂ
-hand_tool_enable_label=ਹੱਥ ਟੂਲ ਚਾਲੂ
-hand_tool_disable.title=ਹੱਥ ਟੂਲ ਬੰਦ
-hand_tool_disable_label=ਹੱਥ ਟੂਲ ਬੰਦ
+cursor_text_select_tool.title=ਲਿਖਤ ਚੋਣ ਟੂਲ ਸਮਰੱਥ ਕਰੋ
+cursor_text_select_tool_label=ਲਿਖਤ ਚੋਣ ਟੂਲ
+cursor_hand_tool.title=ਹੱਥ ਟੂਲ ਸਮਰੱਥ ਕਰੋ
+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.title=…ਦਸਤਾਵੇਜ਼ ਵਿਸ਼ੇਸ਼ਤਾ
-document_properties_label=…ਦਸਤਾਵੇਜ਼ ਵਿਸ਼ੇਸ਼ਤਾ
-document_properties_file_name=ਫਾਈਲ ਨਾਂ:
-document_properties_file_size=ਫਾਈਲ ਆਕਾਰ:
+document_properties.title=…ਦਸਤਾਵੇਜ਼ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ
+document_properties_label=…ਦਸਤਾਵੇਜ਼ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ
+document_properties_file_name=ਫਾਈਲ ਦਾ ਨਾਂ:
+document_properties_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}} ਬਾਈਟ)
+# 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_author=ਲੇਖਕ:
document_properties_subject=ਵਿਸ਼ਾ:
document_properties_keywords=ਸ਼ਬਦ:
-document_properties_creation_date=ਬਣਾਉਣ ਮਿਤੀ:
-document_properties_modification_date=ਸੋਧ ਮਿਤੀ:
+document_properties_creation_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_creator=ਨਿਰਮਾਤਾ:
document_properties_producer=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=ਤੇਜ਼ ਵੈੱਬ ਝਲਕ:
+document_properties_linearized_yes=ਹਾਂ
+document_properties_linearized_no=ਨਹੀਂ
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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=ਬਾਹੀ ਬਦਲੋ
+toggle_sidebar_notification2.title=ਬਾਹੀ ਨੂੰ ਬਦਲੋ (ਦਸਤਾਵੇਜ਼ ਖਾਕਾ/ਅਟੈਚਮੈਂਟ/ਪਰਤਾਂ ਰੱਖਦਾ ਹੈ)
toggle_sidebar_label=ਬਾਹੀ ਬਦਲੋ
-
-outline.title=ਦਸਤਾਵੇਜ਼ ਆਉਟਲਾਈਨ ਵੇਖਾਓ
-outline_label=ਦਸਤਾਵੇਜ਼ ਆਉਟਲਾਈਨ
+document_outline.title=ਦਸਤਾਵੇਜ਼ ਖਾਕਾ ਦਿਖਾਓ (ਸਾਰੀਆਂ ਆਈਟਮਾਂ ਨੂੰ ਫੈਲਾਉਣ/ਸਮੇਟਣ ਲਈ ਦੋ ਵਾਰ ਕਲਿੱਕ ਕਰੋ)
+document_outline_label=ਦਸਤਾਵੇਜ਼ ਖਾਕਾ
attachments.title=ਅਟੈਚਮੈਂਟ ਵੇਖਾਓ
-attachments_label=ਅਟੈਚਮੈਂਟ
-thumbs.title=ਥੰਮਨੇਲ ਵੇਖਾਓ
+attachments_label=ਅਟੈਚਮੈਂਟਾਂ
+layers.title=ਪਰਤਾਂ ਵੇਖਾਓ (ਸਾਰੀਆਂ ਪਰਤਾਂ ਨੂੰ ਮੂਲ ਹਾਲਤ ਉੱਤੇ ਮੁੜ-ਸੈੱਟ ਕਰਨ ਲਈ ਦੋ ਵਾਰ ਕਲਿੱਕ ਕਰੋ)
+layers_label=ਪਰਤਾਂ
+thumbs.title=ਥੰਮਨੇਲ ਨੂੰ ਵੇਖਾਓ
thumbs_label=ਥੰਮਨੇਲ
+current_outline_item.title=ਮੌੌਜੂਦਾ ਖਾਕਾ ਚੀਜ਼ ਲੱਭੋ
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -107,75 +170,101 @@ thumb_page_title=ਸਫ਼ਾ {{page}}
# number.
thumb_page_canvas={{page}} ਸਫ਼ੇ ਦਾ ਥੰਮਨੇਲ
-
-# Context menu
-first_page.label=ਪਹਿਲੇ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ
-last_page.label=ਆਖਰੀ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ
-page_rotate_cw.label=ਸੱਜੇ ਦਾਅ ਘੁੰਮਾਉ
-page_rotate_ccw.label=ਖੱਬੇ ਦਾਅ ਘੁੰਮਾਉ
-
# Find panel button title and messages
-find_label=ਲੱਭੋ:
+find_input.title=ਲੱਭੋ
+find_input.placeholder=…ਦਸਤਾਵੇਜ਼ 'ਚ ਲੱਭੋ
find_previous.title=ਵਾਕ ਦੀ ਪਿਛਲੀ ਮੌਜੂਦਗੀ ਲੱਭੋ
find_previous_label=ਪਿੱਛੇ
find_next.title=ਵਾਕ ਦੀ ਅਗਲੀ ਮੌਜੂਦਗੀ ਲੱਭੋ
find_next_label=ਅੱਗੇ
find_highlight=ਸਭ ਉਭਾਰੋ
-find_match_case_label=ਅੱਖਰ ਆਕਾਰ ਮਿਲਾਉ
+find_match_case_label=ਅੱਖਰ ਆਕਾਰ ਨੂੰ ਮਿਲਾਉ
+find_match_diacritics_label=ਭੇਦਸੂਚਕ ਮੇਲ
+find_entire_word_label=ਪੂਰੇ ਸ਼ਬਦ
find_reached_top=ਦਸਤਾਵੇਜ਼ ਦੇ ਉੱਤੇ ਆ ਗਏ ਹਾਂ, ਥੱਲੇ ਤੋਂ ਜਾਰੀ ਰੱਖਿਆ ਹੈ
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]={{total}} ਵਿੱਚੋਂ {{current}} ਮੇਲ
+find_match_count[two]={{total}} ਵਿੱਚੋਂ {{current}} ਮੇਲ
+find_match_count[few]={{total}} ਵਿੱਚੋਂ {{current}} ਮੇਲ
+find_match_count[many]={{total}} ਵਿੱਚੋਂ {{current}} ਮੇਲ
+find_match_count[other]={{total}} ਵਿੱਚੋਂ {{current}} ਮੇਲ
+# 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=ਵਾਕ ਨਹੀਂ ਲੱਭਿਆ
-
-# 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}}
-
-# 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
-page_scale_width=ਸਫ਼ਾ ਚੌੜਾਈ
+page_scale_width=ਸਫ਼ੇ ਦੀ ਚੌੜਾਈ
page_scale_fit=ਸਫ਼ਾ ਫਿੱਟ
-page_scale_auto=ਆਟੋਮੈਟਿਕ ਜ਼ੂਮ
+page_scale_auto=ਆਟੋਮੈਟਿਕ ਜ਼ੂਮ ਕਰੋ
page_scale_actual=ਆਟੋਮੈਟਿਕ ਆਕਾਰ
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
-# LOCALIZATION NOTE (error_line): "{{[percent}}" will be replaced with a percentage
-loading_error_indicator=ਗਲਤੀ
loading_error=PDF ਲੋਡ ਕਰਨ ਦੇ ਦੌਰਾਨ ਗਲਤੀ ਆਈ ਹੈ।
invalid_file_error=ਗਲਤ ਜਾਂ ਨਿਕਾਰਾ PDF ਫਾਈਲ ਹੈ।
missing_file_error=ਨਾ-ਮੌਜੂਦ PDF ਫਾਈਲ।
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} ਵਿਆਖਿਆ]
-password_label=ਇਹ PDF ਫਾਈਲ ਖੋਲ੍ਹਣ ਲਈ ਪਾਸਵਰਡ ਦਿਉ।
+text_annotation_type.alt=[{{type}} ਵਿਆਖਿਆ]
+password_label=ਇਹ PDF ਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ ਪਾਸਵਰਡ ਦਿਉ।
password_invalid=ਗਲਤ ਪਾਸਵਰਡ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।
password_ok=ਠੀਕ ਹੈ
password_cancel=ਰੱਦ ਕਰੋ
printing_not_supported=ਸਾਵਧਾਨ: ਇਹ ਬਰਾਊਜ਼ਰ ਪਰਿੰਟ ਕਰਨ ਲਈ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।
-printing_not_ready=ਸਾਵਧਾਨ: PDF ਪਰਿੰਟ ਕਰਨ ਲਈ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਨਹੀਂ ਹੈ।
-web_fonts_disabled=ਵੈਬ ਫੋਂਟ ਬੰਦ ਹਨ: ਇੰਬੈਡ PDF ਫੋਂਟ ਵਰਤਨ ਲਈ ਅਸਮਰੱਥ ਹੈ।
-document_colors_disabled=PDF ਡੌਕੂਮੈਂਟ ਨੂੰ ਆਪਣੇ ਰੰਗ ਵਰਤਣ ਦੀ ਇਜ਼ਾਜ਼ਤ ਨਹੀਂ ਹੈ।: ਬਰਾਊਜ਼ਰ ਵਿੱਚ \u0022ਸਫ਼ਿਆਂ ਨੂੰ ਆਪਣੇ ਰੰਗ ਵਰਤਣ ਦਿਉ\u0022 ਨੂੰ ਬੰਦ ਕੀਤਾ ਹੋਇਆ ਹੈ।
\ No newline at end of file
+printing_not_ready=ਸਾਵਧਾਨ: PDF ਨੂੰ ਪਰਿੰਟ ਕਰਨ ਲਈ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਨਹੀਂ ਹੈ।
+web_fonts_disabled=ਵੈਬ ਫੋਂਟ ਬੰਦ ਹਨ: ਇੰਬੈਡ PDF ਫੋਂਟ ਨੂੰ ਵਰਤਣ ਲਈ ਅਸਮਰੱਥ ਹੈ।
+
+# 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=ਵਰਤੋਂਕਾਰ ਵਲੋਂ ਬਣਾਇਆ ਚਿੱਤਰ
diff --git a/static/pdf.js/locale/pl/viewer.properties b/static/pdf.js/locale/pl/viewer.properties
index f4fa27358..40699fac2 100644
--- a/static/pdf.js/locale/pl/viewer.properties
+++ b/static/pdf.js/locale/pl/viewer.properties
@@ -1,124 +1,270 @@
-# 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/.
+# 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.
+# Main toolbar buttons (tooltips and alt text for images)
previous.title=Poprzednia strona
previous_label=Poprzednia
next.title=Następna strona
next_label=Następna
-page_label=Strona:
-page_of=z {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Strona
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=z {{pagesCount}}
+# 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}} z {{pagesCount}})
-zoom_out.title=Pomniejszenie
+zoom_out.title=Pomniejsz
zoom_out_label=Pomniejsz
-zoom_in.title=Powiększenie
+zoom_in.title=Powiększ
zoom_in_label=Powiększ
zoom.title=Skala
presentation_mode.title=Przełącz na tryb prezentacji
presentation_mode_label=Tryb prezentacji
-open_file.title=Otwieranie pliku
+open_file.title=Otwórz plik
open_file_label=Otwórz
-print.title=Drukowanie
+print.title=Drukuj
print_label=Drukuj
-download.title=Pobieranie
-download_label=Pobierz
-bookmark.title=Bieżąca pozycja (skopiuj lub otwórz jako odnośnik w nowym oknie)
-bookmark_label=Bieżąca pozycja
+save.title=Zapisz
+save_label=Zapisz
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Pobierz
+# 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=Pobierz
+bookmark1.title=Bieżąca strona (adres do otwarcia na bieżącej stronie)
+bookmark1_label=Bieżąca strona
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Otwórz w aplikacji
+# 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=Otwórz w aplikacji
+# Secondary toolbar and context menu
tools.title=Narzędzia
tools_label=Narzędzia
-first_page.title=Przechodzenie do pierwszej strony
-first_page.label=Przejdź do pierwszej strony
+first_page.title=Przejdź do pierwszej strony
first_page_label=Przejdź do pierwszej strony
-last_page.title=Przechodzenie do ostatniej strony
-last_page.label=Przejdź do ostatniej strony
+last_page.title=Przejdź do ostatniej strony
last_page_label=Przejdź do ostatniej strony
-page_rotate_cw.title=Obracanie zgodnie z ruchem wskazówek zegara
-page_rotate_cw.label=Obróć zgodnie z ruchem wskazówek zegara
+page_rotate_cw.title=Obróć zgodnie z ruchem wskazówek zegara
page_rotate_cw_label=Obróć zgodnie z ruchem wskazówek zegara
-page_rotate_ccw.title=Obracanie przeciwnie do ruchu wskazówek zegara
-page_rotate_ccw.label=Obróć przeciwnie do ruchu wskazówek zegara
+page_rotate_ccw.title=Obróć przeciwnie do ruchu wskazówek zegara
page_rotate_ccw_label=Obróć przeciwnie do ruchu wskazówek zegara
-hand_tool_enable.title=Włączanie narzędzia rączka
-hand_tool_enable_label=Włącz narzędzie rączka
-hand_tool_disable.title=Wyłączanie narzędzia rączka
-hand_tool_disable_label=Wyłącz narzędzie rączka
+cursor_text_select_tool.title=Włącz narzędzie zaznaczania tekstu
+cursor_text_select_tool_label=Narzędzie zaznaczania tekstu
+cursor_hand_tool.title=Włącz narzędzie rączka
+cursor_hand_tool_label=Narzędzie rączka
+scroll_page.title=Przewijaj strony
+scroll_page_label=Przewijanie stron
+scroll_vertical.title=Przewijaj dokument w pionie
+scroll_vertical_label=Przewijanie pionowe
+scroll_horizontal.title=Przewijaj dokument w poziomie
+scroll_horizontal_label=Przewijanie poziome
+scroll_wrapped.title=Strony dokumentu wyświetlaj i przewijaj w kolumnach
+scroll_wrapped_label=Widok dwóch stron
+
+spread_none.title=Nie ustawiaj stron obok siebie
+spread_none_label=Brak kolumn
+spread_odd.title=Strony nieparzyste ustawiaj na lewo od parzystych
+spread_odd_label=Nieparzyste po lewej
+spread_even.title=Strony parzyste ustawiaj na lewo od nieparzystych
+spread_even_label=Parzyste po lewej
+
+# Document properties dialog box
document_properties.title=Właściwości dokumentu…
document_properties_label=Właściwości dokumentu…
document_properties_file_name=Nazwa pliku:
document_properties_file_size=Rozmiar pliku:
-document_properties_kb={{size_kb}} KB ({{size_b}} b)
-document_properties_mb={{size_mb}} MB ({{size_b}} b)
+# 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}} 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}} B)
document_properties_title=Tytuł:
document_properties_author=Autor:
document_properties_subject=Temat:
document_properties_keywords=Słowa kluczowe:
document_properties_creation_date=Data utworzenia:
document_properties_modification_date=Data modyfikacji:
+# 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=Utworzony przez:
document_properties_producer=PDF wyprodukowany przez:
document_properties_version=Wersja PDF:
document_properties_page_count=Liczba stron:
+document_properties_page_size=Wymiary strony:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=pionowa
+document_properties_page_size_orientation_landscape=pozioma
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=US Letter
+document_properties_page_size_name_legal=US 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}} (orientacja {{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}}, orientacja {{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=Szybki podgląd w Internecie:
+document_properties_linearized_yes=tak
+document_properties_linearized_no=nie
document_properties_close=Zamknij
-toggle_sidebar.title=Przełączanie panelu bocznego
+print_progress_message=Przygotowywanie dokumentu do druku…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Anuluj
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Przełącz panel boczny
+toggle_sidebar_notification2.title=Przełącz panel boczny (dokument zawiera konspekt/załączniki/warstwy)
toggle_sidebar_label=Przełącz panel boczny
-outline.title=Wyświetlanie zarysu dokumentu
-outline_label=Zarys dokumentu
-attachments.title=Wyświetlanie załączników
+document_outline.title=Konspekt dokumentu (podwójne kliknięcie rozwija lub zwija wszystkie pozycje)
+document_outline_label=Konspekt dokumentu
+attachments.title=Załączniki
attachments_label=Załączniki
-thumbs.title=Wyświetlanie miniaturek
-thumbs_label=Miniaturki
+layers.title=Warstwy (podwójne kliknięcie przywraca wszystkie warstwy do stanu domyślnego)
+layers_label=Warstwy
+thumbs.title=Miniatury
+thumbs_label=Miniatury
+current_outline_item.title=Znajdź bieżący element konspektu
+current_outline_item_label=Bieżący element konspektu
findbar.title=Znajdź w dokumencie
findbar_label=Znajdź
-thumb_page_title=Strona {{page}}
-thumb_page_canvas=Miniaturka strony {{page}}
+additional_layers=Dodatkowe warstwy
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark={{page}}. strona
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title={{page}}. strona
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura {{page}}. strony
-find_label=Znajdź:
+# Find panel button title and messages
+find_input.title=Znajdź
+find_input.placeholder=Znajdź w dokumencie…
find_previous.title=Znajdź poprzednie wystąpienie tekstu
find_previous_label=Poprzednie
find_next.title=Znajdź następne wystąpienie tekstu
find_next_label=Następne
-find_highlight=Podświetl wszystkie
-find_match_case_label=Rozróżniaj wielkość znaków
-find_reached_top=Osiągnięto początek dokumentu, kontynuacja od końca
-find_reached_bottom=Osiągnięto koniec dokumentu, kontynuacja od początku
-find_not_found=Tekst nieznaleziony
-
-error_more_info=Więcej informacji
-error_less_info=Mniej informacji
-error_close=Zamknij
-error_version_info=PDF.js v{{version}} (kompilacja: {{build}})
-error_message=Wiadomość: {{message}}
-error_stack=Stos: {{stack}}
-error_file=Plik: {{file}}
-error_line=Wiersz: {{line}}
-rendering_error=Podczas renderowania strony wystąpił błąd.
+find_highlight=Wyróżnianie wszystkich
+find_match_case_label=Rozróżnianie wielkości liter
+find_match_diacritics_label=Rozróżnianie liter diakrytyzowanych
+find_entire_word_label=Całe słowa
+find_reached_top=Początek dokumentu. Wyszukiwanie od końca.
+find_reached_bottom=Koniec dokumentu. Wyszukiwanie od początku.
+# 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]=Pierwsze z {{total}} trafień
+find_match_count[two]=Drugie z {{total}} trafień
+find_match_count[few]={{current}}. z {{total}} trafień
+find_match_count[many]={{current}}. z {{total}} trafień
+find_match_count[other]={{current}}. z {{total}} trafień
+# 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]=Brak trafień.
+find_match_count_limit[one]=Więcej niż jedno trafienie.
+find_match_count_limit[two]=Więcej niż dwa trafienia.
+find_match_count_limit[few]=Więcej niż {{limit}} trafienia.
+find_match_count_limit[many]=Więcej niż {{limit}} trafień.
+find_match_count_limit[other]=Więcej niż {{limit}} trafień.
+find_not_found=Nie znaleziono tekstu
+# Predefined zoom values
page_scale_width=Szerokość strony
page_scale_fit=Dopasowanie strony
page_scale_auto=Skala automatyczna
-page_scale_actual=Rozmiar rzeczywisty
+page_scale_actual=Rozmiar oryginalny
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
page_scale_percent={{scale}}%
-loading_error_indicator=Błąd
+# Loading indicator messages
loading_error=Podczas wczytywania dokumentu PDF wystąpił błąd.
invalid_file_error=Nieprawidłowy lub uszkodzony plik PDF.
missing_file_error=Brak pliku PDF.
unexpected_response_error=Nieoczekiwana odpowiedź serwera.
+rendering_error=Podczas renderowania strony wystąpił błąd.
-text_annotation_type.alt=[Adnotacja: {{type}}]
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Przypis: {{type}}]
password_label=Wprowadź hasło, aby otworzyć ten dokument PDF.
password_invalid=Nieprawidłowe hasło. Proszę spróbować ponownie.
password_ok=OK
password_cancel=Anuluj
-printing_not_supported=Ostrzeżenie: Drukowanie nie jest w pełni obsługiwane przez przeglądarkę.
-printing_not_ready=Ostrzeżenie: Dokument PDF nie jest całkowicie wczytany, więc nie można go wydrukować.
+printing_not_supported=Ostrzeżenie: drukowanie nie jest w pełni obsługiwane przez tę przeglądarkę.
+printing_not_ready=Ostrzeżenie: dokument PDF nie jest całkowicie wczytany, więc nie można go wydrukować.
web_fonts_disabled=Czcionki sieciowe są wyłączone: nie można użyć osadzonych czcionek PDF.
-document_colors_not_allowed=Dokumenty PDF nie mogą używać własnych kolorów: Opcja „Pozwalaj stronom stosować inne kolory” w przeglądarce jest nieaktywna.
+
+# Editor
+editor_free_text2.title=Tekst
+editor_free_text2_label=Tekst
+editor_ink2.title=Rysunek
+editor_ink2_label=Rysunek
+
+editor_stamp.title=Dodaj obraz
+editor_stamp_label=Dodaj obraz
+
+editor_stamp1.title=Dodaj lub edytuj obrazy
+editor_stamp1_label=Dodaj lub edytuj obrazy
+
+free_text2_default_content=Zacznij pisać…
+
+# Editor Parameters
+editor_free_text_color=Kolor
+editor_free_text_size=Rozmiar
+editor_ink_color=Kolor
+editor_ink_thickness=Grubość
+editor_ink_opacity=Nieprzezroczystość
+
+editor_stamp_add_image_label=Dodaj obraz
+editor_stamp_add_image.title=Dodaj obraz
+
+# Editor aria
+editor_free_text2_aria_label=Edytor tekstu
+editor_ink2_aria_label=Edytor rysunku
+editor_ink_canvas_aria_label=Obraz utworzony przez użytkownika
diff --git a/static/pdf.js/locale/pt-BR/viewer.properties b/static/pdf.js/locale/pt-BR/viewer.properties
index cdfd8f0c0..077b40379 100644
--- a/static/pdf.js/locale/pt-BR/viewer.properties
+++ b/static/pdf.js/locale/pt-BR/viewer.properties
@@ -18,49 +18,73 @@ previous_label=Anterior
next.title=Próxima página
next_label=Próxima
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Página:
-page_of=de {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Página
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
-zoom_out.title=Diminuir zoom
-zoom_out_label=Diminuir zoom
-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
-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
open_file.title=Abrir arquivo
open_file_label=Abrir
print.title=Imprimir
print_label=Imprimir
-download.title=Download
-download_label=Download
-bookmark.title=Visualização atual (copie ou abra em uma nova janela)
-bookmark_label=Visualização atual
+save.title=Salvar
+save_label=Salvar
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
tools.title=Ferramentas
tools_label=Ferramentas
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
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
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_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
-hand_tool_enable.title=Ativar ferramenta da mão
-hand_tool_enable_label=Ativar ferramenta da mão
-hand_tool_disable.title=Desativar ferramenta da mão
-hand_tool_disable_label=Desativar ferramenta da mão
+cursor_text_select_tool.title=Ativar a ferramenta de seleção de texto
+cursor_text_select_tool_label=Ferramenta de seleção de texto
+cursor_hand_tool.title=Ativar ferramenta de deslocamento
+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.title=Propriedades do documento…
@@ -86,22 +110,58 @@ document_properties_creator=Criação:
document_properties_producer=Criador do PDF:
document_properties_version=Versão do PDF:
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
+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
# (the _label strings are alt text for the buttons, the .title strings are
# 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
-outline.title=Exibir estrutura de tópicos
-outline_label=Estrutura de tópicos do documento
-attachments.title=Exibir anexos
+document_outline.title=Mostrar estrutura do documento (duplo-clique expande/recolhe todos os itens)
+document_outline_label=Estrutura do documento
+attachments.title=Mostrar 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
-findbar.title=Localizar no documento
-findbar_label=Localizar
+current_outline_item.title=Encontrar item atual da estrutura
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,35 +171,40 @@ thumb_page_title=Página {{page}}
thumb_page_canvas=Miniatura da página {{page}}
# Find panel button title and messages
-find_label=Localizar:
-find_previous.title=Localizar a ocorrência anterior do texto
+find_input.title=Procurar
+find_input.placeholder=Procurar no documento…
+find_previous.title=Procurar a ocorrência anterior da frase
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_highlight=Realçar tudo
+find_highlight=Destacar tudo
find_match_case_label=Diferenciar maiúsculas/minúsculas
-find_reached_top=Atingido o início do documento, continuando do fim
-find_reached_bottom=Atingido o fim do documento, continuando do início
-find_not_found=Texto não encontrado
-
-# Error panel labels
-error_more_info=Mais informações
-error_less_info=Menos informações
-error_close=Fechar
-# 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=Mensagem: {{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=Arquivo: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linha: {{line}}
-rendering_error=Ocorreu um erro ao renderizar a página.
+find_match_diacritics_label=Considerar acentuação
+find_entire_word_label=Palavras completas
+find_reached_top=Início do documento alcançado, continuando do fim
+find_reached_bottom=Fim do documento alcançado, continuando do início
+# 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}} de {{total}} ocorrência
+find_match_count[two]={{current}} de {{total}} ocorrências
+find_match_count[few]={{current}} de {{total}} ocorrências
+find_match_count[many]={{current}} de {{total}} ocorrências
+find_match_count[other]={{current}} de {{total}} ocorrências
+# 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]=Mais de {{limit}} ocorrências
+find_match_count_limit[one]=Mais de {{limit}} ocorrência
+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
page_scale_width=Largura da página
@@ -151,11 +216,15 @@ page_scale_actual=Tamanho real
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Erro
loading_error=Ocorreu um erro ao carregar o PDF.
invalid_file_error=Arquivo PDF corrompido ou inválido.
missing_file_error=Arquivo PDF ausente.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -163,11 +232,39 @@ unexpected_response_error=Resposta inesperada do servidor.
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[Anotação {{type}}]
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_cancel=Cancelar
-printing_not_supported=Alerta: a impressão não é totalmente suportada neste navegador.
-printing_not_ready=Alerta: 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.
-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.
+printing_not_supported=Aviso: a impressão não é totalmente suportada neste navegador.
+printing_not_ready=Aviso: o PDF não está totalmente carregado para impressão.
+web_fonts_disabled=As fontes web estão desativadas: não foi possível usar fontes incorporadas do PDF.
+
+# 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
diff --git a/static/pdf.js/locale/pt-PT/viewer.properties b/static/pdf.js/locale/pt-PT/viewer.properties
index 714095201..22437aa3c 100644
--- a/static/pdf.js/locale/pt-PT/viewer.properties
+++ b/static/pdf.js/locale/pt-PT/viewer.properties
@@ -18,49 +18,73 @@ previous_label=Anterior
next.title=Página seguinte
next_label=Seguinte
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Página:
-page_of=de {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Página
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
zoom_out.title=Reduzir
zoom_out_label=Reduzir
zoom_in.title=Ampliar
zoom_in_label=Ampliar
-zoom.title=Ampliação
-presentation_mode.title=Mudar para modo de apresentação
+zoom.title=Zoom
+presentation_mode.title=Trocar para o modo de apresentação
presentation_mode_label=Modo de apresentação
open_file.title=Abrir ficheiro
open_file_label=Abrir
print.title=Imprimir
print_label=Imprimir
-download.title=Descarregar
-download_label=Descarregar
-bookmark.title=Visão atual (copiar ou abrir em nova janela)
-bookmark_label=Visão atual
+save.title=Guardar
+save_label=Guardar
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Transferir
+# 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=Transferir
+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 na aplicação
+# 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 na aplicação
# Secondary toolbar and context menu
tools.title=Ferramentas
tools_label=Ferramentas
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
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
page_rotate_cw.title=Rodar à direita
-page_rotate_cw.label=Rodar à direita
page_rotate_cw_label=Rodar à direita
page_rotate_ccw.title=Rodar à esquerda
-page_rotate_ccw.label=Rodar à esquerda
page_rotate_ccw_label=Rodar à esquerda
-hand_tool_enable.title=Ativar ferramenta de mão
-hand_tool_enable_label=Ativar ferramenta de mão
-hand_tool_disable.title=Desativar ferramenta de mão
-hand_tool_disable_label=Desativar ferramenta de mão
+cursor_text_select_tool.title=Ativar ferramenta de seleção de texto
+cursor_text_select_tool_label=Ferramenta de seleção de texto
+cursor_hand_tool.title=Ativar ferramenta de mão
+cursor_hand_tool_label=Ferramenta de mão
+
+scroll_page.title=Utilizar deslocamento da página
+scroll_page_label=Deslocamento da página
+scroll_vertical.title=Utilizar deslocação vertical
+scroll_vertical_label=Deslocação vertical
+scroll_horizontal.title=Utilizar deslocação horizontal
+scroll_horizontal_label=Deslocação horizontal
+scroll_wrapped.title=Utilizar deslocação encapsulada
+scroll_wrapped_label=Deslocação encapsulada
+
+spread_none.title=Não juntar páginas dispersas
+spread_none_label=Sem spreads
+spread_odd.title=Juntar páginas dispersas a partir de páginas com números ímpares
+spread_odd_label=Spreads ímpares
+spread_even.title=Juntar páginas dispersas a partir de páginas com números pares
+spread_even_label=Spreads pares
# Document properties dialog box
document_properties.title=Propriedades do documento…
@@ -86,22 +110,58 @@ document_properties_creator=Criador:
document_properties_producer=Produtor de PDF:
document_properties_version=Versão do PDF:
document_properties_page_count=N.º de páginas:
+document_properties_page_size=Tamanho da página:
+document_properties_page_size_unit_inches=in
+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=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=Vista rápida web:
+document_properties_linearized_yes=Sim
+document_properties_linearized_no=Não
document_properties_close=Fechar
+print_progress_message=A preparar o 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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-toggle_sidebar.title=Comutar barra lateral
-toggle_sidebar_label=Comutar barra lateral
-outline.title=Mostrar estrutura do documento
-outline_label=Estrutura do documento
+toggle_sidebar.title=Alternar barra lateral
+toggle_sidebar_notification2.title=Alternar barra lateral (o documento contém contornos/anexos/camadas)
+toggle_sidebar_label=Alternar barra lateral
+document_outline.title=Mostrar esquema do documento (duplo clique para expandir/colapsar todos os itens)
+document_outline_label=Esquema do documento
attachments.title=Mostrar anexos
attachments_label=Anexos
+layers.title=Mostrar camadas (clique duas vezes para repor todas as camadas para o estado predefinido)
+layers_label=Camadas
thumbs.title=Mostrar miniaturas
thumbs_label=Miniaturas
-findbar.title=Localizar no documento
+current_outline_item.title=Encontrar o item atualmente destacado
+current_outline_item_label=Item atualmente destacado
+findbar.title=Localizar em documento
findbar_label=Localizar
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,63 +171,100 @@ thumb_page_title=Página {{page}}
thumb_page_canvas=Miniatura da página {{page}}
# Find panel button title and messages
-find_label=Localizar:
+find_input.title=Localizar
+find_input.placeholder=Localizar em documento…
find_previous.title=Localizar ocorrência anterior da frase
find_previous_label=Anterior
find_next.title=Localizar ocorrência seguinte da frase
find_next_label=Seguinte
find_highlight=Destacar tudo
find_match_case_label=Correspondência
-find_reached_top=Início de documento atingido, a continuar do fim
-find_reached_bottom=Fim da página atingido, a continuar do início
+find_match_diacritics_label=Corresponder diacríticos
+find_entire_word_label=Palavras completas
+find_reached_top=Topo do documento atingido, a continuar a partir do fundo
+find_reached_bottom=Fim do documento atingido, a continuar a partir do topo
+# 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}} de {{total}} correspondência
+find_match_count[two]={{current}} de {{total}} correspondências
+find_match_count[few]={{current}} de {{total}} correspondências
+find_match_count[many]={{current}} de {{total}} correspondências
+find_match_count[other]={{current}} de {{total}} correspondências
+# 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]=Mais de {{limit}} correspondências
+find_match_count_limit[one]=Mais de {{limit}} correspondência
+find_match_count_limit[two]=Mais de {{limit}} correspondências
+find_match_count_limit[few]=Mais de {{limit}} correspondências
+find_match_count_limit[many]=Mais de {{limit}} correspondências
+find_match_count_limit[other]=Mais de {{limit}} correspondências
find_not_found=Frase não encontrada
-# Error panel labels
-error_more_info=Mais informação
-error_less_info=Menos informação
-error_close=Fechar
-# 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}} (compilação: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Mensagem: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Pilha: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Ficheiro: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linha: {{line}}
-rendering_error=Ocorreu um erro ao processar a página.
-
# Predefined zoom values
page_scale_width=Ajustar à largura
page_scale_fit=Ajustar à página
-page_scale_auto=Tamanho automático
+page_scale_auto=Zoom automático
page_scale_actual=Tamanho real
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Erro
loading_error=Ocorreu um erro ao carregar o PDF.
invalid_file_error=Ficheiro PDF inválido ou danificado.
missing_file_error=Ficheiro PDF inexistente.
unexpected_response_error=Resposta inesperada do servidor.
+rendering_error=Ocorreu um erro ao processar 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[Anotação {{type}}]
-password_label=Digite a palavra-passe para abrir este PDF.
+password_label=Introduza a palavra-passe para abrir este ficheiro PDF.
password_invalid=Palavra-passe inválida. Por favor, tente novamente.
password_ok=OK
password_cancel=Cancelar
printing_not_supported=Aviso: a impressão não é totalmente suportada por este navegador.
printing_not_ready=Aviso: o PDF ainda não está totalmente carregado.
-web_fonts_disabled=Os tipos de letra web estão desativados: não é possível utilizar os tipos de letra PDF incorporados.
-document_colors_not_allowed=Os documentos PDF não permitem a utilização das suas próprias cores: 'Autorizar as páginas a escolher as suas próprias cores' está desativada no navegador.
+web_fonts_disabled=Os tipos de letra web estão desativados: não é possível utilizar os tipos de letra PDF embutidos.
+
+# Editor
+editor_free_text2.title=Texto
+editor_free_text2_label=Texto
+editor_ink2.title=Desenhar
+editor_ink2_label=Desenhar
+
+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=Começar a digitar…
+
+# 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 utilizador
diff --git a/static/pdf.js/locale/rm/viewer.properties b/static/pdf.js/locale/rm/viewer.properties
index 419aea39f..ea0a1182d 100644
--- a/static/pdf.js/locale/rm/viewer.properties
+++ b/static/pdf.js/locale/rm/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Enavos
next.title=Proxima pagina
next_label=Enavant
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Pagina:
-page_of=da {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pagina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=da {{pagesCount}}
+# 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}} da {{pagesCount}})
zoom_out.title=Empitschnir
zoom_out_label=Empitschnir
@@ -36,31 +39,52 @@ open_file.title=Avrir datoteca
open_file_label=Avrir
print.title=Stampar
print_label=Stampar
-download.title=Telechargiar
-download_label=Telechargiar
-bookmark.title=Vista actuala (copiar u avrir en ina nova fanestra)
-bookmark_label=Vista actuala
+save.title=Memorisar
+save_label=Memorisar
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Telechargiar
+# 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=Telechargiar
+bookmark1.title=Pagina actuala (mussar l'URL da la pagina actuala)
+bookmark1_label=Pagina actuala
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Avrir en ina 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=Avrir en ina app
# Secondary toolbar and context menu
tools.title=Utensils
tools_label=Utensils
first_page.title=Siglir a l'emprima pagina
-first_page.label=Siglir a l'emprima pagina
first_page_label=Siglir a l'emprima pagina
last_page.title=Siglir a la davosa pagina
-last_page.label=Siglir a la davosa pagina
last_page_label=Siglir a la davosa pagina
page_rotate_cw.title=Rotar en direcziun da l'ura
-page_rotate_cw.label=Rotar en direcziun da l'ura
page_rotate_cw_label=Rotar en direcziun da l'ura
page_rotate_ccw.title=Rotar en direcziun cuntraria a l'ura
-page_rotate_ccw.label=Rotar en direcziun cuntraria a l'ura
page_rotate_ccw_label=Rotar en direcziun cuntraria a l'ura
-hand_tool_enable.title=Activar l'utensil da maun
-hand_tool_enable_label=Activar l'utensil da maun
-hand_tool_disable.title=Deactivar l'utensil da maun
-hand_tool_disable_label=Deactivar l'utensil da maun
+cursor_text_select_tool.title=Activar l'utensil per selecziunar text
+cursor_text_select_tool_label=Utensil per selecziunar text
+cursor_hand_tool.title=Activar l'utensil da maun
+cursor_hand_tool_label=Utensil da maun
+
+scroll_page.title=Utilisar la defilada per pagina
+scroll_page_label=Defilada per pagina
+scroll_vertical.title=Utilisar il defilar vertical
+scroll_vertical_label=Defilar vertical
+scroll_horizontal.title=Utilisar il defilar orizontal
+scroll_horizontal_label=Defilar orizontal
+scroll_wrapped.title=Utilisar il defilar en colonnas
+scroll_wrapped_label=Defilar en colonnas
+
+spread_none.title=Betg parallelisar las paginas
+spread_none_label=Betg parallel
+spread_odd.title=Parallelisar las paginas cun cumenzar cun paginas spèras
+spread_odd_label=Parallel spèr
+spread_even.title=Parallelisar las paginas cun cumenzar cun paginas pèras
+spread_even_label=Parallel pèr
# Document properties dialog box
document_properties.title=Caracteristicas dal document…
@@ -86,22 +110,58 @@ document_properties_creator=Creà da:
document_properties_producer=Creà il PDF cun:
document_properties_version=Versiun da PDF:
document_properties_page_count=Dumber da paginas:
+document_properties_page_size=Grondezza da la pagina:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=vertical
+document_properties_page_size_orientation_landscape=orizontal
+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=Gea
+document_properties_linearized_no=Na
document_properties_close=Serrar
+print_progress_message=Preparar il document per stampar…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Interrumper
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Activar/deactivar la trav laterala
+toggle_sidebar_notification2.title=Activar/deactivar la trav laterala (il document cuntegna structura dal document/agiuntas/nivels)
toggle_sidebar_label=Activar/deactivar la trav laterala
-outline.title=Mussar la structura da la pagina
-outline_label=Structura da la pagina
+document_outline.title=Mussar la structura dal document (cliccar duas giadas per extender/cumprimer tut ils elements)
+document_outline_label=Structura dal document
attachments.title=Mussar agiuntas
attachments_label=Agiuntas
+layers.title=Mussar ils nivels (cliccar dubel per restaurar il stadi da standard da tut ils nivels)
+layers_label=Nivels
thumbs.title=Mussar las miniaturas
thumbs_label=Miniaturas
+current_outline_item.title=Tschertgar l'element da structura actual
+current_outline_item_label=Element da structura actual
findbar.title=Tschertgar en il document
findbar_label=Tschertgar
+additional_layers=Nivels supplementars
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Pagina {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Pagina {{page}}
thumb_page_canvas=Miniatura da la pagina {{page}}
# Find panel button title and messages
-find_label=Tschertgar:
+find_input.title=Tschertgar
+find_input.placeholder=Tschertgar en il document…
find_previous.title=Tschertgar la posiziun precedenta da l'expressiun
find_previous_label=Enavos
find_next.title=Tschertgar la proxima posiziun da l'expressiun
find_next_label=Enavant
find_highlight=Relevar tuts
find_match_case_label=Resguardar maiusclas/minusclas
+find_match_diacritics_label=Resguardar ils segns diacritics
+find_entire_word_label=Pleds entirs
find_reached_top=Il cumenzament dal document è cuntanschì, la tschertga cuntinuescha a la fin dal document
find_reached_bottom=La fin dal document è cuntanschì, la tschertga cuntinuescha al cumenzament dal document
+# 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}} dad {{total}} correspundenza
+find_match_count[two]={{current}} da {{total}} correspundenzas
+find_match_count[few]={{current}} da {{total}} correspundenzas
+find_match_count[many]={{current}} da {{total}} correspundenzas
+find_match_count[other]={{current}} da {{total}} correspundenzas
+# 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]=Dapli che {{limit}} correspundenzas
+find_match_count_limit[one]=Dapli che {{limit}} correspundenza
+find_match_count_limit[two]=Dapli che {{limit}} correspundenzas
+find_match_count_limit[few]=Dapli che {{limit}} correspundenzas
+find_match_count_limit[many]=Dapli che {{limit}} correspundenzas
+find_match_count_limit[other]=Dapli che {{limit}} correspundenzas
find_not_found=Impussibel da chattar l'expressiun
-# Error panel labels
-error_more_info=Dapli infurmaziuns
-error_less_info=Damain infurmaziuns
-error_close=Serrar
-# 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=Messadi: {{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=Datoteca: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Lingia: {{line}}
-rendering_error=Ina errur è cumparida cun visualisar questa pagina.
-
# Predefined zoom values
page_scale_width=Ladezza da la pagina
page_scale_fit=Entira pagina
@@ -151,11 +216,15 @@ page_scale_actual=Grondezza actuala
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Errur
loading_error=Ina errur è cumparida cun chargiar il PDF.
invalid_file_error=Datoteca PDF nunvalida u donnegiada.
missing_file_error=Datoteca PDF manconta.
unexpected_response_error=Resposta nunspetgada dal server.
+rendering_error=Ina errur è cumparida cun visualisar questa pagina.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,32 @@ password_cancel=Interrumper
printing_not_supported=Attenziun: Il stampar na funcziunescha anc betg dal tut en quest navigatur.
printing_not_ready=Attenziun: Il PDF n'è betg chargià cumplettamain per stampar.
web_fonts_disabled=Scrittiras dal web èn deactivadas: impussibel dad utilisar las scrittiras integradas en il PDF.
-document_colors_not_allowed=Documents da PDF na dastgan betg duvrar las atgnas colurs: 'Permetter a paginas da tscherner lur atgna colur' è deactivà en il navigatur.
+
+# Editor
+editor_free_text2.title=Text
+editor_free_text2_label=Text
+editor_ink2.title=Dissegnar
+editor_ink2_label=Dissegnar
+
+editor_stamp.title=Agiuntar in maletg
+editor_stamp_label=Agiuntar in maletg
+
+editor_stamp1.title=Agiuntar u modifitgar maletgs
+editor_stamp1_label=Agiuntar u modifitgar maletgs
+
+free_text2_default_content=Cumenzar a tippar…
+
+# Editor Parameters
+editor_free_text_color=Colur
+editor_free_text_size=Grondezza
+editor_ink_color=Colur
+editor_ink_thickness=Grossezza
+editor_ink_opacity=Opacitad
+
+editor_stamp_add_image_label=Agiuntar in maletg
+editor_stamp_add_image.title=Agiuntar in maletg
+
+# Editor aria
+editor_free_text2_aria_label=Editur da text
+editor_ink2_aria_label=Editur dissegn
+editor_ink_canvas_aria_label=Maletg creà da l'utilisader
diff --git a/static/pdf.js/locale/ro/viewer.properties b/static/pdf.js/locale/ro/viewer.properties
index f4170ed87..487b483f5 100644
--- a/static/pdf.js/locale/ro/viewer.properties
+++ b/static/pdf.js/locale/ro/viewer.properties
@@ -18,55 +18,64 @@ previous_label=Înapoi
next.title=Pagina următoare
next_label=Înainte
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Pagină:
-page_of=din {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pagina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=din {{pagesCount}}
+# 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}} din {{pagesCount}})
zoom_out.title=Micșorează
zoom_out_label=Micșorează
zoom_in.title=Mărește
zoom_in_label=Mărește
-zoom.title=Scalare
-presentation_mode.title=Schimbă la modul de prezentare
+zoom.title=Zoom
+presentation_mode.title=Comută la modul de prezentare
presentation_mode_label=Mod de prezentare
open_file.title=Deschide un fișier
open_file_label=Deschide
print.title=Tipărește
print_label=Tipărește
-download.title=Descarcă
-download_label=Descarcă
-bookmark.title=Vizualizare actuală (copiați sau deschideți într-o fereastră nouă)
-bookmark_label=Vizualizare actuală
# Secondary toolbar and context menu
-tools.title=Unelte
-tools_label=Unelte
+tools.title=Instrumente
+tools_label=Instrumente
first_page.title=Mergi la prima pagină
-first_page.label=Mergeți la prima pagină
first_page_label=Mergi la prima pagină
last_page.title=Mergi la ultima pagină
-last_page.label=Mergi la ultima pagină
last_page_label=Mergi la ultima pagină
-page_rotate_cw.title=Rotește în sensul acelor de ceasornic
-page_rotate_cw.label=Rotește în sensul acelor de ceasornic
-page_rotate_cw_label=Rotește în sensul acelor de ceasornic
-page_rotate_ccw.title=Rotește în sens invers al acelor de ceasornic
-page_rotate_ccw.label=Rotate Counter-Clockwise
-page_rotate_ccw_label=Rotește în sens invers acelor de ceasornic
+page_rotate_cw.title=Rotește în sensul acelor de ceas
+page_rotate_cw_label=Rotește în sensul acelor de ceas
+page_rotate_ccw.title=Rotește în sens invers al acelor de ceas
+page_rotate_ccw_label=Rotește în sens invers al acelor de ceas
-hand_tool_enable.title=Activează instrumentul mână
-hand_tool_enable_label=Activează instrumentul mână
-hand_tool_disable.title=Dezactivează instrumentul mână
-hand_tool_disable_label=Dezactivează instrumentul mână
+cursor_text_select_tool.title=Activează instrumentul de selecție a textului
+cursor_text_select_tool_label=Instrumentul de selecție a textului
+cursor_hand_tool.title=Activează instrumentul mână
+cursor_hand_tool_label=Unealta mână
+
+scroll_vertical.title=Folosește derularea verticală
+scroll_vertical_label=Derulare verticală
+scroll_horizontal.title=Folosește derularea orizontală
+scroll_horizontal_label=Derulare orizontală
+scroll_wrapped.title=Folosește derularea încadrată
+scroll_wrapped_label=Derulare încadrată
+
+spread_none.title=Nu uni paginile broșate
+spread_none_label=Fără pagini broșate
+spread_odd.title=Unește paginile broșate începând cu cele impare
+spread_odd_label=Broșare pagini impare
+spread_even.title=Unește paginile broșate începând cu cele pare
+spread_even_label=Broșare pagini pare
# Document properties dialog box
document_properties.title=Proprietățile documentului…
document_properties_label=Proprietățile documentului…
-document_properties_file_name=Nume fișier:
-document_properties_file_size=Dimensiune fișier:
+document_properties_file_name=Numele fișierului:
+document_properties_file_size=Mărimea fișierului:
# 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}} byți)
@@ -86,22 +95,51 @@ document_properties_creator=Autor:
document_properties_producer=Producător PDF:
document_properties_version=Versiune PDF:
document_properties_page_count=Număr de pagini:
+document_properties_page_size=Mărimea paginii:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=verticală
+document_properties_page_size_orientation_landscape=orizontală
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Literă
+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=Vizualizare web rapidă:
+document_properties_linearized_yes=Da
+document_properties_linearized_no=Nu
document_properties_close=Închide
+print_progress_message=Se pregătește documentul pentru tipărire…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Renunță
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Comută bara laterală
toggle_sidebar_label=Comută bara laterală
-outline.title=Arată schița documentului
-outline_label=Schiță document
+document_outline.title=Afișează schița documentului (dublu-clic pentru a extinde/restrânge toate elementele)
+document_outline_label=Schița documentului
attachments.title=Afișează atașamentele
attachments_label=Atașamente
-thumbs.title=Arată miniaturi
+thumbs.title=Afișează miniaturi
thumbs_label=Miniaturi
findbar.title=Caută în document
-findbar_label=Căutați
+findbar_label=Caută
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,63 +149,72 @@ thumb_page_title=Pagina {{page}}
thumb_page_canvas=Miniatura paginii {{page}}
# Find panel button title and messages
-find_label=Caută:
-find_previous.title=Găsește instanța anterioară în frază
-find_previous_label=Anterior
-find_next.title=Găstește următoarea instanță în frază
-find_next_label=Următor
-find_highlight=Evidențiază aparițiile
-find_match_case_label=Potrivește literele mari și mici
+find_input.title=Caută
+find_input.placeholder=Caută în document…
+find_previous.title=Mergi la apariția anterioară a textului
+find_previous_label=Înapoi
+find_next.title=Mergi la apariția următoare a textului
+find_next_label=Înainte
+find_highlight=Evidențiază toate aparițiile
+find_match_case_label=Ține cont de majuscule și minuscule
+find_entire_word_label=Cuvinte întregi
find_reached_top=Am ajuns la începutul documentului, continuă de la sfârșit
find_reached_bottom=Am ajuns la sfârșitul documentului, continuă de la început
+# 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}} din {{total}} rezultat
+find_match_count[two]={{current}} din {{total}} rezultate
+find_match_count[few]={{current}} din {{total}} rezultate
+find_match_count[many]={{current}} din {{total}} de rezultate
+find_match_count[other]={{current}} din {{total}} de rezultate
+# 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]=Peste {{limit}} rezultate
+find_match_count_limit[one]=Peste {{limit}} rezultat
+find_match_count_limit[two]=Peste {{limit}} rezultate
+find_match_count_limit[few]=Peste {{limit}} rezultate
+find_match_count_limit[many]=Peste {{limit}} de rezultate
+find_match_count_limit[other]=Peste {{limit}} de rezultate
find_not_found=Nu s-a găsit textul
-# Error panel labels
-error_more_info=Mai multe informații
-error_less_info=Mai puține informații
-error_close=Închide
-# 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}} (varianta: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Mesaj: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Stivă: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fișier: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linie: {{line}}
-rendering_error=A intervenit o eroare la afișarea paginii.
-
# Predefined zoom values
page_scale_width=Lățime pagină
page_scale_fit=Potrivire la pagină
-page_scale_auto=Dimensiune automată
-page_scale_actual=Dimensiune reală
+page_scale_auto=Zoom automat
+page_scale_actual=Mărime reală
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Eroare
-loading_error=A intervenit o eroare la încărcarea fișierului PDF.
-invalid_file_error=Fișier PDF invalid sau deteriorat.
+loading_error=A intervenit o eroare la încărcarea PDF-ului.
+invalid_file_error=Fișier PDF nevalid sau corupt.
missing_file_error=Fișier PDF lipsă.
unexpected_response_error=Răspuns neașteptat de la server.
+rendering_error=A intervenit o eroare la randarea paginii.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Adnotare]
-password_label=Introduceți parola pentru a deschide acest fișier PDF.
-password_invalid=Parolă greșită. Vă rugăm să încercați din nou.
-password_ok=Ok
+text_annotation_type.alt=[Adnotare {{type}}]
+password_label=Introdu parola pentru a deschide acest fișier PDF.
+password_invalid=Parolă nevalidă. Te rugăm să încerci din nou.
+password_ok=OK
password_cancel=Renunță
-printing_not_supported=Atenție: Tipărirea nu este suportată în totalitate de acest browser.
-printing_not_ready=Atenție: Fișierul PDF nu este încărcat complet pentru tipărire.
-web_fonts_disabled=Fonturile web sunt dezactivate: nu pot utiliza fonturile PDF încorporate.
-document_colors_not_allowed=Documentele PDF nu sunt autorizate să folosească propriile culori: 'Permite paginilor să aleagă propriile culori' este dezactivată în browser.
+printing_not_supported=Avertisment: Tipărirea nu este suportată în totalitate de acest browser.
+printing_not_ready=Avertisment: PDF-ul nu este încărcat complet pentru tipărire.
+web_fonts_disabled=Fonturile web sunt dezactivate: nu se pot folosi fonturile PDF încorporate.
+
diff --git a/static/pdf.js/locale/ru/viewer.properties b/static/pdf.js/locale/ru/viewer.properties
index c1af97694..22bcda44b 100644
--- a/static/pdf.js/locale/ru/viewer.properties
+++ b/static/pdf.js/locale/ru/viewer.properties
@@ -1,111 +1,270 @@
-# 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/.
+# 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.
-previous.title = Предыдущая страница
-previous_label = Предыдущая
-next.title = Следующая страница
-next_label = Следующая
-page_label = Страница:
-page_of = из {{pageCount}}
-zoom_out.title = Уменьшить
-zoom_out_label = Уменьшить
-zoom_in.title = Увеличить
-zoom_in_label = Увеличить
-zoom.title = Масштаб
-presentation_mode.title = Перейти в режим презентации
-presentation_mode_label = Режим презентации
-open_file.title = Открыть файл
-open_file_label = Открыть
-print.title = Печать
-print_label = Печать
-download.title = Загрузить
-download_label = Загрузить
-bookmark.title = Ссылка на текущий вид (скопировать или открыть в новом окне)
-bookmark_label = Текущий вид
-tools.title = Инструменты
-tools_label = Инструменты
-first_page.title = Перейти на первую страницу
-first_page.label = Перейти на первую страницу
-first_page_label = Перейти на первую страницу
-last_page.title = Перейти на последнюю страницу
-last_page.label = Перейти на последнюю страницу
-last_page_label = Перейти на последнюю страницу
-page_rotate_cw.title = Повернуть по часовой стрелке
-page_rotate_cw.label = Повернуть по часовой стрелке
-page_rotate_cw_label = Повернуть по часовой стрелке
-page_rotate_ccw.title = Повернуть против часовой стрелки
-page_rotate_ccw.label = Повернуть против часовой стрелки
-page_rotate_ccw_label = Повернуть против часовой стрелки
-hand_tool_enable.title = Включить Инструмент «Рука»
-hand_tool_enable_label = Включить Инструмент «Рука»
-hand_tool_disable.title = Отключить Инструмент «Рука»
-hand_tool_disable_label = Отключить Инструмент «Рука»
-document_properties.title = Свойства документа…
-document_properties_label = Свойства документа…
-document_properties_file_name = Имя файла:
-document_properties_file_size = Размер файла:
-document_properties_kb = {{size_kb}} КБ ({{size_b}} байт)
-document_properties_mb = {{size_mb}} МБ ({{size_b}} байт)
-document_properties_title = Заголовок:
-document_properties_author = Автор:
-document_properties_subject = Тема:
-document_properties_keywords = Ключевые слова:
-document_properties_creation_date = Дата создания:
-document_properties_modification_date = Дата изменения:
-document_properties_date_string = {{date}}, {{time}}
-document_properties_creator = Приложение:
-document_properties_producer = Производитель PDF:
-document_properties_version = Версия PDF:
-document_properties_page_count = Число страниц:
-document_properties_close = Закрыть
-toggle_sidebar.title = Открыть/закрыть боковую панель
-toggle_sidebar_label = Открыть/закрыть боковую панель
-outline.title = Показать содержание документа
-outline_label = Содержание документа
-attachments.title = Показать вложения
-attachments_label = Вложения
-thumbs.title = Показать миниатюры
-thumbs_label = Миниатюры
-findbar.title = Найти в документе
-findbar_label = Найти
-thumb_page_title = Страница {{page}}
-thumb_page_canvas = Миниатюра страницы {{page}}
-find_label = Найти:
-find_previous.title = Найти предыдущее вхождение фразы в текст
-find_previous_label = Назад
-find_next.title = Найти следующее вхождение фразы в текст
-find_next_label = Далее
-find_highlight = Подсветить все
-find_match_case_label = С учётом регистра
-find_reached_top = Достигнут верх документа, продолжено снизу
-find_reached_bottom = Достигнут конец документа, продолжено сверху
-find_not_found = Фраза не найдена
-error_more_info = Детали
-error_less_info = Скрыть детали
-error_close = Закрыть
-error_version_info = PDF.js v{{version}} (сборка: {{build}})
-error_message = Сообщение: {{message}}
-error_stack = Стeк: {{stack}}
-error_file = Файл: {{file}}
-error_line = Строка: {{line}}
-rendering_error = При создании страницы произошла ошибка.
-page_scale_width = По ширине страницы
-page_scale_fit = По размеру страницы
-page_scale_auto = Автоматически
-page_scale_actual = Реальный размер
-page_scale_percent = {{scale}}%
-loading_error_indicator = Ошибка
-loading_error = При загрузке PDF произошла ошибка.
-invalid_file_error = Некорректный или повреждённый PDF-файл.
-missing_file_error = PDF-файл отсутствует.
-unexpected_response_error = Неожиданный ответ сервера.
-text_annotation_type.alt = [Аннотация {{type}}]
-password_label = Введите пароль, чтобы открыть этот PDF-файл.
-password_invalid = Неверный пароль. Пожалуйста, попробуйте снова.
-password_ok = OK
-password_cancel = Отмена
-printing_not_supported = Предупреждение: В этом браузере не полностью поддерживается печать.
-printing_not_ready = Предупреждение: PDF не полностью загружен для печати.
-web_fonts_disabled = Веб-шрифты отключены: невозможно использовать встроенные PDF-шрифты.
-document_colors_not_allowed = PDF-документам не разрешено использовать свои цвета: в браузере отключён параметр «Разрешить веб-сайтам использовать свои цвета».
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Предыдущая страница
+previous_label=Предыдущая
+next.title=Следующая страница
+next_label=Следующая
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Страница
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=из {{pagesCount}}
+# 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_label=Уменьшить
+zoom_in.title=Увеличить
+zoom_in_label=Увеличить
+zoom.title=Масштаб
+presentation_mode.title=Перейти в режим презентации
+presentation_mode_label=Режим презентации
+open_file.title=Открыть файл
+open_file_label=Открыть
+print.title=Печать
+print_label=Печать
+save.title=Сохранить
+save_label=Сохранить
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
+tools.title=Инструменты
+tools_label=Инструменты
+first_page.title=Перейти на первую страницу
+first_page_label=Перейти на первую страницу
+last_page.title=Перейти на последнюю страницу
+last_page_label=Перейти на последнюю страницу
+page_rotate_cw.title=Повернуть по часовой стрелке
+page_rotate_cw_label=Повернуть по часовой стрелке
+page_rotate_ccw.title=Повернуть против часовой стрелки
+page_rotate_ccw_label=Повернуть против часовой стрелки
+
+cursor_text_select_tool.title=Включить Инструмент «Выделение текста»
+cursor_text_select_tool_label=Инструмент «Выделение текста»
+cursor_hand_tool.title=Включить Инструмент «Рука»
+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.title=Свойства документа…
+document_properties_label=Свойства документа…
+document_properties_file_name=Имя файла:
+document_properties_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}} КБ ({{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}} МБ ({{size_b}} байт)
+document_properties_title=Заголовок:
+document_properties_author=Автор:
+document_properties_subject=Тема:
+document_properties_keywords=Ключевые слова:
+document_properties_creation_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_creator=Приложение:
+document_properties_producer=Производитель PDF:
+document_properties_version=Версия PDF:
+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=Быстрый просмотр в Web:
+document_properties_linearized_yes=Да
+document_properties_linearized_no=Нет
+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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Показать/скрыть боковую панель
+toggle_sidebar_notification2.title=Показать/скрыть боковую панель (документ имеет содержание/вложения/слои)
+toggle_sidebar_label=Показать/скрыть боковую панель
+document_outline.title=Показать содержание документа (двойной щелчок, чтобы развернуть/свернуть все элементы)
+document_outline_label=Содержание документа
+attachments.title=Показать вложения
+attachments_label=Вложения
+layers.title=Показать слои (дважды щёлкните, чтобы сбросить все слои к состоянию по умолчанию)
+layers_label=Слои
+thumbs.title=Показать миниатюры
+thumbs_label=Миниатюры
+current_outline_item.title=Найти текущий элемент структуры
+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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Страница {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Миниатюра страницы {{page}}
+
+# Find panel button title and messages
+find_input.title=Найти
+find_input.placeholder=Найти в документе…
+find_previous.title=Найти предыдущее вхождение фразы в текст
+find_previous_label=Назад
+find_next.title=Найти следующее вхождение фразы в текст
+find_next_label=Далее
+find_highlight=Подсветить все
+find_match_case_label=С учётом регистра
+find_match_diacritics_label=С учётом диакритических знаков
+find_entire_word_label=Слова целиком
+find_reached_top=Достигнут верх документа, продолжено снизу
+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=Фраза не найдена
+
+# Predefined zoom values
+page_scale_width=По ширине страницы
+page_scale_fit=По размеру страницы
+page_scale_auto=Автоматически
+page_scale_actual=Реальный размер
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=При загрузке PDF произошла ошибка.
+invalid_file_error=Некорректный или повреждённый PDF-файл.
+missing_file_error=PDF-файл отсутствует.
+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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Аннотация {{type}}]
+password_label=Введите пароль, чтобы открыть этот PDF-файл.
+password_invalid=Неверный пароль. Пожалуйста, попробуйте снова.
+password_ok=OK
+password_cancel=Отмена
+
+printing_not_supported=Предупреждение: В этом браузере не полностью поддерживается печать.
+printing_not_ready=Предупреждение: PDF не полностью загружен для печати.
+web_fonts_disabled=Веб-шрифты отключены: не удалось задействовать встроенные PDF-шрифты.
+
+# 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=Созданное пользователем изображение
diff --git a/static/pdf.js/locale/rw/viewer.properties b/static/pdf.js/locale/rw/viewer.properties
deleted file mode 100644
index 7858fe644..000000000
--- a/static/pdf.js/locale/rw/viewer.properties
+++ /dev/null
@@ -1,79 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-
-zoom.title=Ihindurangano
-open_file.title=Gufungura Dosiye
-open_file_label=Gufungura
-
-# Secondary toolbar and context menu
-
-
-# Document properties dialog box
-# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
-# will be replaced by the PDF file size in kilobytes, respectively in 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_title=Umutwe:
-# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
-# will be replaced by the creation/modification date, and time, of the PDF file.
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-findbar_label=Gushakisha
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-
-# Find panel button title and messages
-find_label="Gushaka:"
-find_previous.title=Gushaka aho uyu murongo ugaruka mbere y'aha
-find_next.title=Gushaka aho uyu murongo wongera kugaruka
-find_not_found=Umurongo ntubonetse
-
-# Error panel labels
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-
-# Predefined zoom values
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-loading_error_indicator=Ikosa
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-password_invalid=Ijambo ry'ibanga ridahari. Wakongera ukagerageza
-password_ok=YEGO
-password_cancel=Kureka
-
diff --git a/static/pdf.js/locale/sah/viewer.properties b/static/pdf.js/locale/sah/viewer.properties
deleted file mode 100644
index d0e086144..000000000
--- a/static/pdf.js/locale/sah/viewer.properties
+++ /dev/null
@@ -1,171 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Инники сирэй
-previous_label=Иннинээҕи
-next.title=Аныгыскы сирэй
-next_label=Аныгыскы
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Сирэй:
-page_of=мантан {{pageCount}}
-
-zoom_out.title=Куччат
-zoom_out_label=Куччат
-zoom_in.title=Улаатыннар
-zoom_in_label=Улаатыннар
-zoom.title=Улаатыннар
-presentation_mode.title=Көрдөрөр эрэсиимҥэ
-presentation_mode_label=Көрдөрөр эрэсиим
-open_file.title=Билэни арый
-open_file_label=Ас
-print.title=Бэчээт
-print_label=Бэчээт
-download.title=Хачайдааһын
-download_label=Хачайдааһын
-bookmark.title=Билиҥҥи көстүүтэ (хатылаа эбэтэр саҥа түннүккэ арый)
-bookmark_label=Билиҥҥи көстүүтэ
-
-# Secondary toolbar and context menu
-tools.title=Тэриллэр
-tools_label=Тэриллэр
-first_page.title=Бастакы сирэйгэ көс
-first_page.label=Бастакы сирэйгэ көс
-first_page_label=Бастакы сирэйгэ көс
-last_page.title=Тиһэх сирэйгэ көс
-last_page.label=Тиһэх сирэйгэ көс
-last_page_label=Тиһэх сирэйгэ көс
-page_rotate_cw.title=Чаһы хоту эргит
-page_rotate_cw.label=Чаһы хоту эргит
-page_rotate_cw_label=Чаһы хоту эргит
-page_rotate_ccw.title=Чаһы утары эргит
-page_rotate_ccw.label=Чаһы утары эргит
-page_rotate_ccw_label=Чаһы утары эргит
-
-hand_tool_enable.title=«Илии» диэн тэрили холбоо
-hand_tool_enable_label=«Илии» диэн тэрили холбоо
-hand_tool_disable.title=«Илии» диэн тэрили араар
-hand_tool_disable_label=«Илии» диэн тэрили араар
-
-# Document properties dialog box
-document_properties.title=Докумуон туруоруулара...
-document_properties_label=Докумуон туруоруулара...\u0020
-document_properties_file_name=Билэ аата:
-document_properties_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}} КБ ({{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}} МБ ({{size_b}} баайт)
-document_properties_title=Баһа:
-document_properties_author=Ааптар:
-document_properties_subject=Тиэмэ:
-document_properties_keywords=Күлүүс тыл:
-document_properties_creation_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_producer=PDF оҥорооччу:
-document_properties_version=PDF барыла:
-document_properties_page_count=Сирэй ахсаана:
-document_properties_close=Сап
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=Ойоҕос хапталы арый/сап
-toggle_sidebar_label=Ойоҕос хапталы арый/сап
-outline.title=Дөкүмүөн иһинээҕитин көрдөр
-outline_label=Дөкүмүөн иһинээҕитэ
-attachments.title=Кыбытыктары көрдөр
-attachments_label=Кыбытык
-thumbs.title=Ойуучааннары көрдөр
-thumbs_label=Ойуучааннар
-findbar.title=Дөкүмүөнтэн бул
-findbar_label=Бул
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=Сирэй {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=Сирэй ойуучаана {{page}}
-
-# Find panel button title and messages
-find_label=Бул:
-find_previous.title=Этии тиэкискэ бу иннинээҕи киириитин бул
-find_previous_label=Иннинээҕи
-find_next.title=Этии тиэкискэ бу кэннинээҕи киириитин бул
-find_next_label=Аныгыскы
-find_highlight=Барытын сырдатан көрдөр
-find_match_case_label=Буукуба улаханын-кыратын араар
-find_reached_top=Сирэй үрдүгэр тиийдиҥ, салгыыта аллара
-find_reached_bottom=Сирэй бүттэ, үөһэ салҕанна
-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}})
-# 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=Стeк: {{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
-page_scale_width=Сирэй кэтитинэн
-page_scale_fit=Сирэй кээмэйинэн
-page_scale_auto=Аптамаатынан
-page_scale_actual=Дьиҥнээх кээмэйэ
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-loading_error_indicator=Алҕас
-loading_error=PDF-билэни хачайдыырга алҕас таҕыста.
-invalid_file_error=Туох эрэ алҕастаах эбэтэр алдьаммыт PDF-билэ.
-missing_file_error=PDF-билэ суох.
-unexpected_response_error=Сиэрбэр хоруйдаабат.
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} туһунан]
-password_label=Бу PDF-билэни арыйарга көмүскэл тылы киллэриэхтээхин.
-password_invalid=Киирии тыл алҕастаах. Бука диэн, хатылаан көр.
-password_ok=СӨП
-password_cancel=Салҕаама
-
-printing_not_supported=Сэрэтии: Бу браузер бэчээттиири толору өйөөбөт.
-printing_not_ready=Сэрэтии: PDF бэчээттииргэ толору хачайдана илик.
-web_fonts_disabled=Ситим-бичиктэр араарыллыахтара: PDF бичиктэрэ кыайан көстүбэттэр.
-document_colors_not_allowed=PDF-дөкүмүөүннэргэ бэйэлэрин өҥнөрүн туттар көҥүллэммэтэ: "Ситим-сирдэр бэйэлэрин өҥнөрүн тутталларын көҥүллүүргэ" диэн браузерга арахса сылдьар эбит.
diff --git a/static/pdf.js/locale/sat/viewer.properties b/static/pdf.js/locale/sat/viewer.properties
new file mode 100644
index 000000000..b8c539984
--- /dev/null
+++ b/static/pdf.js/locale/sat/viewer.properties
@@ -0,0 +1,270 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=ᱢᱟᱲᱟᱝ ᱥᱟᱦᱴᱟ
+previous_label=ᱢᱟᱲᱟᱝᱟᱜ
+next.title=ᱤᱱᱟᱹ ᱛᱟᱭᱚᱢ ᱥᱟᱦᱴᱟ
+next_label=ᱤᱱᱟᱹ ᱛᱟᱭᱚᱢ
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=ᱥᱟᱦᱴᱟ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=ᱨᱮᱭᱟᱜ {{pagesCount}}
+# 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_label=ᱦᱤᱲᱤᱧ ᱛᱮᱭᱟᱨ
+zoom_in.title=ᱢᱟᱨᱟᱝ ᱛᱮᱭᱟᱨ
+zoom_in_label=ᱢᱟᱨᱟᱝ ᱛᱮᱭᱟᱨ
+zoom.title=ᱡᱩᱢ
+presentation_mode.title=ᱩᱫᱩᱜ ᱥᱚᱫᱚᱨ ᱚᱵᱚᱥᱛᱟ ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ
+presentation_mode_label=ᱩᱫᱩᱜ ᱥᱚᱫᱚᱨ ᱚᱵᱚᱥᱛᱟ ᱨᱮ
+open_file.title=ᱨᱮᱫ ᱡᱷᱤᱡᱽ ᱢᱮ
+open_file_label=ᱡᱷᱤᱡᱽ ᱢᱮ
+print.title=ᱪᱷᱟᱯᱟ
+print_label=ᱪᱷᱟᱯᱟ
+save.title=ᱥᱟᱺᱪᱟᱣ ᱢᱮ
+save_label=ᱥᱟᱺᱪᱟᱣ ᱢᱮ
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
+tools.title=ᱦᱟᱹᱛᱤᱭᱟᱹᱨ ᱠᱚ
+tools_label=ᱦᱟᱹᱛᱤᱭᱟᱹᱨ ᱠᱚ
+first_page.title=ᱯᱩᱭᱞᱩ ᱥᱟᱦᱴᱟ ᱥᱮᱫ ᱪᱟᱞᱟᱜ ᱢᱮ
+first_page_label=ᱯᱩᱭᱞᱩ ᱥᱟᱦᱴᱟ ᱥᱮᱫ ᱪᱟᱞᱟᱜ ᱢᱮ
+last_page.title=ᱢᱩᱪᱟᱹᱫ ᱥᱟᱦᱴᱟ ᱥᱮᱫ ᱪᱟᱞᱟᱜ ᱢᱮ
+last_page_label=ᱢᱩᱪᱟᱹᱫ ᱥᱟᱦᱴᱟ ᱥᱮᱫ ᱪᱟᱞᱟᱜ ᱢᱮ
+page_rotate_cw.title=ᱜᱷᱚᱰᱤ ᱦᱤᱥᱟᱹᱵ ᱛᱮ ᱟᱹᱪᱩᱨ
+page_rotate_cw_label=ᱜᱷᱚᱰᱤ ᱦᱤᱥᱟᱹᱵ ᱛᱮ ᱟᱹᱪᱩᱨ
+page_rotate_ccw.title=ᱜᱷᱚᱰᱤ ᱦᱤᱥᱟᱹᱵ ᱛᱮ ᱩᱞᱴᱟᱹ ᱟᱹᱪᱩᱨ
+page_rotate_ccw_label=ᱜᱷᱚᱰᱤ ᱦᱤᱥᱟᱹᱵ ᱛᱮ ᱩᱞᱴᱟᱹ ᱟᱹᱪᱩᱨ
+
+cursor_text_select_tool.title=ᱚᱞ ᱵᱟᱪᱷᱟᱣ ᱦᱟᱹᱛᱤᱭᱟᱨ ᱮᱢ ᱪᱷᱚᱭ ᱢᱮ
+cursor_text_select_tool_label=ᱚᱞ ᱵᱟᱪᱷᱟᱣ ᱦᱟᱹᱛᱤᱭᱟᱨ
+cursor_hand_tool.title=ᱛᱤ ᱦᱟᱹᱛᱤᱭᱟᱨ ᱮᱢ ᱪᱷᱚᱭ ᱢᱮ
+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.title=ᱫᱚᱞᱤᱞ ᱜᱩᱱᱠᱚ …
+document_properties_label=ᱫᱚᱞᱤᱞ ᱜᱩᱱᱠᱚ …
+document_properties_file_name=ᱨᱮᱫᱽ ᱧᱩᱛᱩᱢ :
+document_properties_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}} ᱵᱟᱭᱤᱴ ᱠᱚ)
+# 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_author=ᱚᱱᱚᱞᱤᱭᱟᱹ :
+document_properties_subject=ᱵᱤᱥᱚᱭ :
+document_properties_keywords=ᱠᱟᱹᱴᱷᱤ ᱥᱟᱵᱟᱫᱽ :
+document_properties_creation_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_creator=ᱵᱮᱱᱟᱣᱤᱡ :
+document_properties_producer=PDF ᱛᱮᱭᱟᱨ ᱚᱰᱚᱠᱤᱡ :
+document_properties_version=PDF ᱵᱷᱟᱹᱨᱥᱚᱱ :
+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=ᱞᱚᱜᱚᱱ ᱣᱮᱵᱽ ᱧᱮᱞ :
+document_properties_linearized_yes=ᱦᱚᱭ
+document_properties_linearized_no=ᱵᱟᱝ
+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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=ᱫᱷᱟᱨᱮᱵᱟᱨ ᱥᱮᱫ ᱩᱪᱟᱹᱲᱚᱜ ᱢᱮ
+toggle_sidebar_notification2.title=ᱫᱷᱟᱨᱮᱵᱟᱨ ᱥᱮᱫ ᱩᱪᱟᱹᱲᱚᱜ ᱢᱮ (ᱫᱚᱞᱤᱞ ᱨᱮ ᱟᱣᱴᱞᱟᱭᱤᱢ ᱢᱮᱱᱟᱜᱼᱟ/ᱞᱟᱪᱷᱟᱠᱚ/ᱯᱚᱨᱚᱛᱠᱚ)
+toggle_sidebar_label=ᱫᱷᱟᱨᱮᱵᱟᱨ ᱥᱮᱫ ᱩᱪᱟᱹᱲᱚᱜ ᱢᱮ
+document_outline.title=ᱫᱚᱞᱚᱞ ᱟᱣᱴᱞᱟᱭᱤᱱ ᱫᱮᱠᱷᱟᱣ ᱢᱮ (ᱡᱷᱚᱛᱚ ᱡᱤᱱᱤᱥᱠᱚ ᱵᱟᱨ ᱡᱮᱠᱷᱟ ᱚᱛᱟ ᱠᱮᱛᱮ ᱡᱷᱟᱹᱞ/ᱦᱩᱰᱤᱧ ᱪᱷᱚᱭ ᱢᱮ)
+document_outline_label=ᱫᱚᱞᱤᱞ ᱛᱮᱭᱟᱨ ᱛᱮᱫ
+attachments.title=ᱞᱟᱴᱷᱟ ᱥᱮᱞᱮᱫ ᱠᱚ ᱩᱫᱩᱜᱽ ᱢᱮ
+attachments_label=ᱞᱟᱴᱷᱟ ᱥᱮᱞᱮᱫ ᱠᱚ
+layers.title=ᱯᱚᱨᱚᱛ ᱫᱮᱠᱷᱟᱣ ᱢᱮ (ᱢᱩᱞ ᱡᱟᱭᱜᱟ ᱛᱮ ᱡᱷᱚᱛᱚ ᱯᱚᱨᱚᱛᱠᱚ ᱨᱤᱥᱮᱴ ᱞᱟᱹᱜᱤᱫ ᱵᱟᱨ ᱡᱮᱠᱷᱟ ᱚᱛᱚᱭ ᱢᱮ)
+layers_label=ᱯᱚᱨᱚᱛᱠᱚ
+thumbs.title=ᱪᱤᱛᱟᱹᱨ ᱟᱦᱞᱟ ᱠᱚ ᱩᱫᱩᱜᱽ ᱢᱮ
+thumbs_label=ᱪᱤᱛᱟᱹᱨ ᱟᱦᱞᱟ ᱠᱚ
+current_outline_item.title=ᱱᱤᱛᱚᱜᱟᱜ ᱟᱣᱴᱞᱟᱭᱤᱱ ᱡᱟᱱᱤᱥ ᱯᱟᱱᱛᱮ ᱢᱮ
+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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title={{page}} ᱥᱟᱦᱴᱟ
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas={{page}} ᱥᱟᱦᱴᱟ ᱨᱮᱭᱟᱜ ᱪᱤᱛᱟᱹᱨ ᱟᱦᱞᱟ
+
+# Find panel button title and messages
+find_input.title=ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ
+find_input.placeholder=ᱫᱚᱞᱤᱞ ᱨᱮ ᱯᱟᱱᱛᱮ ᱢᱮ …
+find_previous.title=ᱟᱭᱟᱛ ᱦᱤᱸᱥ ᱨᱮᱭᱟᱜ ᱯᱟᱹᱦᱤᱞ ᱥᱮᱫᱟᱜ ᱚᱰᱚᱠ ᱧᱟᱢ ᱢᱮ
+find_previous_label=ᱢᱟᱲᱟᱝᱟᱜ
+find_next.title=ᱟᱭᱟᱛ ᱦᱤᱸᱥ ᱨᱮᱭᱟᱜ ᱤᱱᱟᱹ ᱛᱟᱭᱚᱢ ᱚᱰᱚᱠ ᱧᱟᱢ ᱢᱮ
+find_next_label=ᱤᱱᱟᱹ ᱛᱟᱭᱚᱢ
+find_highlight=ᱡᱷᱚᱛᱚ ᱩᱫᱩᱜ ᱨᱟᱠᱟᱵ
+find_match_case_label=ᱡᱚᱲ ᱠᱟᱛᱷᱟ
+find_match_diacritics_label=ᱵᱤᱥᱮᱥᱚᱠ ᱠᱚ ᱢᱮᱲᱟᱣ ᱢᱮ
+find_entire_word_label=ᱡᱷᱚᱛᱚ ᱟᱹᱲᱟᱹᱠᱚ
+find_reached_top=ᱫᱚᱞᱤᱞ ᱨᱮᱭᱟᱜ ᱪᱤᱴ ᱨᱮ ᱥᱮᱴᱮᱨ, ᱞᱟᱛᱟᱨ ᱠᱷᱚᱱ ᱞᱮᱛᱟᱲ
+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=ᱛᱚᱯᱚᱞ ᱫᱚᱱᱚᱲ ᱵᱟᱝ ᱧᱟᱢ ᱞᱮᱱᱟ
+
+# Predefined zoom values
+page_scale_width=ᱥᱟᱦᱴᱟ ᱚᱥᱟᱨ
+page_scale_fit=ᱥᱟᱦᱴᱟ ᱠᱷᱟᱯ
+page_scale_auto=ᱟᱡᱼᱟᱡ ᱛᱮ ᱦᱩᱰᱤᱧ ᱞᱟᱹᱴᱩ ᱛᱮᱭᱟᱨ
+page_scale_actual=ᱴᱷᱤᱠ ᱢᱟᱨᱟᱝ ᱛᱮᱫ
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=PDF ᱞᱟᱫᱮ ᱡᱚᱦᱚᱜ ᱢᱤᱫ ᱵᱷᱩᱞ ᱦᱩᱭ ᱮᱱᱟ ᱾
+invalid_file_error=ᱵᱟᱝ ᱵᱟᱛᱟᱣ ᱟᱨᱵᱟᱝᱠᱷᱟᱱ ᱰᱤᱜᱟᱹᱣ PDF ᱨᱮᱫᱽ ᱾
+missing_file_error=ᱟᱫᱟᱜ PDF ᱨᱮᱫᱽ ᱾
+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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} ᱢᱚᱱᱛᱚ ᱮᱢ]
+password_label=ᱱᱚᱶᱟ PDF ᱨᱮᱫᱽ ᱡᱷᱤᱡᱽ ᱞᱟᱹᱜᱤᱫ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱟᱫᱮᱨ ᱢᱮ ᱾
+password_invalid=ᱵᱷᱩᱞ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱾ ᱫᱟᱭᱟᱠᱟᱛᱮ ᱫᱩᱦᱲᱟᱹ ᱪᱮᱥᱴᱟᱭ ᱢᱮ ᱾
+password_ok=ᱴᱷᱤᱠ
+password_cancel=ᱵᱟᱹᱰᱨᱟᱹ
+
+printing_not_supported=ᱦᱚᱥᱤᱭᱟᱨ : ᱪᱷᱟᱯᱟ ᱱᱚᱣᱟ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱫᱟᱨᱟᱭ ᱛᱮ ᱯᱩᱨᱟᱹᱣ ᱵᱟᱭ ᱜᱚᱲᱚᱣᱟᱠᱟᱱᱟ ᱾
+printing_not_ready=ᱦᱩᱥᱤᱭᱟᱹᱨ : ᱪᱷᱟᱯᱟ ᱞᱟᱹᱜᱤᱫ PDF ᱯᱩᱨᱟᱹ ᱵᱟᱭ ᱞᱟᱫᱮ ᱟᱠᱟᱱᱟ ᱾
+web_fonts_disabled=ᱣᱮᱵᱽ ᱪᱤᱠᱤ ᱵᱟᱝ ᱦᱩᱭ ᱦᱚᱪᱚ ᱠᱟᱱᱟ : ᱵᱷᱤᱛᱤᱨ ᱛᱷᱟᱯᱚᱱ PDF ᱪᱤᱠᱤ ᱵᱮᱵᱷᱟᱨ ᱵᱟᱝ ᱦᱩᱭ ᱠᱮᱭᱟ ᱾
+
+# 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=ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱛᱮᱭᱟᱨ ᱠᱟᱫ ᱪᱤᱛᱟᱹᱨ
diff --git a/static/pdf.js/locale/sc/viewer.properties b/static/pdf.js/locale/sc/viewer.properties
new file mode 100644
index 000000000..4da24c127
--- /dev/null
+++ b/static/pdf.js/locale/sc/viewer.properties
@@ -0,0 +1,258 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Pàgina anteriore
+previous_label=S'ischeda chi b'est primu
+next.title=Pàgina imbeniente
+next_label=Imbeniente
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pàgina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=de {{pagesCount}}
+# 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}} de {{pagesCount}})
+
+zoom_out.title=Impitica
+zoom_out_label=Impitica
+zoom_in.title=Ismànnia
+zoom_in_label=Ismànnia
+zoom.title=Ismànnia
+presentation_mode.title=Cola a sa modalidade de presentatzione
+presentation_mode_label=Modalidade de presentatzione
+open_file.title=Aberi s'archìviu
+open_file_label=Abertu
+print.title=Imprenta
+print_label=Imprenta
+save.title=Sarva
+save_label=Sarva
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Iscàrriga
+# 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=Iscàrriga
+bookmark1.title=Pàgina atuale (ammustra s’URL de sa pàgina atuale)
+bookmark1_label=Pàgina atuale
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Aberi in un’aplicatzione
+# 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=Aberi in un’aplicatzione
+
+# Secondary toolbar and context menu
+tools.title=Istrumentos
+tools_label=Istrumentos
+first_page.title=Bae a sa prima pàgina
+first_page_label=Bae a sa prima pàgina
+last_page.title=Bae a s'ùrtima pàgina
+last_page_label=Bae a s'ùrtima pàgina
+page_rotate_cw.title=Gira in sensu oràriu
+page_rotate_cw_label=Gira in sensu oràriu
+page_rotate_ccw.title=Gira in sensu anti-oràriu
+page_rotate_ccw_label=Gira in sensu anti-oràriu
+
+cursor_text_select_tool.title=Ativa s'aina de seletzione de testu
+cursor_text_select_tool_label=Aina de seletzione de testu
+cursor_hand_tool.title=Ativa s'aina de manu
+cursor_hand_tool_label=Aina de manu
+
+scroll_page.title=Imprea s'iscurrimentu de pàgina
+scroll_page_label=Iscurrimentu de pàgina
+scroll_vertical.title=Imprea s'iscurrimentu verticale
+scroll_vertical_label=Iscurrimentu verticale
+scroll_horizontal.title=Imprea s'iscurrimentu orizontale
+scroll_horizontal_label=Iscurrimentu orizontale
+scroll_wrapped.title=Imprea s'iscurrimentu continu
+scroll_wrapped_label=Iscurrimentu continu
+
+
+# Document properties dialog box
+document_properties.title=Propiedades de su documentu…
+document_properties_label=Propiedades de su documentu…
+document_properties_file_name=Nòmine de s'archìviu:
+document_properties_file_size=Mannària de s'archìviu:
+# 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)
+# 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_title=Tìtulu:
+document_properties_author=Autoria:
+document_properties_subject=Ogetu:
+document_properties_keywords=Faeddos crae:
+document_properties_creation_date=Data de creatzione:
+document_properties_modification_date=Data de modìfica:
+# 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=Creatzione:
+document_properties_producer=Produtore de PDF:
+document_properties_version=Versione de PDF:
+document_properties_page_count=Contu de pàginas:
+document_properties_page_size=Mannària de sa pàgina:
+document_properties_page_size_unit_inches=pòddighes
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=verticale
+document_properties_page_size_orientation_landscape=orizontale
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Lìtera
+document_properties_page_size_name_legal=Legale
+# 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=Visualizatzione web lestra:
+document_properties_linearized_yes=Eja
+document_properties_linearized_no=Nono
+document_properties_close=Serra
+
+print_progress_message=Aparitzende s'imprenta de su documentu…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Cantzella
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Ativa/disativa sa barra laterale
+toggle_sidebar_notification2.title=Ativa/disativa sa barra laterale (su documentu cuntenet un'ischema, alligongiados o livellos)
+toggle_sidebar_label=Ativa/disativa sa barra laterale
+document_outline_label=Ischema de su documentu
+attachments.title=Ammustra alligongiados
+attachments_label=Alliongiados
+layers.title=Ammustra livellos (clic dòpiu pro ripristinare totu is livellos a s'istadu predefinidu)
+layers_label=Livellos
+thumbs.title=Ammustra miniaturas
+thumbs_label=Miniaturas
+current_outline_item.title=Agata s'elementu atuale de s'ischema
+current_outline_item_label=Elementu atuale de s'ischema
+findbar.title=Agata in su documentu
+findbar_label=Agata
+
+additional_layers=Livellos additzionales
+# 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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Pàgina {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura de sa pàgina {{page}}
+
+# Find panel button title and messages
+find_input.title=Agata
+find_input.placeholder=Agata in su documentu…
+find_previous.title=Agata s'ocurrèntzia pretzedente de sa fràsia
+find_previous_label=S'ischeda chi b'est primu
+find_next.title=Agata s'ocurrèntzia imbeniente de sa fràsia
+find_next_label=Imbeniente
+find_highlight=Evidèntzia totu
+find_match_case_label=Distinghe intre majùsculas e minùsculas
+find_match_diacritics_label=Respeta is diacrìticos
+find_entire_word_label=Faeddos intreos
+find_reached_top=S'est lòmpidu a su cumintzu de su documentu, si sighit dae su bàsciu
+find_reached_bottom=Acabbu de su documentu, si sighit dae s'artu
+# 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}} dae {{total}} currispondèntzia
+find_match_count[two]={{current}} dae {{total}} currispondèntzias
+find_match_count[few]={{current}} dae {{total}} currispondèntzias
+find_match_count[many]={{current}} dae {{total}} currispondèntzias
+find_match_count[other]={{current}} dae {{total}} currispondèntzias
+# 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]=Prus de {{limit}} currispondèntzias
+find_match_count_limit[one]=Prus de {{limit}} currispondèntzia
+find_match_count_limit[two]=Prus de {{limit}} currispondèntzias
+find_match_count_limit[few]=Prus de {{limit}} currispondèntzias
+find_match_count_limit[many]=Prus de {{limit}} currispondèntzias
+find_match_count_limit[other]=Prus de {{limit}} currispondèntzias
+find_not_found=Testu no agatadu
+
+# Predefined zoom values
+page_scale_auto=Ingrandimentu automàticu
+page_scale_actual=Mannària reale
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Faddina in sa càrriga de su PDF.
+invalid_file_error=Archìviu PDF non vàlidu o corrùmpidu.
+missing_file_error=Ammancat s'archìviu PDF.
+unexpected_response_error=Risposta imprevista de su serbidore.
+rendering_error=Faddina in sa visualizatzione de sa 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+password_label=Inserta sa crae pro abèrrere custu archìviu PDF.
+password_invalid=Sa crae no est curreta. Torra a nche proare.
+password_ok=Andat bene
+password_cancel=Cantzella
+
+printing_not_supported=Atentzione: s'imprenta no est funtzionende de su totu in custu navigadore.
+printing_not_ready=Atentzione: su PDF no est istadu carrigadu de su totu pro s'imprenta.
+web_fonts_disabled=Is tipografias web sunt disativadas: is tipografias incrustadas a su PDF non podent èssere impreadas.
+
+# Editor
+editor_free_text2.title=Testu
+editor_free_text2_label=Testu
+editor_ink2.title=Disinnu
+editor_ink2_label=Disinnu
+
+editor_stamp_label=Agiunghe un’immàgine
+
+editor_stamp1.title=Agiunghe o modìfica immàgines
+editor_stamp1_label=Agiunghe o modìfica immàgines
+
+free_text2_default_content=Cumintza a iscrìere…
+
+# Editor Parameters
+editor_free_text_color=Colore
+editor_free_text_size=Mannària
+editor_ink_color=Colore
+editor_ink_thickness=Grussària
+
+editor_stamp_add_image_label=Agiunghe un’immàgine
+editor_stamp_add_image.title=Agiunghe un’immàgine
+
+# Editor aria
+editor_free_text2_aria_label=Editore de testu
+editor_ink2_aria_label=Editore de disinnos
+editor_ink_canvas_aria_label=Immàgine creada dae s’utente
diff --git a/static/pdf.js/locale/lg/viewer.properties b/static/pdf.js/locale/scn/viewer.properties
similarity index 53%
rename from static/pdf.js/locale/lg/viewer.properties
rename to static/pdf.js/locale/scn/viewer.properties
index 3cac56e01..e9a650a91 100644
--- a/static/pdf.js/locale/lg/viewer.properties
+++ b/static/pdf.js/locale/scn/viewer.properties
@@ -13,33 +13,24 @@
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Omuko Ogubadewo
-next.title=Omuko Oguddako
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Omuko:
-page_of=ku {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+# 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.
-zoom_out.title=Zimbulukusa
-zoom_out_label=Zimbulukusa
-zoom_in.title=Funza Munda
-zoom_in_label=Funza Munda
-zoom.title=Gezzamu
-open_file.title=Bikula Fayiro
-open_file_label=Ggulawo
-print.title=Fulumya
-print_label=Fulumya
-download.title=Tikula
-download_label=Tikula
-bookmark.title=Endabika eriwo (koppa oba gulawo mu diriisa epya)
-bookmark_label=Endabika Eriwo
+zoom_out.title=Cchiù nicu
+zoom_out_label=Cchiù nicu
+zoom_in.title=Cchiù granni
+zoom_in_label=Cchiù granni
# Secondary toolbar and context menu
+
+
# Document properties dialog box
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
@@ -47,65 +38,64 @@ bookmark_label=Endabika Eriwo
# will be replaced by the PDF file size in megabytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
+# 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.
+# 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.
+# 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=Vista web lesta:
+document_properties_linearized_yes=Se
+
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_close=Sfai
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-outline.title=Laga Ensalo ze Kiwandiko
-outline_label=Ensalo ze Ekiwandiko
-thumbs.title=Laga Ekifanyi Mubufunze
-thumbs_label=Ekifanyi Mubufunze
-findbar_label=Zuula
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
-thumb_page_title=Omuko {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
-thumb_page_canvas=Ekifananyi kyo Omuko Mubufunze {{page}}
# Find panel button title and messages
-find_previous.title=Zuula awayise mukweddamu mumiteddera
-find_next.title=Zuula ekidako mukweddamu mumiteddera
-find_highlight=Londa byonna
-find_not_found=Emiteddera tezuuliddwa
+# 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.
+# 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.
# Error panel labels
-error_more_info=Ebisingawo
-error_less_info=Mubumpimpi
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
-error_message=Obubaaka: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
-error_stack=Ebipangiddwa: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Fayiro {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Layini: {{line}}
-rendering_error=Wabadewo ensobi muku tekawo omuko.
# Predefined zoom values
-page_scale_width=Obugazi bwo Omuko
-page_scale_fit=Okutuka kwo Omuko
-page_scale_auto=Okwefunza no Kwegeza
-page_scale_actual=Obunene Obutufu
+page_scale_width=Larghizza dâ pàggina
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
-loading_error_indicator=Ensobi
-loading_error=Wabadewo ensobi mukutika PDF.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Enyonyola]
-password_ok=OK
-password_cancel=Sazaamu
+password_cancel=Sfai
-printing_not_supported=Okulaabula: Okulumya empapula tekuwagirwa enonyeso enno.
diff --git a/static/pdf.js/locale/sco/viewer.properties b/static/pdf.js/locale/sco/viewer.properties
new file mode 100644
index 000000000..81203d10e
--- /dev/null
+++ b/static/pdf.js/locale/sco/viewer.properties
@@ -0,0 +1,226 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Page Afore
+previous_label=Previous
+next.title=Page Efter
+next_label=Neist
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Page
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=o {{pagesCount}}
+# 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}} o {{pagesCount}})
+
+zoom_out.title=Zoom Oot
+zoom_out_label=Zoom Oot
+zoom_in.title=Zoom In
+zoom_in_label=Zoom In
+zoom.title=Zoom
+presentation_mode.title=Flit tae Presentation Mode
+presentation_mode_label=Presentation Mode
+open_file.title=Open File
+open_file_label=Open
+print.title=Prent
+print_label=Prent
+
+# Secondary toolbar and context menu
+tools.title=Tools
+tools_label=Tools
+first_page.title=Gang tae First Page
+first_page_label=Gang tae First Page
+last_page.title=Gang tae Lest Page
+last_page_label=Gang tae Lest Page
+page_rotate_cw.title=Rotate Clockwise
+page_rotate_cw_label=Rotate Clockwise
+page_rotate_ccw.title=Rotate Coonterclockwise
+page_rotate_ccw_label=Rotate Coonterclockwise
+
+cursor_text_select_tool.title=Enable Text Walin Tool
+cursor_text_select_tool_label=Text Walin Tool
+cursor_hand_tool.title=Enable Haun Tool
+cursor_hand_tool_label=Haun Tool
+
+scroll_vertical.title=Yaise Vertical Scrollin
+scroll_vertical_label=Vertical Scrollin
+scroll_horizontal.title=Yaise Horizontal Scrollin
+scroll_horizontal_label=Horizontal Scrollin
+scroll_wrapped.title=Yaise Wrapped Scrollin
+scroll_wrapped_label=Wrapped Scrollin
+
+spread_none.title=Dinnae jyn page spreids
+spread_none_label=Nae Spreids
+spread_odd.title=Jyn page spreids stertin wi odd-numbered pages
+spread_odd_label=Odd Spreids
+spread_even.title=Jyn page spreids stertin wi even-numbered pages
+spread_even_label=Even Spreids
+
+# Document properties dialog box
+document_properties.title=Document Properties…
+document_properties_label=Document Properties…
+document_properties_file_name=File nemme:
+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)
+# 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_title=Title:
+document_properties_author=Author:
+document_properties_subject=Subjeck:
+document_properties_keywords=Keywirds:
+document_properties_creation_date=Date o Makkin:
+document_properties_modification_date=Date o Chynges:
+# 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=Makker:
+document_properties_producer=PDF Producer:
+document_properties_version=PDF Version:
+document_properties_page_count=Page Coont:
+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 Wab View:
+document_properties_linearized_yes=Aye
+document_properties_linearized_no=Naw
+document_properties_close=Sneck
+
+print_progress_message=Reddin document fur prentin…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Stap
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Toggle Sidebaur
+toggle_sidebar_notification2.title=Toggle Sidebaur (document conteens ootline/attachments/layers)
+toggle_sidebar_label=Toggle Sidebaur
+document_outline.title=Kythe Document Ootline (double-click fur tae oot-fauld/in-fauld aw items)
+document_outline_label=Document Ootline
+attachments.title=Kythe Attachments
+attachments_label=Attachments
+layers.title=Kythe Layers (double-click fur tae reset aw layers tae the staunart state)
+layers_label=Layers
+thumbs.title=Kythe Thumbnails
+thumbs_label=Thumbnails
+current_outline_item.title=Find Current Ootline Item
+current_outline_item_label=Current Ootline Item
+findbar.title=Find in Document
+findbar_label=Find
+
+additional_layers=Mair 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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Page {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Thumbnail o Page {{page}}
+
+# Find panel button title and messages
+find_input.title=Find
+find_input.placeholder=Find in document…
+find_previous.title=Airt oot the last time this phrase occurred
+find_previous_label=Previous
+find_next.title=Airt oot the neist time this phrase occurs
+find_next_label=Neist
+find_highlight=Highlicht aw
+find_match_case_label=Match case
+find_entire_word_label=Hale Wirds
+find_reached_top=Raxed tap o document, went on fae the dowp end
+find_reached_bottom=Raxed end o document, went on fae the tap
+# 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}} o {{total}} match
+find_match_count[two]={{current}} o {{total}} matches
+find_match_count[few]={{current}} o {{total}} matches
+find_match_count[many]={{current}} o {{total}} matches
+find_match_count[other]={{current}} o {{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]=Mair nor {{limit}} matches
+find_match_count_limit[one]=Mair nor {{limit}} match
+find_match_count_limit[two]=Mair nor {{limit}} matches
+find_match_count_limit[few]=Mair nor {{limit}} matches
+find_match_count_limit[many]=Mair nor {{limit}} matches
+find_match_count_limit[other]=Mair nor {{limit}} matches
+find_not_found=Phrase no fund
+
+# Predefined zoom values
+page_scale_width=Page Width
+page_scale_fit=Page Fit
+page_scale_auto=Automatic Zoom
+page_scale_actual=Actual Size
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+loading_error=An mishanter tuik place while loadin the PDF.
+invalid_file_error=No suithfest or camshauchlet PDF file.
+missing_file_error=PDF file tint.
+unexpected_response_error=Unexpectit server repone.
+
+rendering_error=A mishanter tuik place while renderin 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Annotation]
+password_label=Inpit the passwird fur tae open this PDF file.
+password_invalid=Passwird no suithfest. Gonnae gie it anither shot.
+password_ok=OK
+password_cancel=Stap
+
+printing_not_supported=Tak tent: Prentin isnae richt supportit by this stravaiger.
+printing_not_ready=Tak tent: The PDF isnae richt loadit fur prentin.
+web_fonts_disabled=Wab fonts are disabled: cannae yaise embeddit PDF fonts.
+
diff --git a/static/pdf.js/locale/si/viewer.properties b/static/pdf.js/locale/si/viewer.properties
index 80cae85f2..05dde248e 100644
--- a/static/pdf.js/locale/si/viewer.properties
+++ b/static/pdf.js/locale/si/viewer.properties
@@ -13,161 +13,216 @@
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
-previous.title=මීට පෙර පිටුව
-previous_label=පෙර
-next.title=මීළඟ පිටුව
-next_label=මීළඟ
+previous.title=කලින් පිටුව
+previous_label=කලින්
+next.title=ඊළඟ පිටුව
+next_label=ඊළඟ
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=පිටුව:
-page_of={{pageCount}} කින්
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=පිටුව
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+# 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_label=කුඩා කරන්න
-zoom_in.title=විශාල කරන්න
-zoom_in_label=විශාල කරන්න
-zoom.title=විශාලණය
-presentation_mode.title=ඉදිරිපත්කිරීම් ප්රකාරය වෙත මාරුවන්න
-presentation_mode_label=ඉදිරිපත්කිරීම් ප්රකාරය
-open_file.title=ගොනුව විවෘත කරන්න
-open_file_label=විවෘත කරන්න
+zoom_out.title=කුඩාලනය
+zoom_out_label=කුඩාලනය
+zoom_in.title=විශාලනය
+zoom_in_label=විශාලනය
+zoom.title=විශාල කරන්න
+presentation_mode.title=සමර්පණ ප්රකාරය වෙත මාරුවන්න
+presentation_mode_label=සමර්පණ ප්රකාරය
+open_file.title=ගොනුව අරින්න
+open_file_label=අරින්න
print.title=මුද්රණය
print_label=මුද්රණය
-download.title=බාගන්න
-download_label=බාගන්න
-bookmark.title=දැනට ඇති දසුන (පිටපත් කරන්න හෝ නව කවුළුවක විවෘත කරන්න)
-bookmark_label=දැනට ඇති දසුන
+save.title=සුරකින්න
+save_label=සුරකින්න
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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_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
tools.title=මෙවලම්
tools_label=මෙවලම්
first_page.title=මුල් පිටුවට යන්න
-first_page.label=මුල් පිටුවට යන්න
first_page_label=මුල් පිටුවට යන්න
last_page.title=අවසන් පිටුවට යන්න
-last_page.label=අවසන් පිටුවට යන්න
last_page_label=අවසන් පිටුවට යන්න
-page_rotate_cw.title=දක්ශිණාවර්තව භ්රමණය
-page_rotate_cw.label=දක්ශිණාවර්තව භ්රමණය
-page_rotate_cw_label=දක්ශිණාවර්තව භ්රමණය
-page_rotate_ccw.title=වාමාවර්තව භ්රමණය
-page_rotate_ccw.label=වාමාවර්තව භ්රමණය
-page_rotate_ccw_label=වාමාවර්තව භ්රමණය
-hand_tool_enable.title=හස්ත මෙවලම සක්රීය
-hand_tool_enable_label=හස්ත මෙවලම සක්රීය
-hand_tool_disable.title=හස්ත මෙවලම අක්රීය
-hand_tool_disable_label=හස්ත මෙවලම අක්රීය
+cursor_text_select_tool.title=පෙළ තේරීමේ මෙවලම සබල කරන්න
+cursor_text_select_tool_label=පෙළ තේරීමේ මෙවලම
+cursor_hand_tool.title=අත් මෙවලම සබල කරන්න
+cursor_hand_tool_label=අත් මෙවලම
+
+scroll_page.title=පිටුව අනුචලනය භාවිතය
+scroll_page_label=පිටුව අනුචලනය
+scroll_vertical.title=සිරස් අනුචලනය භාවිතය
+scroll_vertical_label=සිරස් අනුචලනය
+scroll_horizontal.title=තිරස් අනුචලනය භාවිතය
+scroll_horizontal_label=තිරස් අනුචලනය
+
# Document properties dialog box
-document_properties.title=ලේඛන වත්කම්...
-document_properties_label=ලේඛන වත්කම්...
-document_properties_file_name=ගොනු නම:
-document_properties_file_size=ගොනු ප්රමාණය:
+document_properties.title=ලේඛනයේ ගුණාංග…
+document_properties_label=ලේඛනයේ ගුණාංග…
+document_properties_file_name=ගොනුවේ නම:
+document_properties_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}} බයිට)
+document_properties_kb=කි.බ. {{size_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_author=කතෲ
+document_properties_mb=මෙ.බ. {{size_mb}} (බයිට {{size_b}})
+document_properties_title=සිරැසිය:
+document_properties_author=කතෘ:
document_properties_subject=මාතෘකාව:
-document_properties_keywords=යතුරු වදන්:
-document_properties_creation_date=නිර්මිත දිනය:
-document_properties_modification_date=වෙනස්කල දිනය:
+document_properties_keywords=මූල පද:
+document_properties_creation_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_creator=නිර්මාපක:
-document_properties_producer=PDF නිශ්පාදක:
-document_properties_version=PDF නිකුතුව:
+document_properties_creator=නිර්මාතෘ:
+document_properties_producer=පීඩීඑෆ් සම්පාදක:
+document_properties_version=පීඩීඑෆ් අනුවාදය:
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
+# 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=වසන්න
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-toggle_sidebar.title=පැති තීරුවට මාරුවන්න
-toggle_sidebar_label=පැති තීරුවට මාරුවන්න
-outline.title=ලේඛනයේ පිට මායිම පෙන්වන්න
-outline_label=ලේඛනයේ පිට මායිම
-attachments.title=ඇමිණුම් පෙන්වන්න
-attachments_label=ඇමිණුම්
+document_outline_label=ලේඛනයේ වටසන
+attachments.title=ඇමුණුම් පෙන්වන්න
+attachments_label=ඇමුණුම්
+layers.title=ස්තර පෙන්වන්න (සියළු ස්තර පෙරනිමි තත්වයට යළි සැකසීමට දෙවරක් ඔබන්න)
+layers_label=ස්තර
thumbs.title=සිඟිති රූ පෙන්වන්න
thumbs_label=සිඟිති රූ
-findbar.title=ලේඛනය තුළ සොයන්න
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=පිටුව {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
-thumb_page_canvas=පිටුවෙ සිඟිත රූව {{page}}
+thumb_page_canvas=පිටුවේ සිඟිත රූව {{page}}
# Find panel button title and messages
-find_label=සොයන්න:
-find_previous.title=මේ වාක්ය ඛණ්ඩය මීට පෙර යෙදුණු ස්ථානය සොයන්න
-find_previous_label=පෙර:
-find_next.title=මේ වාක්ය ඛණ්ඩය මීළඟට යෙදෙන ස්ථානය සොයන්න
-find_next_label=මීළඟ
+find_input.title=සොයන්න
+find_input.placeholder=ලේඛනයේ සොයන්න…
+find_previous.title=මෙම වැකිකඩ කලින් යෙදුණු ස්ථානය සොයන්න
+find_previous_label=කලින්
+find_next.title=මෙම වැකිකඩ ඊළඟට යෙදෙන ස්ථානය සොයන්න
+find_next_label=ඊළඟ
find_highlight=සියල්ල උද්දීපනය
-find_match_case_label=අකුරු ගළපන්න
-find_reached_top=පිටුවේ ඉහළ කෙළවරට ලගාවිය, පහළ සිට ඉදිරියට යමින්
-find_reached_bottom=පිටුවේ පහළ කෙළවරට ලගාවිය, ඉහළ සිට ඉදිරියට යමින්
-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}})
-# 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: {{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=පිටුව රෙන්ඩර් විමේදි ගැටලුවක් හට ගැනුණි.
+find_entire_word_label=සමස්ත වචන
+find_reached_top=ලේඛනයේ මුදුනට ළඟා විය, පහළ සිට ඉහළට
+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) ]}
+# 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[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
page_scale_width=පිටුවේ පළල
-page_scale_fit=පිටුවට සුදුසු ලෙස
-page_scale_auto=ස්වයංක්රීය විශාලණය
-page_scale_actual=නියමිත ප්රමාණය
+page_scale_auto=ස්වයංක්රීය විශාලනය
+page_scale_actual=සැබෑ ප්රමාණය
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=දෝෂය
-loading_error=PDF පූරණය විමේදි දෝෂයක් හට ගැනුණි.
-invalid_file_error=දූශිත හෝ සාවද්ය PDF ගොනුව.
-missing_file_error=නැතිවූ PDF ගොනුව.
-unexpected_response_error=බලාපොරොත්තු නොවූ සේවාදායක ප්රතිචාරය.
+loading_error=පීඩීඑෆ් පූරණය කිරීමේදී දෝෂයක් සිදු විය.
+invalid_file_error=වලංගු නොවන හෝ හානිවූ පීඩීඑෆ් ගොනුවකි.
+missing_file_error=මඟහැරුණු පීඩීඑෆ් ගොනුවකි.
+unexpected_response_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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} විස්තරය]
-password_label=මෙම PDF ගොනුව විවෘත කිරීමට මුරපදය ඇතුළත් කරන්න.
-password_invalid=වැරදි මුරපදයක්. කරුණාකර නැවත උත්සහ කරන්න.
+password_label=මෙම පීඩීඑෆ් ගොනුව විවෘත කිරීමට මුරපදය යොදන්න.
+password_invalid=වැරදි මුරපදයකි. නැවත උත්සාහ කරන්න.
password_ok=හරි
-password_cancel=එපා
+password_cancel=අවලංගු
-printing_not_supported=අවවාදයයි: මෙම ගවේශකය මුද්රණය සඳහා සම්පූර්ණයෙන් සහය නොදක්වයි.
-printing_not_ready=අවවාදයයි: මුද්රණය සඳහා PDF සම්පූර්ණයෙන් පූර්ණය වී නොමැත.
-web_fonts_disabled=ජාල අකුරු අක්රීයයි: තිළැලි PDF අකුරු භාවිත කළ නොහැක.
-document_colors_disabled=PDF ලේඛනයට ඔවුන්ගේම වර්ණ භාවිතයට ඉඩ නොලැබේ: 'පිටු වෙත ඔවුන්ගේම වර්ණ භාවිතයට ඉඩදෙන්න' ගවේශකය මත අක්රීය කර ඇත.
+printing_not_supported=අවවාදයයි: මෙම අතිරික්සුව මුද්රණය සඳහා හොඳින් සහාය නොදක්වයි.
+printing_not_ready=අවවාදයයි: මුද්රණයට පීඩීඑෆ් ගොනුව සම්පූර්ණයෙන් පූරණය වී නැත.
+web_fonts_disabled=වියමන අකුරු අබලයි: පීඩීඑෆ් වෙත කාවැද්දූ රුවකුරු භාවිතා කළ නොහැකිය.
+
+# Editor
+editor_free_text2.title=පෙළ
+editor_free_text2_label=පෙළ
+editor_ink2.title=අඳින්න
+editor_ink2_label=අඳින්න
+
+editor_stamp.title=රූපයක් එක් කරන්න
+editor_stamp_label=රූපයක් එක් කරන්න
+
+free_text2_default_content=ලිවීීම අරඹන්න…
+
+# Editor Parameters
+editor_free_text_color=වර්ණය
+editor_free_text_size=තරම
+editor_ink_color=වර්ණය
+editor_ink_thickness=ඝණකම
+
+# Editor aria
+editor_free_text2_aria_label=වදන් සකසනය
diff --git a/static/pdf.js/locale/sk/viewer.properties b/static/pdf.js/locale/sk/viewer.properties
index e73d1b7f9..22ce0590c 100644
--- a/static/pdf.js/locale/sk/viewer.properties
+++ b/static/pdf.js/locale/sk/viewer.properties
@@ -18,49 +18,73 @@ previous_label=Predchádzajúca
next.title=Nasledujúca strana
next_label=Nasledujúca
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Strana:
-page_of=z {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Strana
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=z {{pagesCount}}
+# 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}} z {{pagesCount}})
-zoom_out.title=Vzdialiť
-zoom_out_label=Vzdialiť
-zoom_in.title=Priblížiť
-zoom_in_label=Priblížiť
-zoom.title=Lupa
-presentation_mode.title=Prepnúť na režim Prezentácia
-presentation_mode_label=Režim Prezentácia
+zoom_out.title=Zmenšiť veľkosť
+zoom_out_label=Zmenšiť veľkosť
+zoom_in.title=Zväčšiť veľkosť
+zoom_in_label=Zväčšiť veľkosť
+zoom.title=Nastavenie veľkosti
+presentation_mode.title=Prepnúť na režim prezentácie
+presentation_mode_label=Režim prezentácie
open_file.title=Otvoriť súbor
open_file_label=Otvoriť
print.title=Tlačiť
print_label=Tlačiť
-download.title=Prevziať
-download_label=Prevziať
-bookmark.title=Aktuálne zobrazenie (kopírovať alebo otvoriť v novom okne)
-bookmark_label=Aktuálne zobrazenie
+save.title=Uložiť
+save_label=Uložiť
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Stiahnuť
+# 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=Stiahnuť
+bookmark1.title=Aktuálna stránka (zobraziť adresu URL z aktuálnej stránky)
+bookmark1_label=Aktuálna stránka
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Otvoriť v aplikácii
+# 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=Otvoriť v aplikácii
# Secondary toolbar and context menu
tools.title=Nástroje
tools_label=Nástroje
first_page.title=Prejsť na prvú stranu
-first_page.label=Prejsť na prvú stranu
first_page_label=Prejsť na prvú stranu
last_page.title=Prejsť na poslednú stranu
-last_page.label=Prejsť na poslednú stranu
last_page_label=Prejsť na poslednú stranu
page_rotate_cw.title=Otočiť v smere hodinových ručičiek
-page_rotate_cw.label=Otočiť v smere hodinových ručičiek
page_rotate_cw_label=Otočiť v smere hodinových ručičiek
page_rotate_ccw.title=Otočiť proti smeru hodinových ručičiek
-page_rotate_ccw.label=Otočiť proti smeru hodinových ručičiek
page_rotate_ccw_label=Otočiť proti smeru hodinových ručičiek
-hand_tool_enable.title=Zapnúť nástroj Ruka
-hand_tool_enable_label=Zapnúť nástroj Ruka
-hand_tool_disable.title=Vypnúť nástroj Ruka
-hand_tool_disable_label=Vypnúť nástroj Ruka
+cursor_text_select_tool.title=Povoliť výber textu
+cursor_text_select_tool_label=Výber textu
+cursor_hand_tool.title=Povoliť nástroj ruka
+cursor_hand_tool_label=Nástroj ruka
+
+scroll_page.title=Použiť rolovanie po stránkach
+scroll_page_label=Rolovanie po stránkach
+scroll_vertical.title=Používať zvislé posúvanie
+scroll_vertical_label=Zvislé posúvanie
+scroll_horizontal.title=Používať vodorovné posúvanie
+scroll_horizontal_label=Vodorovné posúvanie
+scroll_wrapped.title=Použiť postupné posúvanie
+scroll_wrapped_label=Postupné posúvanie
+
+spread_none.title=Nezdružovať stránky
+spread_none_label=Žiadne združovanie
+spread_odd.title=Združí stránky a umiestni nepárne stránky vľavo
+spread_odd_label=Združiť stránky (nepárne vľavo)
+spread_even.title=Združí stránky a umiestni párne stránky vľavo
+spread_even_label=Združiť stránky (párne vľavo)
# Document properties dialog box
document_properties.title=Vlastnosti dokumentu…
@@ -86,22 +110,58 @@ document_properties_creator=Vytvoril:
document_properties_producer=Tvorca PDF:
document_properties_version=Verzia PDF:
document_properties_page_count=Počet strán:
+document_properties_page_size=Veľkosť stránky:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=na výšku
+document_properties_page_size_orientation_landscape=na šírku
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=List
+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=Rýchle Web View:
+document_properties_linearized_yes=Áno
+document_properties_linearized_no=Nie
document_properties_close=Zavrieť
+print_progress_message=Príprava dokumentu na tlač…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}} %
+print_progress_close=Zrušiť
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Prepnúť bočný panel
+toggle_sidebar_notification2.title=Prepnúť bočný panel (dokument obsahuje osnovu/prílohy/vrstvy)
toggle_sidebar_label=Prepnúť bočný panel
-outline.title=Zobraziť prehľad dokumentu
-outline_label=Prehľad dokumentu
+document_outline.title=Zobraziť osnovu dokumentu (dvojitým kliknutím rozbalíte/zbalíte všetky položky)
+document_outline_label=Osnova dokumentu
attachments.title=Zobraziť prílohy
attachments_label=Prílohy
+layers.title=Zobraziť vrstvy (dvojitým kliknutím uvediete všetky vrstvy do pôvodného stavu)
+layers_label=Vrstvy
thumbs.title=Zobraziť miniatúry
thumbs_label=Miniatúry
+current_outline_item.title=Nájsť aktuálnu položku v osnove
+current_outline_item_label=Aktuálna položka v osnove
findbar.title=Hľadať v dokumente
findbar_label=Hľadať
+additional_layers=Ďalšie vrstvy
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Strana {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Strana {{page}}
thumb_page_canvas=Miniatúra strany {{page}}
# Find panel button title and messages
-find_label=Hľadať:
+find_input.title=Hľadať
+find_input.placeholder=Hľadať v dokumente…
find_previous.title=Vyhľadať predchádzajúci výskyt reťazca
find_previous_label=Predchádzajúce
find_next.title=Vyhľadať ďalší výskyt reťazca
find_next_label=Ďalšie
find_highlight=Zvýrazniť všetky
-find_match_case_label=Rozlišovať malé/veľké písmená
+find_match_case_label=Rozlišovať veľkosť písmen
+find_match_diacritics_label=Rozlišovať diakritiku
+find_entire_word_label=Celé slová
find_reached_top=Bol dosiahnutý začiatok stránky, pokračuje sa od konca
find_reached_bottom=Bol dosiahnutý koniec stránky, pokračuje sa od začiatku
+# 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}}. z {{total}} výsledku
+find_match_count[two]={{current}}. z {{total}} výsledkov
+find_match_count[few]={{current}}. z {{total}} výsledkov
+find_match_count[many]={{current}}. z {{total}} výsledkov
+find_match_count[other]={{current}}. z {{total}} výsledkov
+# 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]=Viac než {{limit}} výsledkov
+find_match_count_limit[one]=Viac než {{limit}} výsledok
+find_match_count_limit[two]=Viac než {{limit}} výsledky
+find_match_count_limit[few]=Viac než {{limit}} výsledky
+find_match_count_limit[many]=Viac než {{limit}} výsledkov
+find_match_count_limit[other]=Viac než {{limit}} výsledkov
find_not_found=Výraz nebol nájdený
-# Error panel labels
-error_more_info=Viac informácií
-error_less_info=Menej informácií
-error_close=Zavrieť
-# 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}} (zostavenie: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Správa: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Zásobník: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Súbor: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Riadok: {{line}}
-rendering_error=Pri vykresľovaní stránky sa vyskytla chyba.
-
# Predefined zoom values
page_scale_width=Na šírku strany
page_scale_fit=Na veľkosť strany
@@ -148,14 +213,18 @@ page_scale_auto=Automatická veľkosť
page_scale_actual=Skutočná veľkosť
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
-page_scale_percent={{scale}}%
+page_scale_percent={{scale}} %
# Loading indicator messages
-loading_error_indicator=Chyba
loading_error=Počas načítavania dokumentu PDF sa vyskytla chyba.
invalid_file_error=Neplatný alebo poškodený súbor PDF.
missing_file_error=Chýbajúci súbor PDF.
unexpected_response_error=Neočakávaná odpoveď zo servera.
+rendering_error=Pri vykresľovaní stránky sa vyskytla chyba.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,32 @@ password_cancel=Zrušiť
printing_not_supported=Upozornenie: tlač nie je v tomto prehliadači plne podporovaná.
printing_not_ready=Upozornenie: súbor PDF nie je plne načítaný pre tlač.
web_fonts_disabled=Webové písma sú vypnuté: nie je možné použiť písma vložené do súboru PDF.
-document_colors_not_allowed=Dokumenty PDF nemajú povolené používať vlastné farby, pretože voľba "Povoliť stránkam používať vlastné farby" je v nastaveniach prehliadača vypnutá.
+
+# Editor
+editor_free_text2.title=Text
+editor_free_text2_label=Text
+editor_ink2.title=Kreslenie
+editor_ink2_label=Kresliť
+
+editor_stamp.title=Pridať obrázok
+editor_stamp_label=Pridať obrázok
+
+editor_stamp1.title=Pridať alebo upraviť obrázky
+editor_stamp1_label=Pridať alebo upraviť obrázky
+
+free_text2_default_content=Začnite písať…
+
+# Editor Parameters
+editor_free_text_color=Farba
+editor_free_text_size=Veľkosť
+editor_ink_color=Farba
+editor_ink_thickness=Hrúbka
+editor_ink_opacity=Priehľadnosť
+
+editor_stamp_add_image_label=Pridať obrázok
+editor_stamp_add_image.title=Pridať obrázok
+
+# Editor aria
+editor_free_text2_aria_label=Textový editor
+editor_ink2_aria_label=Editor kreslenia
+editor_ink_canvas_aria_label=Obrázok vytvorený používateľom
diff --git a/static/pdf.js/locale/skr/viewer.properties b/static/pdf.js/locale/skr/viewer.properties
new file mode 100644
index 000000000..a66a271cd
--- /dev/null
+++ b/static/pdf.js/locale/skr/viewer.properties
@@ -0,0 +1,264 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=پچھلا ورقہ
+previous_label=پچھلا
+next.title=اڳلا ورقہ
+next_label=اڳلا
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=ورقہ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} دا
+# 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_label=زوم آؤٹ
+zoom_in.title=زوم اِن
+zoom_in_label=زوم اِن
+zoom.title=زوم
+presentation_mode.title=پریزنٹیشن موڈ تے سوئچ کرو
+presentation_mode_label=پریزنٹیشن موڈ
+open_file.title=فائل کھولو
+open_file_label=کھولو
+print.title=چھاپو
+print_label=چھاپو
+save.title=ہتھیکڑا کرو
+save_label=ہتھیکڑا کرو
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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=موجودہ ورقہ (موجودہ ورقے کنوں یوآرایل ݙیکھو)
+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
+tools.title=اوزار
+tools_label=اوزار
+first_page.title=پہلے ورقے تے ونڄو
+first_page_label=پہلے ورقے تے ونڄو
+last_page.title=چھیکڑی ورقے تے ونڄو
+last_page_label=چھیکڑی ورقے تے ونڄو
+page_rotate_cw.title=گھڑی وانگوں گھماؤ
+page_rotate_cw_label=گھڑی وانگوں گھماؤ
+page_rotate_ccw.title=گھڑی تے اُپٹھ گھماؤ
+page_rotate_ccw_label=گھڑی تے اُپٹھ گھماؤ
+
+cursor_text_select_tool.title=متن منتخب کݨ والا آلہ فعال بݨاؤ
+cursor_text_select_tool_label=متن منتخب کرݨ والا آلہ
+cursor_hand_tool.title=ہینڈ ٹول فعال بݨاؤ
+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.title=دستاویز خواص…
+document_properties_label=دستاویز خواص …
+document_properties_file_name=فائل دا ناں:
+document_properties_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}} کے بی ({{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}} ایم بی ({{size_b}} بائٹس)
+document_properties_title=عنوان:
+document_properties_author=تخلیق کار:
+document_properties_subject=موضوع:
+document_properties_keywords=کلیدی الفاظ:
+document_properties_creation_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_creator=تخلیق کار:
+document_properties_producer=PDF پیدا کار:
+document_properties_version=PDF ورژن:
+document_properties_page_count=ورقہ شماری:
+document_properties_page_size=ورقہ دی سائز:
+document_properties_page_size_unit_inches=وِچ
+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=بند کرو
+
+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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=سائیڈ بار ٹوگل کرو
+toggle_sidebar_notification2.title=سائیڈ بار ٹوگل کرو (دستاویز وِچ آؤٹ لائن/ منسلکات/ پرتاں شامل ہن)
+toggle_sidebar_label=سائیڈ بار ٹوگل کرو
+document_outline.title=دستاویز دا خاکہ ݙکھاؤ (تمام آئٹمز کوں پھیلاوݨ/سنگوڑݨ کیتے ڈبل کلک کرو)
+document_outline_label=دستاویز آؤٹ لائن
+attachments.title=نتھیاں ݙکھاؤ
+attachments_label=منسلکات
+layers.title=پرتاں ݙکھاؤ (تمام پرتاں کوں ڈیفالٹ حالت وِچ دوبارہ ترتیب ݙیوݨ کیتے ڈبل کلک کرو)
+layers_label=پرتاں
+thumbs.title=تھمبنیل ݙکھاؤ
+thumbs_label=تھمبنیلز
+current_outline_item.title=موجودہ آؤٹ لائن آئٹم لبھو
+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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=ورقہ {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=ورقے دا تھمبنیل {{page}}
+
+# Find panel button title and messages
+find_input.title=لبھو
+find_input.placeholder=دستاویز وِچ لبھو …
+find_previous.title=فقرے دا پچھلا واقعہ لبھو
+find_previous_label=پچھلا
+find_next.title=فقرے دا اڳلا واقعہ لبھو
+find_next_label=اڳلا
+find_highlight=تمام نشابر کرو
+find_match_case_label=حروف مشابہ کرو
+find_match_diacritics_label=ڈائیکرٹکس مشابہ کرو
+find_entire_word_label=تمام الفاظ
+find_reached_top=ورقے دے شروع تے پُج ڳیا، تلوں جاری کیتا ڳیا
+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={[ جمع (کل) ]}
+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={[ جمع (حد) ]}
+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=فقرہ نئیں ملیا
+
+# Predefined zoom values
+page_scale_width=ورقے دی چوڑائی
+page_scale_fit=ورقہ فٹنگ
+page_scale_auto=آپوں آپ زوم
+page_scale_actual=اصل میچا
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=PDF لوڈ کریندے ویلھے نقص آ ڳیا۔
+invalid_file_error=غلط یا خراب شدہ PDF فائل۔
+missing_file_error=PDF فائل غائب ہے۔
+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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} تشریح]
+password_label=ایہ PDF فائل کھولݨ کیتے پاس ورڈ درج کرو۔
+password_invalid=غلط پاس ورڈ: براہ مہربانی ولدا کوشش کرو۔
+password_ok=ٹھیک ہے
+password_cancel=منسوخ کرو
+
+printing_not_supported=چتاوݨی: چھپائی ایں براؤزر تے پوری طراں معاونت شدہ کائنی۔
+printing_not_ready=چتاوݨی: PDF چھپائی کیتے پوری طراں لوڈ نئیں تھئی۔
+web_fonts_disabled=ویب فونٹس غیر فعال ہن: ایمبیڈڈ PDF فونٹس استعمال کرݨ کنوں قاصر ہن
+
+# Editor
+editor_free_text2.title=متن
+editor_free_text2_label=متن
+editor_ink2.title=چھکو
+editor_ink2_label=چھکو
+
+editor_stamp.title=ہک تصویر شامل کرو
+editor_stamp_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 aria
+editor_free_text2_aria_label=ٹیکسٹ ایڈیٹر
+editor_ink2_aria_label=ڈرا ایڈیٹر
+editor_ink_canvas_aria_label=صارف دی بݨائی ہوئی تصویر
diff --git a/static/pdf.js/locale/sl/viewer.properties b/static/pdf.js/locale/sl/viewer.properties
index e4483f068..29254c12c 100644
--- a/static/pdf.js/locale/sl/viewer.properties
+++ b/static/pdf.js/locale/sl/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Nazaj
next.title=Naslednja stran
next_label=Naprej
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Stran:
-page_of=od {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Stran
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=od {{pagesCount}}
+# 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}} od {{pagesCount}})
zoom_out.title=Pomanjšaj
zoom_out_label=Pomanjšaj
@@ -36,31 +39,52 @@ open_file.title=Odpri datoteko
open_file_label=Odpri
print.title=Natisni
print_label=Natisni
-download.title=Prenesi
-download_label=Prenesi
-bookmark.title=Trenutni pogled (kopiraj ali odpri v novem oknu)
-bookmark_label=Trenutni pogled
+save.title=Shrani
+save_label=Shrani
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Prenesi
+# 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=Prenesi
+bookmark1.title=Trenutna stran (prikaži URL, ki vodi do trenutne strani)
+bookmark1_label=Na trenutno stran
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Odpri v programu
+# 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=Odpri v programu
# Secondary toolbar and context menu
tools.title=Orodja
tools_label=Orodja
first_page.title=Pojdi na prvo stran
-first_page.label=Pojdi na prvo stran
first_page_label=Pojdi na prvo stran
last_page.title=Pojdi na zadnjo stran
-last_page.label=Pojdi na zadnjo stran
last_page_label=Pojdi na zadnjo stran
-page_rotate_cw.title=Zavrti v smeri urninega kazalca
-page_rotate_cw.label=Zavrti v smeri urninega kazalca
-page_rotate_cw_label=Zavrti v smeri urninega kazalca
-page_rotate_ccw.title=Zavrti v nasprotni smeri urninega kazalca
-page_rotate_ccw.label=Zavrti v nasprotni smeri urninega kazalca
-page_rotate_ccw_label=Zavrti v nasprotni smeri urninega kazalca
+page_rotate_cw.title=Zavrti v smeri urnega kazalca
+page_rotate_cw_label=Zavrti v smeri urnega kazalca
+page_rotate_ccw.title=Zavrti v nasprotni smeri urnega kazalca
+page_rotate_ccw_label=Zavrti v nasprotni smeri urnega kazalca
-hand_tool_enable.title=Omogoči roko
-hand_tool_enable_label=Omogoči roko
-hand_tool_disable.title=Onemogoči roko
-hand_tool_disable_label=Onemogoči roko
+cursor_text_select_tool.title=Omogoči orodje za izbor besedila
+cursor_text_select_tool_label=Orodje za izbor besedila
+cursor_hand_tool.title=Omogoči roko
+cursor_hand_tool_label=Roka
+
+scroll_page.title=Uporabi drsenje po strani
+scroll_page_label=Drsenje po strani
+scroll_vertical.title=Uporabi navpično drsenje
+scroll_vertical_label=Navpično drsenje
+scroll_horizontal.title=Uporabi vodoravno drsenje
+scroll_horizontal_label=Vodoravno drsenje
+scroll_wrapped.title=Uporabi ovito drsenje
+scroll_wrapped_label=Ovito drsenje
+
+spread_none.title=Ne združuj razponov strani
+spread_none_label=Brez razponov
+spread_odd.title=Združuj razpone strani z začetkom pri lihih straneh
+spread_odd_label=Lihi razponi
+spread_even.title=Združuj razpone strani z začetkom pri sodih straneh
+spread_even_label=Sodi razponi
# Document properties dialog box
document_properties.title=Lastnosti dokumenta …
@@ -86,22 +110,58 @@ document_properties_creator=Ustvaril:
document_properties_producer=Izdelovalec PDF:
document_properties_version=Različica PDF:
document_properties_page_count=Število strani:
+document_properties_page_size=Velikost strani:
+document_properties_page_size_unit_inches=palcev
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=pokončno
+document_properties_page_size_orientation_landscape=ležeče
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Pismo
+document_properties_page_size_name_legal=Pravno
+# 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=Hitri spletni ogled:
+document_properties_linearized_yes=Da
+document_properties_linearized_no=Ne
document_properties_close=Zapri
+print_progress_message=Priprava dokumenta na tiskanje …
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}} %
+print_progress_close=Prekliči
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Preklopi stransko vrstico
+toggle_sidebar_notification2.title=Preklopi stransko vrstico (dokument vsebuje oris/priponke/plasti)
toggle_sidebar_label=Preklopi stransko vrstico
-outline.title=Prikaži oris dokumenta
-outline_label=Oris dokumenta
+document_outline.title=Prikaži oris dokumenta (dvokliknite za razširitev/strnitev vseh predmetov)
+document_outline_label=Oris dokumenta
attachments.title=Prikaži priponke
attachments_label=Priponke
+layers.title=Prikaži plasti (dvokliknite za ponastavitev vseh plasti na privzeto stanje)
+layers_label=Plasti
thumbs.title=Prikaži sličice
thumbs_label=Sličice
+current_outline_item.title=Najdi trenutni predmet orisa
+current_outline_item_label=Trenutni predmet orisa
findbar.title=Iskanje po dokumentu
-findbar_label=Iskanje
+findbar_label=Najdi
+additional_layers=Dodatne plasti
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Stran {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Stran {{page}}
thumb_page_canvas=Sličica strani {{page}}
# Find panel button title and messages
-find_label=Najdi:
+find_input.title=Najdi
+find_input.placeholder=Najdi v dokumentu …
find_previous.title=Najdi prejšnjo ponovitev iskanega
find_previous_label=Najdi nazaj
find_next.title=Najdi naslednjo ponovitev iskanega
find_next_label=Najdi naprej
find_highlight=Označi vse
find_match_case_label=Razlikuj velike/male črke
+find_match_diacritics_label=Razlikuj diakritične znake
+find_entire_word_label=Cele besede
find_reached_top=Dosežen začetek dokumenta iz smeri konca
find_reached_bottom=Doseženo konec dokumenta iz smeri začetka
+# 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]=Zadetek {{current}} od {{total}}
+find_match_count[two]=Zadetek {{current}} od {{total}}
+find_match_count[few]=Zadetek {{current}} od {{total}}
+find_match_count[many]=Zadetek {{current}} od {{total}}
+find_match_count[other]=Zadetek {{current}} od {{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]=Več kot {{limit}} zadetkov
+find_match_count_limit[one]=Več kot {{limit}} zadetek
+find_match_count_limit[two]=Več kot {{limit}} zadetka
+find_match_count_limit[few]=Več kot {{limit}} zadetki
+find_match_count_limit[many]=Več kot {{limit}} zadetkov
+find_match_count_limit[other]=Več kot {{limit}} zadetkov
find_not_found=Iskanega ni mogoče najti
-# Error panel labels
-error_more_info=Več informacij
-error_less_info=Manj informacij
-error_close=Zapri
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-error_version_info=PDF.js r{{version}} (graditev: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Sporočilo: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Sklad: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Datoteka: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Vrstica: {{line}}
-rendering_error=Med pripravljanjem strani je prišlo do napake!
-
# Predefined zoom values
page_scale_width=Širina strani
page_scale_fit=Prilagodi stran
@@ -151,11 +216,15 @@ page_scale_actual=Dejanska velikost
page_scale_percent={{scale}} %
# Loading indicator messages
-loading_error_indicator=Napaka
loading_error=Med nalaganjem datoteke PDF je prišlo do napake.
invalid_file_error=Neveljavna ali pokvarjena datoteka PDF.
missing_file_error=Ni datoteke PDF.
unexpected_response_error=Nepričakovan odgovor strežnika.
+rendering_error=Med pripravljanjem strani je prišlo do napake!
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,46 @@ password_cancel=Prekliči
printing_not_supported=Opozorilo: ta brskalnik ne podpira vseh možnosti tiskanja.
printing_not_ready=Opozorilo: PDF ni v celoti naložen za tiskanje.
web_fonts_disabled=Spletne pisave so onemogočene: vgradnih pisav za PDF ni mogoče uporabiti.
-document_colors_not_allowed=Dokumenti PDF ne smejo uporabljati svojih lastnih barv: možnost 'Dovoli stranem uporabo lastnih barv' je v brskalniku onemogočena.
+
+# Editor
+editor_free_text2.title=Besedilo
+editor_free_text2_label=Besedilo
+editor_ink2.title=Riši
+editor_ink2_label=Riši
+
+editor_stamp1.title=Dodajanje ali urejanje slik
+editor_stamp1_label=Dodajanje ali urejanje slik
+
+free_text2_default_content=Začnite tipkati …
+
+# Editor Parameters
+editor_free_text_color=Barva
+editor_free_text_size=Velikost
+editor_ink_color=Barva
+editor_ink_thickness=Debelina
+editor_ink_opacity=Neprosojnost
+
+editor_stamp_add_image_label=Dodaj sliko
+editor_stamp_add_image.title=Dodaj sliko
+
+# Editor aria
+editor_free_text2_aria_label=Urejevalnik besedila
+editor_ink2_aria_label=Urejevalnik risanja
+editor_ink_canvas_aria_label=Uporabnikova slika
+
+# 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=Nadomestno besedilo
+editor_alt_text_edit_button_label=Uredi nadomestno besedilo
+editor_alt_text_dialog_label=Izberite možnost
+editor_alt_text_dialog_description=Nadomestno besedilo se prikaže tistim, ki ne vidijo slike, ali če se ta ne naloži.
+editor_alt_text_add_description_label=Dodaj opis
+editor_alt_text_add_description_description=Poskušajte v enem ali dveh stavkih opisati motiv, okolje ali dejanja.
+editor_alt_text_mark_decorative_label=Označi kot okrasno
+editor_alt_text_mark_decorative_description=Uporablja se za slike, ki služijo samo okrasu, na primer obrobe ali vodne žige.
+editor_alt_text_cancel_button=Prekliči
+editor_alt_text_save_button=Shrani
+editor_alt_text_decorative_tooltip=Označeno kot okrasno
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Na primer: "Mladenič sedi za mizo pri jedi"
diff --git a/static/pdf.js/locale/son/viewer.properties b/static/pdf.js/locale/son/viewer.properties
index c7742e407..cd9f5294c 100644
--- a/static/pdf.js/locale/son/viewer.properties
+++ b/static/pdf.js/locale/son/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Bisante
next.title=Jinehere moo
next_label=Jine
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=&Moo:
-page_of={{pageCount}} ga
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Moo
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} ra
+# 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}} ka hun {{pagesCount}}) ra
zoom_out.title=Nakasandi
zoom_out_label=Nakasandi
@@ -36,31 +39,19 @@ open_file.title=Tuku feeri
open_file_label=Feeri
print.title=Kar
print_label=Kar
-download.title=Zumandi
-download_label=Zumandi
-bookmark.title=Sohõ gunarro (bere wala feeri zanfun taaga ra)
-bookmark_label=Sohõ gunaroo
# Secondary toolbar and context menu
tools.title=Goyjinawey
tools_label=Goyjinawey
first_page.title=Koy moo jinaa ga
-first_page.label=Koy moo jinaa ga
first_page_label=Koy moo jinaa ga
last_page.title=Koy moo koraa ga
-last_page.label=Koy moo koraa ga
last_page_label=Koy moo koraa ga
page_rotate_cw.title=Kuubi kanbe guma here
-page_rotate_cw.label=Kuubi kanbe guma here
page_rotate_cw_label=Kuubi kanbe guma here
page_rotate_ccw.title=Kuubi kanbe wowa here
-page_rotate_ccw.label=Kuubi kanbe wowa here
page_rotate_ccw_label=Kuubi kanbe wowa here
-hand_tool_enable.title=Kanbe goyjinay tunandi
-hand_tool_enable_label=Kanbe goyjinay tunandi
-hand_tool_disable.title=Kanbe joyjinay kaa
-hand_tool_disable_label=Kanbe goyjinay kaa
# Document properties dialog box
document_properties.title=Takadda mayrawey…
@@ -88,13 +79,19 @@ document_properties_version=PDF dumi:
document_properties_page_count=Moo hinna:
document_properties_close=Daabu
+print_progress_message=Goo ma takaddaa soolu k'a kar se…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Naŋ
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Kanjari ceraw zuu
toggle_sidebar_label=Kanjari ceraw zuu
-outline.title=Takadda filla-boŋ cebe
-outline_label=Takadda filla-boŋ
+document_outline.title=Takaddaa korfur alhaaloo cebe (naagu cee hinka ka haya-izey kul hayandi/kankamandi)
+document_outline_label=Takadda filla-boŋ
attachments.title=Hangarey cebe
attachments_label=Hangarey
thumbs.title=Kabeboy biyey cebe
@@ -111,7 +108,8 @@ thumb_page_title={{page}} moo
thumb_page_canvas=Kabeboy bii {{page}} moo še
# Find panel button title and messages
-find_label=Ceeci:
+find_input.title=Ceeci
+find_input.placeholder=Ceeci takaddaa ra…
find_previous.title=Kalimaɲaŋoo bangayri bisantaa ceeci
find_previous_label=Bisante
find_next.title=Kalimaɲaŋoo hiino bangayroo ceeci
@@ -122,25 +120,6 @@ find_reached_top=A too moŋoo boŋoo, koy jine ka šinitin nda cewoo
find_reached_bottom=A too moɲoo cewoo, koy jine šintioo ga
find_not_found=Kalimaɲaa mana duwandi
-# Error panel labels
-error_more_info=Alhabar tontoni
-error_less_info=Alhabar tontoni
-error_close=Daabu
-# 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=Alhabar: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Dekeri: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Tuku: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Žeeri: {{line}}
-rendering_error=Firka bangay kaŋ moɲoo goo ma willandi.
-
# Predefined zoom values
page_scale_width=Mooo hayyan
page_scale_fit=Moo sawayan
@@ -150,13 +129,13 @@ page_scale_actual=Adadu cimi
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Firka
loading_error=Firka bangay kaŋ PDF goo ma zumandi.
invalid_file_error=PDF tuku laala wala laybante.
missing_file_error=PDF tuku kumante.
unexpected_response_error=Manti feršikaw tuuruyan maatante.
+rendering_error=Firka bangay kaŋ moɲoo goo ma willandi.
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +149,4 @@ password_cancel=Naŋ
printing_not_supported=Yaamar: Karyan ši tee ka timme nda ceecikaa woo.
printing_not_ready=Yaamar: PDF ši zunbu ka timme karyan še.
web_fonts_disabled=Interneti šigirawey kay: ši hin ka goy nda PDF šigira hurantey.
-document_colors_not_allowed=PDF takaddawey ši duu fondo ka ngey boŋ noonawey zaa: 'Naŋ moɲey ma ngey boŋ noonawey suuba' ši dira ceecikaa ga.
+
diff --git a/static/pdf.js/locale/sq/viewer.properties b/static/pdf.js/locale/sq/viewer.properties
index 0f883051d..51aa9150f 100644
--- a/static/pdf.js/locale/sq/viewer.properties
+++ b/static/pdf.js/locale/sq/viewer.properties
@@ -1,6 +1,16 @@
-# 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/.
+# 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.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Faqja e Mëparshme
@@ -8,56 +18,70 @@ previous_label=E mëparshmja
next.title=Faqja Pasuese
next_label=Pasuesja
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Faqja:
-page_of=nga {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Faqe
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=nga {{pagesCount}} gjithsej
+# 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}} nga {{pagesCount}})
-zoom_out.title=Zmadhim
-zoom_out_label=Zmadhoji
-zoom_in.title=Zvogëlim
-zoom_in_label=Zvogëloji
-zoom.title=Zoom
-print.title=Shtypje
-print_label=Shtypeni
+zoom_out.title=Zvogëlojeni
+zoom_out_label=Zvogëlojeni
+zoom_in.title=Zmadhojeni
+zoom_in_label=Zmadhojini
+zoom.title=Zmadhim/Zvogëlim
presentation_mode.title=Kalo te Mënyra Paraqitje
presentation_mode_label=Mënyra Paraqitje
open_file.title=Hapni Kartelë
-open_file_label=Hapeni
-download.title=Shkarkim
-download_label=Shkarkojeni
-bookmark.title=Pamja e tanishme (kopjojeni ose hapeni në dritare të re)
-bookmark_label=Pamja e Tanishme
+open_file_label=Hape
+print.title=Shtypje
+print_label=Shtype
+save.title=Ruaje
+save_label=Ruaje
+
+bookmark1.title=Faqja e Tanishme (Shihni URL nga Faqja e Tanishme)
+bookmark1_label=Faqja e Tanishme
# Secondary toolbar and context menu
tools.title=Mjete
tools_label=Mjete
-first_page.title=Shkoni te Faqja e Parë
-first_page.label=Shkoni te Faqja e Parë
-first_page_label=Shkoni te Faqja e Parë
-last_page.title=Shkoni te Faqja e Fundit
-last_page.label=Shkoni te Faqja e Fundit
-last_page_label=Shkoni te Faqja e Fundit
+first_page.title=Kaloni te Faqja e Parë
+first_page_label=Kaloni te Faqja e Parë
+last_page.title=Kaloni te Faqja e Fundit
+last_page_label=Kaloni te Faqja e Fundit
page_rotate_cw.title=Rrotullojeni Në Kahun Orar
-page_rotate_cw.label=Rrotullojeni Në Kahun Orar
-page_rotate_cw_label=Rrotullojeni Në Kahun Orar
+page_rotate_cw_label=Rrotulloje Në Kahun Orar
page_rotate_ccw.title=Rrotullojeni Në Kahun Kundërorar
-page_rotate_ccw.label=Rrotullojeni Në Kahun Kundërorar
-page_rotate_ccw_label=Rrotullojeni Në Kahun Kundërorar
+page_rotate_ccw_label=Rrotulloje Në Kahun Kundërorar
+
+cursor_text_select_tool.title=Aktivizo Mjet Përzgjedhjeje Teksti
+cursor_text_select_tool_label=Mjet Përzgjedhjeje Teksti
+cursor_hand_tool.title=Aktivizo Mjetin Dorë
+cursor_hand_tool_label=Mjeti Dorë
+
+scroll_page.title=Përdor Rrëshqitje Në Faqe
+scroll_page_label=Rrëshqitje Në Faqe
+scroll_vertical.title=Përdor Rrëshqitje Vertikale
+scroll_vertical_label=Rrëshqitje Vertikale
+scroll_horizontal.title=Përdor Rrëshqitje Horizontale
+scroll_horizontal_label=Rrëshqitje Horizontale
+scroll_wrapped.title=Përdor Rrëshqitje Me Mbështjellje
+scroll_wrapped_label=Rrëshqitje Me Mbështjellje
-hand_tool_enable.title=Aktivizoni mjet dore
-hand_tool_enable_label=Aktivizoni mjet dore
-hand_tool_disable.title=Çaktivizoni mjet dore
-hand_tool_disable_label=Çaktivizoni mjet dore
# Document properties dialog box
document_properties.title=Veti Dokumenti…
document_properties_label=Veti Dokumenti…
document_properties_file_name=Emër kartele:
document_properties_file_size=Madhësi kartele:
+# 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}} bajte)
+# 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}} bajte)
document_properties_title=Titull:
document_properties_author=Autor:
@@ -65,28 +89,65 @@ document_properties_subject=Subjekt:
document_properties_keywords=Fjalëkyçe:
document_properties_creation_date=Datë Krijimi:
document_properties_modification_date=Datë Ndryshimi:
+# 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=Krijues:
document_properties_producer=Prodhues PDF-je:
document_properties_version=Version PDF-je:
document_properties_page_count=Numër Faqesh:
-document_properties_close=Mbylle
+document_properties_page_size=Madhësi Faqeje:
+document_properties_page_size_unit_inches=inç
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=portret
+document_properties_page_size_orientation_landscape=së gjeri
+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=Parje e Shpjetë në Web:
+document_properties_linearized_yes=Po
+document_properties_linearized_no=Jo
+document_properties_close=Mbylleni
+print_progress_message=Po përgatitet dokumenti për shtypje…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Anuloje
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Shfaqni/Fshihni Anështyllën
-toggle_sidebar_label=Shfaqni/Fshihni Anështyllën
-outline.title=Shfaq Përvijim Dokumenti
-outline_label=Shfaq Përvijim Dokumenti
-attachments.title=Shfaq Bashkëngjitje
+toggle_sidebar_notification2.title=Hap/Mbyll Anështylë (dokumenti përmban përvijim/nashkëngjitje/shtresa)
+toggle_sidebar_label=Shfaq/Fshih Anështyllën
+document_outline.title=Shfaqni Përvijim Dokumenti (dyklikoni që të shfaqen/fshihen krejt elementët)
+document_outline_label=Përvijim Dokumenti
+attachments.title=Shfaqni Bashkëngjitje
attachments_label=Bashkëngjitje
-thumbs.title=Shfaq Miniatura
+layers.title=Shfaq Shtresa (dyklikoni që të rikthehen krejt shtresat në gjendjen e tyre parazgjedhje)
+layers_label=Shtresa
+thumbs.title=Shfaqni Miniatura
thumbs_label=Miniatura
-findbar.title=Gjej në Dokument
+current_outline_item.title=Gjej Objektin e Tanishëm të Përvijuar
+current_outline_item_label=Objekt i Tanishëm i Përvijuar
+findbar.title=Gjeni në Dokument
findbar_label=Gjej
+additional_layers=Shtresa Shtesë
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Faqja {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -95,42 +156,41 @@ thumb_page_title=Faqja {{page}}
# number.
thumb_page_canvas=Miniaturë e Faqes {{page}}
-# Context menu
-first_page.label=Kalo te Faqja e Parë
-last_page.label=Kalo te Faqja e Fundit
-page_rotate_cw.label=Rrotulloje Në Kahun Orar
-page_rotate_ccw.label=Rrotulloje Në Kahun Antiorar
-
# Find panel button title and messages
-find_label=Gjej:
+find_input.title=Gjej
+find_input.placeholder=Gjeni në dokument…
find_previous.title=Gjeni hasjen e mëparshme të togfjalëshit
find_previous_label=E mëparshmja
find_next.title=Gjeni hasjen pasuese të togfjalëshit
find_next_label=Pasuesja
-find_highlight=Theksoji të gjitha
-find_match_case_label=Siç është shkruar
+find_highlight=Theksoji të tëra
+find_match_case_label=Siç Është Shkruar
+find_match_diacritics_label=Me Përputhje Me Shenjat Diakritike
+find_entire_word_label=Fjalë të Plota
find_reached_top=U mbërrit në krye të dokumentit, vazhduar prej fundit
find_reached_bottom=U mbërrit në fund të dokumentit, vazhduar prej kreut
-find_not_found=Nuk u gjet togfjalëshi
-
-# Error panel labels
-error_more_info=Më Tepër të Dhëna
-error_less_info=Më Pak të Dhëna
-error_close=Mbylle
-# 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=Mesazh: {{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=Kartelë: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Rresht: {{line}}
-rendering_error=Ndodhi një gabim gjatë riprodhimit të faqes.
+# 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}} nga {{total}} përputhje gjithsej
+find_match_count[two]={{current}} nga {{total}} përputhje gjithsej
+find_match_count[few]={{current}} nga {{total}} përputhje gjithsej
+find_match_count[many]={{current}} nga {{total}} përputhje gjithsej
+find_match_count[other]={{current}} nga {{total}} përputhje gjithsej
+# 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]=Më shumë se {{limit}} përputhje
+find_match_count_limit[one]=Më shumë se {{limit}} përputhje
+find_match_count_limit[two]=Më shumë se {{limit}} përputhje
+find_match_count_limit[few]=Më shumë se {{limit}} përputhje
+find_match_count_limit[many]=Më shumë se {{limit}} përputhje
+find_match_count_limit[other]=Më shumë se {{limit}} përputhje
+find_not_found=Togfjalësh që s’gjendet
# Predefined zoom values
page_scale_width=Gjerësi Faqeje
@@ -141,14 +201,17 @@ page_scale_actual=Madhësia Faktike
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-# LOCALIZATION NOTE (error_line): "{{[percent}}" will be replaced with a percentage
-loading_error_indicator=Gabim
loading_error=Ndodhi një gabim gjatë ngarkimit të PDF-së.
invalid_file_error=Kartelë PDF e pavlefshme ose e dëmtuar.
missing_file_error=Kartelë PDF që mungon.
unexpected_response_error=Përgjigje shërbyesi e papritur.
+rendering_error=Ndodhi një gabim gjatë riprodhimit të faqes.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -159,8 +222,26 @@ password_invalid=Fjalëkalim i pavlefshëm. Ju lutemi, riprovoni.
password_ok=OK
password_cancel=Anuloje
-printing_not_supported=Kujdes: Shtypja nuk mbulohet plotësisht nga ky shfletues.
-printing_not_ready=Kujdes: PDF-ja nuk është ngarkuar plotësisht që ta shtypni.
-web_fonts_disabled=Shkronjat Web janë të çaktivizuara: i pazoti të përdorë shkronja të trupëzuara në PDF.
+printing_not_supported=Kujdes: Shtypja s’mbulohet plotësisht nga ky shfletues.
+printing_not_ready=Kujdes: PDF-ja s’është ngarkuar plotësisht që ta shtypni.
+web_fonts_disabled=Shkronjat Web janë të çaktivizuara: s’arrihet të përdoren shkronja të trupëzuara në PDF.
-document_colors_not_allowed=Dokumenteve PDF s’u lejohet të përdorin ngjyrat e tyre: 'Lejoji faqet t'i zgjedhin vetë ngjyrat' është e çaktivizuar te shfletuesi.
+# Editor
+editor_free_text2.title=Tekst
+editor_free_text2_label=Tekst
+editor_ink2.title=Vizatoni
+editor_ink2_label=Vizatoni
+
+free_text2_default_content=Filloni të shtypni…
+
+# Editor Parameters
+editor_free_text_color=Ngjyrë
+editor_free_text_size=Madhësi
+editor_ink_color=Ngjyrë
+editor_ink_thickness=Trashësi
+editor_ink_opacity=Patejdukshmëri
+
+# Editor aria
+editor_free_text2_aria_label=Përpunues Tekstesh
+editor_ink2_aria_label=Përpunues Vizatimesh
+editor_ink_canvas_aria_label=Figurë e krijuar nga përdoruesi
diff --git a/static/pdf.js/locale/sr/viewer.properties b/static/pdf.js/locale/sr/viewer.properties
index bff06ca1d..6fcfcbf44 100644
--- a/static/pdf.js/locale/sr/viewer.properties
+++ b/static/pdf.js/locale/sr/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Претходна
next.title=Следећа страница
next_label=Следећа
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Страница:
-page_of=од {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Страница
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=од {{pagesCount}}
+# 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_label=Умањи
@@ -36,31 +39,49 @@ open_file.title=Отвори датотеку
open_file_label=Отвори
print.title=Штампај
print_label=Штампај
-download.title=Преузми
-download_label=Преузми
-bookmark.title=Тренутни приказ (копирај или отвори нови прозор)
-bookmark_label=Тренутни приказ
+
+save.title=Сачувај
+save_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
tools.title=Алатке
tools_label=Алатке
first_page.title=Иди на прву страницу
-first_page.label=Иди на прву страницу
first_page_label=Иди на прву страницу
last_page.title=Иди на последњу страницу
-last_page.label=Иди на последњу страницу
last_page_label=Иди на последњу страницу
page_rotate_cw.title=Ротирај у смеру казаљке на сату
-page_rotate_cw.label=Ротирај у смеру казаљке на сату
page_rotate_cw_label=Ротирај у смеру казаљке на сату
page_rotate_ccw.title=Ротирај у смеру супротном од казаљке на сату
-page_rotate_ccw.label=Ротирај у смеру супротном од казаљке на сату
page_rotate_ccw_label=Ротирај у смеру супротном од казаљке на сату
-hand_tool_enable.title=Омогући алатку за померање
-hand_tool_enable_label=Омогући алатку за померање
-hand_tool_disable.title=Онемогући алатку за померање
-hand_tool_disable_label=Онемогући алатку за померање
+cursor_text_select_tool.title=Омогући алат за селектовање текста
+cursor_text_select_tool_label=Алат за селектовање текста
+cursor_hand_tool.title=Омогући алат за померање
+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.title=Параметри документа…
@@ -86,22 +107,58 @@ document_properties_creator=Стваралац:
document_properties_producer=PDF произвођач:
document_properties_version=PDF верзија:
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=А3
+document_properties_page_size_name_a4=А4
+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=Затвори
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Прикажи додатну палету
+toggle_sidebar_notification2.title=Прикажи/сакриј бочну траку (документ садржи контуру/прилоге/слојеве)
toggle_sidebar_label=Прикажи додатну палету
-outline.title=Прикажи контуру документа
-outline_label=Контура документа
+document_outline.title=Прикажи структуру документа (двоструким кликом проширујете/скупљате све ставке)
+document_outline_label=Контура документа
attachments.title=Прикажи прилоге
attachments_label=Прилози
+layers.title=Прикажи слојеве (дупли клик за враћање свих слојева у подразумевано стање)
+layers_label=Слојеви
thumbs.title=Прикажи сличице
thumbs_label=Сличице
+current_outline_item.title=Пронађите тренутни елемент структуре
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +168,41 @@ thumb_page_title=Страница {{page}}
thumb_page_canvas=Сличица од странице {{page}}
# Find panel button title and messages
-find_label=Пронађи:
-find_previous.title=Пронађи претходну појаву фразе
+find_input.title=Пронађи
+find_input.placeholder=Пронађи у документу…
+find_previous.title=Пронађи претходно појављивање фразе
find_previous_label=Претходна
-find_next.title=Пронађи следећу појаву фразе
+find_next.title=Пронађи следеће појављивање фразе
find_next_label=Следећа
find_highlight=Истакнути све
find_match_case_label=Подударања
+find_match_diacritics_label=Дијакритика
+find_entire_word_label=Целе речи
find_reached_top=Достигнут врх документа, наставио са дна
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=Фраза није пронађена
-# 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
page_scale_width=Ширина странице
page_scale_fit=Прилагоди страницу
@@ -151,12 +213,17 @@ page_scale_actual=Стварна величина
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Грешка
loading_error=Дошло је до грешке приликом учитавања PDF-а.
-invalid_file_error=PDF датотека је оштећена или је неисправна.
-missing_file_error=PDF датотека није пронађена.
+invalid_file_error=PDF датотека је неважећа или је оштећена.
+missing_file_error=Недостаје PDF датотека.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +237,23 @@ password_cancel=Откажи
printing_not_supported=Упозорење: Штампање није у потпуности подржано у овом прегледачу.
printing_not_ready=Упозорење: 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=Цртај
+
+free_text2_default_content=Почни куцање…
+
+# Editor Parameters
+editor_free_text_color=Боја
+editor_free_text_size=Величина
+editor_ink_color=Боја
+editor_ink_thickness=Дебљина
+editor_ink_opacity=Опацитет
+
+# Editor aria
+editor_free_text2_aria_label=Уређивач текста
+editor_ink2_aria_label=Уређивач цртежа
+editor_ink_canvas_aria_label=Кориснички направљена слика
diff --git a/static/pdf.js/locale/sv-SE/viewer.properties b/static/pdf.js/locale/sv-SE/viewer.properties
index 97be61df2..a15d2b68e 100644
--- a/static/pdf.js/locale/sv-SE/viewer.properties
+++ b/static/pdf.js/locale/sv-SE/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Föregående
next.title=Nästa sida
next_label=Nästa
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Sida:
-page_of=av {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Sida
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=av {{pagesCount}}
+# 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}} av {{pagesCount}})
zoom_out.title=Zooma ut
zoom_out_label=Zooma ut
@@ -36,31 +39,52 @@ open_file.title=Öppna fil
open_file_label=Öppna
print.title=Skriv ut
print_label=Skriv ut
-download.title=Hämta
-download_label=Hämta
-bookmark.title=Aktuell vy (kopiera eller öppna i nytt fönster)
-bookmark_label=Aktuell vy
+save.title=Spara
+save_label=Spara
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Hämta
+# 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=Hämta
+bookmark1.title=Aktuell sida (Visa URL från aktuell sida)
+bookmark1_label=Aktuell sida
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Öppna i 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=Öppna i app
# Secondary toolbar and context menu
tools.title=Verktyg
tools_label=Verktyg
first_page.title=Gå till första sidan
-first_page.label=Gå till första sidan
first_page_label=Gå till första sidan
last_page.title=Gå till sista sidan
-last_page.label=Gå till sista sidan
last_page_label=Gå till sista sidan
page_rotate_cw.title=Rotera medurs
-page_rotate_cw.label=Rotera medurs
page_rotate_cw_label=Rotera medurs
page_rotate_ccw.title=Rotera moturs
-page_rotate_ccw.label=Rotera moturs
page_rotate_ccw_label=Rotera moturs
-hand_tool_enable.title=Aktivera handverktyg
-hand_tool_enable_label=Aktivera handverktyg
-hand_tool_disable.title=Inaktivera handverktyg
-hand_tool_disable_label=Inaktivera handverktyg
+cursor_text_select_tool.title=Aktivera textmarkeringsverktyg
+cursor_text_select_tool_label=Textmarkeringsverktyg
+cursor_hand_tool.title=Aktivera handverktyg
+cursor_hand_tool_label=Handverktyg
+
+scroll_page.title=Använd sidrullning
+scroll_page_label=Sidrullning
+scroll_vertical.title=Använd vertikal rullning
+scroll_vertical_label=Vertikal rullning
+scroll_horizontal.title=Använd horisontell rullning
+scroll_horizontal_label=Horisontell rullning
+scroll_wrapped.title=Använd överlappande rullning
+scroll_wrapped_label=Överlappande rullning
+
+spread_none.title=Visa enkelsidor
+spread_none_label=Enkelsidor
+spread_odd.title=Visa uppslag med olika sidnummer till vänster
+spread_odd_label=Uppslag med framsida
+spread_even.title=Visa uppslag med lika sidnummer till vänster
+spread_even_label=Uppslag utan framsida
# Document properties dialog box
document_properties.title=Dokumentegenskaper…
@@ -86,22 +110,58 @@ document_properties_creator=Skapare:
document_properties_producer=PDF-producent:
document_properties_version=PDF-version:
document_properties_page_count=Sidantal:
+document_properties_page_size=Pappersstorlek:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=porträtt
+document_properties_page_size_orientation_landscape=landskap
+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=Snabb webbvisning:
+document_properties_linearized_yes=Ja
+document_properties_linearized_no=Nej
document_properties_close=Stäng
+print_progress_message=Förbereder sidor för utskrift…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Avbryt
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Visa/dölj sidofält
+toggle_sidebar_notification2.title=Växla sidofält (dokumentet innehåller dokumentstruktur/bilagor/lager)
toggle_sidebar_label=Visa/dölj sidofält
-outline.title=Visa dokumentöversikt
-outline_label=Dokumentöversikt
+document_outline.title=Visa dokumentdisposition (dubbelklicka för att expandera/komprimera alla objekt)
+document_outline_label=Dokumentöversikt
attachments.title=Visa Bilagor
attachments_label=Bilagor
+layers.title=Visa lager (dubbelklicka för att återställa alla lager till standardläge)
+layers_label=Lager
thumbs.title=Visa miniatyrer
thumbs_label=Miniatyrer
+current_outline_item.title=Hitta aktuellt dispositionsobjekt
+current_outline_item_label=Aktuellt dispositionsobjekt
findbar.title=Sök i dokument
findbar_label=Sök
+additional_layers=Ytterligare lager
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Sida {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Sida {{page}}
thumb_page_canvas=Miniatyr av sida {{page}}
# Find panel button title and messages
-find_label=Sök:
+find_input.title=Sök
+find_input.placeholder=Sök i dokument…
find_previous.title=Hitta föregående förekomst av frasen
find_previous_label=Föregående
find_next.title=Hitta nästa förekomst av frasen
find_next_label=Nästa
find_highlight=Markera alla
find_match_case_label=Matcha versal/gemen
+find_match_diacritics_label=Matcha diakritiska tecken
+find_entire_word_label=Hela ord
find_reached_top=Nådde början av dokumentet, började från slutet
find_reached_bottom=Nådde slutet på dokumentet, började från början
+# 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}} av {{total}} träff
+find_match_count[two]={{current}} av {{total}} träffar
+find_match_count[few]={{current}} av {{total}} träffar
+find_match_count[many]={{current}} av {{total}} träffar
+find_match_count[other]={{current}} av {{total}} träffar
+# 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]=Mer än {{limit}} träffar
+find_match_count_limit[one]=Mer än {{limit}} träff
+find_match_count_limit[two]=Mer än {{limit}} träffar
+find_match_count_limit[few]=Mer än {{limit}} träffar
+find_match_count_limit[many]=Mer än {{limit}} träffar
+find_match_count_limit[other]=Mer än {{limit}} träffar
find_not_found=Frasen hittades inte
-# Error panel labels
-error_more_info=Mer information
-error_less_info=Mindre information
-error_close=Stäng
-# 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=Meddelande: {{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=Fil: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Rad: {{line}}
-rendering_error=Ett fel uppstod vid visning av sidan.
-
# Predefined zoom values
page_scale_width=Sidbredd
page_scale_fit=Anpassa sida
@@ -151,11 +216,15 @@ page_scale_actual=Verklig storlek
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Fel
loading_error=Ett fel uppstod vid laddning av PDF-filen.
invalid_file_error=Ogiltig eller korrupt PDF-fil.
missing_file_error=Saknad PDF-fil.
unexpected_response_error=Oväntat svar från servern.
+rendering_error=Ett fel uppstod vid visning av sidan.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,46 @@ password_cancel=Avbryt
printing_not_supported=Varning: Utskrifter stöds inte helt av den här webbläsaren.
printing_not_ready=Varning: PDF:en är inte klar för utskrift.
web_fonts_disabled=Webbtypsnitt är inaktiverade: kan inte använda inbäddade PDF-typsnitt.
-document_colors_not_allowed=PDF-dokument tillåts inte använda egna färger: 'Låt sidor använda egna färger' är inaktiverat i webbläsaren.
+
+# Editor
+editor_free_text2.title=Text
+editor_free_text2_label=Text
+editor_ink2.title=Rita
+editor_ink2_label=Rita
+
+editor_stamp1.title=Lägg till eller redigera bilder
+editor_stamp1_label=Lägg till eller redigera bilder
+
+free_text2_default_content=Börja skriva…
+
+# Editor Parameters
+editor_free_text_color=Färg
+editor_free_text_size=Storlek
+editor_ink_color=Färg
+editor_ink_thickness=Tjocklek
+editor_ink_opacity=Opacitet
+
+editor_stamp_add_image_label=Lägg till bild
+editor_stamp_add_image.title=Lägg till bild
+
+# Editor aria
+editor_free_text2_aria_label=Textredigerare
+editor_ink2_aria_label=Ritredigerare
+editor_ink_canvas_aria_label=Användarskapad bild
+
+# 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=Alternativ text
+editor_alt_text_edit_button_label=Redigera alternativ text
+editor_alt_text_dialog_label=Välj ett alternativ
+editor_alt_text_dialog_description=Alt text (alternativ text) hjälper till när människor inte kan se bilden eller när den inte laddas.
+editor_alt_text_add_description_label=Lägg till en beskrivning
+editor_alt_text_add_description_description=Sikta på 1-2 meningar som beskriver ämnet, miljön eller handlingen.
+editor_alt_text_mark_decorative_label=Markera som dekorativ
+editor_alt_text_mark_decorative_description=Detta används för dekorativa bilder, som kanter eller vattenstämplar.
+editor_alt_text_cancel_button=Avbryt
+editor_alt_text_save_button=Spara
+editor_alt_text_decorative_tooltip=Märkt som dekorativ
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Till exempel, "En ung man sätter sig vid ett bord för att äta en måltid"
diff --git a/static/pdf.js/locale/sv/viewer.properties b/static/pdf.js/locale/sv/viewer.properties
deleted file mode 100644
index 923128517..000000000
--- a/static/pdf.js/locale/sv/viewer.properties
+++ /dev/null
@@ -1,142 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Föregående sida
-previous_label=Föregående
-next.title=Nästa sida
-next_label=Nästa
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Sida:
-page_of=av {{pageCount}}
-
-zoom_out.title=Zooma ut
-zoom_out_label=Zooma ut
-zoom_in.title=Zooma in
-zoom_in_label=Zooma in
-zoom.title=Zooma
-presentation_mode.title=Presentationsläge
-presentation_mode_label=Presentationsläge
-open_file.title=Öppna fil
-open_file_label=Öppna
-print.title=Skriv ut
-print_label=Skriv ut
-download.title=Ladda ner
-download_label=Ladda ner
-bookmark.title=Aktuell vy (kopiera eller öppna i nytt fönster)
-bookmark_label=Aktuell vy
-
-# Secondary toolbar and context menu
-tools.title=Verktyg
-tools_label=Verktyg
-first_page.title=Gå till första sidan
-first_page.label=Gå till första sidan
-first_page_label=Gå till första sidan
-last_page.title=Gå till sista sidan
-last_page.label=Gå till sista sidan
-last_page_label=Gå till sista sidan
-page_rotate_cw.title=Rotera medurs
-page_rotate_cw.label=Rotera medurs
-page_rotate_cw_label=Rotera medurs
-page_rotate_ccw.title=Rotera moturs
-page_rotate_ccw.label=Rotera moturs
-page_rotate_ccw_label=Rotera moturs
-
-hand_tool_enable.title=Aktivera handverktyget
-hand_tool_enable_label=Aktivera handverktyget
-hand_tool_disable.title=Avaktivera handverktyget
-hand_tool_disable_label=Avaktivera handverktyget
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=Visa/Dölj sidopanel
-toggle_sidebar_label=Visa/Dölj sidopanel
-outline.title=Visa bokmärken
-outline_label=Bokmärken
-thumbs.title=Visa sidminiatyrer
-thumbs_label=Sidminiatyrer
-findbar.title=Sök i dokumentet
-findbar_label=Sök
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=Sida {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=Miniatyr av sida {{page}}
-
-# Find panel button title and messages
-find_label=Sök:
-find_previous.title=Hitta föregående förekomst av frasen
-find_previous_label=Föregående
-find_next.title=Hitta nästa förekomst av frasen
-find_next_label=Nästa
-find_highlight=Markera alla
-find_match_case_label=Matcha VERSALER/gemener
-find_reached_top=Kommit till början av dokumentet, börjat om
-find_reached_bottom=Kommit till slutet av dokumentet, börjat om
-find_not_found=Frasen hittades inte
-
-# Error panel labels
-error_more_info=Mer information
-error_less_info=Mindre information
-error_close=Stäng
-# 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}} (bygge: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Meddelande: {{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=Fil: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Rad: {{line}}
-rendering_error=Ett fel inträffade när sidan renderades.
-
-# Predefined zoom values
-page_scale_width=Sidbredd
-page_scale_fit=Helsida
-page_scale_auto=Automatisk zoom
-page_scale_actual=Faktisk storlek
-
-# Loading indicator messages
-loading_error_indicator=Fel
-loading_error=Ett fel inträffade när PDF-filen laddades.
-invalid_file_error=Ogiltig eller korrupt PDF-fil.
-missing_file_error=PDF-filen saknas.
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}}-anteckning]
-
-password_label=Ange lösenordet för att öppna PDF-filen.
-password_invalid=Felaktigt lösenord. Försök igen.
-password_ok=OK
-password_cancel=Avbryt
-
-printing_not_supported=Varning: Utskrifter stöds inte fullt ut av denna webbläsare.
-printing_not_ready=Varning: Hela PDF-filen måste laddas innan utskrift kan ske.
-web_fonts_disabled=Webbtypsnitt är inaktiverade: Typsnitt inbäddade i PDF-filer kan inte användas.
-document_colors_disabled=PDF-dokument kan inte använda egna färger: \'Låt sidor använda egna färger\' är inaktiverat i webbläsaren.
diff --git a/static/pdf.js/locale/sw/viewer.properties b/static/pdf.js/locale/sw/viewer.properties
deleted file mode 100644
index 7f0f1b8c4..000000000
--- a/static/pdf.js/locale/sw/viewer.properties
+++ /dev/null
@@ -1,129 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Ukurasa Uliotangulia
-previous_label=Iliyotangulia
-next.title=Ukurasa Ufuatao
-next_label=Ifuatayo
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Ukurasa:
-page_of=ya {{Hesabu ya ukurasa}}
-
-zoom_out.title=Kuza Nje
-zoom_out_label=Kuza Nje
-zoom_in.title=Kuza Ndani
-zoom_in_label=Kuza Ndani
-zoom.title=Kuza
-presentation_mode.title=Badili kwa Hali ya Uwasilishaji
-presentation_mode_label=Hali ya Uwasilishaji
-open_file.title=Fungua Faili
-open_file_label=Fungua
-print.title=Chapisha
-print_label=Chapisha
-download.title=Pakua
-download_label=Pakua
-bookmark.title=Mwonekano wa sasa (nakili au ufungue katika dirisha mpya)
-bookmark_label=Mwonekano wa Sasa
-
-# Secondary toolbar and context menu
-
-
-# Document properties dialog box
-# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
-# will be replaced by the PDF file size in kilobytes, respectively in 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_title=Kichwa:
-# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
-# will be replaced by the creation/modification date, and time, of the PDF file.
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=Kibiano cha Upau wa Kando
-toggle_sidebar_label=Kibiano cha Upau wa Kando
-outline.title=Onyesha Ufupisho wa Waraka
-outline_label=Ufupisho wa Waraka
-thumbs.title=Onyesha Kijipicha
-thumbs_label=Vijipicha
-findbar.title=Pata katika Waraka
-findbar_label=Tafuta
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=Ukurasa {{ukurasa}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=Kijipicha cha ukurasa {{ukurasa}}
-
-# Find panel button title and messages
-find_label=Tafuta:
-find_previous.title=Tafuta tukio kabla ya msemo huu
-find_previous_label=Iliyotangulia
-find_next.title=Tafuta tukio linalofuata la msemo
-find_next_label=Ifuatayo
-find_highlight=Angazia yote
-find_match_case_label=Linganisha herufi
-find_reached_top=Imefika juu ya waraka, imeendelea kutoka chini
-find_reached_bottom=Imefika mwisho wa waraka, imeendelea kutoka juu
-find_not_found=Msemo hukupatikana
-
-# Error panel labels
-error_more_info=Maelezo Zaidi
-error_less_info=Maelezo Kidogo
-# 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}} (jenga: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Ujumbe: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Panganya: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Faili: {{faili}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Laini: {{laini}}
-rendering_error=Hitilafu lilitokea wajati wa kutoa ukurasa
-
-# Predefined zoom values
-page_scale_width=Upana wa Ukurasa
-page_scale_fit=Usawa wa Ukurasa
-page_scale_auto=Ukuzaji wa Kiotomatiki
-page_scale_actual=Ukubwa Halisi
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-loading_error_indicator=Hitilafu
-loading_error=Hitilafu lilitokea wakati wa kupakia PDF.
-invalid_file_error=Faili ya PDF isiyohalali au potofu.
-missing_file_error=Faili ya PDF isiyopo.
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Ufafanuzi]
-password_ok=SAWA
-password_cancel=Ghairi
-
-printing_not_supported=Onyo: Uchapishaji hauauniwi kabisa kwa kivinjari hiki.
-web_fonts_disabled=Fonti za tovuti zimelemazwa: haziwezi kutumia fonti za PDF zilizopachikwa.
diff --git a/static/pdf.js/locale/szl/viewer.properties b/static/pdf.js/locale/szl/viewer.properties
new file mode 100644
index 000000000..ba0a898b3
--- /dev/null
+++ b/static/pdf.js/locale/szl/viewer.properties
@@ -0,0 +1,224 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Piyrwyjszo strōna
+previous_label=Piyrwyjszo
+next.title=Nastympno strōna
+next_label=Dalij
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Strōna
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=ze {{pagesCount}}
+# 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}} ze {{pagesCount}})
+
+zoom_out.title=Zmyńsz
+zoom_out_label=Zmyńsz
+zoom_in.title=Zwiynksz
+zoom_in_label=Zwiynksz
+zoom.title=Srogość
+presentation_mode.title=Przełōncz na tryb prezyntacyje
+presentation_mode_label=Tryb prezyntacyje
+open_file.title=Ôdewrzij zbiōr
+open_file_label=Ôdewrzij
+print.title=Durkuj
+print_label=Durkuj
+
+# Secondary toolbar and context menu
+tools.title=Noczynia
+tools_label=Noczynia
+first_page.title=Idź ku piyrszyj strōnie
+first_page_label=Idź ku piyrszyj strōnie
+last_page.title=Idź ku ôstatnij strōnie
+last_page_label=Idź ku ôstatnij strōnie
+page_rotate_cw.title=Zwyrtnij w prawo
+page_rotate_cw_label=Zwyrtnij w prawo
+page_rotate_ccw.title=Zwyrtnij w lewo
+page_rotate_ccw_label=Zwyrtnij w lewo
+
+cursor_text_select_tool.title=Załōncz noczynie ôbiyranio tekstu
+cursor_text_select_tool_label=Noczynie ôbiyranio tekstu
+cursor_hand_tool.title=Załōncz noczynie rōnczka
+cursor_hand_tool_label=Noczynie rōnczka
+
+scroll_vertical.title=Używej piōnowego przewijanio
+scroll_vertical_label=Piōnowe przewijanie
+scroll_horizontal.title=Używej poziōmego przewijanio
+scroll_horizontal_label=Poziōme przewijanie
+scroll_wrapped.title=Używej szichtowego przewijanio
+scroll_wrapped_label=Szichtowe przewijanie
+
+spread_none.title=Niy dowej strōn w widoku po dwie
+spread_none_label=Po jednyj strōnie
+spread_odd.title=Pokoż strōny po dwie; niyporziste po lewyj
+spread_odd_label=Niyporziste po lewyj
+spread_even.title=Pokoż strōny po dwie; porziste po lewyj
+spread_even_label=Porziste po lewyj
+
+# Document properties dialog box
+document_properties.title=Włosności dokumyntu…
+document_properties_label=Włosności dokumyntu…
+document_properties_file_name=Miano zbioru:
+document_properties_file_size=Srogość zbioru:
+# 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}} 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}} B)
+document_properties_title=Tytuł:
+document_properties_author=Autōr:
+document_properties_subject=Tymat:
+document_properties_keywords=Kluczowe słowa:
+document_properties_creation_date=Data zrychtowanio:
+document_properties_modification_date=Data zmiany:
+# 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=Zrychtowane ôd:
+document_properties_producer=PDF ôd:
+document_properties_version=Wersyjo PDF:
+document_properties_page_count=Wielość strōn:
+document_properties_page_size=Srogość strōny:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=piōnowo
+document_properties_page_size_orientation_landscape=poziōmo
+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=Gibki necowy podglōnd:
+document_properties_linearized_yes=Ja
+document_properties_linearized_no=Niy
+document_properties_close=Zawrzij
+
+print_progress_message=Rychtowanie dokumyntu do durku…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Pociep
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Przełōncz posek na rancie
+toggle_sidebar_notification2.title=Przełōncz posek na rancie (dokumynt mo struktura/przidowki/warstwy)
+toggle_sidebar_label=Przełōncz posek na rancie
+document_outline.title=Pokoż struktura dokumyntu (tuplowane klikniyncie rozszyrzo/swijo wszyskie elymynta)
+document_outline_label=Struktura dokumyntu
+attachments.title=Pokoż przidowki
+attachments_label=Przidowki
+layers.title=Pokoż warstwy (tuplowane klikniyncie resetuje wszyskie warstwy do bazowego stanu)
+layers_label=Warstwy
+thumbs.title=Pokoż miniatury
+thumbs_label=Miniatury
+findbar.title=Znojdź w dokumyncie
+findbar_label=Znojdź
+
+additional_layers=Nadbytnie warstwy
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Strōna {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura strōny {{page}}
+
+# Find panel button title and messages
+find_input.title=Znojdź
+find_input.placeholder=Znojdź w dokumyncie…
+find_previous.title=Znojdź piyrwyjsze pokozanie sie tyj frazy
+find_previous_label=Piyrwyjszo
+find_next.title=Znojdź nastympne pokozanie sie tyj frazy
+find_next_label=Dalij
+find_highlight=Zaznacz wszysko
+find_match_case_label=Poznowej srogość liter
+find_entire_word_label=Cołke słowa
+find_reached_top=Doszło do samego wiyrchu strōny, dalij ôd spodku
+find_reached_bottom=Doszło do samego spodku strōny, dalij ôd wiyrchu
+# 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}} ze {{total}}, co pasujōm
+find_match_count[two]={{current}} ze {{total}}, co pasujōm
+find_match_count[few]={{current}} ze {{total}}, co pasujōm
+find_match_count[many]={{current}} ze {{total}}, co pasujōm
+find_match_count[other]={{current}} ze {{total}}, co pasujōm
+# 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(total) ]}
+find_match_count_limit[zero]=Wiyncyj jak {{limit}}, co pasujōm
+find_match_count_limit[one]=Wiyncyj jak {{limit}}, co pasuje
+find_match_count_limit[two]=Wiyncyj jak {{limit}}, co pasujōm
+find_match_count_limit[few]=Wiyncyj jak {{limit}}, co pasujōm
+find_match_count_limit[many]=Wiyncyj jak {{limit}}, co pasujōm
+find_match_count_limit[other]=Wiyncyj jak {{limit}}, co pasujōm
+find_not_found=Fraza niy znaleziōno
+
+# Predefined zoom values
+page_scale_width=Szyrzka strōny
+page_scale_fit=Napasowanie strōny
+page_scale_auto=Autōmatyczno srogość
+page_scale_actual=Aktualno srogość
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Przi ladowaniu PDFa pokozoł sie feler.
+invalid_file_error=Zły abo felerny zbiōr PDF.
+missing_file_error=Chybio zbioru PDF.
+unexpected_response_error=Niyôczekowano ôdpowiydź serwera.
+
+rendering_error=Przi renderowaniu strōny pokozoł sie feler.
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Anotacyjo typu {{type}}]
+password_label=Wkludź hasło, coby ôdewrzić tyn zbiōr PDF.
+password_invalid=Hasło je złe. Sprōbuj jeszcze roz.
+password_ok=OK
+password_cancel=Pociep
+
+printing_not_supported=Pozōr: Ta przeglōndarka niy cołkiym ôbsuguje durk.
+printing_not_ready=Pozōr: Tyn PDF niy ma za tela zaladowany do durku.
+web_fonts_disabled=Necowe fōnty sōm zastawiōne: niy idzie użyć wkludzōnych fōntōw PDF.
+
diff --git a/static/pdf.js/locale/ta-LK/viewer.properties b/static/pdf.js/locale/ta-LK/viewer.properties
deleted file mode 100644
index 178b6199b..000000000
--- a/static/pdf.js/locale/ta-LK/viewer.properties
+++ /dev/null
@@ -1,72 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-
-zoom.title=அளவு
-open_file.title=கோப்பினைத் திறக்க
-open_file_label=திறக்க
-
-# Secondary toolbar and context menu
-
-
-# Document properties dialog box
-# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
-# will be replaced by the PDF file size in kilobytes, respectively in bytes.
-# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
-# will be replaced by the PDF file size in megabytes, respectively in bytes.
-# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
-# will be replaced by the creation/modification date, and time, of the PDF file.
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-
-# Find panel button title and messages
-find_previous.title=இந்த சொற்றொடரின் முன்னைய நிகழ்வை தேடு
-find_next.title=இந்த சொற்றொடரின் அடுத்த நிகழ்வைத் தேடு
-
-# Error panel labels
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-
-# Predefined zoom values
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-password_ok=ஆம்
-
diff --git a/static/pdf.js/locale/ta/viewer.properties b/static/pdf.js/locale/ta/viewer.properties
index b0d40f1e8..ef30ea544 100644
--- a/static/pdf.js/locale/ta/viewer.properties
+++ b/static/pdf.js/locale/ta/viewer.properties
@@ -18,12 +18,15 @@ previous_label=முந்தையது
next.title=அடுத்த பக்கம்
next_label=அடுத்து
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=பக்கம்:
-page_of=இல் {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=பக்கம்
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} இல்
+# 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={{pagesCount}}) இல் ({{pageNumber}}
zoom_out.title=சிறிதாக்கு
zoom_out_label=சிறிதாக்கு
@@ -36,31 +39,23 @@ open_file.title=கோப்பினை திற
open_file_label=திற
print.title=அச்சிடு
print_label=அச்சிடு
-download.title=பதிவிறக்கு
-download_label=பதிவிறக்கு
-bookmark.title=தற்போதைய காட்சி (புதிய சாளரத்திற்கு நகலெடு அல்லது புதிய சாளரத்தில் திற)
-bookmark_label=தற்போதைய காட்சி
# Secondary toolbar and context menu
tools.title=கருவிகள்
tools_label=கருவிகள்
first_page.title=முதல் பக்கத்திற்கு செல்லவும்
-first_page.label=முதல் பக்கத்திற்கு செல்லவும்
first_page_label=முதல் பக்கத்திற்கு செல்லவும்
last_page.title=கடைசி பக்கத்திற்கு செல்லவும்
-last_page.label=கடைசி பக்கத்திற்கு செல்லவும்
last_page_label=கடைசி பக்கத்திற்கு செல்லவும்
page_rotate_cw.title=வலஞ்சுழியாக சுழற்று
-page_rotate_cw.label=வலஞ்சுழியாக சுழற்று
page_rotate_cw_label=வலஞ்சுழியாக சுழற்று
page_rotate_ccw.title=இடஞ்சுழியாக சுழற்று
-page_rotate_ccw.label=இடஞ்சுழியாக சுழற்று
page_rotate_ccw_label=இடஞ்சுழியாக சுழற்று
-hand_tool_enable.title=கை கருவியை செயலாக்கு
-hand_tool_enable_label=கை கருவியை செயலாக்கு
-hand_tool_disable.title=கை கருவியை முடக்கு
-hand_tool_disable_label=கை கருவியை முடக்கு
+cursor_text_select_tool.title=உரைத் தெரிவு கருவியைச் செயல்படுத்து
+cursor_text_select_tool_label=உரைத் தெரிவு கருவி
+cursor_hand_tool.title=கைக் கருவிக்ச் செயற்படுத்து
+cursor_hand_tool_label=கைக்குருவி
# Document properties dialog box
document_properties.title=ஆவண பண்புகள்...
@@ -86,21 +81,44 @@ document_properties_creator=உருவாக்குபவர்:
document_properties_producer=பிடிஎஃப் தயாரிப்பாளர்:
document_properties_version=PDF பதிப்பு:
document_properties_page_count=பக்க எண்ணிக்கை:
+document_properties_page_size=பக்க அளவு:
+document_properties_page_size_unit_inches=இதில்
+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}})
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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=பக்கப் பட்டியை நிலைமாற்று
toggle_sidebar_label=பக்கப் பட்டியை நிலைமாற்று
-outline.title=ஆவண வெளிவரையைக் காண்பி
-outline_label=ஆவண வெளிவரை
+document_outline.title=ஆவண அடக்கத்தைக் காட்டு (இருமுறைச் சொடுக்கி அனைத்து உறுப்பிடிகளையும் விரி/சேர்)
+document_outline_label=ஆவண வெளிவரை
attachments.title=இணைப்புகளை காண்பி
attachments_label=இணைப்புகள்
thumbs.title=சிறுபடங்களைக் காண்பி
thumbs_label=சிறுபடங்கள்
findbar.title=ஆவணத்தில் கண்டறி
-findbar_label=கண்டுபிடி
+findbar_label=தேடு
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
@@ -111,7 +129,8 @@ thumb_page_title=பக்கம் {{page}}
thumb_page_canvas=பக்கத்தின் சிறுபடம் {{page}}
# Find panel button title and messages
-find_label=கண்டறி:
+find_input.title=கண்டுபிடி
+find_input.placeholder=ஆவணத்தில் கண்டறி…
find_previous.title=இந்த சொற்றொடரின் முந்தைய நிகழ்வை தேடு
find_previous_label=முந்தையது
find_next.title=இந்த சொற்றொடரின் அடுத்த நிகழ்வை தேடு
@@ -122,25 +141,6 @@ find_reached_top=ஆவணத்தின் மேல் பகுதியை
find_reached_bottom=ஆவணத்தின் முடிவை அடைந்தது, மேலிருந்து தொடர்ந்தது
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
page_scale_width=பக்க அகலம்
page_scale_fit=பக்கப் பொருத்தம்
@@ -150,13 +150,13 @@ page_scale_actual=உண்மையான அளவு
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=பிழை
loading_error=PDF ஐ ஏற்றும் போது ஒரு பிழை ஏற்பட்டது.
invalid_file_error=செல்லுபடியாகாத அல்லது சிதைந்த PDF கோப்பு.
missing_file_error=PDF கோப்பு காணவில்லை.
unexpected_response_error=சேவகன் பதில் எதிர்பாரதது.
+rendering_error=இந்தப் பக்கத்தை காட்சிப்படுத்தும் போது ஒரு பிழை ஏற்பட்டது.
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -165,9 +165,9 @@ text_annotation_type.alt=[{{type}} விளக்கம்]
password_label=இந்த PDF கோப்பை திறக்க கடவுச்சொல்லை உள்ளிடவும்.
password_invalid=செல்லுபடியாகாத கடவுச்சொல், தயை செய்து மீண்டும் முயற்சி செய்க.
password_ok=சரி
-password_cancel=இரத்து
+password_cancel=ரத்து
printing_not_supported=எச்சரிக்கை: இந்த உலாவி அச்சிடுதலை முழுமையாக ஆதரிக்கவில்லை.
printing_not_ready=எச்சரிக்கை: PDF அச்சிட முழுவதுமாக ஏற்றப்படவில்லை.
web_fonts_disabled=வலை எழுத்துருக்கள் முடக்கப்பட்டுள்ளன: உட்பொதிக்கப்பட்ட PDF எழுத்துருக்களைப் பயன்படுத்த முடியவில்லை.
-document_colors_not_allowed=PDF ஆவணங்களுக்கு அவற்றின் சொந்த நிறங்களைப் பயன்படுத்த அனுமதியில்லை: உலாவியில் 'பக்கங்கள் தங்கள் சொந்த நிறங்களைத் தேர்வு செய்துகொள்ள அனுமதி' என்னும் விருப்பம் முடக்கப்பட்டுள்ளது.
+
diff --git a/static/pdf.js/locale/te/viewer.properties b/static/pdf.js/locale/te/viewer.properties
index e08d5e7de..0e37eab81 100644
--- a/static/pdf.js/locale/te/viewer.properties
+++ b/static/pdf.js/locale/te/viewer.properties
@@ -13,17 +13,20 @@
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
-previous.title=క్రితం పేజీ
+previous.title=మునుపటి పేజీ
previous_label=క్రితం
next.title=తరువాత పేజీ
next_label=తరువాత
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=పేజీ:
-page_of=మొత్తం {{pageCount}} లో
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=పేజీ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=మొత్తం {{pagesCount}} లో
+# 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=(మొత్తం {{pagesCount}} లో {{pageNumber}}వది)
zoom_out.title=జూమ్ తగ్గించు
zoom_out_label=జూమ్ తగ్గించు
@@ -36,31 +39,26 @@ open_file.title=ఫైల్ తెరువు
open_file_label=తెరువు
print.title=ముద్రించు
print_label=ముద్రించు
-download.title=డౌనులోడు
-download_label=డౌనులోడు
-bookmark.title=ప్రస్తుత దర్శనం (నకలుతీయి లేదా కొత్త విండోనందు తెరువుము)
-bookmark_label=ప్రస్తుత దర్శనం
# Secondary toolbar and context menu
tools.title=పనిముట్లు
tools_label=పనిముట్లు
first_page.title=మొదటి పేజీకి వెళ్ళు
-first_page.label=మొదటి పేజీకి వెళ్ళు
first_page_label=మొదటి పేజీకి వెళ్ళు
last_page.title=చివరి పేజీకి వెళ్ళు
-last_page.label=చివరి పేజీకి వెళ్ళు
last_page_label=చివరి పేజీకి వెళ్ళు
-page_rotate_cw.title=సవ్యదిశలో తిప్పుము
-page_rotate_cw.label=సవ్యదిశలో తిప్పుము
-page_rotate_cw_label=సవ్యదిశలో తిప్పుము
-page_rotate_ccw.title=అపసవ్యదిశలో తిప్పుము
-page_rotate_ccw.label=అపసవ్యదిశలో తిప్పుము
-page_rotate_ccw_label=అపసవ్యదిశలో తిప్పుము
+page_rotate_cw.title=సవ్యదిశలో తిప్పు
+page_rotate_cw_label=సవ్యదిశలో తిప్పు
+page_rotate_ccw.title=అపసవ్యదిశలో తిప్పు
+page_rotate_ccw_label=అపసవ్యదిశలో తిప్పు
+
+cursor_text_select_tool.title=టెక్స్ట్ ఎంపిక సాధనాన్ని ప్రారంభించండి
+cursor_text_select_tool_label=టెక్స్ట్ ఎంపిక సాధనం
+cursor_hand_tool.title=చేతి సాధనం చేతనించు
+cursor_hand_tool_label=చేతి సాధనం
+
+scroll_vertical_label=నిలువు స్క్రోలింగు
-hand_tool_enable.title=చేతి సాధనం చేతనించు
-hand_tool_enable_label=చేతి సాధనం చేతనించు
-hand_tool_disable.title=చేతి సాధనం అచేతనించు
-hand_tool_disable_label=చేతి సాధనం అచేతనించు
# Document properties dialog box
document_properties.title=పత్రము లక్షణాలు...
@@ -76,7 +74,7 @@ document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
document_properties_title=శీర్షిక:
document_properties_author=మూలకర్త:
document_properties_subject=విషయం:
-document_properties_keywords=కీపదాలు:
+document_properties_keywords=కీ పదాలు:
document_properties_creation_date=సృష్టించిన తేదీ:
document_properties_modification_date=సవరించిన తేదీ:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
@@ -86,60 +84,83 @@ document_properties_creator=సృష్టికర్త:
document_properties_producer=PDF ఉత్పాదకి:
document_properties_version=PDF వర్షన్:
document_properties_page_count=పేజీల సంఖ్య:
+document_properties_page_size=కాగితం పరిమాణం:
+document_properties_page_size_unit_inches=లో
+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_yes=అవును
+document_properties_linearized_no=కాదు
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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=పక్కపట్టీ మార్చు
toggle_sidebar_label=పక్కపట్టీ మార్చు
-outline.title=పత్రము అవుట్లైన్ చూపు
-outline_label=పత్రము అవుట్లైన్
+document_outline.title=పత్రము రూపము చూపించు (డబుల్ క్లిక్ చేసి అన్ని అంశాలను విస్తరించు/కూల్చు)
+document_outline_label=పత్రము అవుట్లైన్
attachments.title=అనుబంధాలు చూపు
attachments_label=అనుబంధాలు
+layers_label=పొరలు
thumbs.title=థంబ్నైల్స్ చూపు
thumbs_label=థంబ్నైల్స్
-findbar.title=ఈ పత్రమునందు కనుగొనుము
+findbar.title=పత్రములో కనుగొనుము
findbar_label=కనుగొను
+additional_layers=అదనపు పొరలు
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=పేజీ {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
-thumb_page_canvas=పేజీ {{page}} యొక్క థంబ్నైల్
+thumb_page_canvas={{page}} పేజీ నఖచిత్రం
# Find panel button title and messages
-find_label=కనుగొను:
-find_previous.title=పదంయొక్క ముందలి సంభవాన్ని కనుగొను
+find_input.title=కనుగొను
+find_input.placeholder=పత్రములో కనుగొను…
+find_previous.title=పదం యొక్క ముందు సంభవాన్ని కనుగొను
find_previous_label=మునుపటి
-find_next.title=పదం యొక్క తర్వాతి సంభవాన్ని కనుగొను
+find_next.title=పదం యొక్క తర్వాతి సంభవాన్ని కనుగొను
find_next_label=తరువాత
-find_highlight=అన్నిటిని ఉద్దీపనం చేయుము
-find_match_case_label=అక్షరములతేడాతో పోల్చుము
+find_highlight=అన్నిటిని ఉద్దీపనం చేయుము
+find_match_case_label=అక్షరముల తేడాతో పోల్చు
+find_entire_word_label=పూర్తి పదాలు
find_reached_top=పేజీ పైకి చేరుకున్నది, క్రింది నుండి కొనసాగించండి
find_reached_bottom=పేజీ చివరకు చేరుకున్నది, పైనుండి కొనసాగించండి
-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=పేజీను రెండర్ చేయుటలో వొక దోషం యెదురైంది.
+# 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) ]}
+# 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_not_found=పదబంధం కనబడలేదు
# Predefined zoom values
page_scale_width=పేజీ వెడల్పు
@@ -151,23 +172,45 @@ page_scale_actual=యథార్ధ పరిమాణం
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=దోషం
-loading_error=PDF లోడవుచున్నప్పుడు వొక దోషం యెదురైంది.
+loading_error=PDF లోడవుచున్నప్పుడు ఒక దోషం ఎదురైంది.
invalid_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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} టీకా]
-password_label=ఈ PDF ఫైల్ తెరుచుటకు సంకేతపదం ప్రవేశపెట్టుము
+password_label=ఈ PDF ఫైల్ తెరుచుటకు సంకేతపదం ప్రవేశపెట్టుము.
password_invalid=సంకేతపదం చెల్లదు. దయచేసి మళ్ళీ ప్రయత్నించండి.
password_ok=సరే
password_cancel=రద్దుచేయి
-printing_not_supported=హెచ్చరిక: ఈ విహారిణి చేత ముద్రణ పూర్తిగా తోడ్పాటునీయబడుట లేదు
+printing_not_supported=హెచ్చరిక: ఈ విహారిణి చేత ముద్రణ పూర్తిగా తోడ్పాటు లేదు.
printing_not_ready=హెచ్చరిక: ముద్రణ కొరకు ఈ PDF పూర్తిగా లోడవలేదు.
-web_fonts_disabled=వెబ్ ఫాంట్లు అచేతనపరచ బడెను: ఎంబెడెడ్ PDF ఫాంట్లు వుపయోగించలేక పోయింది.
-document_colors_not_allowed=PDF పత్రాలు వాటి స్వంత రంగులను వుపయోగించుకొనుటకు అనుమతించబడవు: విహరణి నందు 'పేజీలను వాటి స్వంత రంగులను యెంచుకొనుటకు అనుమతించు' అనునది అచేతనం చేయబడివుంది.
+web_fonts_disabled=వెబ్ ఫాంట్లు అచేతనించబడెను: ఎంబెడెడ్ PDF ఫాంట్లు ఉపయోగించలేక పోయింది.
+
+# Editor
+
+
+# Editor
+
+
+# Editor Parameters
+editor_free_text_color=రంగు
+editor_free_text_size=పరిమాణం
+editor_ink_color=రంగు
+editor_ink_thickness=మందం
+editor_ink_opacity=అకిరణ్యత
+
+# Editor aria
+
+# Editor aria
+
diff --git a/static/pdf.js/locale/tg/viewer.properties b/static/pdf.js/locale/tg/viewer.properties
new file mode 100644
index 000000000..b00f700ed
--- /dev/null
+++ b/static/pdf.js/locale/tg/viewer.properties
@@ -0,0 +1,281 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Саҳифаи қаблӣ
+previous_label=Қаблӣ
+next.title=Саҳифаи навбатӣ
+next_label=Навбатӣ
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Саҳифа
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=аз {{pagesCount}}
+# 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_label=Хурд кардан
+zoom_in.title=Калон кардан
+zoom_in_label=Калон кардан
+zoom.title=Танзими андоза
+presentation_mode.title=Гузариш ба реҷаи тақдим
+presentation_mode_label=Реҷаи тақдим
+open_file.title=Кушодани файл
+open_file_label=Кушодан
+print.title=Чоп кардан
+print_label=Чоп кардан
+save.title=Нигоҳ доштан
+save_label=Нигоҳ доштан
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
+tools.title=Абзорҳо
+tools_label=Абзорҳо
+first_page.title=Ба саҳифаи аввал гузаред
+first_page_label=Ба саҳифаи аввал гузаред
+last_page.title=Ба саҳифаи охирин гузаред
+last_page_label=Ба саҳифаи охирин гузаред
+page_rotate_cw.title=Ба самти ҳаракати ақрабаки соат давр задан
+page_rotate_cw_label=Ба самти ҳаракати ақрабаки соат давр задан
+page_rotate_ccw.title=Ба муқобили самти ҳаракати ақрабаки соат давр задан
+page_rotate_ccw_label=Ба муқобили самти ҳаракати ақрабаки соат давр задан
+
+cursor_text_select_tool.title=Фаъол кардани «Абзори интихоби матн»
+cursor_text_select_tool_label=Абзори интихоби матн
+cursor_hand_tool.title=Фаъол кардани «Абзори даст»
+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.title=Хусусиятҳои ҳуҷҷат…
+document_properties_label=Хусусиятҳои ҳуҷҷат…
+document_properties_file_name=Номи файл:
+document_properties_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}} КБ ({{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}} МБ ({{size_b}} байт)
+document_properties_title=Сарлавҳа:
+document_properties_author=Муаллиф:
+document_properties_subject=Мавзуъ:
+document_properties_keywords=Калимаҳои калидӣ:
+document_properties_creation_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_creator=Эҷодкунанда:
+document_properties_producer=Таҳиякунандаи «PDF»:
+document_properties_version=Версияи «PDF»:
+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=Намоиши тез дар Интернет:
+document_properties_linearized_yes=Ҳа
+document_properties_linearized_no=Не
+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
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Фаъол кардани навори ҷонибӣ
+toggle_sidebar_notification2.title=Фаъол кардани навори ҷонибӣ (ҳуҷҷат дорои сохтор/замимаҳо/қабатҳо мебошад)
+toggle_sidebar_label=Фаъол кардани навори ҷонибӣ
+document_outline.title=Намоиш додани сохтори ҳуҷҷат (барои баркушодан/пеҷондани ҳамаи унсурҳо дубора зер кунед)
+document_outline_label=Сохтори ҳуҷҷат
+attachments.title=Намоиш додани замимаҳо
+attachments_label=Замимаҳо
+layers.title=Намоиш додани қабатҳо (барои барқарор кардани ҳамаи қабатҳо ба вазъияти пешфарз дубора зер кунед)
+layers_label=Қабатҳо
+thumbs.title=Намоиш додани тасвирчаҳо
+thumbs_label=Тасвирчаҳо
+current_outline_item.title=Ёфтани унсури сохтори ҷорӣ
+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)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Саҳифаи {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Тасвирчаи саҳифаи {{page}}
+
+# Find panel button title and messages
+find_input.title=Ёфтан
+find_input.placeholder=Ёфтан дар ҳуҷҷат…
+find_previous.title=Ҷустуҷӯи мавриди қаблии ибораи пешниҳодшуда
+find_previous_label=Қаблӣ
+find_next.title=Ҷустуҷӯи мавриди навбатии ибораи пешниҳодшуда
+find_next_label=Навбатӣ
+find_highlight=Ҳамаашро бо ранг ҷудо кардан
+find_match_case_label=Бо дарназардошти ҳарфҳои хурду калон
+find_match_diacritics_label=Бо дарназардошти аломатҳои диакритикӣ
+find_entire_word_label=Калимаҳои пурра
+find_reached_top=Ба болои ҳуҷҷат расид, аз поён идома ёфт
+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=Ибора ёфт нашуд
+
+# Predefined zoom values
+page_scale_width=Аз рӯи паҳнои саҳифа
+page_scale_fit=Аз рӯи андозаи саҳифа
+page_scale_auto=Андозаи худкор
+page_scale_actual=Андозаи воқеӣ
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error=Ҳангоми боркунии «PDF» хато ба миён омад.
+invalid_file_error=Файли «PDF» нодуруст ё вайроншуда мебошад.
+missing_file_error=Файли «PDF» ғоиб аст.
+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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[Ҳошиянависӣ - {{type}}]
+password_label=Барои кушодани ин файли «PDF» ниҳонвожаро ворид кунед.
+password_invalid=Ниҳонвожаи нодуруст. Лутфан, аз нав кӯшиш кунед.
+password_ok=ХУБ
+password_cancel=Бекор кардан
+
+printing_not_supported=Диққат: Чопкунӣ аз тарафи ин браузер ба таври пурра дастгирӣ намешавад.
+printing_not_ready=Диққат: Файли «PDF» барои чопкунӣ пурра бор карда нашуд.
+web_fonts_disabled=Шрифтҳои интернетӣ ғайрифаъоланд: истифодаи шрифтҳои дарунсохти «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_add_description_label=Илова кардани тавсиф
+editor_alt_text_mark_decorative_label=Гузоштан ҳамчун матни ороишӣ
+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=Барои мисол, «Ман забони тоҷикиро дӯст медорам»
diff --git a/static/pdf.js/locale/th/viewer.properties b/static/pdf.js/locale/th/viewer.properties
index 151e6b86f..f194072dd 100644
--- a/static/pdf.js/locale/th/viewer.properties
+++ b/static/pdf.js/locale/th/viewer.properties
@@ -18,90 +18,150 @@ previous_label=ก่อนหน้า
next.title=หน้าถัดไป
next_label=ถัดไป
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=หน้า:
-page_of=จาก {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=หน้า
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=จาก {{pagesCount}}
+# 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_label=ย่อ Out
-zoom_in.title=ขยาย
-zoom_in_label=ขยาย
-zoom.title=ย่อ-ขยาย
-presentation_mode.title=สลับเข้าสู่รูปแบบการนำเสนอ
-presentation_mode_label=รูปแบบการนำเสนอ
-open_file.title=เปิดแฟ้ม
+zoom_out.title=ซูมออก
+zoom_out_label=ซูมออก
+zoom_in.title=ซูมเข้า
+zoom_in_label=ซูมเข้า
+zoom.title=ซูม
+presentation_mode.title=สลับเป็นโหมดการนำเสนอ
+presentation_mode_label=โหมดการนำเสนอ
+open_file.title=เปิดไฟล์
open_file_label=เปิด
print.title=พิมพ์
print_label=พิมพ์
-download.title=ดาวน์โหลด
-download_label=ดาวน์โหลด
-bookmark.title=มุมมองปัจจุบัน (คัดลอกหรือเปิดในหน้าต่างใหม่)
-bookmark_label=มุมมองปัจจุบัน
+save.title=บันทึก
+save_label=บันทึก
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
tools.title=เครื่องมือ
tools_label=เครื่องมือ
first_page.title=ไปยังหน้าแรก
-first_page.label=ไปยังหน้าแรก
first_page_label=ไปยังหน้าแรก
last_page.title=ไปยังหน้าสุดท้าย
-last_page.label=ไปยังหน้าสุดท้าย
last_page_label=ไปยังหน้าสุดท้าย
page_rotate_cw.title=หมุนตามเข็มนาฬิกา
-page_rotate_cw.label=หมุนตามเข็มนาฬิกา
page_rotate_cw_label=หมุนตามเข็มนาฬิกา
page_rotate_ccw.title=หมุนทวนเข็มนาฬิกา
-page_rotate_ccw.label=หมุนทวนเข็มนาฬิกา
page_rotate_ccw_label=หมุนทวนเข็มนาฬิกา
-hand_tool_enable.title=เปิดใช้งานเครื่องมือรูปมือ
-hand_tool_enable_label=เปิดใช้งานเครื่องมือรูปมือ
-hand_tool_disable.title=ปิดใช้งานเครื่องมือรูปมือ
-hand_tool_disable_label=ปิดใช้งานเครื่องมือรูปมือ
+cursor_text_select_tool.title=เปิดใช้งานเครื่องมือการเลือกข้อความ
+cursor_text_select_tool_label=เครื่องมือการเลือกข้อความ
+cursor_hand_tool.title=เปิดใช้งานเครื่องมือมือ
+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.title=คุณสมบัติเอกสาร…
document_properties_label=คุณสมบัติเอกสาร…
-document_properties_file_name=ชื่อแฟ้ม :
-document_properties_file_size=ขนาดแฟ้ม :
+document_properties_file_name=ชื่อไฟล์:
+document_properties_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}} กิโลไบต์ ({{size_b}} ไบต์)
+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}} เมกะไบต์ ({{size_b}} ไบต์)
-document_properties_title=หัวเรื่อง :
-document_properties_author=ผู้แต่ง :
-document_properties_subject=หัวข้อ :
-document_properties_keywords=คำสำคัญ :
-document_properties_creation_date=วันที่สร้าง :
-document_properties_modification_date=วันที่แก้ไข :
+document_properties_mb={{size_mb}} MB ({{size_b}} ไบต์)
+document_properties_title=ชื่อเรื่อง:
+document_properties_author=ผู้สร้าง:
+document_properties_subject=ชื่อเรื่อง:
+document_properties_keywords=คำสำคัญ:
+document_properties_creation_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_creator=สร้างโดย :
-document_properties_producer=ผู้ผลิต PDF :
-document_properties_version=รุ่น PDF :
-document_properties_page_count=จำนวนหน้า :
+document_properties_creator=ผู้สร้าง:
+document_properties_producer=ผู้ผลิต PDF:
+document_properties_version=รุ่น PDF:
+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=ปิด
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-toggle_sidebar.title=สลับแถบข้าง
-toggle_sidebar_label=สลับแถบข้าง
-outline.title=แสดงโครงเอกสาร
-outline_label=โครงเอกสาร
-attachments.title=แสดงสิ่งที่แนบมา
-attachments_label=สิ่งที่แนบมา
+toggle_sidebar.title=เปิด/ปิดแถบข้าง
+toggle_sidebar_notification2.title=เปิด/ปิดแถบข้าง (เอกสารมีเค้าร่าง/ไฟล์แนบ/เลเยอร์)
+toggle_sidebar_label=เปิด/ปิดแถบข้าง
+document_outline.title=แสดงเค้าร่างเอกสาร (คลิกสองครั้งเพื่อขยาย/ยุบรายการทั้งหมด)
+document_outline_label=เค้าร่างเอกสาร
+attachments.title=แสดงไฟล์แนบ
+attachments_label=ไฟล์แนบ
+layers.title=แสดงเลเยอร์ (คลิกสองครั้งเพื่อรีเซ็ตเลเยอร์ทั้งหมดเป็นสถานะเริ่มต้น)
+layers_label=เลเยอร์
thumbs.title=แสดงภาพขนาดย่อ
thumbs_label=ภาพขนาดย่อ
+current_outline_item.title=ค้นหารายการเค้าร่างปัจจุบัน
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,63 +171,100 @@ thumb_page_title=หน้า {{page}}
thumb_page_canvas=ภาพขนาดย่อของหน้า {{page}}
# Find panel button title and messages
-find_label=ค้นหา:
-find_previous.title=หาตำแหน่งก่อนหน้าของคำค้น
+find_input.title=ค้นหา
+find_input.placeholder=ค้นหาในเอกสาร…
+find_previous.title=หาตำแหน่งก่อนหน้าของวลี
find_previous_label=ก่อนหน้า
-find_next.title=หาตำแหน่งถัดไปของคำค้น
+find_next.title=หาตำแหน่งถัดไปของวลี
find_next_label=ถัดไป
find_highlight=เน้นสีทั้งหมด
-find_match_case_label=ตัวพิมพ์ตรงกัน
+find_match_case_label=ตัวพิมพ์ใหญ่เล็กตรงกัน
+find_match_diacritics_label=เครื่องหมายกำกับการออกเสียงตรงกัน
+find_entire_word_label=ทั้งคำ
find_reached_top=ค้นหาถึงจุดเริ่มต้นของหน้า เริ่มค้นต่อจากด้านล่าง
find_reached_bottom=ค้นหาถึงจุดสิ้นสุดหน้า เริ่มค้นต่อจากด้านบน
-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=เกิดข้อผิดพลาดขณะกำลังคำนวณการแสดงผลของหน้า
+# 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=ไม่พบวลี
# Predefined zoom values
page_scale_width=ความกว้างหน้า
page_scale_fit=พอดีหน้า
-page_scale_auto=ย่อ-ขยายอัตโนมัติ
-page_scale_actual=ขนาดเท่าจริง
+page_scale_auto=ซูมอัตโนมัติ
+page_scale_actual=ขนาดจริง
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=ข้อผิดพลาด
-loading_error=เกิดข้อผิดพลาดขณะกำลังโหลด PDF
-invalid_file_error=แฟ้ม PDF ไม่ถูกต้องหรือไม่สมบูรณ์
-missing_file_error=แฟ้ม PDF หาย
-unexpected_response_error=การตอบสนองเซิร์ฟเวอร์ที่ไม่คาดหวัง
+loading_error=เกิดข้อผิดพลาดขณะโหลด PDF
+invalid_file_error=ไฟล์ PDF ไม่ถูกต้องหรือเสียหาย
+missing_file_error=ไฟล์ PDF หายไป
+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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[คำอธิบายประกอบ {{type}}]
-password_label=ใส่รหัสผ่านเพื่อเปิดไฟล์ PDF นี้
+password_label=ป้อนรหัสผ่านเพื่อเปิดไฟล์ PDF นี้
password_invalid=รหัสผ่านไม่ถูกต้อง โปรดลองอีกครั้ง
password_ok=ตกลง
password_cancel=ยกเลิก
printing_not_supported=คำเตือน: เบราว์เซอร์นี้ไม่ได้สนับสนุนการพิมพ์อย่างเต็มที่
printing_not_ready=คำเตือน: PDF ไม่ได้รับการโหลดอย่างเต็มที่สำหรับการพิมพ์
-web_fonts_disabled=แบบอักษรเว็บถูกปิดการใช้งาน: ไม่สามารถใช้แบบอักษรฝังตัวใน PDF
-document_colors_not_allowed=เอกสาร PDF ไม่ได้รับอนุญาตให้ใช้สีของตัวเอง: 'อนุญาตให้หน้าเอกสารสามารถเลือกสีของตัวเอง' ถูกปิดใช้งานในเบราว์เซอร์
+web_fonts_disabled=แบบอักษรเว็บถูกปิดใช้งาน: ไม่สามารถใช้แบบอักษร PDF ฝังตัว
+
+# 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=ภาพที่ผู้ใช้สร้างขึ้น
diff --git a/static/pdf.js/locale/tl/viewer.properties b/static/pdf.js/locale/tl/viewer.properties
index e83cc87a9..13b7ba88c 100644
--- a/static/pdf.js/locale/tl/viewer.properties
+++ b/static/pdf.js/locale/tl/viewer.properties
@@ -14,42 +14,135 @@
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Naunang Pahina
+previous_label=Nakaraan
next.title=Sunod na Pahina
+next_label=Sunod
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Pahina:
-page_of=ng {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Pahina
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=ng {{pagesCount}}
+# 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}} ng {{pagesCount}})
+zoom_out.title=Paliitin
+zoom_out_label=Paliitin
+zoom_in.title=Palakihin
+zoom_in_label=Palakihin
+zoom.title=Mag-zoom
+presentation_mode.title=Lumipat sa Presentation Mode
+presentation_mode_label=Presentation Mode
open_file.title=Magbukas ng file
open_file_label=Buksan
-bookmark.title=Kasalukuyang tingin (kopyahin o buksan sa bagong window)
-bookmark_label=Kasalukuyang tingin
+print.title=i-Print
+print_label=i-Print
# Secondary toolbar and context menu
-tools.title=Mga Tool
-tools_label=Mga Tool
+tools.title=Mga Kagamitan
+tools_label=Mga Kagamitan
+first_page.title=Pumunta sa Unang Pahina
+first_page_label=Pumunta sa Unang Pahina
+last_page.title=Pumunta sa Huling Pahina
+last_page_label=Pumunta sa Huling Pahina
+page_rotate_cw.title=Paikutin Pakanan
+page_rotate_cw_label=Paikutin Pakanan
+page_rotate_ccw.title=Paikutin Pakaliwa
+page_rotate_ccw_label=Paikutin Pakaliwa
+cursor_text_select_tool.title=I-enable ang Text Selection Tool
+cursor_text_select_tool_label=Text Selection Tool
+cursor_hand_tool.title=I-enable ang Hand Tool
+cursor_hand_tool_label=Hand Tool
+
+scroll_vertical.title=Gumamit ng Vertical Scrolling
+scroll_vertical_label=Vertical Scrolling
+scroll_horizontal.title=Gumamit ng Horizontal Scrolling
+scroll_horizontal_label=Horizontal Scrolling
+scroll_wrapped.title=Gumamit ng Wrapped Scrolling
+scroll_wrapped_label=Wrapped Scrolling
+
+spread_none.title=Huwag pagsamahin ang mga page spread
+spread_none_label=No Spreads
+spread_odd.title=Join page spreads starting with odd-numbered pages
+spread_odd_label=Mga Odd Spread
+spread_even.title=Pagsamahin ang mga page spread na nagsisimula sa mga even-numbered na pahina
+spread_even_label=Mga Even Spread
# Document properties dialog box
+document_properties.title=Mga Katangian ng Dokumento…
+document_properties_label=Mga Katangian ng Dokumento…
+document_properties_file_name=File name:
+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)
# 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_title=Pamagat:
+document_properties_author=May-akda:
+document_properties_subject=Paksa:
+document_properties_keywords=Mga keyword:
+document_properties_creation_date=Petsa ng Pagkakagawa:
+document_properties_modification_date=Petsa ng Pagkakabago:
# 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=Tagalikha:
+document_properties_producer=PDF Producer:
+document_properties_version=PDF Version:
+document_properties_page_count=Bilang ng Pahina:
+document_properties_page_size=Laki ng Pahina:
+document_properties_page_size_unit_inches=pulgada
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=patayo
+document_properties_page_size_orientation_landscape=pahiga
+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=Oo
+document_properties_linearized_no=Hindi
+document_properties_close=Isara
+
+print_progress_message=Inihahanda ang dokumento para sa pag-print…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Kanselahin
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-outline.title=Ipakita ang banghay ng dokumento
-outline_label=Banghay ng dokumento
-thumbs.title=Ipakita ang mga Thumbnails
+toggle_sidebar.title=Ipakita/Itago ang Sidebar
+toggle_sidebar_notification2.title=Ipakita/Itago ang Sidebar (nagtataglay ang dokumento ng balangkas/mga attachment/mga layer)
+toggle_sidebar_label=Ipakita/Itago ang Sidebar
+document_outline.title=Ipakita ang Document Outline (mag-double-click para i-expand/collapse ang laman)
+document_outline_label=Balangkas ng Dokumento
+attachments.title=Ipakita ang mga Attachment
+attachments_label=Mga attachment
+layers.title=Ipakita ang mga Layer (mag-double click para mareset ang lahat ng layer sa orihinal na estado)
+layers_label=Mga layer
+thumbs.title=Ipakita ang mga Thumbnail
+thumbs_label=Mga thumbnail
+findbar.title=Hanapin sa Dokumento
findbar_label=Hanapin
+additional_layers=Mga Karagdagang Layer
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -59,36 +152,71 @@ thumb_page_title=Pahina {{page}}
thumb_page_canvas=Thumbnail ng Pahina {{page}}
# Find panel button title and messages
+find_input.title=Hanapin
+find_input.placeholder=Hanapin sa dokumento…
+find_previous.title=Hanapin ang nakaraang pangyayari ng parirala
+find_previous_label=Nakaraan
+find_next.title=Hanapin ang susunod na pangyayari ng parirala
+find_next_label=Susunod
find_highlight=I-highlight lahat
-
-# Error panel labels
-error_more_info=Maraming Inpormasyon
-error_less_info=Maikling Inpormasyon
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Mensahe: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Linya: {{line}}
-rendering_error=May naganap na pagkakamali habang pagsasalin sa pahina.
+find_match_case_label=Itugma ang case
+find_entire_word_label=Buong salita
+find_reached_top=Naabot na ang tuktok ng dokumento, ipinagpatuloy mula sa ilalim
+find_reached_bottom=Naabot na ang dulo ng dokumento, ipinagpatuloy mula sa tuktok
+# 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}} ng {{total}} tugma
+find_match_count[two]={{current}} ng {{total}} tugma
+find_match_count[few]={{current}} ng {{total}} tugma
+find_match_count[many]={{current}} ng {{total}} tugma
+find_match_count[other]={{current}} ng {{total}} tugma
+# 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]=Higit sa {{limit}} tugma
+find_match_count_limit[one]=Higit sa {{limit}} tugma
+find_match_count_limit[two]=Higit sa {{limit}} tugma
+find_match_count_limit[few]=Higit sa {{limit}} tugma
+find_match_count_limit[many]=Higit sa {{limit}} tugma
+find_match_count_limit[other]=Higit sa {{limit}} tugma
+find_not_found=Hindi natagpuan ang parirala
# Predefined zoom values
-page_scale_width=Haba ng Pahina
-page_scale_fit=ang pahina ay angkop
-page_scale_auto=awtomatikong pag-imbulog
+page_scale_width=Lapad ng Pahina
+page_scale_fit=Pagkasyahin ang Pahina
+page_scale_auto=Automatic Zoom
+page_scale_actual=Totoong sukat
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
+page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error=May maling nangyari habang kinakarga ang PDF.
+loading_error=Nagkaproblema habang niloload ang PDF.
+invalid_file_error=Di-wasto o sira ang PDF file.
+missing_file_error=Nawawalang PDF file.
+unexpected_response_error=Hindi inaasahang tugon ng server.
+
+rendering_error=Nagkaproblema habang nirerender ang pahina.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Annotation]
+password_label=Ipasok ang password upang buksan ang PDF file na ito.
+password_invalid=Maling password. Subukan uli.
password_ok=OK
+password_cancel=Kanselahin
+
+printing_not_supported=Babala: Hindi pa ganap na suportado ang pag-print sa browser na ito.
+printing_not_ready=Babala: Hindi ganap na nabuksan ang PDF para sa pag-print.
+web_fonts_disabled=Naka-disable ang mga Web font: hindi kayang gamitin ang mga naka-embed na PDF font.
diff --git a/static/pdf.js/locale/tn/viewer.properties b/static/pdf.js/locale/tn/viewer.properties
deleted file mode 100644
index 3c9b50312..000000000
--- a/static/pdf.js/locale/tn/viewer.properties
+++ /dev/null
@@ -1,83 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Tsebe:
-
-zoom.title=Zuma/gogela
-open_file.title=Bula Faele
-open_file_label=Bula
-
-# Secondary toolbar and context menu
-
-hand_tool_disable.title=Thibela go dira ga sediriswa sa seatla
-hand_tool_disable_label=Thibela go dira ga sediriswa sa seatla
-
-# Document properties dialog box
-document_properties_file_name=Leina la faele:
-# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
-# will be replaced by the PDF file size in kilobytes, respectively in 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_title=Leina:
-# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
-# will be replaced by the creation/modification date, and time, of the PDF file.
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-findbar_label=Batla
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-
-# Find panel button title and messages
-find_previous.title=Batla tiragalo e e fetileng ya setlhopha sa mafoko
-find_next.title=Batla tiragalo e e latelang ya setlhopha sa mafoko
-find_not_found=Setlhopha sa mafoko ga se a bonwa
-
-# Error panel labels
-error_more_info=Tshedimosetso e Nngwe
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-
-# Predefined zoom values
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-loading_error_indicator=Phoso
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-password_ok=Siame
-password_cancel=Khansela
-
-web_fonts_disabled=Mefutatlhaka ya Webo ga e dire: ga e kgone go dirisa mofutatlhaka wa PDF o tsentsweng.
diff --git a/static/pdf.js/locale/tr/viewer.properties b/static/pdf.js/locale/tr/viewer.properties
index 19b477322..eaa4eaba8 100644
--- a/static/pdf.js/locale/tr/viewer.properties
+++ b/static/pdf.js/locale/tr/viewer.properties
@@ -18,49 +18,73 @@ previous_label=Önceki
next.title=Sonraki sayfa
next_label=Sonraki
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Sayfa:
-page_of=/ {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Sayfa
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=/ {{pagesCount}}
+# 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=Uzaklaș
-zoom_out_label=Uzaklaș
-zoom_in.title=Yaklaş
-zoom_in_label=Yaklaş
+zoom_out.title=Uzaklaştır
+zoom_out_label=Uzaklaştır
+zoom_in.title=Yaklaştır
+zoom_in_label=Yaklaştır
zoom.title=Yakınlaştırma
presentation_mode.title=Sunum moduna geç
-presentation_mode_label=Sunum Modu
+presentation_mode_label=Sunum modu
open_file.title=Dosya aç
open_file_label=Aç
print.title=Yazdır
print_label=Yazdır
-download.title=İndir
-download_label=İndir
-bookmark.title=Geçerli görünüm (kopyala veya yeni pencerede aç)
-bookmark_label=Geçerli görünüm
+save.title=Kaydet
+save_label=Kaydet
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=İndir
+# 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=İndir
+bookmark1.title=Geçerli sayfa (geçerli sayfanın adresini görüntüle)
+bookmark1_label=Geçerli sayfa
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Uygulamada aç
+# 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=Uygulamada aç
# Secondary toolbar and context menu
tools.title=Araçlar
tools_label=Araçlar
first_page.title=İlk sayfaya git
-first_page.label=İlk sayfaya git
first_page_label=İlk sayfaya git
last_page.title=Son sayfaya git
-last_page.label=Son sayfaya git
last_page_label=Son sayfaya git
page_rotate_cw.title=Saat yönünde döndür
-page_rotate_cw.label=Saat yönünde döndür
page_rotate_cw_label=Saat yönünde döndür
page_rotate_ccw.title=Saat yönünün tersine döndür
-page_rotate_ccw.label=Saat yönünün tersine döndür
page_rotate_ccw_label=Saat yönünün tersine döndür
-hand_tool_enable.title=El aracını etkinleştir
-hand_tool_enable_label=El aracını etkinleştir
-hand_tool_disable.title=El aracını kapat
-hand_tool_disable_label=El aracını kapat
+cursor_text_select_tool.title=Metin seçme aracını etkinleştir
+cursor_text_select_tool_label=Metin seçme aracı
+cursor_hand_tool.title=El aracını etkinleştir
+cursor_hand_tool_label=El aracı
+
+scroll_page.title=Sayfa kaydırmayı kullan
+scroll_page_label=Sayfa kaydırma
+scroll_vertical.title=Dikey kaydırma kullan
+scroll_vertical_label=Dikey kaydırma
+scroll_horizontal.title=Yatay kaydırma kullan
+scroll_horizontal_label=Yatay kaydırma
+scroll_wrapped.title=Yan yana kaydırmayı kullan
+scroll_wrapped_label=Yan yana kaydırma
+
+spread_none.title=Yan yana sayfaları birleştirme
+spread_none_label=Birleştirme
+spread_odd.title=Yan yana sayfaları tek numaralı sayfalardan başlayarak birleştir
+spread_odd_label=Tek numaralı
+spread_even.title=Yan yana sayfaları çift numaralı sayfalardan başlayarak birleştir
+spread_even_label=Çift numaralı
# Document properties dialog box
document_properties.title=Belge özellikleri…
@@ -86,22 +110,58 @@ document_properties_creator=Oluşturan:
document_properties_producer=PDF üreticisi:
document_properties_version=PDF sürümü:
document_properties_page_count=Sayfa sayısı:
+document_properties_page_size=Sayfa boyutu:
+document_properties_page_size_unit_inches=inç
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=dikey
+document_properties_page_size_orientation_landscape=yatay
+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=Hızlı web görünümü:
+document_properties_linearized_yes=Evet
+document_properties_linearized_no=Hayır
document_properties_close=Kapat
+print_progress_message=Belge yazdırılmaya hazırlanıyor…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent=%{{progress}}
+print_progress_close=İptal
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Kenar çubuğunu aç/kapat
+toggle_sidebar_notification2.title=Kenar çubuğunu aç/kapat (Belge ana hat/ekler/katmanlar içeriyor)
toggle_sidebar_label=Kenar çubuğunu aç/kapat
-outline.title=Belge şemasını göster
-outline_label=Belge şeması
+document_outline.title=Belge ana hatlarını göster (Tüm öğeleri genişletmek/daraltmak için çift tıklayın)
+document_outline_label=Belge ana hatları
attachments.title=Ekleri göster
attachments_label=Ekler
+layers.title=Katmanları göster (tüm katmanları varsayılan duruma sıfırlamak için çift tıklayın)
+layers_label=Katmanlar
thumbs.title=Küçük resimleri göster
thumbs_label=Küçük resimler
+current_outline_item.title=Mevcut ana hat öğesini bul
+current_outline_item_label=Mevcut ana hat öğesi
findbar.title=Belgede bul
findbar_label=Bul
+additional_layers=Ek katmanlar
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Sayfa {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Sayfa {{page}}
thumb_page_canvas={{page}}. sayfanın küçük hâli
# Find panel button title and messages
-find_label=Bul:
+find_input.title=Bul
+find_input.placeholder=Belgede bul…
find_previous.title=Önceki eşleşmeyi bul
find_previous_label=Önceki
find_next.title=Sonraki eşleşmeyi bul
find_next_label=Sonraki
find_highlight=Tümünü vurgula
-find_match_case_label=Büyük-küçük harf eşleştir
+find_match_case_label=Büyük-küçük harfe duyarlı
+find_match_diacritics_label=Fonetik işaretleri bul
+find_entire_word_label=Tam sözcükler
find_reached_top=Belgenin başına ulaşıldı, sonundan devam edildi
find_reached_bottom=Belgenin sonuna ulaşıldı, başından devam edildi
+# 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]={{total}} eşleşmeden {{current}}. eşleşme
+find_match_count[two]={{total}} eşleşmeden {{current}}. eşleşme
+find_match_count[few]={{total}} eşleşmeden {{current}}. eşleşme
+find_match_count[many]={{total}} eşleşmeden {{current}}. eşleşme
+find_match_count[other]={{total}} eşleşmeden {{current}}. eşleşme
+# 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}} eşleşmeden fazla
+find_match_count_limit[one]={{limit}} eşleşmeden fazla
+find_match_count_limit[two]={{limit}} eşleşmeden fazla
+find_match_count_limit[few]={{limit}} eşleşmeden fazla
+find_match_count_limit[many]={{limit}} eşleşmeden fazla
+find_match_count_limit[other]={{limit}} eşleşmeden fazla
find_not_found=Eşleşme bulunamadı
-# Error panel labels
-error_more_info=Daha fazla bilgi al
-error_less_info=Daha az bilgi
-error_close=Kapat
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-error_version_info=PDF.js sürüm {{version}} (yapı: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=İleti: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Yığın: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Dosya: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Satır: {{line}}
-rendering_error=Sayfa yorumlanırken bir hata oluştu.
-
# Predefined zoom values
page_scale_width=Sayfa genişliği
page_scale_fit=Sayfayı sığdır
@@ -151,23 +216,68 @@ page_scale_actual=Gerçek boyut
page_scale_percent=%{{scale}}
# Loading indicator messages
-loading_error_indicator=Hata
loading_error=PDF yüklenirken bir hata oluştu.
invalid_file_error=Geçersiz veya bozulmuş PDF dosyası.
missing_file_error=PDF dosyası eksik.
unexpected_response_error=Beklenmeyen sunucu yanıtı.
+rendering_error=Sayfa yorumlanırken bir hata oluştu.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} işareti]
-password_label=Bu PDF dosyasını açmak için parolasını girin.
-password_invalid=Geçersiz parola. Lütfen tekrar deneyin.
+password_label=Bu PDF dosyasını açmak için parolasını yazın.
+password_invalid=Geçersiz parola. Lütfen yeniden deneyin.
password_ok=Tamam
password_cancel=İptal
printing_not_supported=Uyarı: Yazdırma bu tarayıcı tarafından tam olarak desteklenmemektedir.
printing_not_ready=Uyarı: PDF tamamen yüklenmedi ve yazdırmaya hazır değil.
web_fonts_disabled=Web fontları devre dışı: Gömülü PDF fontları kullanılamıyor.
-document_colors_not_allowed=PDF belgelerinin kendi renklerini kullanması için izin verilmiyor: 'Sayfalara kendi renklerini seçmesi için izin ver' tarayıcıda etkinleştirilmemiş.
+
+# Editor
+editor_free_text2.title=Metin
+editor_free_text2_label=Metin
+editor_ink2.title=Çiz
+editor_ink2_label=Çiz
+
+editor_stamp1.title=Resim ekle veya düzenle
+editor_stamp1_label=Resim ekle veya düzenle
+
+free_text2_default_content=Yazmaya başlayın…
+
+# Editor Parameters
+editor_free_text_color=Renk
+editor_free_text_size=Boyut
+editor_ink_color=Renk
+editor_ink_thickness=Kalınlık
+editor_ink_opacity=Saydamlık
+
+editor_stamp_add_image_label=Resim ekle
+editor_stamp_add_image.title=Resim ekle
+
+# Editor aria
+editor_free_text2_aria_label=Metin düzenleyicisi
+editor_ink2_aria_label=Çizim düzenleyicisi
+editor_ink_canvas_aria_label=Kullanıcı tarafından oluşturulan resim
+
+# 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=Alternatif metin
+editor_alt_text_edit_button_label=Alternatif metni düzenle
+editor_alt_text_dialog_label=Bir seçenek seçin
+editor_alt_text_dialog_description=Alternatif metin, insanlar görseli göremediğinde veya görsel yüklenmediğinde işe yarar.
+editor_alt_text_add_description_label=Açıklama ekle
+editor_alt_text_mark_decorative_label=Dekoratif olarak işaretle
+editor_alt_text_mark_decorative_description=Kenarlıklar veya filigranlar gibi dekoratif görüntüler için kullanılır.
+editor_alt_text_cancel_button=Vazgeç
+editor_alt_text_save_button=Kaydet
+editor_alt_text_decorative_tooltip=Dekoratif olarak işaretlendi
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=Örneğin, “Genç bir adam yemek yemek için masaya oturuyor”
diff --git a/static/pdf.js/locale/trs/viewer.properties b/static/pdf.js/locale/trs/viewer.properties
new file mode 100644
index 000000000..1a56e5b5e
--- /dev/null
+++ b/static/pdf.js/locale/trs/viewer.properties
@@ -0,0 +1,184 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Pajinâ gunâj rukùu
+previous_label=Sa gachin
+next.title=Pajinâ 'na' ñaan
+next_label=Ne' ñaan
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Ñanj
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=si'iaj {{pagesCount}}
+# 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=Nagi'iaj li'
+zoom_out_label=Nagi'iaj li'
+zoom_in.title=Nagi'iaj niko'
+zoom_in_label=Nagi'iaj niko'
+zoom.title=dàj nìko ma'an
+presentation_mode.title=Naduno' daj ga ma
+presentation_mode_label=Daj gà ma
+open_file.title=Na'nïn' chrû ñanj
+open_file_label=Na'nïn
+print.title=Nari' ña du'ua
+print_label=Nari' ñadu'ua
+
+# Secondary toolbar and context menu
+tools.title=Rasun
+tools_label=Nej rasùun
+first_page.title=gun' riña pajina asiniin
+first_page_label=Gun' riña pajina asiniin
+last_page.title=Gun' riña pajina rukù ni'in
+last_page_label=Gun' riña pajina rukù ni'inj
+page_rotate_cw.title=Tanikaj ne' huat
+page_rotate_cw_label=Tanikaj ne' huat
+page_rotate_ccw.title=Tanikaj ne' chînt'
+page_rotate_ccw_label=Tanikaj ne' chint
+
+cursor_text_select_tool.title=Dugi'iaj sun' sa ganahui texto
+cursor_text_select_tool_label=Nej rasun arajsun' da' nahui' texto
+cursor_hand_tool.title=Nachrun' nej rasun
+cursor_hand_tool_label=Sa rajsun ro'o'
+
+scroll_vertical.title=Garasun' dukuán runūu
+scroll_vertical_label=Dukuán runūu
+scroll_horizontal.title=Garasun' dukuán nikin' nahui
+scroll_horizontal_label=Dukuán nikin' nahui
+scroll_wrapped.title=Garasun' sa nachree
+scroll_wrapped_label=Sa nachree
+
+spread_none.title=Si nagi'iaj nugun'un' nej pagina hua ninin
+spread_none_label=Ni'io daj hua pagina
+spread_odd.title=Nagi'iaj nugua'ant nej pajina
+spread_odd_label=Ni'io' daj hua libro gurin
+spread_even.title=Nakāj dugui' ngà nej pajinâ ayi'ì ngà da' hùi hùi
+spread_even_label=Nahuin nìko nej
+
+# Document properties dialog box
+document_properties.title=Nej sa nikāj ñanj…
+document_properties_label=Nej sa nikāj ñanj…
+document_properties_file_name=Si yugui archîbo:
+document_properties_file_size=Dàj yachìj archîbo:
+# 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)
+# 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_title=Si yugui:
+document_properties_author=Sí girirà:
+document_properties_subject=Dugui':
+document_properties_keywords=Nej nuguan' huìi:
+document_properties_creation_date=Gui gurugui' man:
+document_properties_modification_date=Nuguan' nahuin nakà:
+# 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=Guiri ro'
+document_properties_producer=Sa ri PDF:
+document_properties_version=PDF Version:
+document_properties_page_count=Si Guendâ Pâjina:
+document_properties_page_size=Dàj yachìj pâjina:
+document_properties_page_size_unit_inches=riña
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=nadu'ua
+document_properties_page_size_orientation_landscape=dàj huaj
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Da'ngà'a
+document_properties_page_size_name_legal=Nuguan' a'nï'ïn
+# 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=Nanèt chre ni'iajt riña Web:
+document_properties_linearized_yes=Ga'ue
+document_properties_linearized_no=Si ga'ue
+document_properties_close=Narán
+
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Duyichin'
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Nadunā barrâ nù yi'nïn
+toggle_sidebar_label=Nadunā barrâ nù yi'nïn
+findbar_label=Narì'
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+
+# Find panel button title and messages
+find_input.title=Narì'
+find_previous_label=Sa gachîn
+find_next_label=Ne' ñaan
+find_highlight=Daran' sa ña'an
+find_match_case_label=Match case
+# 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}} si'iaj {{total}} guña gè huaj
+find_match_count[two]={{current}} si'iaj {{total}} guña gè huaj
+find_match_count[few]={{current}} si'iaj {{total}} guña gè huaj
+find_match_count[many]={{current}} si'iaj {{total}} guña gè huaj
+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]=Doj ngà da' {{limit}} nej sa nari' dugui'i
+find_match_count_limit[one]=Doj ngà da' {{limit}} sa nari' dugui'i
+find_match_count_limit[two]=Doj ngà da' {{limit}} nej sa nari' dugui'i
+find_match_count_limit[few]=Doj ngà da' {{limit}} nej sa nari' dugui'i
+find_match_count_limit[many]=Doj ngà da' {{limit}} nej sa nari' dugui'i
+find_match_count_limit[other]=Doj ngà da' {{limit}} nej sa nari' dugui'i
+find_not_found=Nu narì'ij nugua'anj
+
+# Predefined zoom values
+page_scale_actual=Dàj yàchi akuan' nín
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# 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.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+password_ok=Ga'ue
+password_cancel=Duyichin'
+
diff --git a/static/pdf.js/locale/uk/viewer.properties b/static/pdf.js/locale/uk/viewer.properties
index f899197df..64864e05b 100644
--- a/static/pdf.js/locale/uk/viewer.properties
+++ b/static/pdf.js/locale/uk/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Попередня
next.title=Наступна сторінка
next_label=Наступна
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Сторінка:
-page_of=з {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Сторінка
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=із {{pagesCount}}
+# 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_label=Зменшити
@@ -36,31 +39,52 @@ open_file.title=Відкрити файл
open_file_label=Відкрити
print.title=Друк
print_label=Друк
-download.title=Завантажити
-download_label=Завантажити
-bookmark.title=Поточний вигляд (копіювати чи відкрити у новому вікні)
-bookmark_label=Поточний вигляд
+save.title=Зберегти
+save_label=Зберегти
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
tools.title=Інструменти
tools_label=Інструменти
first_page.title=На першу сторінку
-first_page.label=На першу сторінку
first_page_label=На першу сторінку
last_page.title=На останню сторінку
-last_page.label=На останню сторінку
last_page_label=На останню сторінку
page_rotate_cw.title=Повернути за годинниковою стрілкою
-page_rotate_cw.label=Повернути за годинниковою стрілкою
page_rotate_cw_label=Повернути за годинниковою стрілкою
page_rotate_ccw.title=Повернути проти годинникової стрілки
-page_rotate_ccw.label=Повернути проти годинникової стрілки
page_rotate_ccw_label=Повернути проти годинникової стрілки
-hand_tool_enable.title=Увімкнути інструмент «Рука»
-hand_tool_enable_label=Увімкнути інструмент «Рука»
-hand_tool_disable.title=Вимкнути інструмент «Рука»
-hand_tool_disable_label=Вимкнути інструмент «Рука»
+cursor_text_select_tool.title=Увімкнути інструмент вибору тексту
+cursor_text_select_tool_label=Інструмент вибору тексту
+cursor_hand_tool.title=Увімкнути інструмент "Рука"
+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.title=Властивості документа…
@@ -86,22 +110,58 @@ document_properties_creator=Створено:
document_properties_producer=Виробник PDF:
document_properties_version=Версія PDF:
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=Закрити
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Бічна панель
+toggle_sidebar_notification2.title=Перемкнути бічну панель (документ містить ескіз/вкладення/шари)
toggle_sidebar_label=Перемкнути бічну панель
-outline.title=Показувати схему документа
-outline_label=Схема документа
+document_outline.title=Показати схему документу (подвійний клік для розгортання/згортання елементів)
+document_outline_label=Схема документа
attachments.title=Показати прикріплення
attachments_label=Прикріплення
+layers.title=Показати шари (двічі клацніть, щоб скинути всі шари до типового стану)
+layers_label=Шари
thumbs.title=Показувати ескізи
thumbs_label=Ескізи
-findbar.title=Шукати в документі
-findbar_label=Пошук
+current_outline_item.title=Знайти поточний елемент змісту
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,57 +171,66 @@ thumb_page_title=Сторінка {{page}}
thumb_page_canvas=Ескіз сторінки {{page}}
# Find panel button title and messages
-find_label=Знайти:
+find_input.title=Знайти
+find_input.placeholder=Знайти в документі…
find_previous.title=Знайти попереднє входження фрази
find_previous_label=Попереднє
find_next.title=Знайти наступне входження фрази
find_next_label=Наступне
find_highlight=Підсвітити все
find_match_case_label=З урахуванням регістру
+find_match_diacritics_label=Відповідність діакритичних знаків
+find_entire_word_label=Цілі слова
find_reached_top=Досягнуто початку документу, продовжено з кінця
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=Фразу не знайдено
-# 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
page_scale_width=За шириною
-page_scale_fit=Умістити
-page_scale_auto=Авто-масштаб
+page_scale_fit=Вмістити
+page_scale_auto=Автомасштаб
page_scale_actual=Дійсний розмір
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Помилка
loading_error=Під час завантаження PDF сталася помилка.
invalid_file_error=Недійсний або пошкоджений PDF-файл.
missing_file_error=Відсутній PDF-файл.
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}}-аннотація]
+text_annotation_type.alt=[{{type}}-анотація]
password_label=Введіть пароль для відкриття цього PDF-файла.
password_invalid=Невірний пароль. Спробуйте ще.
password_ok=Гаразд
@@ -170,4 +239,46 @@ password_cancel=Скасувати
printing_not_supported=Попередження: Цей браузер не повністю підтримує друк.
printing_not_ready=Попередження: 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=Наприклад, “Молодий чоловік сідає за стіл їсти”
diff --git a/static/pdf.js/locale/ur/viewer.properties b/static/pdf.js/locale/ur/viewer.properties
index 4551f6316..f2927fe4e 100644
--- a/static/pdf.js/locale/ur/viewer.properties
+++ b/static/pdf.js/locale/ur/viewer.properties
@@ -18,12 +18,15 @@ previous_label=پچھلا
next.title=اگلا صفحہ
next_label=آگے
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=صفحہ:
-page_of={{pageCount}} کا
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=صفحہ
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages={{pagesCount}} کا
+# 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_label=باہر زوم کریں
@@ -36,31 +39,33 @@ open_file.title=مسل کھولیں
open_file_label=کھولیں
print.title=چھاپیں
print_label=چھاپیں
-download.title=ڈاؤن لوڈ
-download_label=ڈاؤن لوڈ
-bookmark.title=حالیہ نظارہ (نۓ دریچہ میں نقل کریں یا کھولیں)
-bookmark_label=حالیہ نظارہ
# Secondary toolbar and context menu
tools.title=آلات
tools_label=آلات
first_page.title=پہلے صفحہ پر جائیں
-first_page.label=پہلے صفحہ پر جائیں
first_page_label=پہلے صفحہ پر جائیں
last_page.title=آخری صفحہ پر جائیں
-last_page.label=آخری صفحہ پر جائیں
last_page_label=آخری صفحہ پر جائیں
page_rotate_cw.title=گھڑی وار گھمائیں
-page_rotate_cw.label=گھڑی وار گھمائیں
page_rotate_cw_label=گھڑی وار گھمائیں
page_rotate_ccw.title=ضد گھڑی وار گھمائیں
-page_rotate_ccw.label=ضد گھڑی وار گھمائیں
page_rotate_ccw_label=ضد گھڑی وار گھمائیں
-hand_tool_enable.title=ہاتھ ٹول اہل بنائیں
-hand_tool_enable_label=ہاتھ ٹول اہل بنائیں
-hand_tool_disable.title=ہاتھ ٹول nنااہل بنائیں\u0020
-hand_tool_disable_label=ہاتھ ٹول نااہل بنائیں
+cursor_text_select_tool.title=متن کے انتخاب کے ٹول کو فعال بناے
+cursor_text_select_tool_label=متن کے انتخاب کا آلہ
+cursor_hand_tool.title=ہینڈ ٹول کو فعال بناییں
+cursor_hand_tool_label=ہاتھ کا آلہ
+
+scroll_vertical.title=عمودی اسکرولنگ کا استعمال کریں
+scroll_vertical_label=عمودی اسکرولنگ
+scroll_horizontal.title=افقی سکرولنگ کا استعمال کریں
+scroll_horizontal_label=افقی سکرولنگ
+
+spread_none.title=صفحہ پھیلانے میں شامل نہ ہوں
+spread_none_label=کوئی پھیلاؤ نہیں
+spread_odd_label=تاک پھیلاؤ
+spread_even_label=جفت پھیلاؤ
# Document properties dialog box
document_properties.title=دستاویز خواص…
@@ -86,15 +91,43 @@ document_properties_creator=تخلیق کار:
document_properties_producer=PDF پیدا کار:
document_properties_version=PDF ورژن:
document_properties_page_count=صفحہ شمار:
+document_properties_page_size=صفہ کی لمبائ:
+document_properties_page_size_unit_inches=میں
+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=بند کریں
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=سلائیڈ ٹوگل کریں
toggle_sidebar_label=سلائیڈ ٹوگل کریں
-outline.title=دستاویز آؤٹ لائن دکھائیں
-outline_label=دستاویز آؤٹ لائن
+document_outline.title=دستاویز کی سرخیاں دکھایں (تمام اشیاء وسیع / غائب کرنے کے لیے ڈبل کلک کریں)
+document_outline_label=دستاویز آؤٹ لائن
attachments.title=منسلکات دکھائیں
attachments_label=منسلکات
thumbs.title=تھمبنیل دکھائیں
@@ -102,6 +135,8 @@ thumbs_label=مجمل
findbar.title=دستاویز میں ڈھونڈیں
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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +146,39 @@ thumb_page_title=صفحہ {{page}}
thumb_page_canvas=صفحے کا مجمل {{page}}
# Find panel button title and messages
-find_label=ڈھونڈیں:
+find_input.title=ڈھونڈیں
+find_input.placeholder=دستاویز… میں ڈھونڈیں
find_previous.title=فقرے کا پچھلا وقوع ڈھونڈیں
find_previous_label=پچھلا
find_next.title=فقرے کا اگلہ وقوع ڈھونڈیں
find_next_label=آگے
find_highlight=تمام نمایاں کریں
find_match_case_label=حروف مشابہ کریں
+find_entire_word_label=تمام الفاظ
find_reached_top=صفحہ کے شروع پر پہنچ گیا، نیچے سے جاری کیا
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]={{total}} میچ کا {{current}}
+find_match_count[few]={{total}} میچوں میں سے {{current}}
+find_match_count[many]={{total}} میچوں میں سے {{current}}
+find_match_count[other]={{total}} میچوں میں سے {{current}}
+# 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(total) ]}
+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=فقرا نہیں ملا
-# 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
page_scale_width=صفحہ چوڑائی
page_scale_fit=صفحہ فٹنگ
@@ -151,12 +189,17 @@ page_scale_actual=اصل سائز
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=نقص
loading_error=PDF لوڈ کرتے وقت نقص آ گیا۔
invalid_file_error=ناجائز یا خراب PDF مسل
missing_file_error=PDF مسل غائب ہے۔
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -164,10 +207,12 @@ unexpected_response_error=غیرمتوقع پیش کار جواب
text_annotation_type.alt=[{{type}} نوٹ]
password_label=PDF مسل کھولنے کے لیے پاس ورڈ داخل کریں.
password_invalid=ناجائز پاس ورڈ. براےؑ کرم دوبارہ کوشش کریں.
-password_ok=سہی
+password_ok=ٹھیک ہے
password_cancel=منسوخ کریں
printing_not_supported=تنبیہ:چھاپنا اس براؤزر پر پوری طرح معاونت شدہ نہیں ہے۔
printing_not_ready=تنبیہ: PDF چھپائی کے لیے پوری طرح لوڈ نہیں ہوئی۔
web_fonts_disabled=ویب فانٹ نا اہل ہیں: شامل PDF فانٹ استعمال کرنے میں ناکام۔
-document_colors_not_allowed=PDF دستاویزات کو اپنے رنگ استعمال کرنے کی اجازت نہیں: 'صفحات کو اپنے رنگ چنیں' کی اِجازت براؤزر میں بے عمل ہے۔
+# LOCALIZATION NOTE (unsupported_feature_signatures): Should contain the same
+# exact string as in the `chrome.properties` file.
+
diff --git a/static/pdf.js/locale/uz/viewer.properties b/static/pdf.js/locale/uz/viewer.properties
new file mode 100644
index 000000000..b8d81970b
--- /dev/null
+++ b/static/pdf.js/locale/uz/viewer.properties
@@ -0,0 +1,142 @@
+# 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.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Oldingi sahifa
+previous_label=Oldingi
+next.title=Keyingi sahifa
+next_label=Keyingi
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=/{{pagesCount}}
+# 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.
+
+zoom_out.title=Kichiklashtirish
+zoom_out_label=Kichiklashtirish
+zoom_in.title=Kattalashtirish
+zoom_in_label=Kattalashtirish
+zoom.title=Masshtab
+presentation_mode.title=Namoyish usuliga oʻtish
+presentation_mode_label=Namoyish usuli
+open_file.title=Faylni ochish
+open_file_label=Ochish
+print.title=Chop qilish
+print_label=Chop qilish
+
+# Secondary toolbar and context menu
+tools.title=Vositalar
+tools_label=Vositalar
+first_page.title=Birinchi sahifaga oʻtish
+first_page_label=Birinchi sahifaga oʻtish
+last_page.title=Soʻnggi sahifaga oʻtish
+last_page_label=Soʻnggi sahifaga oʻtish
+page_rotate_cw.title=Soat yoʻnalishi boʻyicha burish
+page_rotate_cw_label=Soat yoʻnalishi boʻyicha burish
+page_rotate_ccw.title=Soat yoʻnalishiga qarshi burish
+page_rotate_ccw_label=Soat yoʻnalishiga qarshi burish
+
+
+# Document properties dialog box
+document_properties.title=Hujjat xossalari
+document_properties_label=Hujjat xossalari
+document_properties_file_name=Fayl nomi:
+document_properties_file_size=Fayl hajmi:
+# 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)
+# 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_title=Nomi:
+document_properties_author=Muallifi:
+document_properties_subject=Mavzusi:
+document_properties_keywords=Kalit so‘zlar
+document_properties_creation_date=Yaratilgan sanasi:
+document_properties_modification_date=O‘zgartirilgan sanasi
+# 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=Yaratuvchi:
+document_properties_producer=PDF ishlab chiqaruvchi:
+document_properties_version=PDF versiyasi:
+document_properties_page_count=Sahifa soni:
+document_properties_close=Yopish
+
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Yon panelni yoqib/oʻchirib qoʻyish
+toggle_sidebar_label=Yon panelni yoqib/oʻchirib qoʻyish
+document_outline_label=Hujjat tuzilishi
+attachments.title=Ilovalarni ko‘rsatish
+attachments_label=Ilovalar
+thumbs.title=Nishonchalarni koʻrsatish
+thumbs_label=Nishoncha
+findbar.title=Hujjat ichidan topish
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title={{page}} sahifa
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas={{page}} sahifa nishonchasi
+
+# Find panel button title and messages
+find_previous.title=Soʻzlardagi oldingi hodisani topish
+find_previous_label=Oldingi
+find_next.title=Iboradagi keyingi hodisani topish
+find_next_label=Keyingi
+find_highlight=Barchasini ajratib koʻrsatish
+find_match_case_label=Katta-kichik harflarni farqlash
+find_reached_top=Hujjatning boshigacha yetib keldik, pastdan davom ettiriladi
+find_reached_bottom=Hujjatning oxiriga yetib kelindi, yuqoridan davom ettirladi
+find_not_found=Soʻzlar topilmadi
+
+# Predefined zoom values
+page_scale_width=Sahifa eni
+page_scale_fit=Sahifani moslashtirish
+page_scale_auto=Avtomatik masshtab
+page_scale_actual=Haqiqiy hajmi
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+loading_error=PDF yuklanayotganda xato yuz berdi.
+invalid_file_error=Xato yoki buzuq PDF fayli.
+missing_file_error=PDF fayl kerak.
+unexpected_response_error=Kutilmagan server javobi.
+
+rendering_error=Sahifa renderlanayotganda xato yuz berdi.
+
+# 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
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Annotation]
+password_label=PDF faylni ochish uchun parolni kiriting.
+password_invalid=Parol - notoʻgʻri. Qaytadan urinib koʻring.
+password_ok=OK
+
+printing_not_supported=Diqqat: chop qilish bruzer tomonidan toʻliq qoʻllab-quvvatlanmaydi.
+printing_not_ready=Diqqat: PDF fayl chop qilish uchun toʻliq yuklanmadi.
+web_fonts_disabled=Veb shriftlar oʻchirilgan: ichki PDF shriftlardan foydalanib boʻlmmaydi.
+
diff --git a/static/pdf.js/locale/vi/viewer.properties b/static/pdf.js/locale/vi/viewer.properties
index 93a95403f..3b87eef3a 100644
--- a/static/pdf.js/locale/vi/viewer.properties
+++ b/static/pdf.js/locale/vi/viewer.properties
@@ -13,54 +13,78 @@
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Trang Trước
+previous.title=Trang trước
previous_label=Trước
next.title=Trang Sau
next_label=Tiếp
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Trang:
-page_of=trên {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Trang
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=trên {{pagesCount}}
+# 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}} trên {{pagesCount}})
zoom_out.title=Thu nhỏ
zoom_out_label=Thu nhỏ
zoom_in.title=Phóng to
zoom_in_label=Phóng to
-zoom.title=Chỉnh kích thước
+zoom.title=Thu phóng
presentation_mode.title=Chuyển sang chế độ trình chiếu
presentation_mode_label=Chế độ trình chiếu
open_file.title=Mở tập tin
open_file_label=Mở tập tin
print.title=In
print_label=In
-download.title=Tải xuống
-download_label=Tải xuống
-bookmark.title=Góc nhìn hiện tại (copy hoặc mở trong cửa sổ mới)
-bookmark_label=Chế độ xem hiện tại
+save.title=Lưu
+save_label=Lưu
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+download_button.title=Tải xuống
+# 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ải xuống
+bookmark1.title=Trang hiện tại (xem URL từ trang hiện tại)
+bookmark1_label=Trang hiện tại
+# LOCALIZATION NOTE (open_in_app.title): This string is used in Firefox for Android.
+open_in_app.title=Mở trong ứng dụng
+# 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=Mở trong ứng dụng
# Secondary toolbar and context menu
tools.title=Công cụ
tools_label=Công cụ
first_page.title=Về trang đầu
-first_page.label=Về trang đầu
first_page_label=Về trang đầu
last_page.title=Đến trang cuối
-last_page.label=Đến trang cuối
last_page_label=Đến trang cuối
page_rotate_cw.title=Xoay theo chiều kim đồng hồ
-page_rotate_cw.label=Xoay theo chiều kim đồng hồ
page_rotate_cw_label=Xoay theo chiều kim đồng hồ
page_rotate_ccw.title=Xoay ngược chiều kim đồng hồ
-page_rotate_ccw.label=Xoay ngược chiều kim đồng hồ
page_rotate_ccw_label=Xoay ngược chiều kim đồng hồ
-hand_tool_enable.title=Cho phép kéo để cuộn trang
-hand_tool_enable_label=Cho phép kéo để cuộn trang
-hand_tool_disable.title=Tắt kéo để cuộn trang
-hand_tool_disable_label=Tắt kéo để cuộn trang
+cursor_text_select_tool.title=Kích hoạt công cụ chọn vùng văn bản
+cursor_text_select_tool_label=Công cụ chọn vùng văn bản
+cursor_hand_tool.title=Kích hoạt công cụ con trỏ
+cursor_hand_tool_label=Công cụ con trỏ
+
+scroll_page.title=Sử dụng cuộn trang hiện tại
+scroll_page_label=Cuộn trang hiện tại
+scroll_vertical.title=Sử dụng cuộn dọc
+scroll_vertical_label=Cuộn dọc
+scroll_horizontal.title=Sử dụng cuộn ngang
+scroll_horizontal_label=Cuộn ngang
+scroll_wrapped.title=Sử dụng cuộn ngắt dòng
+scroll_wrapped_label=Cuộn ngắt dòng
+
+spread_none.title=Không nối rộng trang
+spread_none_label=Không có phân cách
+spread_odd.title=Nối trang bài bắt đầu với các trang được đánh số lẻ
+spread_odd_label=Phân cách theo số lẻ
+spread_even.title=Nối trang bài bắt đầu với các trang được đánh số chẵn
+spread_even_label=Phân cách theo số chẵn
# Document properties dialog box
document_properties.title=Thuộc tính của tài liệu…
@@ -86,22 +110,58 @@ document_properties_creator=Người tạo:
document_properties_producer=Phần mềm tạo PDF:
document_properties_version=Phiên bản PDF:
document_properties_page_count=Tổng số trang:
+document_properties_page_size=Kích thước trang:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=khổ dọc
+document_properties_page_size_orientation_landscape=khổ ngang
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Thư
+document_properties_page_size_name_legal=Pháp lý
+# 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=Xem nhanh trên web:
+document_properties_linearized_yes=Có
+document_properties_linearized_no=Không
document_properties_close=Ðóng
+print_progress_message=Chuẩn bị trang để in…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Hủy bỏ
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Bật/Tắt thanh lề
+toggle_sidebar_notification2.title=Bật tắt thanh lề (tài liệu bao gồm bản phác thảo/tập tin đính kèm/lớp)
toggle_sidebar_label=Bật/Tắt thanh lề
-outline.title=Hiển thị bản phác tài liệu
-outline_label=Bản phác tài liệu
+document_outline.title=Hiển thị tài liệu phác thảo (nhấp đúp vào để mở rộng/thu gọn tất cả các mục)
+document_outline_label=Bản phác tài liệu
attachments.title=Hiện nội dung đính kèm
attachments_label=Nội dung đính kèm
+layers.title=Hiển thị các lớp (nhấp đúp để đặt lại tất cả các lớp về trạng thái mặc định)
+layers_label=Lớp
thumbs.title=Hiển thị ảnh thu nhỏ
thumbs_label=Ảnh thu nhỏ
+current_outline_item.title=Tìm mục phác thảo hiện tại
+current_outline_item_label=Mục phác thảo hiện tại
findbar.title=Tìm trong tài liệu
findbar_label=Tìm
+additional_layers=Các lớp bổ sung
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Trang {{page}}
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
@@ -111,36 +171,41 @@ thumb_page_title=Trang {{page}}
thumb_page_canvas=Ảnh thu nhỏ của trang {{page}}
# Find panel button title and messages
-find_label=Tìm:
+find_input.title=Tìm
+find_input.placeholder=Tìm trong tài liệu…
find_previous.title=Tìm cụm từ ở phần trước
find_previous_label=Trước
find_next.title=Tìm cụm từ ở phần sau
find_next_label=Tiếp
find_highlight=Tô sáng tất cả
find_match_case_label=Phân biệt hoa, thường
+find_match_diacritics_label=Khớp dấu phụ
+find_entire_word_label=Toàn bộ từ
find_reached_top=Đã đến phần đầu tài liệu, quay trở lại từ cuối
find_reached_bottom=Đã đến phần cuối của tài liệu, quay trở lại từ đầu
+# 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}} của {{total}} đã trùng
+find_match_count[two]={{current}} của {{total}} đã trùng
+find_match_count[few]={{current}} của {{total}} đã trùng
+find_match_count[many]={{current}} của {{total}} đã trùng
+find_match_count[other]={{current}} của {{total}} đã trùng
+# 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]=Nhiều hơn {{limit}} đã trùng
+find_match_count_limit[one]=Nhiều hơn {{limit}} đã trùng
+find_match_count_limit[two]=Nhiều hơn {{limit}} đã trùng
+find_match_count_limit[few]=Nhiều hơn {{limit}} đã trùng
+find_match_count_limit[many]=Nhiều hơn {{limit}} đã trùng
+find_match_count_limit[other]=Nhiều hơn {{limit}} đã trùng
find_not_found=Không tìm thấy cụm từ này
-# Error panel labels
-error_more_info=Thông tin thêm
-error_less_info=Hiển thị ít thông tin hơn
-error_close=Đóng
-# 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=Thông điệp: {{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=Tập tin: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Dòng: {{line}}
-rendering_error=Lỗi khi hiển thị trang.
-
# Predefined zoom values
page_scale_width=Vừa chiều rộng
page_scale_fit=Vừa chiều cao
@@ -151,11 +216,15 @@ page_scale_actual=Kích thước thực
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=Lỗi
loading_error=Lỗi khi tải tài liệu PDF.
invalid_file_error=Tập tin PDF hỏng hoặc không hợp lệ.
missing_file_error=Thiếu tập tin PDF.
unexpected_response_error=Máy chủ có phản hồi lạ.
+rendering_error=Lỗi khi hiển thị trang.
+
+# 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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,4 +239,32 @@ password_cancel=Hủy bỏ
printing_not_supported=Cảnh báo: In ấn không được hỗ trợ đầy đủ ở trình duyệt này.
printing_not_ready=Cảnh báo: PDF chưa được tải hết để in.
web_fonts_disabled=Phông chữ Web bị vô hiệu hóa: không thể sử dụng các phông chữ PDF được nhúng.
-document_colors_not_allowed=Tài liệu PDF không được cho phép dùng màu riêng: 'Cho phép trang chọn màu riêng' đã bị tắt trên trình duyệt.
+
+# Editor
+editor_free_text2.title=Văn bản
+editor_free_text2_label=Văn bản
+editor_ink2.title=Vẽ
+editor_ink2_label=Vẽ
+
+editor_stamp.title=Thêm một ảnh
+editor_stamp_label=Thêm một ảnh
+
+editor_stamp1.title=Thêm hoặc chỉnh sửa hình ảnh
+editor_stamp1_label=Thêm hoặc chỉnh sửa hình ảnh
+
+free_text2_default_content=Bắt đầu nhập…
+
+# Editor Parameters
+editor_free_text_color=Màu
+editor_free_text_size=Kích cỡ
+editor_ink_color=Màu
+editor_ink_thickness=Độ dày
+editor_ink_opacity=Độ mờ
+
+editor_stamp_add_image_label=Thêm hình ảnh
+editor_stamp_add_image.title=Thêm hình ảnh
+
+# Editor aria
+editor_free_text2_aria_label=Trình sửa văn bản
+editor_ink2_aria_label=Trình sửa nét vẽ
+editor_ink_canvas_aria_label=Hình ảnh do người dùng tạo
diff --git a/static/pdf.js/locale/wo/viewer.properties b/static/pdf.js/locale/wo/viewer.properties
index 1e70845b6..28ec9633e 100644
--- a/static/pdf.js/locale/wo/viewer.properties
+++ b/static/pdf.js/locale/wo/viewer.properties
@@ -18,12 +18,12 @@ previous_label=Bi jiitu
next.title=Xët wi ci topp
next_label=Bi ci topp
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Xët:
-page_of=ci {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+# 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.
zoom_out.title=Wàññi
zoom_out_label=Wàññi
@@ -36,10 +36,6 @@ open_file.title=Ubbi benn dencukaay
open_file_label=Ubbi
print.title=Móol
print_label=Móol
-download.title=Yeb yi
-download_label=Yeb yi
-bookmark.title=Wone bi taxaw (duppi walla ubbi palanteer bu bees)
-bookmark_label=Wone bi feeñ
# Secondary toolbar and context menu
@@ -53,11 +49,12 @@ document_properties_title=Bopp:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
-outline.title=Wone takku yi
-outline_label=Takku jukki yi
thumbs.title=Wone nataal yu ndaw yi
thumbs_label=Nataal yu ndaw yi
findbar.title=Gis ci biir jukki bi
@@ -66,13 +63,12 @@ findbar_label=Wut
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
-thumb_page_title=Xët {{xët}}
+thumb_page_title=Xët {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
-thumb_page_canvas=Wiñet bu xët{{xët}}
+thumb_page_canvas=Wiñet bu xët {{page}}
# Find panel button title and messages
-find_label=Wut:
find_previous.title=Seet beneen kaddu bu ni mel te jiitu
find_previous_label=Bi jiitu
find_next.title=Seet beneen kaddu bu ni mel
@@ -83,23 +79,6 @@ find_reached_top=Jot nañu ndorteel xët wi, kontine dale ko ci suuf
find_reached_bottom=Jot nañu jeexitalu xët wi, kontine ci ndorte
find_not_found=Gisiñu kaddu gi
-# Error panel labels
-error_more_info=Xibaar yu gën bari
-error_less_info=Xibaar yu gën bari
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Bataaxal: {{bataaxal}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Juug: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Dencukaay: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Rëdd : {{line}}
-rendering_error=Am njumte bu am bi xët bi di wonewu.
-
# Predefined zoom values
page_scale_width=Yaatuwaay bu mët
page_scale_fit=Xët lëmm
@@ -108,11 +87,11 @@ page_scale_actual=Dayo bi am
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
-# Loading indicator messages
-loading_error_indicator=Njumte
loading_error=Am na njumte ci yebum dencukaay PDF bi.
invalid_file_error=Dencukaay PDF bi baaxul walla mu sankar.
+rendering_error=Am njumte bu am bi xët bi di wonewu.
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -122,3 +101,4 @@ password_ok=OK
password_cancel=Neenal
printing_not_supported=Artu: Joowkat bii nanguwul lool mool.
+
diff --git a/static/pdf.js/locale/xh/viewer.properties b/static/pdf.js/locale/xh/viewer.properties
index db46b4c8c..16c457cf5 100644
--- a/static/pdf.js/locale/xh/viewer.properties
+++ b/static/pdf.js/locale/xh/viewer.properties
@@ -18,12 +18,15 @@ previous_label=Okwangaphambili
next.title=Iphepha elilandelayo
next_label=Okulandelayo
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Iphepha:
-page_of=kwali- {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Iphepha
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=kwali- {{pagesCount}}
+# 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}} kwali {{pagesCount}})
zoom_out.title=Bhekelisela Kudana
zoom_out_label=Bhekelisela Kudana
@@ -36,31 +39,23 @@ open_file.title=Vula Ifayile
open_file_label=Vula
print.title=Printa
print_label=Printa
-download.title=Khuphela
-download_label=Khuphela
-bookmark.title=Imbonakalo ekhoyo (kopa okanye vula kwifestile entsha)
-bookmark_label=Imbonakalo ekhoyo
# Secondary toolbar and context menu
tools.title=Izixhobo zemiyalelo
tools_label=Izixhobo zemiyalelo
first_page.title=Yiya kwiphepha lokuqala
-first_page.label=Yiya kwiphepha lokuqala
first_page_label=Yiya kwiphepha lokuqala
last_page.title=Yiya kwiphepha lokugqibela
-last_page.label=Yiya kwiphepha lokugqibela
last_page_label=Yiya kwiphepha lokugqibela
page_rotate_cw.title=Jikelisa ngasekunene
-page_rotate_cw.label=Jikelisa ngasekunene
page_rotate_cw_label=Jikelisa ngasekunene
page_rotate_ccw.title=Jikelisa ngasekhohlo
-page_rotate_ccw.label=Jikelisa ngasekhohlo
page_rotate_ccw_label=Jikelisa ngasekhohlo
-hand_tool_enable.title=Yenza isixhobo sesandla sisebenze
-hand_tool_enable_label=Yenza isixhobo sesandla sisebenze
-hand_tool_disable.title=Yenza isixhobo sesandla singasebenzi
-hand_tool_disable_label=Yenza isixhobo sesandla singasebenzi
+cursor_text_select_tool.title=Vumela iSixhobo sokuKhetha iTeksti
+cursor_text_select_tool_label=ISixhobo sokuKhetha iTeksti
+cursor_hand_tool.title=Yenza iSixhobo seSandla siSebenze
+cursor_hand_tool_label=ISixhobo seSandla
# Document properties dialog box
document_properties.title=Iipropati zoxwebhu…
@@ -88,13 +83,19 @@ document_properties_version=Uhlelo lwe-PDF:
document_properties_page_count=Inani lamaphepha:
document_properties_close=Vala
+print_progress_message=Ilungisa uxwebhu ukuze iprinte…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Rhoxisa
+
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Togola ngebha eseCaleni
toggle_sidebar_label=Togola ngebha eseCaleni
-outline.title=Bonisa isishwankathelo soxwebhu
-outline_label=Isishwankathelo soxwebhu
+document_outline.title=Bonisa uLwandlalo loXwebhu (cofa kabini ukuze wandise/diliza zonke izinto)
+document_outline_label=Isishwankathelo soxwebhu
attachments.title=Bonisa iziqhotyoshelwa
attachments_label=Iziqhoboshelo
thumbs.title=Bonisa ukrobiso kumfanekiso
@@ -111,7 +112,8 @@ thumb_page_title=Iphepha {{page}}
thumb_page_canvas=Ukrobiso kumfanekiso wephepha {{page}}
# Find panel button title and messages
-find_label=Fumanisa:
+find_input.title=Fumana
+find_input.placeholder=Fumana kuXwebhu…
find_previous.title=Fumanisa isenzeko sangaphambili sebinzana lamagama
find_previous_label=Okwangaphambili
find_next.title=Fumanisa isenzeko esilandelayo sebinzana lamagama
@@ -122,25 +124,6 @@ find_reached_top=Ufike ngaphezulu ephepheni, kusukwa ngezantsi
find_reached_bottom=Ufike ekupheleni kwephepha, kusukwa ngaphezulu
find_not_found=Ibinzana alifunyenwanga
-# Error panel labels
-error_more_info=Inkcazelo Engakumbi
-error_less_info=Inkcazelo Encinane
-error_close=Vala
-# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
-# replaced by the PDF.JS version and build ID.
-error_version_info=I-PDF.js v{{version}} (yakha: {{build}})
-# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
-# english string describing the error.
-error_message=Umyalezo: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Imfumba: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Ifayile: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Umgca: {{line}}
-rendering_error=Imposiso yenzekile xa bekunikezelwa iphepha.
-
# Predefined zoom values
page_scale_width=Ububanzi bephepha
page_scale_fit=Ukulinganiswa kwephepha
@@ -150,13 +133,13 @@ page_scale_actual=Ubungakanani bokwenene
# numerical scale value.
page_scale_percent={{scale}}%
-# Loading indicator messages
-loading_error_indicator=Imposiso
loading_error=Imposiso yenzekile xa kulayishwa i-PDF.
invalid_file_error=Ifayile ye-PDF engeyiyo okanye eyonakalisiweyo.
missing_file_error=Ifayile ye-PDF edukileyo.
unexpected_response_error=Impendulo yeseva engalindelekanga.
+rendering_error=Imposiso yenzekile xa bekunikezelwa iphepha.
+
# 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
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
@@ -170,4 +153,4 @@ password_cancel=Rhoxisa
printing_not_supported=Isilumkiso: Ukuprinta akuxhaswa ngokupheleleyo yile bhrawuza.
printing_not_ready=Isilumkiso: IPDF ayihlohlwanga ngokupheleleyo ukwenzela ukuprinta.
web_fonts_disabled=Iifonti zewebhu ziqhwalelisiwe: ayikwazi ukusebenzisa iifonti ze-PDF ezincanyathelisiweyo.
-document_colors_not_allowed=Amaxwebhu ePDF akavumelekanga ukuba asebenzise imibala yawo: 'Ukuvumela amaphepha ukuba asebenzise eyawo imibala' kuvaliwe ukuba kungasebenzi kwibhrawuza.
+
diff --git a/static/pdf.js/locale/zh-CN/viewer.properties b/static/pdf.js/locale/zh-CN/viewer.properties
index b3d0de925..12908d190 100644
--- a/static/pdf.js/locale/zh-CN/viewer.properties
+++ b/static/pdf.js/locale/zh-CN/viewer.properties
@@ -18,12 +18,15 @@ previous_label=上一页
next.title=下一页
next_label=下一页
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=页面:
-page_of=/ {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=页面
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=/ {{pagesCount}}
+# 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_label=缩小
@@ -36,31 +39,52 @@ open_file.title=打开文件
open_file_label=打开
print.title=打印
print_label=打印
-download.title=下载
-download_label=下载
-bookmark.title=当前视图(复制或在新窗口中打开)
-bookmark_label=当前视图
+save.title=保存
+save_label=保存
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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
tools.title=工具
tools_label=工具
first_page.title=转到第一页
-first_page.label=转到第一页
first_page_label=转到第一页
last_page.title=转到最后一页
-last_page.label=转到最后一页
last_page_label=转到最后一页
page_rotate_cw.title=顺时针旋转
-page_rotate_cw.label=顺时针旋转
page_rotate_cw_label=顺时针旋转
page_rotate_ccw.title=逆时针旋转
-page_rotate_ccw.label=逆时针旋转
page_rotate_ccw_label=逆时针旋转
-hand_tool_enable.title=启用手形工具
-hand_tool_enable_label=启用手形工具
-hand_tool_disable.title=禁用手形工具
-hand_tool_disable_label=禁用手形工具
+cursor_text_select_tool.title=启用文本选择工具
+cursor_text_select_tool_label=文本选择工具
+cursor_hand_tool.title=启用手形工具
+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.title=文档属性…
@@ -83,63 +107,104 @@ document_properties_modification_date=修改日期:
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=创建者:
-document_properties_producer=PDF 制作者:
+document_properties_producer=PDF 生成器:
document_properties_version=PDF 版本:
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=关闭
+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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=切换侧栏
+toggle_sidebar_notification2.title=切换侧栏(文档所含的大纲/附件/图层)
toggle_sidebar_label=切换侧栏
-outline.title=显示文档大纲
-outline_label=文档大纲
+document_outline.title=显示文档大纲(双击展开/折叠所有项)
+document_outline_label=文档大纲
attachments.title=显示附件
attachments_label=附件
+layers.title=显示图层(双击即可将所有图层重置为默认状态)
+layers_label=图层
thumbs.title=显示缩略图
thumbs_label=缩略图
+current_outline_item.title=查找当前大纲项目
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
-thumb_page_title=页码 {{page}}
+thumb_page_title=第 {{page}} 页
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=页面 {{page}} 的缩略图
# Find panel button title and messages
-find_label=查找:
+find_input.title=查找
+find_input.placeholder=在文档中查找…
find_previous.title=查找词语上一次出现的位置
find_previous_label=上一页
find_next.title=查找词语后一次出现的位置
find_next_label=下一页
find_highlight=全部高亮显示
find_match_case_label=区分大小写
+find_match_diacritics_label=匹配变音符号
+find_entire_word_label=全词匹配
find_reached_top=到达文档开头,从末尾继续
find_reached_bottom=到达文档末尾,从开头继续
-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=渲染页面时发生错误。
+# 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=找不到指定词语
# Predefined zoom values
page_scale_width=适合页宽
@@ -151,23 +216,69 @@ page_scale_actual=实际大小
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=错误
-loading_error=载入PDF时发生错误。
-invalid_file_error=无效或损坏的PDF文件。
-missing_file_error=缺少PDF文件。
+loading_error=加载 PDF 时发生错误。
+invalid_file_error=无效或损坏的 PDF 文件。
+missing_file_error=缺少 PDF 文件。
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 – Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} 注解]
+text_annotation_type.alt=[{{type}} 注释]
password_label=输入密码以打开此 PDF 文件。
password_invalid=密码无效。请重试。
password_ok=确定
password_cancel=取消
-printing_not_supported=警告:打印功能不完全支持此浏览器。
-printing_not_ready=警告:该 PDF 未完全加载以供打印。
-web_fonts_disabled=Web 字体已被禁用:无法使用嵌入的PDF字体。
-document_colors_not_allowed=不允许 PDF 文档使用自己的颜色:浏览器中“允许页面选择自己的颜色”的选项已停用。
+printing_not_supported=警告:此浏览器尚未完整支持打印功能。
+printing_not_ready=警告:此 PDF 未完成加载,无法打印。
+web_fonts_disabled=Web 字体已被禁用:无法使用嵌入的 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=例如:一个少年坐到桌前,准备吃饭
diff --git a/static/pdf.js/locale/zh-TW/viewer.properties b/static/pdf.js/locale/zh-TW/viewer.properties
index 495ce1072..56cf24c91 100644
--- a/static/pdf.js/locale/zh-TW/viewer.properties
+++ b/static/pdf.js/locale/zh-TW/viewer.properties
@@ -18,12 +18,15 @@ previous_label=上一頁
next.title=下一頁
next_label=下一頁
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=頁:
-page_of=/ {{pageCount}}
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=第
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=頁,共 {{pagesCount}} 頁
+# 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_label=縮小
@@ -36,31 +39,52 @@ open_file.title=開啟檔案
open_file_label=開啟
print.title=列印
print_label=列印
-download.title=下載
-download_label=下載
-bookmark.title=目前檢視的內容(複製或開啟於新視窗)
-bookmark_label=目前檢視
+save.title=儲存
+save_label=儲存
+# LOCALIZATION NOTE (download_button.title): used in Firefox for Android as a tooltip for the download button (“download” is a verb).
+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=目前頁面(含目前檢視頁面的網址)
+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
tools.title=工具
tools_label=工具
first_page.title=跳到第一頁
-first_page.label=跳到第一頁
first_page_label=跳到第一頁
last_page.title=跳到最後一頁
-last_page.label=跳到最後一頁
last_page_label=跳到最後一頁
page_rotate_cw.title=順時針旋轉
-page_rotate_cw.label=順時針旋轉
page_rotate_cw_label=順時針旋轉
page_rotate_ccw.title=逆時針旋轉
-page_rotate_ccw.label=逆時針旋轉
page_rotate_ccw_label=逆時針旋轉
-hand_tool_enable.title=啟用掌型工具
-hand_tool_enable_label=啟用掌型工具
-hand_tool_disable.title=停用掌型工具
-hand_tool_disable_label=停用掌型工具
+cursor_text_select_tool.title=開啟文字選擇工具
+cursor_text_select_tool_label=文字選擇工具
+cursor_hand_tool.title=開啟頁面移動工具
+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.title=文件內容…
@@ -81,66 +105,107 @@ document_properties_creation_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_producer=PDF 產生器:
document_properties_version=PDF 版本:
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=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=快速 Web 檢視:
+document_properties_linearized_yes=是
+document_properties_linearized_no=否
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
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=切換側邊欄
+toggle_sidebar_notification2.title=切換側邊欄(包含大綱、附件、圖層的文件)
toggle_sidebar_label=切換側邊欄
-outline.title=顯示文件大綱
-outline_label=文件大綱
+document_outline.title=顯示文件大綱(雙擊展開/摺疊所有項目)
+document_outline_label=文件大綱
attachments.title=顯示附件
attachments_label=附件
+layers.title=顯示圖層(滑鼠雙擊即可將所有圖層重設為預設狀態)
+layers_label=圖層
thumbs.title=顯示縮圖
thumbs_label=縮圖
+current_outline_item.title=尋找目前的大綱項目
+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)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
-thumb_page_title=頁 {{page}}
+thumb_page_title=第 {{page}} 頁
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
-thumb_page_canvas=頁 {{page}} 的縮圖
+thumb_page_canvas=第 {{page}} 頁的縮圖
# Find panel button title and messages
-find_label=尋找:
+find_input.title=尋找
+find_input.placeholder=在文件中搜尋…
find_previous.title=尋找文字前次出現的位置
find_previous_label=上一個
find_next.title=尋找文字下次出現的位置
find_next_label=下一個
find_highlight=全部強調標示
find_match_case_label=區分大小寫
+find_match_diacritics_label=符合變音符號
+find_entire_word_label=符合整個字
find_reached_top=已搜尋至文件頂端,自底端繼續搜尋
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=找不到指定文字
-# 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
page_scale_width=頁面寬度
page_scale_fit=縮放至頁面大小
@@ -151,11 +216,15 @@ page_scale_actual=實際大小
page_scale_percent={{scale}}%
# Loading indicator messages
-loading_error_indicator=錯誤
loading_error=載入 PDF 時發生錯誤。
invalid_file_error=無效或毀損的 PDF 檔案。
missing_file_error=找不到 PDF 檔案。
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.
# "{{type}}" will be replaced with an annotation type from a list defined in
@@ -170,5 +239,43 @@ password_cancel=取消
printing_not_supported=警告: 此瀏覽器未完整支援列印功能。
printing_not_ready=警告: 此 PDF 未完成下載以供列印。
web_fonts_disabled=已停用網路字型 (Web fonts): 無法使用 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_cancel_button=取消
+editor_alt_text_save_button=儲存
+# This is a placeholder for the alt text input area
+editor_alt_text_textarea.placeholder=例如:「有一位年輕男人坐在桌子前面吃飯」
diff --git a/static/pdf.js/locale/zu/viewer.properties b/static/pdf.js/locale/zu/viewer.properties
deleted file mode 100644
index 2ccf70c45..000000000
--- a/static/pdf.js/locale/zu/viewer.properties
+++ /dev/null
@@ -1,132 +0,0 @@
-# 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.
-
-# Main toolbar buttons (tooltips and alt text for images)
-previous.title=Ikhasi eledlule
-previous_label=Okudlule
-next.title=Ikhasi elilandelayo
-next_label=Okulandelayo
-
-# LOCALIZATION NOTE (page_label, page_of):
-# These strings are concatenated to form the "Page: X of Y" string.
-# Do not translate "{{pageCount}}", it will be substituted with a number
-# representing the total number of pages.
-page_label=Ikhasi:
-page_of=kwe-{{pageCount}}
-
-zoom_out.title=Hlehlisela emuva
-zoom_out_label=Hlehlisela emuva
-zoom_in.title=Sondeza eduze
-zoom_in_label=Sondeza eduze
-zoom.title=Lwiza
-presentation_mode.title=Guqulela kwindlela yesethulo
-presentation_mode_label=Indlelo yesethulo
-open_file.title=Vula ifayela
-open_file_label=Vula
-print.title=Phrinta
-print_label=Phrinta
-download.title=Landa
-download_label=Landa
-bookmark.title=Ukubuka kwamanje (kopisha noma vula kwifasitela elisha)
-bookmark_label=Ukubuka kwamanje
-
-# Secondary toolbar and context menu
-
-
-# Document properties dialog box
-document_properties_file_name=Igama lefayela:
-# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
-# will be replaced by the PDF file size in kilobytes, respectively in 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_title=Isihloko:
-# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
-# will be replaced by the creation/modification date, and time, of the PDF file.
-
-# Tooltips and alt text for side panel toolbar buttons
-# (the _label strings are alt text for the buttons, the .title strings are
-# tooltips)
-toggle_sidebar.title=I-toggle yebha yaseceleni
-toggle_sidebar_label=i-toggle yebha yaseceleni
-outline.title=Bonisa umugqa waseceleni wedokhumenti
-outline_label=Umugqa waseceleni wedokhumenti
-thumbs.title=Bonisa izithombe ezincane
-thumbs_label=Izithonjana
-findbar.title=Thola kwidokhumenti
-findbar_label=Thola
-
-# Thumbnails panel item (tooltip and alt text for images)
-# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
-# number.
-thumb_page_title=Ikhasi {{page}}
-# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
-# number.
-thumb_page_canvas=Isithonjana sekhasi {{page}}
-
-# Find panel button title and messages
-find_label=Thola
-find_previous.title=Thola indawo eyandulelayo okuvela kuyo lomshwana
-find_previous_label=Okudlulile
-find_next.title=Thola enye indawo okuvela kuyo lomshwana
-find_next_label=Okulandelayo
-find_highlight=Gqamisa konke
-find_match_case_label=Fanisa ikheyisi
-find_reached_top=Finyelele phezulu kwidokhumenti, qhubeka kusukaphansi
-find_reached_bottom=Ifinyelele ekupheleni kwedokhumenti, qhubeka kusukaphezulu
-find_not_found=Umshwana awutholakali
-
-# Error panel labels
-error_more_info=Ukwaziswa Okwengeziwe
-error_less_info=Ukwazi okuncane
-# 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=Umlayezo: {{message}}
-# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
-# trace.
-error_stack=Isitaki: {{stack}}
-# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
-error_file=Ifayela: {{file}}
-# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
-error_line=Umugqa: {{line}}
-rendering_error=Iphutha lenzekile uma kunikwa ikhasi.
-
-# Predefined zoom values
-page_scale_width=Ububanzi bekhasi
-page_scale_fit=Ukulingana kwekhasi
-page_scale_auto=Ukulwiza okuzenzekalelayo
-page_scale_actual=Usayizi Wangempela
-# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
-# numerical scale value.
-
-# Loading indicator messages
-loading_error_indicator=Iphutha
-loading_error=Kwenzeke iphutha uma kulayishwa i-PDF.
-invalid_file_error=Ifayela le-PDF elingavumelekile noma elonakele.
-missing_file_error=Ifayela le-PDF elilahlekile.
-
-# 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
-# the PDF spec (32000-1:2008 Table 169 – Annotation types).
-# Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[Amazwibela e-{{type}}]
-password_ok=Kulungile
-password_cancel=Khansela
-
-printing_not_supported=Isixwayiso: Ukuphrinta akuxhasiwe yilesisiphequluli ngokugcwele.
-printing_not_ready=Isixwayiso: I-PDF ayikalayishwa ngokuphelele yiPhrinta.
-web_fonts_disabled=Amafonti e-webhu akutshaziwe: ayikwazi ukusebenzisa amafonti abekiwe e-PDF.\u0020
-document_colors_not_allowed=Amadokhumenti we-PDF awavumelekile ukusebenzisa imibalo yayo: 'Vumela amakhasi ukukhetha imibala yayo' ayisebenzi kusiphequluli.
diff --git a/static/pdf.js/minify.py b/static/pdf.js/minify.py
deleted file mode 100644
index 5e815af58..000000000
--- a/static/pdf.js/minify.py
+++ /dev/null
@@ -1,3 +0,0 @@
-import ox
-import sys
-with open(sys.argv[2], 'w') as f: f.write(ox.js.minify(open(sys.argv[1]).read()))
diff --git a/static/pdf.js/pdf.js b/static/pdf.js/pdf.js
index 6c9aa662f..e78325d11 100644
--- a/static/pdf.js/pdf.js
+++ b/static/pdf.js/pdf.js
@@ -1,4 +1,8 @@
-/* Copyright 2012 Mozilla Foundation
+/**
+ * @licstart The following is the entire license notice for the
+ * JavaScript code in this page
+ *
+ * Copyright 2023 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,49 +15,108 @@
* 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.
+ *
+ * @licend The above is the entire license notice for the
+ * JavaScript code in this page
*/
-/* jshint globalstrict: false */
-/* umdutils ignore */
-(function (root, factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
-define('pdfjs-dist/build/pdf', ['exports'], factory);
- } else if (typeof exports !== 'undefined') {
- factory(exports);
- } else {
-factory((root.pdfjsDistBuildPdf = {}));
- }
-}(this, function (exports) {
- // Use strict in our context only - users might not want it
- 'use strict';
-
-var pdfjsVersion = '1.4.193';
-var pdfjsBuild = '9d1c5b9';
-
- var pdfjsFilePath =
- typeof document !== 'undefined' && document.currentScript ?
- document.currentScript.src : null;
-
- var pdfjsLibs = {};
-
- (function pdfjsWrapper() {
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(typeof exports === 'object' && typeof module === 'object')
+ module.exports = root.pdfjsLib = factory();
+ else if(typeof define === 'function' && define.amd)
+ define("pdfjs-dist/build/pdf", [], () => { return (root.pdfjsLib = factory()); });
+ else if(typeof exports === 'object')
+ exports["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory();
+ else
+ root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory();
+})(globalThis, () => {
+return /******/ (() => { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ([
+/* 0 */,
+/* 1 */
+/***/ ((__unused_webpack_module, exports) => {
-(function (root, factory) {
- {
- factory((root.pdfjsSharedUtil = {}));
- }
-}(this, function (exports) {
-
-var globalScope = (typeof window !== 'undefined') ? window :
- (typeof global !== 'undefined') ? global :
- (typeof self !== 'undefined') ? self : this;
-
-var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
-
-var TextRenderingMode = {
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.RenderingIntentFlag = exports.PromiseCapability = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.MAX_IMAGE_SIZE_TO_CACHE = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.BASELINE_FACTOR = exports.AnnotationType = exports.AnnotationReplyType = exports.AnnotationPrefix = exports.AnnotationMode = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;
+exports.assert = assert;
+exports.bytesToString = bytesToString;
+exports.createValidAbsoluteUrl = createValidAbsoluteUrl;
+exports.getModificationDate = getModificationDate;
+exports.getUuid = getUuid;
+exports.getVerbosityLevel = getVerbosityLevel;
+exports.info = info;
+exports.isArrayBuffer = isArrayBuffer;
+exports.isArrayEqual = isArrayEqual;
+exports.isNodeJS = void 0;
+exports.normalizeUnicode = normalizeUnicode;
+exports.objectFromMap = objectFromMap;
+exports.objectSize = objectSize;
+exports.setVerbosityLevel = setVerbosityLevel;
+exports.shadow = shadow;
+exports.string32 = string32;
+exports.stringToBytes = stringToBytes;
+exports.stringToPDFString = stringToPDFString;
+exports.stringToUTF8String = stringToUTF8String;
+exports.unreachable = unreachable;
+exports.utf8StringToString = utf8StringToString;
+exports.warn = warn;
+const isNodeJS = exports.isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser");
+const IDENTITY_MATRIX = exports.IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
+const FONT_IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
+const MAX_IMAGE_SIZE_TO_CACHE = exports.MAX_IMAGE_SIZE_TO_CACHE = 10e6;
+const LINE_FACTOR = exports.LINE_FACTOR = 1.35;
+const LINE_DESCENT_FACTOR = exports.LINE_DESCENT_FACTOR = 0.35;
+const BASELINE_FACTOR = exports.BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;
+const RenderingIntentFlag = exports.RenderingIntentFlag = {
+ ANY: 0x01,
+ DISPLAY: 0x02,
+ PRINT: 0x04,
+ SAVE: 0x08,
+ ANNOTATIONS_FORMS: 0x10,
+ ANNOTATIONS_STORAGE: 0x20,
+ ANNOTATIONS_DISABLE: 0x40,
+ OPLIST: 0x100
+};
+const AnnotationMode = exports.AnnotationMode = {
+ DISABLE: 0,
+ ENABLE: 1,
+ ENABLE_FORMS: 2,
+ ENABLE_STORAGE: 3
+};
+const AnnotationEditorPrefix = exports.AnnotationEditorPrefix = "pdfjs_internal_editor_";
+const AnnotationEditorType = exports.AnnotationEditorType = {
+ DISABLE: -1,
+ NONE: 0,
+ FREETEXT: 3,
+ STAMP: 13,
+ INK: 15
+};
+const AnnotationEditorParamsType = exports.AnnotationEditorParamsType = {
+ RESIZE: 1,
+ CREATE: 2,
+ FREETEXT_SIZE: 11,
+ FREETEXT_COLOR: 12,
+ FREETEXT_OPACITY: 13,
+ INK_COLOR: 21,
+ INK_THICKNESS: 22,
+ INK_OPACITY: 23
+};
+const PermissionFlag = exports.PermissionFlag = {
+ PRINT: 0x04,
+ MODIFY_CONTENTS: 0x08,
+ COPY: 0x10,
+ MODIFY_ANNOTATIONS: 0x20,
+ FILL_INTERACTIVE_FORMS: 0x100,
+ COPY_FOR_ACCESSIBILITY: 0x200,
+ ASSEMBLE: 0x400,
+ PRINT_HIGH_QUALITY: 0x800
+};
+const TextRenderingMode = exports.TextRenderingMode = {
FILL: 0,
STROKE: 1,
FILL_STROKE: 2,
@@ -65,14 +128,12 @@ var TextRenderingMode = {
FILL_STROKE_MASK: 3,
ADD_TO_PATH_FLAG: 4
};
-
-var ImageKind = {
+const ImageKind = exports.ImageKind = {
GRAYSCALE_1BPP: 1,
RGB_24BPP: 2,
RGBA_32BPP: 3
};
-
-var AnnotationType = {
+const AnnotationType = exports.AnnotationType = {
TEXT: 1,
LINK: 2,
FREETEXT: 3,
@@ -100,8 +161,11 @@ var AnnotationType = {
THREED: 25,
REDACT: 26
};
-
-var AnnotationFlag = {
+const AnnotationReplyType = exports.AnnotationReplyType = {
+ GROUP: "Group",
+ REPLY: "R"
+};
+const AnnotationFlag = exports.AnnotationFlag = {
INVISIBLE: 0x01,
HIDDEN: 0x02,
PRINT: 0x04,
@@ -113,52 +177,71 @@ var AnnotationFlag = {
TOGGLENOVIEW: 0x100,
LOCKEDCONTENTS: 0x200
};
-
-var AnnotationBorderStyleType = {
+const AnnotationFieldFlag = exports.AnnotationFieldFlag = {
+ READONLY: 0x0000001,
+ REQUIRED: 0x0000002,
+ NOEXPORT: 0x0000004,
+ MULTILINE: 0x0001000,
+ PASSWORD: 0x0002000,
+ NOTOGGLETOOFF: 0x0004000,
+ RADIO: 0x0008000,
+ PUSHBUTTON: 0x0010000,
+ COMBO: 0x0020000,
+ EDIT: 0x0040000,
+ SORT: 0x0080000,
+ FILESELECT: 0x0100000,
+ MULTISELECT: 0x0200000,
+ DONOTSPELLCHECK: 0x0400000,
+ DONOTSCROLL: 0x0800000,
+ COMB: 0x1000000,
+ RICHTEXT: 0x2000000,
+ RADIOSINUNISON: 0x2000000,
+ COMMITONSELCHANGE: 0x4000000
+};
+const AnnotationBorderStyleType = exports.AnnotationBorderStyleType = {
SOLID: 1,
DASHED: 2,
BEVELED: 3,
INSET: 4,
UNDERLINE: 5
};
-
-var StreamType = {
- UNKNOWN: 0,
- FLATE: 1,
- LZW: 2,
- DCT: 3,
- JPX: 4,
- JBIG: 5,
- A85: 6,
- AHX: 7,
- CCF: 8,
- RL: 9
+const AnnotationActionEventType = exports.AnnotationActionEventType = {
+ E: "Mouse Enter",
+ X: "Mouse Exit",
+ D: "Mouse Down",
+ U: "Mouse Up",
+ Fo: "Focus",
+ Bl: "Blur",
+ PO: "PageOpen",
+ PC: "PageClose",
+ PV: "PageVisible",
+ PI: "PageInvisible",
+ K: "Keystroke",
+ F: "Format",
+ V: "Validate",
+ C: "Calculate"
};
-
-var FontType = {
- UNKNOWN: 0,
- TYPE1: 1,
- TYPE1C: 2,
- CIDFONTTYPE0: 3,
- CIDFONTTYPE0C: 4,
- TRUETYPE: 5,
- CIDFONTTYPE2: 6,
- TYPE3: 7,
- OPENTYPE: 8,
- TYPE0: 9,
- MMTYPE1: 10
+const DocumentActionEventType = exports.DocumentActionEventType = {
+ WC: "WillClose",
+ WS: "WillSave",
+ DS: "DidSave",
+ WP: "WillPrint",
+ DP: "DidPrint"
};
-
-var VERBOSITY_LEVELS = {
- errors: 0,
- warnings: 1,
- infos: 5
+const PageActionEventType = exports.PageActionEventType = {
+ O: "PageOpen",
+ C: "PageClose"
};
-
-// All the possible operations for an operator list.
-var OPS = {
- // Intentionally start from 1 so it is easy to spot bad operators that will be
- // 0's.
+const VerbosityLevel = exports.VerbosityLevel = {
+ ERRORS: 0,
+ WARNINGS: 1,
+ INFOS: 5
+};
+const CMapCompressionType = exports.CMapCompressionType = {
+ NONE: 0,
+ BINARY: 1
+};
+const OPS = exports.OPS = {
dependency: 1,
setLineWidth: 2,
setLineCap: 3,
@@ -236,11 +319,8 @@ var OPS = {
paintFormXObjectEnd: 75,
beginGroup: 76,
endGroup: 77,
- beginAnnotations: 78,
- endAnnotations: 79,
beginAnnotation: 80,
endAnnotation: 81,
- paintJpegXObject: 82,
paintImageMaskXObject: 83,
paintImageMaskXObjectGroup: 84,
paintImageXObject: 85,
@@ -251,519 +331,310 @@ var OPS = {
paintSolidColorImageMask: 90,
constructPath: 91
};
-
-var verbosity = VERBOSITY_LEVELS.warnings;
-
+const PasswordResponses = exports.PasswordResponses = {
+ NEED_PASSWORD: 1,
+ INCORRECT_PASSWORD: 2
+};
+let verbosity = VerbosityLevel.WARNINGS;
function setVerbosityLevel(level) {
- verbosity = level;
+ if (Number.isInteger(level)) {
+ verbosity = level;
+ }
}
-
function getVerbosityLevel() {
return verbosity;
}
-
-// A notice for devs. These are good for things that are helpful to devs, such
-// as warning that Workers were disabled, which is important to devs but not
-// end users.
function info(msg) {
- if (verbosity >= VERBOSITY_LEVELS.infos) {
- console.log('Info: ' + msg);
+ if (verbosity >= VerbosityLevel.INFOS) {
+ console.log(`Info: ${msg}`);
}
}
-
-// Non-fatal warnings.
function warn(msg) {
- if (verbosity >= VERBOSITY_LEVELS.warnings) {
- console.log('Warning: ' + msg);
+ if (verbosity >= VerbosityLevel.WARNINGS) {
+ console.log(`Warning: ${msg}`);
}
}
-
-// Deprecated API function -- display regardless of the PDFJS.verbosity setting.
-function deprecated(details) {
- console.log('Deprecated API usage: ' + details);
-}
-
-// Fatal errors that should trigger the fallback UI and halt execution by
-// throwing an exception.
-function error(msg) {
- if (verbosity >= VERBOSITY_LEVELS.errors) {
- console.log('Error: ' + msg);
- console.log(backtrace());
- }
+function unreachable(msg) {
throw new Error(msg);
}
-
-function backtrace() {
- try {
- throw new Error();
- } catch (e) {
- return e.stack ? e.stack.split('\n').slice(2).join('\n') : '';
- }
-}
-
function assert(cond, msg) {
if (!cond) {
- error(msg);
+ unreachable(msg);
}
}
-
-var UNSUPPORTED_FEATURES = {
- unknown: 'unknown',
- forms: 'forms',
- javaScript: 'javaScript',
- smask: 'smask',
- shadingPattern: 'shadingPattern',
- font: 'font'
-};
-
-// Combines two URLs. The baseUrl shall be absolute URL. If the url is an
-// absolute URL, it will be returned as is.
-function combineUrl(baseUrl, url) {
- if (!url) {
- return baseUrl;
- }
- return new URL(url, baseUrl).href;
-}
-
-// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.
-function isSameOrigin(baseUrl, otherUrl) {
- try {
- var base = new URL(baseUrl);
- if (!base.origin || base.origin === 'null') {
- return false; // non-HTTP url
- }
- } catch (e) {
- return false;
- }
-
- var other = new URL(otherUrl, base);
- return base.origin === other.origin;
-}
-
-// Validates if URL is safe and allowed, e.g. to avoid XSS.
-function isValidUrl(url, allowRelative) {
- if (!url) {
- return false;
- }
- // RFC 3986 (http://tools.ietf.org/html/rfc3986#section-3.1)
- // scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
- var protocol = /^[a-z][a-z0-9+\-.]*(?=:)/i.exec(url);
- if (!protocol) {
- return allowRelative;
- }
- protocol = protocol[0].toLowerCase();
- switch (protocol) {
- case 'http':
- case 'https':
- case 'ftp':
- case 'mailto':
- case 'tel':
+function _isValidProtocol(url) {
+ switch (url?.protocol) {
+ case "http:":
+ case "https:":
+ case "ftp:":
+ case "mailto:":
+ case "tel:":
return true;
default:
return false;
}
}
-
-function shadow(obj, prop, value) {
- Object.defineProperty(obj, prop, { value: value,
- enumerable: true,
- configurable: true,
- writable: false });
+function createValidAbsoluteUrl(url, baseUrl = null, options = null) {
+ if (!url) {
+ return null;
+ }
+ try {
+ if (options && typeof url === "string") {
+ if (options.addDefaultProtocol && url.startsWith("www.")) {
+ const dots = url.match(/\./g);
+ if (dots?.length >= 2) {
+ url = `http://${url}`;
+ }
+ }
+ if (options.tryConvertEncoding) {
+ try {
+ url = stringToUTF8String(url);
+ } catch {}
+ }
+ }
+ const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);
+ if (_isValidProtocol(absoluteUrl)) {
+ return absoluteUrl;
+ }
+ } catch {}
+ return null;
+}
+function shadow(obj, prop, value, nonSerializable = false) {
+ Object.defineProperty(obj, prop, {
+ value,
+ enumerable: !nonSerializable,
+ configurable: true,
+ writable: false
+ });
return value;
}
-
-function getLookupTableFactory(initializer) {
- var lookup;
- return function () {
- if (initializer) {
- lookup = Object.create(null);
- initializer(lookup);
- initializer = null;
+const BaseException = exports.BaseException = function BaseExceptionClosure() {
+ function BaseException(message, name) {
+ if (this.constructor === BaseException) {
+ unreachable("Cannot initialize BaseException.");
}
- return lookup;
- };
-}
-
-var PasswordResponses = {
- NEED_PASSWORD: 1,
- INCORRECT_PASSWORD: 2
-};
-
-var PasswordException = (function PasswordExceptionClosure() {
- function PasswordException(msg, code) {
- this.name = 'PasswordException';
- this.message = msg;
+ this.message = message;
+ this.name = name;
+ }
+ BaseException.prototype = new Error();
+ BaseException.constructor = BaseException;
+ return BaseException;
+}();
+class PasswordException extends BaseException {
+ constructor(msg, code) {
+ super(msg, "PasswordException");
this.code = code;
}
-
- PasswordException.prototype = new Error();
- PasswordException.constructor = PasswordException;
-
- return PasswordException;
-})();
-
-var UnknownErrorException = (function UnknownErrorExceptionClosure() {
- function UnknownErrorException(msg, details) {
- this.name = 'UnknownErrorException';
- this.message = msg;
+}
+exports.PasswordException = PasswordException;
+class UnknownErrorException extends BaseException {
+ constructor(msg, details) {
+ super(msg, "UnknownErrorException");
this.details = details;
}
-
- UnknownErrorException.prototype = new Error();
- UnknownErrorException.constructor = UnknownErrorException;
-
- return UnknownErrorException;
-})();
-
-var InvalidPDFException = (function InvalidPDFExceptionClosure() {
- function InvalidPDFException(msg) {
- this.name = 'InvalidPDFException';
- this.message = msg;
+}
+exports.UnknownErrorException = UnknownErrorException;
+class InvalidPDFException extends BaseException {
+ constructor(msg) {
+ super(msg, "InvalidPDFException");
}
-
- InvalidPDFException.prototype = new Error();
- InvalidPDFException.constructor = InvalidPDFException;
-
- return InvalidPDFException;
-})();
-
-var MissingPDFException = (function MissingPDFExceptionClosure() {
- function MissingPDFException(msg) {
- this.name = 'MissingPDFException';
- this.message = msg;
+}
+exports.InvalidPDFException = InvalidPDFException;
+class MissingPDFException extends BaseException {
+ constructor(msg) {
+ super(msg, "MissingPDFException");
}
-
- MissingPDFException.prototype = new Error();
- MissingPDFException.constructor = MissingPDFException;
-
- return MissingPDFException;
-})();
-
-var UnexpectedResponseException =
- (function UnexpectedResponseExceptionClosure() {
- function UnexpectedResponseException(msg, status) {
- this.name = 'UnexpectedResponseException';
- this.message = msg;
+}
+exports.MissingPDFException = MissingPDFException;
+class UnexpectedResponseException extends BaseException {
+ constructor(msg, status) {
+ super(msg, "UnexpectedResponseException");
this.status = status;
}
-
- UnexpectedResponseException.prototype = new Error();
- UnexpectedResponseException.constructor = UnexpectedResponseException;
-
- return UnexpectedResponseException;
-})();
-
-var NotImplementedException = (function NotImplementedExceptionClosure() {
- function NotImplementedException(msg) {
- this.message = msg;
- }
-
- NotImplementedException.prototype = new Error();
- NotImplementedException.prototype.name = 'NotImplementedException';
- NotImplementedException.constructor = NotImplementedException;
-
- return NotImplementedException;
-})();
-
-var MissingDataException = (function MissingDataExceptionClosure() {
- function MissingDataException(begin, end) {
- this.begin = begin;
- this.end = end;
- this.message = 'Missing data [' + begin + ', ' + end + ')';
- }
-
- MissingDataException.prototype = new Error();
- MissingDataException.prototype.name = 'MissingDataException';
- MissingDataException.constructor = MissingDataException;
-
- return MissingDataException;
-})();
-
-var XRefParseException = (function XRefParseExceptionClosure() {
- function XRefParseException(msg) {
- this.message = msg;
- }
-
- XRefParseException.prototype = new Error();
- XRefParseException.prototype.name = 'XRefParseException';
- XRefParseException.constructor = XRefParseException;
-
- return XRefParseException;
-})();
-
-var NullCharactersRegExp = /\x00/g;
-
-function removeNullCharacters(str) {
- if (typeof str !== 'string') {
- warn('The argument for removeNullCharacters must be a string.');
- return str;
- }
- return str.replace(NullCharactersRegExp, '');
}
-
+exports.UnexpectedResponseException = UnexpectedResponseException;
+class FormatError extends BaseException {
+ constructor(msg) {
+ super(msg, "FormatError");
+ }
+}
+exports.FormatError = FormatError;
+class AbortException extends BaseException {
+ constructor(msg) {
+ super(msg, "AbortException");
+ }
+}
+exports.AbortException = AbortException;
function bytesToString(bytes) {
- assert(bytes !== null && typeof bytes === 'object' &&
- bytes.length !== undefined, 'Invalid argument for bytesToString');
- var length = bytes.length;
- var MAX_ARGUMENT_COUNT = 8192;
+ if (typeof bytes !== "object" || bytes?.length === undefined) {
+ unreachable("Invalid argument for bytesToString");
+ }
+ const length = bytes.length;
+ const MAX_ARGUMENT_COUNT = 8192;
if (length < MAX_ARGUMENT_COUNT) {
return String.fromCharCode.apply(null, bytes);
}
- var strBuf = [];
- for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
- var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
- var chunk = bytes.subarray(i, chunkEnd);
+ const strBuf = [];
+ for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
+ const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
+ const chunk = bytes.subarray(i, chunkEnd);
strBuf.push(String.fromCharCode.apply(null, chunk));
}
- return strBuf.join('');
+ return strBuf.join("");
}
-
function stringToBytes(str) {
- assert(typeof str === 'string', 'Invalid argument for stringToBytes');
- var length = str.length;
- var bytes = new Uint8Array(length);
- for (var i = 0; i < length; ++i) {
- bytes[i] = str.charCodeAt(i) & 0xFF;
+ if (typeof str !== "string") {
+ unreachable("Invalid argument for stringToBytes");
+ }
+ const length = str.length;
+ const bytes = new Uint8Array(length);
+ for (let i = 0; i < length; ++i) {
+ bytes[i] = str.charCodeAt(i) & 0xff;
}
return bytes;
}
-
-/**
- * Gets length of the array (Array, Uint8Array, or string) in bytes.
- * @param {Array|Uint8Array|string} arr
- * @returns {number}
- */
-function arrayByteLength(arr) {
- if (arr.length !== undefined) {
- return arr.length;
- }
- assert(arr.byteLength !== undefined);
- return arr.byteLength;
-}
-
-/**
- * Combines array items (arrays) into single Uint8Array object.
- * @param {Array} arr - the array of the arrays (Array, Uint8Array, or string).
- * @returns {Uint8Array}
- */
-function arraysToBytes(arr) {
- // Shortcut: if first and only item is Uint8Array, return it.
- if (arr.length === 1 && (arr[0] instanceof Uint8Array)) {
- return arr[0];
- }
- var resultLength = 0;
- var i, ii = arr.length;
- var item, itemLength ;
- for (i = 0; i < ii; i++) {
- item = arr[i];
- itemLength = arrayByteLength(item);
- resultLength += itemLength;
- }
- var pos = 0;
- var data = new Uint8Array(resultLength);
- for (i = 0; i < ii; i++) {
- item = arr[i];
- if (!(item instanceof Uint8Array)) {
- if (typeof item === 'string') {
- item = stringToBytes(item);
- } else {
- item = new Uint8Array(item);
- }
- }
- itemLength = item.byteLength;
- data.set(item, pos);
- pos += itemLength;
- }
- return data;
-}
-
function string32(value) {
- return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff,
- (value >> 8) & 0xff, value & 0xff);
+ return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);
}
-
-function log2(x) {
- var n = 1, i = 0;
- while (x > n) {
- n <<= 1;
- i++;
+function objectSize(obj) {
+ return Object.keys(obj).length;
+}
+function objectFromMap(map) {
+ const obj = Object.create(null);
+ for (const [key, value] of map) {
+ obj[key] = value;
}
- return i;
+ return obj;
}
-
-function readInt8(data, start) {
- return (data[start] << 24) >> 24;
-}
-
-function readUint16(data, offset) {
- return (data[offset] << 8) | data[offset + 1];
-}
-
-function readUint32(data, offset) {
- return ((data[offset] << 24) | (data[offset + 1] << 16) |
- (data[offset + 2] << 8) | data[offset + 3]) >>> 0;
-}
-
-// Lazy test the endianness of the platform
-// NOTE: This will be 'true' for simulated TypedArrays
function isLittleEndian() {
- var buffer8 = new Uint8Array(2);
+ const buffer8 = new Uint8Array(4);
buffer8[0] = 1;
- var buffer16 = new Uint16Array(buffer8.buffer);
- return (buffer16[0] === 1);
+ const view32 = new Uint32Array(buffer8.buffer, 0, 1);
+ return view32[0] === 1;
}
-
-var Uint32ArrayView = (function Uint32ArrayViewClosure() {
-
- function Uint32ArrayView(buffer, length) {
- this.buffer = buffer;
- this.byteLength = buffer.length;
- this.length = length === undefined ? (this.byteLength >> 2) : length;
- ensureUint32ArrayViewProps(this.length);
+function isEvalSupported() {
+ try {
+ new Function("");
+ return true;
+ } catch {
+ return false;
}
- Uint32ArrayView.prototype = Object.create(null);
-
- var uint32ArrayViewSetters = 0;
- function createUint32ArrayProp(index) {
- return {
- get: function () {
- var buffer = this.buffer, offset = index << 2;
- return (buffer[offset] | (buffer[offset + 1] << 8) |
- (buffer[offset + 2] << 16) | (buffer[offset + 3] << 24)) >>> 0;
- },
- set: function (value) {
- var buffer = this.buffer, offset = index << 2;
- buffer[offset] = value & 255;
- buffer[offset + 1] = (value >> 8) & 255;
- buffer[offset + 2] = (value >> 16) & 255;
- buffer[offset + 3] = (value >>> 24) & 255;
- }
- };
+}
+class FeatureTest {
+ static get isLittleEndian() {
+ return shadow(this, "isLittleEndian", isLittleEndian());
}
-
- function ensureUint32ArrayViewProps(length) {
- while (uint32ArrayViewSetters < length) {
- Object.defineProperty(Uint32ArrayView.prototype,
- uint32ArrayViewSetters,
- createUint32ArrayProp(uint32ArrayViewSetters));
- uint32ArrayViewSetters++;
+ static get isEvalSupported() {
+ return shadow(this, "isEvalSupported", isEvalSupported());
+ }
+ static get isOffscreenCanvasSupported() {
+ return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined");
+ }
+ static get platform() {
+ if (typeof navigator === "undefined") {
+ return shadow(this, "platform", {
+ isWin: false,
+ isMac: false
+ });
}
+ return shadow(this, "platform", {
+ isWin: navigator.platform.includes("Win"),
+ isMac: navigator.platform.includes("Mac")
+ });
}
-
- return Uint32ArrayView;
-})();
-
-exports.Uint32ArrayView = Uint32ArrayView;
-
-var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
-
-var Util = (function UtilClosure() {
- function Util() {}
-
- var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];
-
- // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids
- // creating many intermediate strings.
- Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {
- rgbBuf[1] = r;
- rgbBuf[3] = g;
- rgbBuf[5] = b;
- return rgbBuf.join('');
- };
-
- // Concatenates two transformation matrices together and returns the result.
- Util.transform = function Util_transform(m1, m2) {
- return [
- m1[0] * m2[0] + m1[2] * m2[1],
- m1[1] * m2[0] + m1[3] * m2[1],
- m1[0] * m2[2] + m1[2] * m2[3],
- m1[1] * m2[2] + m1[3] * m2[3],
- m1[0] * m2[4] + m1[2] * m2[5] + m1[4],
- m1[1] * m2[4] + m1[3] * m2[5] + m1[5]
- ];
- };
-
- // For 2d affine transforms
- Util.applyTransform = function Util_applyTransform(p, m) {
- var xt = p[0] * m[0] + p[1] * m[2] + m[4];
- var yt = p[0] * m[1] + p[1] * m[3] + m[5];
+ static get isCSSRoundSupported() {
+ return shadow(this, "isCSSRoundSupported", globalThis.CSS?.supports?.("width: round(1.5px, 1px)"));
+ }
+}
+exports.FeatureTest = FeatureTest;
+const hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, "0"));
+class Util {
+ static makeHexColor(r, g, b) {
+ return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;
+ }
+ static scaleMinMax(transform, minMax) {
+ let temp;
+ if (transform[0]) {
+ if (transform[0] < 0) {
+ temp = minMax[0];
+ minMax[0] = minMax[1];
+ minMax[1] = temp;
+ }
+ minMax[0] *= transform[0];
+ minMax[1] *= transform[0];
+ if (transform[3] < 0) {
+ temp = minMax[2];
+ minMax[2] = minMax[3];
+ minMax[3] = temp;
+ }
+ minMax[2] *= transform[3];
+ minMax[3] *= transform[3];
+ } else {
+ temp = minMax[0];
+ minMax[0] = minMax[2];
+ minMax[2] = temp;
+ temp = minMax[1];
+ minMax[1] = minMax[3];
+ minMax[3] = temp;
+ if (transform[1] < 0) {
+ temp = minMax[2];
+ minMax[2] = minMax[3];
+ minMax[3] = temp;
+ }
+ minMax[2] *= transform[1];
+ minMax[3] *= transform[1];
+ if (transform[2] < 0) {
+ temp = minMax[0];
+ minMax[0] = minMax[1];
+ minMax[1] = temp;
+ }
+ minMax[0] *= transform[2];
+ minMax[1] *= transform[2];
+ }
+ minMax[0] += transform[4];
+ minMax[1] += transform[4];
+ minMax[2] += transform[5];
+ minMax[3] += transform[5];
+ }
+ static transform(m1, m2) {
+ return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];
+ }
+ static applyTransform(p, m) {
+ const xt = p[0] * m[0] + p[1] * m[2] + m[4];
+ const yt = p[0] * m[1] + p[1] * m[3] + m[5];
return [xt, yt];
- };
-
- Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {
- var d = m[0] * m[3] - m[1] * m[2];
- var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
- var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
+ }
+ static applyInverseTransform(p, m) {
+ const d = m[0] * m[3] - m[1] * m[2];
+ const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
+ const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
return [xt, yt];
- };
-
- // Applies the transform to the rectangle and finds the minimum axially
- // aligned bounding box.
- Util.getAxialAlignedBoundingBox =
- function Util_getAxialAlignedBoundingBox(r, m) {
-
- var p1 = Util.applyTransform(r, m);
- var p2 = Util.applyTransform(r.slice(2, 4), m);
- var p3 = Util.applyTransform([r[0], r[3]], m);
- var p4 = Util.applyTransform([r[2], r[1]], m);
- return [
- Math.min(p1[0], p2[0], p3[0], p4[0]),
- Math.min(p1[1], p2[1], p3[1], p4[1]),
- Math.max(p1[0], p2[0], p3[0], p4[0]),
- Math.max(p1[1], p2[1], p3[1], p4[1])
- ];
- };
-
- Util.inverseTransform = function Util_inverseTransform(m) {
- var d = m[0] * m[3] - m[1] * m[2];
- return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d,
- (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];
- };
-
- // Apply a generic 3d matrix M on a 3-vector v:
- // | a b c | | X |
- // | d e f | x | Y |
- // | g h i | | Z |
- // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],
- // with v as [X,Y,Z]
- Util.apply3dTransform = function Util_apply3dTransform(m, v) {
- return [
- m[0] * v[0] + m[1] * v[1] + m[2] * v[2],
- m[3] * v[0] + m[4] * v[1] + m[5] * v[2],
- m[6] * v[0] + m[7] * v[1] + m[8] * v[2]
- ];
- };
-
- // This calculation uses Singular Value Decomposition.
- // The SVD can be represented with formula A = USV. We are interested in the
- // matrix S here because it represents the scale values.
- Util.singularValueDecompose2dScale =
- function Util_singularValueDecompose2dScale(m) {
-
- var transpose = [m[0], m[2], m[1], m[3]];
-
- // Multiply matrix m with its transpose.
- var a = m[0] * transpose[0] + m[1] * transpose[2];
- var b = m[0] * transpose[1] + m[1] * transpose[3];
- var c = m[2] * transpose[0] + m[3] * transpose[2];
- var d = m[2] * transpose[1] + m[3] * transpose[3];
-
- // Solve the second degree polynomial to get roots.
- var first = (a + d) / 2;
- var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;
- var sx = first + second || 1;
- var sy = first - second || 1;
-
- // Scale values are the square roots of the eigenvalues.
+ }
+ static getAxialAlignedBoundingBox(r, m) {
+ const p1 = this.applyTransform(r, m);
+ const p2 = this.applyTransform(r.slice(2, 4), m);
+ const p3 = this.applyTransform([r[0], r[3]], m);
+ const p4 = this.applyTransform([r[2], r[1]], m);
+ return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];
+ }
+ static inverseTransform(m) {
+ const d = m[0] * m[3] - m[1] * m[2];
+ return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];
+ }
+ static singularValueDecompose2dScale(m) {
+ const transpose = [m[0], m[2], m[1], m[3]];
+ const a = m[0] * transpose[0] + m[1] * transpose[2];
+ const b = m[0] * transpose[1] + m[1] * transpose[3];
+ const c = m[2] * transpose[0] + m[3] * transpose[2];
+ const d = m[2] * transpose[1] + m[3] * transpose[3];
+ const first = (a + d) / 2;
+ const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;
+ const sx = first + second || 1;
+ const sy = first - second || 1;
return [Math.sqrt(sx), Math.sqrt(sy)];
- };
-
- // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)
- // For coordinate systems whose origin lies in the bottom-left, this
- // means normalization to (BL,TR) ordering. For systems with origin in the
- // top-left, this means (TL,BR) ordering.
- Util.normalizeRect = function Util_normalizeRect(rect) {
- var r = rect.slice(0); // clone rect
+ }
+ static normalizeRect(rect) {
+ const r = rect.slice(0);
if (rect[0] > rect[2]) {
r[0] = rect[2];
r[2] = rect[0];
@@ -773,5750 +644,5797 @@ var Util = (function UtilClosure() {
r[3] = rect[1];
}
return r;
- };
-
- // Returns a rectangle [x1, y1, x2, y2] corresponding to the
- // intersection of rect1 and rect2. If no intersection, returns 'false'
- // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]
- Util.intersect = function Util_intersect(rect1, rect2) {
- function compare(a, b) {
- return a - b;
- }
-
- // Order points along the axes
- var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),
- orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),
- result = [];
-
- rect1 = Util.normalizeRect(rect1);
- rect2 = Util.normalizeRect(rect2);
-
- // X: first and second points belong to different rectangles?
- if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||
- (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) {
- // Intersection must be between second and third points
- result[0] = orderedX[1];
- result[2] = orderedX[2];
- } else {
- return false;
- }
-
- // Y: first and second points belong to different rectangles?
- if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||
- (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) {
- // Intersection must be between second and third points
- result[1] = orderedY[1];
- result[3] = orderedY[2];
- } else {
- return false;
- }
-
- return result;
- };
-
- Util.sign = function Util_sign(num) {
- return num < 0 ? -1 : 1;
- };
-
- var ROMAN_NUMBER_MAP = [
- '', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM',
- '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC',
- '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'
- ];
- /**
- * Converts positive integers to (upper case) Roman numerals.
- * @param {integer} number - The number that should be converted.
- * @param {boolean} lowerCase - Indicates if the result should be converted
- * to lower case letters. The default is false.
- * @return {string} The resulting Roman number.
- */
- Util.toRoman = function Util_toRoman(number, lowerCase) {
- assert(isInt(number) && number > 0,
- 'The number should be a positive integer.');
- var pos, romanBuf = [];
- // Thousands
- while (number >= 1000) {
- number -= 1000;
- romanBuf.push('M');
- }
- // Hundreds
- pos = (number / 100) | 0;
- number %= 100;
- romanBuf.push(ROMAN_NUMBER_MAP[pos]);
- // Tens
- pos = (number / 10) | 0;
- number %= 10;
- romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);
- // Ones
- romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);
-
- var romanStr = romanBuf.join('');
- return (lowerCase ? romanStr.toLowerCase() : romanStr);
- };
-
- Util.appendToArray = function Util_appendToArray(arr1, arr2) {
- Array.prototype.push.apply(arr1, arr2);
- };
-
- Util.prependToArray = function Util_prependToArray(arr1, arr2) {
- Array.prototype.unshift.apply(arr1, arr2);
- };
-
- Util.extendObj = function extendObj(obj1, obj2) {
- for (var key in obj2) {
- obj1[key] = obj2[key];
- }
- };
-
- Util.getInheritableProperty = function Util_getInheritableProperty(dict,
- name) {
- while (dict && !dict.has(name)) {
- dict = dict.get('Parent');
- }
- if (!dict) {
+ }
+ static intersect(rect1, rect2) {
+ const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));
+ const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));
+ if (xLow > xHigh) {
return null;
}
- return dict.get(name);
- };
-
- Util.inherit = function Util_inherit(sub, base, prototype) {
- sub.prototype = Object.create(base.prototype);
- sub.prototype.constructor = sub;
- for (var prop in prototype) {
- sub.prototype[prop] = prototype[prop];
+ const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));
+ const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));
+ if (yLow > yHigh) {
+ return null;
}
- };
-
- Util.loadScript = function Util_loadScript(src, callback) {
- var script = document.createElement('script');
- var loaded = false;
- script.setAttribute('src', src);
- if (callback) {
- script.onload = function() {
- if (!loaded) {
- callback();
+ return [xLow, yLow, xHigh, yHigh];
+ }
+ static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {
+ const tvalues = [],
+ bounds = [[], []];
+ let a, b, c, t, t1, t2, b2ac, sqrtb2ac;
+ for (let i = 0; i < 2; ++i) {
+ if (i === 0) {
+ b = 6 * x0 - 12 * x1 + 6 * x2;
+ a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;
+ c = 3 * x1 - 3 * x0;
+ } else {
+ b = 6 * y0 - 12 * y1 + 6 * y2;
+ a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;
+ c = 3 * y1 - 3 * y0;
+ }
+ if (Math.abs(a) < 1e-12) {
+ if (Math.abs(b) < 1e-12) {
+ continue;
}
- loaded = true;
- };
+ t = -c / b;
+ if (0 < t && t < 1) {
+ tvalues.push(t);
+ }
+ continue;
+ }
+ b2ac = b * b - 4 * c * a;
+ sqrtb2ac = Math.sqrt(b2ac);
+ if (b2ac < 0) {
+ continue;
+ }
+ t1 = (-b + sqrtb2ac) / (2 * a);
+ if (0 < t1 && t1 < 1) {
+ tvalues.push(t1);
+ }
+ t2 = (-b - sqrtb2ac) / (2 * a);
+ if (0 < t2 && t2 < 1) {
+ tvalues.push(t2);
+ }
}
- document.getElementsByTagName('head')[0].appendChild(script);
+ let j = tvalues.length,
+ mt;
+ const jlen = j;
+ while (j--) {
+ t = tvalues[j];
+ mt = 1 - t;
+ bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;
+ bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;
+ }
+ bounds[0][jlen] = x0;
+ bounds[1][jlen] = y0;
+ bounds[0][jlen + 1] = x3;
+ bounds[1][jlen + 1] = y3;
+ bounds[0].length = bounds[1].length = jlen + 2;
+ return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];
+ }
+}
+exports.Util = Util;
+const PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];
+function stringToPDFString(str) {
+ if (str[0] >= "\xEF") {
+ let encoding;
+ if (str[0] === "\xFE" && str[1] === "\xFF") {
+ encoding = "utf-16be";
+ } else if (str[0] === "\xFF" && str[1] === "\xFE") {
+ encoding = "utf-16le";
+ } else if (str[0] === "\xEF" && str[1] === "\xBB" && str[2] === "\xBF") {
+ encoding = "utf-8";
+ }
+ if (encoding) {
+ try {
+ const decoder = new TextDecoder(encoding, {
+ fatal: true
+ });
+ const buffer = stringToBytes(str);
+ return decoder.decode(buffer);
+ } catch (ex) {
+ warn(`stringToPDFString: "${ex}".`);
+ }
+ }
+ }
+ const strBuf = [];
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const code = PDFStringTranslateTable[str.charCodeAt(i)];
+ strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
+ }
+ return strBuf.join("");
+}
+function stringToUTF8String(str) {
+ return decodeURIComponent(escape(str));
+}
+function utf8StringToString(str) {
+ return unescape(encodeURIComponent(str));
+}
+function isArrayBuffer(v) {
+ return typeof v === "object" && v?.byteLength !== undefined;
+}
+function isArrayEqual(arr1, arr2) {
+ if (arr1.length !== arr2.length) {
+ return false;
+ }
+ for (let i = 0, ii = arr1.length; i < ii; i++) {
+ if (arr1[i] !== arr2[i]) {
+ return false;
+ }
+ }
+ return true;
+}
+function getModificationDate(date = new Date()) {
+ const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), date.getUTCDate().toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")];
+ return buffer.join("");
+}
+class PromiseCapability {
+ #settled = false;
+ constructor() {
+ this.promise = new Promise((resolve, reject) => {
+ this.resolve = data => {
+ this.#settled = true;
+ resolve(data);
+ };
+ this.reject = reason => {
+ this.#settled = true;
+ reject(reason);
+ };
+ });
+ }
+ get settled() {
+ return this.#settled;
+ }
+}
+exports.PromiseCapability = PromiseCapability;
+let NormalizeRegex = null;
+let NormalizationMap = null;
+function normalizeUnicode(str) {
+ if (!NormalizeRegex) {
+ NormalizeRegex = /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu;
+ NormalizationMap = new Map([["ſt", "ſt"]]);
+ }
+ return str.replaceAll(NormalizeRegex, (_, p1, p2) => {
+ return p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2);
+ });
+}
+function getUuid() {
+ if (typeof crypto !== "undefined" && typeof crypto?.randomUUID === "function") {
+ return crypto.randomUUID();
+ }
+ const buf = new Uint8Array(32);
+ if (typeof crypto !== "undefined" && typeof crypto?.getRandomValues === "function") {
+ crypto.getRandomValues(buf);
+ } else {
+ for (let i = 0; i < 32; i++) {
+ buf[i] = Math.floor(Math.random() * 255);
+ }
+ }
+ return bytesToString(buf);
+}
+const AnnotationPrefix = exports.AnnotationPrefix = "pdfjs_internal_id_";
+
+/***/ }),
+/* 2 */
+/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultFilterFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;
+Object.defineProperty(exports, "SVGGraphics", ({
+ enumerable: true,
+ get: function () {
+ return _displaySvg.SVGGraphics;
+ }
+}));
+exports.build = void 0;
+exports.getDocument = getDocument;
+exports.version = void 0;
+var _util = __w_pdfjs_require__(1);
+var _annotation_storage = __w_pdfjs_require__(3);
+var _display_utils = __w_pdfjs_require__(6);
+var _font_loader = __w_pdfjs_require__(9);
+var _displayNode_utils = __w_pdfjs_require__(10);
+var _canvas = __w_pdfjs_require__(11);
+var _worker_options = __w_pdfjs_require__(14);
+var _message_handler = __w_pdfjs_require__(15);
+var _metadata = __w_pdfjs_require__(16);
+var _optional_content_config = __w_pdfjs_require__(17);
+var _transport_stream = __w_pdfjs_require__(18);
+var _displayFetch_stream = __w_pdfjs_require__(19);
+var _displayNetwork = __w_pdfjs_require__(22);
+var _displayNode_stream = __w_pdfjs_require__(23);
+var _displaySvg = __w_pdfjs_require__(24);
+var _xfa_text = __w_pdfjs_require__(25);
+const DEFAULT_RANGE_CHUNK_SIZE = 65536;
+const RENDERING_CANCELLED_TIMEOUT = 100;
+const DELAYED_CLEANUP_TIMEOUT = 5000;
+const DefaultCanvasFactory = exports.DefaultCanvasFactory = _util.isNodeJS ? _displayNode_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory;
+const DefaultCMapReaderFactory = exports.DefaultCMapReaderFactory = _util.isNodeJS ? _displayNode_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory;
+const DefaultFilterFactory = exports.DefaultFilterFactory = _util.isNodeJS ? _displayNode_utils.NodeFilterFactory : _display_utils.DOMFilterFactory;
+const DefaultStandardFontDataFactory = exports.DefaultStandardFontDataFactory = _util.isNodeJS ? _displayNode_utils.NodeStandardFontDataFactory : _display_utils.DOMStandardFontDataFactory;
+function getDocument(src) {
+ if (typeof src === "string" || src instanceof URL) {
+ src = {
+ url: src
+ };
+ } else if ((0, _util.isArrayBuffer)(src)) {
+ src = {
+ data: src
+ };
+ }
+ if (typeof src !== "object") {
+ throw new Error("Invalid parameter in getDocument, need parameter object.");
+ }
+ if (!src.url && !src.data && !src.range) {
+ throw new Error("Invalid parameter object: need either .data, .range or .url");
+ }
+ const task = new PDFDocumentLoadingTask();
+ const {
+ docId
+ } = task;
+ const url = src.url ? getUrlProp(src.url) : null;
+ const data = src.data ? getDataProp(src.data) : null;
+ const httpHeaders = src.httpHeaders || null;
+ const withCredentials = src.withCredentials === true;
+ const password = src.password ?? null;
+ const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;
+ const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE;
+ let worker = src.worker instanceof PDFWorker ? src.worker : null;
+ const verbosity = src.verbosity;
+ const docBaseUrl = typeof src.docBaseUrl === "string" && !(0, _display_utils.isDataScheme)(src.docBaseUrl) ? src.docBaseUrl : null;
+ const cMapUrl = typeof src.cMapUrl === "string" ? src.cMapUrl : null;
+ const cMapPacked = src.cMapPacked !== false;
+ const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;
+ const standardFontDataUrl = typeof src.standardFontDataUrl === "string" ? src.standardFontDataUrl : null;
+ const StandardFontDataFactory = src.StandardFontDataFactory || DefaultStandardFontDataFactory;
+ const ignoreErrors = src.stopAtErrors !== true;
+ const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;
+ const isEvalSupported = src.isEvalSupported !== false;
+ const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === "boolean" ? src.isOffscreenCanvasSupported : !_util.isNodeJS;
+ const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1;
+ const disableFontFace = typeof src.disableFontFace === "boolean" ? src.disableFontFace : _util.isNodeJS;
+ const fontExtraProperties = src.fontExtraProperties === true;
+ const enableXfa = src.enableXfa === true;
+ const ownerDocument = src.ownerDocument || globalThis.document;
+ const disableRange = src.disableRange === true;
+ const disableStream = src.disableStream === true;
+ const disableAutoFetch = src.disableAutoFetch === true;
+ const pdfBug = src.pdfBug === true;
+ const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;
+ const useSystemFonts = typeof src.useSystemFonts === "boolean" ? src.useSystemFonts : !_util.isNodeJS && !disableFontFace;
+ const useWorkerFetch = typeof src.useWorkerFetch === "boolean" ? src.useWorkerFetch : CMapReaderFactory === _display_utils.DOMCMapReaderFactory && StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory && cMapUrl && standardFontDataUrl && (0, _display_utils.isValidFetchUrl)(cMapUrl, document.baseURI) && (0, _display_utils.isValidFetchUrl)(standardFontDataUrl, document.baseURI);
+ const canvasFactory = src.canvasFactory || new DefaultCanvasFactory({
+ ownerDocument
+ });
+ const filterFactory = src.filterFactory || new DefaultFilterFactory({
+ docId,
+ ownerDocument
+ });
+ const styleElement = null;
+ (0, _util.setVerbosityLevel)(verbosity);
+ const transportFactory = {
+ canvasFactory,
+ filterFactory
};
+ if (!useWorkerFetch) {
+ transportFactory.cMapReaderFactory = new CMapReaderFactory({
+ baseUrl: cMapUrl,
+ isCompressed: cMapPacked
+ });
+ transportFactory.standardFontDataFactory = new StandardFontDataFactory({
+ baseUrl: standardFontDataUrl
+ });
+ }
+ if (!worker) {
+ const workerParams = {
+ verbosity,
+ port: _worker_options.GlobalWorkerOptions.workerPort
+ };
+ worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);
+ task._worker = worker;
+ }
+ const fetchDocParams = {
+ docId,
+ apiVersion: '3.11.176',
+ data,
+ password,
+ disableAutoFetch,
+ rangeChunkSize,
+ length,
+ docBaseUrl,
+ enableXfa,
+ evaluatorOptions: {
+ maxImageSize,
+ disableFontFace,
+ ignoreErrors,
+ isEvalSupported,
+ isOffscreenCanvasSupported,
+ canvasMaxAreaInBytes,
+ fontExtraProperties,
+ useSystemFonts,
+ cMapUrl: useWorkerFetch ? cMapUrl : null,
+ standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null
+ }
+ };
+ const transportParams = {
+ ignoreErrors,
+ isEvalSupported,
+ disableFontFace,
+ fontExtraProperties,
+ enableXfa,
+ ownerDocument,
+ disableAutoFetch,
+ pdfBug,
+ styleElement
+ };
+ worker.promise.then(function () {
+ if (task.destroyed) {
+ throw new Error("Loading aborted");
+ }
+ const workerIdPromise = _fetchDocument(worker, fetchDocParams);
+ const networkStreamPromise = new Promise(function (resolve) {
+ let networkStream;
+ if (rangeTransport) {
+ networkStream = new _transport_stream.PDFDataTransportStream({
+ length,
+ initialData: rangeTransport.initialData,
+ progressiveDone: rangeTransport.progressiveDone,
+ contentDispositionFilename: rangeTransport.contentDispositionFilename,
+ disableRange,
+ disableStream
+ }, rangeTransport);
+ } else if (!data) {
+ const createPDFNetworkStream = params => {
+ if (_util.isNodeJS) {
+ return new _displayNode_stream.PDFNodeStream(params);
+ }
+ return (0, _display_utils.isValidFetchUrl)(params.url) ? new _displayFetch_stream.PDFFetchStream(params) : new _displayNetwork.PDFNetworkStream(params);
+ };
+ networkStream = createPDFNetworkStream({
+ url,
+ length,
+ httpHeaders,
+ withCredentials,
+ rangeChunkSize,
+ disableRange,
+ disableStream
+ });
+ }
+ resolve(networkStream);
+ });
+ return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {
+ if (task.destroyed) {
+ throw new Error("Loading aborted");
+ }
+ const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);
+ const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory);
+ task._transport = transport;
+ messageHandler.send("Ready", null);
+ });
+ }).catch(task._capability.reject);
+ return task;
+}
+async function _fetchDocument(worker, source) {
+ if (worker.destroyed) {
+ throw new Error("Worker was destroyed");
+ }
+ const workerId = await worker.messageHandler.sendWithPromise("GetDocRequest", source, source.data ? [source.data.buffer] : null);
+ if (worker.destroyed) {
+ throw new Error("Worker was destroyed");
+ }
+ return workerId;
+}
+function getUrlProp(val) {
+ if (val instanceof URL) {
+ return val.href;
+ }
+ try {
+ return new URL(val, window.location).href;
+ } catch {
+ if (_util.isNodeJS && typeof val === "string") {
+ return val;
+ }
+ }
+ throw new Error("Invalid PDF url data: " + "either string or URL-object is expected in the url property.");
+}
+function getDataProp(val) {
+ if (_util.isNodeJS && typeof Buffer !== "undefined" && val instanceof Buffer) {
+ throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");
+ }
+ if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {
+ return val;
+ }
+ if (typeof val === "string") {
+ return (0, _util.stringToBytes)(val);
+ }
+ if (typeof val === "object" && !isNaN(val?.length) || (0, _util.isArrayBuffer)(val)) {
+ return new Uint8Array(val);
+ }
+ throw new Error("Invalid PDF binary data: either TypedArray, " + "string, or array-like object is expected in the data property.");
+}
+class PDFDocumentLoadingTask {
+ static #docId = 0;
+ constructor() {
+ this._capability = new _util.PromiseCapability();
+ this._transport = null;
+ this._worker = null;
+ this.docId = `d${PDFDocumentLoadingTask.#docId++}`;
+ this.destroyed = false;
+ this.onPassword = null;
+ this.onProgress = null;
+ }
+ get promise() {
+ return this._capability.promise;
+ }
+ async destroy() {
+ this.destroyed = true;
+ try {
+ if (this._worker?.port) {
+ this._worker._pendingDestroy = true;
+ }
+ await this._transport?.destroy();
+ } catch (ex) {
+ if (this._worker?.port) {
+ delete this._worker._pendingDestroy;
+ }
+ throw ex;
+ }
+ this._transport = null;
+ if (this._worker) {
+ this._worker.destroy();
+ this._worker = null;
+ }
+ }
+}
+exports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;
+class PDFDataRangeTransport {
+ constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {
+ this.length = length;
+ this.initialData = initialData;
+ this.progressiveDone = progressiveDone;
+ this.contentDispositionFilename = contentDispositionFilename;
+ this._rangeListeners = [];
+ this._progressListeners = [];
+ this._progressiveReadListeners = [];
+ this._progressiveDoneListeners = [];
+ this._readyCapability = new _util.PromiseCapability();
+ }
+ addRangeListener(listener) {
+ this._rangeListeners.push(listener);
+ }
+ addProgressListener(listener) {
+ this._progressListeners.push(listener);
+ }
+ addProgressiveReadListener(listener) {
+ this._progressiveReadListeners.push(listener);
+ }
+ addProgressiveDoneListener(listener) {
+ this._progressiveDoneListeners.push(listener);
+ }
+ onDataRange(begin, chunk) {
+ for (const listener of this._rangeListeners) {
+ listener(begin, chunk);
+ }
+ }
+ onDataProgress(loaded, total) {
+ this._readyCapability.promise.then(() => {
+ for (const listener of this._progressListeners) {
+ listener(loaded, total);
+ }
+ });
+ }
+ onDataProgressiveRead(chunk) {
+ this._readyCapability.promise.then(() => {
+ for (const listener of this._progressiveReadListeners) {
+ listener(chunk);
+ }
+ });
+ }
+ onDataProgressiveDone() {
+ this._readyCapability.promise.then(() => {
+ for (const listener of this._progressiveDoneListeners) {
+ listener();
+ }
+ });
+ }
+ transportReady() {
+ this._readyCapability.resolve();
+ }
+ requestDataRange(begin, end) {
+ (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange");
+ }
+ abort() {}
+}
+exports.PDFDataRangeTransport = PDFDataRangeTransport;
+class PDFDocumentProxy {
+ constructor(pdfInfo, transport) {
+ this._pdfInfo = pdfInfo;
+ this._transport = transport;
+ Object.defineProperty(this, "getJavaScript", {
+ value: () => {
+ (0, _display_utils.deprecated)("`PDFDocumentProxy.getJavaScript`, " + "please use `PDFDocumentProxy.getJSActions` instead.");
+ return this.getJSActions().then(js => {
+ if (!js) {
+ return js;
+ }
+ const jsArr = [];
+ for (const name in js) {
+ jsArr.push(...js[name]);
+ }
+ return jsArr;
+ });
+ }
+ });
+ }
+ get annotationStorage() {
+ return this._transport.annotationStorage;
+ }
+ get filterFactory() {
+ return this._transport.filterFactory;
+ }
+ get numPages() {
+ return this._pdfInfo.numPages;
+ }
+ get fingerprints() {
+ return this._pdfInfo.fingerprints;
+ }
+ get isPureXfa() {
+ return (0, _util.shadow)(this, "isPureXfa", !!this._transport._htmlForXfa);
+ }
+ get allXfaHtml() {
+ return this._transport._htmlForXfa;
+ }
+ getPage(pageNumber) {
+ return this._transport.getPage(pageNumber);
+ }
+ getPageIndex(ref) {
+ return this._transport.getPageIndex(ref);
+ }
+ getDestinations() {
+ return this._transport.getDestinations();
+ }
+ getDestination(id) {
+ return this._transport.getDestination(id);
+ }
+ getPageLabels() {
+ return this._transport.getPageLabels();
+ }
+ getPageLayout() {
+ return this._transport.getPageLayout();
+ }
+ getPageMode() {
+ return this._transport.getPageMode();
+ }
+ getViewerPreferences() {
+ return this._transport.getViewerPreferences();
+ }
+ getOpenAction() {
+ return this._transport.getOpenAction();
+ }
+ getAttachments() {
+ return this._transport.getAttachments();
+ }
+ getJSActions() {
+ return this._transport.getDocJSActions();
+ }
+ getOutline() {
+ return this._transport.getOutline();
+ }
+ getOptionalContentConfig() {
+ return this._transport.getOptionalContentConfig();
+ }
+ getPermissions() {
+ return this._transport.getPermissions();
+ }
+ getMetadata() {
+ return this._transport.getMetadata();
+ }
+ getMarkInfo() {
+ return this._transport.getMarkInfo();
+ }
+ getData() {
+ return this._transport.getData();
+ }
+ saveDocument() {
+ return this._transport.saveDocument();
+ }
+ getDownloadInfo() {
+ return this._transport.downloadInfoCapability.promise;
+ }
+ cleanup(keepLoadedFonts = false) {
+ return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);
+ }
+ destroy() {
+ return this.loadingTask.destroy();
+ }
+ get loadingParams() {
+ return this._transport.loadingParams;
+ }
+ get loadingTask() {
+ return this._transport.loadingTask;
+ }
+ getFieldObjects() {
+ return this._transport.getFieldObjects();
+ }
+ hasJSActions() {
+ return this._transport.hasJSActions();
+ }
+ getCalculationOrderIds() {
+ return this._transport.getCalculationOrderIds();
+ }
+}
+exports.PDFDocumentProxy = PDFDocumentProxy;
+class PDFPageProxy {
+ #delayedCleanupTimeout = null;
+ #pendingCleanup = false;
+ constructor(pageIndex, pageInfo, transport, pdfBug = false) {
+ this._pageIndex = pageIndex;
+ this._pageInfo = pageInfo;
+ this._transport = transport;
+ this._stats = pdfBug ? new _display_utils.StatTimer() : null;
+ this._pdfBug = pdfBug;
+ this.commonObjs = transport.commonObjs;
+ this.objs = new PDFObjects();
+ this._maybeCleanupAfterRender = false;
+ this._intentStates = new Map();
+ this.destroyed = false;
+ }
+ get pageNumber() {
+ return this._pageIndex + 1;
+ }
+ get rotate() {
+ return this._pageInfo.rotate;
+ }
+ get ref() {
+ return this._pageInfo.ref;
+ }
+ get userUnit() {
+ return this._pageInfo.userUnit;
+ }
+ get view() {
+ return this._pageInfo.view;
+ }
+ getViewport({
+ scale,
+ rotation = this.rotate,
+ offsetX = 0,
+ offsetY = 0,
+ dontFlip = false
+ } = {}) {
+ return new _display_utils.PageViewport({
+ viewBox: this.view,
+ scale,
+ rotation,
+ offsetX,
+ offsetY,
+ dontFlip
+ });
+ }
+ getAnnotations({
+ intent = "display"
+ } = {}) {
+ const intentArgs = this._transport.getRenderingIntent(intent);
+ return this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);
+ }
+ getJSActions() {
+ return this._transport.getPageJSActions(this._pageIndex);
+ }
+ get filterFactory() {
+ return this._transport.filterFactory;
+ }
+ get isPureXfa() {
+ return (0, _util.shadow)(this, "isPureXfa", !!this._transport._htmlForXfa);
+ }
+ async getXfa() {
+ return this._transport._htmlForXfa?.children[this._pageIndex] || null;
+ }
+ render({
+ canvasContext,
+ viewport,
+ intent = "display",
+ annotationMode = _util.AnnotationMode.ENABLE,
+ transform = null,
+ background = null,
+ optionalContentConfigPromise = null,
+ annotationCanvasMap = null,
+ pageColors = null,
+ printAnnotationStorage = null
+ }) {
+ this._stats?.time("Overall");
+ const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage);
+ this.#pendingCleanup = false;
+ this.#abortDelayedCleanup();
+ if (!optionalContentConfigPromise) {
+ optionalContentConfigPromise = this._transport.getOptionalContentConfig();
+ }
+ let intentState = this._intentStates.get(intentArgs.cacheKey);
+ if (!intentState) {
+ intentState = Object.create(null);
+ this._intentStates.set(intentArgs.cacheKey, intentState);
+ }
+ if (intentState.streamReaderCancelTimeout) {
+ clearTimeout(intentState.streamReaderCancelTimeout);
+ intentState.streamReaderCancelTimeout = null;
+ }
+ const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);
+ if (!intentState.displayReadyCapability) {
+ intentState.displayReadyCapability = new _util.PromiseCapability();
+ intentState.operatorList = {
+ fnArray: [],
+ argsArray: [],
+ lastChunk: false,
+ separateAnnots: null
+ };
+ this._stats?.time("Page Request");
+ this._pumpOperatorList(intentArgs);
+ }
+ const complete = error => {
+ intentState.renderTasks.delete(internalRenderTask);
+ if (this._maybeCleanupAfterRender || intentPrint) {
+ this.#pendingCleanup = true;
+ }
+ this.#tryCleanup(!intentPrint);
+ if (error) {
+ internalRenderTask.capability.reject(error);
+ this._abortOperatorList({
+ intentState,
+ reason: error instanceof Error ? error : new Error(error)
+ });
+ } else {
+ internalRenderTask.capability.resolve();
+ }
+ this._stats?.timeEnd("Rendering");
+ this._stats?.timeEnd("Overall");
+ };
+ const internalRenderTask = new InternalRenderTask({
+ callback: complete,
+ params: {
+ canvasContext,
+ viewport,
+ transform,
+ background
+ },
+ objs: this.objs,
+ commonObjs: this.commonObjs,
+ annotationCanvasMap,
+ operatorList: intentState.operatorList,
+ pageIndex: this._pageIndex,
+ canvasFactory: this._transport.canvasFactory,
+ filterFactory: this._transport.filterFactory,
+ useRequestAnimationFrame: !intentPrint,
+ pdfBug: this._pdfBug,
+ pageColors
+ });
+ (intentState.renderTasks ||= new Set()).add(internalRenderTask);
+ const renderTask = internalRenderTask.task;
+ Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {
+ if (this.destroyed) {
+ complete();
+ return;
+ }
+ this._stats?.time("Rendering");
+ internalRenderTask.initializeGraphics({
+ transparency,
+ optionalContentConfig
+ });
+ internalRenderTask.operatorListChanged();
+ }).catch(complete);
+ return renderTask;
+ }
+ getOperatorList({
+ intent = "display",
+ annotationMode = _util.AnnotationMode.ENABLE,
+ printAnnotationStorage = null
+ } = {}) {
+ function operatorListChanged() {
+ if (intentState.operatorList.lastChunk) {
+ intentState.opListReadCapability.resolve(intentState.operatorList);
+ intentState.renderTasks.delete(opListTask);
+ }
+ }
+ const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true);
+ let intentState = this._intentStates.get(intentArgs.cacheKey);
+ if (!intentState) {
+ intentState = Object.create(null);
+ this._intentStates.set(intentArgs.cacheKey, intentState);
+ }
+ let opListTask;
+ if (!intentState.opListReadCapability) {
+ opListTask = Object.create(null);
+ opListTask.operatorListChanged = operatorListChanged;
+ intentState.opListReadCapability = new _util.PromiseCapability();
+ (intentState.renderTasks ||= new Set()).add(opListTask);
+ intentState.operatorList = {
+ fnArray: [],
+ argsArray: [],
+ lastChunk: false,
+ separateAnnots: null
+ };
+ this._stats?.time("Page Request");
+ this._pumpOperatorList(intentArgs);
+ }
+ return intentState.opListReadCapability.promise;
+ }
+ streamTextContent({
+ includeMarkedContent = false,
+ disableNormalization = false
+ } = {}) {
+ const TEXT_CONTENT_CHUNK_SIZE = 100;
+ return this._transport.messageHandler.sendWithStream("GetTextContent", {
+ pageIndex: this._pageIndex,
+ includeMarkedContent: includeMarkedContent === true,
+ disableNormalization: disableNormalization === true
+ }, {
+ highWaterMark: TEXT_CONTENT_CHUNK_SIZE,
+ size(textContent) {
+ return textContent.items.length;
+ }
+ });
+ }
+ getTextContent(params = {}) {
+ if (this._transport._htmlForXfa) {
+ return this.getXfa().then(xfa => {
+ return _xfa_text.XfaText.textContent(xfa);
+ });
+ }
+ const readableStream = this.streamTextContent(params);
+ return new Promise(function (resolve, reject) {
+ function pump() {
+ reader.read().then(function ({
+ value,
+ done
+ }) {
+ if (done) {
+ resolve(textContent);
+ return;
+ }
+ Object.assign(textContent.styles, value.styles);
+ textContent.items.push(...value.items);
+ pump();
+ }, reject);
+ }
+ const reader = readableStream.getReader();
+ const textContent = {
+ items: [],
+ styles: Object.create(null)
+ };
+ pump();
+ });
+ }
+ getStructTree() {
+ return this._transport.getStructTree(this._pageIndex);
+ }
+ _destroy() {
+ this.destroyed = true;
+ const waitOn = [];
+ for (const intentState of this._intentStates.values()) {
+ this._abortOperatorList({
+ intentState,
+ reason: new Error("Page was destroyed."),
+ force: true
+ });
+ if (intentState.opListReadCapability) {
+ continue;
+ }
+ for (const internalRenderTask of intentState.renderTasks) {
+ waitOn.push(internalRenderTask.completed);
+ internalRenderTask.cancel();
+ }
+ }
+ this.objs.clear();
+ this.#pendingCleanup = false;
+ this.#abortDelayedCleanup();
+ return Promise.all(waitOn);
+ }
+ cleanup(resetStats = false) {
+ this.#pendingCleanup = true;
+ const success = this.#tryCleanup(false);
+ if (resetStats && success) {
+ this._stats &&= new _display_utils.StatTimer();
+ }
+ return success;
+ }
+ #tryCleanup(delayed = false) {
+ this.#abortDelayedCleanup();
+ if (!this.#pendingCleanup || this.destroyed) {
+ return false;
+ }
+ if (delayed) {
+ this.#delayedCleanupTimeout = setTimeout(() => {
+ this.#delayedCleanupTimeout = null;
+ this.#tryCleanup(false);
+ }, DELAYED_CLEANUP_TIMEOUT);
+ return false;
+ }
+ for (const {
+ renderTasks,
+ operatorList
+ } of this._intentStates.values()) {
+ if (renderTasks.size > 0 || !operatorList.lastChunk) {
+ return false;
+ }
+ }
+ this._intentStates.clear();
+ this.objs.clear();
+ this.#pendingCleanup = false;
+ return true;
+ }
+ #abortDelayedCleanup() {
+ if (this.#delayedCleanupTimeout) {
+ clearTimeout(this.#delayedCleanupTimeout);
+ this.#delayedCleanupTimeout = null;
+ }
+ }
+ _startRenderPage(transparency, cacheKey) {
+ const intentState = this._intentStates.get(cacheKey);
+ if (!intentState) {
+ return;
+ }
+ this._stats?.timeEnd("Page Request");
+ intentState.displayReadyCapability?.resolve(transparency);
+ }
+ _renderPageChunk(operatorListChunk, intentState) {
+ for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {
+ intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);
+ intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);
+ }
+ intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
+ intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;
+ for (const internalRenderTask of intentState.renderTasks) {
+ internalRenderTask.operatorListChanged();
+ }
+ if (operatorListChunk.lastChunk) {
+ this.#tryCleanup(true);
+ }
+ }
+ _pumpOperatorList({
+ renderingIntent,
+ cacheKey,
+ annotationStorageSerializable
+ }) {
+ const {
+ map,
+ transfers
+ } = annotationStorageSerializable;
+ const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", {
+ pageIndex: this._pageIndex,
+ intent: renderingIntent,
+ cacheKey,
+ annotationStorage: map
+ }, transfers);
+ const reader = readableStream.getReader();
+ const intentState = this._intentStates.get(cacheKey);
+ intentState.streamReader = reader;
+ const pump = () => {
+ reader.read().then(({
+ value,
+ done
+ }) => {
+ if (done) {
+ intentState.streamReader = null;
+ return;
+ }
+ if (this._transport.destroyed) {
+ return;
+ }
+ this._renderPageChunk(value, intentState);
+ pump();
+ }, reason => {
+ intentState.streamReader = null;
+ if (this._transport.destroyed) {
+ return;
+ }
+ if (intentState.operatorList) {
+ intentState.operatorList.lastChunk = true;
+ for (const internalRenderTask of intentState.renderTasks) {
+ internalRenderTask.operatorListChanged();
+ }
+ this.#tryCleanup(true);
+ }
+ if (intentState.displayReadyCapability) {
+ intentState.displayReadyCapability.reject(reason);
+ } else if (intentState.opListReadCapability) {
+ intentState.opListReadCapability.reject(reason);
+ } else {
+ throw reason;
+ }
+ });
+ };
+ pump();
+ }
+ _abortOperatorList({
+ intentState,
+ reason,
+ force = false
+ }) {
+ if (!intentState.streamReader) {
+ return;
+ }
+ if (intentState.streamReaderCancelTimeout) {
+ clearTimeout(intentState.streamReaderCancelTimeout);
+ intentState.streamReaderCancelTimeout = null;
+ }
+ if (!force) {
+ if (intentState.renderTasks.size > 0) {
+ return;
+ }
+ if (reason instanceof _display_utils.RenderingCancelledException) {
+ let delay = RENDERING_CANCELLED_TIMEOUT;
+ if (reason.extraDelay > 0 && reason.extraDelay < 1000) {
+ delay += reason.extraDelay;
+ }
+ intentState.streamReaderCancelTimeout = setTimeout(() => {
+ intentState.streamReaderCancelTimeout = null;
+ this._abortOperatorList({
+ intentState,
+ reason,
+ force: true
+ });
+ }, delay);
+ return;
+ }
+ }
+ intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {});
+ intentState.streamReader = null;
+ if (this._transport.destroyed) {
+ return;
+ }
+ for (const [curCacheKey, curIntentState] of this._intentStates) {
+ if (curIntentState === intentState) {
+ this._intentStates.delete(curCacheKey);
+ break;
+ }
+ }
+ this.cleanup();
+ }
+ get stats() {
+ return this._stats;
+ }
+}
+exports.PDFPageProxy = PDFPageProxy;
+class LoopbackPort {
+ #listeners = new Set();
+ #deferred = Promise.resolve();
+ postMessage(obj, transfer) {
+ const event = {
+ data: structuredClone(obj, transfer ? {
+ transfer
+ } : null)
+ };
+ this.#deferred.then(() => {
+ for (const listener of this.#listeners) {
+ listener.call(this, event);
+ }
+ });
+ }
+ addEventListener(name, listener) {
+ this.#listeners.add(listener);
+ }
+ removeEventListener(name, listener) {
+ this.#listeners.delete(listener);
+ }
+ terminate() {
+ this.#listeners.clear();
+ }
+}
+exports.LoopbackPort = LoopbackPort;
+const PDFWorkerUtil = exports.PDFWorkerUtil = {
+ isWorkerDisabled: false,
+ fallbackWorkerSrc: null,
+ fakeWorkerId: 0
+};
+{
+ if (_util.isNodeJS && typeof require === "function") {
+ PDFWorkerUtil.isWorkerDisabled = true;
+ PDFWorkerUtil.fallbackWorkerSrc = "./pdf.worker.js";
+ } else if (typeof document === "object") {
+ const pdfjsFilePath = document?.currentScript?.src;
+ if (pdfjsFilePath) {
+ PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2");
+ }
+ }
+ PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {
+ let base;
+ try {
+ base = new URL(baseUrl);
+ if (!base.origin || base.origin === "null") {
+ return false;
+ }
+ } catch {
+ return false;
+ }
+ const other = new URL(otherUrl, base);
+ return base.origin === other.origin;
+ };
+ PDFWorkerUtil.createCDNWrapper = function (url) {
+ const wrapper = `importScripts("${url}");`;
+ return URL.createObjectURL(new Blob([wrapper]));
+ };
+}
+class PDFWorker {
+ static #workerPorts;
+ constructor({
+ name = null,
+ port = null,
+ verbosity = (0, _util.getVerbosityLevel)()
+ } = {}) {
+ this.name = name;
+ this.destroyed = false;
+ this.verbosity = verbosity;
+ this._readyCapability = new _util.PromiseCapability();
+ this._port = null;
+ this._webWorker = null;
+ this._messageHandler = null;
+ if (port) {
+ if (PDFWorker.#workerPorts?.has(port)) {
+ throw new Error("Cannot use more than one PDFWorker per port.");
+ }
+ (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this);
+ this._initializeFromPort(port);
+ return;
+ }
+ this._initialize();
+ }
+ get promise() {
+ return this._readyCapability.promise;
+ }
+ get port() {
+ return this._port;
+ }
+ get messageHandler() {
+ return this._messageHandler;
+ }
+ _initializeFromPort(port) {
+ this._port = port;
+ this._messageHandler = new _message_handler.MessageHandler("main", "worker", port);
+ this._messageHandler.on("ready", function () {});
+ this._readyCapability.resolve();
+ this._messageHandler.send("configure", {
+ verbosity: this.verbosity
+ });
+ }
+ _initialize() {
+ if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {
+ let {
+ workerSrc
+ } = PDFWorker;
+ try {
+ if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {
+ workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);
+ }
+ const worker = new Worker(workerSrc);
+ const messageHandler = new _message_handler.MessageHandler("main", "worker", worker);
+ const terminateEarly = () => {
+ worker.removeEventListener("error", onWorkerError);
+ messageHandler.destroy();
+ worker.terminate();
+ if (this.destroyed) {
+ this._readyCapability.reject(new Error("Worker was destroyed"));
+ } else {
+ this._setupFakeWorker();
+ }
+ };
+ const onWorkerError = () => {
+ if (!this._webWorker) {
+ terminateEarly();
+ }
+ };
+ worker.addEventListener("error", onWorkerError);
+ messageHandler.on("test", data => {
+ worker.removeEventListener("error", onWorkerError);
+ if (this.destroyed) {
+ terminateEarly();
+ return;
+ }
+ if (data) {
+ this._messageHandler = messageHandler;
+ this._port = worker;
+ this._webWorker = worker;
+ this._readyCapability.resolve();
+ messageHandler.send("configure", {
+ verbosity: this.verbosity
+ });
+ } else {
+ this._setupFakeWorker();
+ messageHandler.destroy();
+ worker.terminate();
+ }
+ });
+ messageHandler.on("ready", data => {
+ worker.removeEventListener("error", onWorkerError);
+ if (this.destroyed) {
+ terminateEarly();
+ return;
+ }
+ try {
+ sendTest();
+ } catch {
+ this._setupFakeWorker();
+ }
+ });
+ const sendTest = () => {
+ const testObj = new Uint8Array();
+ messageHandler.send("test", testObj, [testObj.buffer]);
+ };
+ sendTest();
+ return;
+ } catch {
+ (0, _util.info)("The worker has been disabled.");
+ }
+ }
+ this._setupFakeWorker();
+ }
+ _setupFakeWorker() {
+ if (!PDFWorkerUtil.isWorkerDisabled) {
+ (0, _util.warn)("Setting up fake worker.");
+ PDFWorkerUtil.isWorkerDisabled = true;
+ }
+ PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {
+ if (this.destroyed) {
+ this._readyCapability.reject(new Error("Worker was destroyed"));
+ return;
+ }
+ const port = new LoopbackPort();
+ this._port = port;
+ const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;
+ const workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port);
+ WorkerMessageHandler.setup(workerHandler, port);
+ const messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port);
+ this._messageHandler = messageHandler;
+ this._readyCapability.resolve();
+ messageHandler.send("configure", {
+ verbosity: this.verbosity
+ });
+ }).catch(reason => {
+ this._readyCapability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`));
+ });
+ }
+ destroy() {
+ this.destroyed = true;
+ if (this._webWorker) {
+ this._webWorker.terminate();
+ this._webWorker = null;
+ }
+ PDFWorker.#workerPorts?.delete(this._port);
+ this._port = null;
+ if (this._messageHandler) {
+ this._messageHandler.destroy();
+ this._messageHandler = null;
+ }
+ }
+ static fromPort(params) {
+ if (!params?.port) {
+ throw new Error("PDFWorker.fromPort - invalid method signature.");
+ }
+ const cachedPort = this.#workerPorts?.get(params.port);
+ if (cachedPort) {
+ if (cachedPort._pendingDestroy) {
+ throw new Error("PDFWorker.fromPort - the worker is being destroyed.\n" + "Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.");
+ }
+ return cachedPort;
+ }
+ return new PDFWorker(params);
+ }
+ static get workerSrc() {
+ if (_worker_options.GlobalWorkerOptions.workerSrc) {
+ return _worker_options.GlobalWorkerOptions.workerSrc;
+ }
+ if (PDFWorkerUtil.fallbackWorkerSrc !== null) {
+ if (!_util.isNodeJS) {
+ (0, _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.');
+ }
+ return PDFWorkerUtil.fallbackWorkerSrc;
+ }
+ throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
+ }
+ static get _mainThreadWorkerMessageHandler() {
+ try {
+ return globalThis.pdfjsWorker?.WorkerMessageHandler || null;
+ } catch {
+ return null;
+ }
+ }
+ static get _setupFakeWorkerGlobal() {
+ const loader = async () => {
+ const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;
+ if (mainWorkerMessageHandler) {
+ return mainWorkerMessageHandler;
+ }
+ if (_util.isNodeJS && typeof require === "function") {
+ const worker = eval("require")(this.workerSrc);
+ return worker.WorkerMessageHandler;
+ }
+ await (0, _display_utils.loadScript)(this.workerSrc);
+ return window.pdfjsWorker.WorkerMessageHandler;
+ };
+ return (0, _util.shadow)(this, "_setupFakeWorkerGlobal", loader());
+ }
+}
+exports.PDFWorker = PDFWorker;
+class WorkerTransport {
+ #methodPromises = new Map();
+ #pageCache = new Map();
+ #pagePromises = new Map();
+ #passwordCapability = null;
+ constructor(messageHandler, loadingTask, networkStream, params, factory) {
+ this.messageHandler = messageHandler;
+ this.loadingTask = loadingTask;
+ this.commonObjs = new PDFObjects();
+ this.fontLoader = new _font_loader.FontLoader({
+ ownerDocument: params.ownerDocument,
+ styleElement: params.styleElement
+ });
+ this._params = params;
+ this.canvasFactory = factory.canvasFactory;
+ this.filterFactory = factory.filterFactory;
+ this.cMapReaderFactory = factory.cMapReaderFactory;
+ this.standardFontDataFactory = factory.standardFontDataFactory;
+ this.destroyed = false;
+ this.destroyCapability = null;
+ this._networkStream = networkStream;
+ this._fullReader = null;
+ this._lastProgress = null;
+ this.downloadInfoCapability = new _util.PromiseCapability();
+ this.setupMessageHandler();
+ }
+ #cacheSimpleMethod(name, data = null) {
+ const cachedPromise = this.#methodPromises.get(name);
+ if (cachedPromise) {
+ return cachedPromise;
+ }
+ const promise = this.messageHandler.sendWithPromise(name, data);
+ this.#methodPromises.set(name, promise);
+ return promise;
+ }
+ get annotationStorage() {
+ return (0, _util.shadow)(this, "annotationStorage", new _annotation_storage.AnnotationStorage());
+ }
+ getRenderingIntent(intent, annotationMode = _util.AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) {
+ let renderingIntent = _util.RenderingIntentFlag.DISPLAY;
+ let annotationStorageSerializable = _annotation_storage.SerializableEmpty;
+ switch (intent) {
+ case "any":
+ renderingIntent = _util.RenderingIntentFlag.ANY;
+ break;
+ case "display":
+ break;
+ case "print":
+ renderingIntent = _util.RenderingIntentFlag.PRINT;
+ break;
+ default:
+ (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`);
+ }
+ switch (annotationMode) {
+ case _util.AnnotationMode.DISABLE:
+ renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;
+ break;
+ case _util.AnnotationMode.ENABLE:
+ break;
+ case _util.AnnotationMode.ENABLE_FORMS:
+ renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;
+ break;
+ case _util.AnnotationMode.ENABLE_STORAGE:
+ renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;
+ const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;
+ annotationStorageSerializable = annotationStorage.serializable;
+ break;
+ default:
+ (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);
+ }
+ if (isOpList) {
+ renderingIntent += _util.RenderingIntentFlag.OPLIST;
+ }
+ return {
+ renderingIntent,
+ cacheKey: `${renderingIntent}_${annotationStorageSerializable.hash}`,
+ annotationStorageSerializable
+ };
+ }
+ destroy() {
+ if (this.destroyCapability) {
+ return this.destroyCapability.promise;
+ }
+ this.destroyed = true;
+ this.destroyCapability = new _util.PromiseCapability();
+ this.#passwordCapability?.reject(new Error("Worker was destroyed during onPassword callback"));
+ const waitOn = [];
+ for (const page of this.#pageCache.values()) {
+ waitOn.push(page._destroy());
+ }
+ this.#pageCache.clear();
+ this.#pagePromises.clear();
+ if (this.hasOwnProperty("annotationStorage")) {
+ this.annotationStorage.resetModified();
+ }
+ const terminated = this.messageHandler.sendWithPromise("Terminate", null);
+ waitOn.push(terminated);
+ Promise.all(waitOn).then(() => {
+ this.commonObjs.clear();
+ this.fontLoader.clear();
+ this.#methodPromises.clear();
+ this.filterFactory.destroy();
+ this._networkStream?.cancelAllRequests(new _util.AbortException("Worker was terminated."));
+ if (this.messageHandler) {
+ this.messageHandler.destroy();
+ this.messageHandler = null;
+ }
+ this.destroyCapability.resolve();
+ }, this.destroyCapability.reject);
+ return this.destroyCapability.promise;
+ }
+ setupMessageHandler() {
+ const {
+ messageHandler,
+ loadingTask
+ } = this;
+ messageHandler.on("GetReader", (data, sink) => {
+ (0, _util.assert)(this._networkStream, "GetReader - no `IPDFStream` instance available.");
+ this._fullReader = this._networkStream.getFullReader();
+ this._fullReader.onProgress = evt => {
+ this._lastProgress = {
+ loaded: evt.loaded,
+ total: evt.total
+ };
+ };
+ sink.onPull = () => {
+ this._fullReader.read().then(function ({
+ value,
+ done
+ }) {
+ if (done) {
+ sink.close();
+ return;
+ }
+ (0, _util.assert)(value instanceof ArrayBuffer, "GetReader - expected an ArrayBuffer.");
+ sink.enqueue(new Uint8Array(value), 1, [value]);
+ }).catch(reason => {
+ sink.error(reason);
+ });
+ };
+ sink.onCancel = reason => {
+ this._fullReader.cancel(reason);
+ sink.ready.catch(readyReason => {
+ if (this.destroyed) {
+ return;
+ }
+ throw readyReason;
+ });
+ };
+ });
+ messageHandler.on("ReaderHeadersReady", data => {
+ const headersCapability = new _util.PromiseCapability();
+ const fullReader = this._fullReader;
+ fullReader.headersReady.then(() => {
+ if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {
+ if (this._lastProgress) {
+ loadingTask.onProgress?.(this._lastProgress);
+ }
+ fullReader.onProgress = evt => {
+ loadingTask.onProgress?.({
+ loaded: evt.loaded,
+ total: evt.total
+ });
+ };
+ }
+ headersCapability.resolve({
+ isStreamingSupported: fullReader.isStreamingSupported,
+ isRangeSupported: fullReader.isRangeSupported,
+ contentLength: fullReader.contentLength
+ });
+ }, headersCapability.reject);
+ return headersCapability.promise;
+ });
+ messageHandler.on("GetRangeReader", (data, sink) => {
+ (0, _util.assert)(this._networkStream, "GetRangeReader - no `IPDFStream` instance available.");
+ const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);
+ if (!rangeReader) {
+ sink.close();
+ return;
+ }
+ sink.onPull = () => {
+ rangeReader.read().then(function ({
+ value,
+ done
+ }) {
+ if (done) {
+ sink.close();
+ return;
+ }
+ (0, _util.assert)(value instanceof ArrayBuffer, "GetRangeReader - expected an ArrayBuffer.");
+ sink.enqueue(new Uint8Array(value), 1, [value]);
+ }).catch(reason => {
+ sink.error(reason);
+ });
+ };
+ sink.onCancel = reason => {
+ rangeReader.cancel(reason);
+ sink.ready.catch(readyReason => {
+ if (this.destroyed) {
+ return;
+ }
+ throw readyReason;
+ });
+ };
+ });
+ messageHandler.on("GetDoc", ({
+ pdfInfo
+ }) => {
+ this._numPages = pdfInfo.numPages;
+ this._htmlForXfa = pdfInfo.htmlForXfa;
+ delete pdfInfo.htmlForXfa;
+ loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));
+ });
+ messageHandler.on("DocException", function (ex) {
+ let reason;
+ switch (ex.name) {
+ case "PasswordException":
+ reason = new _util.PasswordException(ex.message, ex.code);
+ break;
+ case "InvalidPDFException":
+ reason = new _util.InvalidPDFException(ex.message);
+ break;
+ case "MissingPDFException":
+ reason = new _util.MissingPDFException(ex.message);
+ break;
+ case "UnexpectedResponseException":
+ reason = new _util.UnexpectedResponseException(ex.message, ex.status);
+ break;
+ case "UnknownErrorException":
+ reason = new _util.UnknownErrorException(ex.message, ex.details);
+ break;
+ default:
+ (0, _util.unreachable)("DocException - expected a valid Error.");
+ }
+ loadingTask._capability.reject(reason);
+ });
+ messageHandler.on("PasswordRequest", exception => {
+ this.#passwordCapability = new _util.PromiseCapability();
+ if (loadingTask.onPassword) {
+ const updatePassword = password => {
+ if (password instanceof Error) {
+ this.#passwordCapability.reject(password);
+ } else {
+ this.#passwordCapability.resolve({
+ password
+ });
+ }
+ };
+ try {
+ loadingTask.onPassword(updatePassword, exception.code);
+ } catch (ex) {
+ this.#passwordCapability.reject(ex);
+ }
+ } else {
+ this.#passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));
+ }
+ return this.#passwordCapability.promise;
+ });
+ messageHandler.on("DataLoaded", data => {
+ loadingTask.onProgress?.({
+ loaded: data.length,
+ total: data.length
+ });
+ this.downloadInfoCapability.resolve(data);
+ });
+ messageHandler.on("StartRenderPage", data => {
+ if (this.destroyed) {
+ return;
+ }
+ const page = this.#pageCache.get(data.pageIndex);
+ page._startRenderPage(data.transparency, data.cacheKey);
+ });
+ messageHandler.on("commonobj", ([id, type, exportedData]) => {
+ if (this.destroyed) {
+ return;
+ }
+ if (this.commonObjs.has(id)) {
+ return;
+ }
+ switch (type) {
+ case "Font":
+ const params = this._params;
+ if ("error" in exportedData) {
+ const exportedError = exportedData.error;
+ (0, _util.warn)(`Error during font loading: ${exportedError}`);
+ this.commonObjs.resolve(id, exportedError);
+ break;
+ }
+ const inspectFont = params.pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null;
+ const font = new _font_loader.FontFaceObject(exportedData, {
+ isEvalSupported: params.isEvalSupported,
+ disableFontFace: params.disableFontFace,
+ ignoreErrors: params.ignoreErrors,
+ inspectFont
+ });
+ this.fontLoader.bind(font).catch(reason => {
+ return messageHandler.sendWithPromise("FontFallback", {
+ id
+ });
+ }).finally(() => {
+ if (!params.fontExtraProperties && font.data) {
+ font.data = null;
+ }
+ this.commonObjs.resolve(id, font);
+ });
+ break;
+ case "FontPath":
+ case "Image":
+ case "Pattern":
+ this.commonObjs.resolve(id, exportedData);
+ break;
+ default:
+ throw new Error(`Got unknown common object type ${type}`);
+ }
+ });
+ messageHandler.on("obj", ([id, pageIndex, type, imageData]) => {
+ if (this.destroyed) {
+ return;
+ }
+ const pageProxy = this.#pageCache.get(pageIndex);
+ if (pageProxy.objs.has(id)) {
+ return;
+ }
+ switch (type) {
+ case "Image":
+ pageProxy.objs.resolve(id, imageData);
+ if (imageData) {
+ let length;
+ if (imageData.bitmap) {
+ const {
+ width,
+ height
+ } = imageData;
+ length = width * height * 4;
+ } else {
+ length = imageData.data?.length || 0;
+ }
+ if (length > _util.MAX_IMAGE_SIZE_TO_CACHE) {
+ pageProxy._maybeCleanupAfterRender = true;
+ }
+ }
+ break;
+ case "Pattern":
+ pageProxy.objs.resolve(id, imageData);
+ break;
+ default:
+ throw new Error(`Got unknown object type ${type}`);
+ }
+ });
+ messageHandler.on("DocProgress", data => {
+ if (this.destroyed) {
+ return;
+ }
+ loadingTask.onProgress?.({
+ loaded: data.loaded,
+ total: data.total
+ });
+ });
+ messageHandler.on("FetchBuiltInCMap", data => {
+ if (this.destroyed) {
+ return Promise.reject(new Error("Worker was destroyed."));
+ }
+ if (!this.cMapReaderFactory) {
+ return Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter."));
+ }
+ return this.cMapReaderFactory.fetch(data);
+ });
+ messageHandler.on("FetchStandardFontData", data => {
+ if (this.destroyed) {
+ return Promise.reject(new Error("Worker was destroyed."));
+ }
+ if (!this.standardFontDataFactory) {
+ return Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter."));
+ }
+ return this.standardFontDataFactory.fetch(data);
+ });
+ }
+ getData() {
+ return this.messageHandler.sendWithPromise("GetData", null);
+ }
+ saveDocument() {
+ if (this.annotationStorage.size <= 0) {
+ (0, _util.warn)("saveDocument called while `annotationStorage` is empty, " + "please use the getData-method instead.");
+ }
+ const {
+ map,
+ transfers
+ } = this.annotationStorage.serializable;
+ return this.messageHandler.sendWithPromise("SaveDocument", {
+ isPureXfa: !!this._htmlForXfa,
+ numPages: this._numPages,
+ annotationStorage: map,
+ filename: this._fullReader?.filename ?? null
+ }, transfers).finally(() => {
+ this.annotationStorage.resetModified();
+ });
+ }
+ getPage(pageNumber) {
+ if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {
+ return Promise.reject(new Error("Invalid page request."));
+ }
+ const pageIndex = pageNumber - 1,
+ cachedPromise = this.#pagePromises.get(pageIndex);
+ if (cachedPromise) {
+ return cachedPromise;
+ }
+ const promise = this.messageHandler.sendWithPromise("GetPage", {
+ pageIndex
+ }).then(pageInfo => {
+ if (this.destroyed) {
+ throw new Error("Transport destroyed");
+ }
+ const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);
+ this.#pageCache.set(pageIndex, page);
+ return page;
+ });
+ this.#pagePromises.set(pageIndex, promise);
+ return promise;
+ }
+ getPageIndex(ref) {
+ if (typeof ref !== "object" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) {
+ return Promise.reject(new Error("Invalid pageIndex request."));
+ }
+ return this.messageHandler.sendWithPromise("GetPageIndex", {
+ num: ref.num,
+ gen: ref.gen
+ });
+ }
+ getAnnotations(pageIndex, intent) {
+ return this.messageHandler.sendWithPromise("GetAnnotations", {
+ pageIndex,
+ intent
+ });
+ }
+ getFieldObjects() {
+ return this.#cacheSimpleMethod("GetFieldObjects");
+ }
+ hasJSActions() {
+ return this.#cacheSimpleMethod("HasJSActions");
+ }
+ getCalculationOrderIds() {
+ return this.messageHandler.sendWithPromise("GetCalculationOrderIds", null);
+ }
+ getDestinations() {
+ return this.messageHandler.sendWithPromise("GetDestinations", null);
+ }
+ getDestination(id) {
+ if (typeof id !== "string") {
+ return Promise.reject(new Error("Invalid destination request."));
+ }
+ return this.messageHandler.sendWithPromise("GetDestination", {
+ id
+ });
+ }
+ getPageLabels() {
+ return this.messageHandler.sendWithPromise("GetPageLabels", null);
+ }
+ getPageLayout() {
+ return this.messageHandler.sendWithPromise("GetPageLayout", null);
+ }
+ getPageMode() {
+ return this.messageHandler.sendWithPromise("GetPageMode", null);
+ }
+ getViewerPreferences() {
+ return this.messageHandler.sendWithPromise("GetViewerPreferences", null);
+ }
+ getOpenAction() {
+ return this.messageHandler.sendWithPromise("GetOpenAction", null);
+ }
+ getAttachments() {
+ return this.messageHandler.sendWithPromise("GetAttachments", null);
+ }
+ getDocJSActions() {
+ return this.#cacheSimpleMethod("GetDocJSActions");
+ }
+ getPageJSActions(pageIndex) {
+ return this.messageHandler.sendWithPromise("GetPageJSActions", {
+ pageIndex
+ });
+ }
+ getStructTree(pageIndex) {
+ return this.messageHandler.sendWithPromise("GetStructTree", {
+ pageIndex
+ });
+ }
+ getOutline() {
+ return this.messageHandler.sendWithPromise("GetOutline", null);
+ }
+ getOptionalContentConfig() {
+ return this.messageHandler.sendWithPromise("GetOptionalContentConfig", null).then(results => {
+ return new _optional_content_config.OptionalContentConfig(results);
+ });
+ }
+ getPermissions() {
+ return this.messageHandler.sendWithPromise("GetPermissions", null);
+ }
+ getMetadata() {
+ const name = "GetMetadata",
+ cachedPromise = this.#methodPromises.get(name);
+ if (cachedPromise) {
+ return cachedPromise;
+ }
+ const promise = this.messageHandler.sendWithPromise(name, null).then(results => {
+ return {
+ info: results[0],
+ metadata: results[1] ? new _metadata.Metadata(results[1]) : null,
+ contentDispositionFilename: this._fullReader?.filename ?? null,
+ contentLength: this._fullReader?.contentLength ?? null
+ };
+ });
+ this.#methodPromises.set(name, promise);
+ return promise;
+ }
+ getMarkInfo() {
+ return this.messageHandler.sendWithPromise("GetMarkInfo", null);
+ }
+ async startCleanup(keepLoadedFonts = false) {
+ if (this.destroyed) {
+ return;
+ }
+ await this.messageHandler.sendWithPromise("Cleanup", null);
+ for (const page of this.#pageCache.values()) {
+ const cleanupSuccessful = page.cleanup();
+ if (!cleanupSuccessful) {
+ throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);
+ }
+ }
+ this.commonObjs.clear();
+ if (!keepLoadedFonts) {
+ this.fontLoader.clear();
+ }
+ this.#methodPromises.clear();
+ this.filterFactory.destroy(true);
+ }
+ get loadingParams() {
+ const {
+ disableAutoFetch,
+ enableXfa
+ } = this._params;
+ return (0, _util.shadow)(this, "loadingParams", {
+ disableAutoFetch,
+ enableXfa
+ });
+ }
+}
+class PDFObjects {
+ #objs = Object.create(null);
+ #ensureObj(objId) {
+ return this.#objs[objId] ||= {
+ capability: new _util.PromiseCapability(),
+ data: null
+ };
+ }
+ get(objId, callback = null) {
+ if (callback) {
+ const obj = this.#ensureObj(objId);
+ obj.capability.promise.then(() => callback(obj.data));
+ return null;
+ }
+ const obj = this.#objs[objId];
+ if (!obj?.capability.settled) {
+ throw new Error(`Requesting object that isn't resolved yet ${objId}.`);
+ }
+ return obj.data;
+ }
+ has(objId) {
+ const obj = this.#objs[objId];
+ return obj?.capability.settled || false;
+ }
+ resolve(objId, data = null) {
+ const obj = this.#ensureObj(objId);
+ obj.data = data;
+ obj.capability.resolve();
+ }
+ clear() {
+ for (const objId in this.#objs) {
+ const {
+ data
+ } = this.#objs[objId];
+ data?.bitmap?.close();
+ }
+ this.#objs = Object.create(null);
+ }
+}
+class RenderTask {
+ #internalRenderTask = null;
+ constructor(internalRenderTask) {
+ this.#internalRenderTask = internalRenderTask;
+ this.onContinue = null;
+ }
+ get promise() {
+ return this.#internalRenderTask.capability.promise;
+ }
+ cancel(extraDelay = 0) {
+ this.#internalRenderTask.cancel(null, extraDelay);
+ }
+ get separateAnnots() {
+ const {
+ separateAnnots
+ } = this.#internalRenderTask.operatorList;
+ if (!separateAnnots) {
+ return false;
+ }
+ const {
+ annotationCanvasMap
+ } = this.#internalRenderTask;
+ return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;
+ }
+}
+exports.RenderTask = RenderTask;
+class InternalRenderTask {
+ static #canvasInUse = new WeakSet();
+ constructor({
+ callback,
+ params,
+ objs,
+ commonObjs,
+ annotationCanvasMap,
+ operatorList,
+ pageIndex,
+ canvasFactory,
+ filterFactory,
+ useRequestAnimationFrame = false,
+ pdfBug = false,
+ pageColors = null
+ }) {
+ this.callback = callback;
+ this.params = params;
+ this.objs = objs;
+ this.commonObjs = commonObjs;
+ this.annotationCanvasMap = annotationCanvasMap;
+ this.operatorListIdx = null;
+ this.operatorList = operatorList;
+ this._pageIndex = pageIndex;
+ this.canvasFactory = canvasFactory;
+ this.filterFactory = filterFactory;
+ this._pdfBug = pdfBug;
+ this.pageColors = pageColors;
+ this.running = false;
+ this.graphicsReadyCallback = null;
+ this.graphicsReady = false;
+ this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined";
+ this.cancelled = false;
+ this.capability = new _util.PromiseCapability();
+ this.task = new RenderTask(this);
+ this._cancelBound = this.cancel.bind(this);
+ this._continueBound = this._continue.bind(this);
+ this._scheduleNextBound = this._scheduleNext.bind(this);
+ this._nextBound = this._next.bind(this);
+ this._canvas = params.canvasContext.canvas;
+ }
+ get completed() {
+ return this.capability.promise.catch(function () {});
+ }
+ initializeGraphics({
+ transparency = false,
+ optionalContentConfig
+ }) {
+ if (this.cancelled) {
+ return;
+ }
+ if (this._canvas) {
+ if (InternalRenderTask.#canvasInUse.has(this._canvas)) {
+ throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed.");
+ }
+ InternalRenderTask.#canvasInUse.add(this._canvas);
+ }
+ if (this._pdfBug && globalThis.StepperManager?.enabled) {
+ this.stepper = globalThis.StepperManager.create(this._pageIndex);
+ this.stepper.init(this.operatorList);
+ this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
+ }
+ const {
+ canvasContext,
+ viewport,
+ transform,
+ background
+ } = this.params;
+ this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {
+ optionalContentConfig
+ }, this.annotationCanvasMap, this.pageColors);
+ this.gfx.beginDrawing({
+ transform,
+ viewport,
+ transparency,
+ background
+ });
+ this.operatorListIdx = 0;
+ this.graphicsReady = true;
+ this.graphicsReadyCallback?.();
+ }
+ cancel(error = null, extraDelay = 0) {
+ this.running = false;
+ this.cancelled = true;
+ this.gfx?.endDrawing();
+ InternalRenderTask.#canvasInUse.delete(this._canvas);
+ this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay));
+ }
+ operatorListChanged() {
+ if (!this.graphicsReady) {
+ this.graphicsReadyCallback ||= this._continueBound;
+ return;
+ }
+ this.stepper?.updateOperatorList(this.operatorList);
+ if (this.running) {
+ return;
+ }
+ this._continue();
+ }
+ _continue() {
+ this.running = true;
+ if (this.cancelled) {
+ return;
+ }
+ if (this.task.onContinue) {
+ this.task.onContinue(this._scheduleNextBound);
+ } else {
+ this._scheduleNext();
+ }
+ }
+ _scheduleNext() {
+ if (this._useRequestAnimationFrame) {
+ window.requestAnimationFrame(() => {
+ this._nextBound().catch(this._cancelBound);
+ });
+ } else {
+ Promise.resolve().then(this._nextBound).catch(this._cancelBound);
+ }
+ }
+ async _next() {
+ if (this.cancelled) {
+ return;
+ }
+ this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);
+ if (this.operatorListIdx === this.operatorList.argsArray.length) {
+ this.running = false;
+ if (this.operatorList.lastChunk) {
+ this.gfx.endDrawing();
+ InternalRenderTask.#canvasInUse.delete(this._canvas);
+ this.callback();
+ }
+ }
+ }
+}
+const version = exports.version = '3.11.176';
+const build = exports.build = '92d22853e';
- return Util;
-})();
+/***/ }),
+/* 3 */
+/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {
-/**
- * PDF page viewport created based on scale, rotation and offset.
- * @class
- * @alias PDFJS.PageViewport
- */
-var PageViewport = (function PageViewportClosure() {
- /**
- * @constructor
- * @private
- * @param viewBox {Array} xMin, yMin, xMax and yMax coordinates.
- * @param scale {number} scale of the viewport.
- * @param rotation {number} rotations of the viewport in degrees.
- * @param offsetX {number} offset X
- * @param offsetY {number} offset Y
- * @param dontFlip {boolean} if true, axis Y will not be flipped.
- */
- function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) {
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.SerializableEmpty = exports.PrintAnnotationStorage = exports.AnnotationStorage = void 0;
+var _util = __w_pdfjs_require__(1);
+var _editor = __w_pdfjs_require__(4);
+var _murmurhash = __w_pdfjs_require__(8);
+const SerializableEmpty = exports.SerializableEmpty = Object.freeze({
+ map: null,
+ hash: "",
+ transfers: undefined
+});
+class AnnotationStorage {
+ #modified = false;
+ #storage = new Map();
+ constructor() {
+ this.onSetModified = null;
+ this.onResetModified = null;
+ this.onAnnotationEditor = null;
+ }
+ getValue(key, defaultValue) {
+ const value = this.#storage.get(key);
+ if (value === undefined) {
+ return defaultValue;
+ }
+ return Object.assign(defaultValue, value);
+ }
+ getRawValue(key) {
+ return this.#storage.get(key);
+ }
+ remove(key) {
+ this.#storage.delete(key);
+ if (this.#storage.size === 0) {
+ this.resetModified();
+ }
+ if (typeof this.onAnnotationEditor === "function") {
+ for (const value of this.#storage.values()) {
+ if (value instanceof _editor.AnnotationEditor) {
+ return;
+ }
+ }
+ this.onAnnotationEditor(null);
+ }
+ }
+ setValue(key, value) {
+ const obj = this.#storage.get(key);
+ let modified = false;
+ if (obj !== undefined) {
+ for (const [entry, val] of Object.entries(value)) {
+ if (obj[entry] !== val) {
+ modified = true;
+ obj[entry] = val;
+ }
+ }
+ } else {
+ modified = true;
+ this.#storage.set(key, value);
+ }
+ if (modified) {
+ this.#setModified();
+ }
+ if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === "function") {
+ this.onAnnotationEditor(value.constructor._type);
+ }
+ }
+ has(key) {
+ return this.#storage.has(key);
+ }
+ getAll() {
+ return this.#storage.size > 0 ? (0, _util.objectFromMap)(this.#storage) : null;
+ }
+ setAll(obj) {
+ for (const [key, val] of Object.entries(obj)) {
+ this.setValue(key, val);
+ }
+ }
+ get size() {
+ return this.#storage.size;
+ }
+ #setModified() {
+ if (!this.#modified) {
+ this.#modified = true;
+ if (typeof this.onSetModified === "function") {
+ this.onSetModified();
+ }
+ }
+ }
+ resetModified() {
+ if (this.#modified) {
+ this.#modified = false;
+ if (typeof this.onResetModified === "function") {
+ this.onResetModified();
+ }
+ }
+ }
+ get print() {
+ return new PrintAnnotationStorage(this);
+ }
+ get serializable() {
+ if (this.#storage.size === 0) {
+ return SerializableEmpty;
+ }
+ const map = new Map(),
+ hash = new _murmurhash.MurmurHash3_64(),
+ transfers = [];
+ const context = Object.create(null);
+ let hasBitmap = false;
+ for (const [key, val] of this.#storage) {
+ const serialized = val instanceof _editor.AnnotationEditor ? val.serialize(false, context) : val;
+ if (serialized) {
+ map.set(key, serialized);
+ hash.update(`${key}:${JSON.stringify(serialized)}`);
+ hasBitmap ||= !!serialized.bitmap;
+ }
+ }
+ if (hasBitmap) {
+ for (const value of map.values()) {
+ if (value.bitmap) {
+ transfers.push(value.bitmap);
+ }
+ }
+ }
+ return map.size > 0 ? {
+ map,
+ hash: hash.hexdigest(),
+ transfers
+ } : SerializableEmpty;
+ }
+}
+exports.AnnotationStorage = AnnotationStorage;
+class PrintAnnotationStorage extends AnnotationStorage {
+ #serializable;
+ constructor(parent) {
+ super();
+ const {
+ map,
+ hash,
+ transfers
+ } = parent.serializable;
+ const clone = structuredClone(map, transfers ? {
+ transfer: transfers
+ } : null);
+ this.#serializable = {
+ map: clone,
+ hash,
+ transfers
+ };
+ }
+ get print() {
+ (0, _util.unreachable)("Should not call PrintAnnotationStorage.print");
+ }
+ get serializable() {
+ return this.#serializable;
+ }
+}
+exports.PrintAnnotationStorage = PrintAnnotationStorage;
+
+/***/ }),
+/* 4 */
+/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.AnnotationEditor = void 0;
+var _tools = __w_pdfjs_require__(5);
+var _util = __w_pdfjs_require__(1);
+var _display_utils = __w_pdfjs_require__(6);
+class AnnotationEditor {
+ #altText = "";
+ #altTextDecorative = false;
+ #altTextButton = null;
+ #altTextTooltip = null;
+ #altTextTooltipTimeout = null;
+ #keepAspectRatio = false;
+ #resizersDiv = null;
+ #boundFocusin = this.focusin.bind(this);
+ #boundFocusout = this.focusout.bind(this);
+ #hasBeenClicked = false;
+ #isEditing = false;
+ #isInEditMode = false;
+ _initialOptions = Object.create(null);
+ _uiManager = null;
+ _focusEventsAllowed = true;
+ _l10nPromise = null;
+ #isDraggable = false;
+ #zIndex = AnnotationEditor._zIndex++;
+ static _borderLineWidth = -1;
+ static _colorManager = new _tools.ColorManager();
+ static _zIndex = 1;
+ static SMALL_EDITOR_SIZE = 0;
+ constructor(parameters) {
+ if (this.constructor === AnnotationEditor) {
+ (0, _util.unreachable)("Cannot initialize AnnotationEditor.");
+ }
+ this.parent = parameters.parent;
+ this.id = parameters.id;
+ this.width = this.height = null;
+ this.pageIndex = parameters.parent.pageIndex;
+ this.name = parameters.name;
+ this.div = null;
+ this._uiManager = parameters.uiManager;
+ this.annotationElementId = null;
+ this._willKeepAspectRatio = false;
+ this._initialOptions.isCentered = parameters.isCentered;
+ this._structTreeParentId = null;
+ const {
+ rotation,
+ rawDims: {
+ pageWidth,
+ pageHeight,
+ pageX,
+ pageY
+ }
+ } = this.parent.viewport;
+ this.rotation = rotation;
+ this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360;
+ this.pageDimensions = [pageWidth, pageHeight];
+ this.pageTranslation = [pageX, pageY];
+ const [width, height] = this.parentDimensions;
+ this.x = parameters.x / width;
+ this.y = parameters.y / height;
+ this.isAttachedToDOM = false;
+ this.deleted = false;
+ }
+ get editorType() {
+ return Object.getPrototypeOf(this).constructor._type;
+ }
+ static get _defaultLineColor() {
+ return (0, _util.shadow)(this, "_defaultLineColor", this._colorManager.getHexCode("CanvasText"));
+ }
+ static deleteAnnotationElement(editor) {
+ const fakeEditor = new FakeEditor({
+ id: editor.parent.getNextId(),
+ parent: editor.parent,
+ uiManager: editor._uiManager
+ });
+ fakeEditor.annotationElementId = editor.annotationElementId;
+ fakeEditor.deleted = true;
+ fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);
+ }
+ static initialize(l10n, options = null) {
+ AnnotationEditor._l10nPromise ||= new Map(["editor_alt_text_button_label", "editor_alt_text_edit_button_label", "editor_alt_text_decorative_tooltip"].map(str => [str, l10n.get(str)]));
+ if (options?.strings) {
+ for (const str of options.strings) {
+ AnnotationEditor._l10nPromise.set(str, l10n.get(str));
+ }
+ }
+ if (AnnotationEditor._borderLineWidth !== -1) {
+ return;
+ }
+ const style = getComputedStyle(document.documentElement);
+ AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue("--outline-width")) || 0;
+ }
+ static updateDefaultParams(_type, _value) {}
+ static get defaultPropertiesToUpdate() {
+ return [];
+ }
+ static isHandlingMimeForPasting(mime) {
+ return false;
+ }
+ static paste(item, parent) {
+ (0, _util.unreachable)("Not implemented");
+ }
+ get propertiesToUpdate() {
+ return [];
+ }
+ get _isDraggable() {
+ return this.#isDraggable;
+ }
+ set _isDraggable(value) {
+ this.#isDraggable = value;
+ this.div?.classList.toggle("draggable", value);
+ }
+ center() {
+ const [pageWidth, pageHeight] = this.pageDimensions;
+ switch (this.parentRotation) {
+ case 90:
+ this.x -= this.height * pageHeight / (pageWidth * 2);
+ this.y += this.width * pageWidth / (pageHeight * 2);
+ break;
+ case 180:
+ this.x += this.width / 2;
+ this.y += this.height / 2;
+ break;
+ case 270:
+ this.x += this.height * pageHeight / (pageWidth * 2);
+ this.y -= this.width * pageWidth / (pageHeight * 2);
+ break;
+ default:
+ this.x -= this.width / 2;
+ this.y -= this.height / 2;
+ break;
+ }
+ this.fixAndSetPosition();
+ }
+ addCommands(params) {
+ this._uiManager.addCommands(params);
+ }
+ get currentLayer() {
+ return this._uiManager.currentLayer;
+ }
+ setInBackground() {
+ this.div.style.zIndex = 0;
+ }
+ setInForeground() {
+ this.div.style.zIndex = this.#zIndex;
+ }
+ setParent(parent) {
+ if (parent !== null) {
+ this.pageIndex = parent.pageIndex;
+ this.pageDimensions = parent.pageDimensions;
+ }
+ this.parent = parent;
+ }
+ focusin(event) {
+ if (!this._focusEventsAllowed) {
+ return;
+ }
+ if (!this.#hasBeenClicked) {
+ this.parent.setSelected(this);
+ } else {
+ this.#hasBeenClicked = false;
+ }
+ }
+ focusout(event) {
+ if (!this._focusEventsAllowed) {
+ return;
+ }
+ if (!this.isAttachedToDOM) {
+ return;
+ }
+ const target = event.relatedTarget;
+ if (target?.closest(`#${this.id}`)) {
+ return;
+ }
+ event.preventDefault();
+ if (!this.parent?.isMultipleSelection) {
+ this.commitOrRemove();
+ }
+ }
+ commitOrRemove() {
+ if (this.isEmpty()) {
+ this.remove();
+ } else {
+ this.commit();
+ }
+ }
+ commit() {
+ this.addToAnnotationStorage();
+ }
+ addToAnnotationStorage() {
+ this._uiManager.addToAnnotationStorage(this);
+ }
+ setAt(x, y, tx, ty) {
+ const [width, height] = this.parentDimensions;
+ [tx, ty] = this.screenToPageTranslation(tx, ty);
+ this.x = (x + tx) / width;
+ this.y = (y + ty) / height;
+ this.fixAndSetPosition();
+ }
+ #translate([width, height], x, y) {
+ [x, y] = this.screenToPageTranslation(x, y);
+ this.x += x / width;
+ this.y += y / height;
+ this.fixAndSetPosition();
+ }
+ translate(x, y) {
+ this.#translate(this.parentDimensions, x, y);
+ }
+ translateInPage(x, y) {
+ this.#translate(this.pageDimensions, x, y);
+ this.div.scrollIntoView({
+ block: "nearest"
+ });
+ }
+ drag(tx, ty) {
+ const [parentWidth, parentHeight] = this.parentDimensions;
+ this.x += tx / parentWidth;
+ this.y += ty / parentHeight;
+ if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {
+ const {
+ x,
+ y
+ } = this.div.getBoundingClientRect();
+ if (this.parent.findNewParent(this, x, y)) {
+ this.x -= Math.floor(this.x);
+ this.y -= Math.floor(this.y);
+ }
+ }
+ let {
+ x,
+ y
+ } = this;
+ const [bx, by] = this.#getBaseTranslation();
+ x += bx;
+ y += by;
+ this.div.style.left = `${(100 * x).toFixed(2)}%`;
+ this.div.style.top = `${(100 * y).toFixed(2)}%`;
+ this.div.scrollIntoView({
+ block: "nearest"
+ });
+ }
+ #getBaseTranslation() {
+ const [parentWidth, parentHeight] = this.parentDimensions;
+ const {
+ _borderLineWidth
+ } = AnnotationEditor;
+ const x = _borderLineWidth / parentWidth;
+ const y = _borderLineWidth / parentHeight;
+ switch (this.rotation) {
+ case 90:
+ return [-x, y];
+ case 180:
+ return [x, y];
+ case 270:
+ return [x, -y];
+ default:
+ return [-x, -y];
+ }
+ }
+ fixAndSetPosition() {
+ const [pageWidth, pageHeight] = this.pageDimensions;
+ let {
+ x,
+ y,
+ width,
+ height
+ } = this;
+ width *= pageWidth;
+ height *= pageHeight;
+ x *= pageWidth;
+ y *= pageHeight;
+ switch (this.rotation) {
+ case 0:
+ x = Math.max(0, Math.min(pageWidth - width, x));
+ y = Math.max(0, Math.min(pageHeight - height, y));
+ break;
+ case 90:
+ x = Math.max(0, Math.min(pageWidth - height, x));
+ y = Math.min(pageHeight, Math.max(width, y));
+ break;
+ case 180:
+ x = Math.min(pageWidth, Math.max(width, x));
+ y = Math.min(pageHeight, Math.max(height, y));
+ break;
+ case 270:
+ x = Math.min(pageWidth, Math.max(height, x));
+ y = Math.max(0, Math.min(pageHeight - width, y));
+ break;
+ }
+ this.x = x /= pageWidth;
+ this.y = y /= pageHeight;
+ const [bx, by] = this.#getBaseTranslation();
+ x += bx;
+ y += by;
+ const {
+ style
+ } = this.div;
+ style.left = `${(100 * x).toFixed(2)}%`;
+ style.top = `${(100 * y).toFixed(2)}%`;
+ this.moveInDOM();
+ }
+ static #rotatePoint(x, y, angle) {
+ switch (angle) {
+ case 90:
+ return [y, -x];
+ case 180:
+ return [-x, -y];
+ case 270:
+ return [-y, x];
+ default:
+ return [x, y];
+ }
+ }
+ screenToPageTranslation(x, y) {
+ return AnnotationEditor.#rotatePoint(x, y, this.parentRotation);
+ }
+ pageTranslationToScreen(x, y) {
+ return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation);
+ }
+ #getRotationMatrix(rotation) {
+ switch (rotation) {
+ case 90:
+ {
+ const [pageWidth, pageHeight] = this.pageDimensions;
+ return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0];
+ }
+ case 180:
+ return [-1, 0, 0, -1];
+ case 270:
+ {
+ const [pageWidth, pageHeight] = this.pageDimensions;
+ return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0];
+ }
+ default:
+ return [1, 0, 0, 1];
+ }
+ }
+ get parentScale() {
+ return this._uiManager.viewParameters.realScale;
+ }
+ get parentRotation() {
+ return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;
+ }
+ get parentDimensions() {
+ const {
+ parentScale,
+ pageDimensions: [pageWidth, pageHeight]
+ } = this;
+ const scaledWidth = pageWidth * parentScale;
+ const scaledHeight = pageHeight * parentScale;
+ return _util.FeatureTest.isCSSRoundSupported ? [Math.round(scaledWidth), Math.round(scaledHeight)] : [scaledWidth, scaledHeight];
+ }
+ setDims(width, height) {
+ const [parentWidth, parentHeight] = this.parentDimensions;
+ this.div.style.width = `${(100 * width / parentWidth).toFixed(2)}%`;
+ if (!this.#keepAspectRatio) {
+ this.div.style.height = `${(100 * height / parentHeight).toFixed(2)}%`;
+ }
+ this.#altTextButton?.classList.toggle("small", width < AnnotationEditor.SMALL_EDITOR_SIZE || height < AnnotationEditor.SMALL_EDITOR_SIZE);
+ }
+ fixDims() {
+ const {
+ style
+ } = this.div;
+ const {
+ height,
+ width
+ } = style;
+ const widthPercent = width.endsWith("%");
+ const heightPercent = !this.#keepAspectRatio && height.endsWith("%");
+ if (widthPercent && heightPercent) {
+ return;
+ }
+ const [parentWidth, parentHeight] = this.parentDimensions;
+ if (!widthPercent) {
+ style.width = `${(100 * parseFloat(width) / parentWidth).toFixed(2)}%`;
+ }
+ if (!this.#keepAspectRatio && !heightPercent) {
+ style.height = `${(100 * parseFloat(height) / parentHeight).toFixed(2)}%`;
+ }
+ }
+ getInitialTranslation() {
+ return [0, 0];
+ }
+ #createResizers() {
+ if (this.#resizersDiv) {
+ return;
+ }
+ this.#resizersDiv = document.createElement("div");
+ this.#resizersDiv.classList.add("resizers");
+ const classes = ["topLeft", "topRight", "bottomRight", "bottomLeft"];
+ if (!this._willKeepAspectRatio) {
+ classes.push("topMiddle", "middleRight", "bottomMiddle", "middleLeft");
+ }
+ for (const name of classes) {
+ const div = document.createElement("div");
+ this.#resizersDiv.append(div);
+ div.classList.add("resizer", name);
+ div.addEventListener("pointerdown", this.#resizerPointerdown.bind(this, name));
+ div.addEventListener("contextmenu", _display_utils.noContextMenu);
+ }
+ this.div.prepend(this.#resizersDiv);
+ }
+ #resizerPointerdown(name, event) {
+ event.preventDefault();
+ const {
+ isMac
+ } = _util.FeatureTest.platform;
+ if (event.button !== 0 || event.ctrlKey && isMac) {
+ return;
+ }
+ const boundResizerPointermove = this.#resizerPointermove.bind(this, name);
+ const savedDraggable = this._isDraggable;
+ this._isDraggable = false;
+ const pointerMoveOptions = {
+ passive: true,
+ capture: true
+ };
+ window.addEventListener("pointermove", boundResizerPointermove, pointerMoveOptions);
+ const savedX = this.x;
+ const savedY = this.y;
+ const savedWidth = this.width;
+ const savedHeight = this.height;
+ const savedParentCursor = this.parent.div.style.cursor;
+ const savedCursor = this.div.style.cursor;
+ this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor;
+ const pointerUpCallback = () => {
+ this._isDraggable = savedDraggable;
+ window.removeEventListener("pointerup", pointerUpCallback);
+ window.removeEventListener("blur", pointerUpCallback);
+ window.removeEventListener("pointermove", boundResizerPointermove, pointerMoveOptions);
+ this.parent.div.style.cursor = savedParentCursor;
+ this.div.style.cursor = savedCursor;
+ const newX = this.x;
+ const newY = this.y;
+ const newWidth = this.width;
+ const newHeight = this.height;
+ if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) {
+ return;
+ }
+ this.addCommands({
+ cmd: () => {
+ this.width = newWidth;
+ this.height = newHeight;
+ this.x = newX;
+ this.y = newY;
+ const [parentWidth, parentHeight] = this.parentDimensions;
+ this.setDims(parentWidth * newWidth, parentHeight * newHeight);
+ this.fixAndSetPosition();
+ },
+ undo: () => {
+ this.width = savedWidth;
+ this.height = savedHeight;
+ this.x = savedX;
+ this.y = savedY;
+ const [parentWidth, parentHeight] = this.parentDimensions;
+ this.setDims(parentWidth * savedWidth, parentHeight * savedHeight);
+ this.fixAndSetPosition();
+ },
+ mustExec: true
+ });
+ };
+ window.addEventListener("pointerup", pointerUpCallback);
+ window.addEventListener("blur", pointerUpCallback);
+ }
+ #resizerPointermove(name, event) {
+ const [parentWidth, parentHeight] = this.parentDimensions;
+ const savedX = this.x;
+ const savedY = this.y;
+ const savedWidth = this.width;
+ const savedHeight = this.height;
+ const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;
+ const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;
+ const round = x => Math.round(x * 10000) / 10000;
+ const rotationMatrix = this.#getRotationMatrix(this.rotation);
+ const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y];
+ const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);
+ const invTransf = (x, y) => [invRotationMatrix[0] * x + invRotationMatrix[2] * y, invRotationMatrix[1] * x + invRotationMatrix[3] * y];
+ let getPoint;
+ let getOpposite;
+ let isDiagonal = false;
+ let isHorizontal = false;
+ switch (name) {
+ case "topLeft":
+ isDiagonal = true;
+ getPoint = (w, h) => [0, 0];
+ getOpposite = (w, h) => [w, h];
+ break;
+ case "topMiddle":
+ getPoint = (w, h) => [w / 2, 0];
+ getOpposite = (w, h) => [w / 2, h];
+ break;
+ case "topRight":
+ isDiagonal = true;
+ getPoint = (w, h) => [w, 0];
+ getOpposite = (w, h) => [0, h];
+ break;
+ case "middleRight":
+ isHorizontal = true;
+ getPoint = (w, h) => [w, h / 2];
+ getOpposite = (w, h) => [0, h / 2];
+ break;
+ case "bottomRight":
+ isDiagonal = true;
+ getPoint = (w, h) => [w, h];
+ getOpposite = (w, h) => [0, 0];
+ break;
+ case "bottomMiddle":
+ getPoint = (w, h) => [w / 2, h];
+ getOpposite = (w, h) => [w / 2, 0];
+ break;
+ case "bottomLeft":
+ isDiagonal = true;
+ getPoint = (w, h) => [0, h];
+ getOpposite = (w, h) => [w, 0];
+ break;
+ case "middleLeft":
+ isHorizontal = true;
+ getPoint = (w, h) => [0, h / 2];
+ getOpposite = (w, h) => [w, h / 2];
+ break;
+ }
+ const point = getPoint(savedWidth, savedHeight);
+ const oppositePoint = getOpposite(savedWidth, savedHeight);
+ let transfOppositePoint = transf(...oppositePoint);
+ const oppositeX = round(savedX + transfOppositePoint[0]);
+ const oppositeY = round(savedY + transfOppositePoint[1]);
+ let ratioX = 1;
+ let ratioY = 1;
+ let [deltaX, deltaY] = this.screenToPageTranslation(event.movementX, event.movementY);
+ [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);
+ if (isDiagonal) {
+ const oldDiag = Math.hypot(savedWidth, savedHeight);
+ ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);
+ } else if (isHorizontal) {
+ ratioX = Math.max(minWidth, Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))) / savedWidth;
+ } else {
+ ratioY = Math.max(minHeight, Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))) / savedHeight;
+ }
+ const newWidth = round(savedWidth * ratioX);
+ const newHeight = round(savedHeight * ratioY);
+ transfOppositePoint = transf(...getOpposite(newWidth, newHeight));
+ const newX = oppositeX - transfOppositePoint[0];
+ const newY = oppositeY - transfOppositePoint[1];
+ this.width = newWidth;
+ this.height = newHeight;
+ this.x = newX;
+ this.y = newY;
+ this.setDims(parentWidth * newWidth, parentHeight * newHeight);
+ this.fixAndSetPosition();
+ }
+ async addAltTextButton() {
+ if (this.#altTextButton) {
+ return;
+ }
+ const altText = this.#altTextButton = document.createElement("button");
+ altText.className = "altText";
+ const msg = await AnnotationEditor._l10nPromise.get("editor_alt_text_button_label");
+ altText.textContent = msg;
+ altText.setAttribute("aria-label", msg);
+ altText.tabIndex = "0";
+ altText.addEventListener("contextmenu", _display_utils.noContextMenu);
+ altText.addEventListener("pointerdown", event => event.stopPropagation());
+ altText.addEventListener("click", event => {
+ event.preventDefault();
+ this._uiManager.editAltText(this);
+ }, {
+ capture: true
+ });
+ altText.addEventListener("keydown", event => {
+ if (event.target === altText && event.key === "Enter") {
+ event.preventDefault();
+ this._uiManager.editAltText(this);
+ }
+ });
+ this.#setAltTextButtonState();
+ this.div.append(altText);
+ if (!AnnotationEditor.SMALL_EDITOR_SIZE) {
+ const PERCENT = 40;
+ AnnotationEditor.SMALL_EDITOR_SIZE = Math.min(128, Math.round(altText.getBoundingClientRect().width * (1 + PERCENT / 100)));
+ }
+ }
+ async #setAltTextButtonState() {
+ const button = this.#altTextButton;
+ if (!button) {
+ return;
+ }
+ if (!this.#altText && !this.#altTextDecorative) {
+ button.classList.remove("done");
+ this.#altTextTooltip?.remove();
+ return;
+ }
+ AnnotationEditor._l10nPromise.get("editor_alt_text_edit_button_label").then(msg => {
+ button.setAttribute("aria-label", msg);
+ });
+ let tooltip = this.#altTextTooltip;
+ if (!tooltip) {
+ this.#altTextTooltip = tooltip = document.createElement("span");
+ tooltip.className = "tooltip";
+ tooltip.setAttribute("role", "tooltip");
+ const id = tooltip.id = `alt-text-tooltip-${this.id}`;
+ button.setAttribute("aria-describedby", id);
+ const DELAY_TO_SHOW_TOOLTIP = 100;
+ button.addEventListener("mouseenter", () => {
+ this.#altTextTooltipTimeout = setTimeout(() => {
+ this.#altTextTooltipTimeout = null;
+ this.#altTextTooltip.classList.add("show");
+ this._uiManager._eventBus.dispatch("reporttelemetry", {
+ source: this,
+ details: {
+ type: "editing",
+ subtype: this.editorType,
+ data: {
+ action: "alt_text_tooltip"
+ }
+ }
+ });
+ }, DELAY_TO_SHOW_TOOLTIP);
+ });
+ button.addEventListener("mouseleave", () => {
+ clearTimeout(this.#altTextTooltipTimeout);
+ this.#altTextTooltipTimeout = null;
+ this.#altTextTooltip?.classList.remove("show");
+ });
+ }
+ button.classList.add("done");
+ tooltip.innerText = this.#altTextDecorative ? await AnnotationEditor._l10nPromise.get("editor_alt_text_decorative_tooltip") : this.#altText;
+ if (!tooltip.parentNode) {
+ button.append(tooltip);
+ }
+ }
+ getClientDimensions() {
+ return this.div.getBoundingClientRect();
+ }
+ get altTextData() {
+ return {
+ altText: this.#altText,
+ decorative: this.#altTextDecorative
+ };
+ }
+ set altTextData({
+ altText,
+ decorative
+ }) {
+ if (this.#altText === altText && this.#altTextDecorative === decorative) {
+ return;
+ }
+ this.#altText = altText;
+ this.#altTextDecorative = decorative;
+ this.#setAltTextButtonState();
+ }
+ render() {
+ this.div = document.createElement("div");
+ this.div.setAttribute("data-editor-rotation", (360 - this.rotation) % 360);
+ this.div.className = this.name;
+ this.div.setAttribute("id", this.id);
+ this.div.setAttribute("tabIndex", 0);
+ this.setInForeground();
+ this.div.addEventListener("focusin", this.#boundFocusin);
+ this.div.addEventListener("focusout", this.#boundFocusout);
+ const [parentWidth, parentHeight] = this.parentDimensions;
+ if (this.parentRotation % 180 !== 0) {
+ this.div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;
+ this.div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;
+ }
+ const [tx, ty] = this.getInitialTranslation();
+ this.translate(tx, ty);
+ (0, _tools.bindEvents)(this, this.div, ["pointerdown"]);
+ return this.div;
+ }
+ pointerdown(event) {
+ const {
+ isMac
+ } = _util.FeatureTest.platform;
+ if (event.button !== 0 || event.ctrlKey && isMac) {
+ event.preventDefault();
+ return;
+ }
+ this.#hasBeenClicked = true;
+ this.#setUpDragSession(event);
+ }
+ #setUpDragSession(event) {
+ if (!this._isDraggable) {
+ return;
+ }
+ const isSelected = this._uiManager.isSelected(this);
+ this._uiManager.setUpDragSession();
+ let pointerMoveOptions, pointerMoveCallback;
+ if (isSelected) {
+ pointerMoveOptions = {
+ passive: true,
+ capture: true
+ };
+ pointerMoveCallback = e => {
+ const [tx, ty] = this.screenToPageTranslation(e.movementX, e.movementY);
+ this._uiManager.dragSelectedEditors(tx, ty);
+ };
+ window.addEventListener("pointermove", pointerMoveCallback, pointerMoveOptions);
+ }
+ const pointerUpCallback = () => {
+ window.removeEventListener("pointerup", pointerUpCallback);
+ window.removeEventListener("blur", pointerUpCallback);
+ if (isSelected) {
+ window.removeEventListener("pointermove", pointerMoveCallback, pointerMoveOptions);
+ }
+ this.#hasBeenClicked = false;
+ if (!this._uiManager.endDragSession()) {
+ const {
+ isMac
+ } = _util.FeatureTest.platform;
+ if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {
+ this.parent.toggleSelected(this);
+ } else {
+ this.parent.setSelected(this);
+ }
+ }
+ };
+ window.addEventListener("pointerup", pointerUpCallback);
+ window.addEventListener("blur", pointerUpCallback);
+ }
+ moveInDOM() {
+ this.parent?.moveEditorInDOM(this);
+ }
+ _setParentAndPosition(parent, x, y) {
+ parent.changeParent(this);
+ this.x = x;
+ this.y = y;
+ this.fixAndSetPosition();
+ }
+ getRect(tx, ty) {
+ const scale = this.parentScale;
+ const [pageWidth, pageHeight] = this.pageDimensions;
+ const [pageX, pageY] = this.pageTranslation;
+ const shiftX = tx / scale;
+ const shiftY = ty / scale;
+ const x = this.x * pageWidth;
+ const y = this.y * pageHeight;
+ const width = this.width * pageWidth;
+ const height = this.height * pageHeight;
+ switch (this.rotation) {
+ case 0:
+ return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY];
+ case 90:
+ return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY];
+ case 180:
+ return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY];
+ case 270:
+ return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY];
+ default:
+ throw new Error("Invalid rotation");
+ }
+ }
+ getRectInCurrentCoords(rect, pageHeight) {
+ const [x1, y1, x2, y2] = rect;
+ const width = x2 - x1;
+ const height = y2 - y1;
+ switch (this.rotation) {
+ case 0:
+ return [x1, pageHeight - y2, width, height];
+ case 90:
+ return [x1, pageHeight - y1, height, width];
+ case 180:
+ return [x2, pageHeight - y1, width, height];
+ case 270:
+ return [x2, pageHeight - y2, height, width];
+ default:
+ throw new Error("Invalid rotation");
+ }
+ }
+ onceAdded() {}
+ isEmpty() {
+ return false;
+ }
+ enableEditMode() {
+ this.#isInEditMode = true;
+ }
+ disableEditMode() {
+ this.#isInEditMode = false;
+ }
+ isInEditMode() {
+ return this.#isInEditMode;
+ }
+ shouldGetKeyboardEvents() {
+ return false;
+ }
+ needsToBeRebuilt() {
+ return this.div && !this.isAttachedToDOM;
+ }
+ rebuild() {
+ this.div?.addEventListener("focusin", this.#boundFocusin);
+ this.div?.addEventListener("focusout", this.#boundFocusout);
+ }
+ serialize(isForCopying = false, context = null) {
+ (0, _util.unreachable)("An editor must be serializable");
+ }
+ static deserialize(data, parent, uiManager) {
+ const editor = new this.prototype.constructor({
+ parent,
+ id: parent.getNextId(),
+ uiManager
+ });
+ editor.rotation = data.rotation;
+ const [pageWidth, pageHeight] = editor.pageDimensions;
+ const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);
+ editor.x = x / pageWidth;
+ editor.y = y / pageHeight;
+ editor.width = width / pageWidth;
+ editor.height = height / pageHeight;
+ return editor;
+ }
+ remove() {
+ this.div.removeEventListener("focusin", this.#boundFocusin);
+ this.div.removeEventListener("focusout", this.#boundFocusout);
+ if (!this.isEmpty()) {
+ this.commit();
+ }
+ if (this.parent) {
+ this.parent.remove(this);
+ } else {
+ this._uiManager.removeEditor(this);
+ }
+ this.#altTextButton?.remove();
+ this.#altTextButton = null;
+ this.#altTextTooltip = null;
+ }
+ get isResizable() {
+ return false;
+ }
+ makeResizable() {
+ if (this.isResizable) {
+ this.#createResizers();
+ this.#resizersDiv.classList.remove("hidden");
+ }
+ }
+ select() {
+ this.makeResizable();
+ this.div?.classList.add("selectedEditor");
+ }
+ unselect() {
+ this.#resizersDiv?.classList.add("hidden");
+ this.div?.classList.remove("selectedEditor");
+ if (this.div?.contains(document.activeElement)) {
+ this._uiManager.currentLayer.div.focus();
+ }
+ }
+ updateParams(type, value) {}
+ disableEditing() {
+ if (this.#altTextButton) {
+ this.#altTextButton.hidden = true;
+ }
+ }
+ enableEditing() {
+ if (this.#altTextButton) {
+ this.#altTextButton.hidden = false;
+ }
+ }
+ enterInEditMode() {}
+ get contentDiv() {
+ return this.div;
+ }
+ get isEditing() {
+ return this.#isEditing;
+ }
+ set isEditing(value) {
+ this.#isEditing = value;
+ if (!this.parent) {
+ return;
+ }
+ if (value) {
+ this.parent.setSelected(this);
+ this.parent.setActiveEditor(this);
+ } else {
+ this.parent.setActiveEditor(null);
+ }
+ }
+ setAspectRatio(width, height) {
+ this.#keepAspectRatio = true;
+ const aspectRatio = width / height;
+ const {
+ style
+ } = this.div;
+ style.aspectRatio = aspectRatio;
+ style.height = "auto";
+ }
+ static get MIN_SIZE() {
+ return 16;
+ }
+}
+exports.AnnotationEditor = AnnotationEditor;
+class FakeEditor extends AnnotationEditor {
+ constructor(params) {
+ super(params);
+ this.annotationElementId = params.annotationElementId;
+ this.deleted = true;
+ }
+ serialize() {
+ return {
+ id: this.annotationElementId,
+ deleted: true,
+ pageIndex: this.pageIndex
+ };
+ }
+}
+
+/***/ }),
+/* 5 */
+/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0;
+exports.bindEvents = bindEvents;
+exports.opacityToHex = opacityToHex;
+var _util = __w_pdfjs_require__(1);
+var _display_utils = __w_pdfjs_require__(6);
+function bindEvents(obj, element, names) {
+ for (const name of names) {
+ element.addEventListener(name, obj[name].bind(obj));
+ }
+}
+function opacityToHex(opacity) {
+ return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, "0");
+}
+class IdManager {
+ #id = 0;
+ getId() {
+ return `${_util.AnnotationEditorPrefix}${this.#id++}`;
+ }
+}
+class ImageManager {
+ #baseId = (0, _util.getUuid)();
+ #id = 0;
+ #cache = null;
+ static get _isSVGFittingCanvas() {
+ const svg = `data:image/svg+xml;charset=UTF-8,`;
+ const canvas = new OffscreenCanvas(1, 3);
+ const ctx = canvas.getContext("2d");
+ const image = new Image();
+ image.src = svg;
+ const promise = image.decode().then(() => {
+ ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);
+ return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;
+ });
+ return (0, _util.shadow)(this, "_isSVGFittingCanvas", promise);
+ }
+ async #get(key, rawData) {
+ this.#cache ||= new Map();
+ let data = this.#cache.get(key);
+ if (data === null) {
+ return null;
+ }
+ if (data?.bitmap) {
+ data.refCounter += 1;
+ return data;
+ }
+ try {
+ data ||= {
+ bitmap: null,
+ id: `image_${this.#baseId}_${this.#id++}`,
+ refCounter: 0,
+ isSvg: false
+ };
+ let image;
+ if (typeof rawData === "string") {
+ data.url = rawData;
+ const response = await fetch(rawData);
+ if (!response.ok) {
+ throw new Error(response.statusText);
+ }
+ image = await response.blob();
+ } else {
+ image = data.file = rawData;
+ }
+ if (image.type === "image/svg+xml") {
+ const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;
+ const fileReader = new FileReader();
+ const imageElement = new Image();
+ const imagePromise = new Promise((resolve, reject) => {
+ imageElement.onload = () => {
+ data.bitmap = imageElement;
+ data.isSvg = true;
+ resolve();
+ };
+ fileReader.onload = async () => {
+ const url = data.svgUrl = fileReader.result;
+ imageElement.src = (await mustRemoveAspectRatioPromise) ? `${url}#svgView(preserveAspectRatio(none))` : url;
+ };
+ imageElement.onerror = fileReader.onerror = reject;
+ });
+ fileReader.readAsDataURL(image);
+ await imagePromise;
+ } else {
+ data.bitmap = await createImageBitmap(image);
+ }
+ data.refCounter = 1;
+ } catch (e) {
+ console.error(e);
+ data = null;
+ }
+ this.#cache.set(key, data);
+ if (data) {
+ this.#cache.set(data.id, data);
+ }
+ return data;
+ }
+ async getFromFile(file) {
+ const {
+ lastModified,
+ name,
+ size,
+ type
+ } = file;
+ return this.#get(`${lastModified}_${name}_${size}_${type}`, file);
+ }
+ async getFromUrl(url) {
+ return this.#get(url, url);
+ }
+ async getFromId(id) {
+ this.#cache ||= new Map();
+ const data = this.#cache.get(id);
+ if (!data) {
+ return null;
+ }
+ if (data.bitmap) {
+ data.refCounter += 1;
+ return data;
+ }
+ if (data.file) {
+ return this.getFromFile(data.file);
+ }
+ return this.getFromUrl(data.url);
+ }
+ getSvgUrl(id) {
+ const data = this.#cache.get(id);
+ if (!data?.isSvg) {
+ return null;
+ }
+ return data.svgUrl;
+ }
+ deleteId(id) {
+ this.#cache ||= new Map();
+ const data = this.#cache.get(id);
+ if (!data) {
+ return;
+ }
+ data.refCounter -= 1;
+ if (data.refCounter !== 0) {
+ return;
+ }
+ data.bitmap = null;
+ }
+ isValidId(id) {
+ return id.startsWith(`image_${this.#baseId}_`);
+ }
+}
+class CommandManager {
+ #commands = [];
+ #locked = false;
+ #maxSize;
+ #position = -1;
+ constructor(maxSize = 128) {
+ this.#maxSize = maxSize;
+ }
+ add({
+ cmd,
+ undo,
+ mustExec,
+ type = NaN,
+ overwriteIfSameType = false,
+ keepUndo = false
+ }) {
+ if (mustExec) {
+ cmd();
+ }
+ if (this.#locked) {
+ return;
+ }
+ const save = {
+ cmd,
+ undo,
+ type
+ };
+ if (this.#position === -1) {
+ if (this.#commands.length > 0) {
+ this.#commands.length = 0;
+ }
+ this.#position = 0;
+ this.#commands.push(save);
+ return;
+ }
+ if (overwriteIfSameType && this.#commands[this.#position].type === type) {
+ if (keepUndo) {
+ save.undo = this.#commands[this.#position].undo;
+ }
+ this.#commands[this.#position] = save;
+ return;
+ }
+ const next = this.#position + 1;
+ if (next === this.#maxSize) {
+ this.#commands.splice(0, 1);
+ } else {
+ this.#position = next;
+ if (next < this.#commands.length) {
+ this.#commands.splice(next);
+ }
+ }
+ this.#commands.push(save);
+ }
+ undo() {
+ if (this.#position === -1) {
+ return;
+ }
+ this.#locked = true;
+ this.#commands[this.#position].undo();
+ this.#locked = false;
+ this.#position -= 1;
+ }
+ redo() {
+ if (this.#position < this.#commands.length - 1) {
+ this.#position += 1;
+ this.#locked = true;
+ this.#commands[this.#position].cmd();
+ this.#locked = false;
+ }
+ }
+ hasSomethingToUndo() {
+ return this.#position !== -1;
+ }
+ hasSomethingToRedo() {
+ return this.#position < this.#commands.length - 1;
+ }
+ destroy() {
+ this.#commands = null;
+ }
+}
+exports.CommandManager = CommandManager;
+class KeyboardManager {
+ constructor(callbacks) {
+ this.buffer = [];
+ this.callbacks = new Map();
+ this.allKeys = new Set();
+ const {
+ isMac
+ } = _util.FeatureTest.platform;
+ for (const [keys, callback, options = {}] of callbacks) {
+ for (const key of keys) {
+ const isMacKey = key.startsWith("mac+");
+ if (isMac && isMacKey) {
+ this.callbacks.set(key.slice(4), {
+ callback,
+ options
+ });
+ this.allKeys.add(key.split("+").at(-1));
+ } else if (!isMac && !isMacKey) {
+ this.callbacks.set(key, {
+ callback,
+ options
+ });
+ this.allKeys.add(key.split("+").at(-1));
+ }
+ }
+ }
+ }
+ #serialize(event) {
+ if (event.altKey) {
+ this.buffer.push("alt");
+ }
+ if (event.ctrlKey) {
+ this.buffer.push("ctrl");
+ }
+ if (event.metaKey) {
+ this.buffer.push("meta");
+ }
+ if (event.shiftKey) {
+ this.buffer.push("shift");
+ }
+ this.buffer.push(event.key);
+ const str = this.buffer.join("+");
+ this.buffer.length = 0;
+ return str;
+ }
+ exec(self, event) {
+ if (!this.allKeys.has(event.key)) {
+ return;
+ }
+ const info = this.callbacks.get(this.#serialize(event));
+ if (!info) {
+ return;
+ }
+ const {
+ callback,
+ options: {
+ bubbles = false,
+ args = [],
+ checker = null
+ }
+ } = info;
+ if (checker && !checker(self, event)) {
+ return;
+ }
+ callback.bind(self, ...args)();
+ if (!bubbles) {
+ event.stopPropagation();
+ event.preventDefault();
+ }
+ }
+}
+exports.KeyboardManager = KeyboardManager;
+class ColorManager {
+ static _colorsMapping = new Map([["CanvasText", [0, 0, 0]], ["Canvas", [255, 255, 255]]]);
+ get _colors() {
+ const colors = new Map([["CanvasText", null], ["Canvas", null]]);
+ (0, _display_utils.getColorValues)(colors);
+ return (0, _util.shadow)(this, "_colors", colors);
+ }
+ convert(color) {
+ const rgb = (0, _display_utils.getRGB)(color);
+ if (!window.matchMedia("(forced-colors: active)").matches) {
+ return rgb;
+ }
+ for (const [name, RGB] of this._colors) {
+ if (RGB.every((x, i) => x === rgb[i])) {
+ return ColorManager._colorsMapping.get(name);
+ }
+ }
+ return rgb;
+ }
+ getHexCode(name) {
+ const rgb = this._colors.get(name);
+ if (!rgb) {
+ return name;
+ }
+ return _util.Util.makeHexColor(...rgb);
+ }
+}
+exports.ColorManager = ColorManager;
+class AnnotationEditorUIManager {
+ #activeEditor = null;
+ #allEditors = new Map();
+ #allLayers = new Map();
+ #altTextManager = null;
+ #annotationStorage = null;
+ #commandManager = new CommandManager();
+ #currentPageIndex = 0;
+ #deletedAnnotationsElementIds = new Set();
+ #draggingEditors = null;
+ #editorTypes = null;
+ #editorsToRescale = new Set();
+ #filterFactory = null;
+ #idManager = new IdManager();
+ #isEnabled = false;
+ #isWaiting = false;
+ #lastActiveElement = null;
+ #mode = _util.AnnotationEditorType.NONE;
+ #selectedEditors = new Set();
+ #pageColors = null;
+ #boundBlur = this.blur.bind(this);
+ #boundFocus = this.focus.bind(this);
+ #boundCopy = this.copy.bind(this);
+ #boundCut = this.cut.bind(this);
+ #boundPaste = this.paste.bind(this);
+ #boundKeydown = this.keydown.bind(this);
+ #boundOnEditingAction = this.onEditingAction.bind(this);
+ #boundOnPageChanging = this.onPageChanging.bind(this);
+ #boundOnScaleChanging = this.onScaleChanging.bind(this);
+ #boundOnRotationChanging = this.onRotationChanging.bind(this);
+ #previousStates = {
+ isEditing: false,
+ isEmpty: true,
+ hasSomethingToUndo: false,
+ hasSomethingToRedo: false,
+ hasSelectedEditor: false
+ };
+ #translation = [0, 0];
+ #translationTimeoutId = null;
+ #container = null;
+ #viewer = null;
+ static TRANSLATE_SMALL = 1;
+ static TRANSLATE_BIG = 10;
+ static get _keyboardManager() {
+ const proto = AnnotationEditorUIManager.prototype;
+ const arrowChecker = self => {
+ const {
+ activeElement
+ } = document;
+ return activeElement && self.#container.contains(activeElement) && self.hasSomethingToControl();
+ };
+ const small = this.TRANSLATE_SMALL;
+ const big = this.TRANSLATE_BIG;
+ return (0, _util.shadow)(this, "_keyboardManager", new KeyboardManager([[["ctrl+a", "mac+meta+a"], proto.selectAll], [["ctrl+z", "mac+meta+z"], proto.undo], [["ctrl+y", "ctrl+shift+z", "mac+meta+shift+z", "ctrl+shift+Z", "mac+meta+shift+Z"], proto.redo], [["Backspace", "alt+Backspace", "ctrl+Backspace", "shift+Backspace", "mac+Backspace", "mac+alt+Backspace", "mac+ctrl+Backspace", "Delete", "ctrl+Delete", "shift+Delete", "mac+Delete"], proto.delete], [["Escape", "mac+Escape"], proto.unselectAll], [["ArrowLeft", "mac+ArrowLeft"], proto.translateSelectedEditors, {
+ args: [-small, 0],
+ checker: arrowChecker
+ }], [["ctrl+ArrowLeft", "mac+shift+ArrowLeft"], proto.translateSelectedEditors, {
+ args: [-big, 0],
+ checker: arrowChecker
+ }], [["ArrowRight", "mac+ArrowRight"], proto.translateSelectedEditors, {
+ args: [small, 0],
+ checker: arrowChecker
+ }], [["ctrl+ArrowRight", "mac+shift+ArrowRight"], proto.translateSelectedEditors, {
+ args: [big, 0],
+ checker: arrowChecker
+ }], [["ArrowUp", "mac+ArrowUp"], proto.translateSelectedEditors, {
+ args: [0, -small],
+ checker: arrowChecker
+ }], [["ctrl+ArrowUp", "mac+shift+ArrowUp"], proto.translateSelectedEditors, {
+ args: [0, -big],
+ checker: arrowChecker
+ }], [["ArrowDown", "mac+ArrowDown"], proto.translateSelectedEditors, {
+ args: [0, small],
+ checker: arrowChecker
+ }], [["ctrl+ArrowDown", "mac+shift+ArrowDown"], proto.translateSelectedEditors, {
+ args: [0, big],
+ checker: arrowChecker
+ }]]));
+ }
+ constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors) {
+ this.#container = container;
+ this.#viewer = viewer;
+ this.#altTextManager = altTextManager;
+ this._eventBus = eventBus;
+ this._eventBus._on("editingaction", this.#boundOnEditingAction);
+ this._eventBus._on("pagechanging", this.#boundOnPageChanging);
+ this._eventBus._on("scalechanging", this.#boundOnScaleChanging);
+ this._eventBus._on("rotationchanging", this.#boundOnRotationChanging);
+ this.#annotationStorage = pdfDocument.annotationStorage;
+ this.#filterFactory = pdfDocument.filterFactory;
+ this.#pageColors = pageColors;
+ this.viewParameters = {
+ realScale: _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS,
+ rotation: 0
+ };
+ }
+ destroy() {
+ this.#removeKeyboardManager();
+ this.#removeFocusManager();
+ this._eventBus._off("editingaction", this.#boundOnEditingAction);
+ this._eventBus._off("pagechanging", this.#boundOnPageChanging);
+ this._eventBus._off("scalechanging", this.#boundOnScaleChanging);
+ this._eventBus._off("rotationchanging", this.#boundOnRotationChanging);
+ for (const layer of this.#allLayers.values()) {
+ layer.destroy();
+ }
+ this.#allLayers.clear();
+ this.#allEditors.clear();
+ this.#editorsToRescale.clear();
+ this.#activeEditor = null;
+ this.#selectedEditors.clear();
+ this.#commandManager.destroy();
+ this.#altTextManager.destroy();
+ }
+ get hcmFilter() {
+ return (0, _util.shadow)(this, "hcmFilter", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : "none");
+ }
+ get direction() {
+ return (0, _util.shadow)(this, "direction", getComputedStyle(this.#container).direction);
+ }
+ editAltText(editor) {
+ this.#altTextManager?.editAltText(this, editor);
+ }
+ onPageChanging({
+ pageNumber
+ }) {
+ this.#currentPageIndex = pageNumber - 1;
+ }
+ focusMainContainer() {
+ this.#container.focus();
+ }
+ findParent(x, y) {
+ for (const layer of this.#allLayers.values()) {
+ const {
+ x: layerX,
+ y: layerY,
+ width,
+ height
+ } = layer.div.getBoundingClientRect();
+ if (x >= layerX && x <= layerX + width && y >= layerY && y <= layerY + height) {
+ return layer;
+ }
+ }
+ return null;
+ }
+ disableUserSelect(value = false) {
+ this.#viewer.classList.toggle("noUserSelect", value);
+ }
+ addShouldRescale(editor) {
+ this.#editorsToRescale.add(editor);
+ }
+ removeShouldRescale(editor) {
+ this.#editorsToRescale.delete(editor);
+ }
+ onScaleChanging({
+ scale
+ }) {
+ this.commitOrRemove();
+ this.viewParameters.realScale = scale * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS;
+ for (const editor of this.#editorsToRescale) {
+ editor.onScaleChanging();
+ }
+ }
+ onRotationChanging({
+ pagesRotation
+ }) {
+ this.commitOrRemove();
+ this.viewParameters.rotation = pagesRotation;
+ }
+ addToAnnotationStorage(editor) {
+ if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) {
+ this.#annotationStorage.setValue(editor.id, editor);
+ }
+ }
+ #addFocusManager() {
+ window.addEventListener("focus", this.#boundFocus);
+ window.addEventListener("blur", this.#boundBlur);
+ }
+ #removeFocusManager() {
+ window.removeEventListener("focus", this.#boundFocus);
+ window.removeEventListener("blur", this.#boundBlur);
+ }
+ blur() {
+ if (!this.hasSelection) {
+ return;
+ }
+ const {
+ activeElement
+ } = document;
+ for (const editor of this.#selectedEditors) {
+ if (editor.div.contains(activeElement)) {
+ this.#lastActiveElement = [editor, activeElement];
+ editor._focusEventsAllowed = false;
+ break;
+ }
+ }
+ }
+ focus() {
+ if (!this.#lastActiveElement) {
+ return;
+ }
+ const [lastEditor, lastActiveElement] = this.#lastActiveElement;
+ this.#lastActiveElement = null;
+ lastActiveElement.addEventListener("focusin", () => {
+ lastEditor._focusEventsAllowed = true;
+ }, {
+ once: true
+ });
+ lastActiveElement.focus();
+ }
+ #addKeyboardManager() {
+ window.addEventListener("keydown", this.#boundKeydown, {
+ capture: true
+ });
+ }
+ #removeKeyboardManager() {
+ window.removeEventListener("keydown", this.#boundKeydown, {
+ capture: true
+ });
+ }
+ #addCopyPasteListeners() {
+ document.addEventListener("copy", this.#boundCopy);
+ document.addEventListener("cut", this.#boundCut);
+ document.addEventListener("paste", this.#boundPaste);
+ }
+ #removeCopyPasteListeners() {
+ document.removeEventListener("copy", this.#boundCopy);
+ document.removeEventListener("cut", this.#boundCut);
+ document.removeEventListener("paste", this.#boundPaste);
+ }
+ addEditListeners() {
+ this.#addKeyboardManager();
+ this.#addCopyPasteListeners();
+ }
+ removeEditListeners() {
+ this.#removeKeyboardManager();
+ this.#removeCopyPasteListeners();
+ }
+ copy(event) {
+ event.preventDefault();
+ this.#activeEditor?.commitOrRemove();
+ if (!this.hasSelection) {
+ return;
+ }
+ const editors = [];
+ for (const editor of this.#selectedEditors) {
+ const serialized = editor.serialize(true);
+ if (serialized) {
+ editors.push(serialized);
+ }
+ }
+ if (editors.length === 0) {
+ return;
+ }
+ event.clipboardData.setData("application/pdfjs", JSON.stringify(editors));
+ }
+ cut(event) {
+ this.copy(event);
+ this.delete();
+ }
+ paste(event) {
+ event.preventDefault();
+ const {
+ clipboardData
+ } = event;
+ for (const item of clipboardData.items) {
+ for (const editorType of this.#editorTypes) {
+ if (editorType.isHandlingMimeForPasting(item.type)) {
+ editorType.paste(item, this.currentLayer);
+ return;
+ }
+ }
+ }
+ let data = clipboardData.getData("application/pdfjs");
+ if (!data) {
+ return;
+ }
+ try {
+ data = JSON.parse(data);
+ } catch (ex) {
+ (0, _util.warn)(`paste: "${ex.message}".`);
+ return;
+ }
+ if (!Array.isArray(data)) {
+ return;
+ }
+ this.unselectAll();
+ const layer = this.currentLayer;
+ try {
+ const newEditors = [];
+ for (const editor of data) {
+ const deserializedEditor = layer.deserialize(editor);
+ if (!deserializedEditor) {
+ return;
+ }
+ newEditors.push(deserializedEditor);
+ }
+ const cmd = () => {
+ for (const editor of newEditors) {
+ this.#addEditorToLayer(editor);
+ }
+ this.#selectEditors(newEditors);
+ };
+ const undo = () => {
+ for (const editor of newEditors) {
+ editor.remove();
+ }
+ };
+ this.addCommands({
+ cmd,
+ undo,
+ mustExec: true
+ });
+ } catch (ex) {
+ (0, _util.warn)(`paste: "${ex.message}".`);
+ }
+ }
+ keydown(event) {
+ if (!this.getActive()?.shouldGetKeyboardEvents()) {
+ AnnotationEditorUIManager._keyboardManager.exec(this, event);
+ }
+ }
+ onEditingAction(details) {
+ if (["undo", "redo", "delete", "selectAll"].includes(details.name)) {
+ this[details.name]();
+ }
+ }
+ #dispatchUpdateStates(details) {
+ const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);
+ if (hasChanged) {
+ this._eventBus.dispatch("annotationeditorstateschanged", {
+ source: this,
+ details: Object.assign(this.#previousStates, details)
+ });
+ }
+ }
+ #dispatchUpdateUI(details) {
+ this._eventBus.dispatch("annotationeditorparamschanged", {
+ source: this,
+ details
+ });
+ }
+ setEditingState(isEditing) {
+ if (isEditing) {
+ this.#addFocusManager();
+ this.#addKeyboardManager();
+ this.#addCopyPasteListeners();
+ this.#dispatchUpdateStates({
+ isEditing: this.#mode !== _util.AnnotationEditorType.NONE,
+ isEmpty: this.#isEmpty(),
+ hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),
+ hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),
+ hasSelectedEditor: false
+ });
+ } else {
+ this.#removeFocusManager();
+ this.#removeKeyboardManager();
+ this.#removeCopyPasteListeners();
+ this.#dispatchUpdateStates({
+ isEditing: false
+ });
+ this.disableUserSelect(false);
+ }
+ }
+ registerEditorTypes(types) {
+ if (this.#editorTypes) {
+ return;
+ }
+ this.#editorTypes = types;
+ for (const editorType of this.#editorTypes) {
+ this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);
+ }
+ }
+ getId() {
+ return this.#idManager.getId();
+ }
+ get currentLayer() {
+ return this.#allLayers.get(this.#currentPageIndex);
+ }
+ getLayer(pageIndex) {
+ return this.#allLayers.get(pageIndex);
+ }
+ get currentPageIndex() {
+ return this.#currentPageIndex;
+ }
+ addLayer(layer) {
+ this.#allLayers.set(layer.pageIndex, layer);
+ if (this.#isEnabled) {
+ layer.enable();
+ } else {
+ layer.disable();
+ }
+ }
+ removeLayer(layer) {
+ this.#allLayers.delete(layer.pageIndex);
+ }
+ updateMode(mode, editId = null) {
+ if (this.#mode === mode) {
+ return;
+ }
+ this.#mode = mode;
+ if (mode === _util.AnnotationEditorType.NONE) {
+ this.setEditingState(false);
+ this.#disableAll();
+ return;
+ }
+ this.setEditingState(true);
+ this.#enableAll();
+ this.unselectAll();
+ for (const layer of this.#allLayers.values()) {
+ layer.updateMode(mode);
+ }
+ if (!editId) {
+ return;
+ }
+ for (const editor of this.#allEditors.values()) {
+ if (editor.annotationElementId === editId) {
+ this.setSelected(editor);
+ editor.enterInEditMode();
+ break;
+ }
+ }
+ }
+ updateToolbar(mode) {
+ if (mode === this.#mode) {
+ return;
+ }
+ this._eventBus.dispatch("switchannotationeditormode", {
+ source: this,
+ mode
+ });
+ }
+ updateParams(type, value) {
+ if (!this.#editorTypes) {
+ return;
+ }
+ if (type === _util.AnnotationEditorParamsType.CREATE) {
+ this.currentLayer.addNewEditor(type);
+ return;
+ }
+ for (const editor of this.#selectedEditors) {
+ editor.updateParams(type, value);
+ }
+ for (const editorType of this.#editorTypes) {
+ editorType.updateDefaultParams(type, value);
+ }
+ }
+ enableWaiting(mustWait = false) {
+ if (this.#isWaiting === mustWait) {
+ return;
+ }
+ this.#isWaiting = mustWait;
+ for (const layer of this.#allLayers.values()) {
+ if (mustWait) {
+ layer.disableClick();
+ } else {
+ layer.enableClick();
+ }
+ layer.div.classList.toggle("waiting", mustWait);
+ }
+ }
+ #enableAll() {
+ if (!this.#isEnabled) {
+ this.#isEnabled = true;
+ for (const layer of this.#allLayers.values()) {
+ layer.enable();
+ }
+ }
+ }
+ #disableAll() {
+ this.unselectAll();
+ if (this.#isEnabled) {
+ this.#isEnabled = false;
+ for (const layer of this.#allLayers.values()) {
+ layer.disable();
+ }
+ }
+ }
+ getEditors(pageIndex) {
+ const editors = [];
+ for (const editor of this.#allEditors.values()) {
+ if (editor.pageIndex === pageIndex) {
+ editors.push(editor);
+ }
+ }
+ return editors;
+ }
+ getEditor(id) {
+ return this.#allEditors.get(id);
+ }
+ addEditor(editor) {
+ this.#allEditors.set(editor.id, editor);
+ }
+ removeEditor(editor) {
+ this.#allEditors.delete(editor.id);
+ this.unselect(editor);
+ if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) {
+ this.#annotationStorage?.remove(editor.id);
+ }
+ }
+ addDeletedAnnotationElement(editor) {
+ this.#deletedAnnotationsElementIds.add(editor.annotationElementId);
+ editor.deleted = true;
+ }
+ isDeletedAnnotationElement(annotationElementId) {
+ return this.#deletedAnnotationsElementIds.has(annotationElementId);
+ }
+ removeDeletedAnnotationElement(editor) {
+ this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);
+ editor.deleted = false;
+ }
+ #addEditorToLayer(editor) {
+ const layer = this.#allLayers.get(editor.pageIndex);
+ if (layer) {
+ layer.addOrRebuild(editor);
+ } else {
+ this.addEditor(editor);
+ }
+ }
+ setActiveEditor(editor) {
+ if (this.#activeEditor === editor) {
+ return;
+ }
+ this.#activeEditor = editor;
+ if (editor) {
+ this.#dispatchUpdateUI(editor.propertiesToUpdate);
+ }
+ }
+ toggleSelected(editor) {
+ if (this.#selectedEditors.has(editor)) {
+ this.#selectedEditors.delete(editor);
+ editor.unselect();
+ this.#dispatchUpdateStates({
+ hasSelectedEditor: this.hasSelection
+ });
+ return;
+ }
+ this.#selectedEditors.add(editor);
+ editor.select();
+ this.#dispatchUpdateUI(editor.propertiesToUpdate);
+ this.#dispatchUpdateStates({
+ hasSelectedEditor: true
+ });
+ }
+ setSelected(editor) {
+ for (const ed of this.#selectedEditors) {
+ if (ed !== editor) {
+ ed.unselect();
+ }
+ }
+ this.#selectedEditors.clear();
+ this.#selectedEditors.add(editor);
+ editor.select();
+ this.#dispatchUpdateUI(editor.propertiesToUpdate);
+ this.#dispatchUpdateStates({
+ hasSelectedEditor: true
+ });
+ }
+ isSelected(editor) {
+ return this.#selectedEditors.has(editor);
+ }
+ unselect(editor) {
+ editor.unselect();
+ this.#selectedEditors.delete(editor);
+ this.#dispatchUpdateStates({
+ hasSelectedEditor: this.hasSelection
+ });
+ }
+ get hasSelection() {
+ return this.#selectedEditors.size !== 0;
+ }
+ undo() {
+ this.#commandManager.undo();
+ this.#dispatchUpdateStates({
+ hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),
+ hasSomethingToRedo: true,
+ isEmpty: this.#isEmpty()
+ });
+ }
+ redo() {
+ this.#commandManager.redo();
+ this.#dispatchUpdateStates({
+ hasSomethingToUndo: true,
+ hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),
+ isEmpty: this.#isEmpty()
+ });
+ }
+ addCommands(params) {
+ this.#commandManager.add(params);
+ this.#dispatchUpdateStates({
+ hasSomethingToUndo: true,
+ hasSomethingToRedo: false,
+ isEmpty: this.#isEmpty()
+ });
+ }
+ #isEmpty() {
+ if (this.#allEditors.size === 0) {
+ return true;
+ }
+ if (this.#allEditors.size === 1) {
+ for (const editor of this.#allEditors.values()) {
+ return editor.isEmpty();
+ }
+ }
+ return false;
+ }
+ delete() {
+ this.commitOrRemove();
+ if (!this.hasSelection) {
+ return;
+ }
+ const editors = [...this.#selectedEditors];
+ const cmd = () => {
+ for (const editor of editors) {
+ editor.remove();
+ }
+ };
+ const undo = () => {
+ for (const editor of editors) {
+ this.#addEditorToLayer(editor);
+ }
+ };
+ this.addCommands({
+ cmd,
+ undo,
+ mustExec: true
+ });
+ }
+ commitOrRemove() {
+ this.#activeEditor?.commitOrRemove();
+ }
+ hasSomethingToControl() {
+ return this.#activeEditor || this.hasSelection;
+ }
+ #selectEditors(editors) {
+ this.#selectedEditors.clear();
+ for (const editor of editors) {
+ if (editor.isEmpty()) {
+ continue;
+ }
+ this.#selectedEditors.add(editor);
+ editor.select();
+ }
+ this.#dispatchUpdateStates({
+ hasSelectedEditor: true
+ });
+ }
+ selectAll() {
+ for (const editor of this.#selectedEditors) {
+ editor.commit();
+ }
+ this.#selectEditors(this.#allEditors.values());
+ }
+ unselectAll() {
+ if (this.#activeEditor) {
+ this.#activeEditor.commitOrRemove();
+ return;
+ }
+ if (!this.hasSelection) {
+ return;
+ }
+ for (const editor of this.#selectedEditors) {
+ editor.unselect();
+ }
+ this.#selectedEditors.clear();
+ this.#dispatchUpdateStates({
+ hasSelectedEditor: false
+ });
+ }
+ translateSelectedEditors(x, y, noCommit = false) {
+ if (!noCommit) {
+ this.commitOrRemove();
+ }
+ if (!this.hasSelection) {
+ return;
+ }
+ this.#translation[0] += x;
+ this.#translation[1] += y;
+ const [totalX, totalY] = this.#translation;
+ const editors = [...this.#selectedEditors];
+ const TIME_TO_WAIT = 1000;
+ if (this.#translationTimeoutId) {
+ clearTimeout(this.#translationTimeoutId);
+ }
+ this.#translationTimeoutId = setTimeout(() => {
+ this.#translationTimeoutId = null;
+ this.#translation[0] = this.#translation[1] = 0;
+ this.addCommands({
+ cmd: () => {
+ for (const editor of editors) {
+ if (this.#allEditors.has(editor.id)) {
+ editor.translateInPage(totalX, totalY);
+ }
+ }
+ },
+ undo: () => {
+ for (const editor of editors) {
+ if (this.#allEditors.has(editor.id)) {
+ editor.translateInPage(-totalX, -totalY);
+ }
+ }
+ },
+ mustExec: false
+ });
+ }, TIME_TO_WAIT);
+ for (const editor of editors) {
+ editor.translateInPage(x, y);
+ }
+ }
+ setUpDragSession() {
+ if (!this.hasSelection) {
+ return;
+ }
+ this.disableUserSelect(true);
+ this.#draggingEditors = new Map();
+ for (const editor of this.#selectedEditors) {
+ this.#draggingEditors.set(editor, {
+ savedX: editor.x,
+ savedY: editor.y,
+ savedPageIndex: editor.pageIndex,
+ newX: 0,
+ newY: 0,
+ newPageIndex: -1
+ });
+ }
+ }
+ endDragSession() {
+ if (!this.#draggingEditors) {
+ return false;
+ }
+ this.disableUserSelect(false);
+ const map = this.#draggingEditors;
+ this.#draggingEditors = null;
+ let mustBeAddedInUndoStack = false;
+ for (const [{
+ x,
+ y,
+ pageIndex
+ }, value] of map) {
+ value.newX = x;
+ value.newY = y;
+ value.newPageIndex = pageIndex;
+ mustBeAddedInUndoStack ||= x !== value.savedX || y !== value.savedY || pageIndex !== value.savedPageIndex;
+ }
+ if (!mustBeAddedInUndoStack) {
+ return false;
+ }
+ const move = (editor, x, y, pageIndex) => {
+ if (this.#allEditors.has(editor.id)) {
+ const parent = this.#allLayers.get(pageIndex);
+ if (parent) {
+ editor._setParentAndPosition(parent, x, y);
+ } else {
+ editor.pageIndex = pageIndex;
+ editor.x = x;
+ editor.y = y;
+ }
+ }
+ };
+ this.addCommands({
+ cmd: () => {
+ for (const [editor, {
+ newX,
+ newY,
+ newPageIndex
+ }] of map) {
+ move(editor, newX, newY, newPageIndex);
+ }
+ },
+ undo: () => {
+ for (const [editor, {
+ savedX,
+ savedY,
+ savedPageIndex
+ }] of map) {
+ move(editor, savedX, savedY, savedPageIndex);
+ }
+ },
+ mustExec: true
+ });
+ return true;
+ }
+ dragSelectedEditors(tx, ty) {
+ if (!this.#draggingEditors) {
+ return;
+ }
+ for (const editor of this.#draggingEditors.keys()) {
+ editor.drag(tx, ty);
+ }
+ }
+ rebuild(editor) {
+ if (editor.parent === null) {
+ const parent = this.getLayer(editor.pageIndex);
+ if (parent) {
+ parent.changeParent(editor);
+ parent.addOrRebuild(editor);
+ } else {
+ this.addEditor(editor);
+ this.addToAnnotationStorage(editor);
+ editor.rebuild();
+ }
+ } else {
+ editor.parent.addOrRebuild(editor);
+ }
+ }
+ isActive(editor) {
+ return this.#activeEditor === editor;
+ }
+ getActive() {
+ return this.#activeEditor;
+ }
+ getMode() {
+ return this.#mode;
+ }
+ get imageManager() {
+ return (0, _util.shadow)(this, "imageManager", new ImageManager());
+ }
+}
+exports.AnnotationEditorUIManager = AnnotationEditorUIManager;
+
+/***/ }),
+/* 6 */
+/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMFilterFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = void 0;
+exports.deprecated = deprecated;
+exports.getColorValues = getColorValues;
+exports.getCurrentTransform = getCurrentTransform;
+exports.getCurrentTransformInverse = getCurrentTransformInverse;
+exports.getFilenameFromUrl = getFilenameFromUrl;
+exports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;
+exports.getRGB = getRGB;
+exports.getXfaPageViewport = getXfaPageViewport;
+exports.isDataScheme = isDataScheme;
+exports.isPdfFile = isPdfFile;
+exports.isValidFetchUrl = isValidFetchUrl;
+exports.loadScript = loadScript;
+exports.noContextMenu = noContextMenu;
+exports.setLayerDimensions = setLayerDimensions;
+var _base_factory = __w_pdfjs_require__(7);
+var _util = __w_pdfjs_require__(1);
+const SVG_NS = "http://www.w3.org/2000/svg";
+class PixelsPerInch {
+ static CSS = 96.0;
+ static PDF = 72.0;
+ static PDF_TO_CSS_UNITS = this.CSS / this.PDF;
+}
+exports.PixelsPerInch = PixelsPerInch;
+class DOMFilterFactory extends _base_factory.BaseFilterFactory {
+ #_cache;
+ #_defs;
+ #docId;
+ #document;
+ #hcmFilter;
+ #hcmKey;
+ #hcmUrl;
+ #hcmHighlightFilter;
+ #hcmHighlightKey;
+ #hcmHighlightUrl;
+ #id = 0;
+ constructor({
+ docId,
+ ownerDocument = globalThis.document
+ } = {}) {
+ super();
+ this.#docId = docId;
+ this.#document = ownerDocument;
+ }
+ get #cache() {
+ return this.#_cache ||= new Map();
+ }
+ get #defs() {
+ if (!this.#_defs) {
+ const div = this.#document.createElement("div");
+ const {
+ style
+ } = div;
+ style.visibility = "hidden";
+ style.contain = "strict";
+ style.width = style.height = 0;
+ style.position = "absolute";
+ style.top = style.left = 0;
+ style.zIndex = -1;
+ const svg = this.#document.createElementNS(SVG_NS, "svg");
+ svg.setAttribute("width", 0);
+ svg.setAttribute("height", 0);
+ this.#_defs = this.#document.createElementNS(SVG_NS, "defs");
+ div.append(svg);
+ svg.append(this.#_defs);
+ this.#document.body.append(div);
+ }
+ return this.#_defs;
+ }
+ addFilter(maps) {
+ if (!maps) {
+ return "none";
+ }
+ let value = this.#cache.get(maps);
+ if (value) {
+ return value;
+ }
+ let tableR, tableG, tableB, key;
+ if (maps.length === 1) {
+ const mapR = maps[0];
+ const buffer = new Array(256);
+ for (let i = 0; i < 256; i++) {
+ buffer[i] = mapR[i] / 255;
+ }
+ key = tableR = tableG = tableB = buffer.join(",");
+ } else {
+ const [mapR, mapG, mapB] = maps;
+ const bufferR = new Array(256);
+ const bufferG = new Array(256);
+ const bufferB = new Array(256);
+ for (let i = 0; i < 256; i++) {
+ bufferR[i] = mapR[i] / 255;
+ bufferG[i] = mapG[i] / 255;
+ bufferB[i] = mapB[i] / 255;
+ }
+ tableR = bufferR.join(",");
+ tableG = bufferG.join(",");
+ tableB = bufferB.join(",");
+ key = `${tableR}${tableG}${tableB}`;
+ }
+ value = this.#cache.get(key);
+ if (value) {
+ this.#cache.set(maps, value);
+ return value;
+ }
+ const id = `g_${this.#docId}_transfer_map_${this.#id++}`;
+ const url = `url(#${id})`;
+ this.#cache.set(maps, url);
+ this.#cache.set(key, url);
+ const filter = this.#createFilter(id);
+ this.#addTransferMapConversion(tableR, tableG, tableB, filter);
+ return url;
+ }
+ addHCMFilter(fgColor, bgColor) {
+ const key = `${fgColor}-${bgColor}`;
+ if (this.#hcmKey === key) {
+ return this.#hcmUrl;
+ }
+ this.#hcmKey = key;
+ this.#hcmUrl = "none";
+ this.#hcmFilter?.remove();
+ if (!fgColor || !bgColor) {
+ return this.#hcmUrl;
+ }
+ const fgRGB = this.#getRGB(fgColor);
+ fgColor = _util.Util.makeHexColor(...fgRGB);
+ const bgRGB = this.#getRGB(bgColor);
+ bgColor = _util.Util.makeHexColor(...bgRGB);
+ this.#defs.style.color = "";
+ if (fgColor === "#000000" && bgColor === "#ffffff" || fgColor === bgColor) {
+ return this.#hcmUrl;
+ }
+ const map = new Array(256);
+ for (let i = 0; i <= 255; i++) {
+ const x = i / 255;
+ map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;
+ }
+ const table = map.join(",");
+ const id = `g_${this.#docId}_hcm_filter`;
+ const filter = this.#hcmHighlightFilter = this.#createFilter(id);
+ this.#addTransferMapConversion(table, table, table, filter);
+ this.#addGrayConversion(filter);
+ const getSteps = (c, n) => {
+ const start = fgRGB[c] / 255;
+ const end = bgRGB[c] / 255;
+ const arr = new Array(n + 1);
+ for (let i = 0; i <= n; i++) {
+ arr[i] = start + i / n * (end - start);
+ }
+ return arr.join(",");
+ };
+ this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter);
+ this.#hcmUrl = `url(#${id})`;
+ return this.#hcmUrl;
+ }
+ addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {
+ const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;
+ if (this.#hcmHighlightKey === key) {
+ return this.#hcmHighlightUrl;
+ }
+ this.#hcmHighlightKey = key;
+ this.#hcmHighlightUrl = "none";
+ this.#hcmHighlightFilter?.remove();
+ if (!fgColor || !bgColor) {
+ return this.#hcmHighlightUrl;
+ }
+ const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));
+ let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]);
+ let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]);
+ let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this));
+ if (bgGray < fgGray) {
+ [fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB];
+ }
+ this.#defs.style.color = "";
+ const getSteps = (fg, bg, n) => {
+ const arr = new Array(256);
+ const step = (bgGray - fgGray) / n;
+ const newStart = fg / 255;
+ const newStep = (bg - fg) / (255 * n);
+ let prev = 0;
+ for (let i = 0; i <= n; i++) {
+ const k = Math.round(fgGray + i * step);
+ const value = newStart + i * newStep;
+ for (let j = prev; j <= k; j++) {
+ arr[j] = value;
+ }
+ prev = k + 1;
+ }
+ for (let i = prev; i < 256; i++) {
+ arr[i] = arr[prev - 1];
+ }
+ return arr.join(",");
+ };
+ const id = `g_${this.#docId}_hcm_highlight_filter`;
+ const filter = this.#hcmHighlightFilter = this.#createFilter(id);
+ this.#addGrayConversion(filter);
+ this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter);
+ this.#hcmHighlightUrl = `url(#${id})`;
+ return this.#hcmHighlightUrl;
+ }
+ destroy(keepHCM = false) {
+ if (keepHCM && (this.#hcmUrl || this.#hcmHighlightUrl)) {
+ return;
+ }
+ if (this.#_defs) {
+ this.#_defs.parentNode.parentNode.remove();
+ this.#_defs = null;
+ }
+ if (this.#_cache) {
+ this.#_cache.clear();
+ this.#_cache = null;
+ }
+ this.#id = 0;
+ }
+ #addGrayConversion(filter) {
+ const feColorMatrix = this.#document.createElementNS(SVG_NS, "feColorMatrix");
+ feColorMatrix.setAttribute("type", "matrix");
+ feColorMatrix.setAttribute("values", "0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0");
+ filter.append(feColorMatrix);
+ }
+ #createFilter(id) {
+ const filter = this.#document.createElementNS(SVG_NS, "filter");
+ filter.setAttribute("color-interpolation-filters", "sRGB");
+ filter.setAttribute("id", id);
+ this.#defs.append(filter);
+ return filter;
+ }
+ #appendFeFunc(feComponentTransfer, func, table) {
+ const feFunc = this.#document.createElementNS(SVG_NS, func);
+ feFunc.setAttribute("type", "discrete");
+ feFunc.setAttribute("tableValues", table);
+ feComponentTransfer.append(feFunc);
+ }
+ #addTransferMapConversion(rTable, gTable, bTable, filter) {
+ const feComponentTransfer = this.#document.createElementNS(SVG_NS, "feComponentTransfer");
+ filter.append(feComponentTransfer);
+ this.#appendFeFunc(feComponentTransfer, "feFuncR", rTable);
+ this.#appendFeFunc(feComponentTransfer, "feFuncG", gTable);
+ this.#appendFeFunc(feComponentTransfer, "feFuncB", bTable);
+ }
+ #getRGB(color) {
+ this.#defs.style.color = color;
+ return getRGB(getComputedStyle(this.#defs).getPropertyValue("color"));
+ }
+}
+exports.DOMFilterFactory = DOMFilterFactory;
+class DOMCanvasFactory extends _base_factory.BaseCanvasFactory {
+ constructor({
+ ownerDocument = globalThis.document
+ } = {}) {
+ super();
+ this._document = ownerDocument;
+ }
+ _createCanvas(width, height) {
+ const canvas = this._document.createElement("canvas");
+ canvas.width = width;
+ canvas.height = height;
+ return canvas;
+ }
+}
+exports.DOMCanvasFactory = DOMCanvasFactory;
+async function fetchData(url, asTypedArray = false) {
+ if (isValidFetchUrl(url, document.baseURI)) {
+ const response = await fetch(url);
+ if (!response.ok) {
+ throw new Error(response.statusText);
+ }
+ return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text());
+ }
+ return new Promise((resolve, reject) => {
+ const request = new XMLHttpRequest();
+ request.open("GET", url, true);
+ if (asTypedArray) {
+ request.responseType = "arraybuffer";
+ }
+ request.onreadystatechange = () => {
+ if (request.readyState !== XMLHttpRequest.DONE) {
+ return;
+ }
+ if (request.status === 200 || request.status === 0) {
+ let data;
+ if (asTypedArray && request.response) {
+ data = new Uint8Array(request.response);
+ } else if (!asTypedArray && request.responseText) {
+ data = (0, _util.stringToBytes)(request.responseText);
+ }
+ if (data) {
+ resolve(data);
+ return;
+ }
+ }
+ reject(new Error(request.statusText));
+ };
+ request.send(null);
+ });
+}
+class DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {
+ _fetchData(url, compressionType) {
+ return fetchData(url, this.isCompressed).then(data => {
+ return {
+ cMapData: data,
+ compressionType
+ };
+ });
+ }
+}
+exports.DOMCMapReaderFactory = DOMCMapReaderFactory;
+class DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {
+ _fetchData(url) {
+ return fetchData(url, true);
+ }
+}
+exports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;
+class DOMSVGFactory extends _base_factory.BaseSVGFactory {
+ _createSVG(type) {
+ return document.createElementNS(SVG_NS, type);
+ }
+}
+exports.DOMSVGFactory = DOMSVGFactory;
+class PageViewport {
+ constructor({
+ viewBox,
+ scale,
+ rotation,
+ offsetX = 0,
+ offsetY = 0,
+ dontFlip = false
+ }) {
this.viewBox = viewBox;
this.scale = scale;
this.rotation = rotation;
this.offsetX = offsetX;
this.offsetY = offsetY;
-
- // creating transform to convert pdf coordinate system to the normal
- // canvas like coordinates taking in account scale and rotation
- var centerX = (viewBox[2] + viewBox[0]) / 2;
- var centerY = (viewBox[3] + viewBox[1]) / 2;
- var rotateA, rotateB, rotateC, rotateD;
- rotation = rotation % 360;
- rotation = rotation < 0 ? rotation + 360 : rotation;
+ const centerX = (viewBox[2] + viewBox[0]) / 2;
+ const centerY = (viewBox[3] + viewBox[1]) / 2;
+ let rotateA, rotateB, rotateC, rotateD;
+ rotation %= 360;
+ if (rotation < 0) {
+ rotation += 360;
+ }
switch (rotation) {
case 180:
- rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1;
+ rotateA = -1;
+ rotateB = 0;
+ rotateC = 0;
+ rotateD = 1;
break;
case 90:
- rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0;
+ rotateA = 0;
+ rotateB = 1;
+ rotateC = 1;
+ rotateD = 0;
break;
case 270:
- rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0;
+ rotateA = 0;
+ rotateB = -1;
+ rotateC = -1;
+ rotateD = 0;
+ break;
+ case 0:
+ rotateA = 1;
+ rotateB = 0;
+ rotateC = 0;
+ rotateD = -1;
break;
- //case 0:
default:
- rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1;
- break;
+ throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.");
}
-
if (dontFlip) {
- rotateC = -rotateC; rotateD = -rotateD;
+ rotateC = -rotateC;
+ rotateD = -rotateD;
}
-
- var offsetCanvasX, offsetCanvasY;
- var width, height;
+ let offsetCanvasX, offsetCanvasY;
+ let width, height;
if (rotateA === 0) {
offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
- width = Math.abs(viewBox[3] - viewBox[1]) * scale;
- height = Math.abs(viewBox[2] - viewBox[0]) * scale;
+ width = (viewBox[3] - viewBox[1]) * scale;
+ height = (viewBox[2] - viewBox[0]) * scale;
} else {
offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
- width = Math.abs(viewBox[2] - viewBox[0]) * scale;
- height = Math.abs(viewBox[3] - viewBox[1]) * scale;
+ width = (viewBox[2] - viewBox[0]) * scale;
+ height = (viewBox[3] - viewBox[1]) * scale;
}
- // creating transform for the following operations:
- // translate(-centerX, -centerY), rotate and flip vertically,
- // scale, and translate(offsetCanvasX, offsetCanvasY)
- this.transform = [
- rotateA * scale,
- rotateB * scale,
- rotateC * scale,
- rotateD * scale,
- offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,
- offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY
- ];
-
+ this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];
this.width = width;
this.height = height;
- this.fontScale = scale;
}
- PageViewport.prototype = /** @lends PDFJS.PageViewport.prototype */ {
- /**
- * Clones viewport with additional properties.
- * @param args {Object} (optional) If specified, may contain the 'scale' or
- * 'rotation' properties to override the corresponding properties in
- * the cloned viewport.
- * @returns {PDFJS.PageViewport} Cloned viewport.
- */
- clone: function PageViewPort_clone(args) {
- args = args || {};
- var scale = 'scale' in args ? args.scale : this.scale;
- var rotation = 'rotation' in args ? args.rotation : this.rotation;
- return new PageViewport(this.viewBox.slice(), scale, rotation,
- this.offsetX, this.offsetY, args.dontFlip);
- },
- /**
- * Converts PDF point to the viewport coordinates. For examples, useful for
- * converting PDF location into canvas pixel coordinates.
- * @param x {number} X coordinate.
- * @param y {number} Y coordinate.
- * @returns {Object} Object that contains 'x' and 'y' properties of the
- * point in the viewport coordinate space.
- * @see {@link convertToPdfPoint}
- * @see {@link convertToViewportRectangle}
- */
- convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) {
- return Util.applyTransform([x, y], this.transform);
- },
- /**
- * Converts PDF rectangle to the viewport coordinates.
- * @param rect {Array} xMin, yMin, xMax and yMax coordinates.
- * @returns {Array} Contains corresponding coordinates of the rectangle
- * in the viewport coordinate space.
- * @see {@link convertToViewportPoint}
- */
- convertToViewportRectangle:
- function PageViewport_convertToViewportRectangle(rect) {
- var tl = Util.applyTransform([rect[0], rect[1]], this.transform);
- var br = Util.applyTransform([rect[2], rect[3]], this.transform);
- return [tl[0], tl[1], br[0], br[1]];
- },
- /**
- * Converts viewport coordinates to the PDF location. For examples, useful
- * for converting canvas pixel location into PDF one.
- * @param x {number} X coordinate.
- * @param y {number} Y coordinate.
- * @returns {Object} Object that contains 'x' and 'y' properties of the
- * point in the PDF coordinate space.
- * @see {@link convertToViewportPoint}
- */
- convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) {
- return Util.applyInverseTransform([x, y], this.transform);
- }
- };
- return PageViewport;
-})();
-
-var PDFStringTranslateTable = [
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,
- 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,
- 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,
- 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC
-];
-
-function stringToPDFString(str) {
- var i, n = str.length, strBuf = [];
- if (str[0] === '\xFE' && str[1] === '\xFF') {
- // UTF16BE BOM
- for (i = 2; i < n; i += 2) {
- strBuf.push(String.fromCharCode(
- (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)));
- }
- } else {
- for (i = 0; i < n; ++i) {
- var code = PDFStringTranslateTable[str.charCodeAt(i)];
- strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
+ get rawDims() {
+ const {
+ viewBox
+ } = this;
+ return (0, _util.shadow)(this, "rawDims", {
+ pageWidth: viewBox[2] - viewBox[0],
+ pageHeight: viewBox[3] - viewBox[1],
+ pageX: viewBox[0],
+ pageY: viewBox[1]
+ });
+ }
+ clone({
+ scale = this.scale,
+ rotation = this.rotation,
+ offsetX = this.offsetX,
+ offsetY = this.offsetY,
+ dontFlip = false
+ } = {}) {
+ return new PageViewport({
+ viewBox: this.viewBox.slice(),
+ scale,
+ rotation,
+ offsetX,
+ offsetY,
+ dontFlip
+ });
+ }
+ convertToViewportPoint(x, y) {
+ return _util.Util.applyTransform([x, y], this.transform);
+ }
+ convertToViewportRectangle(rect) {
+ const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);
+ const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);
+ return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];
+ }
+ convertToPdfPoint(x, y) {
+ return _util.Util.applyInverseTransform([x, y], this.transform);
+ }
+}
+exports.PageViewport = PageViewport;
+class RenderingCancelledException extends _util.BaseException {
+ constructor(msg, extraDelay = 0) {
+ super(msg, "RenderingCancelledException");
+ this.extraDelay = extraDelay;
+ }
+}
+exports.RenderingCancelledException = RenderingCancelledException;
+function isDataScheme(url) {
+ const ii = url.length;
+ let i = 0;
+ while (i < ii && url[i].trim() === "") {
+ i++;
+ }
+ return url.substring(i, i + 5).toLowerCase() === "data:";
+}
+function isPdfFile(filename) {
+ return typeof filename === "string" && /\.pdf$/i.test(filename);
+}
+function getFilenameFromUrl(url, onlyStripPath = false) {
+ if (!onlyStripPath) {
+ [url] = url.split(/[#?]/, 1);
+ }
+ return url.substring(url.lastIndexOf("/") + 1);
+}
+function getPdfFilenameFromUrl(url, defaultFilename = "document.pdf") {
+ if (typeof url !== "string") {
+ return defaultFilename;
+ }
+ if (isDataScheme(url)) {
+ (0, _util.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.');
+ return defaultFilename;
+ }
+ const reURI = /^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/;
+ const reFilename = /[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i;
+ const splitURI = reURI.exec(url);
+ let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);
+ if (suggestedFilename) {
+ suggestedFilename = suggestedFilename[0];
+ if (suggestedFilename.includes("%")) {
+ try {
+ suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];
+ } catch {}
}
}
- return strBuf.join('');
+ return suggestedFilename || defaultFilename;
}
-
-function stringToUTF8String(str) {
- return decodeURIComponent(escape(str));
+class StatTimer {
+ started = Object.create(null);
+ times = [];
+ time(name) {
+ if (name in this.started) {
+ (0, _util.warn)(`Timer is already running for ${name}`);
+ }
+ this.started[name] = Date.now();
+ }
+ timeEnd(name) {
+ if (!(name in this.started)) {
+ (0, _util.warn)(`Timer has not been started for ${name}`);
+ }
+ this.times.push({
+ name,
+ start: this.started[name],
+ end: Date.now()
+ });
+ delete this.started[name];
+ }
+ toString() {
+ const outBuf = [];
+ let longest = 0;
+ for (const {
+ name
+ } of this.times) {
+ longest = Math.max(name.length, longest);
+ }
+ for (const {
+ name,
+ start,
+ end
+ } of this.times) {
+ outBuf.push(`${name.padEnd(longest)} ${end - start}ms\n`);
+ }
+ return outBuf.join("");
+ }
}
-
-function utf8StringToString(str) {
- return unescape(encodeURIComponent(str));
-}
-
-function isEmptyObj(obj) {
- for (var key in obj) {
+exports.StatTimer = StatTimer;
+function isValidFetchUrl(url, baseUrl) {
+ try {
+ const {
+ protocol
+ } = baseUrl ? new URL(url, baseUrl) : new URL(url);
+ return protocol === "http:" || protocol === "https:";
+ } catch {
return false;
}
- return true;
}
-
-function isBool(v) {
- return typeof v === 'boolean';
+function noContextMenu(e) {
+ e.preventDefault();
}
-
-function isInt(v) {
- return typeof v === 'number' && ((v | 0) === v);
-}
-
-function isNum(v) {
- return typeof v === 'number';
-}
-
-function isString(v) {
- return typeof v === 'string';
-}
-
-function isArray(v) {
- return v instanceof Array;
-}
-
-function isArrayBuffer(v) {
- return typeof v === 'object' && v !== null && v.byteLength !== undefined;
-}
-
-/**
- * Promise Capability object.
- *
- * @typedef {Object} PromiseCapability
- * @property {Promise} promise - A promise object.
- * @property {function} resolve - Fullfills the promise.
- * @property {function} reject - Rejects the promise.
- */
-
-/**
- * Creates a promise capability object.
- * @alias PDFJS.createPromiseCapability
- *
- * @return {PromiseCapability} A capability object contains:
- * - a Promise, resolve and reject methods.
- */
-function createPromiseCapability() {
- var capability = {};
- capability.promise = new Promise(function (resolve, reject) {
- capability.resolve = resolve;
- capability.reject = reject;
+function loadScript(src, removeScriptElement = false) {
+ return new Promise((resolve, reject) => {
+ const script = document.createElement("script");
+ script.src = src;
+ script.onload = function (evt) {
+ if (removeScriptElement) {
+ script.remove();
+ }
+ resolve(evt);
+ };
+ script.onerror = function () {
+ reject(new Error(`Cannot load script at: ${script.src}`));
+ };
+ (document.head || document.documentElement).append(script);
});
- return capability;
+}
+function deprecated(details) {
+ console.log("Deprecated API usage: " + details);
+}
+let pdfDateStringRegex;
+class PDFDateString {
+ static toDateObject(input) {
+ if (!input || typeof input !== "string") {
+ return null;
+ }
+ pdfDateStringRegex ||= new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?");
+ const matches = pdfDateStringRegex.exec(input);
+ if (!matches) {
+ return null;
+ }
+ const year = parseInt(matches[1], 10);
+ let month = parseInt(matches[2], 10);
+ month = month >= 1 && month <= 12 ? month - 1 : 0;
+ let day = parseInt(matches[3], 10);
+ day = day >= 1 && day <= 31 ? day : 1;
+ let hour = parseInt(matches[4], 10);
+ hour = hour >= 0 && hour <= 23 ? hour : 0;
+ let minute = parseInt(matches[5], 10);
+ minute = minute >= 0 && minute <= 59 ? minute : 0;
+ let second = parseInt(matches[6], 10);
+ second = second >= 0 && second <= 59 ? second : 0;
+ const universalTimeRelation = matches[7] || "Z";
+ let offsetHour = parseInt(matches[8], 10);
+ offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;
+ let offsetMinute = parseInt(matches[9], 10) || 0;
+ offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;
+ if (universalTimeRelation === "-") {
+ hour += offsetHour;
+ minute += offsetMinute;
+ } else if (universalTimeRelation === "+") {
+ hour -= offsetHour;
+ minute -= offsetMinute;
+ }
+ return new Date(Date.UTC(year, month, day, hour, minute, second));
+ }
+}
+exports.PDFDateString = PDFDateString;
+function getXfaPageViewport(xfaPage, {
+ scale = 1,
+ rotation = 0
+}) {
+ const {
+ width,
+ height
+ } = xfaPage.attributes.style;
+ const viewBox = [0, 0, parseInt(width), parseInt(height)];
+ return new PageViewport({
+ viewBox,
+ scale,
+ rotation
+ });
+}
+function getRGB(color) {
+ if (color.startsWith("#")) {
+ const colorRGB = parseInt(color.slice(1), 16);
+ return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];
+ }
+ if (color.startsWith("rgb(")) {
+ return color.slice(4, -1).split(",").map(x => parseInt(x));
+ }
+ if (color.startsWith("rgba(")) {
+ return color.slice(5, -1).split(",").map(x => parseInt(x)).slice(0, 3);
+ }
+ (0, _util.warn)(`Not a valid color format: "${color}"`);
+ return [0, 0, 0];
+}
+function getColorValues(colors) {
+ const span = document.createElement("span");
+ span.style.visibility = "hidden";
+ document.body.append(span);
+ for (const name of colors.keys()) {
+ span.style.color = name;
+ const computedColor = window.getComputedStyle(span).color;
+ colors.set(name, getRGB(computedColor));
+ }
+ span.remove();
+}
+function getCurrentTransform(ctx) {
+ const {
+ a,
+ b,
+ c,
+ d,
+ e,
+ f
+ } = ctx.getTransform();
+ return [a, b, c, d, e, f];
+}
+function getCurrentTransformInverse(ctx) {
+ const {
+ a,
+ b,
+ c,
+ d,
+ e,
+ f
+ } = ctx.getTransform().invertSelf();
+ return [a, b, c, d, e, f];
+}
+function setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {
+ if (viewport instanceof PageViewport) {
+ const {
+ pageWidth,
+ pageHeight
+ } = viewport.rawDims;
+ const {
+ style
+ } = div;
+ const useRound = _util.FeatureTest.isCSSRoundSupported;
+ const w = `var(--scale-factor) * ${pageWidth}px`,
+ h = `var(--scale-factor) * ${pageHeight}px`;
+ const widthStr = useRound ? `round(${w}, 1px)` : `calc(${w})`,
+ heightStr = useRound ? `round(${h}, 1px)` : `calc(${h})`;
+ if (!mustFlip || viewport.rotation % 180 === 0) {
+ style.width = widthStr;
+ style.height = heightStr;
+ } else {
+ style.width = heightStr;
+ style.height = widthStr;
+ }
+ }
+ if (mustRotate) {
+ div.setAttribute("data-main-rotation", viewport.rotation);
+ }
}
-/**
- * Polyfill for Promises:
- * The following promise implementation tries to generally implement the
- * Promise/A+ spec. Some notable differences from other promise libaries are:
- * - There currently isn't a seperate deferred and promise object.
- * - Unhandled rejections eventually show an error if they aren't handled.
- *
- * Based off of the work in:
- * https://bugzilla.mozilla.org/show_bug.cgi?id=810490
- */
-(function PromiseClosure() {
- if (globalScope.Promise) {
- // Promises existing in the DOM/Worker, checking presence of all/resolve
- if (typeof globalScope.Promise.all !== 'function') {
- globalScope.Promise.all = function (iterable) {
- var count = 0, results = [], resolve, reject;
- var promise = new globalScope.Promise(function (resolve_, reject_) {
- resolve = resolve_;
- reject = reject_;
- });
- iterable.forEach(function (p, i) {
- count++;
- p.then(function (result) {
- results[i] = result;
- count--;
- if (count === 0) {
- resolve(results);
- }
- }, reject);
- });
- if (count === 0) {
- resolve(results);
- }
- return promise;
- };
- }
- if (typeof globalScope.Promise.resolve !== 'function') {
- globalScope.Promise.resolve = function (value) {
- return new globalScope.Promise(function (resolve) { resolve(value); });
- };
- }
- if (typeof globalScope.Promise.reject !== 'function') {
- globalScope.Promise.reject = function (reason) {
- return new globalScope.Promise(function (resolve, reject) {
- reject(reason);
- });
- };
- }
- if (typeof globalScope.Promise.prototype.catch !== 'function') {
- globalScope.Promise.prototype.catch = function (onReject) {
- return globalScope.Promise.prototype.then(undefined, onReject);
- };
- }
- return;
- }
- var STATUS_PENDING = 0;
- var STATUS_RESOLVED = 1;
- var STATUS_REJECTED = 2;
+/***/ }),
+/* 7 */
+/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {
- // In an attempt to avoid silent exceptions, unhandled rejections are
- // tracked and if they aren't handled in a certain amount of time an
- // error is logged.
- var REJECTION_TIMEOUT = 500;
- var HandlerManager = {
- handlers: [],
- running: false,
- unhandledRejections: [],
- pendingRejectionCheck: false,
- scheduleHandlers: function scheduleHandlers(promise) {
- if (promise._status === STATUS_PENDING) {
- return;
- }
-
- this.handlers = this.handlers.concat(promise._handlers);
- promise._handlers = [];
-
- if (this.running) {
- return;
- }
- this.running = true;
-
- setTimeout(this.runHandlers.bind(this), 0);
- },
-
- runHandlers: function runHandlers() {
- var RUN_TIMEOUT = 1; // ms
- var timeoutAt = Date.now() + RUN_TIMEOUT;
- while (this.handlers.length > 0) {
- var handler = this.handlers.shift();
-
- var nextStatus = handler.thisPromise._status;
- var nextValue = handler.thisPromise._value;
-
- try {
- if (nextStatus === STATUS_RESOLVED) {
- if (typeof handler.onResolve === 'function') {
- nextValue = handler.onResolve(nextValue);
- }
- } else if (typeof handler.onReject === 'function') {
- nextValue = handler.onReject(nextValue);
- nextStatus = STATUS_RESOLVED;
-
- if (handler.thisPromise._unhandledRejection) {
- this.removeUnhandeledRejection(handler.thisPromise);
- }
- }
- } catch (ex) {
- nextStatus = STATUS_REJECTED;
- nextValue = ex;
- }
-
- handler.nextPromise._updateStatus(nextStatus, nextValue);
- if (Date.now() >= timeoutAt) {
- break;
- }
- }
-
- if (this.handlers.length > 0) {
- setTimeout(this.runHandlers.bind(this), 0);
- return;
- }
-
- this.running = false;
- },
-
- addUnhandledRejection: function addUnhandledRejection(promise) {
- this.unhandledRejections.push({
- promise: promise,
- time: Date.now()
- });
- this.scheduleRejectionCheck();
- },
-
- removeUnhandeledRejection: function removeUnhandeledRejection(promise) {
- promise._unhandledRejection = false;
- for (var i = 0; i < this.unhandledRejections.length; i++) {
- if (this.unhandledRejections[i].promise === promise) {
- this.unhandledRejections.splice(i);
- i--;
- }
- }
- },
-
- scheduleRejectionCheck: function scheduleRejectionCheck() {
- if (this.pendingRejectionCheck) {
- return;
- }
- this.pendingRejectionCheck = true;
- setTimeout(function rejectionCheck() {
- this.pendingRejectionCheck = false;
- var now = Date.now();
- for (var i = 0; i < this.unhandledRejections.length; i++) {
- if (now - this.unhandledRejections[i].time > REJECTION_TIMEOUT) {
- var unhandled = this.unhandledRejections[i].promise._value;
- var msg = 'Unhandled rejection: ' + unhandled;
- if (unhandled.stack) {
- msg += '\n' + unhandled.stack;
- }
- warn(msg);
- this.unhandledRejections.splice(i);
- i--;
- }
- }
- if (this.unhandledRejections.length) {
- this.scheduleRejectionCheck();
- }
- }.bind(this), REJECTION_TIMEOUT);
- }
- };
-
- function Promise(resolver) {
- this._status = STATUS_PENDING;
- this._handlers = [];
- try {
- resolver.call(this, this._resolve.bind(this), this._reject.bind(this));
- } catch (e) {
- this._reject(e);
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseFilterFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;
+var _util = __w_pdfjs_require__(1);
+class BaseFilterFactory {
+ constructor() {
+ if (this.constructor === BaseFilterFactory) {
+ (0, _util.unreachable)("Cannot initialize BaseFilterFactory.");
}
}
- /**
- * Builds a promise that is resolved when all the passed in promises are
- * resolved.
- * @param {array} array of data and/or promises to wait for.
- * @return {Promise} New dependant promise.
- */
- Promise.all = function Promise_all(promises) {
- var resolveAll, rejectAll;
- var deferred = new Promise(function (resolve, reject) {
- resolveAll = resolve;
- rejectAll = reject;
+ addFilter(maps) {
+ return "none";
+ }
+ addHCMFilter(fgColor, bgColor) {
+ return "none";
+ }
+ addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {
+ return "none";
+ }
+ destroy(keepHCM = false) {}
+}
+exports.BaseFilterFactory = BaseFilterFactory;
+class BaseCanvasFactory {
+ constructor() {
+ if (this.constructor === BaseCanvasFactory) {
+ (0, _util.unreachable)("Cannot initialize BaseCanvasFactory.");
+ }
+ }
+ create(width, height) {
+ if (width <= 0 || height <= 0) {
+ throw new Error("Invalid canvas size");
+ }
+ const canvas = this._createCanvas(width, height);
+ return {
+ canvas,
+ context: canvas.getContext("2d")
+ };
+ }
+ reset(canvasAndContext, width, height) {
+ if (!canvasAndContext.canvas) {
+ throw new Error("Canvas is not specified");
+ }
+ if (width <= 0 || height <= 0) {
+ throw new Error("Invalid canvas size");
+ }
+ canvasAndContext.canvas.width = width;
+ canvasAndContext.canvas.height = height;
+ }
+ destroy(canvasAndContext) {
+ if (!canvasAndContext.canvas) {
+ throw new Error("Canvas is not specified");
+ }
+ canvasAndContext.canvas.width = 0;
+ canvasAndContext.canvas.height = 0;
+ canvasAndContext.canvas = null;
+ canvasAndContext.context = null;
+ }
+ _createCanvas(width, height) {
+ (0, _util.unreachable)("Abstract method `_createCanvas` called.");
+ }
+}
+exports.BaseCanvasFactory = BaseCanvasFactory;
+class BaseCMapReaderFactory {
+ constructor({
+ baseUrl = null,
+ isCompressed = true
+ }) {
+ if (this.constructor === BaseCMapReaderFactory) {
+ (0, _util.unreachable)("Cannot initialize BaseCMapReaderFactory.");
+ }
+ this.baseUrl = baseUrl;
+ this.isCompressed = isCompressed;
+ }
+ async fetch({
+ name
+ }) {
+ if (!this.baseUrl) {
+ throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.');
+ }
+ if (!name) {
+ throw new Error("CMap name must be specified.");
+ }
+ const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : "");
+ const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;
+ return this._fetchData(url, compressionType).catch(reason => {
+ throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}CMap at: ${url}`);
});
- var unresolved = promises.length;
- var results = [];
- if (unresolved === 0) {
- resolveAll(results);
- return deferred;
- }
- function reject(reason) {
- if (deferred._status === STATUS_REJECTED) {
- return;
- }
- results = [];
- rejectAll(reason);
- }
- for (var i = 0, ii = promises.length; i < ii; ++i) {
- var promise = promises[i];
- var resolve = (function(i) {
- return function(value) {
- if (deferred._status === STATUS_REJECTED) {
- return;
- }
- results[i] = value;
- unresolved--;
- if (unresolved === 0) {
- resolveAll(results);
- }
- };
- })(i);
- if (Promise.isPromise(promise)) {
- promise.then(resolve, reject);
- } else {
- resolve(promise);
- }
- }
- return deferred;
- };
-
- /**
- * Checks if the value is likely a promise (has a 'then' function).
- * @return {boolean} true if value is thenable
- */
- Promise.isPromise = function Promise_isPromise(value) {
- return value && typeof value.then === 'function';
- };
-
- /**
- * Creates resolved promise
- * @param value resolve value
- * @returns {Promise}
- */
- Promise.resolve = function Promise_resolve(value) {
- return new Promise(function (resolve) { resolve(value); });
- };
-
- /**
- * Creates rejected promise
- * @param reason rejection value
- * @returns {Promise}
- */
- Promise.reject = function Promise_reject(reason) {
- return new Promise(function (resolve, reject) { reject(reason); });
- };
-
- Promise.prototype = {
- _status: null,
- _value: null,
- _handlers: null,
- _unhandledRejection: null,
-
- _updateStatus: function Promise__updateStatus(status, value) {
- if (this._status === STATUS_RESOLVED ||
- this._status === STATUS_REJECTED) {
- return;
- }
-
- if (status === STATUS_RESOLVED &&
- Promise.isPromise(value)) {
- value.then(this._updateStatus.bind(this, STATUS_RESOLVED),
- this._updateStatus.bind(this, STATUS_REJECTED));
- return;
- }
-
- this._status = status;
- this._value = value;
-
- if (status === STATUS_REJECTED && this._handlers.length === 0) {
- this._unhandledRejection = true;
- HandlerManager.addUnhandledRejection(this);
- }
-
- HandlerManager.scheduleHandlers(this);
- },
-
- _resolve: function Promise_resolve(value) {
- this._updateStatus(STATUS_RESOLVED, value);
- },
-
- _reject: function Promise_reject(reason) {
- this._updateStatus(STATUS_REJECTED, reason);
- },
-
- then: function Promise_then(onResolve, onReject) {
- var nextPromise = new Promise(function (resolve, reject) {
- this.resolve = resolve;
- this.reject = reject;
- });
- this._handlers.push({
- thisPromise: this,
- onResolve: onResolve,
- onReject: onReject,
- nextPromise: nextPromise
- });
- HandlerManager.scheduleHandlers(this);
- return nextPromise;
- },
-
- catch: function Promise_catch(onReject) {
- return this.then(undefined, onReject);
- }
- };
-
- globalScope.Promise = Promise;
-})();
-
-var StatTimer = (function StatTimerClosure() {
- function rpad(str, pad, length) {
- while (str.length < length) {
- str += pad;
- }
- return str;
}
- function StatTimer() {
- this.started = Object.create(null);
- this.times = [];
- this.enabled = true;
+ _fetchData(url, compressionType) {
+ (0, _util.unreachable)("Abstract method `_fetchData` called.");
}
- StatTimer.prototype = {
- time: function StatTimer_time(name) {
- if (!this.enabled) {
- return;
- }
- if (name in this.started) {
- warn('Timer is already running for ' + name);
- }
- this.started[name] = Date.now();
- },
- timeEnd: function StatTimer_timeEnd(name) {
- if (!this.enabled) {
- return;
- }
- if (!(name in this.started)) {
- warn('Timer has not been started for ' + name);
- }
- this.times.push({
- 'name': name,
- 'start': this.started[name],
- 'end': Date.now()
- });
- // Remove timer from started so it can be called again.
- delete this.started[name];
- },
- toString: function StatTimer_toString() {
- var i, ii;
- var times = this.times;
- var out = '';
- // Find the longest name for padding purposes.
- var longest = 0;
- for (i = 0, ii = times.length; i < ii; ++i) {
- var name = times[i]['name'];
- if (name.length > longest) {
- longest = name.length;
+}
+exports.BaseCMapReaderFactory = BaseCMapReaderFactory;
+class BaseStandardFontDataFactory {
+ constructor({
+ baseUrl = null
+ }) {
+ if (this.constructor === BaseStandardFontDataFactory) {
+ (0, _util.unreachable)("Cannot initialize BaseStandardFontDataFactory.");
+ }
+ this.baseUrl = baseUrl;
+ }
+ async fetch({
+ filename
+ }) {
+ if (!this.baseUrl) {
+ throw new Error('The standard font "baseUrl" parameter must be specified, ensure that ' + 'the "standardFontDataUrl" API parameter is provided.');
+ }
+ if (!filename) {
+ throw new Error("Font filename must be specified.");
+ }
+ const url = `${this.baseUrl}${filename}`;
+ return this._fetchData(url).catch(reason => {
+ throw new Error(`Unable to load font data at: ${url}`);
+ });
+ }
+ _fetchData(url) {
+ (0, _util.unreachable)("Abstract method `_fetchData` called.");
+ }
+}
+exports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;
+class BaseSVGFactory {
+ constructor() {
+ if (this.constructor === BaseSVGFactory) {
+ (0, _util.unreachable)("Cannot initialize BaseSVGFactory.");
+ }
+ }
+ create(width, height, skipDimensions = false) {
+ if (width <= 0 || height <= 0) {
+ throw new Error("Invalid SVG dimensions");
+ }
+ const svg = this._createSVG("svg:svg");
+ svg.setAttribute("version", "1.1");
+ if (!skipDimensions) {
+ svg.setAttribute("width", `${width}px`);
+ svg.setAttribute("height", `${height}px`);
+ }
+ svg.setAttribute("preserveAspectRatio", "none");
+ svg.setAttribute("viewBox", `0 0 ${width} ${height}`);
+ return svg;
+ }
+ createElement(type) {
+ if (typeof type !== "string") {
+ throw new Error("Invalid SVG element type");
+ }
+ return this._createSVG(type);
+ }
+ _createSVG(type) {
+ (0, _util.unreachable)("Abstract method `_createSVG` called.");
+ }
+}
+exports.BaseSVGFactory = BaseSVGFactory;
+
+/***/ }),
+/* 8 */
+/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.MurmurHash3_64 = void 0;
+var _util = __w_pdfjs_require__(1);
+const SEED = 0xc3d2e1f0;
+const MASK_HIGH = 0xffff0000;
+const MASK_LOW = 0xffff;
+class MurmurHash3_64 {
+ constructor(seed) {
+ this.h1 = seed ? seed & 0xffffffff : SEED;
+ this.h2 = seed ? seed & 0xffffffff : SEED;
+ }
+ update(input) {
+ let data, length;
+ if (typeof input === "string") {
+ data = new Uint8Array(input.length * 2);
+ length = 0;
+ for (let i = 0, ii = input.length; i < ii; i++) {
+ const code = input.charCodeAt(i);
+ if (code <= 0xff) {
+ data[length++] = code;
+ } else {
+ data[length++] = code >>> 8;
+ data[length++] = code & 0xff;
}
}
- for (i = 0, ii = times.length; i < ii; ++i) {
- var span = times[i];
- var duration = span.end - span.start;
- out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n';
+ } else if ((0, _util.isArrayBuffer)(input)) {
+ data = input.slice();
+ length = data.byteLength;
+ } else {
+ throw new Error("Wrong data format in MurmurHash3_64_update. " + "Input must be a string or array.");
+ }
+ const blockCounts = length >> 2;
+ const tailLength = length - blockCounts * 4;
+ const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);
+ let k1 = 0,
+ k2 = 0;
+ let h1 = this.h1,
+ h2 = this.h2;
+ const C1 = 0xcc9e2d51,
+ C2 = 0x1b873593;
+ const C1_LOW = C1 & MASK_LOW,
+ C2_LOW = C2 & MASK_LOW;
+ for (let i = 0; i < blockCounts; i++) {
+ if (i & 1) {
+ k1 = dataUint32[i];
+ k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;
+ k1 = k1 << 15 | k1 >>> 17;
+ k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;
+ h1 ^= k1;
+ h1 = h1 << 13 | h1 >>> 19;
+ h1 = h1 * 5 + 0xe6546b64;
+ } else {
+ k2 = dataUint32[i];
+ k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;
+ k2 = k2 << 15 | k2 >>> 17;
+ k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;
+ h2 ^= k2;
+ h2 = h2 << 13 | h2 >>> 19;
+ h2 = h2 * 5 + 0xe6546b64;
}
- return out;
}
- };
- return StatTimer;
-})();
-
-var createBlob = function createBlob(data, contentType) {
- if (typeof Blob !== 'undefined') {
- return new Blob([data], { type: contentType });
+ k1 = 0;
+ switch (tailLength) {
+ case 3:
+ k1 ^= data[blockCounts * 4 + 2] << 16;
+ case 2:
+ k1 ^= data[blockCounts * 4 + 1] << 8;
+ case 1:
+ k1 ^= data[blockCounts * 4];
+ k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;
+ k1 = k1 << 15 | k1 >>> 17;
+ k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;
+ if (blockCounts & 1) {
+ h1 ^= k1;
+ } else {
+ h2 ^= k1;
+ }
+ }
+ this.h1 = h1;
+ this.h2 = h2;
}
- // Blob builder is deprecated in FF14 and removed in FF18.
- var bb = new MozBlobBuilder();
- bb.append(data);
- return bb.getBlob(contentType);
-};
+ hexdigest() {
+ let h1 = this.h1,
+ h2 = this.h2;
+ h1 ^= h2 >>> 1;
+ h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;
+ h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;
+ h1 ^= h2 >>> 1;
+ h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;
+ h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;
+ h1 ^= h2 >>> 1;
+ return (h1 >>> 0).toString(16).padStart(8, "0") + (h2 >>> 0).toString(16).padStart(8, "0");
+ }
+}
+exports.MurmurHash3_64 = MurmurHash3_64;
-var createObjectURL = (function createObjectURLClosure() {
- // Blob/createObjectURL is not available, falling back to data schema.
- var digits =
- 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
+/***/ }),
+/* 9 */
+/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {
- return function createObjectURL(data, contentType, forceDataSchema) {
- if (!forceDataSchema &&
- typeof URL !== 'undefined' && URL.createObjectURL) {
- var blob = createBlob(data, contentType);
- return URL.createObjectURL(blob);
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
+}));
+exports.FontLoader = exports.FontFaceObject = void 0;
+var _util = __w_pdfjs_require__(1);
+class FontLoader {
+ #systemFonts = new Set();
+ constructor({
+ ownerDocument = globalThis.document,
+ styleElement = null
+ }) {
+ this._document = ownerDocument;
+ this.nativeFontFaces = new Set();
+ this.styleElement = null;
+ this.loadingRequests = [];
+ this.loadTestFontId = 0;
+ }
+ addNativeFontFace(nativeFontFace) {
+ this.nativeFontFaces.add(nativeFontFace);
+ this._document.fonts.add(nativeFontFace);
+ }
+ removeNativeFontFace(nativeFontFace) {
+ this.nativeFontFaces.delete(nativeFontFace);
+ this._document.fonts.delete(nativeFontFace);
+ }
+ insertRule(rule) {
+ if (!this.styleElement) {
+ this.styleElement = this._document.createElement("style");
+ this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement);
}
-
- var buffer = 'data:' + contentType + ';base64,';
- for (var i = 0, ii = data.length; i < ii; i += 3) {
- var b1 = data[i] & 0xFF;
- var b2 = data[i + 1] & 0xFF;
- var b3 = data[i + 2] & 0xFF;
- var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);
- var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;
- var d4 = i + 2 < ii ? (b3 & 0x3F) : 64;
- buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];
+ const styleSheet = this.styleElement.sheet;
+ styleSheet.insertRule(rule, styleSheet.cssRules.length);
+ }
+ clear() {
+ for (const nativeFontFace of this.nativeFontFaces) {
+ this._document.fonts.delete(nativeFontFace);
}
- return buffer;
- };
-})();
-
-function MessageHandler(sourceName, targetName, comObj) {
- this.sourceName = sourceName;
- this.targetName = targetName;
- this.comObj = comObj;
- this.callbackIndex = 1;
- this.postMessageTransfers = true;
- var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);
- var ah = this.actionHandler = Object.create(null);
-
- this._onComObjOnMessage = function messageHandlerComObjOnMessage(event) {
- var data = event.data;
- if (data.targetName !== this.sourceName) {
+ this.nativeFontFaces.clear();
+ this.#systemFonts.clear();
+ if (this.styleElement) {
+ this.styleElement.remove();
+ this.styleElement = null;
+ }
+ }
+ async loadSystemFont(info) {
+ if (!info || this.#systemFonts.has(info.loadedName)) {
return;
}
- if (data.isReply) {
- var callbackId = data.callbackId;
- if (data.callbackId in callbacksCapabilities) {
- var callback = callbacksCapabilities[callbackId];
- delete callbacksCapabilities[callbackId];
- if ('error' in data) {
- callback.reject(data.error);
- } else {
- callback.resolve(data.data);
+ (0, _util.assert)(!this.disableFontFace, "loadSystemFont shouldn't be called when `disableFontFace` is set.");
+ if (this.isFontLoadingAPISupported) {
+ const {
+ loadedName,
+ src,
+ style
+ } = info;
+ const fontFace = new FontFace(loadedName, src, style);
+ this.addNativeFontFace(fontFace);
+ try {
+ await fontFace.load();
+ this.#systemFonts.add(loadedName);
+ } catch {
+ (0, _util.warn)(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`);
+ this.removeNativeFontFace(fontFace);
+ }
+ return;
+ }
+ (0, _util.unreachable)("Not implemented: loadSystemFont without the Font Loading API.");
+ }
+ async bind(font) {
+ if (font.attached || font.missingFile && !font.systemFontInfo) {
+ return;
+ }
+ font.attached = true;
+ if (font.systemFontInfo) {
+ await this.loadSystemFont(font.systemFontInfo);
+ return;
+ }
+ if (this.isFontLoadingAPISupported) {
+ const nativeFontFace = font.createNativeFontFace();
+ if (nativeFontFace) {
+ this.addNativeFontFace(nativeFontFace);
+ try {
+ await nativeFontFace.loaded;
+ } catch (ex) {
+ (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);
+ font.disableFontFace = true;
+ throw ex;
}
- } else {
- error('Cannot resolve callback ' + callbackId);
}
- } else if (data.action in ah) {
- var action = ah[data.action];
- if (data.callbackId) {
- var sourceName = this.sourceName;
- var targetName = data.sourceName;
- Promise.resolve().then(function () {
- return action[0].call(action[1], data.data);
- }).then(function (result) {
- comObj.postMessage({
- sourceName: sourceName,
- targetName: targetName,
- isReply: true,
- callbackId: data.callbackId,
- data: result
- });
- }, function (reason) {
- if (reason instanceof Error) {
- // Serialize error to avoid "DataCloneError"
- reason = reason + '';
- }
- comObj.postMessage({
- sourceName: sourceName,
- targetName: targetName,
- isReply: true,
- callbackId: data.callbackId,
- error: reason
- });
- });
- } else {
- action[0].call(action[1], data.data);
- }
- } else {
- error('Unknown action from worker: ' + data.action);
+ return;
}
- }.bind(this);
- comObj.addEventListener('message', this._onComObjOnMessage);
-}
-
-MessageHandler.prototype = {
- on: function messageHandlerOn(actionName, handler, scope) {
- var ah = this.actionHandler;
- if (ah[actionName]) {
- error('There is already an actionName called "' + actionName + '"');
- }
- ah[actionName] = [handler, scope];
- },
- /**
- * Sends a message to the comObj to invoke the action with the supplied data.
- * @param {String} actionName Action to call.
- * @param {JSON} data JSON data to send.
- * @param {Array} [transfers] Optional list of transfers/ArrayBuffers
- */
- send: function messageHandlerSend(actionName, data, transfers) {
- var message = {
- sourceName: this.sourceName,
- targetName: this.targetName,
- action: actionName,
- data: data
- };
- this.postMessage(message, transfers);
- },
- /**
- * Sends a message to the comObj to invoke the action with the supplied data.
- * Expects that other side will callback with the response.
- * @param {String} actionName Action to call.
- * @param {JSON} data JSON data to send.
- * @param {Array} [transfers] Optional list of transfers/ArrayBuffers.
- * @returns {Promise} Promise to be resolved with response data.
- */
- sendWithPromise:
- function messageHandlerSendWithPromise(actionName, data, transfers) {
- var callbackId = this.callbackIndex++;
- var message = {
- sourceName: this.sourceName,
- targetName: this.targetName,
- action: actionName,
- data: data,
- callbackId: callbackId
- };
- var capability = createPromiseCapability();
- this.callbacksCapabilities[callbackId] = capability;
- try {
- this.postMessage(message, transfers);
- } catch (e) {
- capability.reject(e);
- }
- return capability.promise;
- },
- /**
- * Sends raw message to the comObj.
- * @private
- * @param message {Object} Raw message.
- * @param transfers List of transfers/ArrayBuffers, or undefined.
- */
- postMessage: function (message, transfers) {
- if (transfers && this.postMessageTransfers) {
- this.comObj.postMessage(message, transfers);
- } else {
- this.comObj.postMessage(message);
- }
- },
-
- destroy: function () {
- this.comObj.removeEventListener('message', this._onComObjOnMessage);
- }
-};
-
-function loadJpegStream(id, imageUrl, objs) {
- var img = new Image();
- img.onload = (function loadJpegStream_onloadClosure() {
- objs.resolve(id, img);
- });
- img.onerror = (function loadJpegStream_onerrorClosure() {
- objs.resolve(id, null);
- warn('Error during JPEG image loading');
- });
- img.src = imageUrl;
-}
-
- // Polyfill from https://github.com/Polymer/URL
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-(function checkURLConstructor(scope) {
- /* jshint ignore:start */
-
- // feature detect for URL constructor
- var hasWorkingUrl = false;
- try {
- if (typeof URL === 'function' &&
- typeof URL.prototype === 'object' &&
- ('origin' in URL.prototype)) {
- var u = new URL('b', 'http://a');
- u.pathname = 'c%20d';
- hasWorkingUrl = u.href === 'http://a/c%20d';
- }
- } catch(e) { }
-
- if (hasWorkingUrl)
- return;
-
- var relative = Object.create(null);
- relative['ftp'] = 21;
- relative['file'] = 0;
- relative['gopher'] = 70;
- relative['http'] = 80;
- relative['https'] = 443;
- relative['ws'] = 80;
- relative['wss'] = 443;
-
- var relativePathDotMapping = Object.create(null);
- relativePathDotMapping['%2e'] = '.';
- relativePathDotMapping['.%2e'] = '..';
- relativePathDotMapping['%2e.'] = '..';
- relativePathDotMapping['%2e%2e'] = '..';
-
- function isRelativeScheme(scheme) {
- return relative[scheme] !== undefined;
- }
-
- function invalid() {
- clear.call(this);
- this._isInvalid = true;
- }
-
- function IDNAToASCII(h) {
- if ('' == h) {
- invalid.call(this)
- }
- // XXX
- return h.toLowerCase()
- }
-
- function percentEscape(c) {
- var unicode = c.charCodeAt(0);
- if (unicode > 0x20 &&
- unicode < 0x7F &&
- // " # < > ? `
- [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) == -1
- ) {
- return c;
- }
- return encodeURIComponent(c);
- }
-
- function percentEscapeQuery(c) {
- // XXX This actually needs to encode c using encoding and then
- // convert the bytes one-by-one.
-
- var unicode = c.charCodeAt(0);
- if (unicode > 0x20 &&
- unicode < 0x7F &&
- // " # < > ` (do not escape '?')
- [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) == -1
- ) {
- return c;
- }
- return encodeURIComponent(c);
- }
-
- var EOF = undefined,
- ALPHA = /[a-zA-Z]/,
- ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/;
-
- function parse(input, stateOverride, base) {
- function err(message) {
- errors.push(message)
- }
-
- var state = stateOverride || 'scheme start',
- cursor = 0,
- buffer = '',
- seenAt = false,
- seenBracket = false,
- errors = [];
-
- loop: while ((input[cursor - 1] != EOF || cursor == 0) && !this._isInvalid) {
- var c = input[cursor];
- switch (state) {
- case 'scheme start':
- if (c && ALPHA.test(c)) {
- buffer += c.toLowerCase(); // ASCII-safe
- state = 'scheme';
- } else if (!stateOverride) {
- buffer = '';
- state = 'no scheme';
- continue;
- } else {
- err('Invalid scheme.');
- break loop;
- }
- break;
-
- case 'scheme':
- if (c && ALPHANUMERIC.test(c)) {
- buffer += c.toLowerCase(); // ASCII-safe
- } else if (':' == c) {
- this._scheme = buffer;
- buffer = '';
- if (stateOverride) {
- break loop;
- }
- if (isRelativeScheme(this._scheme)) {
- this._isRelative = true;
- }
- if ('file' == this._scheme) {
- state = 'relative';
- } else if (this._isRelative && base && base._scheme == this._scheme) {
- state = 'relative or authority';
- } else if (this._isRelative) {
- state = 'authority first slash';
- } else {
- state = 'scheme data';
- }
- } else if (!stateOverride) {
- buffer = '';
- cursor = 0;
- state = 'no scheme';
- continue;
- } else if (EOF == c) {
- break loop;
- } else {
- err('Code point not allowed in scheme: ' + c)
- break loop;
- }
- break;
-
- case 'scheme data':
- if ('?' == c) {
- this._query = '?';
- state = 'query';
- } else if ('#' == c) {
- this._fragment = '#';
- state = 'fragment';
- } else {
- // XXX error handling
- if (EOF != c && '\t' != c && '\n' != c && '\r' != c) {
- this._schemeData += percentEscape(c);
- }
- }
- break;
-
- case 'no scheme':
- if (!base || !(isRelativeScheme(base._scheme))) {
- err('Missing scheme.');
- invalid.call(this);
- } else {
- state = 'relative';
- continue;
- }
- break;
-
- case 'relative or authority':
- if ('/' == c && '/' == input[cursor+1]) {
- state = 'authority ignore slashes';
- } else {
- err('Expected /, got: ' + c);
- state = 'relative';
- continue
- }
- break;
-
- case 'relative':
- this._isRelative = true;
- if ('file' != this._scheme)
- this._scheme = base._scheme;
- if (EOF == c) {
- this._host = base._host;
- this._port = base._port;
- this._path = base._path.slice();
- this._query = base._query;
- this._username = base._username;
- this._password = base._password;
- break loop;
- } else if ('/' == c || '\\' == c) {
- if ('\\' == c)
- err('\\ is an invalid code point.');
- state = 'relative slash';
- } else if ('?' == c) {
- this._host = base._host;
- this._port = base._port;
- this._path = base._path.slice();
- this._query = '?';
- this._username = base._username;
- this._password = base._password;
- state = 'query';
- } else if ('#' == c) {
- this._host = base._host;
- this._port = base._port;
- this._path = base._path.slice();
- this._query = base._query;
- this._fragment = '#';
- this._username = base._username;
- this._password = base._password;
- state = 'fragment';
- } else {
- var nextC = input[cursor+1]
- var nextNextC = input[cursor+2]
- if (
- 'file' != this._scheme || !ALPHA.test(c) ||
- (nextC != ':' && nextC != '|') ||
- (EOF != nextNextC && '/' != nextNextC && '\\' != nextNextC && '?' != nextNextC && '#' != nextNextC)) {
- this._host = base._host;
- this._port = base._port;
- this._username = base._username;
- this._password = base._password;
- this._path = base._path.slice();
- this._path.pop();
- }
- state = 'relative path';
- continue;
- }
- break;
-
- case 'relative slash':
- if ('/' == c || '\\' == c) {
- if ('\\' == c) {
- err('\\ is an invalid code point.');
- }
- if ('file' == this._scheme) {
- state = 'file host';
- } else {
- state = 'authority ignore slashes';
- }
- } else {
- if ('file' != this._scheme) {
- this._host = base._host;
- this._port = base._port;
- this._username = base._username;
- this._password = base._password;
- }
- state = 'relative path';
- continue;
- }
- break;
-
- case 'authority first slash':
- if ('/' == c) {
- state = 'authority second slash';
- } else {
- err("Expected '/', got: " + c);
- state = 'authority ignore slashes';
- continue;
- }
- break;
-
- case 'authority second slash':
- state = 'authority ignore slashes';
- if ('/' != c) {
- err("Expected '/', got: " + c);
- continue;
- }
- break;
-
- case 'authority ignore slashes':
- if ('/' != c && '\\' != c) {
- state = 'authority';
- continue;
- } else {
- err('Expected authority, got: ' + c);
- }
- break;
-
- case 'authority':
- if ('@' == c) {
- if (seenAt) {
- err('@ already seen.');
- buffer += '%40';
- }
- seenAt = true;
- for (var i = 0; i < buffer.length; i++) {
- var cp = buffer[i];
- if ('\t' == cp || '\n' == cp || '\r' == cp) {
- err('Invalid whitespace in authority.');
- continue;
- }
- // XXX check URL code points
- if (':' == cp && null === this._password) {
- this._password = '';
- continue;
- }
- var tempC = percentEscape(cp);
- (null !== this._password) ? this._password += tempC : this._username += tempC;
- }
- buffer = '';
- } else if (EOF == c || '/' == c || '\\' == c || '?' == c || '#' == c) {
- cursor -= buffer.length;
- buffer = '';
- state = 'host';
- continue;
- } else {
- buffer += c;
- }
- break;
-
- case 'file host':
- if (EOF == c || '/' == c || '\\' == c || '?' == c || '#' == c) {
- if (buffer.length == 2 && ALPHA.test(buffer[0]) && (buffer[1] == ':' || buffer[1] == '|')) {
- state = 'relative path';
- } else if (buffer.length == 0) {
- state = 'relative path start';
- } else {
- this._host = IDNAToASCII.call(this, buffer);
- buffer = '';
- state = 'relative path start';
- }
- continue;
- } else if ('\t' == c || '\n' == c || '\r' == c) {
- err('Invalid whitespace in file host.');
- } else {
- buffer += c;
- }
- break;
-
- case 'host':
- case 'hostname':
- if (':' == c && !seenBracket) {
- // XXX host parsing
- this._host = IDNAToASCII.call(this, buffer);
- buffer = '';
- state = 'port';
- if ('hostname' == stateOverride) {
- break loop;
- }
- } else if (EOF == c || '/' == c || '\\' == c || '?' == c || '#' == c) {
- this._host = IDNAToASCII.call(this, buffer);
- buffer = '';
- state = 'relative path start';
- if (stateOverride) {
- break loop;
- }
- continue;
- } else if ('\t' != c && '\n' != c && '\r' != c) {
- if ('[' == c) {
- seenBracket = true;
- } else if (']' == c) {
- seenBracket = false;
- }
- buffer += c;
- } else {
- err('Invalid code point in host/hostname: ' + c);
- }
- break;
-
- case 'port':
- if (/[0-9]/.test(c)) {
- buffer += c;
- } else if (EOF == c || '/' == c || '\\' == c || '?' == c || '#' == c || stateOverride) {
- if ('' != buffer) {
- var temp = parseInt(buffer, 10);
- if (temp != relative[this._scheme]) {
- this._port = temp + '';
- }
- buffer = '';
- }
- if (stateOverride) {
- break loop;
- }
- state = 'relative path start';
- continue;
- } else if ('\t' == c || '\n' == c || '\r' == c) {
- err('Invalid code point in port: ' + c);
- } else {
- invalid.call(this);
- }
- break;
-
- case 'relative path start':
- if ('\\' == c)
- err("'\\' not allowed in path.");
- state = 'relative path';
- if ('/' != c && '\\' != c) {
- continue;
- }
- break;
-
- case 'relative path':
- if (EOF == c || '/' == c || '\\' == c || (!stateOverride && ('?' == c || '#' == c))) {
- if ('\\' == c) {
- err('\\ not allowed in relative path.');
- }
- var tmp;
- if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {
- buffer = tmp;
- }
- if ('..' == buffer) {
- this._path.pop();
- if ('/' != c && '\\' != c) {
- this._path.push('');
- }
- } else if ('.' == buffer && '/' != c && '\\' != c) {
- this._path.push('');
- } else if ('.' != buffer) {
- if ('file' == this._scheme && this._path.length == 0 && buffer.length == 2 && ALPHA.test(buffer[0]) && buffer[1] == '|') {
- buffer = buffer[0] + ':';
- }
- this._path.push(buffer);
- }
- buffer = '';
- if ('?' == c) {
- this._query = '?';
- state = 'query';
- } else if ('#' == c) {
- this._fragment = '#';
- state = 'fragment';
- }
- } else if ('\t' != c && '\n' != c && '\r' != c) {
- buffer += percentEscape(c);
- }
- break;
-
- case 'query':
- if (!stateOverride && '#' == c) {
- this._fragment = '#';
- state = 'fragment';
- } else if (EOF != c && '\t' != c && '\n' != c && '\r' != c) {
- this._query += percentEscapeQuery(c);
- }
- break;
-
- case 'fragment':
- if (EOF != c && '\t' != c && '\n' != c && '\r' != c) {
- this._fragment += c;
- }
- break;
- }
-
- cursor++;
- }
- }
-
- function clear() {
- this._scheme = '';
- this._schemeData = '';
- this._username = '';
- this._password = null;
- this._host = '';
- this._port = '';
- this._path = [];
- this._query = '';
- this._fragment = '';
- this._isInvalid = false;
- this._isRelative = false;
- }
-
- // Does not process domain names or IP addresses.
- // Does not handle encoding for the query parameter.
- function jURL(url, base /* , encoding */) {
- if (base !== undefined && !(base instanceof jURL))
- base = new jURL(String(base));
-
- this._url = url;
- clear.call(this);
-
- var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, '');
- // encoding = encoding || 'utf-8'
-
- parse.call(this, input, null, base);
- }
-
- jURL.prototype = {
- toString: function() {
- return this.href;
- },
- get href() {
- if (this._isInvalid)
- return this._url;
-
- var authority = '';
- if ('' != this._username || null != this._password) {
- authority = this._username +
- (null != this._password ? ':' + this._password : '') + '@';
- }
-
- return this.protocol +
- (this._isRelative ? '//' + authority + this.host : '') +
- this.pathname + this._query + this._fragment;
- },
- set href(href) {
- clear.call(this);
- parse.call(this, href);
- },
-
- get protocol() {
- return this._scheme + ':';
- },
- set protocol(protocol) {
- if (this._isInvalid)
+ const rule = font.createFontFaceRule();
+ if (rule) {
+ this.insertRule(rule);
+ if (this.isSyncFontLoadingSupported) {
return;
- parse.call(this, protocol + ':', 'scheme start');
- },
-
- get host() {
- return this._isInvalid ? '' : this._port ?
- this._host + ':' + this._port : this._host;
- },
- set host(host) {
- if (this._isInvalid || !this._isRelative)
- return;
- parse.call(this, host, 'host');
- },
-
- get hostname() {
- return this._host;
- },
- set hostname(hostname) {
- if (this._isInvalid || !this._isRelative)
- return;
- parse.call(this, hostname, 'hostname');
- },
-
- get port() {
- return this._port;
- },
- set port(port) {
- if (this._isInvalid || !this._isRelative)
- return;
- parse.call(this, port, 'port');
- },
-
- get pathname() {
- return this._isInvalid ? '' : this._isRelative ?
- '/' + this._path.join('/') : this._schemeData;
- },
- set pathname(pathname) {
- if (this._isInvalid || !this._isRelative)
- return;
- this._path = [];
- parse.call(this, pathname, 'relative path start');
- },
-
- get search() {
- return this._isInvalid || !this._query || '?' == this._query ?
- '' : this._query;
- },
- set search(search) {
- if (this._isInvalid || !this._isRelative)
- return;
- this._query = '?';
- if ('?' == search[0])
- search = search.slice(1);
- parse.call(this, search, 'query');
- },
-
- get hash() {
- return this._isInvalid || !this._fragment || '#' == this._fragment ?
- '' : this._fragment;
- },
- set hash(hash) {
- if (this._isInvalid)
- return;
- this._fragment = '#';
- if ('#' == hash[0])
- hash = hash.slice(1);
- parse.call(this, hash, 'fragment');
- },
-
- get origin() {
- var host;
- if (this._isInvalid || !this._scheme) {
- return '';
}
- // javascript: Gecko returns String(""), WebKit/Blink String("null")
- // Gecko throws error for "data://"
- // data: Gecko returns "", Blink returns "data://", WebKit returns "null"
- // Gecko returns String("") for file: mailto:
- // WebKit/Blink returns String("SCHEME://") for file: mailto:
- switch (this._scheme) {
- case 'data':
- case 'file':
- case 'javascript':
- case 'mailto':
- return 'null';
- }
- host = this.host;
- if (!host) {
- return '';
- }
- return this._scheme + '://' + host;
- }
- };
-
- // Copy over the static methods
- var OriginalURL = scope.URL;
- if (OriginalURL) {
- jURL.createObjectURL = function(blob) {
- // IE extension allows a second optional options argument.
- // http://msdn.microsoft.com/en-us/library/ie/hh772302(v=vs.85).aspx
- return OriginalURL.createObjectURL.apply(OriginalURL, arguments);
- };
- jURL.revokeObjectURL = function(url) {
- OriginalURL.revokeObjectURL(url);
- };
- }
-
- scope.URL = jURL;
- /* jshint ignore:end */
-})(globalScope);
-
-exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;
-exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
-exports.OPS = OPS;
-exports.VERBOSITY_LEVELS = VERBOSITY_LEVELS;
-exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;
-exports.AnnotationBorderStyleType = AnnotationBorderStyleType;
-exports.AnnotationFlag = AnnotationFlag;
-exports.AnnotationType = AnnotationType;
-exports.FontType = FontType;
-exports.ImageKind = ImageKind;
-exports.InvalidPDFException = InvalidPDFException;
-exports.MessageHandler = MessageHandler;
-exports.MissingDataException = MissingDataException;
-exports.MissingPDFException = MissingPDFException;
-exports.NotImplementedException = NotImplementedException;
-exports.PageViewport = PageViewport;
-exports.PasswordException = PasswordException;
-exports.PasswordResponses = PasswordResponses;
-exports.StatTimer = StatTimer;
-exports.StreamType = StreamType;
-exports.TextRenderingMode = TextRenderingMode;
-exports.UnexpectedResponseException = UnexpectedResponseException;
-exports.UnknownErrorException = UnknownErrorException;
-exports.Util = Util;
-exports.XRefParseException = XRefParseException;
-exports.arrayByteLength = arrayByteLength;
-exports.arraysToBytes = arraysToBytes;
-exports.assert = assert;
-exports.bytesToString = bytesToString;
-exports.combineUrl = combineUrl;
-exports.createBlob = createBlob;
-exports.createPromiseCapability = createPromiseCapability;
-exports.createObjectURL = createObjectURL;
-exports.deprecated = deprecated;
-exports.error = error;
-exports.getLookupTableFactory = getLookupTableFactory;
-exports.getVerbosityLevel = getVerbosityLevel;
-exports.globalScope = globalScope;
-exports.info = info;
-exports.isArray = isArray;
-exports.isArrayBuffer = isArrayBuffer;
-exports.isBool = isBool;
-exports.isEmptyObj = isEmptyObj;
-exports.isInt = isInt;
-exports.isNum = isNum;
-exports.isString = isString;
-exports.isSameOrigin = isSameOrigin;
-exports.isValidUrl = isValidUrl;
-exports.isLittleEndian = isLittleEndian;
-exports.loadJpegStream = loadJpegStream;
-exports.log2 = log2;
-exports.readInt8 = readInt8;
-exports.readUint16 = readUint16;
-exports.readUint32 = readUint32;
-exports.removeNullCharacters = removeNullCharacters;
-exports.setVerbosityLevel = setVerbosityLevel;
-exports.shadow = shadow;
-exports.string32 = string32;
-exports.stringToBytes = stringToBytes;
-exports.stringToPDFString = stringToPDFString;
-exports.stringToUTF8String = stringToUTF8String;
-exports.utf8StringToString = utf8StringToString;
-exports.warn = warn;
-}));
-
-
-(function (root, factory) {
- {
- factory((root.pdfjsDisplayGlobal = {}), root.pdfjsSharedUtil);
- }
-}(this, function (exports, sharedUtil) {
-
- var globalScope = sharedUtil.globalScope;
-
- var isWorker = (typeof window === 'undefined');
-
- // The global PDFJS object exposes the API
- // In production, it will be declared outside a global wrapper
- // In development, it will be declared here
- if (!globalScope.PDFJS) {
- globalScope.PDFJS = {};
- }
- var PDFJS = globalScope.PDFJS;
-
- if (typeof pdfjsVersion !== 'undefined') {
- PDFJS.version = pdfjsVersion;
- }
- if (typeof pdfjsBuild !== 'undefined') {
- PDFJS.build = pdfjsBuild;
- }
-
- PDFJS.pdfBug = false;
-
- if (PDFJS.verbosity !== undefined) {
- sharedUtil.setVerbosityLevel(PDFJS.verbosity);
- }
- delete PDFJS.verbosity;
- Object.defineProperty(PDFJS, 'verbosity', {
- get: function () { return sharedUtil.getVerbosityLevel(); },
- set: function (level) { sharedUtil.setVerbosityLevel(level); },
- enumerable: true,
- configurable: true
- });
-
- PDFJS.VERBOSITY_LEVELS = sharedUtil.VERBOSITY_LEVELS;
- PDFJS.OPS = sharedUtil.OPS;
- PDFJS.UNSUPPORTED_FEATURES = sharedUtil.UNSUPPORTED_FEATURES;
- PDFJS.isValidUrl = sharedUtil.isValidUrl;
- PDFJS.shadow = sharedUtil.shadow;
- PDFJS.createBlob = sharedUtil.createBlob;
- PDFJS.createObjectURL = function PDFJS_createObjectURL(data, contentType) {
- return sharedUtil.createObjectURL(data, contentType,
- PDFJS.disableCreateObjectURL);
- };
- Object.defineProperty(PDFJS, 'isLittleEndian', {
- configurable: true,
- get: function PDFJS_isLittleEndian() {
- var value = sharedUtil.isLittleEndian();
- return sharedUtil.shadow(PDFJS, 'isLittleEndian', value);
- }
- });
- PDFJS.removeNullCharacters = sharedUtil.removeNullCharacters;
- PDFJS.PasswordResponses = sharedUtil.PasswordResponses;
- PDFJS.PasswordException = sharedUtil.PasswordException;
- PDFJS.UnknownErrorException = sharedUtil.UnknownErrorException;
- PDFJS.InvalidPDFException = sharedUtil.InvalidPDFException;
- PDFJS.MissingPDFException = sharedUtil.MissingPDFException;
- PDFJS.UnexpectedResponseException = sharedUtil.UnexpectedResponseException;
- PDFJS.Util = sharedUtil.Util;
- PDFJS.PageViewport = sharedUtil.PageViewport;
- PDFJS.createPromiseCapability = sharedUtil.createPromiseCapability;
-
- exports.globalScope = globalScope;
- exports.isWorker = isWorker;
- exports.PDFJS = globalScope.PDFJS;
-}));
-
-
-(function (root, factory) {
- {
- factory((root.pdfjsDisplayDOMUtils = {}), root.pdfjsSharedUtil,
- root.pdfjsDisplayGlobal);
- }
-}(this, function (exports, sharedUtil, displayGlobal) {
-
-var deprecated = sharedUtil.deprecated;
-var removeNullCharacters = sharedUtil.removeNullCharacters;
-var shadow = sharedUtil.shadow;
-var warn = sharedUtil.warn;
-var PDFJS = displayGlobal.PDFJS;
-
-/**
- * Optimised CSS custom property getter/setter.
- * @class
- */
-var CustomStyle = (function CustomStyleClosure() {
-
- // As noted on: http://www.zachstronaut.com/posts/2009/02/17/
- // animate-css-transforms-firefox-webkit.html
- // in some versions of IE9 it is critical that ms appear in this list
- // before Moz
- var prefixes = ['ms', 'Moz', 'Webkit', 'O'];
- var _cache = Object.create(null);
-
- function CustomStyle() {}
-
- CustomStyle.getProp = function get(propName, element) {
- // check cache only when no element is given
- if (arguments.length === 1 && typeof _cache[propName] === 'string') {
- return _cache[propName];
- }
-
- element = element || document.documentElement;
- var style = element.style, prefixed, uPropName;
-
- // test standard property first
- if (typeof style[propName] === 'string') {
- return (_cache[propName] = propName);
- }
-
- // capitalize
- uPropName = propName.charAt(0).toUpperCase() + propName.slice(1);
-
- // test vendor specific properties
- for (var i = 0, l = prefixes.length; i < l; i++) {
- prefixed = prefixes[i] + uPropName;
- if (typeof style[prefixed] === 'string') {
- return (_cache[propName] = prefixed);
- }
- }
-
- //if all fails then set to undefined
- return (_cache[propName] = 'undefined');
- };
-
- CustomStyle.setProp = function set(propName, element, str) {
- var prop = this.getProp(propName);
- if (prop !== 'undefined') {
- element.style[prop] = str;
- }
- };
-
- return CustomStyle;
-})();
-
-PDFJS.CustomStyle = CustomStyle;
-
- // Lazy test if the userAgent support CanvasTypedArrays
-function hasCanvasTypedArrays() {
- var canvas = document.createElement('canvas');
- canvas.width = canvas.height = 1;
- var ctx = canvas.getContext('2d');
- var imageData = ctx.createImageData(1, 1);
- return (typeof imageData.data.buffer !== 'undefined');
-}
-
-Object.defineProperty(PDFJS, 'hasCanvasTypedArrays', {
- configurable: true,
- get: function PDFJS_hasCanvasTypedArrays() {
- return shadow(PDFJS, 'hasCanvasTypedArrays', hasCanvasTypedArrays());
- }
-});
-
-var LinkTarget = {
- NONE: 0, // Default value.
- SELF: 1,
- BLANK: 2,
- PARENT: 3,
- TOP: 4,
-};
-
-PDFJS.LinkTarget = LinkTarget;
-
-var LinkTargetStringMap = [
- '',
- '_self',
- '_blank',
- '_parent',
- '_top'
-];
-
-function isExternalLinkTargetSet() {
- if (PDFJS.openExternalLinksInNewWindow) {
- deprecated('PDFJS.openExternalLinksInNewWindow, please use ' +
- '"PDFJS.externalLinkTarget = PDFJS.LinkTarget.BLANK" instead.');
- if (PDFJS.externalLinkTarget === LinkTarget.NONE) {
- PDFJS.externalLinkTarget = LinkTarget.BLANK;
- }
- // Reset the deprecated parameter, to suppress further warnings.
- PDFJS.openExternalLinksInNewWindow = false;
- }
- switch (PDFJS.externalLinkTarget) {
- case LinkTarget.NONE:
- return false;
- case LinkTarget.SELF:
- case LinkTarget.BLANK:
- case LinkTarget.PARENT:
- case LinkTarget.TOP:
- return true;
- }
- warn('PDFJS.externalLinkTarget is invalid: ' + PDFJS.externalLinkTarget);
- // Reset the external link target, to suppress further warnings.
- PDFJS.externalLinkTarget = LinkTarget.NONE;
- return false;
-}
-PDFJS.isExternalLinkTargetSet = isExternalLinkTargetSet;
-
-/**
- * Adds various attributes (href, title, target, rel) to hyperlinks.
- * @param {HTMLLinkElement} link - The link element.
- * @param {Object} params - An object with the properties:
- * @param {string} params.url - An absolute URL.
- */
-function addLinkAttributes(link, params) {
- var url = params && params.url;
- link.href = link.title = (url ? removeNullCharacters(url) : '');
-
- if (url) {
- if (isExternalLinkTargetSet()) {
- link.target = LinkTargetStringMap[PDFJS.externalLinkTarget];
- }
- // Strip referrer from the URL.
- link.rel = PDFJS.externalLinkRel;
- }
-}
-PDFJS.addLinkAttributes = addLinkAttributes;
-
-// Gets the file name from a given URL.
-function getFilenameFromUrl(url) {
- var anchor = url.indexOf('#');
- var query = url.indexOf('?');
- var end = Math.min(
- anchor > 0 ? anchor : url.length,
- query > 0 ? query : url.length);
- return url.substring(url.lastIndexOf('/', end) + 1, end);
-}
-PDFJS.getFilenameFromUrl = getFilenameFromUrl;
-
-exports.CustomStyle = CustomStyle;
-exports.addLinkAttributes = addLinkAttributes;
-exports.isExternalLinkTargetSet = isExternalLinkTargetSet;
-exports.getFilenameFromUrl = getFilenameFromUrl;
-exports.LinkTarget = LinkTarget;
-}));
-
-
-(function (root, factory) {
- {
- factory((root.pdfjsDisplayFontLoader = {}), root.pdfjsSharedUtil,
- root.pdfjsDisplayGlobal);
- }
-}(this, function (exports, sharedUtil, displayGlobal) {
-
-var assert = sharedUtil.assert;
-var bytesToString = sharedUtil.bytesToString;
-var string32 = sharedUtil.string32;
-var shadow = sharedUtil.shadow;
-var warn = sharedUtil.warn;
-
-var PDFJS = displayGlobal.PDFJS;
-var globalScope = displayGlobal.globalScope;
-var isWorker = displayGlobal.isWorker;
-
-function FontLoader(docId) {
- this.docId = docId;
- this.styleElement = null;
- this.nativeFontFaces = [];
- this.loadTestFontId = 0;
- this.loadingContext = {
- requests: [],
- nextRequestId: 0
- };
-}
-FontLoader.prototype = {
- insertRule: function fontLoaderInsertRule(rule) {
- var styleElement = this.styleElement;
- if (!styleElement) {
- styleElement = this.styleElement = document.createElement('style');
- styleElement.id = 'PDFJS_FONT_STYLE_TAG_' + this.docId;
- document.documentElement.getElementsByTagName('head')[0].appendChild(
- styleElement);
- }
-
- var styleSheet = styleElement.sheet;
- styleSheet.insertRule(rule, styleSheet.cssRules.length);
- },
-
- clear: function fontLoaderClear() {
- var styleElement = this.styleElement;
- if (styleElement) {
- styleElement.parentNode.removeChild(styleElement);
- styleElement = this.styleElement = null;
- }
- this.nativeFontFaces.forEach(function(nativeFontFace) {
- document.fonts.delete(nativeFontFace);
- });
- this.nativeFontFaces.length = 0;
- },
- get loadTestFont() {
- // This is a CFF font with 1 glyph for '.' that fills its entire width and
- // height.
- return shadow(this, 'loadTestFont', atob(
- 'T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQ' +
- 'AABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwA' +
- 'AAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbm' +
- 'FtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAA' +
- 'AADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6A' +
- 'ABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAA' +
- 'MQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAA' +
- 'AAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAA' +
- 'AAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQ' +
- 'AAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMA' +
- 'AQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAA' +
- 'EAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAA' +
- 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAA' +
- 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +
- 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +
- 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +
- 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA' +
- 'AAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgc' +
- 'A/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF' +
- 'hYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQA' +
- 'AAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAg' +
- 'ABAAAAAAAAAAAD6AAAAAAAAA=='
- ));
- },
-
- addNativeFontFace: function fontLoader_addNativeFontFace(nativeFontFace) {
- this.nativeFontFaces.push(nativeFontFace);
- document.fonts.add(nativeFontFace);
- },
-
- bind: function fontLoaderBind(fonts, callback) {
- assert(!isWorker, 'bind() shall be called from main thread');
-
- var rules = [];
- var fontsToLoad = [];
- var fontLoadPromises = [];
- var getNativeFontPromise = function(nativeFontFace) {
- // Return a promise that is always fulfilled, even when the font fails to
- // load.
- return nativeFontFace.loaded.catch(function(e) {
- warn('Failed to load font "' + nativeFontFace.family + '": ' + e);
+ await new Promise(resolve => {
+ const request = this._queueLoadingCallback(resolve);
+ this._prepareFontLoadEvent(font, request);
});
- };
- for (var i = 0, ii = fonts.length; i < ii; i++) {
- var font = fonts[i];
-
- // Add the font to the DOM only once or skip if the font
- // is already loaded.
- if (font.attached || font.loading === false) {
- continue;
- }
- font.attached = true;
-
- if (FontLoader.isFontLoadingAPISupported) {
- var nativeFontFace = font.createNativeFontFace();
- if (nativeFontFace) {
- this.addNativeFontFace(nativeFontFace);
- fontLoadPromises.push(getNativeFontPromise(nativeFontFace));
- }
- } else {
- var rule = font.createFontFaceRule();
- if (rule) {
- this.insertRule(rule);
- rules.push(rule);
- fontsToLoad.push(font);
- }
- }
}
-
- var request = this.queueLoadingCallback(callback);
- if (FontLoader.isFontLoadingAPISupported) {
- Promise.all(fontLoadPromises).then(function() {
- request.complete();
- });
- } else if (rules.length > 0 && !FontLoader.isSyncFontLoadingSupported) {
- this.prepareFontLoadEvent(rules, fontsToLoad, request);
- } else {
- request.complete();
+ }
+ get isFontLoadingAPISupported() {
+ const hasFonts = !!this._document?.fonts;
+ return (0, _util.shadow)(this, "isFontLoadingAPISupported", hasFonts);
+ }
+ get isSyncFontLoadingSupported() {
+ let supported = false;
+ if (_util.isNodeJS) {
+ supported = true;
+ } else if (typeof navigator !== "undefined" && /Mozilla\/5.0.*?rv:\d+.*? Gecko/.test(navigator.userAgent)) {
+ supported = true;
}
- },
-
- queueLoadingCallback: function FontLoader_queueLoadingCallback(callback) {
- function LoadLoader_completeRequest() {
- assert(!request.end, 'completeRequest() cannot be called twice');
- request.end = Date.now();
-
- // sending all completed requests in order how they were queued
- while (context.requests.length > 0 && context.requests[0].end) {
- var otherRequest = context.requests.shift();
+ return (0, _util.shadow)(this, "isSyncFontLoadingSupported", supported);
+ }
+ _queueLoadingCallback(callback) {
+ function completeRequest() {
+ (0, _util.assert)(!request.done, "completeRequest() cannot be called twice.");
+ request.done = true;
+ while (loadingRequests.length > 0 && loadingRequests[0].done) {
+ const otherRequest = loadingRequests.shift();
setTimeout(otherRequest.callback, 0);
}
}
-
- var context = this.loadingContext;
- var requestId = 'pdfjs-font-loading-' + (context.nextRequestId++);
- var request = {
- id: requestId,
- complete: LoadLoader_completeRequest,
- callback: callback,
- started: Date.now()
+ const {
+ loadingRequests
+ } = this;
+ const request = {
+ done: false,
+ complete: completeRequest,
+ callback
};
- context.requests.push(request);
+ loadingRequests.push(request);
return request;
- },
-
- prepareFontLoadEvent: function fontLoaderPrepareFontLoadEvent(rules,
- fonts,
- request) {
- /** Hack begin */
- // There's currently no event when a font has finished downloading so the
- // following code is a dirty hack to 'guess' when a font is
- // ready. It's assumed fonts are loaded in order, so add a known test
- // font after the desired fonts and then test for the loading of that
- // test font.
-
- function int32(data, offset) {
- return (data.charCodeAt(offset) << 24) |
- (data.charCodeAt(offset + 1) << 16) |
- (data.charCodeAt(offset + 2) << 8) |
- (data.charCodeAt(offset + 3) & 0xff);
- }
-
- function spliceString(s, offset, remove, insert) {
- var chunk1 = s.substr(0, offset);
- var chunk2 = s.substr(offset + remove);
- return chunk1 + insert + chunk2;
- }
-
- var i, ii;
-
- var canvas = document.createElement('canvas');
- canvas.width = 1;
- canvas.height = 1;
- var ctx = canvas.getContext('2d');
-
- var called = 0;
- function isFontReady(name, callback) {
- called++;
- // With setTimeout clamping this gives the font ~100ms to load.
- if(called > 30) {
- warn('Load test font never loaded.');
- callback();
- return;
- }
- ctx.font = '30px ' + name;
- ctx.fillText('.', 0, 20);
- var imageData = ctx.getImageData(0, 0, 1, 1);
- if (imageData.data[3] > 0) {
- callback();
- return;
- }
- setTimeout(isFontReady.bind(null, name, callback));
- }
-
- var loadTestFontId = 'lt' + Date.now() + this.loadTestFontId++;
- // Chromium seems to cache fonts based on a hash of the actual font data,
- // so the font must be modified for each load test else it will appear to
- // be loaded already.
- // TODO: This could maybe be made faster by avoiding the btoa of the full
- // font by splitting it in chunks before hand and padding the font id.
- var data = this.loadTestFont;
- var COMMENT_OFFSET = 976; // has to be on 4 byte boundary (for checksum)
- data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length,
- loadTestFontId);
- // CFF checksum is important for IE, adjusting it
- var CFF_CHECKSUM_OFFSET = 16;
- var XXXX_VALUE = 0x58585858; // the "comment" filled with 'X'
- var checksum = int32(data, CFF_CHECKSUM_OFFSET);
- for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
- checksum = (checksum - XXXX_VALUE + int32(loadTestFontId, i)) | 0;
- }
- if (i < loadTestFontId.length) { // align to 4 bytes boundary
- checksum = (checksum - XXXX_VALUE +
- int32(loadTestFontId + 'XXX', i)) | 0;
- }
- data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));
-
- var url = 'url(data:font/opentype;base64,' + btoa(data) + ');';
- var rule = '@font-face { font-family:"' + loadTestFontId + '";src:' +
- url + '}';
- this.insertRule(rule);
-
- var names = [];
- for (i = 0, ii = fonts.length; i < ii; i++) {
- names.push(fonts[i].loadedName);
- }
- names.push(loadTestFontId);
-
- var div = document.createElement('div');
- div.setAttribute('style',
- 'visibility: hidden;' +
- 'width: 10px; height: 10px;' +
- 'position: absolute; top: 0px; left: 0px;');
- for (i = 0, ii = names.length; i < ii; ++i) {
- var span = document.createElement('span');
- span.textContent = 'Hi';
- span.style.fontFamily = names[i];
- div.appendChild(span);
- }
- document.body.appendChild(div);
-
- isFontReady(loadTestFontId, function() {
- document.body.removeChild(div);
- request.complete();
- });
- /** Hack end */
}
-};
-FontLoader.isFontLoadingAPISupported = (!isWorker &&
- typeof document !== 'undefined' && !!document.fonts);
-Object.defineProperty(FontLoader, 'isSyncFontLoadingSupported', {
- get: function () {
- var supported = false;
-
- // User agent string sniffing is bad, but there is no reliable way to tell
- // if font is fully loaded and ready to be used with canvas.
- var userAgent = window.navigator.userAgent;
- var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(userAgent);
- if (m && m[1] >= 14) {
- supported = true;
+ get _loadTestFont() {
+ const testFont = atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA" + "FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA" + "ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA" + "AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1" + "AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD" + "6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM" + "AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D" + "IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA" + "AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA" + "AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB" + "AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY" + "AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA" + "AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA" + "AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC" + "AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3" + "Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj" + "FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");
+ return (0, _util.shadow)(this, "_loadTestFont", testFont);
+ }
+ _prepareFontLoadEvent(font, request) {
+ function int32(data, offset) {
+ return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;
}
- // TODO other browsers
- if (userAgent === 'node') {
- supported = true;
+ function spliceString(s, offset, remove, insert) {
+ const chunk1 = s.substring(0, offset);
+ const chunk2 = s.substring(offset + remove);
+ return chunk1 + insert + chunk2;
}
- return shadow(FontLoader, 'isSyncFontLoadingSupported', supported);
- },
- enumerable: true,
- configurable: true
-});
-
-var FontFaceObject = (function FontFaceObjectClosure() {
- function FontFaceObject(translatedData) {
+ let i, ii;
+ const canvas = this._document.createElement("canvas");
+ canvas.width = 1;
+ canvas.height = 1;
+ const ctx = canvas.getContext("2d");
+ let called = 0;
+ function isFontReady(name, callback) {
+ if (++called > 30) {
+ (0, _util.warn)("Load test font never loaded.");
+ callback();
+ return;
+ }
+ ctx.font = "30px " + name;
+ ctx.fillText(".", 0, 20);
+ const imageData = ctx.getImageData(0, 0, 1, 1);
+ if (imageData.data[3] > 0) {
+ callback();
+ return;
+ }
+ setTimeout(isFontReady.bind(null, name, callback));
+ }
+ const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;
+ let data = this._loadTestFont;
+ const COMMENT_OFFSET = 976;
+ data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
+ const CFF_CHECKSUM_OFFSET = 16;
+ const XXXX_VALUE = 0x58585858;
+ let checksum = int32(data, CFF_CHECKSUM_OFFSET);
+ for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
+ checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;
+ }
+ if (i < loadTestFontId.length) {
+ checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i) | 0;
+ }
+ data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));
+ const url = `url(data:font/opentype;base64,${btoa(data)});`;
+ const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`;
+ this.insertRule(rule);
+ const div = this._document.createElement("div");
+ div.style.visibility = "hidden";
+ div.style.width = div.style.height = "10px";
+ div.style.position = "absolute";
+ div.style.top = div.style.left = "0px";
+ for (const name of [font.loadedName, loadTestFontId]) {
+ const span = this._document.createElement("span");
+ span.textContent = "Hi";
+ span.style.fontFamily = name;
+ div.append(span);
+ }
+ this._document.body.append(div);
+ isFontReady(loadTestFontId, () => {
+ div.remove();
+ request.complete();
+ });
+ }
+}
+exports.FontLoader = FontLoader;
+class FontFaceObject {
+ constructor(translatedData, {
+ isEvalSupported = true,
+ disableFontFace = false,
+ ignoreErrors = false,
+ inspectFont = null
+ }) {
this.compiledGlyphs = Object.create(null);
- // importing translated data
- for (var i in translatedData) {
+ for (const i in translatedData) {
this[i] = translatedData[i];
}
+ this.isEvalSupported = isEvalSupported !== false;
+ this.disableFontFace = disableFontFace === true;
+ this.ignoreErrors = ignoreErrors === true;
+ this._inspectFont = inspectFont;
}
- Object.defineProperty(FontFaceObject, 'isEvalSupported', {
- get: function () {
- var evalSupport = false;
- if (PDFJS.isEvalSupported) {
- try {
- /* jshint evil: true */
- new Function('');
- evalSupport = true;
- } catch (e) {}
+ createNativeFontFace() {
+ if (!this.data || this.disableFontFace) {
+ return null;
+ }
+ let nativeFontFace;
+ if (!this.cssFontInfo) {
+ nativeFontFace = new FontFace(this.loadedName, this.data, {});
+ } else {
+ const css = {
+ weight: this.cssFontInfo.fontWeight
+ };
+ if (this.cssFontInfo.italicAngle) {
+ css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;
}
- return shadow(this, 'isEvalSupported', evalSupport);
- },
- enumerable: true,
- configurable: true
- });
- FontFaceObject.prototype = {
- createNativeFontFace: function FontFaceObject_createNativeFontFace() {
- if (!this.data) {
- return null;
- }
-
- if (PDFJS.disableFontFace) {
- this.disableFontFace = true;
- return null;
- }
-
- var nativeFontFace = new FontFace(this.loadedName, this.data, {});
-
- if (PDFJS.pdfBug && 'FontInspector' in globalScope &&
- globalScope['FontInspector'].enabled) {
- globalScope['FontInspector'].fontAdded(this);
- }
- return nativeFontFace;
- },
-
- createFontFaceRule: function FontFaceObject_createFontFaceRule() {
- if (!this.data) {
- return null;
- }
-
- if (PDFJS.disableFontFace) {
- this.disableFontFace = true;
- return null;
- }
-
- var data = bytesToString(new Uint8Array(this.data));
- var fontName = this.loadedName;
-
- // Add the font-face rule to the document
- var url = ('url(data:' + this.mimetype + ';base64,' +
- window.btoa(data) + ');');
- var rule = '@font-face { font-family:"' + fontName + '";src:' + url + '}';
-
- if (PDFJS.pdfBug && 'FontInspector' in globalScope &&
- globalScope['FontInspector'].enabled) {
- globalScope['FontInspector'].fontAdded(this, url);
- }
-
- return rule;
- },
-
- getPathGenerator:
- function FontFaceObject_getPathGenerator(objs, character) {
- if (!(character in this.compiledGlyphs)) {
- var cmds = objs.get(this.loadedName + '_path_' + character);
- var current, i, len;
-
- // If we can, compile cmds into JS for MAXIMUM SPEED
- if (FontFaceObject.isEvalSupported) {
- var args, js = '';
- for (i = 0, len = cmds.length; i < len; i++) {
- current = cmds[i];
-
- if (current.args !== undefined) {
- args = current.args.join(',');
- } else {
- args = '';
- }
-
- js += 'c.' + current.cmd + '(' + args + ');\n';
- }
- /* jshint -W054 */
- this.compiledGlyphs[character] = new Function('c', 'size', js);
- } else {
- // But fall back on using Function.prototype.apply() if we're
- // blocked from using eval() for whatever reason (like CSP policies)
- this.compiledGlyphs[character] = function(c, size) {
- for (i = 0, len = cmds.length; i < len; i++) {
- current = cmds[i];
-
- if (current.cmd === 'scale') {
- current.args = [size, -size];
- }
-
- c[current.cmd].apply(c, current.args);
- }
- };
- }
+ nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);
+ }
+ this._inspectFont?.(this);
+ return nativeFontFace;
+ }
+ createFontFaceRule() {
+ if (!this.data || this.disableFontFace) {
+ return null;
+ }
+ const data = (0, _util.bytesToString)(this.data);
+ const url = `url(data:${this.mimetype};base64,${btoa(data)});`;
+ let rule;
+ if (!this.cssFontInfo) {
+ rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`;
+ } else {
+ let css = `font-weight: ${this.cssFontInfo.fontWeight};`;
+ if (this.cssFontInfo.italicAngle) {
+ css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;
}
+ rule = `@font-face {font-family:"${this.cssFontInfo.fontFamily}";${css}src:${url}}`;
+ }
+ this._inspectFont?.(this, url);
+ return rule;
+ }
+ getPathGenerator(objs, character) {
+ if (this.compiledGlyphs[character] !== undefined) {
return this.compiledGlyphs[character];
}
- };
- return FontFaceObject;
-})();
-
+ let cmds;
+ try {
+ cmds = objs.get(this.loadedName + "_path_" + character);
+ } catch (ex) {
+ if (!this.ignoreErrors) {
+ throw ex;
+ }
+ (0, _util.warn)(`getPathGenerator - ignoring character: "${ex}".`);
+ return this.compiledGlyphs[character] = function (c, size) {};
+ }
+ if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) {
+ const jsBuf = [];
+ for (const current of cmds) {
+ const args = current.args !== undefined ? current.args.join(",") : "";
+ jsBuf.push("c.", current.cmd, "(", args, ");\n");
+ }
+ return this.compiledGlyphs[character] = new Function("c", "size", jsBuf.join(""));
+ }
+ return this.compiledGlyphs[character] = function (c, size) {
+ for (const current of cmds) {
+ if (current.cmd === "scale") {
+ current.args = [size, -size];
+ }
+ c[current.cmd].apply(c, current.args);
+ }
+ };
+ }
+}
exports.FontFaceObject = FontFaceObject;
-exports.FontLoader = FontLoader;
+
+/***/ }),
+/* 10 */
+/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {
+
+
+
+Object.defineProperty(exports, "__esModule", ({
+ value: true
}));
-
-
-(function (root, factory) {
- {
- factory((root.pdfjsDisplayMetadata = {}), root.pdfjsSharedUtil,
- root.pdfjsDisplayGlobal);
- }
-}(this, function (exports, sharedUtil, displayGlobal) {
-
-var error = sharedUtil.error;
-var PDFJS = displayGlobal.PDFJS;
-
-var Metadata = PDFJS.Metadata = (function MetadataClosure() {
- function fixMetadata(meta) {
- return meta.replace(/>\\376\\377([^<]+)/g, function(all, codes) {
- var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g,
- function(code, d1, d2, d3) {
- return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);
- });
- var chars = '';
- for (var i = 0; i < bytes.length; i += 2) {
- var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);
- chars += code >= 32 && code < 127 && code !== 60 && code !== 62 &&
- code !== 38 && false ? String.fromCharCode(code) :
- '' + (0x10000 + code).toString(16).substring(1) + ';';
+exports.NodeStandardFontDataFactory = exports.NodeFilterFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;
+var _base_factory = __w_pdfjs_require__(7);
+var _util = __w_pdfjs_require__(1);
+;
+;
+const fetchData = function (url) {
+ return new Promise((resolve, reject) => {
+ const fs = require("fs");
+ fs.readFile(url, (error, data) => {
+ if (error || !data) {
+ reject(new Error(error));
+ return;
}
- return '>' + chars;
+ resolve(new Uint8Array(data));
});
- }
-
- function Metadata(meta) {
- if (typeof meta === 'string') {
- // Ghostscript produces invalid metadata
- meta = fixMetadata(meta);
-
- var parser = new DOMParser();
- meta = parser.parseFromString(meta, 'application/xml');
- } else if (!(meta instanceof Document)) {
- error('Metadata: Invalid metadata object');
- }
-
- this.metaDocument = meta;
- this.metadata = Object.create(null);
- this.parse();
- }
-
- Metadata.prototype = {
- parse: function Metadata_parse() {
- var doc = this.metaDocument;
- var rdf = doc.documentElement;
-
- if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { // Wrapped in
- rdf = rdf.firstChild;
- while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {
- rdf = rdf.nextSibling;
- }
- }
-
- var nodeName = (rdf) ? rdf.nodeName.toLowerCase() : null;
- if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) {
- return;
- }
-
- var children = rdf.childNodes, desc, entry, name, i, ii, length, iLength;
- for (i = 0, length = children.length; i < length; i++) {
- desc = children[i];
- if (desc.nodeName.toLowerCase() !== 'rdf:description') {
- continue;
- }
-
- for (ii = 0, iLength = desc.childNodes.length; ii < iLength; ii++) {
- if (desc.childNodes[ii].nodeName.toLowerCase() !== '#text') {
- entry = desc.childNodes[ii];
- name = entry.nodeName.toLowerCase();
- this.metadata[name] = entry.textContent.trim();
- }
- }
- }
- },
-
- get: function Metadata_get(name) {
- return this.metadata[name] || null;
- },
-
- has: function Metadata_has(name) {
- return typeof this.metadata[name] !== 'undefined';
- }
- };
-
- return Metadata;
-})();
-
-exports.Metadata = Metadata;
-}));
-
-
-(function (root, factory) {
- {
- factory((root.pdfjsDisplaySVG = {}), root.pdfjsSharedUtil,
- root.pdfjsDisplayGlobal);
- }
-}(this, function (exports, sharedUtil, displayGlobal) {
-
-var FONT_IDENTITY_MATRIX = sharedUtil.FONT_IDENTITY_MATRIX;
-var IDENTITY_MATRIX = sharedUtil.IDENTITY_MATRIX;
-var ImageKind = sharedUtil.ImageKind;
-var OPS = sharedUtil.OPS;
-var Util = sharedUtil.Util;
-var isNum = sharedUtil.isNum;
-var isArray = sharedUtil.isArray;
-var warn = sharedUtil.warn;
-var PDFJS = displayGlobal.PDFJS;
-
-var SVG_DEFAULTS = {
- fontStyle: 'normal',
- fontWeight: 'normal',
- fillColor: '#000000'
+ });
};
-
-var convertImgDataToPng = (function convertImgDataToPngClosure() {
- var PNG_HEADER =
- new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);
-
- var CHUNK_WRAPPER_SIZE = 12;
-
- var crcTable = new Int32Array(256);
- for (var i = 0; i < 256; i++) {
- var c = i;
- for (var h = 0; h < 8; h++) {
- if (c & 1) {
- c = 0xedB88320 ^ ((c >> 1) & 0x7fffffff);
- } else {
- c = (c >> 1) & 0x7fffffff;
- }
- }
- crcTable[i] = c;
+class NodeFilterFactory extends _base_factory.BaseFilterFactory {}
+exports.NodeFilterFactory = NodeFilterFactory;
+class NodeCanvasFactory extends _base_factory.BaseCanvasFactory {
+ _createCanvas(width, height) {
+ const Canvas = require("canvas");
+ return Canvas.createCanvas(width, height);
}
-
- function crc32(data, start, end) {
- var crc = -1;
- for (var i = start; i < end; i++) {
- var a = (crc ^ data[i]) & 0xff;
- var b = crcTable[a];
- crc = (crc >>> 8) ^ b;
- }
- return crc ^ -1;
- }
-
- function writePngChunk(type, body, data, offset) {
- var p = offset;
- var len = body.length;
-
- data[p] = len >> 24 & 0xff;
- data[p + 1] = len >> 16 & 0xff;
- data[p + 2] = len >> 8 & 0xff;
- data[p + 3] = len & 0xff;
- p += 4;
-
- data[p] = type.charCodeAt(0) & 0xff;
- data[p + 1] = type.charCodeAt(1) & 0xff;
- data[p + 2] = type.charCodeAt(2) & 0xff;
- data[p + 3] = type.charCodeAt(3) & 0xff;
- p += 4;
-
- data.set(body, p);
- p += body.length;
-
- var crc = crc32(data, offset + 4, p);
-
- data[p] = crc >> 24 & 0xff;
- data[p + 1] = crc >> 16 & 0xff;
- data[p + 2] = crc >> 8 & 0xff;
- data[p + 3] = crc & 0xff;
- }
-
- function adler32(data, start, end) {
- var a = 1;
- var b = 0;
- for (var i = start; i < end; ++i) {
- a = (a + (data[i] & 0xff)) % 65521;
- b = (b + a) % 65521;
- }
- return (b << 16) | a;
- }
-
- function encode(imgData, kind) {
- var width = imgData.width;
- var height = imgData.height;
- var bitDepth, colorType, lineSize;
- var bytes = imgData.data;
-
- switch (kind) {
- case ImageKind.GRAYSCALE_1BPP:
- colorType = 0;
- bitDepth = 1;
- lineSize = (width + 7) >> 3;
- break;
- case ImageKind.RGB_24BPP:
- colorType = 2;
- bitDepth = 8;
- lineSize = width * 3;
- break;
- case ImageKind.RGBA_32BPP:
- colorType = 6;
- bitDepth = 8;
- lineSize = width * 4;
- break;
- default:
- throw new Error('invalid format');
- }
-
- // prefix every row with predictor 0
- var literals = new Uint8Array((1 + lineSize) * height);
- var offsetLiterals = 0, offsetBytes = 0;
- var y, i;
- for (y = 0; y < height; ++y) {
- literals[offsetLiterals++] = 0; // no prediction
- literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize),
- offsetLiterals);
- offsetBytes += lineSize;
- offsetLiterals += lineSize;
- }
-
- if (kind === ImageKind.GRAYSCALE_1BPP) {
- // inverting for B/W
- offsetLiterals = 0;
- for (y = 0; y < height; y++) {
- offsetLiterals++; // skipping predictor
- for (i = 0; i < lineSize; i++) {
- literals[offsetLiterals++] ^= 0xFF;
- }
- }
- }
-
- var ihdr = new Uint8Array([
- width >> 24 & 0xff,
- width >> 16 & 0xff,
- width >> 8 & 0xff,
- width & 0xff,
- height >> 24 & 0xff,
- height >> 16 & 0xff,
- height >> 8 & 0xff,
- height & 0xff,
- bitDepth, // bit depth
- colorType, // color type
- 0x00, // compression method
- 0x00, // filter method
- 0x00 // interlace method
- ]);
-
- var len = literals.length;
- var maxBlockLength = 0xFFFF;
-
- var deflateBlocks = Math.ceil(len / maxBlockLength);
- var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);
- var pi = 0;
- idat[pi++] = 0x78; // compression method and flags
- idat[pi++] = 0x9c; // flags
-
- var pos = 0;
- while (len > maxBlockLength) {
- // writing non-final DEFLATE blocks type 0 and length of 65535
- idat[pi++] = 0x00;
- idat[pi++] = 0xff;
- idat[pi++] = 0xff;
- idat[pi++] = 0x00;
- idat[pi++] = 0x00;
- idat.set(literals.subarray(pos, pos + maxBlockLength), pi);
- pi += maxBlockLength;
- pos += maxBlockLength;
- len -= maxBlockLength;
- }
-
- // writing non-final DEFLATE blocks type 0
- idat[pi++] = 0x01;
- idat[pi++] = len & 0xff;
- idat[pi++] = len >> 8 & 0xff;
- idat[pi++] = (~len & 0xffff) & 0xff;
- idat[pi++] = (~len & 0xffff) >> 8 & 0xff;
- idat.set(literals.subarray(pos), pi);
- pi += literals.length - pos;
-
- var adler = adler32(literals, 0, literals.length); // checksum
- idat[pi++] = adler >> 24 & 0xff;
- idat[pi++] = adler >> 16 & 0xff;
- idat[pi++] = adler >> 8 & 0xff;
- idat[pi++] = adler & 0xff;
-
- // PNG will consists: header, IHDR+data, IDAT+data, and IEND.
- var pngLength = PNG_HEADER.length + (CHUNK_WRAPPER_SIZE * 3) +
- ihdr.length + idat.length;
- var data = new Uint8Array(pngLength);
- var offset = 0;
- data.set(PNG_HEADER, offset);
- offset += PNG_HEADER.length;
- writePngChunk('IHDR', ihdr, data, offset);
- offset += CHUNK_WRAPPER_SIZE + ihdr.length;
- writePngChunk('IDATA', idat, data, offset);
- offset += CHUNK_WRAPPER_SIZE + idat.length;
- writePngChunk('IEND', new Uint8Array(0), data, offset);
-
- return PDFJS.createObjectURL(data, 'image/png');
- }
-
- return function convertImgDataToPng(imgData) {
- var kind = (imgData.kind === undefined ?
- ImageKind.GRAYSCALE_1BPP : imgData.kind);
- return encode(imgData, kind);
- };
-})();
-
-var SVGExtraState = (function SVGExtraStateClosure() {
- function SVGExtraState() {
- this.fontSizeScale = 1;
- this.fontWeight = SVG_DEFAULTS.fontWeight;
- this.fontSize = 0;
-
- this.textMatrix = IDENTITY_MATRIX;
- this.fontMatrix = FONT_IDENTITY_MATRIX;
- this.leading = 0;
-
- // Current point (in user coordinates)
- this.x = 0;
- this.y = 0;
-
- // Start of text line (in text coordinates)
- this.lineX = 0;
- this.lineY = 0;
-
- // Character and word spacing
- this.charSpacing = 0;
- this.wordSpacing = 0;
- this.textHScale = 1;
- this.textRise = 0;
-
- // Default foreground and background colors
- this.fillColor = SVG_DEFAULTS.fillColor;
- this.strokeColor = '#000000';
-
- this.fillAlpha = 1;
- this.strokeAlpha = 1;
- this.lineWidth = 1;
- this.lineJoin = '';
- this.lineCap = '';
- this.miterLimit = 0;
-
- this.dashArray = [];
- this.dashPhase = 0;
-
- this.dependencies = [];
-
- // Clipping
- this.clipId = '';
- this.pendingClip = false;
-
- this.maskId = '';
- }
-
- SVGExtraState.prototype = {
- clone: function SVGExtraState_clone() {
- return Object.create(this);
- },
- setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) {
- this.x = x;
- this.y = y;
- }
- };
- return SVGExtraState;
-})();
-
-var SVGGraphics = (function SVGGraphicsClosure() {
- function createScratchSVG(width, height) {
- var NS = 'http://www.w3.org/2000/svg';
- var svg = document.createElementNS(NS, 'svg:svg');
- svg.setAttributeNS(null, 'version', '1.1');
- svg.setAttributeNS(null, 'width', width + 'px');
- svg.setAttributeNS(null, 'height', height + 'px');
- svg.setAttributeNS(null, 'viewBox', '0 0 ' + width + ' ' + height);
- return svg;
- }
-
- function opListToTree(opList) {
- var opTree = [];
- var tmp = [];
- var opListLen = opList.length;
-
- for (var x = 0; x < opListLen; x++) {
- if (opList[x].fn === 'save') {
- opTree.push({'fnId': 92, 'fn': 'group', 'items': []});
- tmp.push(opTree);
- opTree = opTree[opTree.length - 1].items;
- continue;
- }
-
- if(opList[x].fn === 'restore') {
- opTree = tmp.pop();
- } else {
- opTree.push(opList[x]);
- }
- }
- return opTree;
- }
-
- /**
- * Formats float number.
- * @param value {number} number to format.
- * @returns {string}
- */
- function pf(value) {
- if (value === (value | 0)) { // integer number
- return value.toString();
- }
- var s = value.toFixed(10);
- var i = s.length - 1;
- if (s[i] !== '0') {
- return s;
- }
- // removing trailing zeros
- do {
- i--;
- } while (s[i] === '0');
- return s.substr(0, s[i] === '.' ? i : i + 1);
- }
-
- /**
- * Formats transform matrix. The standard rotation, scale and translate
- * matrices are replaced by their shorter forms, and for identity matrix
- * returns empty string to save the memory.
- * @param m {Array} matrix to format.
- * @returns {string}
- */
- function pm(m) {
- if (m[4] === 0 && m[5] === 0) {
- if (m[1] === 0 && m[2] === 0) {
- if (m[0] === 1 && m[3] === 1) {
- return '';
- }
- return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')';
- }
- if (m[0] === m[3] && m[1] === -m[2]) {
- var a = Math.acos(m[0]) * 180 / Math.PI;
- return 'rotate(' + pf(a) + ')';
- }
- } else {
- if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {
- return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')';
- }
- }
- return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' +
- pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')';
- }
-
- function SVGGraphics(commonObjs, objs) {
- this.current = new SVGExtraState();
- this.transformMatrix = IDENTITY_MATRIX; // Graphics state matrix
- this.transformStack = [];
- this.extraStack = [];
- this.commonObjs = commonObjs;
- this.objs = objs;
- this.pendingEOFill = false;
-
- this.embedFonts = false;
- this.embeddedFonts = Object.create(null);
- this.cssStyle = null;
- }
-
- var NS = 'http://www.w3.org/2000/svg';
- var XML_NS = 'http://www.w3.org/XML/1998/namespace';
- var XLINK_NS = 'http://www.w3.org/1999/xlink';
- var LINE_CAP_STYLES = ['butt', 'round', 'square'];
- var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];
- var clipCount = 0;
- var maskCount = 0;
-
- SVGGraphics.prototype = {
- save: function SVGGraphics_save() {
- this.transformStack.push(this.transformMatrix);
- var old = this.current;
- this.extraStack.push(old);
- this.current = old.clone();
- },
-
- restore: function SVGGraphics_restore() {
- this.transformMatrix = this.transformStack.pop();
- this.current = this.extraStack.pop();
-
- this.tgrp = document.createElementNS(NS, 'svg:g');
- this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));
- this.pgrp.appendChild(this.tgrp);
- },
-
- group: function SVGGraphics_group(items) {
- this.save();
- this.executeOpTree(items);
- this.restore();
- },
-
- loadDependencies: function SVGGraphics_loadDependencies(operatorList) {
- var fnArray = operatorList.fnArray;
- var fnArrayLen = fnArray.length;
- var argsArray = operatorList.argsArray;
-
- var self = this;
- for (var i = 0; i < fnArrayLen; i++) {
- if (OPS.dependency === fnArray[i]) {
- var deps = argsArray[i];
- for (var n = 0, nn = deps.length; n < nn; n++) {
- var obj = deps[n];
- var common = obj.substring(0, 2) === 'g_';
- var promise;
- if (common) {
- promise = new Promise(function(resolve) {
- self.commonObjs.get(obj, resolve);
- });
- } else {
- promise = new Promise(function(resolve) {
- self.objs.get(obj, resolve);
- });
- }
- this.current.dependencies.push(promise);
- }
- }
- }
- return Promise.all(this.current.dependencies);
- },
-
- transform: function SVGGraphics_transform(a, b, c, d, e, f) {
- var transformMatrix = [a, b, c, d, e, f];
- this.transformMatrix = PDFJS.Util.transform(this.transformMatrix,
- transformMatrix);
-
- this.tgrp = document.createElementNS(NS, 'svg:g');
- this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));
- },
-
- getSVG: function SVGGraphics_getSVG(operatorList, viewport) {
- this.svg = createScratchSVG(viewport.width, viewport.height);
- this.viewport = viewport;
-
- return this.loadDependencies(operatorList).then(function () {
- this.transformMatrix = IDENTITY_MATRIX;
- this.pgrp = document.createElementNS(NS, 'svg:g'); // Parent group
- this.pgrp.setAttributeNS(null, 'transform', pm(viewport.transform));
- this.tgrp = document.createElementNS(NS, 'svg:g'); // Transform group
- this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));
- this.defs = document.createElementNS(NS, 'svg:defs');
- this.pgrp.appendChild(this.defs);
- this.pgrp.appendChild(this.tgrp);
- this.svg.appendChild(this.pgrp);
- var opTree = this.convertOpList(operatorList);
- this.executeOpTree(opTree);
- return this.svg;
- }.bind(this));
- },
-
- convertOpList: function SVGGraphics_convertOpList(operatorList) {
- var argsArray = operatorList.argsArray;
- var fnArray = operatorList.fnArray;
- var fnArrayLen = fnArray.length;
- var REVOPS = [];
- var opList = [];
-
- for (var op in OPS) {
- REVOPS[OPS[op]] = op;
- }
-
- for (var x = 0; x < fnArrayLen; x++) {
- var fnId = fnArray[x];
- opList.push({'fnId' : fnId, 'fn': REVOPS[fnId], 'args': argsArray[x]});
- }
- return opListToTree(opList);
- },
-
- executeOpTree: function SVGGraphics_executeOpTree(opTree) {
- var opTreeLen = opTree.length;
- for(var x = 0; x < opTreeLen; x++) {
- var fn = opTree[x].fn;
- var fnId = opTree[x].fnId;
- var args = opTree[x].args;
-
- switch (fnId | 0) {
- case OPS.beginText:
- this.beginText();
- break;
- case OPS.setLeading:
- this.setLeading(args);
- break;
- case OPS.setLeadingMoveText:
- this.setLeadingMoveText(args[0], args[1]);
- break;
- case OPS.setFont:
- this.setFont(args);
- break;
- case OPS.showText:
- this.showText(args[0]);
- break;
- case OPS.showSpacedText:
- this.showText(args[0]);
- break;
- case OPS.endText:
- this.endText();
- break;
- case OPS.moveText:
- this.moveText(args[0], args[1]);
- break;
- case OPS.setCharSpacing:
- this.setCharSpacing(args[0]);
- break;
- case OPS.setWordSpacing:
- this.setWordSpacing(args[0]);
- break;
- case OPS.setHScale:
- this.setHScale(args[0]);
- break;
- case OPS.setTextMatrix:
- this.setTextMatrix(args[0], args[1], args[2],
- args[3], args[4], args[5]);
- break;
- case OPS.setLineWidth:
- this.setLineWidth(args[0]);
- break;
- case OPS.setLineJoin:
- this.setLineJoin(args[0]);
- break;
- case OPS.setLineCap:
- this.setLineCap(args[0]);
- break;
- case OPS.setMiterLimit:
- this.setMiterLimit(args[0]);
- break;
- case OPS.setFillRGBColor:
- this.setFillRGBColor(args[0], args[1], args[2]);
- break;
- case OPS.setStrokeRGBColor:
- this.setStrokeRGBColor(args[0], args[1], args[2]);
- break;
- case OPS.setDash:
- this.setDash(args[0], args[1]);
- break;
- case OPS.setGState:
- this.setGState(args[0]);
- break;
- case OPS.fill:
- this.fill();
- break;
- case OPS.eoFill:
- this.eoFill();
- break;
- case OPS.stroke:
- this.stroke();
- break;
- case OPS.fillStroke:
- this.fillStroke();
- break;
- case OPS.eoFillStroke:
- this.eoFillStroke();
- break;
- case OPS.clip:
- this.clip('nonzero');
- break;
- case OPS.eoClip:
- this.clip('evenodd');
- break;
- case OPS.paintSolidColorImageMask:
- this.paintSolidColorImageMask();
- break;
- case OPS.paintJpegXObject:
- this.paintJpegXObject(args[0], args[1], args[2]);
- break;
- case OPS.paintImageXObject:
- this.paintImageXObject(args[0]);
- break;
- case OPS.paintInlineImageXObject:
- this.paintInlineImageXObject(args[0]);
- break;
- case OPS.paintImageMaskXObject:
- this.paintImageMaskXObject(args[0]);
- break;
- case OPS.paintFormXObjectBegin:
- this.paintFormXObjectBegin(args[0], args[1]);
- break;
- case OPS.paintFormXObjectEnd:
- this.paintFormXObjectEnd();
- break;
- case OPS.closePath:
- this.closePath();
- break;
- case OPS.closeStroke:
- this.closeStroke();
- break;
- case OPS.closeFillStroke:
- this.closeFillStroke();
- break;
- case OPS.nextLine:
- this.nextLine();
- break;
- case OPS.transform:
- this.transform(args[0], args[1], args[2], args[3],
- args[4], args[5]);
- break;
- case OPS.constructPath:
- this.constructPath(args[0], args[1]);
- break;
- case OPS.endPath:
- this.endPath();
- break;
- case 92:
- this.group(opTree[x].items);
- break;
- default:
- warn('Unimplemented method '+ fn);
- break;
- }
- }
- },
-
- setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) {
- this.current.wordSpacing = wordSpacing;
- },
-
- setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) {
- this.current.charSpacing = charSpacing;
- },
-
- nextLine: function SVGGraphics_nextLine() {
- this.moveText(0, this.current.leading);
- },
-
- setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) {
- var current = this.current;
- this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f];
-
- this.current.x = this.current.lineX = 0;
- this.current.y = this.current.lineY = 0;
-
- current.xcoords = [];
- current.tspan = document.createElementNS(NS, 'svg:tspan');
- current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
- current.tspan.setAttributeNS(null, 'font-size',
- pf(current.fontSize) + 'px');
- current.tspan.setAttributeNS(null, 'y', pf(-current.y));
-
- current.txtElement = document.createElementNS(NS, 'svg:text');
- current.txtElement.appendChild(current.tspan);
- },
-
- beginText: function SVGGraphics_beginText() {
- this.current.x = this.current.lineX = 0;
- this.current.y = this.current.lineY = 0;
- this.current.textMatrix = IDENTITY_MATRIX;
- this.current.lineMatrix = IDENTITY_MATRIX;
- this.current.tspan = document.createElementNS(NS, 'svg:tspan');
- this.current.txtElement = document.createElementNS(NS, 'svg:text');
- this.current.txtgrp = document.createElementNS(NS, 'svg:g');
- this.current.xcoords = [];
- },
-
- moveText: function SVGGraphics_moveText(x, y) {
- var current = this.current;
- this.current.x = this.current.lineX += x;
- this.current.y = this.current.lineY += y;
-
- current.xcoords = [];
- current.tspan = document.createElementNS(NS, 'svg:tspan');
- current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
- current.tspan.setAttributeNS(null, 'font-size',
- pf(current.fontSize) + 'px');
- current.tspan.setAttributeNS(null, 'y', pf(-current.y));
- },
-
- showText: function SVGGraphics_showText(glyphs) {
- var current = this.current;
- var font = current.font;
- var fontSize = current.fontSize;
-
- if (fontSize === 0) {
- return;
- }
-
- var charSpacing = current.charSpacing;
- var wordSpacing = current.wordSpacing;
- var fontDirection = current.fontDirection;
- var textHScale = current.textHScale * fontDirection;
- var glyphsLength = glyphs.length;
- var vertical = font.vertical;
- var widthAdvanceScale = fontSize * current.fontMatrix[0];
-
- var x = 0, i;
- for (i = 0; i < glyphsLength; ++i) {
- var glyph = glyphs[i];
- if (glyph === null) {
- // word break
- x += fontDirection * wordSpacing;
- continue;
- } else if (isNum(glyph)) {
- x += -glyph * fontSize * 0.001;
- continue;
- }
- current.xcoords.push(current.x + x * textHScale);
-
- var width = glyph.width;
- var character = glyph.fontChar;
- var charWidth = width * widthAdvanceScale + charSpacing * fontDirection;
- x += charWidth;
-
- current.tspan.textContent += character;
- }
- if (vertical) {
- current.y -= x * textHScale;
- } else {
- current.x += x * textHScale;
- }
-
- current.tspan.setAttributeNS(null, 'x',
- current.xcoords.map(pf).join(' '));
- current.tspan.setAttributeNS(null, 'y', pf(-current.y));
- current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
- current.tspan.setAttributeNS(null, 'font-size',
- pf(current.fontSize) + 'px');
- if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {
- current.tspan.setAttributeNS(null, 'font-style', current.fontStyle);
- }
- if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {
- current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight);
- }
- if (current.fillColor !== SVG_DEFAULTS.fillColor) {
- current.tspan.setAttributeNS(null, 'fill', current.fillColor);
- }
-
- current.txtElement.setAttributeNS(null, 'transform',
- pm(current.textMatrix) +
- ' scale(1, -1)' );
- current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve');
- current.txtElement.appendChild(current.tspan);
- current.txtgrp.appendChild(current.txtElement);
-
- this.tgrp.appendChild(current.txtElement);
-
- },
-
- setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) {
- this.setLeading(-y);
- this.moveText(x, y);
- },
-
- addFontStyle: function SVGGraphics_addFontStyle(fontObj) {
- if (!this.cssStyle) {
- this.cssStyle = document.createElementNS(NS, 'svg:style');
- this.cssStyle.setAttributeNS(null, 'type', 'text/css');
- this.defs.appendChild(this.cssStyle);
- }
-
- var url = PDFJS.createObjectURL(fontObj.data, fontObj.mimetype);
- this.cssStyle.textContent +=
- '@font-face { font-family: "' + fontObj.loadedName + '";' +
- ' src: url(' + url + '); }\n';
- },
-
- setFont: function SVGGraphics_setFont(details) {
- var current = this.current;
- var fontObj = this.commonObjs.get(details[0]);
- var size = details[1];
- this.current.font = fontObj;
-
- if (this.embedFonts && fontObj.data &&
- !this.embeddedFonts[fontObj.loadedName]) {
- this.addFontStyle(fontObj);
- this.embeddedFonts[fontObj.loadedName] = fontObj;
- }
-
- current.fontMatrix = (fontObj.fontMatrix ?
- fontObj.fontMatrix : FONT_IDENTITY_MATRIX);
-
- var bold = fontObj.black ? (fontObj.bold ? 'bolder' : 'bold') :
- (fontObj.bold ? 'bold' : 'normal');
- var italic = fontObj.italic ? 'italic' : 'normal';
-
- if (size < 0) {
- size = -size;
- current.fontDirection = -1;
- } else {
- current.fontDirection = 1;
- }
- current.fontSize = size;
- current.fontFamily = fontObj.loadedName;
- current.fontWeight = bold;
- current.fontStyle = italic;
-
- current.tspan = document.createElementNS(NS, 'svg:tspan');
- current.tspan.setAttributeNS(null, 'y', pf(-current.y));
- current.xcoords = [];
- },
-
- endText: function SVGGraphics_endText() {
- if (this.current.pendingClip) {
- this.cgrp.appendChild(this.tgrp);
- this.pgrp.appendChild(this.cgrp);
- } else {
- this.pgrp.appendChild(this.tgrp);
- }
- this.tgrp = document.createElementNS(NS, 'svg:g');
- this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));
- },
-
- // Path properties
- setLineWidth: function SVGGraphics_setLineWidth(width) {
- this.current.lineWidth = width;
- },
- setLineCap: function SVGGraphics_setLineCap(style) {
- this.current.lineCap = LINE_CAP_STYLES[style];
- },
- setLineJoin: function SVGGraphics_setLineJoin(style) {
- this.current.lineJoin = LINE_JOIN_STYLES[style];
- },
- setMiterLimit: function SVGGraphics_setMiterLimit(limit) {
- this.current.miterLimit = limit;
- },
- setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) {
- var color = Util.makeCssRgb(r, g, b);
- this.current.strokeColor = color;
- },
- setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) {
- var color = Util.makeCssRgb(r, g, b);
- this.current.fillColor = color;
- this.current.tspan = document.createElementNS(NS, 'svg:tspan');
- this.current.xcoords = [];
- },
- setDash: function SVGGraphics_setDash(dashArray, dashPhase) {
- this.current.dashArray = dashArray;
- this.current.dashPhase = dashPhase;
- },
-
- constructPath: function SVGGraphics_constructPath(ops, args) {
- var current = this.current;
- var x = current.x, y = current.y;
- current.path = document.createElementNS(NS, 'svg:path');
- var d = [];
- var opLength = ops.length;
-
- for (var i = 0, j = 0; i < opLength; i++) {
- switch (ops[i] | 0) {
- case OPS.rectangle:
- x = args[j++];
- y = args[j++];
- var width = args[j++];
- var height = args[j++];
- var xw = x + width;
- var yh = y + height;
- d.push('M', pf(x), pf(y), 'L', pf(xw) , pf(y), 'L', pf(xw), pf(yh),
- 'L', pf(x), pf(yh), 'Z');
- break;
- case OPS.moveTo:
- x = args[j++];
- y = args[j++];
- d.push('M', pf(x), pf(y));
- break;
- case OPS.lineTo:
- x = args[j++];
- y = args[j++];
- d.push('L', pf(x) , pf(y));
- break;
- case OPS.curveTo:
- x = args[j + 4];
- y = args[j + 5];
- d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]),
- pf(args[j + 3]), pf(x), pf(y));
- j += 6;
- break;
- case OPS.curveTo2:
- x = args[j + 2];
- y = args[j + 3];
- d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]),
- pf(args[j + 2]), pf(args[j + 3]));
- j += 4;
- break;
- case OPS.curveTo3:
- x = args[j + 2];
- y = args[j + 3];
- d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y),
- pf(x), pf(y));
- j += 4;
- break;
- case OPS.closePath:
- d.push('Z');
- break;
- }
- }
- current.path.setAttributeNS(null, 'd', d.join(' '));
- current.path.setAttributeNS(null, 'stroke-miterlimit',
- pf(current.miterLimit));
- current.path.setAttributeNS(null, 'stroke-linecap', current.lineCap);
- current.path.setAttributeNS(null, 'stroke-linejoin', current.lineJoin);
- current.path.setAttributeNS(null, 'stroke-width',
- pf(current.lineWidth) + 'px');
- current.path.setAttributeNS(null, 'stroke-dasharray',
- current.dashArray.map(pf).join(' '));
- current.path.setAttributeNS(null, 'stroke-dashoffset',
- pf(current.dashPhase) + 'px');
- current.path.setAttributeNS(null, 'fill', 'none');
-
- this.tgrp.appendChild(current.path);
- if (current.pendingClip) {
- this.cgrp.appendChild(this.tgrp);
- this.pgrp.appendChild(this.cgrp);
- } else {
- this.pgrp.appendChild(this.tgrp);
- }
- // Saving a reference in current.element so that it can be addressed
- // in 'fill' and 'stroke'
- current.element = current.path;
- current.setCurrentPoint(x, y);
- },
-
- endPath: function SVGGraphics_endPath() {
- var current = this.current;
- if (current.pendingClip) {
- this.cgrp.appendChild(this.tgrp);
- this.pgrp.appendChild(this.cgrp);
- } else {
- this.pgrp.appendChild(this.tgrp);
- }
- this.tgrp = document.createElementNS(NS, 'svg:g');
- this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));
- },
-
- clip: function SVGGraphics_clip(type) {
- var current = this.current;
- // Add current path to clipping path
- current.clipId = 'clippath' + clipCount;
- clipCount++;
- this.clippath = document.createElementNS(NS, 'svg:clipPath');
- this.clippath.setAttributeNS(null, 'id', current.clipId);
- var clipElement = current.element.cloneNode();
- if (type === 'evenodd') {
- clipElement.setAttributeNS(null, 'clip-rule', 'evenodd');
- } else {
- clipElement.setAttributeNS(null, 'clip-rule', 'nonzero');
- }
- this.clippath.setAttributeNS(null, 'transform', pm(this.transformMatrix));
- this.clippath.appendChild(clipElement);
- this.defs.appendChild(this.clippath);
-
- // Create a new group with that attribute
- current.pendingClip = true;
- this.cgrp = document.createElementNS(NS, 'svg:g');
- this.cgrp.setAttributeNS(null, 'clip-path',
- 'url(#' + current.clipId + ')');
- this.pgrp.appendChild(this.cgrp);
- },
-
- closePath: function SVGGraphics_closePath() {
- var current = this.current;
- var d = current.path.getAttributeNS(null, 'd');
- d += 'Z';
- current.path.setAttributeNS(null, 'd', d);
- },
-
- setLeading: function SVGGraphics_setLeading(leading) {
- this.current.leading = -leading;
- },
-
- setTextRise: function SVGGraphics_setTextRise(textRise) {
- this.current.textRise = textRise;
- },
-
- setHScale: function SVGGraphics_setHScale(scale) {
- this.current.textHScale = scale / 100;
- },
-
- setGState: function SVGGraphics_setGState(states) {
- for (var i = 0, ii = states.length; i < ii; i++) {
- var state = states[i];
- var key = state[0];
- var value = state[1];
-
- switch (key) {
- case 'LW':
- this.setLineWidth(value);
- break;
- case 'LC':
- this.setLineCap(value);
- break;
- case 'LJ':
- this.setLineJoin(value);
- break;
- case 'ML':
- this.setMiterLimit(value);
- break;
- case 'D':
- this.setDash(value[0], value[1]);
- break;
- case 'RI':
- break;
- case 'FL':
- break;
- case 'Font':
- this.setFont(value);
- break;
- case 'CA':
- break;
- case 'ca':
- break;
- case 'BM':
- break;
- case 'SMask':
- break;
- }
- }
- },
-
- fill: function SVGGraphics_fill() {
- var current = this.current;
- current.element.setAttributeNS(null, 'fill', current.fillColor);
- },
-
- stroke: function SVGGraphics_stroke() {
- var current = this.current;
- current.element.setAttributeNS(null, 'stroke', current.strokeColor);
- current.element.setAttributeNS(null, 'fill', 'none');
- },
-
- eoFill: function SVGGraphics_eoFill() {
- var current = this.current;
- current.element.setAttributeNS(null, 'fill', current.fillColor);
- current.element.setAttributeNS(null, 'fill-rule', 'evenodd');
- },
-
- fillStroke: function SVGGraphics_fillStroke() {
- // Order is important since stroke wants fill to be none.
- // First stroke, then if fill needed, it will be overwritten.
- this.stroke();
- this.fill();
- },
-
- eoFillStroke: function SVGGraphics_eoFillStroke() {
- this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');
- this.fillStroke();
- },
-
- closeStroke: function SVGGraphics_closeStroke() {
- this.closePath();
- this.stroke();
- },
-
- closeFillStroke: function SVGGraphics_closeFillStroke() {
- this.closePath();
- this.fillStroke();
- },
-
- paintSolidColorImageMask:
- function SVGGraphics_paintSolidColorImageMask() {
- var current = this.current;
- var rect = document.createElementNS(NS, 'svg:rect');
- rect.setAttributeNS(null, 'x', '0');
- rect.setAttributeNS(null, 'y', '0');
- rect.setAttributeNS(null, 'width', '1px');
- rect.setAttributeNS(null, 'height', '1px');
- rect.setAttributeNS(null, 'fill', current.fillColor);
- this.tgrp.appendChild(rect);
- },
-
- paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) {
- var current = this.current;
- var imgObj = this.objs.get(objId);
- var imgEl = document.createElementNS(NS, 'svg:image');
- imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src);
- imgEl.setAttributeNS(null, 'width', imgObj.width + 'px');
- imgEl.setAttributeNS(null, 'height', imgObj.height + 'px');
- imgEl.setAttributeNS(null, 'x', '0');
- imgEl.setAttributeNS(null, 'y', pf(-h));
- imgEl.setAttributeNS(null, 'transform',
- 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')');
-
- this.tgrp.appendChild(imgEl);
- if (current.pendingClip) {
- this.cgrp.appendChild(this.tgrp);
- this.pgrp.appendChild(this.cgrp);
- } else {
- this.pgrp.appendChild(this.tgrp);
- }
- },
-
- paintImageXObject: function SVGGraphics_paintImageXObject(objId) {
- var imgData = this.objs.get(objId);
- if (!imgData) {
- warn('Dependent image isn\'t ready yet');
- return;
- }
- this.paintInlineImageXObject(imgData);
- },
-
- paintInlineImageXObject:
- function SVGGraphics_paintInlineImageXObject(imgData, mask) {
- var current = this.current;
- var width = imgData.width;
- var height = imgData.height;
-
- var imgSrc = convertImgDataToPng(imgData);
- var cliprect = document.createElementNS(NS, 'svg:rect');
- cliprect.setAttributeNS(null, 'x', '0');
- cliprect.setAttributeNS(null, 'y', '0');
- cliprect.setAttributeNS(null, 'width', pf(width));
- cliprect.setAttributeNS(null, 'height', pf(height));
- current.element = cliprect;
- this.clip('nonzero');
- var imgEl = document.createElementNS(NS, 'svg:image');
- imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc);
- imgEl.setAttributeNS(null, 'x', '0');
- imgEl.setAttributeNS(null, 'y', pf(-height));
- imgEl.setAttributeNS(null, 'width', pf(width) + 'px');
- imgEl.setAttributeNS(null, 'height', pf(height) + 'px');
- imgEl.setAttributeNS(null, 'transform',
- 'scale(' + pf(1 / width) + ' ' +
- pf(-1 / height) + ')');
- if (mask) {
- mask.appendChild(imgEl);
- } else {
- this.tgrp.appendChild(imgEl);
- }
- if (current.pendingClip) {
- this.cgrp.appendChild(this.tgrp);
- this.pgrp.appendChild(this.cgrp);
- } else {
- this.pgrp.appendChild(this.tgrp);
- }
- },
-
- paintImageMaskXObject:
- function SVGGraphics_paintImageMaskXObject(imgData) {
- var current = this.current;
- var width = imgData.width;
- var height = imgData.height;
- var fillColor = current.fillColor;
-
- current.maskId = 'mask' + maskCount++;
- var mask = document.createElementNS(NS, 'svg:mask');
- mask.setAttributeNS(null, 'id', current.maskId);
-
- var rect = document.createElementNS(NS, 'svg:rect');
- rect.setAttributeNS(null, 'x', '0');
- rect.setAttributeNS(null, 'y', '0');
- rect.setAttributeNS(null, 'width', pf(width));
- rect.setAttributeNS(null, 'height', pf(height));
- rect.setAttributeNS(null, 'fill', fillColor);
- rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId +')');
- this.defs.appendChild(mask);
- this.tgrp.appendChild(rect);
-
- this.paintInlineImageXObject(imgData, mask);
- },
-
- paintFormXObjectBegin:
- function SVGGraphics_paintFormXObjectBegin(matrix, bbox) {
- this.save();
-
- if (isArray(matrix) && matrix.length === 6) {
- this.transform(matrix[0], matrix[1], matrix[2],
- matrix[3], matrix[4], matrix[5]);
- }
-
- if (isArray(bbox) && bbox.length === 4) {
- var width = bbox[2] - bbox[0];
- var height = bbox[3] - bbox[1];
-
- var cliprect = document.createElementNS(NS, 'svg:rect');
- cliprect.setAttributeNS(null, 'x', bbox[0]);
- cliprect.setAttributeNS(null, 'y', bbox[1]);
- cliprect.setAttributeNS(null, 'width', pf(width));
- cliprect.setAttributeNS(null, 'height', pf(height));
- this.current.element = cliprect;
- this.clip('nonzero');
- this.endPath();
- }
- },
-
- paintFormXObjectEnd:
- function SVGGraphics_paintFormXObjectEnd() {
- this.restore();
- }
- };
- return SVGGraphics;
-})();
-
-PDFJS.SVGGraphics = SVGGraphics;
-
-exports.SVGGraphics = SVGGraphics;
-}));
-
-
-(function (root, factory) {
- {
- factory((root.pdfjsDisplayWebGL = {}), root.pdfjsSharedUtil,
- root.pdfjsDisplayGlobal);
- }
-}(this, function (exports, sharedUtil, displayGlobal) {
-
-var shadow = sharedUtil.shadow;
-var PDFJS = displayGlobal.PDFJS;
-
-var WebGLUtils = (function WebGLUtilsClosure() {
- function loadShader(gl, code, shaderType) {
- var shader = gl.createShader(shaderType);
- gl.shaderSource(shader, code);
- gl.compileShader(shader);
- var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
- if (!compiled) {
- var errorMsg = gl.getShaderInfoLog(shader);
- throw new Error('Error during shader compilation: ' + errorMsg);
- }
- return shader;
- }
- function createVertexShader(gl, code) {
- return loadShader(gl, code, gl.VERTEX_SHADER);
- }
- function createFragmentShader(gl, code) {
- return loadShader(gl, code, gl.FRAGMENT_SHADER);
- }
- function createProgram(gl, shaders) {
- var program = gl.createProgram();
- for (var i = 0, ii = shaders.length; i < ii; ++i) {
- gl.attachShader(program, shaders[i]);
- }
- gl.linkProgram(program);
- var linked = gl.getProgramParameter(program, gl.LINK_STATUS);
- if (!linked) {
- var errorMsg = gl.getProgramInfoLog(program);
- throw new Error('Error during program linking: ' + errorMsg);
- }
- return program;
- }
- function createTexture(gl, image, textureId) {
- gl.activeTexture(textureId);
- var texture = gl.createTexture();
- gl.bindTexture(gl.TEXTURE_2D, texture);
-
- // Set the parameters so we can render any size image.
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
-
- // Upload the image into the texture.
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
- return texture;
- }
-
- var currentGL, currentCanvas;
- function generateGL() {
- if (currentGL) {
- return;
- }
- currentCanvas = document.createElement('canvas');
- currentGL = currentCanvas.getContext('webgl',
- { premultipliedalpha: false });
- }
-
- var smaskVertexShaderCode = '\
- attribute vec2 a_position; \
- attribute vec2 a_texCoord; \
- \
- uniform vec2 u_resolution; \
- \
- varying vec2 v_texCoord; \
- \
- void main() { \
- vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \
- gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \
- \
- v_texCoord = a_texCoord; \
- } ';
-
- var smaskFragmentShaderCode = '\
- precision mediump float; \
- \
- uniform vec4 u_backdrop; \
- uniform int u_subtype; \
- uniform sampler2D u_image; \
- uniform sampler2D u_mask; \
- \
- varying vec2 v_texCoord; \
- \
- void main() { \
- vec4 imageColor = texture2D(u_image, v_texCoord); \
- vec4 maskColor = texture2D(u_mask, v_texCoord); \
- if (u_backdrop.a > 0.0) { \
- maskColor.rgb = maskColor.rgb * maskColor.a + \
- u_backdrop.rgb * (1.0 - maskColor.a); \
- } \
- float lum; \
- if (u_subtype == 0) { \
- lum = maskColor.a; \
- } else { \
- lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \
- maskColor.b * 0.11; \
- } \
- imageColor.a *= lum; \
- imageColor.rgb *= imageColor.a; \
- gl_FragColor = imageColor; \
- } ';
-
- var smaskCache = null;
-
- function initSmaskGL() {
- var canvas, gl;
-
- generateGL();
- canvas = currentCanvas;
- currentCanvas = null;
- gl = currentGL;
- currentGL = null;
-
- // setup a GLSL program
- var vertexShader = createVertexShader(gl, smaskVertexShaderCode);
- var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);
- var program = createProgram(gl, [vertexShader, fragmentShader]);
- gl.useProgram(program);
-
- var cache = {};
- cache.gl = gl;
- cache.canvas = canvas;
- cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
- cache.positionLocation = gl.getAttribLocation(program, 'a_position');
- cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop');
- cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype');
-
- var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');
- var texLayerLocation = gl.getUniformLocation(program, 'u_image');
- var texMaskLocation = gl.getUniformLocation(program, 'u_mask');
-
- // provide texture coordinates for the rectangle.
- var texCoordBuffer = gl.createBuffer();
- gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
- gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
- 0.0, 0.0,
- 1.0, 0.0,
- 0.0, 1.0,
- 0.0, 1.0,
- 1.0, 0.0,
- 1.0, 1.0]), gl.STATIC_DRAW);
- gl.enableVertexAttribArray(texCoordLocation);
- gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
-
- gl.uniform1i(texLayerLocation, 0);
- gl.uniform1i(texMaskLocation, 1);
-
- smaskCache = cache;
- }
-
- function composeSMask(layer, mask, properties) {
- var width = layer.width, height = layer.height;
-
- if (!smaskCache) {
- initSmaskGL();
- }
- var cache = smaskCache,canvas = cache.canvas, gl = cache.gl;
- canvas.width = width;
- canvas.height = height;
- gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
- gl.uniform2f(cache.resolutionLocation, width, height);
-
- if (properties.backdrop) {
- gl.uniform4f(cache.resolutionLocation, properties.backdrop[0],
- properties.backdrop[1], properties.backdrop[2], 1);
- } else {
- gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);
- }
- gl.uniform1i(cache.subtypeLocation,
- properties.subtype === 'Luminosity' ? 1 : 0);
-
- // Create a textures
- var texture = createTexture(gl, layer, gl.TEXTURE0);
- var maskTexture = createTexture(gl, mask, gl.TEXTURE1);
-
-
- // Create a buffer and put a single clipspace rectangle in
- // it (2 triangles)
- var buffer = gl.createBuffer();
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
- gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
- 0, 0,
- width, 0,
- 0, height,
- 0, height,
- width, 0,
- width, height]), gl.STATIC_DRAW);
- gl.enableVertexAttribArray(cache.positionLocation);
- gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
-
- // draw
- gl.clearColor(0, 0, 0, 0);
- gl.enable(gl.BLEND);
- gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
- gl.clear(gl.COLOR_BUFFER_BIT);
-
- gl.drawArrays(gl.TRIANGLES, 0, 6);
-
- gl.flush();
-
- gl.deleteTexture(texture);
- gl.deleteTexture(maskTexture);
- gl.deleteBuffer(buffer);
-
- return canvas;
- }
-
- var figuresVertexShaderCode = '\
- attribute vec2 a_position; \
- attribute vec3 a_color; \
- \
- uniform vec2 u_resolution; \
- uniform vec2 u_scale; \
- uniform vec2 u_offset; \
- \
- varying vec4 v_color; \
- \
- void main() { \
- vec2 position = (a_position + u_offset) * u_scale; \
- vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \
- gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \
- \
- v_color = vec4(a_color / 255.0, 1.0); \
- } ';
-
- var figuresFragmentShaderCode = '\
- precision mediump float; \
- \
- varying vec4 v_color; \
- \
- void main() { \
- gl_FragColor = v_color; \
- } ';
-
- var figuresCache = null;
-
- function initFiguresGL() {
- var canvas, gl;
-
- generateGL();
- canvas = currentCanvas;
- currentCanvas = null;
- gl = currentGL;
- currentGL = null;
-
- // setup a GLSL program
- var vertexShader = createVertexShader(gl, figuresVertexShaderCode);
- var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);
- var program = createProgram(gl, [vertexShader, fragmentShader]);
- gl.useProgram(program);
-
- var cache = {};
- cache.gl = gl;
- cache.canvas = canvas;
- cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
- cache.scaleLocation = gl.getUniformLocation(program, 'u_scale');
- cache.offsetLocation = gl.getUniformLocation(program, 'u_offset');
- cache.positionLocation = gl.getAttribLocation(program, 'a_position');
- cache.colorLocation = gl.getAttribLocation(program, 'a_color');
-
- figuresCache = cache;
- }
-
- function drawFigures(width, height, backgroundColor, figures, context) {
- if (!figuresCache) {
- initFiguresGL();
- }
- var cache = figuresCache, canvas = cache.canvas, gl = cache.gl;
-
- canvas.width = width;
- canvas.height = height;
- gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
- gl.uniform2f(cache.resolutionLocation, width, height);
-
- // count triangle points
- var count = 0;
- var i, ii, rows;
- for (i = 0, ii = figures.length; i < ii; i++) {
- switch (figures[i].type) {
- case 'lattice':
- rows = (figures[i].coords.length / figures[i].verticesPerRow) | 0;
- count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;
- break;
- case 'triangles':
- count += figures[i].coords.length;
- break;
- }
- }
- // transfer data
- var coords = new Float32Array(count * 2);
- var colors = new Uint8Array(count * 3);
- var coordsMap = context.coords, colorsMap = context.colors;
- var pIndex = 0, cIndex = 0;
- for (i = 0, ii = figures.length; i < ii; i++) {
- var figure = figures[i], ps = figure.coords, cs = figure.colors;
- switch (figure.type) {
- case 'lattice':
- var cols = figure.verticesPerRow;
- rows = (ps.length / cols) | 0;
- for (var row = 1; row < rows; row++) {
- var offset = row * cols + 1;
- for (var col = 1; col < cols; col++, offset++) {
- coords[pIndex] = coordsMap[ps[offset - cols - 1]];
- coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];
- coords[pIndex + 2] = coordsMap[ps[offset - cols]];
- coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];
- coords[pIndex + 4] = coordsMap[ps[offset - 1]];
- coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];
- colors[cIndex] = colorsMap[cs[offset - cols - 1]];
- colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];
- colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];
- colors[cIndex + 3] = colorsMap[cs[offset - cols]];
- colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];
- colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];
- colors[cIndex + 6] = colorsMap[cs[offset - 1]];
- colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];
- colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];
-
- coords[pIndex + 6] = coords[pIndex + 2];
- coords[pIndex + 7] = coords[pIndex + 3];
- coords[pIndex + 8] = coords[pIndex + 4];
- coords[pIndex + 9] = coords[pIndex + 5];
- coords[pIndex + 10] = coordsMap[ps[offset]];
- coords[pIndex + 11] = coordsMap[ps[offset] + 1];
- colors[cIndex + 9] = colors[cIndex + 3];
- colors[cIndex + 10] = colors[cIndex + 4];
- colors[cIndex + 11] = colors[cIndex + 5];
- colors[cIndex + 12] = colors[cIndex + 6];
- colors[cIndex + 13] = colors[cIndex + 7];
- colors[cIndex + 14] = colors[cIndex + 8];
- colors[cIndex + 15] = colorsMap[cs[offset]];
- colors[cIndex + 16] = colorsMap[cs[offset] + 1];
- colors[cIndex + 17] = colorsMap[cs[offset] + 2];
- pIndex += 12;
- cIndex += 18;
- }
- }
- break;
- case 'triangles':
- for (var j = 0, jj = ps.length; j < jj; j++) {
- coords[pIndex] = coordsMap[ps[j]];
- coords[pIndex + 1] = coordsMap[ps[j] + 1];
- colors[cIndex] = colorsMap[cs[j]];
- colors[cIndex + 1] = colorsMap[cs[j] + 1];
- colors[cIndex + 2] = colorsMap[cs[j] + 2];
- pIndex += 2;
- cIndex += 3;
- }
- break;
- }
- }
-
- // draw
- if (backgroundColor) {
- gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255,
- backgroundColor[2] / 255, 1.0);
- } else {
- gl.clearColor(0, 0, 0, 0);
- }
- gl.clear(gl.COLOR_BUFFER_BIT);
-
- var coordsBuffer = gl.createBuffer();
- gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);
- gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);
- gl.enableVertexAttribArray(cache.positionLocation);
- gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
-
- var colorsBuffer = gl.createBuffer();
- gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);
- gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
- gl.enableVertexAttribArray(cache.colorLocation);
- gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false,
- 0, 0);
-
- gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);
- gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);
-
- gl.drawArrays(gl.TRIANGLES, 0, count);
-
- gl.flush();
-
- gl.deleteBuffer(coordsBuffer);
- gl.deleteBuffer(colorsBuffer);
-
- return canvas;
- }
-
- function cleanup() {
- if (smaskCache && smaskCache.canvas) {
- smaskCache.canvas.width = 0;
- smaskCache.canvas.height = 0;
- }
- if (figuresCache && figuresCache.canvas) {
- figuresCache.canvas.width = 0;
- figuresCache.canvas.height = 0;
- }
- smaskCache = null;
- figuresCache = null;
- }
-
- return {
- get isEnabled() {
- if (PDFJS.disableWebGL) {
- return false;
- }
- var enabled = false;
- try {
- generateGL();
- enabled = !!currentGL;
- } catch (e) { }
- return shadow(this, 'isEnabled', enabled);
- },
- composeSMask: composeSMask,
- drawFigures: drawFigures,
- clear: cleanup
- };
-})();
-
-exports.WebGLUtils = WebGLUtils;
-}));
-
-
-(function (root, factory) {
- {
- factory((root.pdfjsDisplayAnnotationLayer = {}), root.pdfjsSharedUtil,
- root.pdfjsDisplayDOMUtils);
- }
-}(this, function (exports, sharedUtil, displayDOMUtils) {
-
-var AnnotationBorderStyleType = sharedUtil.AnnotationBorderStyleType;
-var AnnotationType = sharedUtil.AnnotationType;
-var Util = sharedUtil.Util;
-var addLinkAttributes = displayDOMUtils.addLinkAttributes;
-var getFilenameFromUrl = displayDOMUtils.getFilenameFromUrl;
-var warn = sharedUtil.warn;
-var CustomStyle = displayDOMUtils.CustomStyle;
-
-/**
- * @typedef {Object} AnnotationElementParameters
- * @property {Object} data
- * @property {HTMLDivElement} layer
- * @property {PDFPage} page
- * @property {PageViewport} viewport
- * @property {IPDFLinkService} linkService
- * @property {DownloadManager} downloadManager
- */
-
-/**
- * @class
- * @alias AnnotationElementFactory
- */
-function AnnotationElementFactory() {}
-AnnotationElementFactory.prototype =
- /** @lends AnnotationElementFactory.prototype */ {
- /**
- * @param {AnnotationElementParameters} parameters
- * @returns {AnnotationElement}
- */
- create: function AnnotationElementFactory_create(parameters) {
- var subtype = parameters.data.annotationType;
-
- switch (subtype) {
- case AnnotationType.LINK:
- return new LinkAnnotationElement(parameters);
-
- case AnnotationType.TEXT:
- return new TextAnnotationElement(parameters);
-
- case AnnotationType.WIDGET:
- return new WidgetAnnotationElement(parameters);
-
- case AnnotationType.POPUP:
- return new PopupAnnotationElement(parameters);
-
- case AnnotationType.HIGHLIGHT:
- return new HighlightAnnotationElement(parameters);
-
- case AnnotationType.UNDERLINE:
- return new UnderlineAnnotationElement(parameters);
-
- case AnnotationType.SQUIGGLY:
- return new SquigglyAnnotationElement(parameters);
-
- case AnnotationType.STRIKEOUT:
- return new StrikeOutAnnotationElement(parameters);
-
- case AnnotationType.FILEATTACHMENT:
- return new FileAttachmentAnnotationElement(parameters);
-
- default:
- return new AnnotationElement(parameters);
- }
- }
-};
-
-/**
- * @class
- * @alias AnnotationElement
- */
-var AnnotationElement = (function AnnotationElementClosure() {
- function AnnotationElement(parameters, isRenderable) {
- this.isRenderable = isRenderable || false;
- this.data = parameters.data;
- this.layer = parameters.layer;
- this.page = parameters.page;
- this.viewport = parameters.viewport;
- this.linkService = parameters.linkService;
- this.downloadManager = parameters.downloadManager;
-
- if (isRenderable) {
- this.container = this._createContainer();
- }
- }
-
- AnnotationElement.prototype = /** @lends AnnotationElement.prototype */ {
- /**
- * Create an empty container for the annotation's HTML element.
- *
- * @private
- * @memberof AnnotationElement
- * @returns {HTMLSectionElement}
- */
- _createContainer: function AnnotationElement_createContainer() {
- var data = this.data, page = this.page, viewport = this.viewport;
- var container = document.createElement('section');
- var width = data.rect[2] - data.rect[0];
- var height = data.rect[3] - data.rect[1];
-
- container.setAttribute('data-annotation-id', data.id);
-
- // Do *not* modify `data.rect`, since that will corrupt the annotation
- // position on subsequent calls to `_createContainer` (see issue 6804).
- var rect = Util.normalizeRect([
- data.rect[0],
- page.view[3] - data.rect[1] + page.view[1],
- data.rect[2],
- page.view[3] - data.rect[3] + page.view[1]
- ]);
-
- CustomStyle.setProp('transform', container,
- 'matrix(' + viewport.transform.join(',') + ')');
- CustomStyle.setProp('transformOrigin', container,
- -rect[0] + 'px ' + -rect[1] + 'px');
-
- if (data.borderStyle.width > 0) {
- container.style.borderWidth = data.borderStyle.width + 'px';
- if (data.borderStyle.style !== AnnotationBorderStyleType.UNDERLINE) {
- // Underline styles only have a bottom border, so we do not need
- // to adjust for all borders. This yields a similar result as
- // Adobe Acrobat/Reader.
- width = width - 2 * data.borderStyle.width;
- height = height - 2 * data.borderStyle.width;
- }
-
- var horizontalRadius = data.borderStyle.horizontalCornerRadius;
- var verticalRadius = data.borderStyle.verticalCornerRadius;
- if (horizontalRadius > 0 || verticalRadius > 0) {
- var radius = horizontalRadius + 'px / ' + verticalRadius + 'px';
- CustomStyle.setProp('borderRadius', container, radius);
- }
-
- switch (data.borderStyle.style) {
- case AnnotationBorderStyleType.SOLID:
- container.style.borderStyle = 'solid';
- break;
-
- case AnnotationBorderStyleType.DASHED:
- container.style.borderStyle = 'dashed';
- break;
-
- case AnnotationBorderStyleType.BEVELED:
- warn('Unimplemented border style: beveled');
- break;
-
- case AnnotationBorderStyleType.INSET:
- warn('Unimplemented border style: inset');
- break;
-
- case AnnotationBorderStyleType.UNDERLINE:
- container.style.borderBottomStyle = 'solid';
- break;
-
- default:
- break;
- }
-
- if (data.color) {
- container.style.borderColor =
- Util.makeCssRgb(data.color[0] | 0,
- data.color[1] | 0,
- data.color[2] | 0);
- } else {
- // Transparent (invisible) border, so do not draw it at all.
- container.style.borderWidth = 0;
- }
- }
-
- container.style.left = rect[0] + 'px';
- container.style.top = rect[1] + 'px';
-
- container.style.width = width + 'px';
- container.style.height = height + 'px';
-
- return container;
- },
-
- /**
- * Create a popup for the annotation's HTML element. This is used for
- * annotations that do not have a Popup entry in the dictionary, but
- * are of a type that works with popups (such as Highlight annotations).
- *
- * @private
- * @param {HTMLSectionElement} container
- * @param {HTMLDivElement|HTMLImageElement|null} trigger
- * @param {Object} data
- * @memberof AnnotationElement
- */
- _createPopup:
- function AnnotationElement_createPopup(container, trigger, data) {
- // If no trigger element is specified, create it.
- if (!trigger) {
- trigger = document.createElement('div');
- trigger.style.height = container.style.height;
- trigger.style.width = container.style.width;
- container.appendChild(trigger);
- }
-
- var popupElement = new PopupElement({
- container: container,
- trigger: trigger,
- color: data.color,
- title: data.title,
- contents: data.contents,
- hideWrapper: true
- });
- var popup = popupElement.render();
-
- // Position the popup next to the annotation's container.
- popup.style.left = container.style.width;
-
- container.appendChild(popup);
- },
-
- /**
- * Render the annotation's HTML element in the empty container.
- *
- * @public
- * @memberof AnnotationElement
- */
- render: function AnnotationElement_render() {
- throw new Error('Abstract method AnnotationElement.render called');
- }
- };
-
- return AnnotationElement;
-})();
-
-/**
- * @class
- * @alias LinkAnnotationElement
- */
-var LinkAnnotationElement = (function LinkAnnotationElementClosure() {
- function LinkAnnotationElement(parameters) {
- AnnotationElement.call(this, parameters, true);
- }
-
- Util.inherit(LinkAnnotationElement, AnnotationElement, {
- /**
- * Render the link annotation's HTML element in the empty container.
- *
- * @public
- * @memberof LinkAnnotationElement
- * @returns {HTMLSectionElement}
- */
- render: function LinkAnnotationElement_render() {
- this.container.className = 'linkAnnotation';
-
- var link = document.createElement('a');
- addLinkAttributes(link, { url: this.data.url });
-
- if (!this.data.url) {
- if (this.data.action) {
- this._bindNamedAction(link, this.data.action);
- } else {
- this._bindLink(link, ('dest' in this.data) ? this.data.dest : null);
- }
- }
-
- this.container.appendChild(link);
- return this.container;
- },
-
- /**
- * Bind internal links to the link element.
- *
- * @private
- * @param {Object} link
- * @param {Object} destination
- * @memberof LinkAnnotationElement
- */
- _bindLink: function LinkAnnotationElement_bindLink(link, destination) {
- var self = this;
-
- link.href = this.linkService.getDestinationHash(destination);
- link.onclick = function() {
- if (destination) {
- self.linkService.navigateTo(destination);
- }
- return false;
+}
+exports.NodeCanvasFactory = NodeCanvasFactory;
+class NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {
+ _fetchData(url, compressionType) {
+ return fetchData(url).then(data => {
+ return {
+ cMapData: data,
+ compressionType
};
- if (destination) {
- link.className = 'internalLink';
- }
- },
-
- /**
- * Bind named actions to the link element.
- *
- * @private
- * @param {Object} link
- * @param {Object} action
- * @memberof LinkAnnotationElement
- */
- _bindNamedAction:
- function LinkAnnotationElement_bindNamedAction(link, action) {
- var self = this;
-
- link.href = this.linkService.getAnchorUrl('');
- link.onclick = function() {
- self.linkService.executeNamedAction(action);
- return false;
- };
- link.className = 'internalLink';
- }
- });
-
- return LinkAnnotationElement;
-})();
-
-/**
- * @class
- * @alias TextAnnotationElement
- */
-var TextAnnotationElement = (function TextAnnotationElementClosure() {
- function TextAnnotationElement(parameters) {
- var isRenderable = !!(parameters.data.hasPopup ||
- parameters.data.title || parameters.data.contents);
- AnnotationElement.call(this, parameters, isRenderable);
- }
-
- Util.inherit(TextAnnotationElement, AnnotationElement, {
- /**
- * Render the text annotation's HTML element in the empty container.
- *
- * @public
- * @memberof TextAnnotationElement
- * @returns {HTMLSectionElement}
- */
- render: function TextAnnotationElement_render() {
- this.container.className = 'textAnnotation';
-
- var image = document.createElement('img');
- image.style.height = this.container.style.height;
- image.style.width = this.container.style.width;
- image.src = PDFJS.imageResourcesPath + 'annotation-' +
- this.data.name.toLowerCase() + '.svg';
- image.alt = '[{{type}} Annotation]';
- image.dataset.l10nId = 'text_annotation_type';
- image.dataset.l10nArgs = JSON.stringify({type: this.data.name});
-
- if (!this.data.hasPopup) {
- this._createPopup(this.container, image, this.data);
- }
-
- this.container.appendChild(image);
- return this.container;
- }
- });
-
- return TextAnnotationElement;
-})();
-
-/**
- * @class
- * @alias WidgetAnnotationElement
- */
-var WidgetAnnotationElement = (function WidgetAnnotationElementClosure() {
- function WidgetAnnotationElement(parameters) {
- var isRenderable = !parameters.data.hasAppearance &&
- !!parameters.data.fieldValue;
- AnnotationElement.call(this, parameters, isRenderable);
- }
-
- Util.inherit(WidgetAnnotationElement, AnnotationElement, {
- /**
- * Render the widget annotation's HTML element in the empty container.
- *
- * @public
- * @memberof WidgetAnnotationElement
- * @returns {HTMLSectionElement}
- */
- render: function WidgetAnnotationElement_render() {
- var content = document.createElement('div');
- content.textContent = this.data.fieldValue;
- var textAlignment = this.data.textAlignment;
- content.style.textAlign = ['left', 'center', 'right'][textAlignment];
- content.style.verticalAlign = 'middle';
- content.style.display = 'table-cell';
-
- var font = (this.data.fontRefName ?
- this.page.commonObjs.getData(this.data.fontRefName) : null);
- this._setTextStyle(content, font);
-
- this.container.appendChild(content);
- return this.container;
- },
-
- /**
- * Apply text styles to the text in the element.
- *
- * @private
- * @param {HTMLDivElement} element
- * @param {Object} font
- * @memberof WidgetAnnotationElement
- */
- _setTextStyle:
- function WidgetAnnotationElement_setTextStyle(element, font) {
- // TODO: This duplicates some of the logic in CanvasGraphics.setFont().
- var style = element.style;
- style.fontSize = this.data.fontSize + 'px';
- style.direction = (this.data.fontDirection < 0 ? 'rtl': 'ltr');
-
- if (!font) {
- return;
- }
-
- style.fontWeight = (font.black ?
- (font.bold ? '900' : 'bold') :
- (font.bold ? 'bold' : 'normal'));
- style.fontStyle = (font.italic ? 'italic' : 'normal');
-
- // Use a reasonable default font if the font doesn't specify a fallback.
- var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : '';
- var fallbackName = font.fallbackName || 'Helvetica, sans-serif';
- style.fontFamily = fontFamily + fallbackName;
- }
- });
-
- return WidgetAnnotationElement;
-})();
-
-/**
- * @class
- * @alias PopupAnnotationElement
- */
-var PopupAnnotationElement = (function PopupAnnotationElementClosure() {
- function PopupAnnotationElement(parameters) {
- var isRenderable = !!(parameters.data.title || parameters.data.contents);
- AnnotationElement.call(this, parameters, isRenderable);
- }
-
- Util.inherit(PopupAnnotationElement, AnnotationElement, {
- /**
- * Render the popup annotation's HTML element in the empty container.
- *
- * @public
- * @memberof PopupAnnotationElement
- * @returns {HTMLSectionElement}
- */
- render: function PopupAnnotationElement_render() {
- this.container.className = 'popupAnnotation';
-
- var selector = '[data-annotation-id="' + this.data.parentId + '"]';
- var parentElement = this.layer.querySelector(selector);
- if (!parentElement) {
- return this.container;
- }
-
- var popup = new PopupElement({
- container: this.container,
- trigger: parentElement,
- color: this.data.color,
- title: this.data.title,
- contents: this.data.contents
- });
-
- // Position the popup next to the parent annotation's container.
- // PDF viewers ignore a popup annotation's rectangle.
- var parentLeft = parseFloat(parentElement.style.left);
- var parentWidth = parseFloat(parentElement.style.width);
- CustomStyle.setProp('transformOrigin', this.container,
- -(parentLeft + parentWidth) + 'px -' +
- parentElement.style.top);
- this.container.style.left = (parentLeft + parentWidth) + 'px';
-
- this.container.appendChild(popup.render());
- return this.container;
- }
- });
-
- return PopupAnnotationElement;
-})();
-
-/**
- * @class
- * @alias PopupElement
- */
-var PopupElement = (function PopupElementClosure() {
- var BACKGROUND_ENLIGHT = 0.7;
-
- function PopupElement(parameters) {
- this.container = parameters.container;
- this.trigger = parameters.trigger;
- this.color = parameters.color;
- this.title = parameters.title;
- this.contents = parameters.contents;
- this.hideWrapper = parameters.hideWrapper || false;
-
- this.pinned = false;
- }
-
- PopupElement.prototype = /** @lends PopupElement.prototype */ {
- /**
- * Render the popup's HTML element.
- *
- * @public
- * @memberof PopupElement
- * @returns {HTMLSectionElement}
- */
- render: function PopupElement_render() {
- var wrapper = document.createElement('div');
- wrapper.className = 'popupWrapper';
-
- // For Popup annotations we hide the entire section because it contains
- // only the popup. However, for Text annotations without a separate Popup
- // annotation, we cannot hide the entire container as the image would
- // disappear too. In that special case, hiding the wrapper suffices.
- this.hideElement = (this.hideWrapper ? wrapper : this.container);
- this.hideElement.setAttribute('hidden', true);
-
- var popup = document.createElement('div');
- popup.className = 'popup';
-
- var color = this.color;
- if (color) {
- // Enlighten the color.
- var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];
- var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];
- var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];
- popup.style.backgroundColor = Util.makeCssRgb(r | 0, g | 0, b | 0);
- }
-
- var contents = this._formatContents(this.contents);
- var title = document.createElement('h1');
- title.textContent = this.title;
-
- // Attach the event listeners to the trigger element.
- this.trigger.addEventListener('click', this._toggle.bind(this));
- this.trigger.addEventListener('mouseover', this._show.bind(this, false));
- this.trigger.addEventListener('mouseout', this._hide.bind(this, false));
- popup.addEventListener('click', this._hide.bind(this, true));
-
- popup.appendChild(title);
- popup.appendChild(contents);
- wrapper.appendChild(popup);
- return wrapper;
- },
-
- /**
- * Format the contents of the popup by adding newlines where necessary.
- *
- * @private
- * @param {string} contents
- * @memberof PopupElement
- * @returns {HTMLParagraphElement}
- */
- _formatContents: function PopupElement_formatContents(contents) {
- var p = document.createElement('p');
- var lines = contents.split(/(?:\r\n?|\n)/);
- for (var i = 0, ii = lines.length; i < ii; ++i) {
- var line = lines[i];
- p.appendChild(document.createTextNode(line));
- if (i < (ii - 1)) {
- p.appendChild(document.createElement('br'));
- }
- }
- return p;
- },
-
- /**
- * Toggle the visibility of the popup.
- *
- * @private
- * @memberof PopupElement
- */
- _toggle: function PopupElement_toggle() {
- if (this.pinned) {
- this._hide(true);
- } else {
- this._show(true);
- }
- },
-
- /**
- * Show the popup.
- *
- * @private
- * @param {boolean} pin
- * @memberof PopupElement
- */
- _show: function PopupElement_show(pin) {
- if (pin) {
- this.pinned = true;
- }
- if (this.hideElement.hasAttribute('hidden')) {
- this.hideElement.removeAttribute('hidden');
- this.container.style.zIndex += 1;
- }
- },
-
- /**
- * Hide the popup.
- *
- * @private
- * @param {boolean} unpin
- * @memberof PopupElement
- */
- _hide: function PopupElement_hide(unpin) {
- if (unpin) {
- this.pinned = false;
- }
- if (!this.hideElement.hasAttribute('hidden') && !this.pinned) {
- this.hideElement.setAttribute('hidden', true);
- this.container.style.zIndex -= 1;
- }
- }
- };
-
- return PopupElement;
-})();
-
-/**
- * @class
- * @alias HighlightAnnotationElement
- */
-var HighlightAnnotationElement = (
- function HighlightAnnotationElementClosure() {
- function HighlightAnnotationElement(parameters) {
- var isRenderable = !!(parameters.data.hasPopup ||
- parameters.data.title || parameters.data.contents);
- AnnotationElement.call(this, parameters, isRenderable);
- }
-
- Util.inherit(HighlightAnnotationElement, AnnotationElement, {
- /**
- * Render the highlight annotation's HTML element in the empty container.
- *
- * @public
- * @memberof HighlightAnnotationElement
- * @returns {HTMLSectionElement}
- */
- render: function HighlightAnnotationElement_render() {
- this.container.className = 'highlightAnnotation';
-
- if (!this.data.hasPopup) {
- this._createPopup(this.container, null, this.data);
- }
-
- return this.container;
- }
- });
-
- return HighlightAnnotationElement;
-})();
-
-/**
- * @class
- * @alias UnderlineAnnotationElement
- */
-var UnderlineAnnotationElement = (
- function UnderlineAnnotationElementClosure() {
- function UnderlineAnnotationElement(parameters) {
- var isRenderable = !!(parameters.data.hasPopup ||
- parameters.data.title || parameters.data.contents);
- AnnotationElement.call(this, parameters, isRenderable);
- }
-
- Util.inherit(UnderlineAnnotationElement, AnnotationElement, {
- /**
- * Render the underline annotation's HTML element in the empty container.
- *
- * @public
- * @memberof UnderlineAnnotationElement
- * @returns {HTMLSectionElement}
- */
- render: function UnderlineAnnotationElement_render() {
- this.container.className = 'underlineAnnotation';
-
- if (!this.data.hasPopup) {
- this._createPopup(this.container, null, this.data);
- }
-
- return this.container;
- }
- });
-
- return UnderlineAnnotationElement;
-})();
-
-/**
- * @class
- * @alias SquigglyAnnotationElement
- */
-var SquigglyAnnotationElement = (function SquigglyAnnotationElementClosure() {
- function SquigglyAnnotationElement(parameters) {
- var isRenderable = !!(parameters.data.hasPopup ||
- parameters.data.title || parameters.data.contents);
- AnnotationElement.call(this, parameters, isRenderable);
- }
-
- Util.inherit(SquigglyAnnotationElement, AnnotationElement, {
- /**
- * Render the squiggly annotation's HTML element in the empty container.
- *
- * @public
- * @memberof SquigglyAnnotationElement
- * @returns {HTMLSectionElement}
- */
- render: function SquigglyAnnotationElement_render() {
- this.container.className = 'squigglyAnnotation';
-
- if (!this.data.hasPopup) {
- this._createPopup(this.container, null, this.data);
- }
-
- return this.container;
- }
- });
-
- return SquigglyAnnotationElement;
-})();
-
-/**
- * @class
- * @alias StrikeOutAnnotationElement
- */
-var StrikeOutAnnotationElement = (
- function StrikeOutAnnotationElementClosure() {
- function StrikeOutAnnotationElement(parameters) {
- var isRenderable = !!(parameters.data.hasPopup ||
- parameters.data.title || parameters.data.contents);
- AnnotationElement.call(this, parameters, isRenderable);
- }
-
- Util.inherit(StrikeOutAnnotationElement, AnnotationElement, {
- /**
- * Render the strikeout annotation's HTML element in the empty container.
- *
- * @public
- * @memberof StrikeOutAnnotationElement
- * @returns {HTMLSectionElement}
- */
- render: function StrikeOutAnnotationElement_render() {
- this.container.className = 'strikeoutAnnotation';
-
- if (!this.data.hasPopup) {
- this._createPopup(this.container, null, this.data);
- }
-
- return this.container;
- }
- });
-
- return StrikeOutAnnotationElement;
-})();
-
-/**
- * @class
- * @alias FileAttachmentAnnotationElement
- */
-var FileAttachmentAnnotationElement = (
- function FileAttachmentAnnotationElementClosure() {
- function FileAttachmentAnnotationElement(parameters) {
- AnnotationElement.call(this, parameters, true);
-
- this.filename = getFilenameFromUrl(parameters.data.file.filename);
- this.content = parameters.data.file.content;
- }
-
- Util.inherit(FileAttachmentAnnotationElement, AnnotationElement, {
- /**
- * Render the file attachment annotation's HTML element in the empty
- * container.
- *
- * @public
- * @memberof FileAttachmentAnnotationElement
- * @returns {HTMLSectionElement}
- */
- render: function FileAttachmentAnnotationElement_render() {
- this.container.className = 'fileAttachmentAnnotation';
-
- var trigger = document.createElement('div');
- trigger.style.height = this.container.style.height;
- trigger.style.width = this.container.style.width;
- trigger.addEventListener('dblclick', this._download.bind(this));
-
- if (!this.data.hasPopup && (this.data.title || this.data.contents)) {
- this._createPopup(this.container, trigger, this.data);
- }
-
- this.container.appendChild(trigger);
- return this.container;
- },
-
- /**
- * Download the file attachment associated with this annotation.
- *
- * @private
- * @memberof FileAttachmentAnnotationElement
- */
- _download: function FileAttachmentAnnotationElement_download() {
- if (!this.downloadManager) {
- warn('Download cannot be started due to unavailable download manager');
- return;
- }
- this.downloadManager.downloadData(this.content, this.filename, '');
- }
- });
-
- return FileAttachmentAnnotationElement;
-})();
-
-/**
- * @typedef {Object} AnnotationLayerParameters
- * @property {PageViewport} viewport
- * @property {HTMLDivElement} div
- * @property {Array} annotations
- * @property {PDFPage} page
- * @property {IPDFLinkService} linkService
- */
-
-/**
- * @class
- * @alias AnnotationLayer
- */
-var AnnotationLayer = (function AnnotationLayerClosure() {
- return {
- /**
- * Render a new annotation layer with all annotation elements.
- *
- * @public
- * @param {AnnotationLayerParameters} parameters
- * @memberof AnnotationLayer
- */
- render: function AnnotationLayer_render(parameters) {
- var annotationElementFactory = new AnnotationElementFactory();
-
- for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {
- var data = parameters.annotations[i];
- if (!data) {
- continue;
- }
-
- var properties = {
- data: data,
- layer: parameters.div,
- page: parameters.page,
- viewport: parameters.viewport,
- linkService: parameters.linkService,
- downloadManager: parameters.downloadManager
- };
- var element = annotationElementFactory.create(properties);
- if (element.isRenderable) {
- parameters.div.appendChild(element.render());
- }
- }
- },
-
- /**
- * Update the annotation elements on existing annotation layer.
- *
- * @public
- * @param {AnnotationLayerParameters} parameters
- * @memberof AnnotationLayer
- */
- update: function AnnotationLayer_update(parameters) {
- for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {
- var data = parameters.annotations[i];
- var element = parameters.div.querySelector(
- '[data-annotation-id="' + data.id + '"]');
- if (element) {
- CustomStyle.setProp('transform', element,
- 'matrix(' + parameters.viewport.transform.join(',') + ')');
- }
- }
- parameters.div.removeAttribute('hidden');
- }
- };
-})();
-
-PDFJS.AnnotationLayer = AnnotationLayer;
-
-exports.AnnotationLayer = AnnotationLayer;
-}));
-
-
-(function (root, factory) {
- {
- factory((root.pdfjsDisplayPatternHelper = {}), root.pdfjsSharedUtil,
- root.pdfjsDisplayWebGL);
- }
-}(this, function (exports, sharedUtil, displayWebGL) {
-
-var Util = sharedUtil.Util;
-var info = sharedUtil.info;
-var isArray = sharedUtil.isArray;
-var error = sharedUtil.error;
-var WebGLUtils = displayWebGL.WebGLUtils;
-
-var ShadingIRs = {};
-
-ShadingIRs.RadialAxial = {
- fromIR: function RadialAxial_fromIR(raw) {
- var type = raw[1];
- var colorStops = raw[2];
- var p0 = raw[3];
- var p1 = raw[4];
- var r0 = raw[5];
- var r1 = raw[6];
- return {
- type: 'Pattern',
- getPattern: function RadialAxial_getPattern(ctx) {
- var grad;
- if (type === 'axial') {
- grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);
- } else if (type === 'radial') {
- grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);
- }
-
- for (var i = 0, ii = colorStops.length; i < ii; ++i) {
- var c = colorStops[i];
- grad.addColorStop(c[0], c[1]);
- }
- return grad;
- }
- };
- }
-};
-
-var createMeshCanvas = (function createMeshCanvasClosure() {
- function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {
- // Very basic Gouraud-shaded triangle rasterization algorithm.
- var coords = context.coords, colors = context.colors;
- var bytes = data.data, rowSize = data.width * 4;
- var tmp;
- if (coords[p1 + 1] > coords[p2 + 1]) {
- tmp = p1; p1 = p2; p2 = tmp; tmp = c1; c1 = c2; c2 = tmp;
- }
- if (coords[p2 + 1] > coords[p3 + 1]) {
- tmp = p2; p2 = p3; p3 = tmp; tmp = c2; c2 = c3; c3 = tmp;
- }
- if (coords[p1 + 1] > coords[p2 + 1]) {
- tmp = p1; p1 = p2; p2 = tmp; tmp = c1; c1 = c2; c2 = tmp;
- }
- var x1 = (coords[p1] + context.offsetX) * context.scaleX;
- var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;
- var x2 = (coords[p2] + context.offsetX) * context.scaleX;
- var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;
- var x3 = (coords[p3] + context.offsetX) * context.scaleX;
- var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;
- if (y1 >= y3) {
- return;
- }
- var c1r = colors[c1], c1g = colors[c1 + 1], c1b = colors[c1 + 2];
- var c2r = colors[c2], c2g = colors[c2 + 1], c2b = colors[c2 + 2];
- var c3r = colors[c3], c3g = colors[c3 + 1], c3b = colors[c3 + 2];
-
- var minY = Math.round(y1), maxY = Math.round(y3);
- var xa, car, cag, cab;
- var xb, cbr, cbg, cbb;
- var k;
- for (var y = minY; y <= maxY; y++) {
- if (y < y2) {
- k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);
- xa = x1 - (x1 - x2) * k;
- car = c1r - (c1r - c2r) * k;
- cag = c1g - (c1g - c2g) * k;
- cab = c1b - (c1b - c2b) * k;
- } else {
- k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3);
- xa = x2 - (x2 - x3) * k;
- car = c2r - (c2r - c3r) * k;
- cag = c2g - (c2g - c3g) * k;
- cab = c2b - (c2b - c3b) * k;
- }
- k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);
- xb = x1 - (x1 - x3) * k;
- cbr = c1r - (c1r - c3r) * k;
- cbg = c1g - (c1g - c3g) * k;
- cbb = c1b - (c1b - c3b) * k;
- var x1_ = Math.round(Math.min(xa, xb));
- var x2_ = Math.round(Math.max(xa, xb));
- var j = rowSize * y + x1_ * 4;
- for (var x = x1_; x <= x2_; x++) {
- k = (xa - x) / (xa - xb);
- k = k < 0 ? 0 : k > 1 ? 1 : k;
- bytes[j++] = (car - (car - cbr) * k) | 0;
- bytes[j++] = (cag - (cag - cbg) * k) | 0;
- bytes[j++] = (cab - (cab - cbb) * k) | 0;
- bytes[j++] = 255;
- }
- }
- }
-
- function drawFigure(data, figure, context) {
- var ps = figure.coords;
- var cs = figure.colors;
- var i, ii;
- switch (figure.type) {
- case 'lattice':
- var verticesPerRow = figure.verticesPerRow;
- var rows = Math.floor(ps.length / verticesPerRow) - 1;
- var cols = verticesPerRow - 1;
- for (i = 0; i < rows; i++) {
- var q = i * verticesPerRow;
- for (var j = 0; j < cols; j++, q++) {
- drawTriangle(data, context,
- ps[q], ps[q + 1], ps[q + verticesPerRow],
- cs[q], cs[q + 1], cs[q + verticesPerRow]);
- drawTriangle(data, context,
- ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow],
- cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);
- }
- }
- break;
- case 'triangles':
- for (i = 0, ii = ps.length; i < ii; i += 3) {
- drawTriangle(data, context,
- ps[i], ps[i + 1], ps[i + 2],
- cs[i], cs[i + 1], cs[i + 2]);
- }
- break;
- default:
- error('illigal figure');
- break;
- }
- }
-
- function createMeshCanvas(bounds, combinesScale, coords, colors, figures,
- backgroundColor, cachedCanvases) {
- // we will increase scale on some weird factor to let antialiasing take
- // care of "rough" edges
- var EXPECTED_SCALE = 1.1;
- // MAX_PATTERN_SIZE is used to avoid OOM situation.
- var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough
-
- var offsetX = Math.floor(bounds[0]);
- var offsetY = Math.floor(bounds[1]);
- var boundsWidth = Math.ceil(bounds[2]) - offsetX;
- var boundsHeight = Math.ceil(bounds[3]) - offsetY;
-
- var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] *
- EXPECTED_SCALE)), MAX_PATTERN_SIZE);
- var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] *
- EXPECTED_SCALE)), MAX_PATTERN_SIZE);
- var scaleX = boundsWidth / width;
- var scaleY = boundsHeight / height;
-
- var context = {
- coords: coords,
- colors: colors,
- offsetX: -offsetX,
- offsetY: -offsetY,
- scaleX: 1 / scaleX,
- scaleY: 1 / scaleY
- };
-
- var canvas, tmpCanvas, i, ii;
- if (WebGLUtils.isEnabled) {
- canvas = WebGLUtils.drawFigures(width, height, backgroundColor,
- figures, context);
-
- // https://bugzilla.mozilla.org/show_bug.cgi?id=972126
- tmpCanvas = cachedCanvases.getCanvas('mesh', width, height, false);
- tmpCanvas.context.drawImage(canvas, 0, 0);
- canvas = tmpCanvas.canvas;
- } else {
- tmpCanvas = cachedCanvases.getCanvas('mesh', width, height, false);
- var tmpCtx = tmpCanvas.context;
-
- var data = tmpCtx.createImageData(width, height);
- if (backgroundColor) {
- var bytes = data.data;
- for (i = 0, ii = bytes.length; i < ii; i += 4) {
- bytes[i] = backgroundColor[0];
- bytes[i + 1] = backgroundColor[1];
- bytes[i + 2] = backgroundColor[2];
- bytes[i + 3] = 255;
- }
- }
- for (i = 0; i < figures.length; i++) {
- drawFigure(data, figures[i], context);
- }
- tmpCtx.putImageData(data, 0, 0);
- canvas = tmpCanvas.canvas;
- }
-
- return {canvas: canvas, offsetX: offsetX, offsetY: offsetY,
- scaleX: scaleX, scaleY: scaleY};
- }
- return createMeshCanvas;
-})();
-
-ShadingIRs.Mesh = {
- fromIR: function Mesh_fromIR(raw) {
- //var type = raw[1];
- var coords = raw[2];
- var colors = raw[3];
- var figures = raw[4];
- var bounds = raw[5];
- var matrix = raw[6];
- //var bbox = raw[7];
- var background = raw[8];
- return {
- type: 'Pattern',
- getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {
- var scale;
- if (shadingFill) {
- scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);
- } else {
- // Obtain scale from matrix and current transformation matrix.
- scale = Util.singularValueDecompose2dScale(owner.baseTransform);
- if (matrix) {
- var matrixScale = Util.singularValueDecompose2dScale(matrix);
- scale = [scale[0] * matrixScale[0],
- scale[1] * matrixScale[1]];
- }
- }
-
-
- // Rasterizing on the main thread since sending/queue large canvases
- // might cause OOM.
- var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords,
- colors, figures, shadingFill ? null : background,
- owner.cachedCanvases);
-
- if (!shadingFill) {
- ctx.setTransform.apply(ctx, owner.baseTransform);
- if (matrix) {
- ctx.transform.apply(ctx, matrix);
- }
- }
-
- ctx.translate(temporaryPatternCanvas.offsetX,
- temporaryPatternCanvas.offsetY);
- ctx.scale(temporaryPatternCanvas.scaleX,
- temporaryPatternCanvas.scaleY);
-
- return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');
- }
- };
- }
-};
-
-ShadingIRs.Dummy = {
- fromIR: function Dummy_fromIR() {
- return {
- type: 'Pattern',
- getPattern: function Dummy_fromIR_getPattern() {
- return 'hotpink';
- }
- };
- }
-};
-
-function getShadingPatternFromIR(raw) {
- var shadingIR = ShadingIRs[raw[0]];
- if (!shadingIR) {
- error('Unknown IR type: ' + raw[0]);
- }
- return shadingIR.fromIR(raw);
-}
-
-var TilingPattern = (function TilingPatternClosure() {
- var PaintType = {
- COLORED: 1,
- UNCOLORED: 2
- };
-
- var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough
-
- function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {
- this.operatorList = IR[2];
- this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];
- this.bbox = IR[4];
- this.xstep = IR[5];
- this.ystep = IR[6];
- this.paintType = IR[7];
- this.tilingType = IR[8];
- this.color = color;
- this.canvasGraphicsFactory = canvasGraphicsFactory;
- this.baseTransform = baseTransform;
- this.type = 'Pattern';
- this.ctx = ctx;
- }
-
- TilingPattern.prototype = {
- createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {
- var operatorList = this.operatorList;
- var bbox = this.bbox;
- var xstep = this.xstep;
- var ystep = this.ystep;
- var paintType = this.paintType;
- var tilingType = this.tilingType;
- var color = this.color;
- var canvasGraphicsFactory = this.canvasGraphicsFactory;
-
- info('TilingType: ' + tilingType);
-
- var x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3];
-
- var topLeft = [x0, y0];
- // we want the canvas to be as large as the step size
- var botRight = [x0 + xstep, y0 + ystep];
-
- var width = botRight[0] - topLeft[0];
- var height = botRight[1] - topLeft[1];
-
- // Obtain scale from matrix and current transformation matrix.
- var matrixScale = Util.singularValueDecompose2dScale(this.matrix);
- var curMatrixScale = Util.singularValueDecompose2dScale(
- this.baseTransform);
- var combinedScale = [matrixScale[0] * curMatrixScale[0],
- matrixScale[1] * curMatrixScale[1]];
-
- // MAX_PATTERN_SIZE is used to avoid OOM situation.
- // Use width and height values that are as close as possible to the end
- // result when the pattern is used. Too low value makes the pattern look
- // blurry. Too large value makes it look too crispy.
- width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])),
- MAX_PATTERN_SIZE);
-
- height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])),
- MAX_PATTERN_SIZE);
-
- var tmpCanvas = owner.cachedCanvases.getCanvas('pattern',
- width, height, true);
- var tmpCtx = tmpCanvas.context;
- var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);
- graphics.groupLevel = owner.groupLevel;
-
- this.setFillAndStrokeStyleToContext(tmpCtx, paintType, color);
-
- this.setScale(width, height, xstep, ystep);
- this.transformToScale(graphics);
-
- // transform coordinates to pattern space
- var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];
- graphics.transform.apply(graphics, tmpTranslate);
-
- this.clipBbox(graphics, bbox, x0, y0, x1, y1);
-
- graphics.executeOperatorList(operatorList);
- return tmpCanvas.canvas;
- },
-
- setScale: function TilingPattern_setScale(width, height, xstep, ystep) {
- this.scale = [width / xstep, height / ystep];
- },
-
- transformToScale: function TilingPattern_transformToScale(graphics) {
- var scale = this.scale;
- var tmpScale = [scale[0], 0, 0, scale[1], 0, 0];
- graphics.transform.apply(graphics, tmpScale);
- },
-
- scaleToContext: function TilingPattern_scaleToContext() {
- var scale = this.scale;
- this.ctx.scale(1 / scale[0], 1 / scale[1]);
- },
-
- clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {
- if (bbox && isArray(bbox) && bbox.length === 4) {
- var bboxWidth = x1 - x0;
- var bboxHeight = y1 - y0;
- graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);
- graphics.clip();
- graphics.endPath();
- }
- },
-
- setFillAndStrokeStyleToContext:
- function setFillAndStrokeStyleToContext(context, paintType, color) {
- switch (paintType) {
- case PaintType.COLORED:
- var ctx = this.ctx;
- context.fillStyle = ctx.fillStyle;
- context.strokeStyle = ctx.strokeStyle;
- break;
- case PaintType.UNCOLORED:
- var cssColor = Util.makeCssRgb(color[0], color[1], color[2]);
- context.fillStyle = cssColor;
- context.strokeStyle = cssColor;
- break;
- default:
- error('Unsupported paint type: ' + paintType);
- }
- },
-
- getPattern: function TilingPattern_getPattern(ctx, owner) {
- var temporaryPatternCanvas = this.createPatternCanvas(owner);
-
- ctx = this.ctx;
- ctx.setTransform.apply(ctx, this.baseTransform);
- ctx.transform.apply(ctx, this.matrix);
- this.scaleToContext();
-
- return ctx.createPattern(temporaryPatternCanvas, 'repeat');
- }
- };
-
- return TilingPattern;
-})();
-
-exports.getShadingPatternFromIR = getShadingPatternFromIR;
-exports.TilingPattern = TilingPattern;
-}));
-
-
-(function (root, factory) {
- {
- factory((root.pdfjsDisplayTextLayer = {}), root.pdfjsSharedUtil,
- root.pdfjsDisplayDOMUtils, root.pdfjsDisplayGlobal);
- }
-}(this, function (exports, sharedUtil, displayDOMUtils, displayGlobal) {
-
-var Util = sharedUtil.Util;
-var createPromiseCapability = sharedUtil.createPromiseCapability;
-var CustomStyle = displayDOMUtils.CustomStyle;
-var PDFJS = displayGlobal.PDFJS;
-
-/**
- * Text layer render parameters.
- *
- * @typedef {Object} TextLayerRenderParameters
- * @property {TextContent} textContent - Text content to render (the object is
- * returned by the page's getTextContent() method).
- * @property {HTMLElement} container - HTML element that will contain text runs.
- * @property {PDFJS.PageViewport} viewport - The target viewport to properly
- * layout the text runs.
- * @property {Array} textDivs - (optional) HTML elements that are correspond
- * the text items of the textContent input. This is output and shall be
- * initially be set to empty array.
- * @property {number} timeout - (optional) Delay in milliseconds before
- * rendering of the text runs occurs.
- */
-var renderTextLayer = (function renderTextLayerClosure() {
- var MAX_TEXT_DIVS_TO_RENDER = 100000;
-
- var NonWhitespaceRegexp = /\S/;
-
- function isAllWhitespace(str) {
- return !NonWhitespaceRegexp.test(str);
- }
-
- function appendText(textDivs, viewport, geom, styles) {
- var style = styles[geom.fontName];
- var textDiv = document.createElement('div');
- textDivs.push(textDiv);
- if (isAllWhitespace(geom.str)) {
- textDiv.dataset.isWhitespace = true;
- return;
- }
- var tx = Util.transform(viewport.transform, geom.transform);
- var angle = Math.atan2(tx[1], tx[0]);
- if (style.vertical) {
- angle += Math.PI / 2;
- }
- var fontHeight = Math.sqrt((tx[2] * tx[2]) + (tx[3] * tx[3]));
- var fontAscent = fontHeight;
- if (style.ascent) {
- fontAscent = style.ascent * fontAscent;
- } else if (style.descent) {
- fontAscent = (1 + style.descent) * fontAscent;
- }
-
- var left;
- var top;
- if (angle === 0) {
- left = tx[4];
- top = tx[5] - fontAscent;
- } else {
- left = tx[4] + (fontAscent * Math.sin(angle));
- top = tx[5] - (fontAscent * Math.cos(angle));
- }
- textDiv.style.left = left + 'px';
- textDiv.style.top = top + 'px';
- textDiv.style.fontSize = fontHeight + 'px';
- textDiv.style.fontFamily = style.fontFamily;
-
- textDiv.textContent = geom.str;
- // |fontName| is only used by the Font Inspector. This test will succeed
- // when e.g. the Font Inspector is off but the Stepper is on, but it's
- // not worth the effort to do a more accurate test.
- if (PDFJS.pdfBug) {
- textDiv.dataset.fontName = geom.fontName;
- }
- // Storing into dataset will convert number into string.
- if (angle !== 0) {
- textDiv.dataset.angle = angle * (180 / Math.PI);
- }
- // We don't bother scaling single-char text divs, because it has very
- // little effect on text highlighting. This makes scrolling on docs with
- // lots of such divs a lot faster.
- if (geom.str.length > 1) {
- if (style.vertical) {
- textDiv.dataset.canvasWidth = geom.height * viewport.scale;
- } else {
- textDiv.dataset.canvasWidth = geom.width * viewport.scale;
- }
- }
- }
-
- function render(task) {
- if (task._canceled) {
- return;
- }
- var textLayerFrag = task._container;
- var textDivs = task._textDivs;
- var capability = task._capability;
- var textDivsLength = textDivs.length;
-
- // No point in rendering many divs as it would make the browser
- // unusable even after the divs are rendered.
- if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {
- capability.resolve();
- return;
- }
-
- var canvas = document.createElement('canvas');
- canvas.mozOpaque = true;
- var ctx = canvas.getContext('2d', {alpha: false});
-
- var lastFontSize;
- var lastFontFamily;
- for (var i = 0; i < textDivsLength; i++) {
- var textDiv = textDivs[i];
- if (textDiv.dataset.isWhitespace !== undefined) {
- continue;
- }
-
- var fontSize = textDiv.style.fontSize;
- var fontFamily = textDiv.style.fontFamily;
-
- // Only build font string and set to context if different from last.
- if (fontSize !== lastFontSize || fontFamily !== lastFontFamily) {
- ctx.font = fontSize + ' ' + fontFamily;
- lastFontSize = fontSize;
- lastFontFamily = fontFamily;
- }
-
- var width = ctx.measureText(textDiv.textContent).width;
- if (width > 0) {
- textLayerFrag.appendChild(textDiv);
- var transform;
- if (textDiv.dataset.canvasWidth !== undefined) {
- // Dataset values come of type string.
- var textScale = textDiv.dataset.canvasWidth / width;
- transform = 'scaleX(' + textScale + ')';
- } else {
- transform = '';
- }
- var rotation = textDiv.dataset.angle;
- if (rotation) {
- transform = 'rotate(' + rotation + 'deg) ' + transform;
- }
- if (transform) {
- CustomStyle.setProp('transform' , textDiv, transform);
- }
- }
- }
- capability.resolve();
- }
-
- /**
- * Text layer rendering task.
- *
- * @param {TextContent} textContent
- * @param {HTMLElement} container
- * @param {PDFJS.PageViewport} viewport
- * @param {Array} textDivs
- * @private
- */
- function TextLayerRenderTask(textContent, container, viewport, textDivs) {
- this._textContent = textContent;
- this._container = container;
- this._viewport = viewport;
- textDivs = textDivs || [];
- this._textDivs = textDivs;
- this._canceled = false;
- this._capability = createPromiseCapability();
- this._renderTimer = null;
- }
- TextLayerRenderTask.prototype = {
- get promise() {
- return this._capability.promise;
- },
-
- cancel: function TextLayer_cancel() {
- this._canceled = true;
- if (this._renderTimer !== null) {
- clearTimeout(this._renderTimer);
- this._renderTimer = null;
- }
- this._capability.reject('canceled');
- },
-
- _render: function TextLayer_render(timeout) {
- var textItems = this._textContent.items;
- var styles = this._textContent.styles;
- var textDivs = this._textDivs;
- var viewport = this._viewport;
- for (var i = 0, len = textItems.length; i < len; i++) {
- appendText(textDivs, viewport, textItems[i], styles);
- }
-
- if (!timeout) { // Render right away
- render(this);
- } else { // Schedule
- var self = this;
- this._renderTimer = setTimeout(function() {
- render(self);
- self._renderTimer = null;
- }, timeout);
- }
- }
- };
-
-
- /**
- * Starts rendering of the text layer.
- *
- * @param {TextLayerRenderParameters} renderParameters
- * @returns {TextLayerRenderTask}
- */
- function renderTextLayer(renderParameters) {
- var task = new TextLayerRenderTask(renderParameters.textContent,
- renderParameters.container,
- renderParameters.viewport,
- renderParameters.textDivs);
- task._render(renderParameters.timeout);
- return task;
- }
-
- return renderTextLayer;
-})();
-
-PDFJS.renderTextLayer = renderTextLayer;
-
-exports.renderTextLayer = renderTextLayer;
-}));
-
-
-(function (root, factory) {
- {
- factory((root.pdfjsDisplayCanvas = {}), root.pdfjsSharedUtil,
- root.pdfjsDisplayDOMUtils, root.pdfjsDisplayPatternHelper,
- root.pdfjsDisplayWebGL);
- }
-}(this, function (exports, sharedUtil, displayDOMUtils, displayPatternHelper,
- displayWebGL) {
-
-var FONT_IDENTITY_MATRIX = sharedUtil.FONT_IDENTITY_MATRIX;
-var IDENTITY_MATRIX = sharedUtil.IDENTITY_MATRIX;
-var ImageKind = sharedUtil.ImageKind;
-var OPS = sharedUtil.OPS;
-var TextRenderingMode = sharedUtil.TextRenderingMode;
-var Uint32ArrayView = sharedUtil.Uint32ArrayView;
-var Util = sharedUtil.Util;
-var assert = sharedUtil.assert;
-var info = sharedUtil.info;
-var isNum = sharedUtil.isNum;
-var isArray = sharedUtil.isArray;
-var error = sharedUtil.error;
-var shadow = sharedUtil.shadow;
-var warn = sharedUtil.warn;
-var TilingPattern = displayPatternHelper.TilingPattern;
-var getShadingPatternFromIR = displayPatternHelper.getShadingPatternFromIR;
-var WebGLUtils = displayWebGL.WebGLUtils;
-
-//