From 41bcedc6768f657d8ed913740c606f1fdbc68122 Mon Sep 17 00:00:00 2001
From: Yoshinori Okuji <yo@nexedi.com>
Date: Mon, 21 Apr 2008 15:50:02 +0000
Subject: [PATCH] not used any longer

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@20716 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/CMFTranslation/.cvsignore             |   1 -
 product/CMFTranslation/CREDITS.txt            |   0
 product/CMFTranslation/GPL.txt                | 340 ----------
 product/CMFTranslation/INSTALL.txt            | 168 -----
 .../Localizer_fast_lang_select.patch          |  29 -
 product/CMFTranslation/README.txt             |  53 --
 product/CMFTranslation/TODO.txt               |   7 -
 product/CMFTranslation/TranslationTool.py     | 303 ---------
 product/CMFTranslation/VERSION.txt            |   1 -
 product/CMFTranslation/ZPL.txt                |  59 --
 product/CMFTranslation/__init__.py            |  95 ---
 .../dtml/explainTranslationTool.dtml          |  40 --
 product/CMFTranslation/help/migration.stx     |  14 -
 product/CMFTranslation/kbabel.png             | Bin 54602 -> 0 bytes
 product/CMFTranslation/localizer.diff         | 228 -------
 product/CMFTranslation/migrate_content.zexp   | Bin 551 -> 0 bytes
 .../skins/content18/TranslatedBody.py         |  42 --
 .../skins/content18/TranslatedDescription.py  |  46 --
 .../skins/content18/TranslatedTitle.py        |  46 --
 .../skins/content18/TranslatedTitle_or_id.py  |  46 --
 .../content18/discussionitem18_view.dtml      |  24 -
 .../skins/content18/document18_view.dtml      |  16 -
 .../skins/content18/favorite18_view.dtml      |  23 -
 .../skins/content18/file18_view.dtml          |  28 -
 .../skins/content18/folder18_view.dtml        |  49 --
 .../skins/content18/folder_contents.dtml      | 164 -----
 .../skins/content18/getTranslatedBody.py      |   1 -
 .../content18/getTranslatedDescription.py     |   1 -
 .../skins/content18/getTranslatedTitle.py     |   1 -
 .../skins/content18/getTranslatedTitleOrId.py |   1 -
 .../skins/content18/image18_view.dtml         |  19 -
 .../skins/content18/link18_view.dtml          |  25 -
 .../skins/content18/newsitem18_view.dtml      |  28 -
 .../skins/content18/translation_edit.py       |  69 --
 .../content18/translation_edit_form.dtml      |  84 ---
 .../content18/translation_register_form.dtml  |  65 --
 .../content18/translation_status_modify.py    |  66 --
 .../content18/translation_submit_form.dtml    |  65 --
 .../skins/content18/translation_template.dtml |  26 -
 .../skins/content18/translation_view.dtml     |  16 -
 .../skins/nexedi/CurrentSection.py            |  29 -
 .../skins/nexedi/CurrentSubSection.py         |  31 -
 product/CMFTranslation/skins/nexedi/TODO      |   3 -
 .../skins/nexedi/breadcrumb.dtml              |   6 -
 .../skins/nexedi/change_language.py           |  15 -
 .../skins/nexedi/combined_subjects.py         |  40 --
 .../skins/nexedi/content_hide_form.dtml       |  81 ---
 .../skins/nexedi/content_publish_form.dtml    |  80 ---
 .../skins/nexedi/content_reject_form.dtml     |  78 ---
 .../skins/nexedi/content_release_form.dtml    |  81 ---
 .../skins/nexedi/content_retract_form.dtml    |  78 ---
 .../skins/nexedi/content_show_form.dtml       |  82 ---
 .../skins/nexedi/content_submit_form.dtml     |  83 ---
 .../skins/nexedi/corporate_workflow.png       | Bin 8835 -> 0 bytes
 .../skins/nexedi/default_stylesheet.dtml      | 589 -----------------
 .../skins/nexedi/document18_miniprint.dtml    |  44 --
 .../skins/nexedi/document18_print.dtml        |  44 --
 .../skins/nexedi/document18_view.dtml         |  16 -
 .../skins/nexedi/document_print.dtml          |  43 --
 .../skins/nexedi/document_view.dtml           |  16 -
 .../CMFTranslation/skins/nexedi/favicon.ico   | Bin 281 -> 0 bytes
 .../CMFTranslation/skins/nexedi/fileprint.png | Bin 1210 -> 0 bytes
 .../skins/nexedi/folder18_view.dtml           |  61 --
 .../skins/nexedi/folder_localrole_form.dtml   | 140 ----
 .../skins/nexedi/getLocalizedPath.py          |  43 --
 .../CMFTranslation/skins/nexedi/index_html    |  38 --
 .../skins/nexedi/index_html.dtml              |  38 --
 .../skins/nexedi/language_selector.dtml       |  19 -
 .../skins/nexedi/latest_box.dtml              |  85 ---
 .../skins/nexedi/list_subtopics.pt            |   6 -
 .../skins/nexedi/list_topic_vocabulary.dtml   |   6 -
 .../skins/nexedi/local_absolute_url.py        |  15 -
 product/CMFTranslation/skins/nexedi/logo.png  | Bin 6140 -> 0 bytes
 .../skins/nexedi/mail_password.py             |  13 -
 .../CMFTranslation/skins/nexedi/menu_box.pt   |  37 --
 .../CMFTranslation/skins/nexedi/news_box.dtml |  51 --
 .../skins/nexedi/newsitem18_print.dtml        |  55 --
 .../skins/nexedi/newsitem18_view.dtml         |  35 -
 .../skins/nexedi/newsitem_mail_form.dtml      |  51 --
 .../CMFTranslation/skins/nexedi/newsitem_view |  27 -
 .../skins/nexedi/newsitem_view.dtml           |  27 -
 .../nexedi/pr_printable_html_header.dtml      |  53 --
 .../skins/nexedi/pr_printable_stylesheet.dtml | 606 -----------------
 .../skins/nexedi/printable_html_footer.dtml   |   7 -
 .../skins/nexedi/printable_html_header.dtml   |  39 --
 .../skins/nexedi/printable_stylesheet.dtml    | 617 ------------------
 .../skins/nexedi/public_subtopics.py          |  22 -
 .../skins/nexedi/quick_login.dtml             |  84 ---
 .../skins/nexedi/recent_additions.dtml        | 112 ----
 .../skins/nexedi/recent_news.dtml             |  53 --
 .../CMFTranslation/skins/nexedi/search.dtml   |  78 ---
 .../skins/nexedi/search_form.dtml             | 161 -----
 .../skins/nexedi/secure_absolute_url.py       |  16 -
 .../skins/nexedi/set_criteria.py              |  37 --
 .../skins/nexedi/site_vocabulary.dtml         |  14 -
 .../skins/nexedi/standard_html_footer         |  25 -
 .../skins/nexedi/standard_html_footer.dtml    |  19 -
 .../skins/nexedi/standard_html_header.dtml    | 134 ----
 .../skins/nexedi/standard_top_bar.dtml        |  42 --
 .../skins/nexedi/stylesheet_properties.props  |  30 -
 .../skins/nexedi/topic_view.dtml              |  85 ---
 .../skins/nexedi/update_http_cache.py         |  28 -
 .../skins/nexedi/wikipage_view.dtml           |   8 -
 .../zpt_content18/discussionitem18_view.pt    |  39 --
 .../skins/zpt_content18/document18_view.pt    |  36 -
 .../skins/zpt_content18/favorite18_view.pt    |  39 --
 .../skins/zpt_content18/file18_view.pt        |  68 --
 .../skins/zpt_content18/folder_contents.pt    | 155 -----
 .../zpt_content18/full_metadata_edit_form.pt  | 149 -----
 .../skins/zpt_content18/image18_view.pt       |  35 -
 .../skins/zpt_content18/link18_view.pt        |  38 --
 .../skins/zpt_content18/newsitem18_view.pt    |  35 -
 .../zpt_content18/translation_template.pt     |  68 --
 .../skins/zpt_nexedi/actions_box.pt           |  64 --
 .../skins/zpt_nexedi/folder18_view.pt         |  51 --
 .../skins/zpt_nexedi/main_template.pt         | 161 -----
 .../skins/zpt_nexedi/navigation_box.pt        |  63 --
 .../skins/zpt_nexedi/newsitem18_view.pt       |  38 --
 product/CMFTranslation/spec/Base18.spec       | 141 ----
 product/CMFTranslation/tool.png               | Bin 286 -> 0 bytes
 .../CMFTranslation/translation_workflow.zexp  | Bin 8295 -> 0 bytes
 product/CMFTranslation/utils.py               | 142 ----
 122 files changed, 8067 deletions(-)
 delete mode 100755 product/CMFTranslation/.cvsignore
 delete mode 100755 product/CMFTranslation/CREDITS.txt
 delete mode 100755 product/CMFTranslation/GPL.txt
 delete mode 100755 product/CMFTranslation/INSTALL.txt
 delete mode 100755 product/CMFTranslation/Localizer_fast_lang_select.patch
 delete mode 100755 product/CMFTranslation/README.txt
 delete mode 100755 product/CMFTranslation/TODO.txt
 delete mode 100755 product/CMFTranslation/TranslationTool.py
 delete mode 100755 product/CMFTranslation/VERSION.txt
 delete mode 100755 product/CMFTranslation/ZPL.txt
 delete mode 100755 product/CMFTranslation/__init__.py
 delete mode 100755 product/CMFTranslation/dtml/explainTranslationTool.dtml
 delete mode 100755 product/CMFTranslation/help/migration.stx
 delete mode 100755 product/CMFTranslation/kbabel.png
 delete mode 100755 product/CMFTranslation/localizer.diff
 delete mode 100755 product/CMFTranslation/migrate_content.zexp
 delete mode 100755 product/CMFTranslation/skins/content18/TranslatedBody.py
 delete mode 100755 product/CMFTranslation/skins/content18/TranslatedDescription.py
 delete mode 100755 product/CMFTranslation/skins/content18/TranslatedTitle.py
 delete mode 100755 product/CMFTranslation/skins/content18/TranslatedTitle_or_id.py
 delete mode 100755 product/CMFTranslation/skins/content18/discussionitem18_view.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/document18_view.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/favorite18_view.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/file18_view.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/folder18_view.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/folder_contents.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/getTranslatedBody.py
 delete mode 100755 product/CMFTranslation/skins/content18/getTranslatedDescription.py
 delete mode 100755 product/CMFTranslation/skins/content18/getTranslatedTitle.py
 delete mode 100755 product/CMFTranslation/skins/content18/getTranslatedTitleOrId.py
 delete mode 100755 product/CMFTranslation/skins/content18/image18_view.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/link18_view.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/newsitem18_view.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/translation_edit.py
 delete mode 100755 product/CMFTranslation/skins/content18/translation_edit_form.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/translation_register_form.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/translation_status_modify.py
 delete mode 100755 product/CMFTranslation/skins/content18/translation_submit_form.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/translation_template.dtml
 delete mode 100755 product/CMFTranslation/skins/content18/translation_view.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/CurrentSection.py
 delete mode 100755 product/CMFTranslation/skins/nexedi/CurrentSubSection.py
 delete mode 100755 product/CMFTranslation/skins/nexedi/TODO
 delete mode 100755 product/CMFTranslation/skins/nexedi/breadcrumb.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/change_language.py
 delete mode 100755 product/CMFTranslation/skins/nexedi/combined_subjects.py
 delete mode 100755 product/CMFTranslation/skins/nexedi/content_hide_form.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/content_publish_form.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/content_reject_form.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/content_release_form.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/content_retract_form.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/content_show_form.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/content_submit_form.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/corporate_workflow.png
 delete mode 100755 product/CMFTranslation/skins/nexedi/default_stylesheet.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/document18_miniprint.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/document18_print.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/document18_view.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/document_print.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/document_view.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/favicon.ico
 delete mode 100755 product/CMFTranslation/skins/nexedi/fileprint.png
 delete mode 100755 product/CMFTranslation/skins/nexedi/folder18_view.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/folder_localrole_form.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/getLocalizedPath.py
 delete mode 100755 product/CMFTranslation/skins/nexedi/index_html
 delete mode 100755 product/CMFTranslation/skins/nexedi/index_html.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/language_selector.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/latest_box.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/list_subtopics.pt
 delete mode 100755 product/CMFTranslation/skins/nexedi/list_topic_vocabulary.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/local_absolute_url.py
 delete mode 100755 product/CMFTranslation/skins/nexedi/logo.png
 delete mode 100755 product/CMFTranslation/skins/nexedi/mail_password.py
 delete mode 100755 product/CMFTranslation/skins/nexedi/menu_box.pt
 delete mode 100755 product/CMFTranslation/skins/nexedi/news_box.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/newsitem18_print.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/newsitem18_view.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/newsitem_mail_form.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/newsitem_view
 delete mode 100755 product/CMFTranslation/skins/nexedi/newsitem_view.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/pr_printable_html_header.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/pr_printable_stylesheet.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/printable_html_footer.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/printable_html_header.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/printable_stylesheet.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/public_subtopics.py
 delete mode 100755 product/CMFTranslation/skins/nexedi/quick_login.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/recent_additions.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/recent_news.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/search.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/search_form.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/secure_absolute_url.py
 delete mode 100755 product/CMFTranslation/skins/nexedi/set_criteria.py
 delete mode 100755 product/CMFTranslation/skins/nexedi/site_vocabulary.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/standard_html_footer
 delete mode 100755 product/CMFTranslation/skins/nexedi/standard_html_footer.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/standard_html_header.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/standard_top_bar.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/stylesheet_properties.props
 delete mode 100755 product/CMFTranslation/skins/nexedi/topic_view.dtml
 delete mode 100755 product/CMFTranslation/skins/nexedi/update_http_cache.py
 delete mode 100755 product/CMFTranslation/skins/nexedi/wikipage_view.dtml
 delete mode 100755 product/CMFTranslation/skins/zpt_content18/discussionitem18_view.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_content18/document18_view.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_content18/favorite18_view.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_content18/file18_view.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_content18/folder_contents.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_content18/full_metadata_edit_form.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_content18/image18_view.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_content18/link18_view.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_content18/newsitem18_view.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_content18/translation_template.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_nexedi/actions_box.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_nexedi/folder18_view.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_nexedi/main_template.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_nexedi/navigation_box.pt
 delete mode 100755 product/CMFTranslation/skins/zpt_nexedi/newsitem18_view.pt
 delete mode 100755 product/CMFTranslation/spec/Base18.spec
 delete mode 100755 product/CMFTranslation/tool.png
 delete mode 100755 product/CMFTranslation/translation_workflow.zexp
 delete mode 100755 product/CMFTranslation/utils.py

