Commit 7b0f2083 authored by Jérome Perrin's avatar Jérome Perrin

Improvements to editors (CKEditor and PDF viewer)

- Display the editor in ERP5 language, not browser language
 - Use PDF viewer for Drawing preview
 - Supports password protected PDFs
 - Others small changes

See merge request nexedi/erp5!1639
parents 54683e0c c54c4bc0
......@@ -194,6 +194,7 @@ class TestOfficeJSSDKConfigurator(SecurityTestCase):
'erp5_core_proxy_field_legacy',
'erp5_crm',
'erp5_dms',
'erp5_dms_ui_test',
'erp5_font',
'erp5_forge',
'erp5_full_text_mroonga_catalog',
......@@ -236,6 +237,7 @@ class TestOfficeJSSDKConfigurator(SecurityTestCase):
'erp5_travel_expense',
'erp5_ui_test',
'erp5_ui_test_core',
'erp5_ui_test_data',
'erp5_upgrader',
'erp5_upgrader_officejs_sdk',
'erp5_web',
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testCRMCreateNewEventEditorLanguage</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode></unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_or_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_or_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/create_translation_data" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/prepare_data" />
<!-- try with a language supported (fr) in CKEditor, then a language not supported (wo) -->
<tal:block
tal:define="language_and_translations python:[('fr', {'Font': 'Police', 'Actions': 'Actions'}), ('wo', {'Font': 'Font', 'Actions': 'caozhuo'})]"
tal:repeat="language_and_translation language_and_translations">
<tr>
<td>store</td>
<td>${base_url}/web_site_module/renderjs_runner/<tal:block tal:replace="python: language_and_translation[0]"/>/#</td>
<td>renderjs_url</td>
</tr>
<tal:block tal:define="translation_dict python: language_and_translation[1]">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/view_create_new_event_dialog" />
</tal:block>
<tal:block tal:define="dialog_content_configuration python: {'field_your_title': '',
'field_your_portal_type': 'Mail Message',
'field_your_resource': '',
'field_your_notification_message': '',
'field_your_event_workflow_action': 'send',
'field_your_source': '',
'field_your_destination': '',
'field_your_text_content': '<p><br></p>'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/check_create_new_event_dialog_content" />
</tal:block>
<tal:block tal:define="dialog_content_configuration python: {'field_your_title': 'erp5_crm_ui_test_create_event_title',
'field_your_portal_type': 'Letter',
'field_your_resource': '',
'field_your_start_date': '2010-01-01T00:00:00',
'field_your_notification_message': '',
'field_your_event_workflow_action': 'send',
'field_your_source': 'erp5_crm_ui_test_agent_title',
'field_your_destination': 'erp5_crm_ui_test_customer_title',
'field_your_text_content': '<p>Foo<br>Bar</p>'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/fill_create_new_event_dialog_content" />
</tal:block>
<tr>
<td>selectFrame</td>
<td>//iframe</td>
<td></td>
</tr>
<tr>
<td>assertText</td>
<td>css=.cke_combo__font > .cke_combo_label</td>
<td tal:content="python: language_and_translation[1]['Font']"></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
<!-- Header has a save button -->
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block tal:define="notification_configuration python: {'class': 'success',
'text': 'Created and associated a new Letter to the ticket.'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="response_configuration python: {'field_my_title': 'erp5_crm_ui_test_create_event_title',
'field_my_portal_type': 'Letter',
'field_my_resource': '',
'field_my_start_date': '2010-01-01T00:00:00',
'simulation_state': 'Sent',
'field_my_source_title': 'erp5_crm_ui_test_agent_title',
'field_my_destination_title': 'erp5_crm_ui_test_customer_title',
'field_my_text_content': '<p>Foo<br>Bar</p>'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMRenderjsUi/macros/check_response_content" />
</tal:block>
<tr>
<td>selectFrame</td>
<td>//iframe</td>
<td></td>
</tr>
<tr>
<td>assertText</td>
<td>css=.cke_combo__font > .cke_combo_label</td>
<td tal:content="python: language_and_translation[1]['Font']"></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tal:block>
</tbody></table>
</body>
</html>
\ No newline at end of file
......@@ -207,7 +207,7 @@
</tal:block>
<tal:block metal:define-macro="view_create_new_event_dialog">
<tal:block metal:define-macro="view_create_new_event_dialog" tal:define="translation_dict translation_dict | python: {}">
<tr>
<td colspan="3"><b>Display the create new event dialog</b></td>
</tr>
......@@ -223,7 +223,7 @@
<td>//div[@data-gadget-url='${base_url}/web_site_module/renderjs_runner/gadget_erp5_pt_form_view_editable.html']</td>
<td></td>
</tr>
<tal:block tal:define="click_configuration python: {'text': 'Actions'}">
<tal:block tal:define="click_configuration python: {'text': translation_dict.get('Actions', 'Actions')}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
......@@ -234,11 +234,11 @@
</tr>
<tr>
<td>assertTextPresent</td>
<td>Create New Event</td>
<td tal:content="python: translation_dict.get('Create New Event', 'Create New Event')">Create New Event</td>
<td></td>
</tr>
<tal:block tal:define="click_configuration python: {'text': 'Create New Event'}">
<tal:block tal:define="click_configuration python: {'text': translation_dict.get('Create New Event', 'Create New Event')}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
......@@ -250,7 +250,7 @@
</tr>
<tr>
<td>assertTextPresent</td>
<td>Create New Event</td>
<td tal:content="python: translation_dict.get('Create New Event', 'Create New Event')">Create New Event</td>
<td></td>
</tr>
<tr>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testCRMCreateNewEventEditorLanguage</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode></unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_or_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_or_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMUiTest/macros/init" />
<tr>
<td>open</td>
<td tal:content="string: ${here/portal_url}/Base_createUITestLanguages"></td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>New Languages Added</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMUiTest/macros/prepare_data" />
<!-- try with a language supported (fr) in CKEditor, then a language not supported (wo) -->
<tal:block
tal:define="language_and_translations python:[('French', 'Police'), ('Wolof', 'Font')]"
tal:repeat="language_and_translation language_and_translations">
<tr>
<td>open</td>
<td>${base_url}</td>
<td></td>
</tr>
<tr>
<td>selectAndWait</td>
<td>select_language</td>
<td tal:content="python: language_and_translation[0]"></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMUiTest/macros/view_create_new_event_dialog" />
<tal:block tal:define="dialog_content_configuration python: {'field_your_title': '',
'field_your_portal_type': 'Mail Message',
'field_your_resource': '',
'field_your_notification_message': '',
'field_your_event_workflow_action': 'send',
'field_your_source': '',
'field_your_destination': '',
'field_your_text_content': '<p><br></p>'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMUiTest/macros/check_create_new_event_dialog_content" />
</tal:block>
<tal:block tal:define="dialog_content_configuration python: {'field_your_title': 'Test event',
'field_your_portal_type': 'Letter',
'field_your_resource': '',
'field_your_start_date': '2010-01-01T00:00:00',
'field_your_notification_message': '',
'field_your_event_workflow_action': 'send',
'field_your_source': 'erp5_crm_ui_test_agent_title',
'field_your_destination': 'erp5_crm_ui_test_customer_title',
'field_your_text_content': '<p>Foo<br>Bar</p>'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMUiTest/macros/fill_create_new_event_dialog_content" />
</tal:block>
<tr>
<td>selectFrame</td>
<td>//iframe</td>
<td></td>
</tr>
<tr>
<td>assertText</td>
<td>css=.cke_combo__font > .cke_combo_label</td>
<td tal:content="python: language_and_translation[1]"></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>dialog_submit_button</td>
<td></td>
</tr>
<tr>
<td>assertPortalStatusMessage</td>
<td>Created and associated a new Letter to the ticket.</td>
<td></td>
</tr>
<tal:block tal:define="response_configuration python: {'field_my_title': 'Test event',
'field_my_portal_type': 'Letter',
'field_my_resource': '',
'field_my_start_date': '2010-01-01T00:00:00',
'simulation_state': 'Sent',
'field_my_source_title': 'erp5_crm_ui_test_agent_title',
'field_my_destination_title': 'erp5_crm_ui_test_customer_title',
'field_my_text_content': '<p>Foo<br>Bar</p>'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForCRMUiTest/macros/check_response_content" />
</tal:block>
<tr>
<td>selectFrame</td>
<td>//iframe</td>
<td></td>
</tr>
<tr>
<td>assertText</td>
<td>css=.cke_combo__font > .cke_combo_label</td>
<td tal:content="python: language_and_translation[1]"></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tal:block>
</tbody></table>
</body>
</html>
\ No newline at end of file
......@@ -71,7 +71,7 @@
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/OOoDocument_viewAsWeb</string> </value>
<value> <string>string:${object_url}/OOoDocument_viewPDFPreview</string> </value>
</item>
</dictionary>
</pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>Base_edit</string> </value>
</item>
<item>
<key> <string>action_title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom full_height</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom full_height</string> </key>
<value>
<list>
<string>my_data</string>
</list>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>OOoDocument_viewPDFPreview</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>OOoDocument_viewPDFPreview</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_view</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Preview</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>data_url</string>
<string>default</string>
<string>renderjs_extra</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_data</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>data_url</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>data_url</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_text_content</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: context.absolute_url()+\'?format=pdf\'</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: dict(dict(field.getTemplateField().get_value(\'renderjs_extra\')), content_type=\'application/pdf\', editor=context.Base_getEditorFieldPreferredTextEditor(content_type=\'application/pdf\'))</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
# type: () -> bytes
"""Returns the password for this PDF file, if it is known by the system.
This is a customization entry point, used to display the PDF content to
logged in users, if they have the permission to view the PDF.
Note that this is not used for full-text extraction, password protected
PDFs are not indexed, in order not to leak the content.
"""
assert REQUEST is None and not container.REQUEST.args
return None
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>REQUEST=None</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>PDF_getContentPassword</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -12,6 +12,7 @@
<list>
<string>data_url</string>
<string>default</string>
<string>renderjs_extra</string>
</list>
</value>
</item>
......@@ -67,6 +68,12 @@
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
......@@ -90,6 +97,12 @@
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
......@@ -104,7 +117,20 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: context.absolute_url()+\'/getData\'</string> </value>
<value> <string>python: context.absolute_url()+\'?format=\'</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: field.getTemplateField().get_value("renderjs_extra") + [(\'password\', context.getTypeBasedMethod(\'getContentPassword\')())]</string> </value>
</item>
</dictionary>
</pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>de</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
# 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=Eine Seite zurück
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}}
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
# 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
# Document properties dialog box
document_properties.title=Dokumenteigenschaften
document_properties_label=Dokumenteigenschaften…
document_properties_file_name=Dateiname:
document_properties_file_size=Dateigröße:
document_properties_kb={{size_kb}} KB ({{size_b}} Bytes)
document_properties_mb={{size_mb}} MB ({{size_b}} Bytes)
document_properties_title=Titel:
document_properties_author=Autor:
document_properties_subject=Thema:
document_properties_keywords=Stichwörter:
document_properties_creation_date=Erstelldatum:
document_properties_modification_date=Bearbeitungsdatum:
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_close=Schließen
# 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_label=Sidebar umschalten
outline.title=Dokumentstruktur anzeigen
outline_label=Dokumentstruktur
attachments.title=Anhänge anzeigen
attachments_label=Anhänge
thumbs.title=Miniaturansichten anzeigen
thumbs_label=Miniaturansichten
findbar.title=Dokument durchsuchen
findbar_label=Suchen
# 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=Seite {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
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_previous_label=Zurück
find_next.title=Nächstes Auftreten des Suchbegriffs finden
find_next_label=Weiter
find_highlight=Alle hervorheben
find_match_case_label=Groß-/Kleinschreibung beachten
find_reached_top=Anfang des Dokuments erreicht, fahre am Ende fort
find_reached_bottom=Ende des Dokuments erreicht, fahre am Anfang fort
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
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}}%
# 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
# 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=[Anlage: {{type}}]
password_label=Geben Sie zum Öffnen der PDF-Datei deren Passwort ein.
password_invalid=Falsches Passwort. Bitte versuchen Sie es erneut.
password_ok=OK
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_disabled=PDF-Dokumenten ist es nicht erlaubt, ihre eigenen Farben zu verwenden: \'Seiten das Verwenden von eigenen Farben erlauben\' ist im Browser deaktiviert.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>viewer.properties</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -12,7 +12,7 @@
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
<value> <string>text/plain</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
......@@ -20,7 +20,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>viewer.properties</string> </value>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -12,7 +12,7 @@
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
<value> <string>text/plain</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
......@@ -20,7 +20,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>viewer.properties</string> </value>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>fa</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
# 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=عنوان:
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 ورژن{{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=اندازه واقعی‌
# 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=پاسخ پیش بینی نشده سرور
# 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 نمیتوانند که رنگ های خود را داشته باشند. لذا گزینه 'اجازه تغییر رنگ" در مرورگر غیر فعال شده است.
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>viewer.properties</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>viewer.properties</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>fr</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
# 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 précédente
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}}
zoom_out.title=Zoom arrière
zoom_out_label=Zoom arrière
zoom_in.title=Zoom avant
zoom_in_label=Zoom avant
zoom.title=Zoom
presentation_mode.title=Basculer en mode présentation
presentation_mode_label=Mode présentation
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
# 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
# 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_label=Afficher/Masquer le panneau latéral
outline.title=Afficher les signets
outline_label=Signets du document
attachments.title=Afficher les pièces jointes
attachments_label=Pièces jointes
thumbs.title=Afficher les vignettes
thumbs_label=Vignettes
findbar.title=Rechercher dans le document
findbar_label=Rechercher
# 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=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_previous_label=Précédent
find_next.title=Trouver la prochaine occurrence de la phrase
find_next_label=Suivant
find_highlight=Tout surligner
find_match_case_label=Respecter la casse
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.
# Predefined zoom values
page_scale_width=Pleine largeur
page_scale_fit=Page entière
page_scale_auto=Zoom automatique
page_scale_actual=Taille réelle
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
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.
# 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=[Annotation {{type}}]
password_label=Veuillez saisir le mot de passe pour ouvrir ce fichier PDF.
password_invalid=Mot de passe incorrect. Veuillez réessayer.
password_ok=OK
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.
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>viewer.properties</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ja</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
# 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=現在のビューの URL です (コピーまたは新しいウィンドウに開く)
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=ファイルサイズ:
document_properties_kb={{size_kb}} KB ({{size_b}} 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=更新日:
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=指定文字列に一致する 1 つ前の部分を検索します
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}}
# 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=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=OK
password_cancel=キャンセル
printing_not_supported=警告: このブラウザでは印刷が完全にサポートされていません
printing_not_ready=警告: PDF を印刷するための読み込みが終了していません
web_fonts_disabled=Web フォントが無効になっています: 埋め込まれた PDF のフォントを使用できません
document_colors_disabled=PDF 文書は、Web ページが指定した配色を使用することができません: \u0027Web ページが指定した配色\u0027 はブラウザで無効になっています。
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>viewer.properties</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
[ach]
@import url(ach/viewer.properties)
[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)
[az]
@import url(az/viewer.properties)
[be]
@import url(be/viewer.properties)
[bg]
@import url(bg/viewer.properties)
[bn-BD]
@import url(bn-BD/viewer.properties)
[bn-IN]
@import url(bn-IN/viewer.properties)
[br]
@import url(br/viewer.properties)
[bs]
@import url(bs/viewer.properties)
[ca]
@import url(ca/viewer.properties)
[cs]
@import url(cs/viewer.properties)
[csb]
@import url(csb/viewer.properties)
[cy]
@import url(cy/viewer.properties)
[da]
@import url(da/viewer.properties)
[de]
@import url(de/viewer.properties)
[el]
@import url(el/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)
[es-AR]
@import url(es-AR/viewer.properties)
[es-CL]
@import url(es-CL/viewer.properties)
[es-ES]
@import url(es-ES/viewer.properties)
[es-MX]
@import url(es-MX/viewer.properties)
[et]
@import url(et/viewer.properties)
[eu]
@import url(eu/viewer.properties)
[fa]
@import url(fa/viewer.properties)
[ff]
@import url(ff/viewer.properties)
[fi]
@import url(fi/viewer.properties)
[fr]
@import url(fr/viewer.properties)
[fy-NL]
@import url(fy-NL/viewer.properties)
[ga-IE]
@import url(ga-IE/viewer.properties)
[gd]
@import url(gd/viewer.properties)
[gl]
@import url(gl/viewer.properties)
[gu-IN]
@import url(gu-IN/viewer.properties)
[he]
@import url(he/viewer.properties)
[hi-IN]
@import url(hi-IN/viewer.properties)
[hr]
@import url(hr/viewer.properties)
[hu]
@import url(hu/viewer.properties)
[hy-AM]
@import url(hy-AM/viewer.properties)
[id]
@import url(id/viewer.properties)
[is]
@import url(is/viewer.properties)
[it]
@import url(it/viewer.properties)
[ja]
@import url(ja/viewer.properties)
[ka]
@import url(ka/viewer.properties)
[kk]
@import url(kk/viewer.properties)
[km]
@import url(km/viewer.properties)
[kn]
@import url(kn/viewer.properties)
[ko]
@import url(ko/viewer.properties)
[ku]
@import url(ku/viewer.properties)
[lg]
@import url(lg/viewer.properties)
[lij]
@import url(lij/viewer.properties)
[lt]
@import url(lt/viewer.properties)
[lv]
@import url(lv/viewer.properties)
[mai]
@import url(mai/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)
[ms]
@import url(ms/viewer.properties)
[my]
@import url(my/viewer.properties)
[nb-NO]
@import url(nb-NO/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)
[pl]
@import url(pl/viewer.properties)
[pt-BR]
@import url(pt-BR/viewer.properties)
[pt-PT]
@import url(pt-PT/viewer.properties)
[rm]
@import url(rm/viewer.properties)
[ro]
@import url(ro/viewer.properties)
[ru]
@import url(ru/viewer.properties)
[rw]
@import url(rw/viewer.properties)
[sah]
@import url(sah/viewer.properties)
[si]
@import url(si/viewer.properties)
[sk]
@import url(sk/viewer.properties)
[sl]
@import url(sl/viewer.properties)
[son]
@import url(son/viewer.properties)
[sq]
@import url(sq/viewer.properties)
[sr]
@import url(sr/viewer.properties)
[sv-SE]
@import url(sv-SE/viewer.properties)
[sw]
@import url(sw/viewer.properties)
[ta]
@import url(ta/viewer.properties)
[ta-LK]
@import url(ta-LK/viewer.properties)
[te]
@import url(te/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)
[uk]
@import url(uk/viewer.properties)
[ur]
@import url(ur/viewer.properties)
[vi]
@import url(vi/viewer.properties)
[wo]
@import url(wo/viewer.properties)
[xh]
@import url(xh/viewer.properties)
[zh-CN]
@import url(zh-CN/viewer.properties)
[zh-TW]
@import url(zh-TW/viewer.properties)
[zu]
@import url(zu/viewer.properties)
[de]
@import url(de/viewer.properties)
[en-GB]
@import url(en-GB/viewer.properties)
[en-US]
@import url(en-US/viewer.properties)
[fa]
@import url(fa/viewer.properties)
[fr]
@import url(fr/viewer.properties)
[ja]
@import url(ja/viewer.properties)
[pl]
@import url(pl/viewer.properties)
[pt-BR]
@import url(pt-BR/viewer.properties)
[zh-CN]
@import url(zh-CN/viewer.properties)
......@@ -12,7 +12,7 @@
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
<value> <string>text/plain</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
......@@ -20,7 +20,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>locale.properties</string> </value>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>pt-BR</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
# 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=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}}
zoom_out.title=Diminuir zoom
zoom_out_label=Diminuir zoom
zoom_in.title=Aumentar zoom
zoom_in_label=Aumentar zoom
zoom.title=Zoom
presentation_mode.title=Alternar para 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
# 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
# Document properties dialog box
document_properties.title=Propriedades do documento…
document_properties_label=Propriedades do documento…
document_properties_file_name=Nome do arquivo:
document_properties_file_size=Tamanho do arquivo:
# 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=Assunto:
document_properties_keywords=Palavras-chave:
document_properties_creation_date=Data da criação:
document_properties_modification_date=Data da modificação:
# 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=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_close=Fechar
# 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_label=Exibir/ocultar painel
outline.title=Exibir estrutura de tópicos
outline_label=Estrutura de tópicos do documento
attachments.title=Exibir anexos
attachments_label=Anexos
thumbs.title=Exibir miniaturas das páginas
thumbs_label=Miniaturas
findbar.title=Localizar no documento
findbar_label=Localizar
# 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 da página {{page}}
# Find panel button title and messages
find_label=Localizar:
find_previous.title=Localizar a ocorrência anterior do texto
find_previous_label=Anterior
find_next.title=Localizar a próxima ocorrência do texto
find_next_label=Próxima
find_highlight=Realçar 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.
# Predefined zoom values
page_scale_width=Largura da página
page_scale_fit=Ajustar à janela
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=Arquivo PDF corrompido ou inválido.
missing_file_error=Arquivo PDF ausente.
unexpected_response_error=Resposta inesperada do servidor.
# 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=Forneça a senha para abrir este arquivo PDF.
password_invalid=Senha inválida. Por favor, tente de novo.
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.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>viewer.properties</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -12,7 +12,7 @@
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/octet-stream</string> </value>
<value> <string>text/plain</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
......@@ -20,7 +20,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>viewer.properties</string> </value>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>zh-CN</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
# 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}} 字节)
# 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=载入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=Web 字体已被禁用:无法使用嵌入的PDF字体。
document_colors_not_allowed=不允许 PDF 文档使用自己的颜色:浏览器中“允许页面选择自己的颜色”的选项已停用。
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>viewer.properties</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/plain</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
/*jslint indent: 2, nomen: true */
/*global window, rJS, RSVP, PDFJS, webViewerLoad, Uint8Array,
ArrayBuffer, PDFViewerApplication, FileReader */
(function (window, rJS, RSVP, PDFJS, webViewerLoad) {
/*global window, rJS, RSVP, PDFJS, configure, webViewerInitialized,
PDFViewerApplication, FileReader, PasswordPrompt */
(function (window, rJS, RSVP, PDFJS, configure, webViewerInitialized, PDFViewerApplication, PasswordPrompt) {
"use strict";
rJS(window)
......@@ -13,23 +13,29 @@
});
})
.declareMethod("render", function (options) {
[].forEach.call(window.document.head.querySelectorAll("base"), function (el) {
// XXX GadgetField adds <base> tag to fit to the parent page location, it's BAD to remove them.
// In the case of pdf.js, all component are loaded dynamicaly through ajax requests in
// pdf-js "folder". By setting a <base> tag, we change the url resolution behavior, and
// we break all dynamic links. So, deleting <base> is required.
window.document.head.removeChild(el);
var gadget = this;
gadget.props.key = options.key;
configure(PDFJS);
PDFJS.locale = options.language;
if (options.password) {
PasswordPrompt._original_open = PasswordPrompt.open;
var retries = 0;
PasswordPrompt.open = function () {
if (retries) {
return this._original_open();
}
retries++;
return this.updatePassword(options.password);
};
}
return PDFViewerApplication.initialize().then(function() {
webViewerInitialized(options.value);
// hide some buttons that do not make sense for us
gadget.props.element.querySelector('#viewBookmark').hidden = true;
gadget.props.element.querySelector('#documentProperties').hidden = true;
gadget.props.element.querySelector('#download').hidden = true;
gadget.props.element.querySelector('#openFile').hidden = true;
});
this.props.key = options.key;
webViewerLoad(options.value);
// hide few buttons for now
this.props.element.querySelector('#viewBookmark').hidden = true;
this.props.element.querySelector('#documentProperties').hidden = true;
this.props.element.querySelector('#documentProperties').hidden = true;
this.props.element.querySelector('#download').hidden = true;
return;
})
.declareMethod("getContent", function () {
var form_data = {};
......@@ -57,4 +63,4 @@
return form_data;
});
});
}(window, rJS, RSVP, PDFJS, webViewerLoad, PDFViewerApplication));
}(window, rJS, RSVP, PDFJS, configure, webViewerInitialized, PDFViewerApplication, PasswordPrompt));
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PDF" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts54848644.25</string> </value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value> <string>e0751dd9b313aa3cc08d7cbfebf0d100</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/pdf</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>test-ERP5.Logo.Encrypted.PDF</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>A sample PDF with text and an image, encrypted with password "secret"</string> </value>
</item>
<item>
<key> <string>filename</string> </key>
<value> <string>test-ERP5.Logo.encrypted.PDF.pdf</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>-1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test_ERP5_Logo_Encrypted_PDF</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>PDF</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>7745</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>-1</int> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>ERP5TypeTestCase</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1655084957.23</float>
<string>GMT+2</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testDrawingUploadAndPreview</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>Drawing Upload and Preview</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr>
<td rowspan="1" colspan="3" tal:content="template/title_and_id"></td>
</tr>
</thead>
<tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tr>
<td>openAndWait</td>
<td>${base_url}/document_module</td>
<td></td>
</tr>
<tr>
<td>selectAndWait</td>
<td>select_action</td>
<td>Add Drawing</td>
</tr>
<tr>
<td>setFile</td>
<td>field_my_file</td>
<td>${base_url}/functional_test_data_folder/tiolive-ERP5.Freedom.TioLive.Drawing-001-en.odg
tiolive-ERP5.Freedom.TioLive.Drawing-001-en.odg</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>Base_edit:method</td>
<td></td>
</tr>
<tr>
<td>store</td>
<td>javascript{selenium.browserbot.getCurrentWindow().location.href}</td>
<td>current_location</td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/wait_for_activities" />
<tr>
<td>open</td>
<td>${current_location}</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Preview</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//body//div[@class='canvasWrapper']/canvas</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tbody>
</table>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testEncryptedPDFPreview</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>Encrypted PDF Preview</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_and_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tr>
<td>openAndWait</td>
<td>${base_url}/document_module/test_ERP5_Logo_Encrypted_PDF</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Preview</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
<!--
This PDF is automatically decrypted because of the ID
(see portal_skins/erp5_dms_ui_test/PDF_getContentPassword)
Make a clone, that will not be automatically decrypted (because Id will be different)
It is still possible for user to enter a password and view.
-->
<tr>
<td>clickAndWait</td>
<td>Base_createCloneDocument:method</td>
<td></td>
</tr>
<tr>
<td>assertPortalStatusMessage</td>
<td>Created Clone PDF.</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@id="passwordOverlay" and not(contains(@class, "hidden"))]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>password</td>
<td>secret</td>
</tr>
<tr>
<td>click</td>
<td>passwordSubmit</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testPDFPreview</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>PDF Preview</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_and_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tr>
<td>openAndWait</td>
<td>${base_url}/document_module/test_ERP5_Logo_PDF</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Preview</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testPDFPreviewLanguage</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>PDF Preview Editor Language</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_and_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tr>
<td>open</td>
<td tal:content="string: ${here/portal_url}/Base_createUITestLanguages"></td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>New Languages Added</td>
<td></td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/fr/document_module/test_ERP5_Logo_PDF/PDF_viewPDFJSPreview</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
<tr>
<td>waitForText</td>
<td>//option[@id="pageAutoOption"]</td>
<td>Zoom automatique</td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
<!-- Try with a language not supported by pdf.js -->
<tr>
<td>selectAndWait</td>
<td>select_language</td>
<td>Xhosa</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//option[@id="pageAutoOption"]</td>
<td>Automatic Zoom</td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
......@@ -6,12 +6,33 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>business_template_skin_layer_priority</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>float</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>business_template_skin_layer_priority</string> </key>
<value> <float>40.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>erp5_dms_ui_test</string> </value>
......
# type: () -> bytes
if context.getId() == 'test_ERP5_Logo_Encrypted_PDF':
return 'secret'
return context.skinSuper('erp5_dms_ui_test', 'PDF_getContentPassword')(REQUEST=REQUEST)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>REQUEST=None</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>PDF_getContentPassword</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
document_module/test_ERP5_Logo_PDF
document_module/test_ERP5_Logo_Encrypted_PDF
\ No newline at end of file
document_module/test_ERP5_Logo_Encrypted_PDF
document_module/test_ERP5_Logo_PDF
portal_categories/classification/**
portal_tests/dms_zuite
portal_tests/dms_zuite/**
\ No newline at end of file
......@@ -16,7 +16,7 @@
-->
<tr>
<td>open</td>
<td tal:content="string: ${here/portal_url}/portal_skins/erp5_ui_test/Base_createUITestLanguages"></td>
<td tal:content="string: ${here/portal_url}/Base_createUITestLanguages"></td>
<td></td>
</tr>
<tr>
......@@ -27,7 +27,7 @@
<tal:block tal:repeat="param_dict python: [{'translation': 'Seet Foos', 'language': 'wo'}, {'translation': 'Searching Foos', 'language': 'xh'}]">
<tr tal:define="dummy python: param_dict.update({'root': here.portal_url()})">
<td>open</td>
<td tal:content="python: '%(root)s/portal_skins/erp5_ui_test/Base_addUITestTranslation?message=Search Foos&translation=%(translation)s&language=%(language)s' % param_dict"></td>
<td tal:content="python: '%(root)s/Base_addUITestTranslation?message=Search Foos&translation=%(translation)s&language=%(language)s' % param_dict"></td>
<td></td>
</tr>
<tr>
......
......@@ -17,7 +17,7 @@
<tr>
<td>open</td>
<td tal:content="string: ${here/portal_url}/portal_skins/erp5_ui_test/Base_createUITestLanguages"></td>
<td tal:content="string: ${here/portal_url}/Base_createUITestLanguages"></td>
<td></td>
</tr>
<tr>
......@@ -32,7 +32,7 @@
]">
<tr tal:define="dummy python: param_dict.update({'root': here.portal_url()})">
<td>open</td>
<td tal:content="python: '%(root)s/portal_skins/erp5_ui_test/Base_addUITestTranslation?message=%(message)s&translation=%(translation)s&language=%(language)s' % param_dict"></td>
<td tal:content="python: '%(root)s/Base_addUITestTranslation?message=%(message)s&translation=%(translation)s&language=%(language)s' % param_dict"></td>
<td></td>
</tr>
<tr>
......
......@@ -11,7 +11,7 @@
<tr>
<td>open</td>
<td tal:content="string: ${here/portal_url}/portal_skins/erp5_ui_test/Base_createUITestLanguages"></td>
<td tal:content="string: ${here/portal_url}/Base_createUITestLanguages"></td>
<td></td>
</tr>
<tr>
......@@ -28,7 +28,7 @@
]">
<tr tal:define="dummy python: param_dict.update({'root': here.portal_url()})">
<td>open</td>
<td tal:content="python: '%(root)s/portal_skins/erp5_ui_test/Base_addUITestTranslation?message=%(message)s&translation=%(translation)s&language=%(language)s' % param_dict"></td>
<td tal:content="python: '%(root)s/Base_addUITestTranslation?message=%(message)s&translation=%(translation)s&language=%(language)s' % param_dict"></td>
<td></td>
</tr>
<tr>
......
......@@ -33,7 +33,7 @@
<tr>
<td>open</td>
<td tal:content="string: ${here/portal_url}/portal_skins/erp5_ui_test/Base_createUITestLanguages"></td>
<td tal:content="string: ${here/portal_url}/Base_createUITestLanguages"></td>
<td></td>
</tr>
<tr>
......@@ -50,7 +50,7 @@
]">
<tr tal:define="dummy python: param_dict.update({'root': here.portal_url()})">
<td>open</td>
<td tal:content="python: '%(root)s/portal_skins/erp5_ui_test/Base_addUITestTranslation?message=%(message)s&translation=%(translation)s&language=%(language)s&catalog_id=%(catalog_id)s' % param_dict"></td>
<td tal:content="python: '%(root)s/Base_addUITestTranslation?message=%(message)s&translation=%(translation)s&language=%(language)s&catalog_id=%(catalog_id)s' % param_dict"></td>
<td></td>
</tr>
<tr>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testDrawingUploadAndPreview</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>Drawing Upload and Preview</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_and_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/wait_for_activities" />
<tr>
<td>open</td>
<td>${base_url}/web_site_module/renderjs_runner/#/document_module</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Add'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>select</td>
<td>//select[@name='field_your_select_action']</td>
<td>label=Drawing</td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
<tal:block tal:define="notification_configuration python: {'class': 'success',
'text': 'Object created.'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>setFile</td>
<td>field_my_file</td>
<td>${base_url}/functional_test_data_folder/tiolive-ERP5.Freedom.TioLive.Drawing-001-en.odg tiolive-ERP5.Freedom.TioLive.Drawing-001-en.odg</td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/save" />
<tr>
<td>store</td>
<td>javascript{selenium.browserbot.getCurrentWindow().location.href}</td>
<td>current_location</td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/wait_for_activities" />
<tr>
<td>open</td>
<td>${current_location}</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Views'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Preview'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//body//div[@class='canvasWrapper']/canvas</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testEncryptedPDFPreview</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>Encrypted PDF Preview</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_and_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/wait_for_activities" />
<!-- Access a PDF provided by erp5_dms_ui_test -->
<tr>
<td>open</td>
<td>${base_url}/web_site_module/renderjs_runner/#/document_module/test_ERP5_Logo_Encrypted_PDF?editable=1</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Views'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Preview'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
<!--
This PDF is automatically decrypted because of the ID
(see portal_skins/erp5_dms_ui_test/PDF_getContentPassword)
Make a clone, that will not be automatically decrypted (because Id will be different)
It is still possible for user to enter a password and view.
-->
<tal:block tal:define="click_configuration python: {'text': 'Actions'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Clone Document'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block tal:define="notification_configuration python: {'class': 'success',
'text': 'Created Clone PDF.'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Views'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Preview'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@id="passwordOverlay" and not(contains(@class, "hidden"))]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>password</td>
<td>secret</td>
</tr>
<tr>
<td>click</td>
<td>passwordSubmit</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testPDFPreview</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>PDF Preview</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_and_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/wait_for_activities" />
<!-- Access a PDF provided by erp5_dms_ui_test -->
<tr>
<td>open</td>
<td>${base_url}/web_site_module/renderjs_runner/#/document_module/test_ERP5_Logo_PDF?editable=1</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Views'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Preview'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testPDFPreviewLanguage</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode>PDF Preview Editor Language</unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title tal:content="template/title_and_id"></title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3" tal:content="template/title_and_id"></td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/create_translation_data" />
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/wait_for_activities" />
<!-- try with a language supported (fr) in pdf.js, then a language not supported (wo) -->
<tal:block
tal:define="language_and_translations python:[('fr', 'Views', 'Zoom automatique'), ('wo', 'shitu', 'Automatic Zoom')]"
tal:repeat="language_and_translation language_and_translations">
<tr>
<td>open</td>
<td>${base_url}/web_site_module/renderjs_runner/<tal:block tal:replace="python: language_and_translation[0]"/>/#/document_module/test_ERP5_Logo_PDF?editable=1</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
<tal:block tal:define="click_configuration python: {'text': language_and_translation[1]}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tal:block tal:define="click_configuration python: {'text': 'Preview'}">
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>waitForElementPresent</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>//iframe[contains(@src, "pdfjs.gadget.html")]</td>
<td></td>
</tr>
<tr>
<td>waitForText</td>
<td>//body//div[@class='textLayer']/div[1]</td>
<td>This is a sample PDF with some text and an image</td>
</tr>
<tr>
<td>waitForText</td>
<td>//option[@id="pageAutoOption"]</td>
<td tal:content="python: language_and_translation[2]">Automatic Zoom</td>
</tr>
<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td></td>
</tr>
</tal:block>
</tbody></table>
</body>
</html>
\ No newline at end of file
erp5_dms_ui_test
erp5_ui_test_core
erp5_ui_test
erp5_web_renderjs_ui
......
......@@ -142,7 +142,7 @@
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: [(\'jio_key\', context.getRelativeUrl()), (\'editor\', context.Base_getEditorFieldPreferredTextEditor()), (\'portal_type\', context.getPortalType()), (\'maximize\', \'listbox\' not in field.id), (\'content_type\', context.getProperty(\'content_type\'))]</string> </value>
<value> <string>python: [(\'jio_key\', context.getRelativeUrl()), (\'editor\', context.Base_getEditorFieldPreferredTextEditor()), (\'portal_type\', context.getPortalType()), (\'maximize\', \'listbox\' not in field.id), (\'content_type\', context.getProperty(\'content_type\')), (\'language\', context.getPortalObject().Localizer.get_selected_language())]</string> </value>
</item>
</dictionary>
</pickle>
......
......@@ -12,6 +12,9 @@
* @property {string} portal_type the portal type
* @property {boolean} editable set to true to have an editor when user
* can modify the content, false for a "read only" editor
* @property {string} language the user language, if the editor supports
* localisation it will be displayed in this language
* @property {string} password a password to decrypt the content
* @property {boolean} run a hack for jsmd editor
* @property {string} key Key for ERP5 form
*/
......@@ -81,10 +84,12 @@
maximize: options.maximize,
portal_type: options.portal_type,
editable: options.editable || false,
language: options.language,
//run value is used to make jsmd viewer available in editable mode
//this is temporary until the viewer becomes editable
run: options.run || false,
key: options.key,
password: options.password,
// Force calling subfield render
// as user may have modified the input value
render_timestamp: new Date().getTime()
......
......@@ -99,7 +99,8 @@
READONLY_CONFIGURATION,
is_responsive: (options.configuration_mobile !== undefined) ||
(options.configuration === undefined),
is_mobile: MATCH_MEDIA.matches
is_mobile: MATCH_MEDIA.matches,
language: options.language
});
})
......@@ -124,7 +125,8 @@
modification_dict.hasOwnProperty('configuration_readonly') ||
modification_dict.hasOwnProperty('is_responsive') ||
modification_dict.hasOwnProperty('is_mobile') ||
modification_dict.hasOwnProperty('editable')) {
modification_dict.hasOwnProperty('editable') ||
modification_dict.hasOwnProperty('language')) {
// Expected configuration changed.
// Recreate ckeditor
if (gadget.hasOwnProperty('ckeditor')) {
......@@ -139,6 +141,10 @@
} else {
configuration = gadget.state.configuration;
}
if (CKEDITOR.lang.languages[gadget.state.language] !== undefined) {
configuration.language = gadget.state.language;
configuration.defaultLanguage = gadget.state.language;
}
gadget.on_change_listener = gadget.deferNotifyChange.bind(gadget);
gadget.ckeditor = CKEDITOR.replace(
this.element.querySelector('textarea'),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment