Merge lp:~danilo/launchpad/bug-427843 into lp:launchpad

Proposed by Данило Шеган
Status: Merged
Approved by: Aaron Bentley
Approved revision: no longer in the source branch.
Merged at revision: not available
Proposed branch: lp:~danilo/launchpad/bug-427843
Merge into: lp:launchpad
Diff against target: None lines
To merge this branch: bzr merge lp:~danilo/launchpad/bug-427843
Reviewer Review Type Date Requested Status
Aaron Bentley (community) Approve
Review via email: mp+11697@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Данило Шеган (danilo) wrote :

= Bug #427843 =

This includes mechanical changes to convert distribution and
distroseries translations pages to 3.0.

All links from the navigation menus are moved inline.

= Demo & QA =

https://translations.launchpad.dev/ubuntu/
https://translations.launchpad.dev/ubuntu/hoary
https://translations.launchpad.dev/ubuntu/breezy-autotest

= Tests =

bin/test -vvt translation-import-queue-targets -t
'translations.*stories.distroseries' -t
'translations.*stories.distribution' -t stories.translationgroups

= Launchpad lint =

Checking for conflicts. and issues in doctests and templates.
Running jslint, xmllint, pyflakes, and pylint.
Using normal rules.

Linting changed files:
  lib/lp/translations/browser/configure.zcml
  lib/lp/translations/browser/distroseries.py

lib/lp/translations/stories/distribution/xx-distribution-change-language-pack-admins.txt

lib/lp/translations/stories/distribution/xx-distribution-translations.txt

lib/lp/translations/stories/distroseries/xx-distroseries-language-packs.txt
  lib/lp/translations/stories/distroseries/xx-distroseries-templates.txt

lib/lp/translations/stories/distroseries/xx-distroseries-translations.txt

lib/lp/translations/stories/importqueue/xx-translation-import-queue-targets.txt

lib/lp/translations/stories/translationgroups/10-distro-translation-group.txt
  lib/lp/translations/templates/distribution-language-pack-admin-info.pt
  lib/lp/translations/templates/distribution-translations.pt
  lib/lp/translations/templates/distroseries-translations.pt

Revision history for this message
Aaron Bentley (abentley) wrote :

