source: trunk/skins/lemill/wysiwym.pt @ 477

Revision 477, 8.7 KB checked in by tarmo, 13 years ago (diff)

Improvements and optimizations to i18n strings.
Closes #524, spent 2h.

  • Property svn:eol-style set to LF
Line 
1<html xmlns="http://www.w3.org/1999/xhtml"
2      xmlns:tal="http://xml.zope.org/namespaces/tal"
3      xmlns:metal="http://xml.zope.org/namespaces/metal"
4      xmlns:i18n="http://xml.zope.org/namespaces/i18n"
5      i18n:domain="lemill">
6
7  <head><title></title></head>
8
9  <body>
10
11    <!-- TextArea Widgets -->
12
13    <metal:view_macro define-macro="view" tal:define="WYSIWYMLines widget/WYSIWYMLines | nothing; ">
14        <tal:lines condition="WYSIWYMLines">
15            <ul>
16            <span tal:repeat="line accessor" tal:omit-tag="">
17                <li><p tal:replace="structure line" /></li>
18            </span>
19            </ul>
20        </tal:lines>
21        <tal:area condition="not:widget/WYSIWYMLines" tal:replace="structure accessor" />
22    </metal:view_macro>
23
24    <metal:define define-macro="area_edit">
25      <tal:define
26          define="base python:hasattr(value, 'isUnit');
27                  binary python:base and value.isBinary() or here.isBinary(fieldName);
28                  content python: not not base and value.getRaw() or value;
29                  content python: not binary and content or '';
30                  content_length python:len(content);
31                  append_only python: getattr(widget, 'append_only', None);
32                  WYSIWYMLines widget/WYSIWYMLines | nothing; ">
33
34        <textarea
35            tabindex="#"
36            tal:attributes="name fieldName;
37                            id fieldName;
38                            cols widget/cols;
39                            rows widget/rows;                           
40                            tabindex tabindex/next;
41                            "
42            tal:define="
43             content python:not append_only and content or '';
44             content python:test(WYSIWYMLines, '\n'.join(list(content)), content)"
45            tal:content="content">PLACEHOLDER</textarea>
46
47
48
49            <tal:lines condition="WYSIWYMLines">
50                <table class="guidelines">
51                    <tr>
52                        <th i18n:translate="label_to_get_this_effect" width="50%">To get this effect...</th>
53                        <th i18n:translate="label_type_this" width="50%">Type this...</th>
54                    </tr>
55           
56                    <tr>
57                        <td><a href="http://www.eun.org">EUN</a></td>
58                        <td>[http://www.eun.org EUN]</td>
59                    </tr>
60                    <tr>
61                        <td i18n:translate="text_write_links_to_separate_lines" colspan="2">Write links to separate lines</td>
62                    </tr>
63                </table>
64            </tal:lines>
65            <tal:area condition="not:WYSIWYMLines">           
66                <div id="show_guide">
67                <p i18n:translate="text_formatting_guide">LeMill uses simple syntax to format your text. Check the
68                <a i18n:name="guide" i18n:translate="heading_formatting_guide" href="javascript:show_div('guide');hide_div('show_guide');">Formatting guide</a> to easily make bold, italic, lists and more.</p>
69                </div>
70   
71                <div id="guide">
72                <p><strong i18n:translate="heading_formatting_guide">Formatting guide</strong> -
73                <a i18n:translate="link_close_this" href="javascript:hide_div('guide');show_div('show_guide');">Close this</a></p>
74   
75                <table class="guidelines">
76                    <tr>
77                        <th i18n:translate="label_to_get_this_effect" width="50%">To get this effect...</th>
78                        <th i18n:translate="label_type_this" width="50%">Type this...</th>
79                    </tr>
80                    <tr>
81                        <td><strong i18n:translate="text_bold_phrase">Bold phrase</strong></td>
82                        <td>*<tal:block i18n:translate="text_bold_phrase">Bold phrase</tal:block>*</td>
83                    </tr>
84                    <tr>
85                        <td><em i18n:translate="text_italic_phrase">Italic phrase</em></td>
86                        <td>_<tal:block i18n:translate="text_italic_phrase">Italic phrase</tal:block>_</td>
87                    </tr>
88                    <tr>
89                        <td>
90                            <ul>
91                                <li i18n:translate="text_bulleted_list">Bulleted list</li>
92                                <li i18n:translate="text_bulleted_list">Bulleted list</li>
93                            </ul>
94                        </td>
95                        <td>* <tal:block i18n:translate="text_bulleted_list">Bulleted list</tal:block><br />
96                        * <tal:block i18n:translate="text_bulleted_list">Bulleted list</tal:block></td>
97                    </tr>
98                    <tr>
99                        <td>
100                            <ol>
101                                <li i18n:translate="text_numbered_list">Numbered list</li>
102                                <li i18n:translate="text_numbered_list">Numbered list</li>
103                            </ol>
104                        </td>
105                        <td># <tal:block i18n:translate="text_numbered_list">Numbered list</tal:block><br />
106                        # <tal:block i18n:translate="text_numbered_list">Numbered list</tal:block></td>
107                    </tr>
108                    <tr>
109                        <td><a href="http://www.eun.org">EUN</a></td>
110                        <td>[http://www.eun.org EUN]</td>
111                    </tr>
112                </table>
113                </div>
114            </tal:area>           
115            <!-- WYSIWYM Editor -->
116
117            <fieldset tal:condition="append_only">
118              <legend i18n:translate="legend_history_of">HISTORY:
119                      <tal:block i18n:name="label" tal:content="widget/label"/>
120              </legend>
121              <span
122                    tal:condition="python:(content_length &lt; 333)"
123                    tal:content="structure accessor">content</span>
124                    <textarea readonly="readonly"
125                              tal:condition="python:(content_length &gt;= 333)"
126                              tal:content="content"
127                              tal:attributes="cols widget/cols;
128                                              rows widget/rows;">
129                      content
130                    </textarea>
131            </fieldset>
132
133      </tal:define>
134    </metal:define>
135
136    <metal:define define-macro="area_format">
137      <tal:define
138          define="field_text_format string:${fieldName}_text_format;
139                  contentType python:request.get(field_text_format, here.getContentType(fieldName));
140                  allowable_ct python:getattr(field, 'allowable_content_types', ());
141                  mimetypes python:[t for t in allowable_ct if t.startswith('text/')];
142                  contenttype python:hasattr(field, 'getContentType') and field.getContentType(here) or ''">
143
144        <tal:condition condition="python:len(mimetypes) &gt; 1">
145        <div style="text-align: right; margin-right: 0.75em;">
146          <label i18n:translate="label_format">Format</label>
147          <select tal:attributes="id string:${fieldName}_text_format;
148                                  name string:${fieldName}_text_format;
149                                  tabindex tabindex/next">
150            <option selected="selected"
151                    value=""
152                    tal:attributes="value contentType"
153                    tal:condition="python:contenttype not in mimetypes">
154              (no change)
155            </option>
156            <option tal:repeat="item mimetypes"
157                    tal:content="python:here.lookupMime(item)"
158                    tal:attributes="value item;
159                                    selected python:test(here.checkSelected(item, contenttype, contenttypes=1), 'selected', None);"
160                    />
161          </select>
162        </div>
163        </tal:condition>
164        <tal:condition condition="python:len(mimetypes) == 1">
165          <input type="hidden"
166                 name=""
167                 value=""
168                 tal:attributes="name field_text_format;
169                                 value python:mimetypes[0]"
170                 />
171        </tal:condition>
172      </tal:define>
173    </metal:define>
174
175    <metal:define define-macro="edit">
176       <metal:use use-macro="field_macro | here/widgets/field/macros/edit">
177        <metal:fill fill-slot="widget_body">
178          <metal:block use-macro="here/wysiwym/macros/area_edit" />
179          <metal:block use-macro="here/wysiwym/macros/area_format" />
180        </metal:fill>
181      </metal:use>
182    </metal:define>
183
184    <metal:define define-macro="search">
185      <metal:use use-macro="here/widgets/field/macros/edit">
186        <metal:fill fill-slot="widget_body">
187
188          <metal:block use-macro="here/wysiwym/macros/area_edit" />
189
190        </metal:fill>
191      </metal:use>
192    </metal:define>
193
194  </body>
195
196</html>
Note: See TracBrowser for help on using the repository browser.