diff --git a/product/CMFTranslation/.cvsignore b/product/CMFTranslation/.cvsignore
deleted file mode 100755
index 0d20b6487c..0000000000
--- a/product/CMFTranslation/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-*.pyc
diff --git a/product/CMFTranslation/CREDITS.txt b/product/CMFTranslation/CREDITS.txt
deleted file mode 100755
index e69de29bb2..0000000000
diff --git a/product/CMFTranslation/GPL.txt b/product/CMFTranslation/GPL.txt
deleted file mode 100755
index dcfa4c235e..0000000000
--- a/product/CMFTranslation/GPL.txt
+++ /dev/null
@@ -1,340 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/product/CMFTranslation/INSTALL.txt b/product/CMFTranslation/INSTALL.txt
deleted file mode 100755
index 8333ecb977..0000000000
--- a/product/CMFTranslation/INSTALL.txt
+++ /dev/null
@@ -1,168 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                   Jean-Paul Smets <jp@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-#
-# This program as such is not intended to be used by end users. End
-# users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-
-Warning
-
-  This product is a proof of concept for hard core Zope developers.
-  Wait version 0.2 to get something usable
-
-Requirements
-
-  You will need a Zope system with "CMF":http://cmf.zope.org
-  and with "Localizer":http://www.nuxeo.org/localizer
-
-Mail list
-
-  You may want to subscribe to the Base18 mail list::
-
-    http://mail.freesoftware.fsf.org/mailman/listinfo/erp5-base18
-    erp5-base18@mail.freesoftware.fsf.org
-
-Installation Instructions
-
-  Download the Base18 tarball::
-
-    http://www.zope.org/Members/nexedi/Base18/Base18-0.1.tar.gz
-
-  or the latest CVS::
-
-    https://savannah.gnu.org/cgi-bin/viewcvs/erp5/Base18/
-
-  Install it in your local Zope product directory (ex. /var/lib/zope/Products on
-  Debian systems). Untar it.
-
-  Copy the files translation_workflow.zexp and migrate_content.zexp in the
-  Base18 directory into to your Zope import directory (ex. /var/lib/zope/import
-  on a   Debian  system).
-
-  Copy the file Extensions/MigrateContent.py to your Zope
-  Extensions directory (ex. /var/lib/zope/Extensions
-  on a Debian  system).
-
-  Create a CMF site.
-
-  Import migrate_content.zexp at the root of your CMF site.
-
-  Import translation_workflow.zexp the content of your portal_worflow.
-
-  Execute the migrate_content external method at the root of your CMF
-  site (click on it and then on the Test button).
-
-  This will modify the default portal types and register the Base18 portal
-  types. You may at this point eventually need to reinder your CMF. The
-  migrate_content external method can also be used to migrate an entire site.
-
-  At this step, you need to modifiy the portal_workflow workflow associations
-  in order to associate the Translation portal type to the translation_workflow
-  workflow
-
-Demos
-
-  There are two ways to use Base18.
-
-  For sites which do not contain much content and which are centralized,
-  it is sufficient to manage translations through a single gettext message
-  catalog. Thanks to Base18, content is automatically cut into small paragraphs
-  or sentences. It is then possible to export sentences with the Localizer
-  export feature into .pot or .po files. Such files can then be translated
-  mith toolds such as KBabel (see kbabel.png).
-
-  This first approach is used on "Storever":http://www.storever.com for
-  example
-
-  For sites which contain many documents for which different people
-  may want to translate single documents in multiple languages,
-  it is then recommended to proceed in 3 steps:
-
-  - Use the *Translate* menu of the document you want to translate
-    in order to download a .pot file which can be edited with kbabel
-
-  - Create a new *Translation* document in your personal folder
-    (My Stuff) within the CMF and upload the .pot file which
-    you translated at the previous step. At this step, you
-    must define the target language and the target document
-    of your translation
-
-  - Submit this translation to the portal reviewers so that
-    they can register your translation for that document
-    (use the menu on the left)
-
-  This process involves two new portal types
-
-  - a Translation portal type which is used to store
-    translations (ie. .po files for 1 language for 1 document)
-
-  - a portal_translations which registers the relations
-    between documents and translations (this tool also
-    implements the heuristics to find the most appropriate
-    translation for a given document and a given language)
-
-  The whole system allows to split the work of translation
-  accross all members of a given portal.
-
-  This second approach is being tested on the "ERP5 portal":http://www.erp5.org
-
-  We recommend to become member of ERP5 (a project to design a Zope based ERP)
-  in order to try Base18 first.
-
-Localizer Patch
-
-  We patched Localizer in order to improve its operation with KBabel and
-  with cookies.
-
-  MessageCatalog.py
-
-      - improved export procedure
-        so that it generates multi-line strings properly
-        (all lines are exported)
-
-      - improved export procedure
-        to escape quotes
-            " -> \"
-
-      Exported messages can now be read without errror by KBabel
-
-  __init__.py
-
-      - changed language value from string type to tuple type
-        so that it is now consistent with AcceptLanguage
-        list-based algorithm
-
-  zgettext.py
-
-      - improved import procedure so that it handles
-        multi-line strings (all lines are now
-        read into the message catalog)
-
-      - improved export procedure
-        to unescape quotes
-            \" -> \
-
-      KBabel .po files can now be read
diff --git a/product/CMFTranslation/Localizer_fast_lang_select.patch b/product/CMFTranslation/Localizer_fast_lang_select.patch
deleted file mode 100755
index 4f266a3ac2..0000000000
--- a/product/CMFTranslation/Localizer_fast_lang_select.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Les sous-répertoires ./help et /home/jp/Localizer/help sont identiques.
-Les sous-répertoires ./img et /home/jp/Localizer/img sont identiques.
-Les sous-répertoires ./locale et /home/jp/Localizer/locale sont identiques.
-Les sous-répertoires ./tests et /home/jp/Localizer/tests sont identiques.
-Les sous-répertoires ./ui et /home/jp/Localizer/ui sont identiques.
-diff -u ./Utils.py /home/jp/Localizer/Utils.py
---- ./Utils.py	2003-06-07 03:31:54.000000000 +0200
-+++ /home/jp/Localizer/Utils.py	2003-06-07 03:32:44.000000000 +0200
-@@ -54,7 +54,8 @@
- 
-     request = get_request()
- 
--    lang = request.AcceptLanguage.select_language(available_languages)
-+    return getattr(request.PARENTS[0],'FOLDER_LANGUAGE','en')
-+    #lang = request.AcceptLanguage.select_language(available_languages)
- 
- 
-     # XXX Here we should set the Vary header, but, which value should it have??
-@@ -62,7 +63,7 @@
- ##    response.setHeader('Vary', 'accept-language')
- ##    response.setHeader('Vary', '*')
- 
--    return lang
-+    #return lang
- 
- 
- # Defines strings that must be internationalized
-Seulement dans ./: Utils.py.orig
-Seulement dans /home/jp/Localizer: Utils.py.rej
diff --git a/product/CMFTranslation/README.txt b/product/CMFTranslation/README.txt
deleted file mode 100755
index 5e6963fc22..0000000000
--- a/product/CMFTranslation/README.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                   Jean-Paul Smets <jp@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-#
-# This program as such is not intended to be used by end users. End
-# users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-
-Base18 is a Zope product which allows to build multilingual portals. It uses
-Localizer and extends the Zope CMFDefault product to provide a way
-to translate documents at a sentence per sentence level.
-
-It implements a new kind of CMF document: Translations. Translations allow to
-store a .po file which allows to translate a given document. This approach
-was inspired by the poxml approach used by the "KDE":http://www.kde.org project
-to translate its documentation.
-
-Because it works at the sentence or paragraph level, it is possible to use
-the fuzzy feature of gettext to find similar translations for a given sentence
-and accelerate the translation process.
-
-Base18 also includes a translation workflow which allows to keep track
-of translations and their association to documents in a portal.
-
-Base18 is currently much of a "proof-of-concept" which needs to be extended.
-Future versions will include greater flexibility and will implement relations.
-
-More information can be found on the "Nexedi":http://www.nexedi.org/software
-site::
-
-    http://www.nexedi.org/software
diff --git a/product/CMFTranslation/TODO.txt b/product/CMFTranslation/TODO.txt
deleted file mode 100755
index ad4d9b5b4c..0000000000
--- a/product/CMFTranslation/TODO.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-TODO:
-
-Version 0.1 (Done)
-    - proof of concept
-
-Version 1.0
-    - Release
diff --git a/product/CMFTranslation/TranslationTool.py b/product/CMFTranslation/TranslationTool.py
deleted file mode 100755
index 46f37d61e7..0000000000
--- a/product/CMFTranslation/TranslationTool.py
+++ /dev/null
@@ -1,303 +0,0 @@
-##############################################################################
-#
-# Base18: a Zope product which provides multilingual services for CMF Default
-#         documents.
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional 
-# programmers who take the whole responsability of assessing all potential 
-# consequences resulting from its eventual inadequacies and bugs
-#
-# This program as such is not intended to be used by end users. End 
-# users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-__version__ = "$Revision$"[11:-2]
-__doc__ = "This product provides the basic behaviour to CMF object which need\
- translation"
-
-
-"""\
-Base18 portal_translation tool.
-"""
-
-from OFS.SimpleItem import SimpleItem
-from Products.CMFCore.utils import UniqueObject
-from Globals import InitializeClass, DTMLFile, PersistentMapping
-from AccessControl import ClassSecurityInfo, getSecurityManager
-from Products.CMFCore import CMFCorePermissions
-from utils import _dtmldir, _translate_txt, _translate_html, _translate_stx
-from Products.Localizer.Utils import lang_negotiator
-from Products.Localizer.MessageCatalog import MessageCatalog
-from BTrees.OOBTree import OOBTree
-from zLOG import LOG
-
-class TranslationError( Exception ):
-    pass
-
-class TranslationTool( UniqueObject, SimpleItem ):
-
-    id              = 'portal_translations'
-    meta_type       = 'CMF Translation Tool'
-
-    security = ClassSecurityInfo()
-
-    #
-    #   Default values.
-    #
-    registered_translations = None
-
-    def __init__( self ):
-        self._registered_translations = OOBTree()
-        self._translation_cache = OOBTree()        
-        
-    #
-    #   ZMI methods
-    #
-    manage_options = ( ( { 'label'      : 'Overview'
-                         , 'action'     : 'manage_overview'
-                         }
-                       , { 'label'      : 'Properties'
-                         , 'action'     : 'propertiesForm'
-                         }
-                       )
-                     + SimpleItem.manage_options
-                     )
-
-    security.declareProtected( CMFCorePermissions.ManagePortal
-                             , 'manage_overview' )
-    manage_overview = DTMLFile( 'explainTranslationTool', _dtmldir )
-
-    security.declareProtected( CMFCorePermissions.ManagePortal
-                             , 'propertiesForm' )
-    propertiesForm = DTMLFile( 'translationProperties', _dtmldir )
-
-    security.declareProtected( CMFCorePermissions.ManagePortal
-                             , 'editProperties' )
-    def editProperties( self
-                      , publisher=None
-                      , REQUEST=None
-                      ):
-        """
-            Form handler for "tool-wide" properties (including list of
-            metadata elements).
-        """
-        if publisher is not None:
-            self.publisher = publisher
-
-        if REQUEST is not None:
-            REQUEST[ 'RESPONSE' ].redirect( self.absolute_url()
-                                        + '/propertiesForm'
-                                        + '?manage_tabs_message=Tool+updated.'
-                                        )
-
-    #
-    #   'portal_translations' interface
-    #
-
-    security.declarePublic( 'findMessageCatalog' )
-    def findMessageCatalog(self, content, language=None, section=None):
-        """
-            Return the default message catalog for
-            an object to translate
-            For now, look in the same directory
-            or in the acquisition path either for a message catalog for
-            that object or for a message more global catalog
-            In the future, we will try to look at message catalogs provided by
-            users.
-
-            A workklow will be used to manage the status of translations
-        """
-        translation_path, translation = self.findRegisteredTranslation(content)
-        if translation is not None:
-            #LOG('Found Registered Translation',0,str(translation))
-            return translation
-            #return translation.getMessageCatalog()
-        else:
-            #LOG('Found No Registered Translation',0,'')
-            # A default translation is provided if and only if no translation is set on the 
-            # focument with default language
-            return getattr(content, str(content.id) + '.msg' ,
-                            getattr(content.Localizer, 'content', None))
-
-    # Translation registration catalog
-    # Can be improved a lot (of course)
-    security.declarePublic( 'registerTranslation' )
-    def registerTranslation(self, content, translation, translation_path, language=None, section=None):
-        """
-            This function allows to register a user translation
-            
-            content  --   A CMF document for which the translation
-                          should be used
-            
-            translation -- A string containing a gettext formatted translation
-                           definition
-
-            translation_path -- a path to the document which holds the translation                                                      
-                           
-            language -- The language provided in translation
-            
-            section -- an optional string whenever multiple translations are required 
-                       for a given                    
-        """
-        if translation is not None:
-          # Build a new message catalog and import translation
-          mc = MessageCatalog("mc", "Message Catalog", (language,))
-          aq_mc = mc.__of__(self)
-          aq_mc.manage_import(language, translation)                        
-        else:
-          mc = None          
-        # Get the path of content and translation
-        content_path = content.getPhysicalPath()
-        # Register the path for content and translation for language
-        if not self._registered_translations.has_key(content_path):
-          self._registered_translations[content_path] = PersistentMapping()
-        self._registered_translations[content_path][(language,section)] = (translation_path, mc)
-    
-
-    security.declarePublic( 'findRegisteredTranslation' )
-    def findRegisteredTranslation(self, content, language=None, section=None):
-        """
-            This function allows to find if a translation has been registered
-        """
-        content_path = content.getPhysicalPath()
-        #LOG('Lookup translation for',0,str(content_path))
-        if self._registered_translations.has_key(content_path):
-            # Find negociated language if necessary
-            if language is None:
-                language = lang_negotiator([content.language] +
-                        map(lambda x:x[0], self._registered_translations[content_path].keys()))
-                if language is None:
-                    return None, None
-            if self._registered_translations[content_path].has_key((language, section)):
-              translation_path, mc = \
-                self._registered_translations[content_path].get((language, section))
-              #LOG('Found Translation %s for %s' % (translation_path,language),0,str(mc))  
-            else:
-                #LOG('No Translation Found',0,'')
-                return None, None                
-            if mc is None:
-                #LOG('No Translation Found',0,'')
-                return None, None
-            else:
-                #LOG('Translation Found',0,translation_path)
-                return translation_path, mc
-        else:
-            #LOG('No Registered Translation Found',0,'')
-            return None, None
-    
-    security.declarePublic( 'translateContent' )
-    def translateContent(self, content, txt, language=None, section=None, format='txt'):
-        """
-            This function allows to find if a translation has been registered
-        """
-        content_path = content.getPhysicalPath()
-        md = self.findMessageCatalog(content, language=language, section=section)
-        if md is not None:
-          if format == 'txt':
-            return _translate_txt(txt, md)
-          elif format == 'stx':
-            return _translate_stx(txt, md)
-          else:
-            return _translate_html(txt, md)
-        else:
-          return txt
-    
-    security.declarePublic( 'getTranslationTemplate' )
-    def getTranslationTemplate(self, content, view_method_id=None, section=None):
-        """
-            This function allows to find if a translation has been registered
-        """
-        content_path = content.getPhysicalPath()
-        if not self._registered_translations.has_key(content_path):
-          self._registered_translations[content_path] = PersistentMapping()
-        # Use default language
-        language = lang_negotiator([content.language] + 
-                        map(lambda x:x[0], self._registered_translations[content_path].keys()))
-        # Backup existing message catalog        
-        backup = self._registered_translations[content_path].get((language,section))        
-        # Create a new catalog
-        mc = MessageCatalog('temp', 'Temporary Message Catalog', (language, )).__of__(self)
-        # Associate it
-        #LOG('Register translation for',0,str(content_path))
-        self._registered_translations[content_path][(language,section)] = ('temp', mc)
-        # Simulate rendering of page
-        if view_method_id is None:
-            content()
-        else:
-            getattr(content, view_method_id)()
-        # Reset backup
-        if backup is not None:
-          self._registered_translations[content_path][(language,section)] = backup
-        else:          
-          del self._registered_translations[content_path][(language,section)]
-        # And return the template
-        return mc.manage_export('locale.pt')
-                
-    security.declarePublic( 'testTranslation' )
-    def testTranslation(self, content, translation, view_method_id=None, section=None):
-        """
-            This function allows to register a user translation
-            
-            content  --   A CMF document for which the translation
-                          should be used
-            
-            translation -- A string containing a gettext formatted translation
-                           definition
-
-            translation_path -- a path to the document which holds the translation                                                      
-                           
-            language -- The language provided in translation
-            
-            section -- an optional string whenever multiple translations are required 
-                       for a given                    
-        """
-        content_path = content.getPhysicalPath()
-        if not self._registered_translations.has_key(content_path):
-          self._registered_translations[content_path] = PersistentMapping()
-        # Use default language
-        language = lang_negotiator([content.language] + 
-                        map(lambda x:x[0], self._registered_translations[content_path].keys()))
-        # Backup existing message catalog        
-        backup = self._registered_translations[content_path].get((language,section))        
-        # Create a new catalog
-        # Build a new message catalog and import translation
-        mc = MessageCatalog("mc", "Message Catalog", (language,))
-        aq_mc = mc.__of__(self)
-        aq_mc.manage_import(language, translation)                        
-        # Associate it
-        #LOG('Register translation for',0,str(content_path))
-        self._registered_translations[content_path][(language,section)] = ('temp', mc)
-        # Simulate rendering of page
-        if view_method_id is None:
-            result = content()
-        else:
-            result = getattr(content, view_method_id)()
-        # Reset backup
-        if backup is not None:
-          self._registered_translations[content_path][(language,section)] = backup
-        else:          
-          del self._registered_translations[content_path][(language,section)]
-        # And return the translated page
-        return result
-                
-
-InitializeClass( TranslationTool )
diff --git a/product/CMFTranslation/VERSION.txt b/product/CMFTranslation/VERSION.txt
deleted file mode 100755
index 7e1efe097c..0000000000
--- a/product/CMFTranslation/VERSION.txt
+++ /dev/null
@@ -1 +0,0 @@
-Base18 0.1
diff --git a/product/CMFTranslation/ZPL.txt b/product/CMFTranslation/ZPL.txt
deleted file mode 100755
index 44e0648b31..0000000000
--- a/product/CMFTranslation/ZPL.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-Zope Public License (ZPL) Version 2.0
------------------------------------------------
-
-This software is Copyright (c) Zope Corporation (tm) and
-Contributors. All rights reserved.
-
-This license has been certified as open source. It has also
-been designated as GPL compatible by the Free Software
-Foundation (FSF).
-
-Redistribution and use in source and binary forms, with or
-without modification, are permitted provided that the
-following conditions are met:
-
-1. Redistributions in source code must retain the above
-   copyright notice, this list of conditions, and the following
-   disclaimer.
-
-2. Redistributions in binary form must reproduce the above
-   copyright notice, this list of conditions, and the following
-   disclaimer in the documentation and/or other materials
-   provided with the distribution.
-
-3. The name Zope Corporation (tm) must not be used to
-   endorse or promote products derived from this software
-   without prior written permission from Zope Corporation.
-
-4. The right to distribute this software or to use it for
-   any purpose does not give you the right to use Servicemarks
-   (sm) or Trademarks (tm) of Zope Corporation. Use of them is
-   covered in a separate agreement (see
-   http://www.zope.com/Marks).
-
-5. If any files are modified, you must cause the modified
-   files to carry prominent notices stating that you changed
-   the files and the date of any change.
-
-Disclaimer
-
-  THIS SOFTWARE IS PROVIDED BY ZOPE CORPORATION ``AS IS''
-  AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
-  NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-  AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
-  NO EVENT SHALL ZOPE CORPORATION OR ITS CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-  DAMAGE.
-
-
-This software consists of contributions made by Zope
-Corporation and many individuals on behalf of Zope
-Corporation.  Specific attributions are listed in the
-accompanying credits file.
diff --git a/product/CMFTranslation/__init__.py b/product/CMFTranslation/__init__.py
deleted file mode 100755
index 7a551c4992..0000000000
--- a/product/CMFTranslation/__init__.py
+++ /dev/null
@@ -1,95 +0,0 @@
-##############################################################################
-# 
-# Base18: a Zope product which provides multilingual services for CMF Default
-#         documents.
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential 
-# consequences resulting from its eventual inadequacies and bugs
-#
-# This program as such is not intended to be used by end users. End 
-# users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-# TODO:
-#      - Implement Vary so that cache can take into account translated version
-#      - Implement language caching....
-#
-##############################################################################
-"""
-"""
-
-ADD_CONTENT_PERMISSION = 'Add portal content'
-
-import TranslationTool
-
-from Products.CMFCore import utils
-import Products.CMFCore
-from Products.CMFCore.DirectoryView import registerDirectory
-
-contentClasses = ( )
-
-
-contentConstructors = ( )
-
-contentFactoryTypeInformations = []
-for content in contentClasses:
-    if type(content.factory_type_information) == type({}):
-      contentFactoryTypeInformations.append(content.factory_type_information)
-    else:
-      contentFactoryTypeInformations.append(content.factory_type_information[0])
-
-tools = ( TranslationTool.TranslationTool,
-        )
-
-bases = contentClasses
-
-import sys
-this_module = sys.modules[ __name__ ]
-
-z_bases = utils.initializeBasesPhase1( bases, this_module )
-z_tool_bases = utils.initializeBasesPhase1( tools, this_module )
-
-base18_globals=globals()
-
-# Make the skins available as DirectoryViews.
-registerDirectory('skins', globals())
-registerDirectory('help', globals())
-
-def initialize( context ):
-
-    utils.initializeBasesPhase2( z_bases, context )
-    utils.initializeBasesPhase2( z_tool_bases, context )
-    
-    utils.ToolInit('CMFTranslation Tool', tools=tools,
-                   product_name='CMFTranslation', icon='tool.png',
-                   ).initialize( context )
-
-    utils.ContentInit( 'CMFTranslation Content'
-                     , content_types=contentClasses
-                     , permission=ADD_CONTENT_PERMISSION
-                     , extra_constructors=contentConstructors
-                     , fti=contentFactoryTypeInformations
-                     ).initialize( context )    
-
-    context.registerHelp()
-    context.registerHelpTitle('CMFTranslation Help')
-
diff --git a/product/CMFTranslation/dtml/explainTranslationTool.dtml b/product/CMFTranslation/dtml/explainTranslationTool.dtml
deleted file mode 100755
index bba378e44f..0000000000
--- a/product/CMFTranslation/dtml/explainTranslationTool.dtml
+++ /dev/null
@@ -1,40 +0,0 @@
-<dtml-comment>
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-                    Jean-Paul Smets <jp@nexedi.com>
-
-WARNING: This program as such is intended to be used by professional
-programmers who take the whole responsability of assessing all potential
-consequences resulting from its eventual inadequacies and bugs
-
-This program as such is not intended to be used by end users. End
-users who are looking for a ready-to-use solution with commercial
-garantees and support are strongly adviced to contract a Free Software
-Service Company
-
-This program is Free Software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-</dtml-comment>
-
-<dtml-var manage_page_header>
-<dtml-var manage_tabs>
-
-<h3> <code>portal_translations</code> Tool </h3>
-
-<p> This tool embodies site-wide policies concerning content translation.
-    The default heuristics consists in searching first for a message
-    catalog next to the document, then a translation created by a member
-    and in the end a global message catalog.
-</p>
-
-<dtml-var manage_page_footer>
diff --git a/product/CMFTranslation/help/migration.stx b/product/CMFTranslation/help/migration.stx
deleted file mode 100755
index 53e8bbc1b8..0000000000
--- a/product/CMFTranslation/help/migration.stx
+++ /dev/null
@@ -1,14 +0,0 @@
-Updating an existing Zope CMF
-
-  Export your CMF as XML
-
-  First use the update-products script on the XML file
-
-  Beware : buggy, will destroy some non CMF types !!!
-
-  Update portal types (! local roles)
-
-  Add
-    gettext
-    portal_translations
-    portal_membership
\ No newline at end of file
diff --git a/product/CMFTranslation/kbabel.png b/product/CMFTranslation/kbabel.png
deleted file mode 100755
index 5d71dd015611ed593fe25654d8f39f38d56b8a2d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 54602
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

diff --git a/product/CMFTranslation/localizer.diff b/product/CMFTranslation/localizer.diff
deleted file mode 100755
index 3d875c5277..0000000000
--- a/product/CMFTranslation/localizer.diff
+++ /dev/null
@@ -1,228 +0,0 @@
-? AcceptLanguage.pyc
-? Gettext.pyc
-? GettextTag.pyc
-? LanguageManager.pyc
-? LocalAttributes.pyc
-? LocalContent.pyc
-? LocalFiles.pyc
-? LocalFolder.pyc
-? LocalPropertyManager.pyc
-? Localizer.pyc
-? MessageCatalog.pyc
-? Translator.py.org
-? Utils.pyc
-? __init__.pyc
-? jps.diff
-? refresh.txt
-? zgettext.pyc
-? locale/ca.mo
-? locale/de.mo
-? locale/en.mo
-? locale/es.mo
-? locale/eu.mo
-? locale/fr.mo
-? locale/hu.mo
-Index: AcceptLanguage.py
-===================================================================
-RCS file: /cvsroot/lleu/Localizer/AcceptLanguage.py,v
-retrieving revision 1.2
-diff -u -r1.2 AcceptLanguage.py
---- AcceptLanguage.py	21 Feb 2002 10:53:54 -0000	1.2
-+++ AcceptLanguage.py	16 Apr 2002 08:07:44 -0000
-@@ -23,7 +23,6 @@
- #from UserDict import UserDict
- from types import StringType
- 
--
- class AcceptLanguageNode:
-     """
-     This class is a recursive representation of a tree.
-Index: Localizer.py
-===================================================================
-RCS file: /cvsroot/lleu/Localizer/Localizer.py,v
-retrieving revision 1.53
-diff -u -r1.53 Localizer.py
---- Localizer.py	25 Feb 2002 09:46:40 -0000	1.53
-+++ Localizer.py	16 Apr 2002 08:07:45 -0000
-@@ -215,17 +215,17 @@
-             stack.append(self.id)
- 
- 
--##    # Changing the language, useful snippets
--##    security.declarePublic('changeLanguage')
--##    changeLanguageForm = LocalDTMLFile('ui/changeLanguageForm', globals())
--##    def changeLanguage(self, REQUEST, RESPONSE):
--##        """ """
--##        lang = REQUEST['lang']
-+    # Changing the language, useful snippets
-+    security.declarePublic('changeLanguage')
-+    changeLanguageForm = LocalDTMLFile('ui/changeLanguageForm', globals())
-+    def changeLanguage(self, REQUEST, RESPONSE):
-+        """ """
-+        lang = REQUEST['lang']
- 
--##        path = self.absolute_url()[len(REQUEST['SERVER_URL']):] or '/'
--##        RESPONSE.setCookie('LOCALIZER_LANGUAGE', lang, path=path)
-+        path = self.absolute_url()[len(REQUEST['SERVER_URL']):] or '/'
-+        RESPONSE.setCookie('LOCALIZER_LANGUAGE', lang, path=path)
- 
--##        RESPONSE.redirect(REQUEST['HTTP_REFERER'])
-+        RESPONSE.redirect(REQUEST['HTTP_REFERER'])
- 
-     # Upgrading..
-     security.declarePublic('need_upgrade')
-Index: MessageCatalog.py
-===================================================================
-RCS file: /cvsroot/lleu/Localizer/MessageCatalog.py,v
-retrieving revision 1.17
-diff -u -r1.17 MessageCatalog.py
---- MessageCatalog.py	25 Feb 2002 09:46:40 -0000	1.17
-+++ MessageCatalog.py	16 Apr 2002 08:07:46 -0000
-@@ -379,9 +379,14 @@
-                     d[k] = ""
- 
-         # Generate the file
-+        quote_esc = re.compile(r'"')
-         for k, v in d.items():
--            r.append('msgid "%s"' % k)
--            r.append('msgstr "%s"' % v)
-+            r.append('msgid ""')
-+            for line in k.split('\n'):
-+                r.append( '"%s"' %  quote_esc.sub('\\"',line))
-+            r.append('msgstr ""')
-+            for line in v.split('\n'):
-+                r.append( '"%s"' %  quote_esc.sub('\\"',line))
-             r.append('')
- 
- 
-@@ -405,10 +410,29 @@
-         k, k, k, d = parse_po_file(content)
- 
-         for k, v in d.items():
--            k = k[0]
-+            if len(k) == 1:
-+                # single line msgid
-+                k = k[0]
-+            else:
-+                # multiline msgid
-+                if k[0] == '':
-+                    k = '\n'.join(k[1:])
-+                else:
-+                    k = '\n'.join(k)
-             if not messages.has_key(k):
-                 messages[k] = PersistentMapping()
--            messages[k][lang] = v[1][0]
-+            # Take the commentaries only
-+            v = v[1]
-+            if len(v) == 1:
-+                # single line msgstr
-+                v = v[0]
-+            else:
-+                # multiline msgstr
-+                if v[0] == '':
-+                    v = '\n'.join(v[1:])
-+                else:
-+                    v = '\n'.join(v)
-+            messages[k][lang] = v
- 
-         if REQUEST is not None:
-             return self.manage_messages(self, REQUEST)
-Index: __init__.py
-===================================================================
-RCS file: /cvsroot/lleu/Localizer/__init__.py,v
-retrieving revision 1.35
-diff -u -r1.35 __init__.py
---- __init__.py	25 Feb 2002 09:46:40 -0000	1.35
-+++ __init__.py	16 Apr 2002 08:07:46 -0000
-@@ -115,12 +115,12 @@
-     # Add the language from the form
-     lang = request.form.get('LOCALIZER_LANGUAGE', None)
-     if lang is not None:
--        accept_language[lang] = 3.0
-+        accept_language[lang.split('-',1)] = 3.0
- 
-     # Add the language from the cookies
-     lang = request.cookies.get('LOCALIZER_LANGUAGE', None)
-     if lang is not None:
--        accept_language[lang] = 2.0
-+        accept_language[lang.split('-',1)] = 2.0
- 
-     self.other['USER_PREF_LANGUAGES'] = accept_language
- 
-@@ -193,7 +193,7 @@
-     context.registerClass(
-         LocalContent.LocalContent,
-         constructors = (LocalContent.manage_addLocalContentForm,
--                        LocalContent.manage_addLocalContent),   
-+                        LocalContent.manage_addLocalContent),
-         icon='img/local_content.gif')
- 
-     # Register MessageCatalog
-Index: zgettext.py
-===================================================================
-RCS file: /cvsroot/lleu/Localizer/zgettext.py,v
-retrieving revision 1.15
-diff -u -r1.15 zgettext.py
---- zgettext.py	25 Feb 2002 09:46:40 -0000	1.15
-+++ zgettext.py	16 Apr 2002 08:07:47 -0000
-@@ -39,10 +39,11 @@
- def parse_po_file(content):
-     # The regular expressions
-     com = re.compile('^#.*')
--    msgid = re.compile(r'^ *msgid *"(.*?[^\\]*)"')
--    msgstr = re.compile(r'^ *msgstr *"(.*?[^\\]*)"') 
--    re_str = re.compile(r'^ *"(.*?[^\\])"') 
-+    msgid = re.compile(r'^ *msgid *"(.*[^\\]*)"')
-+    msgstr = re.compile(r'^ *msgstr *"(.*[^\\]*)"')
-+    re_str = re.compile(r'^ *"(.*[^\\])"')
-     blank = re.compile(r'^\s*$')
-+    quote_esc = re.compile(r'\\"')
- 
-     trans = {}
-     pointer = 0
-@@ -59,7 +60,8 @@
-                 state = 1
-                 pointer = pointer + 1
-             elif msgid.match(line):
--                MSGID.append(msgid.match(line).group(1))
-+                line = msgid.match(line).group(1)
-+                MSGID.append(quote_esc.sub('"',line))
-                 state = 2
-                 pointer = pointer + 1
-             elif blank.match(line):
-@@ -72,7 +74,8 @@
-                 state = 1
-                 pointer = pointer + 1
-             elif msgid.match(line):
--                MSGID.append(msgid.match(line).group(1))
-+                line = msgid.match(line).group(1)
-+                MSGID.append(quote_esc.sub('"',line))
-                 state = 2
-                 pointer = pointer + 1
-             elif blank.match(line):
-@@ -85,11 +88,13 @@
-                 state = 2
-                 pointer = pointer + 1
-             elif re_str.match(line):
--                MSGID.append(re_str.match(line).group(1))
-+                line = re_str.match(line).group(1)
-+                MSGID.append(quote_esc.sub('"',line))
-                 state = 2
-                 pointer = pointer + 1
-             elif msgstr.match(line):
--                MSGSTR.append(msgstr.match(line).group(1))
-+                line = msgstr.match(line).group(1)
-+                MSGSTR.append(quote_esc.sub('"',line))
-                 state = 3
-                 pointer = pointer + 1
-             elif blank.match(line):
-@@ -102,7 +107,8 @@
-                 trans[tuple(MSGID)] = (COM, MSGSTR)
-                 state = 0
-             elif re_str.match(line):
--                MSGSTR.append(re_str.match(line).group(1))
-+                line = re_str.match(line).group(1)
-+                MSGSTR.append(quote_esc.sub('"',line))
-                 state = 3
-                 pointer = pointer + 1
-             elif blank.match(line):
diff --git a/product/CMFTranslation/migrate_content.zexp b/product/CMFTranslation/migrate_content.zexp
deleted file mode 100755
index c6cad364f71d0a9e114c70c649d1aa63357570d3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 551
zcmZ8eOK%e~5KcF*?zT#y<x$?Hg<?2F;>Hz1xS*5*9fXi7%Xp{3mDk>}XHz)jfAR0Y
zS$d&!@#Fhu=KE&8O}`#@R?+>v*PflMD+C-K2VXXt<9Pa$F*s#s$Ul5}<w<KW`kz1<
zQ}>9+OX>;8&l;zt_9aqZ=+|}Krn_joi^aQyO%hblz|(L^>jE~kmkX7;RTwE3F#I(A
z2-D9eRKSi7s2JaxfSP^y^~K-?Z9wnb8%LWkT$pGW%fu{HS-w#bU%oo=-qHxV-juWj
zgPN_0OxGZ*nXW^wy<=q@2HJ+*N;x%0nQ~_sW4cZhE9>X9ljxCdz<OooAt@;7Cey7}
zstR-M8^?6}{aW)Kveaf5wk~<ewqs1-9oUvqX=%MyRt9e|N=bK@bPuxgn(m*{1L%La
zSm}7EBJ|m?MS27s7)alK?}<}-EMPMx<G8>u*1n>B$d$ITi5MasU|Z`6(^JUhYU-S3
sOoz~`l0$k1MZ1X-&s1YMk~o5)tkQ;4r{^%5{j)Z?RQ#eD|G5%>0bDl3FaQ7m

diff --git a/product/CMFTranslation/skins/content18/TranslatedBody.py b/product/CMFTranslation/skins/content18/TranslatedBody.py
deleted file mode 100755
index d78311dba1..0000000000
--- a/product/CMFTranslation/skins/content18/TranslatedBody.py
+++ /dev/null
@@ -1,42 +0,0 @@
-## Script (Python) "TranslatedBody"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=
-##title=Modify the status of a content object
-##
-##############################################################################
-#
-# Base18: a Zope product which provides multilingual services for CMF Default
-#         documents.
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-#
-# This program as such is not intended to be used by end users. End
-# users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-return context.CookedBody()
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/content18/TranslatedDescription.py b/product/CMFTranslation/skins/content18/TranslatedDescription.py
deleted file mode 100755
index 2b9875f3a9..0000000000
--- a/product/CMFTranslation/skins/content18/TranslatedDescription.py
+++ /dev/null
@@ -1,46 +0,0 @@
-## Script (Python) "TranslatedDescription"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=
-##title=Modify the status of a content object
-##
-##############################################################################
-#
-# Base18: a Zope product which provides multilingual services for CMF Default
-#         documents.
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-#
-# This program as such is not intended to be used by end users. End
-# users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-Description = context.Description
-if callable(Description):
-    Description = Description()
-if Description: return Description
-return ''
diff --git a/product/CMFTranslation/skins/content18/TranslatedTitle.py b/product/CMFTranslation/skins/content18/TranslatedTitle.py
deleted file mode 100755
index f6b2df7c04..0000000000
--- a/product/CMFTranslation/skins/content18/TranslatedTitle.py
+++ /dev/null
@@ -1,46 +0,0 @@
-## Script (Python) "TranslatedTitle"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=
-##title=Modify the status of a content object
-##
-##############################################################################
-#
-# Base18: a Zope product which provides multilingual services for CMF Default
-#         documents.
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-#
-# This program as such is not intended to be used by end users. End
-# users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-title=context.title
-if callable(title):
-    title=title()
-if title: return context.gettext(title)
-return ''    
diff --git a/product/CMFTranslation/skins/content18/TranslatedTitle_or_id.py b/product/CMFTranslation/skins/content18/TranslatedTitle_or_id.py
deleted file mode 100755
index 09343d3637..0000000000
--- a/product/CMFTranslation/skins/content18/TranslatedTitle_or_id.py
+++ /dev/null
@@ -1,46 +0,0 @@
-## Script (Python) "TranslatedTitle_or_id"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=
-##title=Modify the status of a content object
-##
-##############################################################################
-#
-# Base18: a Zope product which provides multilingual services for CMF Default
-#         documents.
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-#
-# This program as such is not intended to be used by end users. End
-# users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-title=context.title
-if callable(title):
-    title=title()
-if title: return title
-return context.getId()
diff --git a/product/CMFTranslation/skins/content18/discussionitem18_view.dtml b/product/CMFTranslation/skins/content18/discussionitem18_view.dtml
deleted file mode 100755
index 60adbc23f6..0000000000
--- a/product/CMFTranslation/skins/content18/discussionitem18_view.dtml
+++ /dev/null
@@ -1,24 +0,0 @@
-<dtml-let relative_to_content="1">
-<dtml-var standard_html_header>
-</dtml-let>
-<div class="Desktop">
- <div class="Document">
-
-  <dtml-var content_byline>
-
-  <div class="Discussion">
-   <dtml-var aboveInThread>
-  </div>
-
-  <h1> &dtml-TranslatedTitle; </h1>
-
-  <dtml-var TranslatedBody>
-
-  <div class="Discussion">
-   <dtml-var viewThreadsAtBottom>
-  </div>
-
- </div>
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/content18/document18_view.dtml b/product/CMFTranslation/skins/content18/document18_view.dtml
deleted file mode 100755
index f527076942..0000000000
--- a/product/CMFTranslation/skins/content18/document18_view.dtml
+++ /dev/null
@@ -1,16 +0,0 @@
-<dtml-let relative_to_content="1">
-<dtml-var standard_html_header>
-</dtml-let>
-<div class="Desktop">
- <div class="Document">
-  <dtml-var content_byline>
-  <dtml-var TranslatedBody>
-
-  <div class="Discussion">
-   <dtml-var viewThreadsAtBottom>
-  </div>
-
- </div>
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/content18/favorite18_view.dtml b/product/CMFTranslation/skins/content18/favorite18_view.dtml
deleted file mode 100755
index cbfbd835f8..0000000000
--- a/product/CMFTranslation/skins/content18/favorite18_view.dtml
+++ /dev/null
@@ -1,23 +0,0 @@
-<dtml-var standard_html_header>
-
-<div class="Desktop">
-
-<div class="Link">
-
-<dtml-var content_byline>
-
-<p> <a href="&dtml-getRemoteUrl;">"><dtml-var getRemoteUrl></a> </p>
-
-<dtml-var TranslatedDescription>
-
-<div class="Discussion">
-
-<dtml-var viewThreadsAtBottom>
-
-</div>
-
-</div>
-
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/content18/file18_view.dtml b/product/CMFTranslation/skins/content18/file18_view.dtml
deleted file mode 100755
index 0ebe725fd9..0000000000
--- a/product/CMFTranslation/skins/content18/file18_view.dtml
+++ /dev/null
@@ -1,28 +0,0 @@
-<dtml-var standard_html_header>
-
-<div class="Desktop">
-
-<div class="File">
-
-<dtml-var content_byline>
-
-<p>
-<b>Filename</b>: <dtml-var getId><br>
-<b>Size</b>: <dtml-var size><br>
-<b>Content type</b>: <dtml-var content_type><br>
-<b>Description</b>: <dtml-var name="description" newline_to_br>
-</p>
-
-<a href="&dtml-absolute_url;">Download &dtml-title;</a>
-
-<div class="Discussion">
-
-<dtml-var viewThreadsAtBottom>
-
-</div>
-
-</div>
-
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/content18/folder18_view.dtml b/product/CMFTranslation/skins/content18/folder18_view.dtml
deleted file mode 100755
index 95b9cf8a6d..0000000000
--- a/product/CMFTranslation/skins/content18/folder18_view.dtml
+++ /dev/null
@@ -1,49 +0,0 @@
-<dtml-var standard_html_header>
-
-<h2><dtml-var title_or_id></h2>
-
-<dtml-let folder_url=absolute_url>
-
-<dtml-in expr="objectValues( [ 'Document', 'News Item', 'Portal Image', 'Portal File', 'Base18 Document', 'Base18 News Item', 'Base18 File', 'Base18 Image' ] )"
-skip_unauthorized>
-<dtml-if sequence-start>
-<h3> Documents, Images, and Files </h3>
-
-<ul>
-</dtml-if>
-<li> <a href="&dtml-id;"> <dtml-var TranslatedTitle> </a>
-<dtml-if name="Description"><blockquote>&dtml-TranslatedDescription;</blockquote></dtml-if></li>
-<dtml-if sequence-end>
-</ul>
-</dtml-if>
-</dtml-in>
-
-<dtml-in expr="objectValues( [ 'Link', 'Favorite', 'Base18 Link','Base18 Favorite' ] )" skip_unauthorized>
-<dtml-if sequence-start>
-<h3> Links </h3>
-
-<ul>
-</dtml-if>
-<li> <a href="&dtml-getRemoteUrl;"> <dtml-var TranslatedTitle> </a>
-<dtml-if name="Description"><blockquote>&dtml-TranslatedDescription;</blockquote></dtml-if></li>
-<dtml-if sequence-end>
-</ul>
-</dtml-if>
-</dtml-in>
-
-<dtml-in expr="objectValues( [ 'Folder', 'Portal Folder', 'Skinned Folder' , 'Base18 Folder'] )" skip_unauthorized>
-<dtml-if sequence-start>
-<h3> Folders </h3>
-
-<ul>
-</dtml-if>
-<li> <a href="&dtml-id;"> <dtml-var TranslatedTitle_or_id> </a>
-<dtml-if name="Description"><blockquote>&dtml-TranslatedDescription;</blockquote></dtml-if></li>
-<dtml-if sequence-end>
-</ul>
-</dtml-if>
-</dtml-in>
-
-</dtml-let>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/content18/folder_contents.dtml b/product/CMFTranslation/skins/content18/folder_contents.dtml
deleted file mode 100755
index e374cb94fe..0000000000
--- a/product/CMFTranslation/skins/content18/folder_contents.dtml
+++ /dev/null
@@ -1,164 +0,0 @@
-<dtml-comment>
-folderfilter cookie maintenance.
-</dtml-comment>
-<dtml-in filterCookie>
-</dtml-in>
-<dtml-comment>
-Folder contents display.
-</dtml-comment>
-
-<dtml-call "REQUEST.set('isDesktop', 1)">
-<dtml-var standard_html_header>
-
-<dtml-if "not portal_membership.checkPermission('List folder contents'
-                                               , this())">
- <dtml-call "RESPONSE.redirect(absolute_url())">
-</dtml-if>
-
-<!-- This is the desktop area -->
-<div class="Desktop">
-
-<h1> Desktop </h1>
-
-<form action="&dtml-absolute_url;" method="POST">
- <table class="FormLayout">
-  <tr>
-   <td valign="top">
-    <table class="ContentsList">
-     <dtml-if "portal_membership.checkPermission( 'List folder contents'
-                                                , this(), 'aq_parent')">
-      <dtml-let upNav="_.hasattr(this().aq_parent, 'portal_url')"
-                upID="this().aq_parent.getId()"
-      >
-      <tr valign="top">
-      <td width="16"><br></td>
-      <td>
-        <dtml-if upNav>
-         <a href="../folder_contents"
-         ><img src="&dtml-portal_url;/UpFolder_icon.gif"
-               alt="[Link]" border="0"></a>
-        </dtml-if>
-      </td>
-      <td>
-        <dtml-if upNav>
-         Up to <a href="../folder_contents"><dtml-var upID></a>
-        <dtml-else>
-         <span class="mild">Root</span>
-        </dtml-if>
-      </td>
-      </tr>
-      </dtml-let>
-     </dtml-if>
-
-
-<dtml-let filterString="REQUEST.get( 'folderfilter', '' )"
-          filter="decodeFolderFilter( filterString )"
->
-<dtml-in expr="listFolderContents( contentFilter=filter )"
-         sort="getId" size="19" start=qs skip_unauthorized>
- <dtml-if next-sequence>
-  <dtml-call "REQUEST.set('next-sequence'
-                         , _['next-sequence-start-number'])">
- </dtml-if>
- <dtml-if previous-sequence>
-  <dtml-call "REQUEST.set('previous-sequence'
-                         ,_['previous-sequence-start-number'])">
- </dtml-if>
- <dtml-let obj="_.getitem('sequence-item', 0 )"
-           folderish=isPrincipiaFolderish
-           portalish="_.hasattr( obj, 'isPortalContent' )
-                     and obj.isPortalContent"
-           methodID="folderish and '/folder_contents' or ( portalish
-                     and '/view' or '' )"
-           getIcon="_.hasattr(obj, 'getIcon') and obj.getIcon()"
-           icon="getIcon or _.getattr(obj, 'icon', '')"
- >
-     <tr valign="top">
-      <td>
-         <input type="checkbox" name="ids:list" value="&dtml-getId;"
-          id="cb_&dtml-getId;" />
-      </td>
-      <td>
-         <dtml-if icon>
-         <a href="&dtml.url_quote-getId;&dtml-methodID;"
-          ><img src="&dtml-portal_url;/&dtml-icon;"
-                alt="&dtml-Type;" border="0"></a> 
-         </dtml-if>
-      </td>
-      <td>
-         <a href="&dtml.url_quote-getId;&dtml-methodID;"
-           >&dtml-getId;<dtml-if title> (&dtml-title;)</dtml-if></a>
-      </td>
-     </tr>
-
-  <dtml-if qs>
-   <dtml-if "_['sequence-index'] - _.int(qs) == 7">
-    </table><dtml-comment> End of first column </dtml-comment>
-   </td>
-   <td>
-      <table class="ContentsList">
-   </dtml-if>
-  <dtml-else> <dtml-comment> No batch </dtml-comment>
-   <dtml-if "_['sequence-index'] == 8">
-    </table><dtml-comment> End of first column </dtml-comment>
-   </td>
-   <td valign="top">
-    <table class="ContentsList">
-   </dtml-if>
-  </dtml-if>
- </dtml-let>
-</dtml-in>
-</dtml-let>
-    </table>
-   </td>
-  </tr>
- 
- <tr>
-  <td align="right">
-   <dtml-if previous-sequence>
-    <a href="folder_contents?qs=&dtml-previous-sequence;">Previous items</a>
-   <dtml-else>
-    <br>
-   </dtml-if>
-  </td>
-  <td align="left">
-   <dtml-if next-sequence>
-    <a href="folder_contents?qs=&dtml-next-sequence;">Next items</a>
-   <dtml-else>
-     <br>
-  </dtml-if>
-  </td>
- </tr>
-</table><dtml-comment> End of listing table </dtml-comment>
-
-
-<table border="0" cellspacing="0" cellpadding="2">
-<tr>
-  <td align="left" valign="top" width="16"></td>
-  <td align="left" valign="top">
-  <dtml-if expr="portal_membership.checkPermission('Add portal content'
-                                                  , this())">
-    <input type="submit" name="folder_factories:method" value="New...">
-  </dtml-if>
-  <dtml-if expr="portal_membership.checkPermission('View management screens'
-                                                  , this())">
-    <input type="submit" name="folder_rename_form:method" value="Rename">
-    <input type="submit" name="folder_cut:method" value="Cut"> 
-    <input type="submit" name="folder_copy:method" value="Copy">
-    <dtml-if cb_dataValid>
-    <input type="submit" name="folder_paste:method" value="Paste">
-    </dtml-if>
-  </dtml-if>
-  <dtml-if expr="portal_membership.checkPermission('Delete objects', this())">
-    <input type="submit" name="folder_delete:method" value="Delete">
-  </dtml-if>
-  </td>
-</tr>
-</table>
-
-</form>
-
-<dtml-var folder_filter_form>
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/content18/getTranslatedBody.py b/product/CMFTranslation/skins/content18/getTranslatedBody.py
deleted file mode 100755
index 0547d0787e..0000000000
--- a/product/CMFTranslation/skins/content18/getTranslatedBody.py
+++ /dev/null
@@ -1 +0,0 @@
-return context.TranslatedBody()
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/content18/getTranslatedDescription.py b/product/CMFTranslation/skins/content18/getTranslatedDescription.py
deleted file mode 100755
index f739a16933..0000000000
--- a/product/CMFTranslation/skins/content18/getTranslatedDescription.py
+++ /dev/null
@@ -1 +0,0 @@
-return context.TranslatedDescription()
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/content18/getTranslatedTitle.py b/product/CMFTranslation/skins/content18/getTranslatedTitle.py
deleted file mode 100755
index d7936d9946..0000000000
--- a/product/CMFTranslation/skins/content18/getTranslatedTitle.py
+++ /dev/null
@@ -1 +0,0 @@
-return context.TranslatedTitle()
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/content18/getTranslatedTitleOrId.py b/product/CMFTranslation/skins/content18/getTranslatedTitleOrId.py
deleted file mode 100755
index 6d9f90c97a..0000000000
--- a/product/CMFTranslation/skins/content18/getTranslatedTitleOrId.py
+++ /dev/null
@@ -1 +0,0 @@
-return context.TranslatedTitle_or_id()
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/content18/image18_view.dtml b/product/CMFTranslation/skins/content18/image18_view.dtml
deleted file mode 100755
index 41a9bac9df..0000000000
--- a/product/CMFTranslation/skins/content18/image18_view.dtml
+++ /dev/null
@@ -1,19 +0,0 @@
-<dtml-var standard_html_header>
-
-<div class="Desktop">
-
-<div class="Image">
-
-<dtml-var tag>
-
-<div class="Discussion">
-
-<dtml-var viewThreadsAtBottom>
-
-</div>
-
-</div>
-
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/content18/link18_view.dtml b/product/CMFTranslation/skins/content18/link18_view.dtml
deleted file mode 100755
index 6d72ec3b62..0000000000
--- a/product/CMFTranslation/skins/content18/link18_view.dtml
+++ /dev/null
@@ -1,25 +0,0 @@
-<dtml-var standard_html_header>
-
-<div class="Desktop">
-
-<div class="Link">
-
-<dtml-var content_byline>
-
-<p>
-<a href="<dtml-var remote_url>"><dtml-var remote_url></a></p>
-</p>
-
-<dtml-var TranslatedDescription>
-
-<div class="Discussion">
-
-<dtml-var viewThreadsAtBottom>
-
-</div>
-
-</div>
-
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/content18/newsitem18_view.dtml b/product/CMFTranslation/skins/content18/newsitem18_view.dtml
deleted file mode 100755
index f3cd96736d..0000000000
--- a/product/CMFTranslation/skins/content18/newsitem18_view.dtml
+++ /dev/null
@@ -1,28 +0,0 @@
-<dtml-let relative_to_content="1">
-<dtml-var standard_html_header>
-</dtml-let>
-
-
-<div class="Desktop">
-
-<div class="NewsItem">
-
-<blockquote class="Description">
-<dtml-var TranslatedDescription fmt="structured-text">
-</blockquote>
-
-<dtml-var content_byline>
-
-<dtml-var TranslatedBody>
-
-<div class="Discussion">
-
-<dtml-var viewThreadsAtBottom>
-
-</div>
-
-</div>
-
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/content18/translation_edit.py b/product/CMFTranslation/skins/content18/translation_edit.py
deleted file mode 100755
index dbc01b93dd..0000000000
--- a/product/CMFTranslation/skins/content18/translation_edit.py
+++ /dev/null
@@ -1,69 +0,0 @@
-## Script (Python) "translation_edit"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=target_content, target_language, text, file='', SafetyBelt='', choice=' Change '
-##title=Edit a document
-##
-##############################################################################
-#
-# Base18: a Zope product which provides multilingual services for CMF Default
-#         documents.
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-#
-# This program as such is not intended to be used by end users. End
-# users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-#try:
-if 1:
-    target_content = context.restrictedTraverse(target_content, None)
-    context.edit( ''
-                , text
-                , file
-                , safety_belt=SafetyBelt
-                , target_language=target_language
-                , target_content=target_content
-                )
-    qst='portal_status_message=Document+changed.'
-
-    if choice == ' Change and View ':
-        target_action = context.getTypeInfo().getActionById( 'view' )
-    else:
-        target_action = context.getTypeInfo().getActionById( 'edit' )
-
-    context.REQUEST.RESPONSE.redirect( '%s/%s?%s' % ( context.absolute_url()
-                                                , target_action
-                                                , qst
-                                                ) )
-#except Exception, msg:
-#    target_action = context.getTypeInfo().getActionById( 'edit' )
-#    context.REQUEST.RESPONSE.redirect('%s/%s?portal_status_message=%s' % (
-#                                                                       context.absolute_url()
-#                                                                     , target_action
-#                                                                     , msg
-#                                                                     ))
diff --git a/product/CMFTranslation/skins/content18/translation_edit_form.dtml b/product/CMFTranslation/skins/content18/translation_edit_form.dtml
deleted file mode 100755
index bac1095fb6..0000000000
--- a/product/CMFTranslation/skins/content18/translation_edit_form.dtml
+++ /dev/null
@@ -1,84 +0,0 @@
-<dtml-var standard_html_header>
-
-<div class="Desktop">
-
-<dtml-if message>
- <p>&dtml-message;</p>
- <hr>
-</dtml-if>
-
-<div class="Document">
-
-<h2>Edit &dtml-getId;</h2>
-
-<form action="translation_edit" method="post" enctype="multipart/form-data">
-
- <input type="hidden" name="SafetyBelt" value="&dtml-SafetyBelt;">
-
-<table class="FormLayout">
- <tr>
-  <th>
-    Title
-  </th>
-  <td>
-   <dtml-var Title>
-  </td>
- </tr>
-
- <tr>
-  <th>
-    Description
-  </th>
-  <td>
-   <dtml-var description>
-  </td>
- </tr>
-
- <tr>
-  <th>
-   Target
-  </th>
-  <td>
-   <input type="text" name="target_content:string" value="&dtml-targetContentPath;" />
-  </td>
- </tr>
-
- <tr>
-  <th>
-   Language
-  </th>
-  <td>
-   <input type="text" name="target_language:string" value="&dtml-targetLanguage;" />
-  </td>
- </tr>
-
- <tr>
-  <th> Upload </th>
-  <td>
-   <input type="file" name="file" size="25">
-  </td>
- </tr>
-
- <tr>
-  <th class="TextField"> Edit </th>
-  <td class="TextField">
-   <textarea name="text:text"
-             rows="20" cols="80"><dtml-var EditableBody html_quote></textarea>
-  </td>
- </tr>
-
- <tr>
-  <td> <br> </td>
-  <td>
-    <input type="submit" name="choice" value=" Change ">
-    <input type="submit" name="choice" value=" Change and View ">
-  </td>
- </tr>
-</table>
-</form>
-
-</div>
-
-</div>
-
-<dtml-var standard_html_footer>
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/content18/translation_register_form.dtml b/product/CMFTranslation/skins/content18/translation_register_form.dtml
deleted file mode 100755
index b8e6d6a368..0000000000
--- a/product/CMFTranslation/skins/content18/translation_register_form.dtml
+++ /dev/null
@@ -1,65 +0,0 @@
-<dtml-var standard_html_header>
-
-<dtml-let member="portal_membership.getAuthenticatedMember()"
-  translation_state="portal_workflow.getInfoFor(this(), 'translation_state')"
-  translation_history="portal_workflow.getInfoFor(this(), 'translation_history')"
-  url="portal_workflow.getInfoFor(this(), 'url')">
-
-<div class="Desktop">
-
-<h1> Register a Translation </h1>
-
-<dtml-if message>
- <h2 class="DesktopTitle">&dtml-message;</h2>
-</dtml-if>
-
-<p>To make use of a translation, it has to be reviewed by one of the site's reviewers.
-   A <b>registered</b> translation becomes the default translation for a given document
-   to the general member base and anonymous visitors.</p>
-
-
-<form method="post" action="translation_status_modify">
- <table class="FormLayout">
-  <tr>
-   <td valign=top align=left>
-    <strong>Status</strong>
-   </td>
-   <td valign=top align=left>
-     This item is currently in <b>&dtml-translation_state;</b> status.
-     <input type="hidden" name="workflow_action" value="register">
-   </td>
-  </tr>
-  <tr>
-   <td valign=top align=left colspan=2>
-    <strong><em>Comments</em></strong><br>
-    <textarea name="comment" cols="60" rows="5" wrap="soft"
-     style="width: 100%"></textarea>
-   </td>
-  </tr>
-  <tr>
-   <td></td>
-   <td><input type="submit" value=" Register Translation "></td>
-  </tr>
- </table>
-</form>
-
-<dtml-if review_history>
- <p><strong>Reviewing history</strong><br>
- <dtml-in review_history mapping reverse>
-  <dtml-var time fmt="aCommon"> &dtml-action;
-  <dtml-if effective_date>
-  (effective: <dtml-var effective_date fmt="aCommon">)
-  </dtml-if>
-  by &dtml-actor;<br>
-  <dtml-if "_['sequence-item']['comments']">
-   </p><dtml-var "_['sequence-item']['comments']" fmt="structured-text"><p>
-  </dtml-if>
- </dtml-in>
- </p>
-</dtml-if>
-
-</dtml-let>
-
-</div>
-
-<dtml-var standard_html_footer>
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/content18/translation_status_modify.py b/product/CMFTranslation/skins/content18/translation_status_modify.py
deleted file mode 100755
index 030213fc9f..0000000000
--- a/product/CMFTranslation/skins/content18/translation_status_modify.py
+++ /dev/null
@@ -1,66 +0,0 @@
-## Script (Python) "translation_status_modify"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=workflow_action, comment='', url=''
-##title=Modify the status of a content object
-##
-##############################################################################
-#
-# Base18: a Zope product which provides multilingual services for CMF Default
-#         documents.
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-#
-# This program as such is not intended to be used by end users. End
-# users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-context.portal_workflow.doActionFor(
-    context,
-    workflow_action,
-    comment=comment)
-
-content = context.restrictedTraverse(context.targetContent)
-language = context.targetLanguage
-translation = context.restrictedTraverse(context.id)
-
-if workflow_action == 'unregister':
-    context.portal_translations.unregisterTranslation(content,translation,language=language)
-    redirect_url = '%s/view?%s' % ( context.absolute_url()
-                                  , 'portal_status_message=Status+changed.'
-                                  )
-elif workflow_action == 'register':
-    context.portal_translations.registerTranslation(content,translation,language=language)
-    redirect_url = '%s/view?%s' % ( context.absolute_url()
-                                  , 'portal_status_message=Status+changed.'
-                                  )
-else:
-    redirect_url = '%s/view?%s' % ( context.absolute_url()
-                                  , 'portal_status_message=Status+changed.'
-                                  )
-
-context.REQUEST[ 'RESPONSE' ].redirect( redirect_url )
diff --git a/product/CMFTranslation/skins/content18/translation_submit_form.dtml b/product/CMFTranslation/skins/content18/translation_submit_form.dtml
deleted file mode 100755
index ea95719663..0000000000
--- a/product/CMFTranslation/skins/content18/translation_submit_form.dtml
+++ /dev/null
@@ -1,65 +0,0 @@
-<dtml-var standard_html_header>
-
-<dtml-let member="portal_membership.getAuthenticatedMember()"
-  translation_state="portal_workflow.getInfoFor(this(), 'translation_state')"
-  translation_history="portal_workflow.getInfoFor(this(), 'translation_history')"
-  url="portal_workflow.getInfoFor(this(), 'url')">
-
-<div class="Desktop">
-
-<h1> Submit a Translation for Review </h1>
-
-<dtml-if message>
- <h2 class="DesktopTitle">&dtml-message;</h2>
-</dtml-if>
-
-<p>To make use of a translation, it has to be reviewed by one of the site's reviewers.
-   A <b>registered</b> translation becomes the default translation for a given document
-   to the general member base and anonymous visitors.</p>
-
-
-<form method="post" action="translation_status_modify">
- <table class="FormLayout">
-  <tr>
-   <td valign=top align=left>
-    <strong>Status</strong>
-   </td>
-   <td valign=top align=left>
-     This item is currently in <b>&dtml-translation_state;</b> status.
-     <input type="hidden" name="workflow_action" value="submit">
-   </td>
-  </tr>
-  <tr>
-   <td valign=top align=left colspan=2>
-    <strong><em>Comments</em></strong><br>
-    <textarea name="comment" cols="60" rows="5" wrap="soft"
-     style="width: 100%"></textarea>
-   </td>
-  </tr>
-  <tr>
-   <td></td>
-   <td><input type="submit" value=" Submit Translation "></td>
-  </tr>
- </table>
-</form>
-
-<dtml-if review_history>
- <p><strong>Reviewing history</strong><br>
- <dtml-in review_history mapping reverse>
-  <dtml-var time fmt="aCommon"> &dtml-action;
-  <dtml-if effective_date>
-  (effective: <dtml-var effective_date fmt="aCommon">)
-  </dtml-if>
-  by &dtml-actor;<br>
-  <dtml-if "_['sequence-item']['comments']">
-   </p><dtml-var "_['sequence-item']['comments']" fmt="structured-text"><p>
-  </dtml-if>
- </dtml-in>
- </p>
-</dtml-if>
-
-</dtml-let>
-
-</div>
-
-<dtml-var standard_html_footer>
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/content18/translation_template.dtml b/product/CMFTranslation/skins/content18/translation_template.dtml
deleted file mode 100755
index 8081cd16d3..0000000000
--- a/product/CMFTranslation/skins/content18/translation_template.dtml
+++ /dev/null
@@ -1,26 +0,0 @@
-<dtml-var standard_html_header>
-
-<div class="Desktop">
-
-<div class="File">
-
-<dtml-var content_byline>
-
-<p>
-<b>Document</b>: <dtml-var getId><br>
-<b>Description</b>: <dtml-var name="description" newline_to_br>
-</p>
-
-<a href="&dtml-absolute_url;/TranslationTemplate">Download &dtml-title;</a>
-
-<div class="Discussion">
-
-<dtml-var viewThreadsAtBottom>
-
-</div>
-
-</div>
-
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/content18/translation_view.dtml b/product/CMFTranslation/skins/content18/translation_view.dtml
deleted file mode 100755
index aebf059ef4..0000000000
--- a/product/CMFTranslation/skins/content18/translation_view.dtml
+++ /dev/null
@@ -1,16 +0,0 @@
-<dtml-let relative_to_content="1">
-<dtml-var standard_html_header>
-</dtml-let>
-<div class="Desktop">
- <div class="Document">
-  <dtml-var content_byline>
-  <dtml-var CookedBody>
-
-  <div class="Discussion">
-   <dtml-var viewThreadsAtBottom>
-  </div>
-
- </div>
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/CurrentSection.py b/product/CMFTranslation/skins/nexedi/CurrentSection.py
deleted file mode 100755
index 8d00724aba..0000000000
--- a/product/CMFTranslation/skins/nexedi/CurrentSection.py
+++ /dev/null
@@ -1,29 +0,0 @@
-## Script (Python) "change_language"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=
-##title=Modify the language cookie
-##
-
-request = context.REQUEST
-PARENTS = request.PARENTS
-portal_root = context.portal_url.getPortalObject()
-portal_root_path = portal_root.getPhysicalPath()
-lang_list = context.gettext.get_available_languages()
-
-if len(PARENTS) >= (1 + len(portal_root_path)):
-  section = PARENTS[len(PARENTS) - 1
-         - len(portal_root.getPhysicalPath())]
-  if section.id in lang_list:
-    if len(PARENTS) >= (2 + len(portal_root_path)):
-      section = PARENTS[len(PARENTS) - 2
-         - len(portal_root_path)]
-    else:
-      section = context
-else:
-  section = context
-
-return section
diff --git a/product/CMFTranslation/skins/nexedi/CurrentSubSection.py b/product/CMFTranslation/skins/nexedi/CurrentSubSection.py
deleted file mode 100755
index 42cfa9c6e7..0000000000
--- a/product/CMFTranslation/skins/nexedi/CurrentSubSection.py
+++ /dev/null
@@ -1,31 +0,0 @@
-## Script (Python) "change_language"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=
-##title=Modify the language cookie
-##
-
-request = context.REQUEST
-PARENTS = request.PARENTS
-portal_root = context.portal_url.getPortalObject()
-portal_root_path = portal_root.getPhysicalPath()
-lang_list = context.gettext.get_available_languages()
-
-if len(PARENTS) >= (2 + len(portal_root_path)):
-  section = PARENTS[len(PARENTS) - 1
-         - len(portal_root.getPhysicalPath())]
-  subsection = PARENTS[len(PARENTS) - 2
-         - len(portal_root.getPhysicalPath())]
-  if section.id in lang_list:
-    if len(PARENTS) >= (3 + len(portal_root_path)):
-      subsection = PARENTS[len(PARENTS) - 3
-         - len(portal_root_path)]
-    else:
-      subsection = context
-else:
-  subsection = context
-
-return subsection
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/nexedi/TODO b/product/CMFTranslation/skins/nexedi/TODO
deleted file mode 100755
index 0f27ef4bbf..0000000000
--- a/product/CMFTranslation/skins/nexedi/TODO
+++ /dev/null
@@ -1,3 +0,0 @@
-TODO
-
-  - make sure permission to see private folder is OK 
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/nexedi/breadcrumb.dtml b/product/CMFTranslation/skins/nexedi/breadcrumb.dtml
deleted file mode 100755
index 9bc20e6809..0000000000
--- a/product/CMFTranslation/skins/nexedi/breadcrumb.dtml
+++ /dev/null
@@ -1,6 +0,0 @@
-<dtml-let portal_obj="portal_url.getPortalObject()">
-<dtml-if "portal_obj != this()">
-<a href="&dtml-portal_url;"><dtml-var "portal_obj.Title()"></a>&nbsp;<dtml-in "REQUEST.PARENTS[0:-(_.len(portal_obj.getPhysicalPath()))]" reverse>&gt;&nbsp;<a href="<dtml-var local_absolute_url>"><dtml-var TranslatedTitle_or_id></a>&nbsp;</dtml-in>
-<dtml-if "REQUEST.PARENTS[0] != this()">&gt;&nbsp;<a href="<dtml-var local_absolute_url>"><dtml-var TranslatedTitle_or_id></a></dtml-if>
-</dtml-if>
-</dtml-let>
diff --git a/product/CMFTranslation/skins/nexedi/change_language.py b/product/CMFTranslation/skins/nexedi/change_language.py
deleted file mode 100755
index e8c33791ca..0000000000
--- a/product/CMFTranslation/skins/nexedi/change_language.py
+++ /dev/null
@@ -1,15 +0,0 @@
-## Script (Python) "change_language"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=REQUEST
-##title=Modify the language cookie
-##
-lang = REQUEST['lang']
-
-path = context.absolute_url()[len(REQUEST['SERVER_URL']):] or '/'
-REQUEST.RESPONSE.setCookie('LOCALIZER_LANGUAGE', lang, path=path)
-
-REQUEST.RESPONSE.redirect(REQUEST['HTTP_REFERER'])
diff --git a/product/CMFTranslation/skins/nexedi/combined_subjects.py b/product/CMFTranslation/skins/nexedi/combined_subjects.py
deleted file mode 100755
index d59bb492fd..0000000000
--- a/product/CMFTranslation/skins/nexedi/combined_subjects.py
+++ /dev/null
@@ -1,40 +0,0 @@
-## Script (Python) "combined_subjects"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=
-##title=Combine all possible subjects and sub-subjects
-##
-##############################################################################
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-def buildCombinedSubjects(topic):
-  myquery = topic.buildQuery()
-  if myquery.has_key('Subject'):
-    subjects = [myquery['Subject']]
-  else:
-    subjects = []
-  for subtopic in topic.listSubtopics():
-    subjects = subjects + buildCombinedSubjects(subtopic)
-  return subjects
-
-return buildCombinedSubjects(context)
diff --git a/product/CMFTranslation/skins/nexedi/content_hide_form.dtml b/product/CMFTranslation/skins/nexedi/content_hide_form.dtml
deleted file mode 100755
index 82125a8201..0000000000
--- a/product/CMFTranslation/skins/nexedi/content_hide_form.dtml
+++ /dev/null
@@ -1,81 +0,0 @@
-<dtml-comment>
-Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-
-This software is subject to the provisions of the Zope Public License,
-Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-FOR A PARTICULAR PURPOSE
-</dtml-comment>
-
-<dtml-var standard_html_header>
-
-<dtml-let member="portal_membership.getAuthenticatedMember()"
- review_state="portal_workflow.getInfoFor(this(), 'review_state')"
- review_history="portal_workflow.getInfoFor(this(), 'review_history')">
-
-<div class="Desktop">
-
-<h1> Hide Item </h1>
-
-<dtml-if message>
- <h2 class="DesktopTitle">&dtml-message;</h2>
- </dtml-if>
-
-<p align="center"><img src="corporate_workflow.png" /></p>
-
-<p>A <b>private</b> item is only available to its owner.</p>
-
-<p>Another way to control the visibility of an item is with its <b>effective
- date</b>. An item is not publicly available before its effective date,
- <em>even if its status is <b>published</b></em>.</p>
-
-
- <form method="post" action="content_status_modify">
- <table class="FormLayout">
- <tr>
- <td valign=top align=left>
- <strong>Status</strong>
- </td>
- <td valign=top align=left>
- This item is currently in <b>&dtml-review_state;</b> status.
- <input type="hidden" name="workflow_action" value="hide">
- </td>
- </tr>
- <tr>
- <td valign=top align=left colspan=2>
- <strong><em>Comments</em></strong><br>
- <textarea name="comment" cols="60" rows="5" wrap="soft"
- style="width: 100%"></textarea>
- </td>
- </tr>
- <tr>
- <td></td>
- <td><input type="submit" value=" Hide this Item "></td>
- </tr>
- </table>
- </form>
-
-<dtml-if review_history>
- <p><strong>Reviewing history</strong><br>
- <dtml-in review_history mapping reverse>
- <dtml-var time fmt="aCommon"> &dtml-action;
- <dtml-if effective_date>
- (effective: <dtml-var effective_date fmt="aCommon">)
- </dtml-if>
- by &dtml-actor;<br>
- <dtml-if "_['sequence-item']['comments']">
- </p><dtml-var "_['sequence-item']['comments']" fmt="structured-text"><p>
- </dtml-if>
- </dtml-in>
- </p>
- </dtml-if>
-
-</dtml-let>
-
-</div>
-
-<dtml-var standard_html_footer>
-
diff --git a/product/CMFTranslation/skins/nexedi/content_publish_form.dtml b/product/CMFTranslation/skins/nexedi/content_publish_form.dtml
deleted file mode 100755
index 5915e69e78..0000000000
--- a/product/CMFTranslation/skins/nexedi/content_publish_form.dtml
+++ /dev/null
@@ -1,80 +0,0 @@
-<dtml-comment>
-Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-
-This software is subject to the provisions of the Zope Public License,
-Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-FOR A PARTICULAR PURPOSE
-</dtml-comment>
-<dtml-var standard_html_header>
-
-<dtml-let member="portal_membership.getAuthenticatedMember()"
-  review_state="portal_workflow.getInfoFor(this(), 'review_state')"
-  review_history="portal_workflow.getInfoFor(this(), 'review_history')">
-
-<div class="Desktop">
-
-<h1> Publish Item </h1>
-
-<dtml-if message>
- <h2 class="DesktopTitle">&dtml-message;</h2>
-</dtml-if>
-
-<p align="center"><img src="corporate_workflow.png" /></p>
-
-<p>A <b>published</b> item is available to the general
-   member base and anonymous visitors.</p>
-
-<p>Another way to control the visibility of an item is with its <b>effective
-   date</b>.  An item is not publicly available before its effective date,
-   <em>even if its status is <b>published</b></em>.</p>
-
-
-<form method="post" action="content_status_modify">
- <table class="FormLayout">
-  <tr>
-   <td valign=top align=left>
-    <strong>Status</strong>
-   </td>
-   <td valign=top align=left>
-     This item is currently in <b>&dtml-review_state;</b> status.
-     <input type="hidden" name="workflow_action" value="publish">
-   </td>
-  </tr>
-  <tr>
-   <td valign=top align=left colspan=2>
-    <strong><em>Comments</em></strong><br>
-    <textarea name="comment" cols="60" rows="5" wrap="soft"
-     style="width: 100%"></textarea>
-   </td>
-  </tr>
-  <tr>
-   <td></td>
-   <td><input type="submit" value=" Publish this Item "></td>
-  </tr>
- </table>
-</form>
-
-<dtml-if review_history>
- <p><strong>Reviewing history</strong><br>
- <dtml-in review_history mapping reverse>
-  <dtml-var time fmt="aCommon"> &dtml-action;
-  <dtml-if effective_date>
-  (effective: <dtml-var effective_date fmt="aCommon">)
-  </dtml-if>
-  by &dtml-actor;<br>
-  <dtml-if "_['sequence-item']['comments']">
-   </p><dtml-var "_['sequence-item']['comments']" fmt="structured-text"><p>
-  </dtml-if>
- </dtml-in>
- </p>
-</dtml-if>
-
-</dtml-let>
-
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/content_reject_form.dtml b/product/CMFTranslation/skins/nexedi/content_reject_form.dtml
deleted file mode 100755
index 07ba31874d..0000000000
--- a/product/CMFTranslation/skins/nexedi/content_reject_form.dtml
+++ /dev/null
@@ -1,78 +0,0 @@
-<dtml-comment>
-Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-
-This software is subject to the provisions of the Zope Public License,
-Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-FOR A PARTICULAR PURPOSE
-</dtml-comment>
-
-<dtml-var standard_html_header>
-
-<dtml-let member="portal_membership.getAuthenticatedMember()"
-  review_state="portal_workflow.getInfoFor(this(), 'review_state')"
-  review_history="portal_workflow.getInfoFor(this(), 'review_history')">
-
-<div class="Desktop">
-
-<h1> Reject Item </h1>
-
-<dtml-if message>
- <h2 class="DesktopTitle">&dtml-message;</h2>
-</dtml-if>
-
-<p align="center"><img src="corporate_workflow.png" /></p>
-
-<p>Use this form to reject the publication of a content item and set its 
-   status to <b>Private</b>, thereby making it unavailable to 
-   other portal members and visitors.</p>
-
-
-<form method="post" action="content_status_modify">
- <table class="FormLayout">
-  <tr>
-   <td valign=top align=left>
-    <strong>Status</strong>
-   </td>
-   <td valign=top align=left>
-     This item is currently in <b>&dtml-review_state;</b> status.
-     <input type="hidden" name="workflow_action" value="reject">
-   </td>
-  </tr>
-  <tr>
-   <td valign=top align=left colspan=2>
-    <strong><em>Comments</em></strong><br>
-    <textarea name="comment" cols="60" rows="5" wrap="soft"
-     style="width: 100%"></textarea>
-   </td>
-  </tr>
-  <tr>
-   <td></td>
-   <td><input type="submit" value=" Reject this Item "></td>
-  </tr>
- </table>
-</form>
-
-<dtml-if review_history>
- <p><strong>Reviewing history</strong><br>
- <dtml-in review_history mapping reverse>
-  <dtml-var time fmt="aCommon"> &dtml-action;
-  <dtml-if effective_date>
-  (effective: <dtml-var effective_date fmt="aCommon">)
-  </dtml-if>
-  by &dtml-actor;<br>
-  <dtml-if "_['sequence-item']['comments']">
-   </p><dtml-var "_['sequence-item']['comments']" fmt="structured-text"><p>
-  </dtml-if>
- </dtml-in>
- </p>
-</dtml-if>
-
-</dtml-let>
-
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/content_release_form.dtml b/product/CMFTranslation/skins/nexedi/content_release_form.dtml
deleted file mode 100755
index 822fc047d4..0000000000
--- a/product/CMFTranslation/skins/nexedi/content_release_form.dtml
+++ /dev/null
@@ -1,81 +0,0 @@
-<dtml-comment>
-Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-
-This software is subject to the provisions of the Zope Public License,
-Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-FOR A PARTICULAR PURPOSE
-</dtml-comment>
-
-<dtml-var standard_html_header>
-
-<dtml-let member="portal_membership.getAuthenticatedMember()"
-  review_state="portal_workflow.getInfoFor(this(), 'review_state')"
-  review_history="portal_workflow.getInfoFor(this(), 'review_history')">
-
-<div class="Desktop">
-
-<h1> Release Item </h1>
-
-<dtml-if message>
- <h2 class="DesktopTitle">&dtml-message;</h2>
-</dtml-if>
-
-<p align="center"><img src="corporate_workflow.png" /></p>
-
-<p>A <b>published</b> item is available to the general
-   member base but not to anonymous visitors.</p>
-
-<p>Another way to control the visibility of an item is with its <b>effective
-   date</b>.  An item is not publicly available before its effective date,
-   <em>even if its status is <b>published</b></em>.</p>
-
-
-<form method="post" action="content_status_modify">
- <table class="FormLayout">
-  <tr>
-   <td valign=top align=left>
-    <strong>Status</strong>
-   </td>
-   <td valign=top align=left>
-     This item is currently in <b>&dtml-review_state;</b> status.
-     <input type="hidden" name="workflow_action" value="publish">
-   </td>
-  </tr>
-  <tr>
-   <td valign=top align=left colspan=2>
-    <strong><em>Comments</em></strong><br>
-    <textarea name="comment" cols="60" rows="5" wrap="soft"
-     style="width: 100%"></textarea>
-   </td>
-  </tr>
-  <tr>
-   <td></td>
-   <td><input type="submit" value=" Release this Item "></td>
-  </tr>
- </table>
-</form>
-
-<dtml-if review_history>
- <p><strong>Reviewing history</strong><br>
- <dtml-in review_history mapping reverse>
-  <dtml-var time fmt="aCommon"> &dtml-action;
-  <dtml-if effective_date>
-  (effective: <dtml-var effective_date fmt="aCommon">)
-  </dtml-if>
-  by &dtml-actor;<br>
-  <dtml-if "_['sequence-item']['comments']">
-   </p><dtml-var "_['sequence-item']['comments']" fmt="structured-text"><p>
-  </dtml-if>
- </dtml-in>
- </p>
-</dtml-if>
-
-</dtml-let>
-
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/content_retract_form.dtml b/product/CMFTranslation/skins/nexedi/content_retract_form.dtml
deleted file mode 100755
index f6c9b07aa2..0000000000
--- a/product/CMFTranslation/skins/nexedi/content_retract_form.dtml
+++ /dev/null
@@ -1,78 +0,0 @@
-<dtml-comment>
-Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-
-This software is subject to the provisions of the Zope Public License,
-Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-FOR A PARTICULAR PURPOSE
-</dtml-comment>
-
-<dtml-var standard_html_header>
-
-<dtml-let member="portal_membership.getAuthenticatedMember()"
-  review_state="portal_workflow.getInfoFor(this(), 'review_state')"
-  review_history="portal_workflow.getInfoFor(this(), 'review_history')">
-
-<div class="Desktop">
-
-<h1> Retract Item </h1>
-
-<dtml-if message>
- <h2 class="DesktopTitle">&dtml-message;</h2>
-</dtml-if>
-
-<p align="center"><img src="corporate_workflow.png" /></p>
-
-<p>Use this form to retract a content item by setting its 
-   status to <b>Private</b>, thereby making it unavailable to
-   other portal members and visitors.</p>
-
-
-<form method="post" action="content_status_modify">
- <table class="FormLayout">
-  <tr>
-   <td valign=top align=left>
-    <strong>Status</strong>
-   </td>
-   <td valign=top align=left>
-     This item is currently in <b>&dtml-review_state;</b> status.
-     <input type="hidden" name="workflow_action" value="retract">
-   </td>
-  </tr>
-  <tr>
-   <td valign=top align=left colspan=2>
-    <strong><em>Comments</em></strong><br>
-    <textarea name="comment" cols="60" rows="5" wrap="soft"
-     style="width: 100%"></textarea>
-   </td>
-  </tr>
-  <tr>
-   <td></td>
-   <td><input type="submit" value=" Retract this Item "></td>
-  </tr>
- </table>
-</form>
-
-<dtml-if review_history>
- <p><strong>Reviewing history</strong><br>
- <dtml-in review_history mapping reverse>
-  <dtml-var time fmt="aCommon"> &dtml-action;
-  <dtml-if effective_date>
-  (effective: <dtml-var effective_date fmt="aCommon">)
-  </dtml-if>
-  by &dtml-actor;<br>
-  <dtml-if "_['sequence-item']['comments']">
-   </p><dtml-var "_['sequence-item']['comments']" fmt="structured-text"><p>
-  </dtml-if>
- </dtml-in>
- </p>
-</dtml-if>
-
-</dtml-let>
-
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/content_show_form.dtml b/product/CMFTranslation/skins/nexedi/content_show_form.dtml
deleted file mode 100755
index ba95d67450..0000000000
--- a/product/CMFTranslation/skins/nexedi/content_show_form.dtml
+++ /dev/null
@@ -1,82 +0,0 @@
-<dtml-comment>
-Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-
-This software is subject to the provisions of the Zope Public License,
-Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-FOR A PARTICULAR PURPOSE
-</dtml-comment>
-
-<dtml-var standard_html_header>
-
-<dtml-let member="portal_membership.getAuthenticatedMember()"
- review_state="portal_workflow.getInfoFor(this(), 'review_state')"
- review_history="portal_workflow.getInfoFor(this(), 'review_history')">
-
-<div class="Desktop">
-
-<h1> Show Item </h1>
-
-<dtml-if message>
- <h2 class="DesktopTitle">&dtml-message;</h2>
- </dtml-if>
-
-<p align="center"><img src="corporate_workflow.png" /></p>
-
-<p>A <b>restricted</b> item is available to your partners ie. Members which
-have a Partner local role.</p>
-
-<p>Another way to control the visibility of an item is with its <b>effective
- date</b>. An item is not publicly available before its effective date,
- <em>even if its status is <b>published</b></em>.</p>
-
-
- <form method="post" action="content_status_modify">
- <table class="FormLayout">
- <tr>
- <td valign=top align=left>
- <strong>Status</strong>
- </td>
- <td valign=top align=left>
- This item is currently in <b>&dtml-review_state;</b> status.
- <input type="hidden" name="workflow_action" value="show">
- </td>
- </tr>
- <tr>
- <td valign=top align=left colspan=2>
- <strong><em>Comments</em></strong><br>
- <textarea name="comment" cols="60" rows="5" wrap="soft"
- style="width: 100%"></textarea>
- </td>
- </tr>
- <tr>
- <td></td>
- <td><input type="submit" value=" Show this Item to Partners "></td>
- </tr>
- </table>
- </form>
-
-<dtml-if review_history>
- <p><strong>Reviewing history</strong><br>
- <dtml-in review_history mapping reverse>
- <dtml-var time fmt="aCommon"> &dtml-action;
- <dtml-if effective_date>
- (effective: <dtml-var effective_date fmt="aCommon">)
- </dtml-if>
- by &dtml-actor;<br>
- <dtml-if "_['sequence-item']['comments']">
- </p><dtml-var "_['sequence-item']['comments']" fmt="structured-text"><p>
- </dtml-if>
- </dtml-in>
- </p>
- </dtml-if>
-
-</dtml-let>
-
-</div>
-
-<dtml-var standard_html_footer>
-
diff --git a/product/CMFTranslation/skins/nexedi/content_submit_form.dtml b/product/CMFTranslation/skins/nexedi/content_submit_form.dtml
deleted file mode 100755
index a580d2abe4..0000000000
--- a/product/CMFTranslation/skins/nexedi/content_submit_form.dtml
+++ /dev/null
@@ -1,83 +0,0 @@
-<dtml-comment>
-Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-
-This software is subject to the provisions of the Zope Public License,
-Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-FOR A PARTICULAR PURPOSE
-</dtml-comment>
-
-<dtml-var standard_html_header>
-
-<dtml-let member="portal_membership.getAuthenticatedMember()"
-  review_state="portal_workflow.getInfoFor(this(), 'review_state')"
-  review_history="portal_workflow.getInfoFor(this(), 'review_history')">
-
-<div class="Desktop">
-
-<h1> Submit Item for Review </h1>
-
-<dtml-if message>
- <h2 class="DesktopTitle">&dtml-message;</h2>
-</dtml-if>
-
-<p align="center"><img src="corporate_workflow.png" /></p>
-
-<p>To make an item published, it
-   has to be reviewed by one of the site's reviewers. 
-   A <b>published</b> item is available to the general
-   member base and eventually to anonymous visitors.</p>
-
-<p>Another way to control the visibility of an item is with its <b>effective
-   date</b>.  An item is not publicly available before its effective date,
-   <em>even if its status is <b>published</b></em>.</p>
-
-
-<form method="post" action="content_status_modify">
- <table class="FormLayout">
-  <tr>
-   <td valign=top align=left>
-    <strong>Status</strong>
-   </td>
-   <td valign=top align=left>
-     This item is currently in <b>&dtml-review_state;</b> status.
-     <input type="hidden" name="workflow_action" value="submit">
-   </td>
-  </tr>
-  <tr>
-   <td valign=top align=left colspan=2>
-    <strong><em>Comments</em></strong><br>
-    <textarea name="comment" cols="60" rows="5" wrap="soft"
-     style="width: 100%"></textarea>
-   </td>
-  </tr>
-  <tr>
-   <td></td>
-   <td><input type="submit" value=" Submit Item "></td>
-  </tr>
- </table>
-</form>
-
-<dtml-if review_history>
- <p><strong>Reviewing history</strong><br>
- <dtml-in review_history mapping reverse>
-  <dtml-var time fmt="aCommon"> &dtml-action;
-  <dtml-if effective_date>
-  (effective: <dtml-var effective_date fmt="aCommon">)
-  </dtml-if>
-  by &dtml-actor;<br>
-  <dtml-if "_['sequence-item']['comments']">
-   </p><dtml-var "_['sequence-item']['comments']" fmt="structured-text"><p>
-  </dtml-if>
- </dtml-in>
- </p>
-</dtml-if>
-
-</dtml-let>
-
-</div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/corporate_workflow.png b/product/CMFTranslation/skins/nexedi/corporate_workflow.png
deleted file mode 100755
index 76292e6388bdbf1cae6f62e15eb56a9e0d4f4d7a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 8835
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

diff --git a/product/CMFTranslation/skins/nexedi/default_stylesheet.dtml b/product/CMFTranslation/skins/nexedi/default_stylesheet.dtml
deleted file mode 100755
index 61f6c48536..0000000000
--- a/product/CMFTranslation/skins/nexedi/default_stylesheet.dtml
+++ /dev/null
@@ -1,589 +0,0 @@
-<dtml-comment>
-Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-
-This software is subject to the provisions of the Zope Public License,
-Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-FOR A PARTICULAR PURPOSE
-</dtml-comment>
-
-<dtml-unless do_inline_css>
-<dtml-call "RESPONSE.setHeader('Content-Type','text/css')">
-</dtml-unless>
-<dtml-with stylesheet_properties>
-
-body {
-    margin-top: 0;
-    margin-left: 0;
-    margin-right: 0;
-    margin-bottom: 0;
-    background-color: &dtml-bg_color;;
-    color: &dtml-base_font_color;;
-    font-family:  &dtml-base_font_family;;
-    font-size:  &dtml-base_font_size;;
-}
-
-a:link {
-    color: &dtml-link_color;;
-    text-decoration: none;
-}
-
-a:visited {
-    color: &dtml-vlink_color;;
-    text-decoration: none;
-}
-
-a:active {
-    color: &dtml-alink_color;
-    text-decoration: none;
-}
-
-a:hover {
-    text-decoration: underline;
-    color:  &dtml-hover_color;;
-}
-
-.invisible {
-  font-size: 80%;
-  color: &dtml-bg_color;;
-}
-
-.mild {
-    color: #7f7f7f;
-}
-
-.DesktopStatusBar{
-  font-size: 80%;
-  font-family: &dtml-secondary_font_family;;
-  color: #ff0000;
-}
-
-table {
-    width: 100%;
-    border: 0;
-}
-
-td.SideBar {
-    width: 15%;
-    vertical-align: top;
-}
-
-table.ActionBox {
-    font-family: &dtml-primary_font_family;;
-    background-color: &dtml-primary_accent_color;;
-    margin-right: 5px;
-    margin-left: 1px;
-    margin-top: 10px;
-}
-
-table.ActionBox tr td {
-    font-size: 70%;
-}
-
-table.ActionBox tr td.ActionTitle {
-    font-weight: bold
-}
-
-table.ActionBox tr.GuestActions {
-    background-color: &dtml-guest_actions_color;;
-}
-
-table.ActionBox tr.GuestActions td a:link {
-    color: &dtml-guest_actions_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.GuestActions td a:visited {
-    color: &dtml-guest_actions_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.GuestActions td a:active {
-    color: &dtml-guest_actions_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.GuestActions td a:hover {
-    color: &dtml-hover_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions {
-    background-color: &dtml-secondary_accent_color;;
-}
-
-table.ActionBox tr.MemberActions td {
-    color: &dtml-secondary_accent_font_color;;
-}
-
-table.ActionBox tr.MemberActions td a:link {
-    color: &dtml-secondary_accent_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions td a:visited {
-    color: &dtml-secondary_accent_vlink_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions td a:active{
-    color: &dtml-secondary_accent_alink_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions td a:hover {
-    color: &dtml-hover_color;;
-    text-decoration:  none;
-}
-
-td.Desktop {
-    vertical-align: top;
-}
-
-td.Desktop table tr {
-    vertical-align: top;
-}
-
-div.Desktop p {
-    font-size: 100%;
-    margin-right:10pt;
-    font-family: &dtml-primary_font_family;;
-}
-
-div.Desktop h1 {
-    font-size: 120%;
-    margin-right:100pt;
-    font-family: &dtml-secondary_font_family;;
-}
-
-div.AuthWarning {
-    text-align: center;
-    font-style: italic;
-}
-
-div.AuthWarning table {
-    border: 0;
-}
-
-div.AuthWarning tr.Hot {
-    color: #FF0000;
-}
-
-div.Error {
-    color:  #FF0000;
-}
-
-p.DesktopStatusBar {
-    font-size: 100%;
-    font-family: &dtml-secondary_font_family;;
-    font-style: italic;
-    font-weight: bold;
-}
-
-table.FormLayout {
-    width: 80%;
-}
-
-table.FormLayout tr {
-    vertical-align: top;
-}
-
-table.FormLayout tr th.TextField {
-    vertical-align: top;
-}
-
-table.FormLayout tr td.TextField {
-    vertical-align: top;
-}
-
-table.FormLayout th {
-    text-align: right;
-}
-
-table.FormLayout dl.FieldHelp dd {
-    font-size: 70%;
-}
-
-table.ContentsList {
-}
-
-table.ContentsList tr td img {
-    border: 0;
-}
-
-table.SearchResults {
-    width: auto;
-}
-
-table.SearchResults tr th {
-    text-align: left;
-}
-
-table.SearchResults tr td img {
-    border: 0;
-}
-
-table.Wizard {
-    width: auto;
-}
-
-table.Wizard tr {
-    vertical-align: top;
-}
-
-table.Wizard tr th {
-    text-align: right;
-}
-
-div.NewsBar {
-    text-align: right;
-}
-
-table.NewsItems {
-    border: 1;
-    padding: 1;
-}
-
-
-td.NewsBorder {
-    background-color: &dtml-primary_accent_color;;
-}
-
-td.NewsListing {
-    background-color: &dtml-secondary_accent_color;;
-    color:  &dtml-bg_color;;
-}
-
-.NewsLeadin {
-    background-color: &dtml-bg_color;;
-    color:  &dtml-primary_accent_color;;
-}
-
-.NewsByLine {
-    background-color:  &dtml-primary_accent_color;;
-    color:  &dtml-bg_color;;
-}
-
-.NewsDateline {
-    background-color:  &dtml-primary_accent_color;;
-    color:  &dtml-bg_color;;
-}
-
-td.NewsTitle {
-    background-color: &dtml-primary_accent_color;;
-    color: &dtml-primary_accent_font_color;;
-    text-align: center;
-    font-size: 90%;
-    font-weight: bold;
-}
-
-tr.NewsItemRow td {
-    background-color: &dtml-highlight_color;;
-    font-size: 70%;
-}
-
-tr.NewsItemRow td.title {
-    margin-top: 5px;
-    margin-bottom: 1px;
-    font-size: 100%;
-    font-weight: normal;
-}
-
-tr.NewsItemRow td.title p {
-    margin-top: 3px;
-    margin-bottom: 1px;
-    font-size: 100%;
-    font-weight: normal;
-}
-
-tr.NewsItemRow td.title p.description {
-    margin-top: 0px;
-    margin-left: 5px;
-    margin-bottom: 0px;
-    font-size: 70%;
-    font-weight: normal;
-}
-
-p.NewsHeadline {
-    background-color:  &dtml-primary_accent_color;;
-}
-
-td.ListName {
-    background-color:  &dtml-primary_accent_color;;
-    color: &dtml-primary_accent_font_color;;
-    font-weight: bold;
-}
-td.ListDefinition {
-    font-style: italic;
-}
-
-table.logobox {
-  padding-top: 1px;
-  padding-left: 2px;
-  border: 0px;
-}
-
-td.TitleBox {
-  vertical-align: top;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  color: &dtml-primary_accent_color;;
-  text-align: right;
-  font-weight: bolder;
-  font-size: 18pt;
-  padding-top: 6px;
-}
-
-td.LanguageBox {
-  vertical-align: top;
-  text-align: right;
-  padding-right: 20;
-}
-
-.subsectiontitle {
-  text-align: left;
-  color: navy;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 8pt;
-  font-weight: normal;
-  margin-left: 5pt;
-  margin-bottom: 1pt;
-  margin-top: 1pt
-}
-
-
-table.menubox {
-  margin-right: 5px;
-  margin-left: 1px;
-  margin-top: 20px;
-}
-
-table.menubox .selected {
-  background-color: &dtml-secondary_accent_color;;
-}
-
-table.menubox td.endline {
-  border-top: 3px;
-  border-color: #6524B9;
-  margin-top: 0px;
-}
-
-table.menubox a:link {
-    color: navy;
-    text-decoration:  none;
-}
-
-table.menubox a:visited {
-    color: navy;
-    text-decoration:  none;
-}
-
-table.menubox a:active {
-    color: navy;
-    text-decoration:  none;
-}
-
-table.menubox a:hover {
-    color: black;
-    background-color: &dtml-highlight_color;;
-    text-decoration:  underline;
-}
-
-table.menubox td.sectiontitle {
-  border-bottom: 3px;
-  border-color: #E6BCE6;
-  padding-bottom: 0px;
-  padding-top: 10px;
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-table.menubox p.sectiontitle {
-  text-align: left;
-  color: navy;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 10pt;
-  font-weight: bolder;
-  font-variant: small-caps;
-  margin-bottom: 2pt;
-  margin-top: 10pt;
-}
-
-div.breadcrumb {
-  text-align: left;
-  color: black;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 8pt;
-  margin-bottom: 10pt;
-  margin-top: 10pt
-}
-
-.breadcrumb p {
-  text-align: left;
-  color: black;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 8pt;
-  margin-bottom: 10pt;
-  margin-top: 10pt
-}
-
-div.Document {
-    font-size: 11pt;
-    background-color:  &dtml-bg_color;;
-    color:  &dtml-base_font_color;;
-    font-family:  &dtml-base_font_family;;
-    margin-left: 10pt;
-    margin-bottom: 3pt;
-    margin-top: 3pt;
-    line-height: 17pt;
-    text-indent: 0pt;
-}
-
-div.Document p {
-    font-family: &dtml-base_font_family;;
-    font-size: 11pt;
-    margin-left: 10pt;
-    margin-bottom: 3pt;
-    margin-top: 3pt;
-    line-height: 17pt;
-    text-indent: 0pt;
-}
-
-div.Document p.summary {
-    font-weight: bold;
-}
-
-div.Document ul {
-    font-family: &dtml-base_font_family;;
-    font-size: 11pt;
-    margin-left: 10pt;
-    margin-bottom: 1pt;
-    margin-top: 1pt;
-    line-height: 16pt;
-    text-indent: 0pt;
-    vertical-align: middle;
-}
-
-div.Document ul li {
-    margin-left: 0pt;
-    vertical-align: middle;
-}
-
-div.Document ol {
-    font-family: &dtml-base_font_family;;
-    font-size: 11pt;
-    margin-left: 10pt;
-    margin-bottom: 1pt;
-    margin-top: 1pt;
-    line-height: 16pt;
-    text-indent: 0pt;
-    vertical-align: middle;
-}
-
-div.Document ol li {
-    margin-left: 0pt;
-    vertical-align: middle;
-}
-					
-div.Document h1 {
-  text-align: left;
-  color: #333333;
-  font-family: &dtml-primary_font_family;;
-  font-weight: bold;
-  margin-left: 0pt;
-  margin-top: 15pt;
-  margin-bottom: 3pt;
-  font-size: 14pt
-}
-
-div.Document h1 a:link {
-  color: #333333;
-}
-
-div.Document h1 a:visited {
-  color: #333333;
-}
-
-div.Document h1 a:active {
-    color: &dtml-alink_color;
-    text-decoration: none;
-}
-
-div.Document h1 a:hover {
-    text-decoration: underline;
-    color:  &dtml-hover_color;;
-}
-
-
-div.Document h2 {
-  text-align: black;
-  color: #666666;
-  font-family: &dtml-secondary_font_family;;
-  font-weight: bold;
-  margin-left: 10pt;
-  margin-top: 9pt;
-  margin-bottom: 3pt;
-  font-size: 13pt;
-}
-
-div.Document h3 {
-  text-align: left;
-  color: &dtml-primary_accent_color;;
-  font-family: &dtml-base_font_family;;
-  font-style: italic;
-  font-weight: bolder;
-  margin-left: 10pt;
-  margin-top: 6pt;
-  margin-bottom: 2pt;
-  letter-spacing: 1pt;
-  font-size: 10pt;
-}
-
-table.tophead  {
-  cellpadding: 1;
-  cellspacing: 1;
-  background-color: #CCCCCC;
-  border-bottom-width: 1pt;
-  border-top-width: 0;
-  border-left-width: 0;
-  border-right-width: 0;
-  border-color: #6f6f6f;
-  border-style:solid;
-}
-
-table.tophead tr {
-  font-size: 11px;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  text-decoration: none;
-  color: #505050;
-  vertical-align: middle;
-  height: 11px;
-}
-
-table.tophead td {
-  vertical-align: middle;
-  height: 10px;
-}
-
-table.tophead p {
-  line-height: 5pt;
-  background-color: #6699CC;
-}
-
-.legalinfo {
-  margin-bottom: 40pt;
-  margin-top: 20pt;
-  font-size: 8pt;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  text-align: center;
-}
-
-.LanguageBox {
-  margin-bottom: 0px;
-  margin-top: 0px;
-
-}
-
-</dtml-with>
diff --git a/product/CMFTranslation/skins/nexedi/document18_miniprint.dtml b/product/CMFTranslation/skins/nexedi/document18_miniprint.dtml
deleted file mode 100755
index 8e49a5b804..0000000000
--- a/product/CMFTranslation/skins/nexedi/document18_miniprint.dtml
+++ /dev/null
@@ -1,44 +0,0 @@
-<dtml-comment>
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-                    Jean-Paul Smets <jp@nexedi.com>
-
-WARNING: This program as such is intended to be used by professional
-programmers who take the whole responsability of assessing all potential
-consequences resulting from its eventual inadequacies and bugs
-
-This program as such is not intended to be used by end users. End
-users who are looking for a ready-to-use solution with commercial
-garantees and support are strongly adviced to contract a Free Software
-Service Company
-
-This program is Free Software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-</dtml-comment>
-
-
-<dtml-let relative_to_content="1">
-<dtml-var printable_html_header>
-</dtml-let>
-  <div class="Document">
-
-   <p class="title">&dtml-TranslatedTitle;</h1>
-
-
-   <dtml-var TranslatedBody>
-
-
-  </div>
-
-<dtml-var printable_html_footer>
-
diff --git a/product/CMFTranslation/skins/nexedi/document18_print.dtml b/product/CMFTranslation/skins/nexedi/document18_print.dtml
deleted file mode 100755
index 892691820b..0000000000
--- a/product/CMFTranslation/skins/nexedi/document18_print.dtml
+++ /dev/null
@@ -1,44 +0,0 @@
-<dtml-comment>
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-                    Jean-Paul Smets <jp@nexedi.com>
-
-WARNING: This program as such is intended to be used by professional
-programmers who take the whole responsability of assessing all potential
-consequences resulting from its eventual inadequacies and bugs
-
-This program as such is not intended to be used by end users. End
-users who are looking for a ready-to-use solution with commercial
-garantees and support are strongly adviced to contract a Free Software
-Service Company
-
-This program is Free Software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-</dtml-comment>
-
-<dtml-let relative_to_content="1">
-<dtml-var printable_html_header>
-</dtml-let>
-  <div class="Document">
-
-   <p class="title">&dtml-TranslatedTitle;</h1>
-
-   <p class="summary"><dtml-var TranslatedDescription></p>
-
-   <dtml-var TranslatedBody>
-
-
-  </div>
-
-<dtml-var printable_html_footer>
-
diff --git a/product/CMFTranslation/skins/nexedi/document18_view.dtml b/product/CMFTranslation/skins/nexedi/document18_view.dtml
deleted file mode 100755
index 47121d9a7f..0000000000
--- a/product/CMFTranslation/skins/nexedi/document18_view.dtml
+++ /dev/null
@@ -1,16 +0,0 @@
-<dtml-let relative_to_content="1">
-<dtml-var standard_html_header>
-</dtml-let>
- <div class="Document">
-   <dtml-var TranslatedBody>
-  </div>
-
-  <dtml-if "not portal_membership.isAnonymousUser()">
-    <div class="ContentBy"><dtml-var content_byline></div>
-  </dtml-if>
-
-  <div class="Discussion">
-   <dtml-var viewThreadsAtBottom>
-  </div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/document_print.dtml b/product/CMFTranslation/skins/nexedi/document_print.dtml
deleted file mode 100755
index beb81a567a..0000000000
--- a/product/CMFTranslation/skins/nexedi/document_print.dtml
+++ /dev/null
@@ -1,43 +0,0 @@
-<dtml-comment>
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-                    Jean-Paul Smets <jp@nexedi.com>
-
-WARNING: This program as such is intended to be used by professional
-programmers who take the whole responsability of assessing all potential
-consequences resulting from its eventual inadequacies and bugs
-
-This program as such is not intended to be used by end users. End
-users who are looking for a ready-to-use solution with commercial
-garantees and support are strongly adviced to contract a Free Software
-Service Company
-
-This program is Free Software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-</dtml-comment>
-
-<dtml-let relative_to_content="1">
-<dtml-var printable_html_header>
-</dtml-let>
- <div class="Document">
-   <div align="center">
-   <h1><dtml-var title></h1>
-   </div>
-   <dtml-var TranslatedBody>
-  </div>
-
-  <dtml-if "not portal_membership.isAnonymousUser()">
-    <div class="ContentBy"><dtml-var content_byline></div>
-  </dtml-if>
-
-<dtml-var printable_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/document_view.dtml b/product/CMFTranslation/skins/nexedi/document_view.dtml
deleted file mode 100755
index 56408c86db..0000000000
--- a/product/CMFTranslation/skins/nexedi/document_view.dtml
+++ /dev/null
@@ -1,16 +0,0 @@
-<dtml-let relative_to_content="1">
-<dtml-var standard_html_header>
-</dtml-let>
- <div class="Document">
-   <dtml-var CookedBody>
-  </div>
-
-  <dtml-if "not portal_membership.isAnonymousUser()">
-    <div class="ContentBy"><dtml-var content_byline></div>
-  </dtml-if>
-
-  <div class="Discussion">
-   <dtml-var viewThreadsAtBottom>
-  </div>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/favicon.ico b/product/CMFTranslation/skins/nexedi/favicon.ico
deleted file mode 100755
index 05a5a14d61c6459950f1c5e355cc7ca629f8771a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 281
zcmV+!0p|WkNk%w1VGsZi0E7SltgO8=Gh7T1K>z?V2M0MjJ7U(>-WfAyDN=<qW|=}l
zXy4!E6DL|PUXdwQix7UX0KNDUbEyE#|4&bH|NsB8vcVV_MgW7_0HEmyhROzW!xc@E
z0A|d+y~+q!umAu5A^8LW6aXIpEC2ui01yBW000G+;3s}SAPfUh0OM#B#DOFUauCYm
z22A5T5J<$)U<7oZLhm7IIv>ReiO_gZD3Yr)(hyV%2Zs~ult3H@1pyHWy5B;CWstaF
z?)ZErL7;0cfPsP<2?GKM8yt#@j2j373So?s9B2v^0t$(g92*J*9Ul`tn~hN-20T6+
f9v&M+3^^kUYBDr70ux9r6$%0b1QrvaBOw4gkqKOD

diff --git a/product/CMFTranslation/skins/nexedi/fileprint.png b/product/CMFTranslation/skins/nexedi/fileprint.png
deleted file mode 100755
index d96a90e809438d18252ef85da358c4a38052859b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1210
zcmV;r1V#IaP)<h*8VUda018P+L{b0%02TlM02T-a0002Qv}`*7000DMK}|sb0I`n?
z{9y$E000JJOGiWi?f~up?uu#f6aWAK32;bRa{vGf5C8xR5CN?ty>$Qp00(qQO+^RL
z3lbDN2?}dOx&QzKI7vi7RCt`7l}&6^RTze!d*|Mn-f8X7#A&BMXah+trs>bZz>1$i
zFzv#UkPLy4NaI2iQWIjp5*BQ<F)=m@3tU)S)euQVYjBLvv@CGZG$<9Tq*kqo)wDKk
zVd&hsKj(Zd3L^+e^<A9g-rV!P&-a~k&w*7clgUVPbF&<1-z}^8-de5k<m4nnpS*wX
zQKn~aQCpSZ+~8$nwH^<ty|rHEe;$>5Zb@9%71wnoznqi#U&iD>`|d|p@<igcJ&nYk
zswZAqj}fskjJtrQMZB_}vmXwiyk)%GGfe(AFLmpm=G@?A<B4Uox7N!C@AXrfYIxwi
zXoZ9xA{yoA@s{TicY(^y&jT3$N_>y@pQZp3`e+q^C_+C^7zC)?{F7VJwx<z0;>+1H
z@1lYNX2in4KoCSLR9FB}=+H;`c|>^}d+RKK@sP2Im|M1NQA#NaVS-dLNpNSLhzc>I
zB^a11)3gR1qLq*K^B4&F_U{aQK1_RSy#Pe+H*ITcQzuWJq@|^W@5jHP=Zy?zX$69T
zp;zcc2WaJ?f&w}y;JbH_V42rXou(u62d{R%#L&>q6=D&I?%liBJ9_jeb8~ZCyLOF&
z5^j7uM$0pEc%|!!r=DFYJ18Jp0EGlT28y6?i*tjQIs9@PU0t6t_{B}b1lYQDt9Rtc
z5oTv+@jQ>FrY1IS+(_#yr+MwnC^x?T3je1|6#o1XQ9dXaoxcjf9VAp7d$W(;Q>ARE
zX)LzYSOFGX*Cm_Hvb3~B7>33D8jHoadi5%OeSPfTpW*PXYMSddph{988muVmpWDxu
zpSAJAi`nAh8R>Ld`uqE_EQ@3^iHJ}r6v$??%+AiDlqv??ACk#r=-8FwosYg_czBo}
z#=F?u^mY;0$Ye6o-QA6C+nA<_)*8#QSi5#DT5CMdBb&`KGcyB#@B5UOmlKP{$Y!&g
zKYyO>+qY9&TT4Yn1@U;C?(S}^#l=My78bB=o05_elv0?cNj{%PM2N*=?Ax~wpxCad
zsVTJ9G&VNU(9nSI`#6q6Sy>quE?oG#$2~ng)YjILOeWD<6OBf(Z5yQ&mSqu*Mlns3
zSS-e-O`9GFnV6U$2m%s`1Q#z}#I|jQhK9IzRtUg}6DO#yt|pmGvS!U1lv2dwaUzij
zN~vO1wr%4$4s~^PxUS3f>(@Dc{5X!|5QZTmBO}E>&j1)59hKqXVE{TiJ4vNdtXsE^
zL?S^D1eBJRlFQ{#O5r#Tb8~ZOtr;I5$8j8Txg5Ulvu)cp9(%f_)9GSJM@I)WH8oUL
zR#H}0hGkhC{PiGo!NA7@T)K3L>FH?}7Z({D8(Y~Gk2AhsJ9qAsk&zJq4jno~O-%|_
zRaMxwjqm$ROiVB}HN{;Jqd5E*?bxwHu3WiN3@I-!CmM~?+uQrU{2r-vIxVa${6iP)
YUy%h4gj(_Me*gdg07*qoM6N<$g3m%R6951J

diff --git a/product/CMFTranslation/skins/nexedi/folder18_view.dtml b/product/CMFTranslation/skins/nexedi/folder18_view.dtml
deleted file mode 100755
index d015d1c623..0000000000
--- a/product/CMFTranslation/skins/nexedi/folder18_view.dtml
+++ /dev/null
@@ -1,61 +0,0 @@
-<dtml-if "'index.html' in objectIds()">
-
-  <dtml-var index.html>
-
-<dtml-elif "'index.stx' in objectIds()">
-
-  <dtml-var index.stx>
-
-<dtml-elif "'default.htm' in objectIds()">
-
-  <dtml-var default.htm>
-
-<dtml-else>
-
-<dtml-var standard_html_header>
-
-<dtml-let folder_url=absolute_url>
-
-<div class="Document">
-
-<dtml-if name="Description">
-<p><dtml-var TranslatedDescription></p>
-</dtml-if>
-
-<dtml-in expr="objectValues()" skip_unauthorized
-  sort=TranslatedTitle_or_id>
-
- <dtml-let obj="_.getitem('sequence-item', 0 )"
-   folderish=isPrincipiaFolderish
-   portalish="_.hasattr( obj, 'isPortalContent' ) and obj.isPortalContent"
-   getIcon="_.hasattr(obj, 'getIcon') and obj.getIcon()"
-   icon="getIcon or _.getattr(obj, 'icon', '')">
-
-   <dtml-if portalish>
-     <h1>
-      <dtml-if icon>
-        <a href="&dtml-folder_url;/&dtml.url_quote-getId;"><img
-         src="&dtml-portal_url;/&dtml-icon;" alt="&dtml-Type;" border="0">
-        </a>
-      </dtml-if>
-
-      <a href="&dtml-folder_url;/&dtml.url_quote-getId;"
-        >&dtml-TranslatedTitle_or_id;</a>
-     </h1>
-
-     <dtml-if name="Description">
-      <p>&dtml.html_quote-TranslatedDescription;</p>
-     </dtml-if>
-
-   </dtml-if>
-
- </dtml-let>
-</dtml-in>
-
-</div>
-
-</dtml-let>
-
-<dtml-var standard_html_footer>
-
-</dtml-if>
diff --git a/product/CMFTranslation/skins/nexedi/folder_localrole_form.dtml b/product/CMFTranslation/skins/nexedi/folder_localrole_form.dtml
deleted file mode 100755
index ebd1f7424b..0000000000
--- a/product/CMFTranslation/skins/nexedi/folder_localrole_form.dtml
+++ /dev/null
@@ -1,140 +0,0 @@
-<dtml-var standard_html_header>
- 
-<div class="Desktop">
- 
-<dtml-if message>
- <p>&dtml-message;</p>
- <hr>
-</dtml-if>
- 
-<div class="File">
-
-<dtml-if name="role_submit">
- 
-  <h2>Search results</h2>
-
-  <dtml-in expr="portal_membership.searchMembers( search_param=search_param
-                                                , search_term=search_term
-                                                )" mapping sort="username">
-    <dtml-if name="sequence-start">
-      <p>Select Member(s) and a role to assign:</p>
-
-      <form method="post" action="folder_localrole_edit">
-      <input type="hidden" name="change_type" value="add">
-
-      <table class="FormLayout">
-        <tr>
-          <td width="16">&nbsp;</td>
-          <td><b>User ID</b></td>
-          <td><b>Email address</td>
-        </tr>
-    </dtml-if>
-
-    <dtml-with sequence-item mapping only>
-      <tr>
-        <td width="16"><input type="checkbox" name="member_ids:list" 
-value="&dtml-username;"></td>
-        <td>&dtml-username;</td>
-        <td>&dtml-email;</td>
-      </tr>
-    </dtml-with>
-
-    <dtml-if name="sequence-end">
-        <tr><td colspan="3">&nbsp;</td></tr>
-        </tr>
-          <td colspan="2"><b>Role to assign:</b></td>
-          <td>
-            <select name="member_role">
-              <dtml-in expr="portal_membership.getCandidateLocalRoles( this() )">
-                <option>&dtml-sequence-item;</option>
-              </dtml-in>
-            </select>
-          </td>
-        </tr>
-        <tr><td colspan="3">&nbsp;</td></tr>
-        <tr>
-          <td width="16">&nbsp;</td>
-          <td colspan="2"><input type="submit" value=" Assign Roles "></td>
-        </tr>
-      </table>
-      </form>
-    </dtml-if>
-
-  </dtml-in>
-
-<dtml-else>
-
-  <h2>Assign local roles</h2>
-
-<form method="post" action="folder_localrole_form">
-
-<table class="FormLayout">
-  <tr>
-    <td><b>Search by</b></td>
-    <td>
-      <select name="search_param">
-        <option value="username">User Name</option>
-        <option value="email">Email Address</option>
-      </select>
-    </td>
-  </tr>
-  <tr>
-    <td><b>Search Term</b></td>
-    <td><input type="text" name="search_term" size="30"></td>
-  </tr>
-  <tr>
-    <td><br /></td>
-    <td><input type="submit" name="role_submit" value=" Search "></td>
-  </tr>
-</table>
-
-</form>
-
-<p><hr></p>
-
-<h2>Currently assigned local roles</h2>
-
-<p>These users currently have local roles assigned in this folder:</p>
-
-<form method="post" action="folder_localrole_edit">
-<input type="hidden" name="change_type" value="delete">
-<input type="hidden" name="member_role" value="">
-
-<table class="FormLayout">
-  <tr>
-    <td width="16">&nbsp;</td>
-    <td><b>User Name</b></td>
-    <td><b>Role(s)</b></td>
-  </tr>
-
-  <dtml-in expr="this().get_local_roles()">
-      <tr>
-        <td width="16">
-          <dtml-if expr="_['sequence-key'] != 
-portal_membership.getAuthenticatedMember().getUserName()">
-            <input type="checkbox" name="member_ids:list" value="&dtml-sequence-key;">
-          <dtml-else>
-            &nbsp;
-          </dtml-if>
-        </td>
-        <td>&dtml-sequence-key;</td>
-        <td><dtml-var expr="_.string.join( _['sequence-item'], ', ')"></td>
-      </tr>
-  </dtml-in>
-
-  <tr><td colspan="3">&nbsp;</td></tr>
-  <tr>
-    <td><br /></td>
-    <td colspan="2"><input type="submit" value=" Delete "></td>
-  </tr>
-</table>
-</form>
-
-</dtml-if>
-
-</div>
- 
-</div>
- 
-<dtml-var standard_html_footer> 
-
diff --git a/product/CMFTranslation/skins/nexedi/getLocalizedPath.py b/product/CMFTranslation/skins/nexedi/getLocalizedPath.py
deleted file mode 100755
index 744c60548e..0000000000
--- a/product/CMFTranslation/skins/nexedi/getLocalizedPath.py
+++ /dev/null
@@ -1,43 +0,0 @@
-## Script (Python) "transformation_identity_update"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=lang
-##title=
-##
-
-from ZTUtils import make_query
-
-request = context.REQUEST
-query = make_query(request.form)
-
-# Try to get the id of the DTML method / PT / etc.
-method_id = request.URL0[len(request.URL1):]
-my_id = context.id
-if callable(my_id): my_id = my_id()
-if '/' + my_id == method_id:
-  method_id = ''
-relative_url = context.portal_url.getRelativeUrl(context)
-
-# Chop useless language information
-for l in context.gettext.get_available_languages():
-  if relative_url[0:len(l) + 1] == l + '/':
-    relative_url = relative_url[len(l) + 1:]
-
-# Chop useless /
-if relative_url == '':
-  if len(method_id) > 0:
-    if method_id[0] == '/':
-      method_id = method_id[1:]
-
-# Build the new URL
-if query == '':
-  return '%s/%s/%s%s' % (context.portal_url.getPortalObject().absolute_url(), lang,
-                     relative_url,
-                     method_id)
-else:
-  return '%s/%s/%s%s?%s' % (context.portal_url.getPortalObject().absolute_url(), lang,
-                     relative_url,
-                     method_id, query)
diff --git a/product/CMFTranslation/skins/nexedi/index_html b/product/CMFTranslation/skins/nexedi/index_html
deleted file mode 100755
index 08a28e2f34..0000000000
--- a/product/CMFTranslation/skins/nexedi/index_html
+++ /dev/null
@@ -1,38 +0,0 @@
-<dtml-comment>
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-                    Jean-Paul Smets <jp@nexedi.com>
-
-WARNING: This program as such is intended to be used by professional
-programmers who take the whole responsability of assessing all potential
-consequences resulting from its eventual inadequacies and bugs
-
-This program as such is not intended to be used by end users. End
-users who are looking for a ready-to-use solution with commercial
-garantees and support are strongly adviced to contract a Free Software
-Service Company
-
-This program is Free Software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-</dtml-comment>
-
-<dtml-if "'index.html' in objectIds()">
-<dtml-var index.html>
-<dtml-else>
-<dtml-var standard_html_header>
-<div class="Document">
-<dtml-var description fmt="structured-text">
-</div>
-<dtml-var standard_html_footer>
-</dtml-if>
-
diff --git a/product/CMFTranslation/skins/nexedi/index_html.dtml b/product/CMFTranslation/skins/nexedi/index_html.dtml
deleted file mode 100755
index 08a28e2f34..0000000000
--- a/product/CMFTranslation/skins/nexedi/index_html.dtml
+++ /dev/null
@@ -1,38 +0,0 @@
-<dtml-comment>
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-                    Jean-Paul Smets <jp@nexedi.com>
-
-WARNING: This program as such is intended to be used by professional
-programmers who take the whole responsability of assessing all potential
-consequences resulting from its eventual inadequacies and bugs
-
-This program as such is not intended to be used by end users. End
-users who are looking for a ready-to-use solution with commercial
-garantees and support are strongly adviced to contract a Free Software
-Service Company
-
-This program is Free Software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-</dtml-comment>
-
-<dtml-if "'index.html' in objectIds()">
-<dtml-var index.html>
-<dtml-else>
-<dtml-var standard_html_header>
-<div class="Document">
-<dtml-var description fmt="structured-text">
-</div>
-<dtml-var standard_html_footer>
-</dtml-if>
-
diff --git a/product/CMFTranslation/skins/nexedi/language_selector.dtml b/product/CMFTranslation/skins/nexedi/language_selector.dtml
deleted file mode 100755
index 9173cc62d2..0000000000
--- a/product/CMFTranslation/skins/nexedi/language_selector.dtml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-<font size="-1">
-<dtml-gettext>language</dtml-gettext>:&nbsp;<dtml-in "gettext.get_available_languages()">
-<dtml-if expr="gettext.get_selected_language() != _['sequence-item']">
-<a href="<dtml-var "getLocalizedPath(_['sequence-item'])">">&dtml-sequence-item;</a>&nbsp;
-<dtml-else>
-<a href="<dtml-var "getLocalizedPath(_['sequence-item'])">"><b><u>&dtml-sequence-item;</u></b></a>&nbsp;
-</dtml-if>
-</dtml-in>
-<br>
-       <dtml-let actions="portal_actions.listFilteredActionsFor(this())"
-                  user_actions="actions['object']">
-            <dtml-in "user_actions" mapping>
-               <dtml-if "id=='print'">
-                  <a href="&dtml-local_absolute_url;/&dtml-action;"><img src="fileprint.png" border="0"></a>
-               </dtml-if>
-            </dtml-in>
-        </dtml-let>
-</font>
diff --git a/product/CMFTranslation/skins/nexedi/latest_box.dtml b/product/CMFTranslation/skins/nexedi/latest_box.dtml
deleted file mode 100755
index 121d24d533..0000000000
--- a/product/CMFTranslation/skins/nexedi/latest_box.dtml
+++ /dev/null
@@ -1,85 +0,0 @@
-<dtml-comment>
-Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-
-This software is subject to the provisions of the Zope Public License,
-Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-FOR A PARTICULAR PURPOSE
-</dtml-comment>
- 
- <table class="NewsItems" cellspacing="0" cellpadding="0" border="0" width="100%">
-
-  <tr>
-   <td class="NewsBorder" width="0" rowspan="13" bgcolor="#6699CC">
-    <img src="spacer.gif" alt=" "
-         width="1" height="2" border="0">
-   </td>
-   <td valign="top" class="NewsTitle" width="100%">
-     <b>Latest Additions</b>
-   </td>
-   <td class="NewsBorder" width="0" rowspan="13" bgcolor="#6699CC">
-    <img src="spacer.gif" alt=" "
-         width="1" height="2" border="0">
-   </td>
-  </tr>
-
-  <dtml-if "meta_type=='Portal Topic'">
-  <dtml-in "portal_catalog.searchResults( meta_type=['Base18 File', 'File', 'Document','Link','Base18 Document','Base18 Link']
-                                        , sort_on='Date'
-                                        , sort_order='reverse'
-                                        , review_state='published'
-                                        , Subject=combined_subjects()
-                                        )" size="10">
-  <tr class="NewsItemRow">
-   <td valign="top" class="title">
-    <p><a href="<dtml-var "getObject().local_absolute_url(lang=gettext.get_selected_language())">"> &dtml-Title; </a></p>
-    <p class="description"><dtml-var Date> - <dtml-var Description></p>
-   </td>
-  </tr>
-  <dtml-else>
-  <tr class="NewsItemRow">
-   <td valign="top" class="title">
-     No news is no news.
-   </td>
-  </tr>
-  </dtml-in>
-
-  <dtml-else>
-  <dtml-in "portal_catalog.searchResults( meta_type=['Document','Link','Base18 Document','Base18 Link']
-                                        , sort_on='Date'
-                                        , sort_order='reverse'
-                                        , review_state='published'
-                                        )" size="10">
-  <tr class="NewsItemRow">
-   <td valign="top" class="title">
-    <p><a href="<dtml-var "getObject().local_absolute_url(lang=gettext.get_selected_language())">"> &dtml-Title; </a></p>
-    <p class="description"><dtml-var Date> - <dtml-var Description></p>
-   </td>
-  </tr>
-  <dtml-else>
-  <tr class="NewsItemRow">
-   <td valign="top" class="title">
-     No news is no news.
-   </td>
-  </tr>
-  </dtml-in>
-  </dtml-if>
-
-  <tr class="NewsItemRow" >
-   <td class="title">
-     <a href="&dtml-local_absolute_url;/recent_additions">More...</a>
-   </td>
-  </tr>
-
-  <tr class="NewsItemRow" height="1">
-   <td class="NewsBorder" height="1" bgcolor="#6699CC">
-    <img src="spacer.gif" alt=" "
-         width="1" height="1" border="0">
-   </td>
-  </tr>
-
-
- </table>
diff --git a/product/CMFTranslation/skins/nexedi/list_subtopics.pt b/product/CMFTranslation/skins/nexedi/list_subtopics.pt
deleted file mode 100755
index 1fbcbb49b1..0000000000
--- a/product/CMFTranslation/skins/nexedi/list_subtopics.pt
+++ /dev/null
@@ -1,6 +0,0 @@
-<ul tal:condition="python:here.public_subtopics is not []">
-    <span tal:repeat="item here/public_subtopics">
-    <li ><a tal:content="item/title_or_id" tal:attributes="href item/absolute_url">Title</a></li>
-    <span tal:replace="structure item/list_subtopics" />
-    </span>
-</ul>
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/nexedi/list_topic_vocabulary.dtml b/product/CMFTranslation/skins/nexedi/list_topic_vocabulary.dtml
deleted file mode 100755
index c1f0218792..0000000000
--- a/product/CMFTranslation/skins/nexedi/list_topic_vocabulary.dtml
+++ /dev/null
@@ -1,6 +0,0 @@
-<dtml-if expr="_.has_key('root_topic')"><dtml-var root_topic>/<dtml-var id>
-<dtml-let root_topic="root_topic + '/' + id"><dtml-in public_subtopics><dtml-var 
-list_topic_vocabulary></dtml-in></dtml-let>
-<dtml-else><dtml-var id>
-<dtml-let root_topic="id"><dtml-in public_subtopics><dtml-var 
-list_topic_vocabulary></dtml-in></dtml-let></dtml-if>
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/nexedi/local_absolute_url.py b/product/CMFTranslation/skins/nexedi/local_absolute_url.py
deleted file mode 100755
index f514f48b46..0000000000
--- a/product/CMFTranslation/skins/nexedi/local_absolute_url.py
+++ /dev/null
@@ -1,15 +0,0 @@
-## Script (Python) "local_absolute_url"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=lang=None,target=None
-##title=
-##
-
-if lang is None: lang = context.gettext.get_selected_language()
-relative_url = context.portal_url.getRelativeUrl(context)
-
-return '%s/%s/%s' % (context.portal_url.getPortalObject().absolute_url(), lang,
-                     relative_url)
diff --git a/product/CMFTranslation/skins/nexedi/logo.png b/product/CMFTranslation/skins/nexedi/logo.png
deleted file mode 100755
index 4c1c81e0b526fea36d3baa3279c9550ec1fbf88c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6140
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
IDOg7Q50+Qh1^@s6

diff --git a/product/CMFTranslation/skins/nexedi/mail_password.py b/product/CMFTranslation/skins/nexedi/mail_password.py
deleted file mode 100755
index 87e32e9626..0000000000
--- a/product/CMFTranslation/skins/nexedi/mail_password.py
+++ /dev/null
@@ -1,13 +0,0 @@
-REQUEST=context.REQUEST
-try:
-  return context.portal_registration.mailPassword(REQUEST['userid'], REQUEST)
-except 'NotFound', error:
-   message = error
-except 'ValueError', error:
-   message = error
-
-redirect_url = '%s/mail_password_form?portal_status_message=%s' % ( context.absolute_url()
-                            ,  message
-                            )
-
-REQUEST.RESPONSE.redirect( redirect_url )
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/nexedi/menu_box.pt b/product/CMFTranslation/skins/nexedi/menu_box.pt
deleted file mode 100755
index 558fac3cda..0000000000
--- a/product/CMFTranslation/skins/nexedi/menu_box.pt
+++ /dev/null
@@ -1,37 +0,0 @@
-<table class="menubox" width="100%" tal:define="
-  portal_root here/portal_url/getPortalObject;
-  section here/CurrentSection;
-  subsection here/CurrentSubSection;
-  lang python:here.gettext.get_selected_language()">
-  <tr tal:repeat="item portal_root/sections" class="section">
-    <td class="sectiontitle">
-      <div class="" tal:attributes="class python:
-            'selected'*(section.id==item)">
-        <p class="sectiontitle"><a href="service"
-           tal:attributes="href python:'%s/%s/%s' % (here.portal_url(),lang,item)"
-           tal:content="item">Services</a>
-        </p>
-      </div>
-      <p class="subsectiontitle"
-         tal:repeat="subitem python:section.objectValues(
-                     ['Portal Topic','Document','Base18 Document'
-                     ,'Base18 Wiki'])"
-         tal:condition="python:section.id==item">
-        <a href="/service/qt.stx"
-           tal:attributes="href python: here.portal_url() + '/' + lang +
-                           '/' + item + '/' + subitem.id"
-           tal:content="python:subitem.title"
-           tal:condition="python:subsection.id!=subitem.id">Qt Development</a>
-        <a href="/service/qt.stx"
-           tal:attributes="href python: here.portal_url() + '/' + lang +
-                           '/' + item + '/' + subitem.id"
-           tal:content="python:'>' + subitem.title"
-           tal:condition="python:subsection.id==subitem.id">Qt Development</a>
-      </p>
-    </td>
-  </tr>
-  <tr>
-    <td class="endline"></td>
-  </tr>
-</table>
-
diff --git a/product/CMFTranslation/skins/nexedi/news_box.dtml b/product/CMFTranslation/skins/nexedi/news_box.dtml
deleted file mode 100755
index 69d038963c..0000000000
--- a/product/CMFTranslation/skins/nexedi/news_box.dtml
+++ /dev/null
@@ -1,51 +0,0 @@
- <table class="NewsItems" cellspacing="0" cellpadding="0" border="0" width="100%">
-  <tr>
-   <td class="NewsBorder" width="0" rowspan="8" bgcolor="#6699CC">
-    <img src="spacer.gif" alt=" "
-         width="1" height="2" border="0">
-   </td>
-   <td valign="top" class="NewsTitle" width="100%">
-     <b>News</b>
-   </td>
-   <td class="NewsBorder" width="0" rowspan="8" bgcolor="#6699CC">
-    <img src="spacer.gif" alt=" "
-         width="1" height="2" border="0">
-   </td>
-  </tr>
-
-  <dtml-in "portal_catalog.searchResults( meta_type=['News Item','Base18 News Item']
-                                        , sort_on='Date'
-                                        , sort_order='reverse'
-                                        , review_state='published'
-                                        )" size="5">
-
-  <tr class="NewsItemRow">
-   <td valign="top" class="title">
-    <dtml-if "getObject()">
-     <p><a href="<dtml-var "getObject().local_absolute_url(lang=gettext.get_selected_language())">"> <dtml-var "getObject().TranslatedTitle()"> </a></p>
-     <p class="description"><dtml-var Date> - <dtml-var TranslatedDescription></p>
-    </dtml-if>
-   </td>
-  </tr>
-  <dtml-else>
-  <tr class="NewsItemRow">
-   <td valign="top" class="title">
-     <dtml-gettext>No news is no news.</dtml-gettext>
-   </td>
-  </tr>
-  </dtml-in>
-
-  <tr class="NewsItemRow" >
-   <td class="title">
-     <a href="&dtml.url-recent_news;"><dtml-gettext>More...</dtml-gettext></a>
-   </td>
-  </tr>
-
-  <tr>
-   <td class="NewsBorder" colspan="3" height="0" bgcolor="#6699CC">
-    <img src="spacer.gif" alt=" "
-         width="1" height="1" border="0">
-   </td>
-  </tr>
-
- </table>
diff --git a/product/CMFTranslation/skins/nexedi/newsitem18_print.dtml b/product/CMFTranslation/skins/nexedi/newsitem18_print.dtml
deleted file mode 100755
index 936ab777f8..0000000000
--- a/product/CMFTranslation/skins/nexedi/newsitem18_print.dtml
+++ /dev/null
@@ -1,55 +0,0 @@
-<dtml-comment>
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-                    Jean-Paul Smets <jp@nexedi.com>
-
-WARNING: This program as such is intended to be used by professional
-programmers who take the whole responsability of assessing all potential
-consequences resulting from its eventual inadequacies and bugs
-
-This program as such is not intended to be used by end users. End
-users who are looking for a ready-to-use solution with commercial
-garantees and support are strongly adviced to contract a Free Software
-Service Company
-
-This program is Free Software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-</dtml-comment>
-
-<dtml-let relative_to_content="1">
-<dtml-var pr_printable_html_header>
-</dtml-let>
-  <div class="Document">
-
-   <p class="title">&dtml-TranslatedTitle;</h1>
-
-   <p class="release"><dtml-gettext>For Immediate Release</dtml-gettext></p>
-
-   <p class="summary">&dtml-effective_date; - &dtml-TranslatedDescription;</p>
-
-   <dtml-var TranslatedBody>
-
-   <h1><dtml-gettext>Permanent URL for this Press Release</dtml-gettext></h1>
-
-   <p>&dtml-absolute_url;</p>
-
-   <h1><dtml-gettext>About</dtml-gettext>
-     <dtml-with portal_properties>&dtml-title;</dtml-with></h1>
-
-   <p><dtml-var "gettext(news_plate)"></p>
-
-  </div>
-
-<dtml-var printable_html_footer>
-
-
diff --git a/product/CMFTranslation/skins/nexedi/newsitem18_view.dtml b/product/CMFTranslation/skins/nexedi/newsitem18_view.dtml
deleted file mode 100755
index f19a67d795..0000000000
--- a/product/CMFTranslation/skins/nexedi/newsitem18_view.dtml
+++ /dev/null
@@ -1,35 +0,0 @@
-<dtml-let relative_to_content="1">
-<dtml-var standard_html_header>
-</dtml-let>
-
-<div class="Document">
-
-   <p><dtml-gettext>For Immediate Release</dtml-gettext></p>
-
-   <p><b>&dtml-effective_date; - <dtml-var TranslatedDescription></b></p>
-
-   <dtml-var TranslatedBody>
-
-   <h1><dtml-gettext>Permanent URL for this Press Release</dtml-gettext></h1>
-
-   <p>&dtml-absolute_url;</p>
-
-   <h1><dtml-gettext>About</dtml-gettext>
-     <dtml-with portal_properties>&dtml-TranslatedTitle;</dtml-with></h1>
-
-   <p><dtml-var "gettext(news_plate)"></p>
-
-</div>
-
-  <dtml-if "not portal_membership.isAnonymousUser()">
-    <div class="ContentBy"><dtml-var content_byline></div>
-  </dtml-if>
-
-
-<div class="Discussion">
-<dtml-var viewThreadsAtBottom>
-</div>
-
-
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/newsitem_mail_form.dtml b/product/CMFTranslation/skins/nexedi/newsitem_mail_form.dtml
deleted file mode 100755
index 58acb356ef..0000000000
--- a/product/CMFTranslation/skins/nexedi/newsitem_mail_form.dtml
+++ /dev/null
@@ -1,51 +0,0 @@
-<dtml-comment>
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-                    Jean-Paul Smets <jp@nexedi.com>
-
-WARNING: This program as such is intended to be used by professional
-programmers who take the whole responsability of assessing all potential
-consequences resulting from its eventual inadequacies and bugs
-
-This program as such is not intended to be used by end users. End
-users who are looking for a ready-to-use solution with commercial
-garantees and support are strongly adviced to contract a Free Software
-Service Company
-
-This program is Free Software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-</dtml-comment>
-
-<dtml-let relative_to_content="1">
-<dtml-var standard_html_header>
-</dtml-let>
-
-
-<h1>Send a news release to the press</h1>
-
-<form action="<dtml-var absolute_url>/send_newsitem" method="POST">
-
-<p>Text:</p>
-<textarea name="text" rows="25" cols="80" ><dtml-var PreformattedView></textarea>
-
-<p>Journalists:</p>
-<textarea name="journalists" rows="25" cols="80" ></textarea>
-
-<p align="center"><input type="submit" name="Send" value="Send" /></p>
-
-
-</form>
-
-
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/newsitem_view b/product/CMFTranslation/skins/nexedi/newsitem_view
deleted file mode 100755
index d1417209c2..0000000000
--- a/product/CMFTranslation/skins/nexedi/newsitem_view
+++ /dev/null
@@ -1,27 +0,0 @@
-<dtml-let relative_to_content="1">
-<dtml-var standard_html_header>
-</dtml-let>
-
-
-<div class="NewsItem">
-<blockquote class="Description">
-<dtml-var Description fmt="structured-text">
-</blockquote>
-</div>
-
-<div class="Document">
-<dtml-var CookedBody>
-</div>
-
-  <dtml-if "not portal_membership.isAnonymousUser()">
-    <div class="ContentBy"><dtml-var content_byline></div>
-  </dtml-if>
-
-
-<div class="Discussion">
-<dtml-var viewThreadsAtBottom>
-</div>
-
-
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/newsitem_view.dtml b/product/CMFTranslation/skins/nexedi/newsitem_view.dtml
deleted file mode 100755
index d1417209c2..0000000000
--- a/product/CMFTranslation/skins/nexedi/newsitem_view.dtml
+++ /dev/null
@@ -1,27 +0,0 @@
-<dtml-let relative_to_content="1">
-<dtml-var standard_html_header>
-</dtml-let>
-
-
-<div class="NewsItem">
-<blockquote class="Description">
-<dtml-var Description fmt="structured-text">
-</blockquote>
-</div>
-
-<div class="Document">
-<dtml-var CookedBody>
-</div>
-
-  <dtml-if "not portal_membership.isAnonymousUser()">
-    <div class="ContentBy"><dtml-var content_byline></div>
-  </dtml-if>
-
-
-<div class="Discussion">
-<dtml-var viewThreadsAtBottom>
-</div>
-
-
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/pr_printable_html_header.dtml b/product/CMFTranslation/skins/nexedi/pr_printable_html_header.dtml
deleted file mode 100755
index b942aed187..0000000000
--- a/product/CMFTranslation/skins/nexedi/pr_printable_html_header.dtml
+++ /dev/null
@@ -1,53 +0,0 @@
-<dtml-comment>
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-                    Jean-Paul Smets <jp@nexedi.com>
-
-WARNING: This program as such is intended to be used by professional
-programmers who take the whole responsability of assessing all potential
-consequences resulting from its eventual inadequacies and bugs
-
-This program as such is not intended to be used by end users. End
-users who are looking for a ready-to-use solution with commercial
-garantees and support are strongly adviced to contract a Free Software
-Service Company
-
-This program is Free Software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-</dtml-comment>
-
-<dtml-if "_.hasattr(this(),'isEffective') and not isEffective( ZopeTime() )">
-<dtml-unless "portal_membership.checkPermission('Request review',this())
-           or portal_membership.checkPermission('Review portal content',this())">
-<dtml-var "RESPONSE.unauthorized()">
-</dtml-unless>
-</dtml-if>
-
-<html>
- <head>  
-  <title><dtml-with portal_properties>&dtml-title;</dtml-with
-  ><dtml-if name="Title">: &dtml-TranslatedTitle;</dtml-if></title>
-  <link rel="stylesheet" href="pr_printable_stylesheet" type="text/css" />
-  <dtml-if relative_to_content>
-   <base href="&dtml-absolute_url;" />
-  </dtml-if>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- </head>
-<dtml-with stylesheet_properties>
-<body font="&dtml-base_font_color;">
-</dtml-with>
-
-<dtml-with logo-hires>
-<img src="logo-hires" height="&dtml-height;" width="&dtml-width;" />
-</dtml-with>
-
diff --git a/product/CMFTranslation/skins/nexedi/pr_printable_stylesheet.dtml b/product/CMFTranslation/skins/nexedi/pr_printable_stylesheet.dtml
deleted file mode 100755
index 2573eb70be..0000000000
--- a/product/CMFTranslation/skins/nexedi/pr_printable_stylesheet.dtml
+++ /dev/null
@@ -1,606 +0,0 @@
-<dtml-unless do_inline_css>
-<dtml-call "RESPONSE.setHeader('Content-Type','text/css')">
-</dtml-unless>
-<dtml-with stylesheet_properties>
-
-body {
-    margin-top: 0;
-    margin-left: 0;
-    margin-right: 0;
-    margin-bottom: 0;
-    background-color: &dtml-bg_color;;
-    color: &dtml-base_font_color;;
-    font-family:  &dtml-base_font_family;;
-    font-size:  &dtml-base_font_size;;
-}
-
-a:link {
-    color: &dtml-link_color;;
-    text-decoration: none;
-}
-
-a:visited {
-    color: &dtml-vlink_color;;
-    text-decoration: none;
-}
-
-a:active {
-    color: &dtml-alink_color;
-    text-decoration: none;
-}
-
-a:hover {
-    text-decoration: underline;
-    color:  &dtml-hover_color;;
-}
-
-.invisible {
-  font-size: 80%;
-  color: &dtml-bg_color;;
-}
-
-.mild {
-    color: #7f7f7f;
-}
-
-.DesktopStatusBar{
-  font-size: 80%;
-  font-family: &dtml-secondary_font_family;;
-  color: #ff0000;
-}
-
-table {
-    width: 100%;
-    border: 0;
-}
-
-td.SideBar {
-    width: 15%;
-    vertical-align: top;
-}
-
-table.ActionBox {
-    font-family: &dtml-primary_font_family;;
-    background-color: &dtml-primary_accent_color;;
-    margin-right: 5px;
-    margin-left: 1px;
-    margin-top: 10px;
-}
-
-table.ActionBox tr td {
-    font-size: 70%;
-}
-
-table.ActionBox tr td.ActionTitle {
-    font-weight: bold
-}
-
-table.ActionBox tr.GuestActions {
-    background-color: &dtml-guest_actions_color;;
-}
-
-table.ActionBox tr.GuestActions td a:link {
-    color: &dtml-guest_actions_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.GuestActions td a:visited {
-    color: &dtml-guest_actions_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.GuestActions td a:active {
-    color: &dtml-guest_actions_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.GuestActions td a:hover {
-    color: &dtml-hover_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions {
-    background-color: &dtml-secondary_accent_color;;
-}
-
-table.ActionBox tr.MemberActions td {
-    color: &dtml-secondary_accent_font_color;;
-}
-
-table.ActionBox tr.MemberActions td a:link {
-    color: &dtml-secondary_accent_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions td a:visited {
-    color: &dtml-secondary_accent_vlink_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions td a:active{
-    color: &dtml-secondary_accent_alink_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions td a:hover {
-    color: &dtml-hover_color;;
-    text-decoration:  none;
-}
-
-td.Desktop {
-    vertical-align: top;
-}
-
-td.Desktop table tr {
-    vertical-align: top;
-}
-
-div.Desktop p {
-    font-size: 100%;
-    margin-right:100pt;
-    font-family: &dtml-primary_font_family;;
-}
-
-div.Desktop h1 {
-    font-size: 120%;
-    margin-right:100pt;
-    font-family: &dtml-secondary_font_family;;
-}
-
-div.AuthWarning {
-    text-align: center;
-    font-style: italic;
-}
-
-div.AuthWarning table {
-    border: 0;
-}
-
-div.AuthWarning tr.Hot {
-    color: #FF0000;
-}
-
-div.Error {
-    color:  #FF0000;
-}
-
-p.DesktopStatusBar {
-    font-size: 100%;
-    font-family: &dtml-secondary_font_family;;
-    font-style: italic;
-    font-weight: bold;
-}
-
-table.FormLayout {
-    width: 80%;
-}
-
-table.FormLayout tr {
-    vertical-align: top;
-}
-
-table.FormLayout tr th.TextField {
-    vertical-align: top;
-}
-
-table.FormLayout tr td.TextField {
-    vertical-align: top;
-}
-
-table.FormLayout th {
-    text-align: right;
-}
-
-table.FormLayout dl.FieldHelp dd {
-    font-size: 70%;
-}
-
-table.ContentsList {
-}
-
-table.ContentsList tr td img {
-    border: 0;
-}
-
-table.SearchResults {
-    width: auto;
-}
-
-table.SearchResults tr th {
-    text-align: left;
-}
-
-table.SearchResults tr td img {
-    border: 0;
-}
-
-table.Wizard {
-    width: auto;
-}
-
-table.Wizard tr {
-    vertical-align: top;
-}
-
-table.Wizard tr th {
-    text-align: right;
-}
-
-div.NewsBar {
-    text-align: right;
-}
-
-table.NewsItems {
-    border: 1;
-    padding: 1;
-}
-
-
-td.NewsBorder {
-    background-color: &dtml-primary_accent_color;;
-}
-
-td.NewsListing {
-    background-color: &dtml-secondary_accent_color;;
-    color:  &dtml-bg_color;;
-}
-
-.NewsLeadin {
-    background-color: &dtml-bg_color;;
-    color:  &dtml-primary_accent_color;;
-}
-
-.NewsByLine {
-    background-color:  &dtml-primary_accent_color;;
-    color:  &dtml-bg_color;;
-}
-
-.NewsDateline {
-    background-color:  &dtml-primary_accent_color;;
-    color:  &dtml-bg_color;;
-}
-
-td.NewsTitle {
-    background-color: &dtml-primary_accent_color;;
-    color: &dtml-primary_accent_font_color;;
-    text-align: center;
-    font-size: 90%;
-    font-weight: bold;
-}
-
-tr.NewsItemRow td {
-    background-color: &dtml-highlight_color;;
-    font-size: 70%;
-}
-
-tr.NewsItemRow td.title {
-    margin-top: 5px;
-    margin-bottom: 1px;
-    font-size: 100%;
-    font-weight: normal;
-}
-
-tr.NewsItemRow td.title p {
-    margin-top: 3px;
-    margin-bottom: 1px;
-    font-size: 100%;
-    font-weight: normal;
-}
-
-tr.NewsItemRow td.title p.description {
-    margin-top: 0px;
-    margin-left: 5px;
-    margin-bottom: 0px;
-    font-size: 70%;
-    font-weight: normal;
-}
-
-p.NewsHeadline {
-    background-color:  &dtml-primary_accent_color;;
-}
-
-td.ListName {
-    background-color:  &dtml-primary_accent_color;;
-    color: &dtml-primary_accent_font_color;;
-    font-weight: bold;
-}
-td.ListDefinition {
-    font-style: italic;
-}
-
-table.logobox {
-  padding-top: 1px;
-  padding-left: 2px;
-  border: 0px;
-}
-
-td.TitleBox {
-  vertical-align: top;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  color: &dtml-primary_accent_color;;
-  text-align: right;
-  font-weight: bolder;
-  font-size: 18pt;
-  padding-top: 6px;
-}
-
-td.LanguageBox {
-  vertical-align: top;
-  text-align: right;
-  padding-right: 20;
-}
-
-.subsectiontitle {
-  text-align: left;
-  color: navy;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 8pt;
-  font-weight: normal;
-  margin-left: 5pt;
-  margin-bottom: 1pt;
-  margin-top: 1pt
-}
-
-
-table.menubox {
-  margin-right: 5px;
-  margin-left: 1px;
-  margin-top: 20px;
-}
-
-table.menubox .selected {
-  background-color: &dtml-secondary_accent_color;;
-}
-
-table.menubox td.endline {
-  border-top: 3px;
-  border-color: #6524B9;
-  margin-top: 0px;
-}
-
-table.menubox a:link {
-    color: navy;
-    text-decoration:  none;
-}
-
-table.menubox a:visited {
-    color: navy;
-    text-decoration:  none;
-}
-
-table.menubox a:active {
-    color: navy;
-    text-decoration:  none;
-}
-
-table.menubox a:hover {
-    color: black;
-    background-color: &dtml-highlight_color;;
-    text-decoration:  underline;
-}
-
-table.menubox td.sectiontitle {
-  border-bottom: 3px;
-  border-color: #E6BCE6;
-  padding-bottom: 0px;
-  padding-top: 10px;
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-table.menubox p.sectiontitle {
-  text-align: left;
-  color: navy;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 10pt;
-  font-weight: bolder;
-  font-variant: small-caps;
-  margin-bottom: 2pt;
-  margin-top: 10pt;
-}
-
-div.breadcrumb {
-  text-align: left;
-  color: black;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 8pt;
-  margin-bottom: 10pt;
-  margin-top: 10pt
-}
-
-.breadcrumb p {
-  text-align: left;
-  color: black;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 8pt;
-  margin-bottom: 10pt;
-  margin-top: 10pt
-}
-
-div.Document {
-    font-size: 11pt;
-    background-color:  &dtml-bg_color;;
-    color:  &dtml-base_font_color;;
-    font-family:  &dtml-base_font_family;;
-    margin-left: 30pt;
-    margin-right: 30pt;
-    margin-bottom: 3pt;
-    margin-top: 3pt;
-    line-height: 17pt;
-    text-indent: 0pt;
-    text-align: left;
-}
-
-div.Document p {
-    font-family: &dtml-printer_base_font_family;;
-    font-size: 11pt;
-    margin-left: 20pt;
-    margin-right: 30pt;
-    margin-bottom: 3pt;
-    margin-top: 3pt;
-    line-height: 17pt;
-    text-indent: 0pt;
-}
-
-div.Document p.title {
-  text-align: center;
-  font-family: &dtml-printer_primary_font_family;;
-  font-weight: bold;
-  margin-left: 20pt;
-  margin-right: 30pt;
-  margin-top: 15pt;
-  margin-bottom: 3pt;
-  font-size: 14pt
-}
-
-div.Document p.release {
-    text-align: center;
-    margin-bottom: 20pt;
-    margin-top: 20pt;
-}
-
-div.Document p.summary {
-    font-weight: bold;
-    margin-bottom: 10pt;
-    margin-top: 3pt;
-}
-
-div.Document ul {
-    font-family: &dtml-printer_base_font_family;;
-    font-size: 11pt;
-    margin-left: 10pt;
-    margin-bottom: 2pt;
-    margin-top: 2pt;
-    line-height: 17pt;
-    text-indent: 0pt;
-    vertical-align: middle;
-}
-
-div.Document ul li {
-    margin-left: 0pt;
-    vertical-align: middle;
-}
-
-div.Document ol {
-    font-family: &dtml-printer_base_font_family;;
-    font-size: 11pt;
-    margin-left: 30pt;
-    margin-bottom: 2pt;
-    margin-top: 2pt;
-    line-height: 17pt;
-    text-indent: 0pt;
-    vertical-align: baseline;
-}
-
-div.Document ol li {
-    margin-left: 0pt;
-    vertical-align: baseline;
-}
-
-div.Document ol li ul {
-    margin-left: 0pt;
-}
-
-div.Document h1 {
-  text-align: black;
-  color: #666666;
-  font-family: &dtml-secondary_font_family;;
-  font-weight: bold;
-  margin-left: 20pt;
-  margin-right: 30pt;
-  margin-top: 9pt;
-  margin-bottom: 3pt;
-  font-size: 13pt;
-}
-
-div.Document h1 a:link {
-  color: #333333;
-}
-
-div.Document h1 a:visited {
-  color: #333333;
-}
-
-div.Document h1 a:active {
-    color: &dtml-alink_color;
-    text-decoration: none;
-}
-
-div.Document h1 a:hover {
-    text-decoration: underline;
-    color:  &dtml-hover_color;;
-}
-
-
-div.Document h2 {
-  text-align: black;
-  color: #666666;
-  font-family: &dtml-secondary_font_family;;
-  font-weight: bold;
-  margin-left: 20pt;
-  margin-right: 30pt;
-  margin-top: 9pt;
-  margin-bottom: 3pt;
-  font-size: 13pt;
-  font-size: 10pt;
-}
-
-div.Document h3 {
-  text-align: left;
-  color: &dtml-primary_accent_color;;
-  font-family: &dtml-base_font_family;;
-  font-style: italic;
-  font-weight: bolder;
-  margin-left: 10pt;
-  margin-top: 6pt;
-  margin-bottom: 2pt;
-  letter-spacing: 1pt;
-  font-size: 10pt;
-}
-
-table.tophead  {
-  cellpadding: 1;
-  cellspacing: 1;
-  background-color: #CCCCCC;
-  border-bottom-width: 1pt;
-  border-top-width: 0;
-  border-left-width: 0;
-  border-right-width: 0;
-  border-color: #6f6f6f;
-  border-style:solid;
-}
-
-table.tophead tr {
-  font-size: 11px;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  text-decoration: none;
-  color: #505050;
-  vertical-align: middle;
-  height: 11px;
-}
-
-table.tophead td {
-  vertical-align: middle;
-  height: 10px;
-}
-
-table.tophead p {
-  line-height: 5pt;
-  background-color: #6699CC;
-}
-
-.legalinfo {
-  margin-bottom: 40pt;
-  margin-top: 20pt;
-  font-size: 8pt;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  text-align: center;
-}
-
-.LanguageBox {
-  margin-bottom: 0px;
-  margin-top: 0px;
-
-}
-
-</dtml-with>
diff --git a/product/CMFTranslation/skins/nexedi/printable_html_footer.dtml b/product/CMFTranslation/skins/nexedi/printable_html_footer.dtml
deleted file mode 100755
index c031ea4261..0000000000
--- a/product/CMFTranslation/skins/nexedi/printable_html_footer.dtml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-<div class="legalinfo">
-  <p><dtml-var legal_footer></p>
-</div>
-
-  </body>
-</html>       
diff --git a/product/CMFTranslation/skins/nexedi/printable_html_header.dtml b/product/CMFTranslation/skins/nexedi/printable_html_header.dtml
deleted file mode 100755
index e7254c6ef3..0000000000
--- a/product/CMFTranslation/skins/nexedi/printable_html_header.dtml
+++ /dev/null
@@ -1,39 +0,0 @@
-<dtml-if "_.hasattr(this(),'isEffective') and not isEffective( ZopeTime() )">
-<dtml-unless "portal_membership.checkPermission('Request review',this())
-           or portal_membership.checkPermission('Review portal content',this())">
-<dtml-var "RESPONSE.unauthorized()">
-</dtml-unless>
-</dtml-if>
-
-<html>
- <head>  
-  <title><dtml-with portal_properties>&dtml-title;</dtml-with
-  ><dtml-if name="Title">: &dtml-TranslatedTitle;</dtml-if></title>
-  <link rel="stylesheet" href="printable_stylesheet" type="text/css" />
-  <dtml-if relative_to_content>
-   <base href="&dtml-absolute_url;" />
-  </dtml-if>
-  <dtml-if HTML_CHARSET>
-    <meta http-equiv="Content-Type"
-        content="<dtml-var HTML_CHARSET>" />
-    <dtml-if "HTML_CHARSET == 'text/html; charset=utf-8'">
-        <dtml-call "REQUEST.RESPONSE.setHeader('Content-Type','text/html; charset=utf-8')">
-    </dtml-if>
-  <dtml-else>
-    <meta http-equiv="Content-Type"
-        content="text/html; charset=iso-8859-1" />
-  </dtml-if>
- </head>
-<dtml-with stylesheet_properties>
-<body font="&dtml-base_font_color;">
-</dtml-with>
-
-<dtml-let lang="gettext.get_selected_language()">
-  <dtml-if AFFILIATE_PATH>
-    <img src="&dtml-portal_url;/&dtml-lang;/&dtml-AFFILIATE_PATH;logo.png"
-          border="0" />
-  <dtml-else>
-    <img src="&dtml-portal_url;/&dtml-lang;/logo.png"
-          border="0" />
-  </dtml-if>
-</dtml-let>
diff --git a/product/CMFTranslation/skins/nexedi/printable_stylesheet.dtml b/product/CMFTranslation/skins/nexedi/printable_stylesheet.dtml
deleted file mode 100755
index 4b12b8259f..0000000000
--- a/product/CMFTranslation/skins/nexedi/printable_stylesheet.dtml
+++ /dev/null
@@ -1,617 +0,0 @@
-<dtml-unless do_inline_css>
-<dtml-call "RESPONSE.setHeader('Content-Type','text/css')">
-</dtml-unless>
-<dtml-with stylesheet_properties>
-
-body {
-    margin-top: 0;
-    margin-left: 0;
-    margin-right: 0;
-    margin-bottom: 0;
-    background-color: &dtml-bg_color;;
-    color: &dtml-base_font_color;;
-    font-family:  &dtml-base_font_family;;
-    font-size:  &dtml-base_font_size;;
-}
-
-a:link {
-    color: &dtml-link_color;;
-    text-decoration: none;
-}
-
-a:visited {
-    color: &dtml-vlink_color;;
-    text-decoration: none;
-}
-
-a:active {
-    color: &dtml-alink_color;
-    text-decoration: none;
-}
-
-a:hover {
-    text-decoration: underline;
-    color:  &dtml-hover_color;;
-}
-
-.invisible {
-  font-size: 80%;
-  color: &dtml-bg_color;;
-}
-
-.mild {
-    color: #7f7f7f;
-}
-
-.DesktopStatusBar{
-  font-size: 80%;
-  font-family: &dtml-secondary_font_family;;
-  color: #ff0000;
-}
-
-table {
-    width: 100%;
-    border: 0;
-}
-
-td.SideBar {
-    width: 15%;
-    vertical-align: top;
-}
-
-table.ActionBox {
-    font-family: &dtml-primary_font_family;;
-    background-color: &dtml-primary_accent_color;;
-    margin-right: 5px;
-    margin-left: 1px;
-    margin-top: 10px;
-}
-
-table.ActionBox tr td {
-    font-size: 70%;
-}
-
-table.ActionBox tr td.ActionTitle {
-    font-weight: bold
-}
-
-table.ActionBox tr.GuestActions {
-    background-color: &dtml-guest_actions_color;;
-}
-
-table.ActionBox tr.GuestActions td a:link {
-    color: &dtml-guest_actions_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.GuestActions td a:visited {
-    color: &dtml-guest_actions_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.GuestActions td a:active {
-    color: &dtml-guest_actions_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.GuestActions td a:hover {
-    color: &dtml-hover_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions {
-    background-color: &dtml-secondary_accent_color;;
-}
-
-table.ActionBox tr.MemberActions td {
-    color: &dtml-secondary_accent_font_color;;
-}
-
-table.ActionBox tr.MemberActions td a:link {
-    color: &dtml-secondary_accent_link_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions td a:visited {
-    color: &dtml-secondary_accent_vlink_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions td a:active{
-    color: &dtml-secondary_accent_alink_color;;
-    text-decoration:  none;
-}
-
-table.ActionBox tr.MemberActions td a:hover {
-    color: &dtml-hover_color;;
-    text-decoration:  none;
-}
-
-td.Desktop {
-    vertical-align: top;
-}
-
-td.Desktop table tr {
-    vertical-align: top;
-}
-
-div.Desktop p {
-    font-size: 100%;
-    margin-right:100pt;
-    font-family: &dtml-primary_font_family;;
-}
-
-div.Desktop h1 {
-    font-size: 120%;
-    margin-right:100pt;
-    font-family: &dtml-secondary_font_family;;
-}
-
-div.AuthWarning {
-    text-align: center;
-    font-style: italic;
-}
-
-div.AuthWarning table {
-    border: 0;
-}
-
-div.AuthWarning tr.Hot {
-    color: #FF0000;
-}
-
-div.Error {
-    color:  #FF0000;
-}
-
-p.DesktopStatusBar {
-    font-size: 100%;
-    font-family: &dtml-secondary_font_family;;
-    font-style: italic;
-    font-weight: bold;
-}
-
-table.FormLayout {
-    width: 80%;
-}
-
-table.FormLayout tr {
-    vertical-align: top;
-}
-
-table.FormLayout tr th.TextField {
-    vertical-align: top;
-}
-
-table.FormLayout tr td.TextField {
-    vertical-align: top;
-}
-
-table.FormLayout th {
-    text-align: right;
-}
-
-table.FormLayout dl.FieldHelp dd {
-    font-size: 70%;
-}
-
-table.ContentsList {
-}
-
-table.ContentsList tr td img {
-    border: 0;
-}
-
-table.SearchResults {
-    width: auto;
-}
-
-table.SearchResults tr th {
-    text-align: left;
-}
-
-table.SearchResults tr td img {
-    border: 0;
-}
-
-table.Wizard {
-    width: auto;
-}
-
-table.Wizard tr {
-    vertical-align: top;
-}
-
-table.Wizard tr th {
-    text-align: right;
-}
-
-div.NewsBar {
-    text-align: right;
-}
-
-table.NewsItems {
-    border: 1;
-    padding: 1;
-}
-
-
-td.NewsBorder {
-    background-color: &dtml-primary_accent_color;;
-}
-
-td.NewsListing {
-    background-color: &dtml-secondary_accent_color;;
-    color:  &dtml-bg_color;;
-}
-
-.NewsLeadin {
-    background-color: &dtml-bg_color;;
-    color:  &dtml-primary_accent_color;;
-}
-
-.NewsByLine {
-    background-color:  &dtml-primary_accent_color;;
-    color:  &dtml-bg_color;;
-}
-
-.NewsDateline {
-    background-color:  &dtml-primary_accent_color;;
-    color:  &dtml-bg_color;;
-}
-
-td.NewsTitle {
-    background-color: &dtml-primary_accent_color;;
-    color: &dtml-primary_accent_font_color;;
-    text-align: center;
-    font-size: 90%;
-    font-weight: bold;
-}
-
-tr.NewsItemRow td {
-    background-color: &dtml-highlight_color;;
-    font-size: 70%;
-}
-
-tr.NewsItemRow td.title {
-    margin-top: 5px;
-    margin-bottom: 1px;
-    font-size: 100%;
-    font-weight: normal;
-}
-
-tr.NewsItemRow td.title p {
-    margin-top: 3px;
-    margin-bottom: 1px;
-    font-size: 100%;
-    font-weight: normal;
-}
-
-tr.NewsItemRow td.title p.description {
-    margin-top: 0px;
-    margin-left: 5px;
-    margin-bottom: 0px;
-    font-size: 70%;
-    font-weight: normal;
-}
-
-p.NewsHeadline {
-    background-color:  &dtml-primary_accent_color;;
-}
-
-td.ListName {
-    background-color:  &dtml-primary_accent_color;;
-    color: &dtml-primary_accent_font_color;;
-    font-weight: bold;
-}
-td.ListDefinition {
-    font-style: italic;
-}
-
-table.logobox {
-  padding-top: 1px;
-  padding-left: 2px;
-  border: 0px;
-}
-
-td.TitleBox {
-  vertical-align: top;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  color: &dtml-primary_accent_color;;
-  text-align: right;
-  font-weight: bolder;
-  font-size: 18pt;
-  padding-top: 6px;
-}
-
-td.LanguageBox {
-  vertical-align: top;
-  text-align: right;
-  padding-right: 20;
-}
-
-.subsectiontitle {
-  text-align: left;
-  color: navy;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 8pt;
-  font-weight: normal;
-  margin-left: 5pt;
-  margin-bottom: 1pt;
-  margin-top: 1pt
-}
-
-
-table.menubox {
-  margin-right: 5px;
-  margin-left: 1px;
-  margin-top: 20px;
-}
-
-table.menubox .selected {
-  background-color: &dtml-secondary_accent_color;;
-}
-
-table.menubox td.endline {
-  border-top: 3px;
-  border-color: #6524B9;
-  margin-top: 0px;
-}
-
-table.menubox a:link {
-    color: navy;
-    text-decoration:  none;
-}
-
-table.menubox a:visited {
-    color: navy;
-    text-decoration:  none;
-}
-
-table.menubox a:active {
-    color: navy;
-    text-decoration:  none;
-}
-
-table.menubox a:hover {
-    color: black;
-    background-color: &dtml-highlight_color;;
-    text-decoration:  underline;
-}
-
-table.menubox td.sectiontitle {
-  border-bottom: 3px;
-  border-color: #E6BCE6;
-  padding-bottom: 0px;
-  padding-top: 10px;
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-table.menubox p.sectiontitle {
-  text-align: left;
-  color: navy;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 10pt;
-  font-weight: bolder;
-  font-variant: small-caps;
-  margin-bottom: 2pt;
-  margin-top: 10pt;
-}
-
-div.breadcrumb {
-  text-align: left;
-  color: black;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 8pt;
-  margin-bottom: 10pt;
-  margin-top: 10pt
-}
-
-.breadcrumb p {
-  text-align: left;
-  color: black;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  font-size: 8pt;
-  margin-bottom: 10pt;
-  margin-top: 10pt
-}
-
-div.Document {
-    font-size: 11pt;
-    background-color:  &dtml-bg_color;;
-    color:  &dtml-base_font_color;;
-    font-family:  &dtml-base_font_family;;
-    margin-left: 30pt;
-    margin-right: 30pt;
-    margin-bottom: 3pt;
-    margin-top: 3pt;
-    line-height: 17pt;
-    text-indent: 0pt;
-    text-align: left;
-}
-
-div.Document p {
-    font-family: &dtml-printer_base_font_family;;
-    font-size: 11pt;
-    margin-left: 30pt;
-    margin-right: 30pt;
-    margin-bottom: 3pt;
-    margin-top: 3pt;
-    line-height: 17pt;
-    text-indent: 0pt;
-}
-
-div.Document p.title {
-  text-align: center;
-  font-family: &dtml-printer_primary_font_family;;
-  font-weight: bold;
-  margin-left: 30pt;
-  margin-right: 30pt;
-  margin-top: 15pt;
-  margin-bottom: 15pt;
-  font-size: 14pt
-}
-
-div.Document p.release {
-    text-align: center;
-    margin-bottom: 20pt;
-    margin-top: 20pt;
-}
-
-div.Document p.summary {
-    background-color:#CCCCCC;
-    font-weight: normal;
-    margin-bottom: 10pt;
-    margin-top: 40pt;
-    margin-left: 50pt;
-    margin-right: 50pt;
-    border-width: 1px;
-    border-color: black;
-}
-
-div.Document ul {
-    font-family: &dtml-printer_base_font_family;;
-    font-size: 11pt;
-    margin-left: 30pt;
-    margin-bottom: 2pt;
-    margin-top: 2pt;
-    line-height: 17pt;
-    text-indent: 0pt;
-    vertical-align: baseline;
-}
-
-div.Document ul li {
-    margin-left: 0pt;
-    vertical-align: baseline;
-}
-
-div.Document ul li ul {
-    margin-left: 0pt;
-}
-
-div.Document ol {
-    font-family: &dtml-printer_base_font_family;;
-    font-size: 11pt;
-    margin-left: 30pt;
-    margin-bottom: 2pt;
-    margin-top: 2pt;
-    line-height: 17pt;
-    text-indent: 0pt;
-    vertical-align: baseline;
-}
-
-div.Document ol li {
-    margin-left: 0pt;
-    vertical-align: baseline;
-}
-
-div.Document ol li ul {
-    margin-left: 0pt;
-}
-
-div.Document h1 {
-  text-align: black;
-  letter-spacing: 0.1em;
-  color: black;
-  font-family: &dtml-secondary_font_family;;
-  font-weight: bold;
-  margin-left: 10pt;
-  margin-right: 30pt;
-  margin-top: 30pt;
-  margin-bottom: 5pt;
-  font-size: 13pt;
-}
-
-div.Document h1 a:link {
-  color: #333333;
-}
-
-div.Document h1 a:visited {
-  color: #333333;
-}
-
-div.Document h1 a:active {
-    color: &dtml-alink_color;
-    text-decoration: none;
-}
-
-div.Document h1 a:hover {
-    text-decoration: underline;
-    color:  &dtml-hover_color;;
-}
-
-
-div.Document h2 {
-  text-align: black;
-  color: #666666;
-  font-family: &dtml-secondary_font_family;;
-  font-weight: bold;
-  margin-left: 30pt;
-  margin-right: 30pt;
-  margin-top: 9pt;
-  margin-bottom: 3pt;
-  font-size: 13pt;
-  font-size: 10pt;
-}
-
-div.Document h3 {
-  text-align: left;
-  color: &dtml-primary_accent_color;;
-  font-family: &dtml-base_font_family;;
-  font-style: italic;
-  font-weight: bolder;
-  margin-left: 30pt;
-  margin-right: 30pt;
-  margin-top: 6pt;
-  margin-bottom: 2pt;
-  letter-spacing: 1pt;
-  font-size: 10pt;
-}
-
-table.tophead  {
-  cellpadding: 1;
-  cellspacing: 1;
-  background-color: #CCCCCC;
-  border-bottom-width: 1pt;
-  border-top-width: 0;
-  border-left-width: 0;
-  border-right-width: 0;
-  border-color: #6f6f6f;
-  border-style:solid;
-}
-
-table.tophead tr {
-  font-size: 11px;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  text-decoration: none;
-  color: #505050;
-  vertical-align: middle;
-  height: 11px;
-}
-
-table.tophead td {
-  vertical-align: middle;
-  height: 10px;
-}
-
-table.tophead p {
-  line-height: 5pt;
-  background-color: #6699CC;
-}
-
-.legalinfo {
-  margin-bottom: 40pt;
-  margin-top: 20pt;
-  font-size: 8pt;
-  font-family: Verdana, Arial, Helvetica, sans-serif;
-  text-align: center;
-}
-
-.LanguageBox {
-  margin-bottom: 0px;
-  margin-top: 0px;
-
-}
-
-</dtml-with>
diff --git a/product/CMFTranslation/skins/nexedi/public_subtopics.py b/product/CMFTranslation/skins/nexedi/public_subtopics.py
deleted file mode 100755
index 7371247240..0000000000
--- a/product/CMFTranslation/skins/nexedi/public_subtopics.py
+++ /dev/null
@@ -1,22 +0,0 @@
-
-##############################################################################
-#
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-return context.listSubtopics()
diff --git a/product/CMFTranslation/skins/nexedi/quick_login.dtml b/product/CMFTranslation/skins/nexedi/quick_login.dtml
deleted file mode 100755
index e955751dc3..0000000000
--- a/product/CMFTranslation/skins/nexedi/quick_login.dtml
+++ /dev/null
@@ -1,84 +0,0 @@
-<dtml-if "portal_membership.isAnonymousUser()">
-
-<form action="&dtml.url-logged_in;" method="post">
-
-<input type="hidden" name="came_from" value="&dtml-absolute_url;">
-
-<table class="FormLayout" >
- <tr>
- <td align="left" valign="top">
- <strong><font size="-2"><dtml-gettext>Name</dtml-gettext></font></strong>
- </td>
- <td align="left" valign="top">
- <font size="-2"><input type="TEXT" name="__ac_name" size="12"
- value="<dtml-var "REQUEST.get('__ac_name', '')">"></font>
- </td>
- </tr>
- <tr>
- <td align="left" valign="top">
- <strong><font size="-2"><dtml-gettext>Password</dtml-gettext></font></strong>
- </td>
- <td align="left" valign="top">
- <font size="-2"><input type="PASSWORD" name="__ac_password" size="12"></font>
- </td>
- </tr>
-
-<tr>
- <td align="left" valign="top">
- </td>
- <td align="left" valign="top">
- <font size="-2"><input type="submit" name="submit" value="
- <dtml-gettext>Login</dtml-gettext> "></font>
- </td>
-</tr>
-
-<tr>
-  <td align="center" colspan="2">
-  </td>
-</tr>
-
-<tr>
-  <td align="center" colspan="2"><i><font size="-2">
-   <a href="mail_password_form"><dtml-gettext>Lost your password?</dtml-gettext>
-   </a></font></i>
-  </td>
-</tr>
-
-<tr>
-  <td align="center" colspan="2"><i><font size="-2">
-    <a href="join_form"><dtml-gettext>Apply for membership...</dtml-gettext>
-    </a></font></i>
-  </td>
-</tr>
-
-</table>
-</form>
-
-<dtml-else>
-
-<dtml-comment>
-
-<form action="&dtml.url-logout;" method="post">
-<table class="FormLayout" >
- <tr><td>
-<center><font size="-2"><input type="submit" name="submit" value="
- <dtml-gettext>Logout</dtml-gettext> "></font></center>
- </td></tr>
-</table>
-
-</form>
-
-
-</dtml-comment>
-
-<table class="FormLayout" >
- <tr>
-   <td align="center" colspan="2"><i><font size="-2">
-      <a href="password_form"><dtml-gettext>Change Password...</dtml-gettext>
-      </a></font></i>
-    </td>
- </tr>
-</table>
-
-
-</dtml-if>
diff --git a/product/CMFTranslation/skins/nexedi/recent_additions.dtml b/product/CMFTranslation/skins/nexedi/recent_additions.dtml
deleted file mode 100755
index c379db7c03..0000000000
--- a/product/CMFTranslation/skins/nexedi/recent_additions.dtml
+++ /dev/null
@@ -1,112 +0,0 @@
- <dtml-var standard_html_header>
- 
- <dtml-if "meta_type=='Portal Topic'">
- 
- <dtml-let newsitems="portal_catalog.searchResults(meta_type=['Document','Link','Base18 Document', 'Base18 Link'],
-   sort_on='Date', sort_order='reverse', review_state='published', Subject=combined_subjects())">
-   
-   <dtml-in newsitems size="10" start="batch_start" previous>
-    <p style="Desktop">
-     <a href="&dtml-URL;&dtml-sequence-query;batch_start=&dtml-previous-sequence-start-number;">
-      Next &dtml-previous-sequence-size; more recent articles
-       </a>
-        </p>
-	</dtml-in>
-	
-	<dtml-in newsitems size="10" start="batch_start">
-	 <dtml-if sequence-start>
-	  <table cellspacing="0" border="0" width="90%">
-	   </dtml-if>
-	    <tr>
-	      <td class="NewsListing" align="left" valign="top">
-	            <a href="&dtml-getURL;"> &dtml-title; </a>
-		       <br> By &dtml-Creator;
-		         </td>
-			   <td class="NewsListing" align="right" valign="top">
-			       <dtml-var Date>
-			         </td>
-				  </tr>
-				   <tr>
-				     <td colspan="2">
-				         <em> <dtml-var Description fmt="structured-text"> </em>
-					   </td>
-					    </tr>
-					     <dtml-if sequence-end>
-					       </table>
-					        <dtml-else>
-						  <tr> <td> <br /> </td> </tr>
-						   </dtml-if>
-						   <dtml-else>
-						    <p class="Desktop">
-						      No news is good news!
-						       </p>
-						       </dtml-in>
-						       
-						       <dtml-in newsitems size="10" start="batch_start" next>
-						        <p class="Desktop">
-							 <a href="&dtml-URL;&dtml-sequence-query;batch_start=&dtml-next-sequence-start-number;">
-							  Next &dtml-next-sequence-size; older articles
-							   </a>
-							    </p>
-							    </dtml-in>
-							    
-							    </dtml-let>
-							    
-							    <dtml-else>
-							    
-							    <dtml-let newsitems="portal_catalog.searchResults(meta_type=['Document','Link'],
-							      sort_on='Date', sort_order='reverse', review_state='published')">
-							      
-							      <dtml-in newsitems size="10" start="batch_start" previous>
-							       <p style="Desktop">
-							        <a href="&dtml-URL;&dtml-sequence-query;batch_start=&dtml-previous-sequence-start-number;">
-								 Next &dtml-previous-sequence-size; more recent articles
-								  </a>
-								   </p>
-								   </dtml-in>
-								   
-								   <dtml-in newsitems size="10" start="batch_start">
-								    <dtml-if sequence-start>
-								     <table cellspacing="0" border="0" width="90%">
-								      </dtml-if>
-								       <tr>
-								         <td class="NewsListing" align="left" valign="top">
-									       <a href="&dtml-getURL;"> &dtml-title; </a>
-									          <br> By &dtml-Creator;
-										    </td>
-										      <td class="NewsListing" align="right" valign="top">
-										          <dtml-var Date>
-											    </td>
-											     </tr>
-											      <tr>
-											        <td colspan="2">
-												    <em> <dtml-var Description fmt="structured-text"> </em>
-												      </td>
-												       </tr>
-												        <dtml-if sequence-end>
-													  </table>
-													   <dtml-else>
-													     <tr> <td> <br /> </td> </tr>
-													      </dtml-if>
-													      <dtml-else>
-													       <p class="Desktop">
-													         No news is good news!
-														  </p>
-														  </dtml-in>
-														  
-														  <dtml-in newsitems size="10" start="batch_start" next>
-														   <p class="Desktop">
-														    <a href="&dtml-URL;&dtml-sequence-query;batch_start=&dtml-next-sequence-start-number;">
-														     Next &dtml-next-sequence-size; older articles
-														      </a>
-														       </p>
-														       </dtml-in>
-														       
-														       </dtml-let>
-														       
-														       </dtml-if>
-														       
-														       
-														       
-														       
-														       <dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/recent_news.dtml b/product/CMFTranslation/skins/nexedi/recent_news.dtml
deleted file mode 100755
index af82b7d1cb..0000000000
--- a/product/CMFTranslation/skins/nexedi/recent_news.dtml
+++ /dev/null
@@ -1,53 +0,0 @@
-<dtml-var standard_html_header>
-
-<dtml-let newsitems="portal_catalog.searchResults(meta_type=('News Item', 'Base18 News Item'),
-  sort_on='Date', sort_order='reverse', review_state='published')">
-
-<dtml-in newsitems size="10" start="batch_start" previous>
- <p style="Desktop">
- <a href="&dtml-URL;&dtml-sequence-query;batch_start=&dtml-previous-sequence-start-number;">
- Next &dtml-previous-sequence-size; more recent articles
- </a>
- </p>
-</dtml-in>
-
-<dtml-in newsitems size="10" start="batch_start">
- <dtml-if sequence-start>
- <table cellspacing="0" border="0" width="90%">
- </dtml-if>
- <tr>
-  <td class="NewsListing" align="left" valign="top">
-      <a href="&dtml-getURL;"> &dtml-title; </a>
-   <br> By &dtml-Creator;
-  </td>
-  <td class="NewsListing" align="right" valign="top">
-    <dtml-var Date>
-  </td>
- </tr>
- <tr>
-  <td colspan="2">
-    <em> <dtml-var Description fmt="structured-text"> </em>
-  </td>
- </tr>
- <dtml-if sequence-end>
-  </table>
- <dtml-else>
-  <tr> <td> <br /> </td> </tr>
- </dtml-if>
-<dtml-else>
- <p class="Desktop">
-  No news is good news!
- </p>
-</dtml-in>
-
-<dtml-in newsitems size="10" start="batch_start" next>
- <p class="Desktop">
- <a href="&dtml-URL;&dtml-sequence-query;batch_start=&dtml-next-sequence-start-number;">
- Next &dtml-next-sequence-size; older articles
- </a>
- </p>
-</dtml-in>
-
-</dtml-let>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/search.dtml b/product/CMFTranslation/skins/nexedi/search.dtml
deleted file mode 100755
index e246a448e6..0000000000
--- a/product/CMFTranslation/skins/nexedi/search.dtml
+++ /dev/null
@@ -1,78 +0,0 @@
-<dtml-var standard_html_header>
-
-<div class="Desktop">
-
-<h1> Search Results </h1>
-
-
-<dtml-let results="doFormSearch( REQUEST=REQUEST )">
-
-<p>Found <dtml-var expr="_.len(results)" thousands_commas>
-items<dtml-if name="SearchableText"> matching "&dtml-SearchableText;"</dtml-if>.</p>
-
-<dtml-in results size="25" start="batch_start">
- <dtml-let objURL="getURL() + '/view'">
-
- <dtml-if sequence-start>
-<table class="SearchResults">
- <tr>
-  <td width="16"><br></td>
-  <th> Title
-  </th>
-  <th> Type
-  </th>
-  <th> Date
-  </th>
-  </tr>
- </dtml-if>
-
- <tr>
-  <td>
-   <dtml-if getIcon>
-   <a href="&dtml-objURL;"><img
-    src="&dtml-portal_url;/&dtml-getIcon;" border="0"
-    alt="[&dtml.missing-Type;]"
-    title="[&dtml.missing-Type;]"></a>
-   </dtml-if>
-  </td>
-  <td>
-   <a href="&dtml-objURL;"><dtml-if name="Title"><dtml-var name="Title" size="75" html_quote><dtml-else>(No title)</dtml-if></a>
-  </td>
-  <td>
-    &dtml.missing-Type;
-  </td>
-  <td>
-   &dtml-Date;
-  </td>
- </tr>
- <tr>
-  <td>&nbsp;</td>
-  <td colspan="3"><em>
-   <dtml-if name="Description"><dtml-var name="Description"
-   missing="(No description)" size="100" html_quote>
-   <dtml-else>(No description)</dtml-if></em></td>
- </tr>
- <dtml-if sequence-end>
-  </table>
- </dtml-if>
- </dtml-let>
-<dtml-else>
- <p> There are no items matching your specified criteria.  </p>
-</dtml-in>
-
-<dtml-in results size="25" start="batch_start" next>
- <dtml-let url=URL
-           sqry=sequence-query
-           next=next-sequence-start-number
-           nextSize=next-sequence-size
-           nextURL="'%s%sbatch_start=%s' % (url,sqry,next)"
- >
-  <p> <a href="&dtml-nextURL;"> Next &dtml-nextSize; items </a> </p>
- </dtml-let>
-</dtml-in>
-
-</dtml-let>
-
-</div>
-
-<dtml-var standard_html_footer>
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/nexedi/search_form.dtml b/product/CMFTranslation/skins/nexedi/search_form.dtml
deleted file mode 100755
index 14e86c46f9..0000000000
--- a/product/CMFTranslation/skins/nexedi/search_form.dtml
+++ /dev/null
@@ -1,161 +0,0 @@
-<dtml-var standard_html_header>
-
-<div class="Desktop">
-
-<h1> Search portal </h1>
-
-<form action="search">
-
-<table class="FormLayout">
-
-<dtml-if "portal_membership.checkPermission('Review portal content', this())">
- <tr>
-  <th> Review Status
-  </th>
-  <td>
-   <select name="review_state:list" size="3" multiple>
-    <option value="" selected>-- any --</option>
-    <option value="private">private</option>
-    <option value="pending">pending</option>
-    <option value="published">published</option>
-   </select>
-   <dl class="FieldHelp">
-    <dd> As a reviewer, you may search for items based on their
-         review state.  If you wish to constrain results to items
-         in certain states, select them from this list.
-    </dd>
-   </dl>
-  </td>
- </tr>
-</dtml-if>
- 
- <tr valign="top">
-  <th> Full Text
-  </th>
-  <td>
-    <input name="SearchableText" size="40">
-   <dl class="FieldHelp">
-    <dd> For a simple text search, enter your search term
-         here.  Multiple words may be found by combining
-         them with <b>AND</b> and <b>OR</b>.  This will
-         find text in items' contents, title and
-         description.
-    </dd>
-   </dl>
-  </td>
- </tr>
-
- <tr>
-  <th>Title
-  </th>
-  <td>
-   <input name="Title" size="20">
-  </td>
- </tr>
-
- <tr valign="top">
-  <th>Subject</th>
-  <td>
-   <select name="Subject:list" multiple size="4">
-    <option value="" selected>-- any --</option>
-    <dtml-in expr="portal_catalog.uniqueValuesFor( 'Subject' )">
-     <option value="&dtml-Subject;"> &dtml-Subject; </option>
-    </dtml-in>
-   </select>
-  </td>
- </tr>
-
- <tr>
-  <th> Description
-  </th>
-  <td>
-   <input name="Description" size="20">
-   <dl class="FieldHelp">
-    <dd> You may also search the items' descriptions and
-         titles specifically.  Multiple words may be found
-         by combining them with <b>AND</b> and <b>OR</b>.
-    </dd>
-   </dl>
-  </td>
- </tr>
-
- <tr>
-  <th> Find new items since...
-  </th>
-  <td>
-   <select name="created:date">
-    <dtml-if "not portal_membership.isAnonymousUser()">
-    <dtml-let member="portal_membership.getAuthenticatedMember()"
-              lastLogin="member.last_login_time"
-    >
-    <option value="&dtml-lastLogin;">     Last login </option>
-    </dtml-let>
-    </dtml-if>
-    <dtml-let today="ZopeTime().earliestTime()"
-              yesterday="(today-1).Date()"
-              lastWeek="(today-7).Date()"
-              lastMth="(today-31).Date()"
-              ever="'1970/01/01 00:00:00 GMT'"
-    >
-    <option value="&dtml-yesterday;">     Yesterday   </option>
-    <option value="&dtml-lastWeek;">      Last week   </option>
-    <option value="&dtml-lastMth;">       Last month  </option>
-    <option value="&dtml-ever;" selected> Ever        </option>
-    </dtml-let>
-   </select>
-   <input type="hidden" name="created_usage" value="range:min">
-   <dl class="FieldHelp">
-    <dd> You may find only recent items by selecting a time-frame.
-    </dd>
-   </dl>
-  </td>
- </tr>
-
- <tr>
-  <th> Item type
-  </th>
-  <td>
-   <select name="portal_type:list" multiple size="5">
-    <option value="" selected>-- any --</option>
-    <dtml-in expr="portal_types.listTypeInfo()">
-     <option value="&dtml-getId;">&dtml-Title;</option>
-    </dtml-in>
-   </select>
-
-   <dl class="FieldHelp">
-    <dd> You may limit your results to particular kinds of
-         items by selecting them above.  To find all kinds
-         of items, do not select anything.
-    </dd>
-   </dl>
-  </td>
- </tr>
-
- <tr>
-  <th> Creator
-  </th>
-  <td>
-   <input name="Creator" size="20">
-
-   <dl class="FieldHelp">
-    <dd> To find items by a particular user only, enter
-         their username above.  Note that you must enter
-         their username <i>exactly</i>.
-    </dd>
-   </dl>
-  </td>
- </tr>
-
- <tr>
-  <td><br></td>
-  <td>
-    <input type="submit" value="Search">
-  </td>
- </tr>
-</table>
-</form>
-
-</div>
-
-<dtml-var standard_html_footer>
-
diff --git a/product/CMFTranslation/skins/nexedi/secure_absolute_url.py b/product/CMFTranslation/skins/nexedi/secure_absolute_url.py
deleted file mode 100755
index deb8eb8945..0000000000
--- a/product/CMFTranslation/skins/nexedi/secure_absolute_url.py
+++ /dev/null
@@ -1,16 +0,0 @@
-## Script (Python) "secure_absolute_url"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=lang=None,target=None
-##title=
-##
-
-if target is None: target = context
-if lang is None: lang = context.gettext.get_selected_language()
-relative_url = context.portal_url.getRelativeUrl(target)
-
-return '%s/%s/%s' % (context.secure_url, lang,
-                     relative_url)
diff --git a/product/CMFTranslation/skins/nexedi/set_criteria.py b/product/CMFTranslation/skins/nexedi/set_criteria.py
deleted file mode 100755
index 14d1945aee..0000000000
--- a/product/CMFTranslation/skins/nexedi/set_criteria.py
+++ /dev/null
@@ -1,37 +0,0 @@
-## Script (Python) "set_criteria"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=
-##title=Update all topics to create a classification hierarchy
-##
-global changed
-changed = 0
-
-def updateCriterion(topic,root_topic):
-  global changed
-  # Search for criterium
-  my_cryterium = None
-  for criterium in topic.listCriteria():
-    if criterium.Type() == 'String Criterion':
-      my_cryterium = criterium
-  if my_cryterium is not None:
-    my_cryterium.edit(root_topic + topic.id)
-    changed = changed + 1
-  else:
-    my_cryterium = topic.addCriterion('Subject','String Criterion')
-    updateCriterion(topic,root_topic)
-
-def updateSubtopics(topic, root_topic=''):
-  updateCriterion(topic,root_topic)
-  for subtopic in topic.objectValues('Portal Topic'):
-     updateSubtopics(subtopic,root_topic=root_topic + topic.id + '/')
-
-for topic in container.objectValues('Portal Topic'):
-  updateSubtopics(topic)
-
-print changed
-
-return printed
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/nexedi/site_vocabulary.dtml b/product/CMFTranslation/skins/nexedi/site_vocabulary.dtml
deleted file mode 100755
index 3822817796..0000000000
--- a/product/CMFTranslation/skins/nexedi/site_vocabulary.dtml
+++ /dev/null
@@ -1,14 +0,0 @@
-<dtml-var standard_html_header>
-
-<div class="Document">
-
-<pre>
-<dtml-with aq_parent>
-<dtml-in expr="objectValues('Portal Topic')"><dtml-var list_topic_vocabulary></dtml-in>
-</dtml-with>
-</pre>
-
-</div>
-
-<dtml-var standard_html_footer>
-
diff --git a/product/CMFTranslation/skins/nexedi/standard_html_footer b/product/CMFTranslation/skins/nexedi/standard_html_footer
deleted file mode 100755
index 647a3531c8..0000000000
--- a/product/CMFTranslation/skins/nexedi/standard_html_footer
+++ /dev/null
@@ -1,25 +0,0 @@
-      <div class="Desktop">
-      <dtml-if localFooter>
-       <dtml-var localFooter>
-      </dtml-if>
-
-      </div>
-      </td>
-    </tr>
-  </tbody>
-</table>
-
-<!-- Legalese -->
-
-<div class="legalinfo">
-  <p>Nexedi, SARL au capital 10.000 Euros, 943, av. de la République 59700 Marcq-en-Baroeul<br />
-    RCS Roubaix Tourcoing 440 047 504 - IBAN: FR76 3002 7000 3900 0000 1332 336<br />
-    Email:<a href="mailto:info@nexedi.com"> info@nexedi.com</a> Tel. +33(0)6 62 05 76 14 
-    Fax. +33(0)1 44 75 72 97<br />
-    <a href="/legal">Legal Notice</a>
-  </p>
-</div>
-
-
-  </body>
-</html>       
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/nexedi/standard_html_footer.dtml b/product/CMFTranslation/skins/nexedi/standard_html_footer.dtml
deleted file mode 100755
index 22ccc2a4c9..0000000000
--- a/product/CMFTranslation/skins/nexedi/standard_html_footer.dtml
+++ /dev/null
@@ -1,19 +0,0 @@
-      <div class="Desktop">
-      <dtml-if localFooter>
-       <dtml-var localFooter>
-      </dtml-if>
-
-      </div>
-      </td>
-    </tr>
-  </tbody>
-</table>
-
-<!-- Legalese -->
-
-<div class="legalinfo">
-  <p><dtml-var legal_footer></p>
-</div>
-
-  </body>
-</html>       
diff --git a/product/CMFTranslation/skins/nexedi/standard_html_header.dtml b/product/CMFTranslation/skins/nexedi/standard_html_header.dtml
deleted file mode 100755
index 6f1d4d4a48..0000000000
--- a/product/CMFTranslation/skins/nexedi/standard_html_header.dtml
+++ /dev/null
@@ -1,134 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<dtml-comment>
-Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-
-This software is subject to the provisions of the Zope Public License,
-Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-FOR A PARTICULAR PURPOSE
-</dtml-comment>
-
-<dtml-if "_.hasattr(this(),'isEffective') and not isEffective( ZopeTime() )">
-<dtml-unless "portal_membership.checkPermission('Request review',this())
-           or portal_membership.checkPermission('Review portal
- content',this())">
-<dtml-var "RESPONSE.unauthorized()">
-</dtml-unless>
-</dtml-if>
-
-<html>
- <head>  
-  <title><dtml-with portal_properties>&dtml-title;</dtml-with
-  ><dtml-if name="Title">: &dtml-TranslatedTitle;</dtml-if></title>
-  <dtml-var css_inline_or_link>
-  <dtml-if relative_to_content>
-   <base href="&dtml-absolute_url;" />
-  </dtml-if>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- </head>
-<dtml-with stylesheet_properties>
-<body font="&dtml-base_font_color;">
-</dtml-with>
-
-<!-- Top Bar: Global links and search -->
-<dtml-var standard_top_bar>
-
-<!-- Main Page -->
-<table cellspacing="0" cellpadding="0" width="100%" border="0">
-  <tbody>
-    <tr>
-      <!-- Logo -->
-      <td rowspan="2" class="LogoBox" valign="top">
-        <div class="LogoBox">
-          <a href="&dtml-portal_url;"><img src="&dtml-portal_url;/logo.png"
- border="0"  /></a>
-        </div>
-      </td>
-      <!-- Title and Language -->
-      <td width="90%" class="TitleBox">
-          <dtml-var TranslatedTitle_or_id>
-      </td>
-    </tr>
-    <tr class="LanguageBox">
-      <td class="LanguageBox">
-          <dtml-if show_language_selector><dtml-var language_selector></dtml-if>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<table cellspacing="0" cellpadding="0" width="100%" border="0">
-  <tbody>
-    <tr>
-      <dtml-if show_menu>
-        <td valign="top" width="150">
-            <!-- Optional Action Box-->
-            <dtml-if "not portal_membership.isAnonymousUser()">
-            <div class="ActionBox"><dtml-var actions_box></div>
-            </dtml-if>
-            <!-- Main menu -->
-            <dtml-var menu_box>
-            <!-- Quick Login -->
-            <dtml-if show_quicklogin><br><dtml-var quick_login></dtml-if>
-        </td>
-        <!-- Main Box -->
-        <td colspan="2" valign="top" class="Desktop">
-      <dtml-else>
-        <dtml-if
- "portal_membership.getAuthenticatedMember().has_role('Manager')">
-            <td valign="top" width="150">
-                <!-- Optional Action Box-->
-                <div class="ActionBox"><dtml-var actions_box></div>
-            </td>
-            <!-- Main Box -->
-            <td colspan="2" valign="top" class="Desktop">
-        <dtml-else>
-            <!-- Main Box -->
-            <td colspan="3" valign="top" class="Desktop">
-        </dtml-if>
-      </dtml-if>
-
-
-      <!-- Main Box -->
-      <div class="Desktop">
-          <dtml-if "not portal_membership.isAnonymousUser() and
-             not _.hasattr(portal_membership.getAuthenticatedMember(),
-             'getMemberId')">
-          <div class="AuthWarning">
-           <table>
-            <tr class="Host">
-             <td> Warning! </td>
-            <tr>
-             <td> You are presently logged in as a user from outside
-                  this portal.  Many parts of the portal will not work!
-                  You may have to shut down and relaunch your browser to
-                  log out, depending on how you originally logged in.
-             </td>
-            </tr>
-           </table>
-          </div>
-          </dtml-if>
-        </div>
-
-          <dtml-if show_breadcrumb>
-          <!-- Breadcrumb -->
-          <div class="breadcrumb">
-           <p><dtml-var breadcrumb></p>
-          </div>
-          </dtml-if>
-
-
-        <div class="Desktop">
-          <dtml-if portal_status_message>
-           <p class="DesktopStatusBar"><dtml-var
-             "gettext(portal_status_message)"></p>
-          </dtml-if>
-
-          <dtml-if localHeader>
-           <dtml-var localHeader>
-          </dtml-if>
-        </div>
-
diff --git a/product/CMFTranslation/skins/nexedi/standard_top_bar.dtml b/product/CMFTranslation/skins/nexedi/standard_top_bar.dtml
deleted file mode 100755
index b35e46a2e8..0000000000
--- a/product/CMFTranslation/skins/nexedi/standard_top_bar.dtml
+++ /dev/null
@@ -1,42 +0,0 @@
-<!-- Top navigation bar: access to Nexedi network and search features -->
-<table class="tophead" width="100%">
-  <form action="&dtml-portal_url;/search" method="POST">
-    <tr>
-      <td align="left" nowrap valign="middle">
-        &nbsp;&nbsp;
-        <dtml-if partner_sites>
-        <dtml-in partner_sites>
-        <a class="topbanner" href="http://&dtml-sequence-item;">&dtml-sequence-item;</a>&nbsp;|&nbsp;
-        </dtml-in>
-        </dtml-if>
-      </td>
-      <td align="right" nowrap valign="middle" width="90%">
-        <dtml-if show_sitemap>
-          <a class="topbanner" href="&dtml-portal_url;/sitemap.html">Site Map</a>&nbsp;|&nbsp;
-        </dtml-if>
-        <dtml-if show_search>
-          <a class="topbanner" href="&dtml-portal_url;/search_form">Search</a>
-        </dtml-if>
-      </td>
-      <td align="right" nowrap valign="middle">
-        <dtml-if special_top_menu>
-          <dtml-var special_top_menu>
-        </dtml-if>
-        <dtml-if show_multisearch>
-          <font size="-2">
-          <select name="site" class="osdn-search">
-            <dtml-in partner_sites>
-                <option value="&dtml-sequence-item;">&dtml-sequence-item;</option>
-            </dtml-in>
-          </select>
-          </font>
-        </dtml-if>
-        <dtml-if show_search>
-          <font size="-2">
-            <input type="text" size="12" name="SearchableText" class="tophead-search" />&nbsp;<input type="submit" value="Go" />
-          </font>
-        </dtml-if>
-      </td>
-    </tr>
-  </form>
-</table>
diff --git a/product/CMFTranslation/skins/nexedi/stylesheet_properties.props b/product/CMFTranslation/skins/nexedi/stylesheet_properties.props
deleted file mode 100755
index 23f35eba04..0000000000
--- a/product/CMFTranslation/skins/nexedi/stylesheet_properties.props
+++ /dev/null
@@ -1,30 +0,0 @@
-alink_color:string=#FFFFFF
-base_font_color:string=#000000
-base_font_size:string=8pt
-bg_color:string=#FFFFFF
-guest_actions_color:string=#888888
-guest_actions_link_color:string=#660000
-highlight_color:string=#D3E1C8
-highlight_font_color:string=#000000
-hover_color:string=#000066
-link_color:string=#0000AA
-primary_accent_alink_color:string=#FFFFFF
-primary_accent_color:string=#2E3065
-primary_accent_font_color:string=#FFFFFF
-primary_accent_link_color:string=#FFFFFF
-primary_accent_text_color:string=#000066
-primary_accent_vlink_color:string=#FFFFFF
-primary_font_family:string=Verdana, Arial, Helvetica, sans-serif
-secondary_accent_alink_color:string=#FFFFFF
-secondary_accent_color:string=#D8D3EB
-secondary_accent_font_color:string=#000000
-secondary_accent_link_color:string=#3E4088
-secondary_accent_vlink_color:string=#3E4088
-secondary_font_family:string=Arial, Verdana, Helvetica, sans-serif
-select_stylesheet_id:string=default_stylesheet
-title:string=ERP5 Portal Style
-vlink_color:string=DarkMagenta
-base_font_family:string=sans-serif
-printer_base_font_family:string=serif
-printer_primary_font_family:string=sans-serif
-printer_secondary_font_family:string=sans-serif
diff --git a/product/CMFTranslation/skins/nexedi/topic_view.dtml b/product/CMFTranslation/skins/nexedi/topic_view.dtml
deleted file mode 100755
index f3d2b38011..0000000000
--- a/product/CMFTranslation/skins/nexedi/topic_view.dtml
+++ /dev/null
@@ -1,85 +0,0 @@
-<dtml-var standard_html_header>
-
-<table border=0 cellspacing=0 cellpadding=0 width="100%">
-<tr>
-  <td width="70%" valign="top">
-    <div class="Document">
-
-    <p><dtml-var Description></p>
-    <dtml-if "objectValues(['Portal Topic'])">
-    <h1>Subtopics</h1>
-    <ul>
-    <dtml-in expr="contentValues(['Portal Topic'])" sort=Title>
-    <li><a href="&dtml-local_absolute_url;/topic_view"><dtml-if
-Title>&dtml-Title;<dtml-else>&dtml-getId;</dtml-if></a></li>
-    </dtml-in>
-    </ul>
-    </dtml-if>
-
-    <h1>Matching items</h1>
-
-<dtml-let results=queryCatalog>
-<dtml-in results size="50" start="batch_start" sort=Title>
- <dtml-let objURL="getObject().local_absolute_url() + '/view'">
-
-<dtml-if sequence-start>
- </dtml-if>
-
-<p><dtml-if getIcon>
- <a href="&dtml-objURL;"><img
- src="&dtml-portal_url;/&dtml-getIcon;" border="0"
- alt="[&dtml.missing-Type;]"
- title="[&dtml.missing-Type;]"></a>
- </dtml-if>&nbsp;&nbsp;<a href="&dtml-objURL;"><dtml-if name="Title"><dtml-var
-name="Title" size="75" html_quote><dtml-else>(No title)</dtml-if></a></p>
- <dtml-if sequence-end>
- </dtml-if>
- </dtml-let>
- <dtml-else>
- <p> There are no items in this topic. </p>
- </dtml-in>
-
-<dtml-in results size="50" start="batch_start" sort=Title next>
- <dtml-let url=URL
- sqry=sequence-query
- next=next-sequence-start-number
- nextSize=next-sequence-size
- nextURL="'%s%sbatch_start=%s' % (url,sqry,next)"
- >
- <p> <a href="&dtml-nextURL;"> Next &dtml-nextSize; items </a> </p>
- </dtml-let>
- </dtml-in>
-
-</dtml-let>
-
-    </div>
-
-<div class="Desktop">
-<div class="Topic">
-
-<h3> Query Parameters </h3>
-<ul>
-<dtml-with buildQuery>
-<dtml-in items>
- <li> <dtml-var sequence-key> : <dtml-var sequence-item> </li>
-</dtml-in>
-</dtml-with>
-</ul>
-
-</div>
-</div>
-
-
-  </td>
-  <td width="30%" valign="top">
-    <dtml-var news_box><br />
-    <dtml-var latest_box>
-  </td>
-</tr>
-<tr>
-  <td></td>
-  <td></td>
-</tr>
-</table>
-
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/nexedi/update_http_cache.py b/product/CMFTranslation/skins/nexedi/update_http_cache.py
deleted file mode 100755
index 744d2dfa04..0000000000
--- a/product/CMFTranslation/skins/nexedi/update_http_cache.py
+++ /dev/null
@@ -1,28 +0,0 @@
-## Script (Python) "update_http_cache"
-##bind container=container
-##bind context=context
-##bind namespace=
-##bind script=script
-##bind subpath=traverse_subpath
-##parameters=my_folder=None
-##title=Updates the caching parameters (cache must be called ht)
-##
-if my_folder is None: my_folder = container
-
-def updateCache(o):
-  o.ZCacheable_setManagerId(manager_id='ht')
-  #o.setCacheNamespaceKeys(keys=['__ac_name'])
-
-for o in context.objectValues():
-  try:
-    updateCache(o)
-    print 'Good %s' % o.absolute_url()
-  except:
-    print 'Bad %s' % o.absolute_url()
-
-for f in context.objectValues(spec=['Base18 Folder','Folder','portal_skins']):
-  f.update_http_cache(my_folder=f)
-
-print "Done"
-
-return printed
diff --git a/product/CMFTranslation/skins/nexedi/wikipage_view.dtml b/product/CMFTranslation/skins/nexedi/wikipage_view.dtml
deleted file mode 100755
index 5d5f9a8440..0000000000
--- a/product/CMFTranslation/skins/nexedi/wikipage_view.dtml
+++ /dev/null
@@ -1,8 +0,0 @@
-<dtml-var standard_html_header>
-<dtml-var wikipage_header>
-<div class="Desktop">
- <div class="Document">
-    <dtml-var render>
- </div >
-</div>
-<dtml-var standard_html_footer>
diff --git a/product/CMFTranslation/skins/zpt_content18/discussionitem18_view.pt b/product/CMFTranslation/skins/zpt_content18/discussionitem18_view.pt
deleted file mode 100755
index 916217c491..0000000000
--- a/product/CMFTranslation/skins/zpt_content18/discussionitem18_view.pt
+++ /dev/null
@@ -1,39 +0,0 @@
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
-      xmlns:metal="http://xml.zope.org/namespaces/metal"
-      metal:use-macro="here/main_template/macros/master">
-    <metal:block fill-slot="base">
-        <base href=""
-              tal:attributes="href python: here.absolute_url() + '/'">
-    </metal:block>
-<body>
-
-<div metal:fill-slot="header">
-
-  <h1 id="DesktopTitle"
-      tal:content="here/Title">Document Title</h1>
-
-  <div id="DesktopDescription" tal:content="here/Description">
-      Document Description goes here.
-  </div>
-
-  <div metal:use-macro="here/content_byline/macros/byline">By Me</div>
-
-</div>
-
-<div metal:fill-slot="main">	  
-
-  <div id="DiscussionAbove">
-   <span tal:replace="structure here/aboveInThread"></span>
-  </div>
-
-  <div tal:replace="structure here/TranslatedBody">Body</div>
-
-  <div class="Discussion">
-   <span tal:replace="structure here/viewThreadsAtBottom"
-        tal:condition="here/viewThreadsAtBottom|nothing">Dicussions</span>
-  </div>
-
-</div>
-
-</body>
-</html>
diff --git a/product/CMFTranslation/skins/zpt_content18/document18_view.pt b/product/CMFTranslation/skins/zpt_content18/document18_view.pt
deleted file mode 100755
index 15d9d73ec1..0000000000
--- a/product/CMFTranslation/skins/zpt_content18/document18_view.pt
+++ /dev/null
@@ -1,36 +0,0 @@
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
-      xmlns:metal="http://xml.zope.org/namespaces/metal"
-      xmlns:i18n="http://xml.zope.org/namespaces/tal/i18n"
-      metal:use-macro="here/main_template/macros/master">
-  <metal:block fill-slot="base">
-      <base href=""
-            tal:attributes="href python: here.absolute_url() + '/'">
-  </metal:block>
-<body>
-
-<div metal:fill-slot="header">
-
-    <h1 id="DesktopTitle"
-        tal:content="here/TranslatedTitle">Document Title</h1>
-
-    <div id="DesktopDescription" tal:content="here/TranslatedDescription">
-        Document Description goes here.
-    </div>
-
-    <div metal:use-macro="here/content_byline/macros/byline">By Me</div>
-
-</div>
-
-<div metal:fill-slot="main">
-
-<div tal:replace="structure here/TranslatedBody">Translated Body</div>
-
-<div class="Discussion">
-   <span tal:replace="structure here/viewThreadsAtBottom"
-         tal:condition="here/viewThreadsAtBottom|nothing"></span>
-</div>
-
-</div>
-
-</body>
-</html>
diff --git a/product/CMFTranslation/skins/zpt_content18/favorite18_view.pt b/product/CMFTranslation/skins/zpt_content18/favorite18_view.pt
deleted file mode 100755
index eeb88bb41a..0000000000
--- a/product/CMFTranslation/skins/zpt_content18/favorite18_view.pt
+++ /dev/null
@@ -1,39 +0,0 @@
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
-      xmlns:metal="http://xml.zope.org/namespaces/metal"
-      metal:use-macro="here/main_template/macros/master">
-    <metal:block fill-slot="base">
-          <base href=""
-                tal:attributes="href python: here.absolute_url() + '/'">
-    </metal:block>
-<body>
-
-<div metal:fill-slot="header">
-
-  <h1 id="DesktopTitle"
-      tal:content="here/Title">Document Title</h1>
-
-  <div id="DesktopDescription" tal:content="here/Description">
-      Document Description goes here.
-  </div>
-
-  <div metal:use-macro="here/content_byline/macros/byline">By Me</div>
-
-</div>
-
-<div metal:fill-slot="main">
-
- <p> Link: <a href=""
-              tal:attributes="href here/getRemoteUrl"
-              tal:content="here/getRemoteUrl"
-           >/index_html</a></p>
-
- <div class="Discussion">
-    <span tal:replace="structure here/viewThreadsAtBottom"
-          tal:condition="here/viewThreadsAtBottom|nothing"></span>
- </div>
-
-</div>
-
-</body>
-</html>
-
diff --git a/product/CMFTranslation/skins/zpt_content18/file18_view.pt b/product/CMFTranslation/skins/zpt_content18/file18_view.pt
deleted file mode 100755
index c2791a5276..0000000000
--- a/product/CMFTranslation/skins/zpt_content18/file18_view.pt
+++ /dev/null
@@ -1,68 +0,0 @@
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
-      xmlns:metal="http://xml.zope.org/namespaces/metal"
-      metal:use-macro="here/main_template/macros/master">
-    <metal:block fill-slot="base">
-        <base href=""
-              tal:attributes="href python: here.absolute_url() + '/'">
-    </metal:block>
-<body>
-
-
-<div metal:fill-slot="header">
-
-  <h1 id="DesktopTitle"
-      tal:content="here/Title">Document Title</h1>
-
-  <div id="DesktopDescription" tal:content="here/Description">
-      Document Description goes here.
-  </div>
-
-  <div metal:use-macro="here/content_byline/macros/byline">By Me</div>
-
-</div>
-
-<div metal:fill-slot="main">
-
-<h2> File Properties </h2>
-
- <table>
-
-  <tr>
-   <th align="right">Filename</th>
-   <td tal:content="here/getId">My ID</td>
-  </tr>
-
-  <tr>
-   <th align="right">Size</th>
-   <td tal:content="here/size">1024K</td>
-  </tr>
-  
-  <tr>
-   <th align="right">Content-type</th>
-   <td tal:content="here/content_type">application/gzip</td>
-  <tr>
-
-  <tr>
-   <td> <br> </td>
-   <td> 
-   </td>
-  </tr>
- </table>
-
-<h2> Download File </h2>
-
-<p> <a href="." title="Download File"
-           tal:define="file here/absolute_url"
-           tal:attributes="href file; title here/Title"
-           tal:content="string:Download ${here/Title}">Download File</a>
-</p>
-
- <div class="Discussion">
-    <span tal:replace="structure here/viewThreadsAtBottom"
-          tal:condition="here/viewThreadsAtBottom|nothing"></span>
- </div>
-
-</div>
-
-</body>
-</html>
diff --git a/product/CMFTranslation/skins/zpt_content18/folder_contents.pt b/product/CMFTranslation/skins/zpt_content18/folder_contents.pt
deleted file mode 100755
index 7147c9f828..0000000000
--- a/product/CMFTranslation/skins/zpt_content18/folder_contents.pt
+++ /dev/null
@@ -1,155 +0,0 @@
-<span tal:define="dummy here/filterCookie; desktop python: request.set('isDesktop', 1)"></span>
-
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
-      xmlns:metal="http://xml.zope.org/namespaces/metal"
-      metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-  <div tal:condition="python: not(here.portal_membership.checkPermission('List folder contents', here))">
-	<span tal:define="redirect python: request.RESPONSE.redirect(here.absolute_url())"></span>
-	</div>
-
-<!-- This is the desktop area -->
-<div class="Desktop">
-
-<h1> Desktop </h1>
-
-<form action="" METHOD="POST"
-      tal:attributes="action here/absolute_url">
- <table class="FormLayout">
-  <tr>
-   <td valign="top">
-    <table class="ContentsList">
-      <tbody tal:condition="python: here.portal_membership.checkPermission('List folder contents', here, 'aq_parent')">
-	  <tr valign="top"
-	      tal:define="upNav python: hasattr(here.aq_parent, 'portal_url');
-		              upID python: here.aq_parent.getId()">
-        <td colspan="3" align="left">
-          <span tal:condition="upNav|nothing"><a href="../folder_contents"><img src="" alt="[Link]" border="0"
-											tal:attributes="src python: here.portal_url() + '/UpFolder_icon.gif'"></a>
-		  </span>&nbsp;&nbsp;
-        <span tal:condition="upNav">Up to <a href="../folder_contents" tal:content="upID">Up ID</a></span>
-        <span tal:condition="python: not(upNav)"><span class="mild">Root</span></span>
-		</td>
-      </tr>
-	  </tbody>
-	  <tr><td colspan="1" align="left" width="49%">
-	  <table>
-	  <tbody tal:define="global b_start string:0;b_start request/b_start | b_start;
-	   filterString python: request.get('folderfilter', '');
-	   filter python: here.decodeFolderFilter(filterString);
-       items python: here.listFolderContents(contentFilter=filter);
-	   Batch python:modules['ZTUtils'].Batch;
-	   global batch python:Batch(items, 8, int(b_start), orphan=0);
-	   global batch1 batch/next">
-	   <tr align="top"
-	       tal:repeat="items batch">
-        <td align="left" width="5" NOWRAP
-		     tal:define="folderish items/isPrincipiaFolderish;
-		               portalish items/isPortalContent|nothing;
-					   global methodID python: folderish and 'folder_contents' or (portalish and 'view' or '');
-					   global icon items/getIcon|items/icon|nothing">
-           <input type="checkbox" name="ids:list" value="" id=""
-		          tal:attributes="value items/getId; id python: 'cb_' + items.getId()" />
-        </td>
-      <td>
-         <span tal:condition="icon">
-         <a href=""
-		    tal:attributes="href python: items.getId() + '/' + methodID">
-	     <img src="" alt="" border="0"
-		      tal:attributes="src python: here.portal_url() + '/' + icon;
-			                  alt items/Type|nothing"></a>
-		 </span>
-      </td>
-      <td>
-         <a href=""
-		    tal:attributes="href python: items.getId() + '/' + methodID"><span tal:replace="items/getId">ID</span>
-			<span tal:condition="items/Title"
-			      tal:replace="python: '(' + items.Title() + ')'">(Title)</span></a>
-      </td>	  
-     </tr>
-	 </tbody>
-  </table>
-  </td>
-  <td width="2%">&nbsp;</td>
-  <td colspan="1" width="49%">
-    	  <table>
-	   <tr align="top"
-	       tal:repeat="items batch1">
-        <td align="left" width="5" NOWRAP
-		    tal:define="folderish items/isPrincipiaFolderish;
-		               portalish items/isPortalContent|nothing;
-					   global methodID python: folderish and 'folder_contents' or (portalish and 'view' or '');
-					   global icon items/getIcon|items/icon|nothing">
-           <input type="checkbox" name="ids:list" value="" id=""
-		          tal:attributes="value items/getId; id python: 'cb_' + items.getId()" />
-        </td>
-      <td>
-         <span tal:condition="icon">
-         <a href=""
-		    tal:attributes="href python: items.getId() + '/' + methodID">
-	     <img src="" alt="" border="0"
-		      tal:attributes="src python: here.portal_url() + '/' + icon;
-			                  alt items/Type|nothing"></a>
-		 </span>
-      </td>
-      <td>
-         <a href=""
-		    tal:attributes="href python: items.getId() + '/' + methodID"><span tal:replace="items/getId">ID</span>
-			<span tal:condition="items/Title" 
-			      tal:replace="python: '(' + items.Title() + ')'">(Title)</span></a>
-      </td>	  
-     </tr>
-  </table>
-	    
-  </tr>
-
-  
- 
- <tr>
-  <td align="left">
-     <span tal:define="p batch/previous" tal:condition="p">
-       <a href=""
-          tal:attributes="href string:folder_contents?b_start=${p/previous/first}">Previous Items</a>
-     </span>
-  </td>
-<td>&nbsp;</td>
-  <td align="left">
-   <span tal:define="n batch1/next|nothing" tal:condition="n">
-     <a href=""
-        tal:attributes="href string:folder_contents?b_start=${batch1/end}">Next Items</a>
-   </span>
-  </td>
- </tr>
-<!-- end cotentList -->
-</table>
-
-<TABLE BORDER="0" CELLSPACING="0" CELLPADDING=2>
-<TR>
-  <TD ALIGN="LEFT" VALIGN="TOP" WIDTH="16"></TD>
-  <TD ALIGN="LEFT" VALIGN="TOP">
-  <span tal:condition="python: here.portal_membership.checkPermission('Add portal content', here)">
-    <INPUT TYPE="SUBMIT" NAME="folder_factories:method" VALUE="New...">
-  </span>
-  <span tal:condition="python: here.portal_membership.checkPermission('View management screens', here)">
-    <INPUT TYPE="SUBMIT" NAME="folder_rename_form:method" VALUE="Rename">
-    <INPUT TYPE="SUBMIT" NAME="folder_cut:method" VALUE="Cut"> 
-    <INPUT TYPE="SUBMIT" NAME="folder_copy:method" VALUE="Copy">
-    <span tal:condition="here/cb_dataValid">
-    <INPUT TYPE="SUBMIT" NAME="folder_paste:method" VALUE="Paste">
-    </span>
-  </span>
-  <span tal:condition="python: here.portal_membership.checkPermission('Delete objects', here)">
-    <INPUT TYPE="SUBMIT" NAME="folder_delete:method" VALUE="Delete">
-  </span>
-  </TD>
-</TR>
-</TABLE>
-</table>
-</form>
-<span tal:replace="structure here/folder_filter_form">Filter Form Here</span>
-</div>
-</div>
-</body>
-</html>
-
diff --git a/product/CMFTranslation/skins/zpt_content18/full_metadata_edit_form.pt b/product/CMFTranslation/skins/zpt_content18/full_metadata_edit_form.pt
deleted file mode 100755
index c6bd15758a..0000000000
--- a/product/CMFTranslation/skins/zpt_content18/full_metadata_edit_form.pt
+++ /dev/null
@@ -1,149 +0,0 @@
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
-      xmlns:metal="http://xml.zope.org/namespaces/metal"
-      xmlns:i18n="http://xml.zope.org/namespaces/tal/i18n"
-      metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-<div class="Desktop">
-
-
-<span tal:replace="request/message"
-   tal:condition="request/message|nothing"><hr></span>
-
-
-<div class="Metadata">
-
-<h2 i18n:translate="">Resource Metadata </h2>
-
-<form action="metadata_edit" method="post"
-      tal:attributes="action string:${here/absolute_url}/metadata_edit"
->
-<table class="FormLayout">
- <tr>
-  <th i18n:translate="">
-    Enable Discussion?
-  </th>
-  <td colspan="3">
-    <select name="allowDiscussion"
-            tal:define="val here/isDiscussable">
-        <option value="None"
-                tal:attributes="selected python: val == None"> Default </option>
-        <option value="0"
-                tal:attributes="selected python: val == 0"> Off </option>
-        <option value="1"
-                tal:attributes="selected python: val == 1"> On </option>
-     </select>
-  </td>
- </tr>
- <tr valign="top">
-  <th align="right" i18n:translate=""> Identifier
-  </th>
-  <td colspan="3"> <span tal:replace="here/Identifier"></span>
-  </td>
- </tr>
- <tr valign="top">
-  <th align="right" i18n:translate=""> Title
-  </th>
-  <td colspan="3">
-   <input type="text"
-          name="title"
-          value=""
-          size="65"
-		  tal:attributes="value here/Title">
-  </td>
- </tr>
- <tr valign="top">
-  <th align="right" i18n:translate=""> Description
-  </th>
-  <td colspan="3">
-   <textarea name="description:text" rows="5"
-             cols="65" wrap="soft"
-			 tal:content="here/Description"></textarea>
-  </td>
- </tr>
-
- <tr valign="top">
-  <th align="right" i18n:translate=""> Subject </th>
-  <td>
-   <textarea name="subject:lines" rows="3"
-               cols="20" wrap="soft"
-			   tal:define="lines here/subjectsList"><span tal:repeat="line lines" tal:replace="line"></span></textarea>
- <br>
-   <select name="subject:list" multiple>
-     <option value=""
-		   tal:define="items python: here.portal_metadata.listAllowedSubjects(here); subjects here/Subject"
-		   tal:repeat="item items"
-		   tal:attributes="value item; selected python: item in subjects"
-		   tal:content="item">
-      </option>
-    </select>
-  </td>
-  <th align="right" i18n:translate=""> Contributors </th>
-  <td>
-   <textarea name="contributors:lines" rows="5"
-             cols="30" wrap="soft"
-			 tal:define="items here/Contributors"
-			 tal:repeat="item items"
-			 tal:content="item"></textarea>
-  </td>
- </tr>
- <tr valign="top">
-  <th align="right" i18n:translate=""> Creation Date
-  </th>
-  <td> <span tal:replace="here/CreationDate"></span>
-  </td>
-  <th align="right" i18n:translate=""> Last Modified Date
-  </th>
-  <td> <span tal:replace="here/ModificationDate"></span>
-  </td>
- </tr>
- <tr valign="top">
-  <th align="right" i18n:translate=""> Effective Date
-  </th>
-  <td> <input type="text" name="effective_date"
-                          value=""
-						  tal:define="effectiveString python: here.effective_date and here.effective_date.ISO() or 'None'"
-						  tal:attributes="value effectiveString">
-  </td>
-  <th align="right" i18n:translate=""> Expiration Date
-  </th>
-  <td> <input type="text" name="expiration_date"
-                          value=""
-						  tal:define="expirationString python: here.expiration_date and here.expiration_date.ISO() or 'None'"
-						  tal:attributes="value expirationString">
-  </td>
- </tr>
- <tr valign="top">
-  <th align="right" i18n:translate=""> Format
-  </th>
-  <td> <input type="text" name="format" value=""
-  		tal:attributes="value here/Format">
-  </td>
- </tr>
- <tr valign="top">
-  <th align="right" i18n:translate=""> Language
-  </th>
-  <td> <input type="text" name="language" value=""
-  		tal:attributes="value here/Language">
-  </td>
- </tr>
- <tr valign="top">
-  <th align="right" i18n:translate=""> Rights
-  </th>
-  <td> <input type="text" name="rights" value=""
-        tal:attributes="value here/Rights">
-  </td>
- </tr>
- <tr valign="top">
-  <td> <br> </td>
-  <td>
-   <input type="submit" value=" Change ">
-  </td>
- </tr>
-</table>
-</form>
-</div>
-</div>
-</div>
-</body>
-</html>
diff --git a/product/CMFTranslation/skins/zpt_content18/image18_view.pt b/product/CMFTranslation/skins/zpt_content18/image18_view.pt
deleted file mode 100755
index 5974b4a74e..0000000000
--- a/product/CMFTranslation/skins/zpt_content18/image18_view.pt
+++ /dev/null
@@ -1,35 +0,0 @@
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
-      xmlns:metal="http://xml.zope.org/namespaces/metal"
-      metal:use-macro="here/main_template/macros/master">
-    <metal:block fill-slot="base">
-           <base href=""
-                 tal:attributes="href python: here.absolute_url() + '/'">
-    </metal:block>
-<body>
-
-<div metal:fill-slot="header">
-
-  <h1 id="DesktopTitle"
-      tal:content="here/Title">Document Title</h1>
-
-  <div id="DesktopDescription" tal:content="here/Description">
-      Document Description goes here.
-  </div>
-
-  <div metal:use-macro="here/content_byline/macros/byline">By Me</div>
-
-</div>
-
-<div metal:fill-slot="main">
-
- <span tal:replace="structure here/tag">Tag</span>
-
- <div class="Discussion">
- <span tal:replace="structure here/viewThreadsAtBottom"
-          tal:condition="here/viewThreadsAtBottom|nothing"></span>
- </div>
-
-</div>
-
-</body>
-</html>
diff --git a/product/CMFTranslation/skins/zpt_content18/link18_view.pt b/product/CMFTranslation/skins/zpt_content18/link18_view.pt
deleted file mode 100755
index 0c5f817d1d..0000000000
--- a/product/CMFTranslation/skins/zpt_content18/link18_view.pt
+++ /dev/null
@@ -1,38 +0,0 @@
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
-      xmlns:metal="http://xml.zope.org/namespaces/metal"
-      metal:use-macro="here/main_template/macros/master">
-    <metal:block fill-slot="base">
-            <base href=""
-                  tal:attributes="href python: here.absolute_url() + '/'">
-    </metal:block>
-<body>
-
-<div metal:fill-slot="header">
-
-  <h1 id="DesktopTitle"
-      tal:content="here/Title">Document Title</h1>
-
-  <div id="DesktopDescription" tal:content="here/Description">
-      Document Description goes here.
-  </div>
-
-  <div metal:use-macro="here/content_byline/macros/byline">By Me</div>
-
-</div>
-
-<div metal:fill-slot="main">
-
- <p> Link: <a href=""
-              tal:attributes="href here/remote_url"
-              tal:content="here/remote_url"
-           >http://www.zope.org</a></p>
-
- <div class="Discussion">
-    <span tal:replace="structure here/viewThreadsAtBottom"
-          tal:condition="here/viewThreadsAtBottom|nothing"></span>
- </div>
-
-</div>
-
-</body>
-</html>
diff --git a/product/CMFTranslation/skins/zpt_content18/newsitem18_view.pt b/product/CMFTranslation/skins/zpt_content18/newsitem18_view.pt
deleted file mode 100755
index 2cd620f0b4..0000000000
--- a/product/CMFTranslation/skins/zpt_content18/newsitem18_view.pt
+++ /dev/null
@@ -1,35 +0,0 @@
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
-      xmlns:metal="http://xml.zope.org/namespaces/metal"
-      metal:use-macro="here/main_template/macros/master">
-    <metal:block fill-slot="base">
-            <base href=""
-                  tal:attributes="href python: here.absolute_url() + '/'">
-    </metal:block>
-<body>
-
-<div metal:fill-slot="header">
-
-  <h1 id="DesktopTitle"
-      tal:content="here/Title">Document Title</h1>
-
-  <div id="DesktopDescription" tal:content="here/Description">
-      Document Description goes here.
-  </div>
-
-  <div metal:use-macro="here/content_byline/macros/byline">By Me</div>
-
-</div>
-
-<div metal:fill-slot="main">
-
- <div tal:replace="structure here/CookedBody">Body</div>
-
- <div class="Discussion">
-  <span tal:replace="structure here/viewThreadsAtBottom"
-           tal:condition="here/viewThreadsAtBottom|nothing"></span>
- </div>
-
-</div>
-
-</body>
-</html>
diff --git a/product/CMFTranslation/skins/zpt_content18/translation_template.pt b/product/CMFTranslation/skins/zpt_content18/translation_template.pt
deleted file mode 100755
index be39ede925..0000000000
--- a/product/CMFTranslation/skins/zpt_content18/translation_template.pt
+++ /dev/null
@@ -1,68 +0,0 @@
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
-      xmlns:metal="http://xml.zope.org/namespaces/metal"
-      metal:use-macro="here/main_template/macros/master">
-    <metal:block fill-slot="base">
-        <base href=""
-              tal:attributes="href python: here.absolute_url() + '/'">
-    </metal:block>
-<body>
-
-
-<div metal:fill-slot="header">
-
-  <h1 id="DesktopTitle"
-      tal:content="here/Title">Document Title</h1>
-
-  <div id="DesktopDescription" tal:content="here/Description">
-      Document Description goes here.
-  </div>
-
-  <div metal:use-macro="here/content_byline/macros/byline">By Me</div>
-
-</div>
-
-<div metal:fill-slot="main">
-
-<h2> File Properties </h2>
-
- <table>
-
-  <tr>
-   <th align="right">Filename</th>
-   <td tal:content="here/getId">My ID</td>
-  </tr>
-
-  <tr>
-   <th align="right">Size</th>
-   <td tal:content="here/size">1024K</td>
-  </tr>
-  
-  <tr>
-   <th align="right">Content-type</th>
-   <td tal:content="here/content_type">application/gzip</td>
-  <tr>
-
-  <tr>
-   <td> <br> </td>
-   <td> 
-   </td>
-  </tr>
- </table>
-
-<h2> Download File </h2>
-
-<p> <a href="." title="Download File"
-           tal:define="file here/absolute_url/TranslationTemplate"
-           tal:attributes="href file; title here/Title"
-           tal:content="string:Download ${here/Title}">Download File</a>
-</p>
-
- <div class="Discussion">
-    <span tal:replace="structure here/viewThreadsAtBottom"
-          tal:condition="here/viewThreadsAtBottom|nothing"></span>
- </div>
-
-</div>
-
-</body>
-</html>
diff --git a/product/CMFTranslation/skins/zpt_nexedi/actions_box.pt b/product/CMFTranslation/skins/zpt_nexedi/actions_box.pt
deleted file mode 100755
index 23586624ea..0000000000
--- a/product/CMFTranslation/skins/zpt_nexedi/actions_box.pt
+++ /dev/null
@@ -1,64 +0,0 @@
-<div metal:define-macro="actions">
-<div tal:define="isAnon python:here.portal_membership.isAnonymousUser();
-                  AuthClass python:isAnon and 'GuestActions' or 'MemberActions';
-				  uname python: isAnon and 'Guest' or here.portal_membership.getAuthenticatedMember().getUserName();
-				  actions python:here.portal_actions.listFilteredActionsFor(here);
-				  user_actions python:actions['user'];
-				  folder_actions python:actions['folder'];
-				  object_actions python:(actions['object'] + actions['workflow']);
-				  global_actions python:actions['global']">
-<table class="ActionBox" width="100%">
- <tbody tal:condition="object_actions">
-  <tr class="" tal:attributes="class AuthClass">
-   <td class="ActionTitle">
-    <img src="http://www.somewhere.org/p_/User_icon" align="left" alt="User"
-         tal:attributes="src string:${here/portal_url}/p_/User_icon"
-         >
-     <span tal:content="uname">user name</span>
-   </td>
-  </tr>
-  <tr class="" tal:attributes="class AuthClass">
-   <td>
-    <span tal:repeat="action user_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action</a><br></span>
-   </td>
-  </tr>
- <tr class=""
-     tal:attributes="class AuthClass">
-  <td class="ActionTitle"
-      tal:define="getIcon python:hasattr(here, 'getIcon') and here.getIcon();
-	              icon python:getIcon or getattr(here, 'icon', '');
-				  typ python:getattr(here, 'Type', '');
-				  objID python:here.getId()">
-     <img src=""
-	      tal:condition="icon" align="left" alt="Type"
-		  tal:attributes="src python:'%s/%s' % (here.portal_url(), icon); alt typ" />
-     <span tal:replace="structure python: here.truncID(objID, size=15)">ObjectID</span>
-  </td>
- </tr>
- <tr class=""
-     tal:attributes="class AuthClass">
-  <td tal:define="review_state python:here.portal_workflow.getInfoFor(here, 'review_state', '')">
-    <span tal:condition="review_state">Status:  <span tal:replace="review_state">Private</span><br></span>
-    <span tal:repeat="action object_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action</a><br></span>
-  </td>
- </tr>
- <tr class=""
-     tal:attributes="class AuthClass"
-	 tal:condition="folder_actions">
-  <td>
-    <span tal:repeat="action folder_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action</a><br></span>
-  </td>
- </tr>
- <tr class=""
-     tal:attributes="class AuthClass"
-	 tal:condition="global_actions">
-  <td>
-   <span tal:repeat="action global_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action</a><br></span>
-
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-</div>
-
diff --git a/product/CMFTranslation/skins/zpt_nexedi/folder18_view.pt b/product/CMFTranslation/skins/zpt_nexedi/folder18_view.pt
deleted file mode 100755
index 8697f30996..0000000000
--- a/product/CMFTranslation/skins/zpt_nexedi/folder18_view.pt
+++ /dev/null
@@ -1,51 +0,0 @@
-<span tal:condition="python:'index.html' in here.objectIds()"
-      tal:replace="here/index.html" />
-<span tal:condition="python:'index.stx' in here.objectIds()"
-      tal:replace="here/index.stx" />
-<span tal:condition="python:'default.htm' in here.objectIds()"
-      tal:replace="here/default.htm" />
-<html metal:use-macro="here/main_template/macros/master"
-      tal:condition="python:'default.htm' not in here.objectIds() and
-                            'index.html' not in here.objectIds() and
-                            'index.stx' not in here.objectIds()">
-  <head>
-    <title tal:content="template/title">The title</title>
-  </head>
-  <body>
-   <div metal:fill-slot="main"
-        tal:define="folder_url python:here.local_absolute_url()">
-    <div class="Document">
-      <p tal:condition="here/Description" tal:content="here/TranslatedDescription"/>
-      <div tal:define="auth_filter nocall: modules/ZTUtils/LazyFilter;
-                      default_types python:(  'Document'
-                                            , 'Image'
-                                            , 'File'
-                                            , 'FAQ'
-                                            , 'News Item'
-                                            , 'Folder'
-                                            );
-                      types types | here/show_content_types | default_types;
-                      raw_items python: here.contentValues(
-                                        filter={'portal_type': types } );
-                      items python: auth_filter( raw_items, skip='View' );
-                      ">
-        <div tal:condition="items">
-          <span tal:repeat="item items">
-            <h1><a href="item_url" tal:attributes="href item/local_absolute_url"><img
-              valign="middle" border="0"
-              tal:attributes="src   string:${item/portal_url}/${item/getIcon};
-                              alt   string:${item/Type};
-                              title string:${item/Type}"></a>
-            <a href="item_url" tal:attributes="href item/local_absolute_url"
-              tal:content="item/TranslatedTitle"> Title </a></h1>
-            <p tal:condition="exists: item/Description"
-                        tal:content="item/TranslatedDescription">
-              Description <!--fmt="structured-text'-->
-            </p>
-          </span>
-        </div>
-      </div>
-    </div>
-   </div>
-  </body>
-</html>
\ No newline at end of file
diff --git a/product/CMFTranslation/skins/zpt_nexedi/main_template.pt b/product/CMFTranslation/skins/zpt_nexedi/main_template.pt
deleted file mode 100755
index 937d471559..0000000000
--- a/product/CMFTranslation/skins/zpt_nexedi/main_template.pt
+++ /dev/null
@@ -1,161 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "DTD/xhtml1-strict.dtd">
-<?xml-stylesheet href="default_stylesheet" rel="stylesheet" type="text/css"?>
-
-<span tal:replace="nothing">
-<!--
-Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-          Thierry Faucher   <tf@nexedi.com>
-          Jean-Paul Smets   <jp@nexedi.com>
-
-This program is Free Software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
--->
-</span>
-
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en"
-   xml:lang="en"
-   xmlns:tal="http://xml.zope.org/namespaces/tal"
-   xmlns:metal="http://xml.zope.org/namespaces/metal"
-   xmlns:i18n="http://xml.zope.org/namespaces/tal/i18n"
-   metal:define-macro="master"
-   tal:define="lang python:here.gettext.get_selected_language();
-       affiliate_path here/AFFILIATE_PATH | string:;
-       site_url here/portal_url;
-       site_url string:$site_url/$lang/$affiliate_path;
-       is_anonymous python:here.portal_membership.isAnonymousUser();
-       is_member python:not is_anonymous;
-       is_manager python:
-           here.portal_membership.getAuthenticatedMember().has_role('Manager') or here.portal_membership.getAuthenticatedMember().has_role('Partner');
-       is_member python:is_manager or is_member;
-       show_menu here/show_menu | nothing;
-       show_menu python:show_menu or is_manager;
-       col_num python:3 - show_menu;
-       portal_object python:here.portal_url.getPortalObject();
-       HTML_CHARSET here/HTML_CHARSET | nothing">
-
-<!-- HTML Header -->
-<head>
-  <title tal:content="here/getTranslatedTitle">
-     ERP5 Community: Download ERP5
-  </title>
-  <link rel="stylesheet" href="http://www.erp5.org/default_stylesheet" type="text/css" />
-  <META tal:condition="HTML_CHARSET" http-equiv="Content-Type" content=""
-    tal:attributes="content HTML_CHARSET" />
-  <META tal:condition="python: HTML_CHARSET is None" http-equiv="Content-Type"
-    content="text/html; charset=iso-8859-1"/>
-</head>
-
-
-<body font="#000000">
-
-<span tal:condition="HTML_CHARSET">
-  <span tal:condition="python:HTML_CHARSET == 'text/html; charset=utf-8'"
-        tal:define="dummy python:request.RESPONSE.setHeader('Content-Type',HTML_CHARSET)"/>
-</span>
-
-
-<!-- Top Bar: Global links and search -->
-<span tal:replace="structure here/standard_top_bar"/>
-
-<!-- Main Page -->
-<table cellspacing="0" cellpadding="0" width="100%" border="0">
-  <tbody>
-    <tr>
-      <!-- Logo -->
-      <td colspan="2" rowspan="2" class="LogoBox" valign="top">
-        <div class="LogoBox">
-          <a href="http://www.erp5.org" tal:attributes="href site_url">
-            <img src="http://www.erp5.org/logo.png" border="0"
-                 tal:attributes="src string:$site_url/logo.png" />
-          </a>
-        </div>
-      </td>
-      <!-- Title and Language -->
-      <td width="90%" class="TitleBox" tal:content="here/getTranslatedTitle">
-          Download ERP5
-      </td>
-    </tr>
-    <tr class="LanguageBox">
-      <td class="LanguageBox">
-        <span tal:condition="here/show_language_selector"
-              tal:replace="structure here/language_selector"/>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<table cellspacing="0" cellpadding="0" width="100%" border="0">
-  <tbody>
-    <tr>
-      <td valign="top" width="150"
-          tal:condition="show_menu">
-            <!-- Optional Action Box-->
-            <div class="ActionBox" tal:content="structure here/actions_box"
-                                   tal:condition="is_member"  />
-            <!-- Main menu -->
-            <span tal:replace="structure here/menu_box"/>
-
-            <!-- Quick Login -->
-            <span tal:replace="structure here/quick_login"
-                  tal:condition="here/show_quicklogin" />
-       </td>
-
-       <!-- Main Box -->
-       <td colspan="2" valign="top" class="Desktop"
-           tal:attributes="colspan col_num">
-
-
-          <!-- Main Box -->
-          <div class="Desktop">
-          </div>
-
-          <!-- Breadcrumb -->
-          <div class="breadcrumb" tal:condition="here/show_breadcrumb"
-               tal:content="structure here/breadcrumb" />
-
-          <!-- Desktop Header -->
-          <div class="Desktop">
-            <p class="DesktopStatusBar" tal:condition="request/portal_status_message | nothing"
-               tal:content="python:here.gettext(request.portal_status_message)">Message</p>
-
-            <span tal:condition="here/localHeader | nothing"
-                  tal:replace="structure here/localHeader" />
-          </div>
-
-          <!-- Document -->
-          <div class="Document" metal:define-slot="main">
-            <p>The document</p>
-          </div>
-
-          <!-- Desktop Footer -->
-          <div class="Desktop">
-            <span tal:condition="here/localFooter | nothing"
-                  tal:replace="structure here/localFooter"/>
-          </div>
-      </td>
-    </tr>
-  </tbody>
-</table>
-
-<!-- Legalese -->
-<div class="legalinfo" tal:content="structure here/legal_footer">
-  <p>(c) ERP5 Community <br />
-  Content published under <a href="http://www.gpdl.org">GPDL</a> </p>
-</div>
-
-<!-- End -->
-  </body>
-</html>
-
-
diff --git a/product/CMFTranslation/skins/zpt_nexedi/navigation_box.pt b/product/CMFTranslation/skins/zpt_nexedi/navigation_box.pt
deleted file mode 100755
index 143e8994d3..0000000000
--- a/product/CMFTranslation/skins/zpt_nexedi/navigation_box.pt
+++ /dev/null
@@ -1,63 +0,0 @@
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
-   xmlns:metal="http://xml.zope.org/namespaces/metal"
-   xmlns:i18n="http://xml.zope.org/namespaces/tal/i18n">
-<body>
-
-
-<!-- Top navigation bar: access to partner sites, sitemap and search features -->
-<table class="tophead" width="100%" metal:define-macro="navigation_box">
- <form action="search" method="POST"
-     tal:attributes="action string:${here/portal_url}/search">
-  <tr>
-   <td align="left" nowrap valign="middle">
-    &nbsp;&nbsp;
-    <!-- List all partner sites as define in partner_sites portal property -->
-    <span tal:repeat="partner here/partner_sites">
-    <a class="topbanner" href="http://partner.com"
-         tal:attributes="href string:http:///${partner}"
-         tal:content="partner">partner.com</a>&nbsp;|&nbsp;
-    </span>
-   </td>
-   <td align="right" nowrap valign="middle" width="90%">
-    <!-- Add a sitemap link according to show_sitemap portal property -->
-    <span tal:condition="here/show_sitemap|nothing">
-     <a class="topbanner" href="sitemap.html"
-       tal:attributes="href string:${here/portal_url}/sitemap.html">Site Map</a>&nbsp;|&nbsp;
-    </span>
-    <!-- Add a search link according to show_search portal property -->
-    <span tal:condition="here/show_search">
-     <a class="topbanner" href="search_form"
-       tal:attributes="href string:${here/portal_url}/search_form">Search</a>
-    </span>
-   </td>
-   <td align="right" nowrap valign="middle">
-    <!-- Add an extra menu like in storever.com according to special_top_menu portal property -->
-    <span tal:condition="here/special_top_menu|nothing">
-     <!-- <dtml-var special_top_menu> -->
-    </span>
-    <!-- Add a search pop-up according to show_multisearch portal property -->
-    <span tal:condition="here/show_multisearch|nothing">
-     <font size="-2">
-     <select name="site" class="osdn-search">
-      <option tal:repeat="partner here/partner_sites"
-              value="partner"
-              tal:content="partner"
-              tal:attributes="value partner">Partner</option>
-     </select>
-     </font>
-    </span>
-    <!-- Add a search area according to show_search portal property -->
-    <span tal:condition="here/show_search|nothing">
-     <font size="-2">
-      <input type="text" size="12" name="SearchableText" class="tophead-search" />&nbsp;<input type="submit" value="Go" />
-     </font>
-    </span>
-   </td>
-  </tr>
- </form>
-</table>
-
-
-
-</body>
-</html>
diff --git a/product/CMFTranslation/skins/zpt_nexedi/newsitem18_view.pt b/product/CMFTranslation/skins/zpt_nexedi/newsitem18_view.pt
deleted file mode 100755
index f9ec2ca4f4..0000000000
--- a/product/CMFTranslation/skins/zpt_nexedi/newsitem18_view.pt
+++ /dev/null
@@ -1,38 +0,0 @@
-<html metal:use-macro="here/main_template/macros/master">
-  <head>
-    <title tal:content="template/title">The title</title>
-  </head>
-  <body>
-   <div metal:fill-slot="main">
-   <div class="Document">
-
-    <p i18n:translate="">For Immediate Release</p>
-
-    <p><b tal:content="here/effective_date">A date of publication</b> - <b
-        tal:content="structure here/TranslatedDescription"
-        >Description of the news</b></p>
-
-    <span tal:replace="structure here/TranslatedBody" />
-
-    <h1 i18n:translate="">Permanent URL for this Press Release</h1>
-
-    <p tal:content="here/absolute_url">The URL of this news</p>
-
-    <h1><span i18n:translate="">About</span> <span
-        tal:replace="python: here.portal_properties.Title()" /></h1>
-
-    <p tal:content="structure here/news_plate" i18n:translate="">News bowlerplate</p>
-
-   </div>
-
-   <div class="ContentBy"
-     tal:content="structure here/content_byline"
-     tal:condition="python: not here.portal_membership.isAnonymousUser()"
-     >This document is writen by M. X</div>
-
-
-   <div class="Discussion" tal:content="structure here/viewThreadsAtBottom">The
-       discussion</div>
-   </div>
-  </body>
-</html>
diff --git a/product/CMFTranslation/spec/Base18.spec b/product/CMFTranslation/spec/Base18.spec
deleted file mode 100755
index 9f1c8a1a63..0000000000
--- a/product/CMFTranslation/spec/Base18.spec
+++ /dev/null
@@ -1,141 +0,0 @@
-# File: Base18.spec
-#
-# Base18
-#
-#   "Base18 is a Zope product to implement multilingual portals
-#    based on the Zope CMF"
-#
-# This product currently packages the code 
-
-
-%define PRODUCT_DIRECTORY /var/lib/zope/Products
-%define USER  jp
-
-Name:               Base18
-Summary:            A Zope product to implement multilingual portals with CMF
-Version:            0.2.0
-Release:            10nxd
-Group:              Development/Python
-Requires:           Zope Localizer CMF
-Copyright:          GPL
-Vendor:             Nexedi
-URL:                http://www.erp5.org
-Packager:           Jean-Paul Smets <jp@nexedi.com>
-BuildRoot:          /var/tmp/%{name}-%{version}-rootdir
-
-Source0: http://www.erp5.org/download/%{name}-%{version}.tar.bz2
-Source1: %{name}-%{version}.tar.bz2
-
-#----------------------------------------------------------------------
-%description
-Base18 is a Zope product to implement multilingual portals
-It extends the Zope CMF by allowing documents to be split into
-a list of paragraphs which can be translated through a message catalog.
-Thanks to Localizer, messages are stored in message catalogs which
-can be exported and imported as gettext files. This allows to use
-applications such as KBabel to search for previous translations of
-a give sentence.
-
-http://www.erp5.org
-
-#----------------------------------------------------------------------
-%prep
-
-#Create the source code from the local Zope
-rm -rf /home/%{USER}/rpm/BUILD/%{name}-%{version}
-cp -ur %{PRODUCT_DIRECTORY}/%{name} /home/%{USER}/rpm/BUILD/%{name}-%{version}
-cd /home/%{USER}/rpm/BUILD/
-tar cjf /home/%{USER}/rpm/SOURCES/%{name}-%{version}.tar.bz2 %{name}-%{version}
-rm -rf /home/%{USER}/rpm/BUILD/%{name}-%{version}
-
-rm -rf $RPM_BUILD_ROOT
-%setup -a 1
-
-#----------------------------------------------------------------------
-%build
-
-#----------------------------------------------------------------------
-%install
-
-install -d $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}
-install %{name}-%{version}/*.py $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}
-install %{name}-%{version}/*.txt $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}
-install %{name}-%{version}/*.png $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}
-install %{name}-%{version}/*.zexp $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}
-
-install -d $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/help
-install %{name}-%{version}/help/*.stx $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/help
-
-install -d $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/dtml
-install %{name}-%{version}/dtml/*.dtml $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/dtml
-
-install -d $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi
-install %{name}-%{version}/skins/nexedi/*.py $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi
-install %{name}-%{version}/skins/nexedi/*.pt $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi
-install %{name}-%{version}/skins/nexedi/*.dtml $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi
-install %{name}-%{version}/skins/nexedi/*.props $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi
-install %{name}-%{version}/skins/nexedi/*.png $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi
-install %{name}-%{version}/skins/nexedi/*.ico $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi
-
-install -d $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/content18
-install %{name}-%{version}/skins/content18/*.py $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/content18
-install %{name}-%{version}/skins/content18/*.dtml $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/content18
-
-install -d $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/zpt_nexedi
-install %{name}-%{version}/skins/zpt_nexedi/*.pt $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/zpt_nexedi
-
-install -d $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/zpt_content18
-install %{name}-%{version}/skins/zpt_content18/*.pt $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/skins/zpt_content18
-
-install -d $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/interfaces
-install %{name}-%{version}/interfaces/*.py $RPM_BUILD_ROOT/usr/lib/zope/lib/python/Products/%{name}/interfaces
-
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-#----------------------------------------------------------------------
-%files
-%defattr(-,root,root,0755)
-%doc README.txt INSTALL.txt CREDITS.txt GPL.txt ZPL.txt
-
-/usr/lib/zope/lib/python/Products/%{name}/*.py
-/usr/lib/zope/lib/python/Products/%{name}/interfaces/*.py
-/usr/lib/zope/lib/python/Products/%{name}/*.txt
-/usr/lib/zope/lib/python/Products/%{name}/*.png
-/usr/lib/zope/lib/python/Products/%{name}/*.zexp
-/usr/lib/zope/lib/python/Products/%{name}/help/*.stx
-/usr/lib/zope/lib/python/Products/%{name}/dtml/*.dtml
-/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi/*.dtml
-/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi/*.py
-/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi/*.pt
-/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi/*.png
-/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi/*.props
-/usr/lib/zope/lib/python/Products/%{name}/skins/nexedi/*.ico
-/usr/lib/zope/lib/python/Products/%{name}/skins/content18/*.dtml
-/usr/lib/zope/lib/python/Products/%{name}/skins/content18/*.py
-/usr/lib/zope/lib/python/Products/%{name}/skins/zpt_nexedi/*.pt
-/usr/lib/zope/lib/python/Products/%{name}/skins/zpt_content18/*.pt
-
-#----------------------------------------------------------------------
-%changelog
-* Tue Feb 4 2003 Jean-Paul Smets <jp@nexedi.com> 0.8.1-10nxd
-- Updated description
-
-* Thu Jan 30 2003 Jean-Paul Smets <jp@nexedi.com> 0.8.1-9nxd
-- Missing interfaces
-
-* Tue Jan 21 2003 Jean-Paul Smets <jp@nexedi.com> 0.8.1-8nxd
-- Missing menu_box
-
-* Wed Jan 8 2003 Jean-Paul Smets <jp@nexedi.com> 0.8.1-7nxd
-- Fixed again missing skins
-
-* Wed Jan 8 2003 Jean-Paul Smets <jp@nexedi.com> 0.8.1-6nxd
-- Fixed again missing skins
-
-* Wed Jan 8 2003 Jean-Paul Smets <jp@nexedi.com> 0.8.1-5nxd
-- Code update for latest CMF - recover from crash
-
-* Sat Oct 12 2002 Jean-Paul Smets <jp@nexedi.com> 0.8.1-1nxd
-- Initial release
diff --git a/product/CMFTranslation/tool.png b/product/CMFTranslation/tool.png
deleted file mode 100755
index ab2c1f5a76622765a48e8f9cc516398b9a3a4213..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 286
zcmeAS@N?&q;$mQ6;PUiv2?EjrAk4xHB;VeB1QIX^@CkAK|Nnnj+RjzGKYD~rjLSPX
zXYE_xxFwhG|H`aARnc|R(z$5YiLcInb%r)6K$WdC?rq=6IvuE&u_VYZn8D%MjWi%f
zti&~<Bsf2<q&%@Gl_5Pd&8Q$RUBO7tM9*k(oI4*(g>!yxZfaf$gKuI=szP~YNrr;E
zr*A-As_ayt3YK(Fw{#%QRTKF(7)X11x;TbZ%t=mgVEn@r(6)(rieT6W*+UoJ$8aUq
z*kv;;i{y8nx<a<$!kf5&#!0LKb(!Kbo|X0NVKA(%^knck&(3i+g=e#r5;Mb<ZG2|?
TS&viz4Q23j^>bP0l+XkKkPl_d

diff --git a/product/CMFTranslation/translation_workflow.zexp b/product/CMFTranslation/translation_workflow.zexp
deleted file mode 100755
index 8d4f79b760216c8ca6b7366be07a36178db3b664..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 8295
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
J!hg5?{Rc&Vm0kb<

diff --git a/product/CMFTranslation/utils.py b/product/CMFTranslation/utils.py
deleted file mode 100755
index 2fed5d6343..0000000000
--- a/product/CMFTranslation/utils.py
+++ /dev/null
@@ -1,142 +0,0 @@
-##############################################################################
-#
-# Base18: a Zope product which provides multilingual services for CMF Default
-#         documents.
-#
-# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
-#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-#
-# This program as such is not intended to be used by end users. End
-# users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the Zope Public License (ZPL) Version 2.0
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-__version__ = "$Revision$"[11:-2]
-__doc__ = "This product provides the basic behaviour to CMF object which need\
- translation"
-
-"""
-    Utility functions for translation
-"""
-
-import os
-from Products.CMFDefault.utils import _dtmldir, StrippingParser
-from Globals import package_home
-from zLOG import LOG
-
-#
-#   DTML Directory for ZMI
-#
-
-_dtmldir = os.path.join( package_home( globals() ), 'dtml' )
-
-
-##############################################################################
-#
-#  Text Translation
-#
-##############################################################################
-           
-def indent(txt, level):
-    indented_text = []
-    for l in txt.split('\n'):
-      indented_text.append(level * ' ' + l)
-    return indented_text.join('\n') 
-
-def unIndent(txt):
-    """
-        Counts the number of trailing white spaces
-    """
-    indent = 0    
-    for l in txt.split('\n'):
-      wc = len(l) - len(l.strip())
-      indent = min (wc, indent)
-    stripped_text = []
-    for l in txt.split('\n'):
-      stripped_text.append(l[indent:])
-    return indent, stripped_text.join('\n') 
-
-def _translate_txt( text, md, lang=None):
-    """
-        Render TXT to HTML and Translate.
-    """
-    translated_text = []
-    text_blocks = text.split('\n\n')
-    for block in text_blocks:
-      indent, stripped_text = unIndent(block)
-      translated_stripped_text = md.gettext(stripped_text, lang=lang)
-      translated_text.append(indent(translated_stripped_text, indent))
-    return translated_text.join('\n')
-
-##############################################################################
-#
-#  Structured Text Translation
-#
-##############################################################################
-           
-_translate_stx = _translate_txt
-    
-##############################################################################
-#
-#  HTML Translation
-#
-##############################################################################
-           
-class TranslatingParser(StrippingParser):
-    
-    def handle_data( self, data ):
-
-        if data:
-            # encoding should be improved
-            #if type(self.result) != type(u'a'): self.result = unicode(self.result, 'iso-8859-15')            
-            #LOG('result', 0, self.result)            
-            start_space = data[0] == ' '
-            end_space = data[-1] == ' '
-            LOG('data', 0, 'x%sx' % data)
-            translated_text = self.md.gettext(data, lang=self.lang)
-            LOG('translated_text', 0, 'x%sx' % translated_text)
-            if type(translated_text) is type(u'a'):
-              #LOG('data', 0, translated_text.encode('iso-8859-15'))
-              translated_text = translated_text.encode('iso-8859-15')
-            translated_text = start_space * ' ' + translated_text  + end_space * ' '              
-            self.result = self.result + translated_text
-            
-                
-    
-def _translate_html( text, md, level=1 , lang=None):
-    """
-        Render HTML to HTML and Translate
-        Must be updated later
-    """
-    if callable(text): text = text()
-    parser = TranslatingParser()
-    parser.md = md
-    parser.lang = lang
-    parser.feed( text )
-    parser.close()
-    return parser.result
-    
-    
-    st = StructuredText.Basic( text )   # Creates the basic DOM
-    if not st:                          # If it's an empty object
-        return ""                       # return now or have errors!
-
-    doc = DocumentWithImages( st )
-    html = Base18HtmlWithImages( doc, md, lang, level )
-    return html
-
-
-    
\ No newline at end of file
-- 
2.30.9