Commit 41695def by Alexander Kryklia

Merge pull request #3136 from edx/alex/display_native_language_2

Alex/display native language 2
parents fab43e1a bae60527
...@@ -5,6 +5,8 @@ These are notable changes in edx-platform. This is a rolling list of changes, ...@@ -5,6 +5,8 @@ These are notable changes in edx-platform. This is a rolling list of changes,
in roughly chronological order, most recent first. Add your entries at or near in roughly chronological order, most recent first. Add your entries at or near
the top. Include a label indicating the component affected. the top. Include a label indicating the component affected.
Blades: Transcript translations should be displayed in their source language (BLD-935).
Blades: Create an upload modal for video transcript translations (BLD-751). Blades: Create an upload modal for video transcript translations (BLD-751).
Studio and LMS: Upgrade version of TinyMCE to 4.0.20. Switch from tabbed Visual/HTML Studio and LMS: Upgrade version of TinyMCE to 4.0.20. Switch from tabbed Visual/HTML
......
...@@ -201,7 +201,7 @@ def upload_file(_step, file_name): ...@@ -201,7 +201,7 @@ def upload_file(_step, file_name):
@step('I see "([^"]*)" text in the captions') @step('I see "([^"]*)" text in the captions')
def check_text_in_the_captions(_step, text): def check_text_in_the_captions(_step, text):
world.wait_for(lambda _: world.css_text('.subtitles')) world.wait_for(lambda _: world.css_text('.subtitles'), 30)
actual_text = world.css_text('.subtitles') actual_text = world.css_text('.subtitles')
assert (text in actual_text) assert (text in actual_text)
......
...@@ -10,7 +10,12 @@ from django.conf import settings ...@@ -10,7 +10,12 @@ from django.conf import settings
from common import upload_file, attach_file from common import upload_file, attach_file
TEST_ROOT = settings.COMMON_TEST_DATA_ROOT TEST_ROOT = settings.COMMON_TEST_DATA_ROOT
LANGUAGES = {l[0]: l[1] for l in settings.ALL_LANGUAGES}
NATIVE_LANGUAGES = {lang: label for lang, label in settings.LANGUAGES if len(lang) == 2}
LANGUAGES = {
lang: NATIVE_LANGUAGES.get(lang, display)
for lang, display in settings.ALL_LANGUAGES
}
TRANSLATION_BUTTONS = { TRANSLATION_BUTTONS = {
'add': '.metadata-video-translations .create-action', 'add': '.metadata-video-translations .create-action',
......
...@@ -124,8 +124,9 @@ class VideoModule(VideoFields, VideoStudentViewHandlers, XModule): ...@@ -124,8 +124,9 @@ class VideoModule(VideoFields, VideoStudentViewHandlers, XModule):
else: else:
transcript_language = sorted(self.transcripts.keys())[0] transcript_language = sorted(self.transcripts.keys())[0]
native_languages = {lang: label for lang, label in settings.LANGUAGES if len(lang) == 2}
languages = { languages = {
lang: display lang: native_languages.get(lang, display)
for lang, display in settings.ALL_LANGUAGES for lang, display in settings.ALL_LANGUAGES
if lang in self.transcripts if lang in self.transcripts
} }
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
"""Video xmodule tests in mongo.""" """Video xmodule tests in mongo."""
import json
import unittest import unittest
from collections import OrderedDict
from mock import patch, PropertyMock, MagicMock from mock import patch, PropertyMock, MagicMock
from django.conf import settings from django.conf import settings
...@@ -53,7 +55,7 @@ class TestVideoYouTube(TestVideo): ...@@ -53,7 +55,7 @@ class TestVideoYouTube(TestVideo):
'transcript_download_format': 'srt', 'transcript_download_format': 'srt',
'transcript_download_formats_list': [{'display_name': 'SubRip (.srt) file', 'value': 'srt'}, {'display_name': 'Text (.txt) file', 'value': 'txt'}], 'transcript_download_formats_list': [{'display_name': 'SubRip (.srt) file', 'value': 'srt'}, {'display_name': 'Text (.txt) file', 'value': 'txt'}],
'transcript_language': u'en', 'transcript_language': u'en',
'transcript_languages': '{"en": "English", "uk": "Ukrainian"}', 'transcript_languages': json.dumps(OrderedDict({"en": "English", "uk": u"Українська"})),
'transcript_translation_url': self.item_descriptor.xmodule_runtime.handler_url( 'transcript_translation_url': self.item_descriptor.xmodule_runtime.handler_url(
self.item_descriptor, 'transcript', 'translation' self.item_descriptor, 'transcript', 'translation'
).rstrip('/?'), ).rstrip('/?'),
...@@ -97,6 +99,7 @@ class TestVideoNonYouTube(TestVideo): ...@@ -97,6 +99,7 @@ class TestVideoNonYouTube(TestVideo):
} }
context = self.item_descriptor.render('student_view').content context = self.item_descriptor.render('student_view').content
expected_context = { expected_context = {
'ajax_url': self.item_descriptor.xmodule_runtime.ajax_url + '/save_user_state', 'ajax_url': self.item_descriptor.xmodule_runtime.ajax_url + '/save_user_state',
'data_dir': getattr(self, 'data_dir', None), 'data_dir': getattr(self, 'data_dir', None),
...@@ -239,7 +242,7 @@ class TestGetHtmlMethod(BaseTestXmodule): ...@@ -239,7 +242,7 @@ class TestGetHtmlMethod(BaseTestXmodule):
expected_context.update({ expected_context.update({
'transcript_download_format': None if self.item_descriptor.track and self.item_descriptor.download_track else 'srt', 'transcript_download_format': None if self.item_descriptor.track and self.item_descriptor.download_track else 'srt',
'transcript_languages': '{"en": "English"}' if not data['transcripts'] else '{"uk": "Ukrainian"}', 'transcript_languages': '{"en": "English"}' if not data['transcripts'] else json.dumps({"uk": u'Українська'}),
'transcript_language': u'en' if not data['transcripts'] or data.get('sub') else u'uk', 'transcript_language': u'en' if not data['transcripts'] or data.get('sub') else u'uk',
'transcript_translation_url': self.item_descriptor.xmodule_runtime.handler_url( 'transcript_translation_url': self.item_descriptor.xmodule_runtime.handler_url(
self.item_descriptor, 'transcript', 'translation' self.item_descriptor, 'transcript', 'translation'
...@@ -252,7 +255,6 @@ class TestGetHtmlMethod(BaseTestXmodule): ...@@ -252,7 +255,6 @@ class TestGetHtmlMethod(BaseTestXmodule):
'sub': data['sub'], 'sub': data['sub'],
'id': self.item_descriptor.location.html_id(), 'id': self.item_descriptor.location.html_id(),
}) })
self.assertEqual( self.assertEqual(
context, context,
self.item_descriptor.xmodule_runtime.render_template('video.html', expected_context), self.item_descriptor.xmodule_runtime.render_template('video.html', expected_context),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment