diff --git a/html/translate.html b/html/translate.html index 0c6e1f2fa..6a8a1a277 100644 --- a/html/translate.html +++ b/html/translate.html @@ -27,6 +27,10 @@ {{ unit.source|fmttranslation }} + +{% trans "Copy" %} + + {% if unit.is_plural %}{% trans "Translations" %}{% else %}{% trans "Translation" %}{% endif %} {{ form.checksum }} diff --git a/media/css/style.css b/media/css/style.css index c4c858b93..951a7aa99 100644 --- a/media/css/style.css +++ b/media/css/style.css @@ -71,3 +71,7 @@ td.translator textarea { td.suggestions table { width: 100% } +#copy-text { + width: 20px; + height: 20px; +} diff --git a/media/js/loader.js b/media/js/loader.js index 73aec69a4..64d0c7a63 100644 --- a/media/js/loader.js +++ b/media/js/loader.js @@ -5,4 +5,10 @@ $(document).ready(function(){ $('.sug-accept').button({text: false, icons: { primary: "ui-icon-check" }}); $('.sug-delete').button({text: false, icons: { primary: "ui-icon-close" }}); $('#id_target').change(function f() {$('#id_fuzzy').attr('checked', false);}).focus(); + $('#copy-text').button({text: false, icons: { primary: "ui-icon-arrowthick-1-s" }}).click(function f() { + $.get("/js/get/" + $('#id_checksum').attr('value') + '/', function(data) { + $('#id_target').text(data); + }); + return false; + }); }); diff --git a/trans/views.py b/trans/views.py index 903b81657..be66dd9e3 100644 --- a/trans/views.py +++ b/trans/views.py @@ -157,3 +157,10 @@ def translate(request, project, subproject, lang): 'type': rqtype, 'form': form, })) + +def get_string(request, checksum): + units = Unit.objects.filter(checksum = checksum) + if units.count() == 0: + return HttpResponse('') + + return HttpResponse(units[0].get_source_plurals()[0]) diff --git a/urls.py b/urls.py index a2da3fc39..41d768b29 100644 --- a/urls.py +++ b/urls.py @@ -10,6 +10,8 @@ urlpatterns = patterns('', url(r'^projects/(?P[^/]*)/(?P[^/]*)/(?P[^/]*)/translate/$', 'trans.views.translate'), url(r'^projects/(?P[^/]*)/(?P[^/]*)/(?P[^/]*)/download/$', 'trans.views.download_translation'), + url(r'^js/get/(?P[^/]*)/$', 'trans.views.get_string'), + # Admin interface url(r'^admin/doc/', include('django.contrib.admindocs.urls')), url(r'^admin/', include(admin.site.urls)),