Looks pretty straightforward.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/lp/translations/browser/configure.zcml'
--- lib/lp/translations/browser/configure.zcml 2009-09-11 10:55:54 +0000
+++ lib/lp/translations/browser/configure.zcml 2009-09-13 20:24:35 +0000
@@ -887,6 +887,13 @@
887 permission="launchpad.TranslationsAdmin"887 permission="launchpad.TranslationsAdmin"
888 template="../../app/templates/generic-edit.pt"888 template="../../app/templates/generic-edit.pt"
889 layer="canonical.launchpad.layers.TranslationsLayer"/>889 layer="canonical.launchpad.layers.TranslationsLayer"/>
890 <!-- Language pack admin portlet -->
891 <browser:page
892 name="+language-pack-admin-info"
893 for="lp.registry.interfaces.distribution.IDistribution"
894 permission="launchpad.View"
895 template="../templates/distribution-language-pack-admin-info.pt"
896 layer="canonical.launchpad.layers.TranslationsLayer"/>
890897
891<!-- DistroSeries -->898<!-- DistroSeries -->
892899
893900
=== modified file 'lib/lp/translations/browser/distroseries.py'
--- lib/lp/translations/browser/distroseries.py 2009-08-31 13:49:49 +0000
+++ lib/lp/translations/browser/distroseries.py 2009-09-13 20:24:35 +0000
@@ -248,6 +248,10 @@
248 def potemplates(self):248 def potemplates(self):
249 return list(self.context.getCurrentTranslationTemplates())249 return list(self.context.getCurrentTranslationTemplates())
250250
251 @property
252 def is_translation_focus(self):
253 """Is this DistroSeries the translation focus."""
254 return self.context.distribution.translation_focus == self.context
251255
252class DistroSeriesTranslationsMenu(NavigationMenu):256class DistroSeriesTranslationsMenu(NavigationMenu):
253257
254258
=== modified file 'lib/lp/translations/stories/distribution/xx-distribution-change-language-pack-admins.txt'
--- lib/lp/translations/stories/distribution/xx-distribution-change-language-pack-admins.txt 2009-08-13 19:03:36 +0000
+++ lib/lp/translations/stories/distribution/xx-distribution-change-language-pack-admins.txt 2009-09-14 13:47:28 +0000
@@ -7,7 +7,7 @@
77
8 >>> browser = setupBrowser(auth='Basic test@canonical.com:test')8 >>> browser = setupBrowser(auth='Basic test@canonical.com:test')
9 >>> browser.open('http://translations.launchpad.dev/ubuntu/')9 >>> browser.open('http://translations.launchpad.dev/ubuntu/')
10 >>> browser.getLink('Language pack admin')10 >>> browser.getLink('Set language pack administrator')
11 Traceback (most recent call last):11 Traceback (most recent call last):
12 ...12 ...
13 LinkNotFoundError13 LinkNotFoundError
@@ -22,7 +22,7 @@
2222
23 >>> browser = setupBrowser(auth='Basic mark@example.com:test')23 >>> browser = setupBrowser(auth='Basic mark@example.com:test')
24 >>> browser.open('http://translations.launchpad.dev/ubuntu/')24 >>> browser.open('http://translations.launchpad.dev/ubuntu/')
25 >>> browser.getLink('Language pack admin').click()25 >>> browser.getLink('Set language pack administrator').click()
2626
27Current value is empty.27Current value is empty.
2828
2929
=== modified file 'lib/lp/translations/stories/distribution/xx-distribution-translations.txt'
--- lib/lp/translations/stories/distribution/xx-distribution-translations.txt 2009-08-23 05:28:49 +0000
+++ lib/lp/translations/stories/distribution/xx-distribution-translations.txt 2009-09-14 13:47:28 +0000
@@ -52,7 +52,7 @@
52And the other Ubuntu distributions should be there too.52And the other Ubuntu distributions should be there too.
5353
54 >>> content = find_main_content(browser.contents)54 >>> content = find_main_content(browser.contents)
55 >>> print extract_text(content.findAll('h2')[1])55 >>> print extract_text(content.findAll('h2')[2])
56 Other versions of Ubuntu56 Other versions of Ubuntu
5757
58 >>> print extract_text(content.find(id='distroseries-list'))58 >>> print extract_text(content.find(id='distroseries-list'))
@@ -94,7 +94,7 @@
94And the other Ubuntu distributions should be there too.94And the other Ubuntu distributions should be there too.
9595
96 >>> content = find_main_content(browser.contents)96 >>> content = find_main_content(browser.contents)
97 >>> print extract_text(content.findAll('h2')[1])97 >>> print extract_text(content.findAll('h2')[2])
98 Other versions of Debian98 Other versions of Debian
9999
100 >>> print extract_text(content.find(id='distroseries-list'))100 >>> print extract_text(content.find(id='distroseries-list'))
101101
=== modified file 'lib/lp/translations/stories/distroseries/xx-distroseries-language-packs.txt'
--- lib/lp/translations/stories/distroseries/xx-distroseries-language-packs.txt 2009-09-01 21:12:37 +0000
+++ lib/lp/translations/stories/distroseries/xx-distroseries-language-packs.txt 2009-09-14 13:54:29 +0000
@@ -16,7 +16,7 @@
1616
17 >>> admin_browser.open(17 >>> admin_browser.open(
18 ... 'http://translations.launchpad.dev/ubuntu/hoary')18 ... 'http://translations.launchpad.dev/ubuntu/hoary')
19 >>> admin_browser.getLink('Language packs').click()19 >>> admin_browser.getLink('See all language packs').click()
2020
21Initially, there is no package selected.21Initially, there is no package selected.
2222
@@ -50,7 +50,7 @@
50Also, that change is shown in the public language pack listing web page:50Also, that change is shown in the public language pack listing web page:
5151
52 >>> browser.open('http://translations.launchpad.dev/ubuntu/hoary')52 >>> browser.open('http://translations.launchpad.dev/ubuntu/hoary')
53 >>> browser.getLink('Language packs').click()53 >>> browser.getLink('See all language packs').click()
54 >>> print extract_text(find_tag_by_id(browser.contents, "language_packs"))54 >>> print extract_text(find_tag_by_id(browser.contents, "language_packs"))
55 Language packs for Ubuntu 5.0455 Language packs for Ubuntu 5.04
56 ...56 ...
5757
=== modified file 'lib/lp/translations/stories/distroseries/xx-distroseries-templates.txt'
--- lib/lp/translations/stories/distroseries/xx-distroseries-templates.txt 2009-07-16 14:40:28 +0000
+++ lib/lp/translations/stories/distroseries/xx-distroseries-templates.txt 2009-09-14 13:54:29 +0000
@@ -11,14 +11,14 @@
1111
12 >>> user_browser.open(12 >>> user_browser.open(
13 ... 'http://translations.launchpad.dev/ubuntu/hoary')13 ... 'http://translations.launchpad.dev/ubuntu/hoary')
14 >>> user_browser.getLink('Templates')14 >>> user_browser.getLink('full list of templates')
15 Traceback (most recent call last):15 Traceback (most recent call last):
16 ...16 ...
17 LinkNotFoundError17 LinkNotFoundError
1818
19 >>> admin_browser.open(19 >>> admin_browser.open(
20 ... 'http://translations.launchpad.dev/ubuntu/hoary')20 ... 'http://translations.launchpad.dev/ubuntu/hoary')
21 >>> admin_browser.getLink('Templates').click()21 >>> admin_browser.getLink('full list of templates').click()
22 >>> print admin_browser.url22 >>> print admin_browser.url
23 http://translations.launchpad.dev/ubuntu/hoary/+templates23 http://translations.launchpad.dev/ubuntu/hoary/+templates
2424
2525
=== modified file 'lib/lp/translations/stories/distroseries/xx-distroseries-translations.txt'
--- lib/lp/translations/stories/distroseries/xx-distroseries-translations.txt 2009-07-16 13:28:25 +0000
+++ lib/lp/translations/stories/distroseries/xx-distroseries-translations.txt 2009-09-14 13:54:29 +0000
@@ -50,7 +50,7 @@
50Launchpad has an option to hide all of the translations for a distribution50Launchpad has an option to hide all of the translations for a distribution
51series. The link to hide translations is not available to anonymous users:51series. The link to hide translations is not available to anonymous users:
5252
53 >>> anon_browser.getLink('Settings')53 >>> anon_browser.getLink('Change settings')
54 Traceback (most recent call last):54 Traceback (most recent call last):
55 ...55 ...
56 LinkNotFoundError56 LinkNotFoundError
@@ -67,7 +67,7 @@
6767
68 >>> admin_browser.open('http://translations.launchpad.dev/ubuntu/hoary')68 >>> admin_browser.open('http://translations.launchpad.dev/ubuntu/hoary')
6969
70 >>> admin_browser.getLink('Settings').click()70 >>> admin_browser.getLink('Change settings').click()
7171
72Once the administrator hides all translations...72Once the administrator hides all translations...
7373
@@ -151,7 +151,7 @@
151form where we hide all translations and an admin is able to change it:151form where we hide all translations and an admin is able to change it:
152152
153 >>> admin_browser.open('http://translations.launchpad.dev/ubuntu/hoary')153 >>> admin_browser.open('http://translations.launchpad.dev/ubuntu/hoary')
154 >>> admin_browser.getLink('Settings').click()154 >>> admin_browser.getLink('Change settings').click()
155 >>> admin_browser.getControl(155 >>> admin_browser.getControl(
156 ... 'Defer translation imports').selected156 ... 'Defer translation imports').selected
157 False157 False
@@ -163,7 +163,7 @@
163163
164Once the system accepts the submission, we can see such change applied.164Once the system accepts the submission, we can see such change applied.
165165
166 >>> admin_browser.getLink('Settings').click()166 >>> admin_browser.getLink('Change settings').click()
167 >>> admin_browser.getControl(167 >>> admin_browser.getControl(
168 ... 'Defer translation imports').selected168 ... 'Defer translation imports').selected
169 True169 True
170170
=== modified file 'lib/lp/translations/stories/importqueue/xx-translation-import-queue-targets.txt'
--- lib/lp/translations/stories/importqueue/xx-translation-import-queue-targets.txt 2009-09-10 18:35:28 +0000
+++ lib/lp/translations/stories/importqueue/xx-translation-import-queue-targets.txt 2009-09-14 13:54:29 +0000
@@ -10,7 +10,7 @@
10The import queue is linked from the translations page for distribution.10The import queue is linked from the translations page for distribution.
1111
12 >>> user_browser.open('http://translations.launchpad.dev/ubuntu')12 >>> user_browser.open('http://translations.launchpad.dev/ubuntu')
13 >>> user_browser.getLink('Import queue').click()13 >>> user_browser.getLink('Ubuntu import queue').click()
1414
15There is no content for Ubuntu.15There is no content for Ubuntu.
1616
@@ -30,7 +30,7 @@
30The import queue is linked from the translations page for distribution series.30The import queue is linked from the translations page for distribution series.
3131
32 >>> user_browser.open('http://translations.launchpad.dev/ubuntu/hoary')32 >>> user_browser.open('http://translations.launchpad.dev/ubuntu/hoary')
33 >>> user_browser.getLink('Import queue').click()33 >>> user_browser.getLink('Hoary import queue').click()
3434
35And obviously, given that the ubuntu distribution had no content, Hoary, an35And obviously, given that the ubuntu distribution had no content, Hoary, an
36Ubuntu distro series has also no content.36Ubuntu distro series has also no content.
3737
=== modified file 'lib/lp/translations/stories/translationgroups/10-distro-translation-group.txt'
--- lib/lp/translations/stories/translationgroups/10-distro-translation-group.txt 2009-08-31 22:13:07 +0000
+++ lib/lp/translations/stories/translationgroups/10-distro-translation-group.txt 2009-09-14 13:47:28 +0000
@@ -26,14 +26,14 @@
26 >>> ubuntu_owner_browser = setupBrowser(26 >>> ubuntu_owner_browser = setupBrowser(
27 ... auth='Basic colin.watson@ubuntulinux.com:test')27 ... auth='Basic colin.watson@ubuntulinux.com:test')
28 >>> ubuntu_owner_browser.open(anon_browser.url)28 >>> ubuntu_owner_browser.open(anon_browser.url)
29 >>> ubuntu_owner_browser.getLink('Settings').click()29 >>> ubuntu_owner_browser.getLink('Change permissions').click()
30 >>> print ubuntu_owner_browser.title30 >>> print ubuntu_owner_browser.title
31 Set translation permissions for Ubuntu31 Set translation permissions for Ubuntu
3232
33Other users cannot access this page, nor see the menu link to it.33Other users cannot access this page, nor see the menu link to it.
3434
35 >>> user_browser.open(anon_browser.url)35 >>> user_browser.open(anon_browser.url)
36 >>> user_browser.getLink('Settings').click()36 >>> user_browser.getLink('Change permissions').click()
37 Traceback (most recent call last):37 Traceback (most recent call last):
38 ...38 ...
39 LinkNotFoundError39 LinkNotFoundError
4040
=== added file 'lib/lp/translations/templates/distribution-language-pack-admin-info.pt'
--- lib/lp/translations/templates/distribution-language-pack-admin-info.pt 1970-01-01 00:00:00 +0000
+++ lib/lp/translations/templates/distribution-language-pack-admin-info.pt 2009-09-13 20:24:35 +0000
@@ -0,0 +1,30 @@
1<tal:root
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 omit-tag="">
6
7 <p tal:condition="context/language_pack_admin">
8 Language packs are administered by
9 <span tal:replace="structure
10 context/language_pack_admin/fmt:link"
11 >Mr. No
12 </span>.
13 <tal:admin
14 condition="context/required:launchpad.Edit">
15 <a tal:attributes="
16 href
17 context/fmt:url/+select-language-pack-admin"
18 class="edit sprite"></a>
19 </tal:admin>
20 </p>
21 <tal:admin
22 condition="context/required:launchpad.Edit">
23 <p tal:condition="not:context/language_pack_admin">
24 <a tal:attributes="
25 href
26 context/fmt:url/+select-language-pack-admin"
27 class="edit sprite">Set language pack administrator</a>
28 </p>
29 </tal:admin>
30</tal:root>
031
=== modified file 'lib/lp/translations/templates/distribution-translations.pt'
--- lib/lp/translations/templates/distribution-translations.pt 2009-07-17 17:59:07 +0000
+++ lib/lp/translations/templates/distribution-translations.pt 2009-09-13 20:24:35 +0000
@@ -3,59 +3,69 @@
3 xmlns:tal="http://xml.zope.org/namespaces/tal"3 xmlns:tal="http://xml.zope.org/namespaces/tal"
4 xmlns:metal="http://xml.zope.org/namespaces/metal"4 xmlns:metal="http://xml.zope.org/namespaces/metal"
5 xmlns:i18n="http://xml.zope.org/namespaces/i18n"5 xmlns:i18n="http://xml.zope.org/namespaces/i18n"
6 xml:lang="en"6 metal:use-macro="view/macro:page/main_only"
7 lang="en"7>
8 dir="ltr"
9 metal:use-macro="view/macro:page/onecolumn"
10 i18n:domain="launchpad" >
118
12 <body>9 <body>
13 <div metal:fill-slot="main">10 <div metal:fill-slot="main">
11 <ul class="helplinks">
12 <li>
13 <a href="https://help.launchpad.net/Translations"
14 id="link-to-translations-help"
15 >Help for translations
16 </a>
17 </li>
18 </ul>
14 <h1>Translations</h1>19 <h1>Translations</h1>
1520
16 <ul class="helplinks">21 <tal:translation_focus condition="view/translation_focus"
17 <li>22 define="target view/translation_focus">
18 <a href="https://help.launchpad.net/Translations"23
19 id="link-to-translations-help"24 <div class="top-portlet">
20 >Help for translations25 <p>
21 </a>26 Launchpad currently recommends translating
22 </li>27 <tal:target replace="structure target/fmt:link/+translations"
23 </ul>28 >trunk</tal:target>.
24 <tal:translation_focus condition="view/translation_focus">29 </p>
25 <p>30 </div>
26 The current translation focus for31 <div class="yui-g">
27 <span tal:replace="context/displayname">Ubuntu</span> is32 <div class="yui-u first">
28 <span tal:replace="view/translation_focus/version">6.06</span>33 <div class="portlet">
29 (<span tal:replace="view/translation_focus/displayname">Dapper</span>),34 <h3>Permissions</h3>
30 and we encourage you to translate it first.35 <p>
31 </p>36 <tal:permissions replace="
32 <p id="translation-permissions">37 structure
33 <tal:distro replace="context/displayname">This38 context/@@+portlet-translation-groups-and-permission"/>
34 distribution</tal:distro> is translated39 </p>
35 <tal:hasgroup condition="context/translationgroup">by40 </div>
36 <a tal:attributes="href context/translationgroup/fmt:url"41 </div>
37 tal:content="context/translationgroup/title">translators</a>42 <div class="yui-u">
38 </tal:hasgroup>43 <div class="portlet">
39 with <a target="help" href="/+help/permissions-policies.html"44 <h3>Administration</h3>
40 tal:content="context/translationpermission/title">certain</a>45 <p>To see all the translation files that are waiting to be
41 permissions.46 imported, please look at
42 <tal:permissions condition="context/required:launchpad.Edit">47 <a tal:attributes="href context/fmt:url/+imports"
43 You can modify permissions on the48 tal:content="string:${context/displayname} import queue">
44 <a49 import queue</a>.
45 tal:define="link context/menu:navigation/settings"50 </p>
46 tal:attributes="href link/url"51
47 >Settings</a> page.52 <div tal:replace="structure
48 </tal:permissions>53 context/@@+language-pack-admin-info" />
49 </p>54 </div>
5055 </div>
51 <h2>56 </div>
52 <span tal:replace="view/translation_focus/version">5.04</span>:57
53 <span tal:replace="view/translation_focus/title">58 <h2>
54 Hoary Hedgehog59 <span tal:replace="view/translation_focus/version">5.04</span>:
55 </span>60 <span tal:replace="view/translation_focus/title">
56 </h2>61 Hoary Hedgehog
57 <div tal:replace="structure view/translation_focus/@@+langchart" />62 </span>
58 </tal:translation_focus>63 </h2>
64 <div tal:replace="structure view/translation_focus/@@+langchart" />
65 <div class="translations-legend">
66 <div tal:replace="structure context/@@+rosetta-status-legend" />
67 </div>
68 </tal:translation_focus>
5969
60 <tal:secondary condition="view/secondary_translatable_serieses">70 <tal:secondary condition="view/secondary_translatable_serieses">
61 <h2 tal:condition="view/translation_focus">71 <h2 tal:condition="view/translation_focus">
6272
=== modified file 'lib/lp/translations/templates/distroseries-translations.pt'
--- lib/lp/translations/templates/distroseries-translations.pt 2009-07-17 17:59:07 +0000
+++ lib/lp/translations/templates/distroseries-translations.pt 2009-09-13 20:24:35 +0000
@@ -2,33 +2,140 @@
2 xmlns="http://www.w3.org/1999/xhtml"2 xmlns="http://www.w3.org/1999/xhtml"
3 xmlns:tal="http://xml.zope.org/namespaces/tal"3 xmlns:tal="http://xml.zope.org/namespaces/tal"
4 xmlns:metal="http://xml.zope.org/namespaces/metal"4 xmlns:metal="http://xml.zope.org/namespaces/metal"
5 xml:lang="en"5 metal:use-macro="view/macro:page/main_only">
6 lang="en"
7 dir="ltr"
8 metal:use-macro="view/macro:page/onecolumn">
96
10 <body>7 <body>
11<div metal:fill-slot="main">8 <div metal:fill-slot="main">
12 <ul class="helplinks">9 <ul class="helplinks">
13 <li>10 <li>
14 <a href="https://help.launchpad.net/Translations"11 <a href="https://help.launchpad.net/Translations"
15 id="link-to-translations-help"12 id="link-to-translations-help"
16 >Help for translations13 >Help for translations
17 </a>14 </a>
18 </li>15 </li>
19 </ul>16 </ul>
20 <h1>Translation status by language</h1>17 <h1>Translation status by language</h1>
2118
22 <div tal:replace="structure context/@@+langchart" />19 <div class="top-portlet">
23 <div tal:replace="structure context/@@+rosetta-status-legend" />20 <p tal:condition="not:view/is_translation_focus">
2421 Launchpad currently recommends translating
25 <ul>22 <tal:target replace="
26 <li class="edit">23 structure
27 <a href="/+editmylanguages">Customize displayed languages</a>24 context/distribution/translation_focus/fmt:link/+translations"
28 </li>25 >Hoary</tal:target>.
29 </ul>26 </p>
3027 <p tal:condition="view/is_translation_focus">
31</div>28 <tal:target replace="context/displayname">Hoary</tal:target> is
32</body>29 the current translation focus for
30 <tal:distro replace="structure context/distribution/fmt:link">
31 Ubuntu
32 </tal:distro>.
33 </p>
34 </div>
35 <div class="yui-g">
36 <div class="yui-u first">
37 <div class="portlet">
38 <h3>Permissions</h3>
39 <p>
40 <tal:permissions replace="
41 structure
42 context/distribution/@@+portlet-translation-groups-and-permission"/>
43 </p>
44 </div>
45 </div>
46 <div class="yui-u">
47 <div class="portlet">
48 <h3>Administration</h3>
49 <p>Translation files that are waiting to be imported are shown in
50 the
51 <a tal:attributes="href context/fmt:url/+imports"
52 tal:content="string:${context/displayname} import queue">
53 import queue</a>.
54 </p>
55 <p tal:condition="context/required:launchpad.Edit">
56 To manage all the translation templates in
57 <tal:series replace="context/displayname">Hoary</tal:series>,
58 see the
59 <a tal:attributes="href context/menu:navigation/templates/url">
60 full list of templates</a>.
61 </p>
62 <p>
63 <tal:series replace="context/displayname">Hoary</tal:series>
64 translations are
65 <em tal:condition="not:context/hide_all_translations">
66 visible to everyone<!--
67 --></em><em tal:condition="context/hide_all_translations">
68 hidden from everyone but translation admins</em>.
69 Import queue is
70 <em tal:condition="not:context/defer_translation_imports">
71 active<!--
72 --></em><em tal:condition="context/defer_translation_imports">
73 currently halted for
74 <tal:series replace="context/displayname">
75 Hoary
76 </tal:series></em>.
77 <a tal:attributes="href context/menu:navigation/admin/url"
78 tal:condition="context/required:launchpad.TranslationsAdmin"
79 class="edit sprite">
80 Change settings
81 </a>
82 </p>
83 </div>
84 </div>
85
86 <div class="yui-u first">
87 <div class="portlet">
88 <h3>Language packs</h3>
89
90 <div tal:replace="
91 structure
92 context/distribution/@@+language-pack-admin-info" />
93
94 <div>
95 <strong>Current base pack:</strong>
96 <a tal:condition="context/language_pack_base"
97 tal:attributes="href context/language_pack_base/file/http_url">
98 <tal:export-date
99 replace="context/language_pack_base/date_exported/fmt:datetime" />
100 <img tal:condition="context/language_pack_base"
101 alt="download icon" src="/@@/download" />
102 </a>
103 <tal:not-export-date condition="not: context/language_pack_base">
104 none yet
105 </tal:not-export-date>
106 </div>
107 <div>
108 <strong>Update pack:</strong>
109 <a tal:condition="context/language_pack_delta"
110 tal:attributes="href context/language_pack_delta/file/http_url">
111 <tal:export-date
112 replace="context/language_pack_delta/date_exported/fmt:datetime" />
113 <img tal:condition="context/language_pack_delta"
114 alt="download icon" src="/@@/download" />
115 </a>
116 <tal:not-export-date condition="not: context/language_pack_delta">
117 none yet
118 </tal:not-export-date>
119 </div>
120 <p>
121 <a tal:attributes="
122 href context/menu:navigation/language_packs/url">
123 See all language packs</a>
124 </p>
125 </div>
126 </div>
127 </div>
128
129 <tal:stats condition="view/distroserieslanguages">
130 <div class="yui-b top-portlet">
131 <h2>Translation statistics</h2>
132 <div tal:replace="structure context/@@+langchart" />
133 <div class="translations-legend">
134 <div tal:replace="structure context/@@+rosetta-status-legend" />
135 </div>
136 </div>
137 </tal:stats>
138 </div>
139 </body>
33</html>140</html>
34141
35142