Skip to content

Commit

Permalink
feat!: remove Transifex calls for FC-0012 - OEP-58
Browse files Browse the repository at this point in the history
  • Loading branch information
shadinaif authored and OmarIthawi committed Mar 17, 2024
1 parent 27e2259 commit 5627ca6
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 24 deletions.
8 changes: 0 additions & 8 deletions .tx/config

This file was deleted.

34 changes: 20 additions & 14 deletions recommender/recommender.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
from xblock.reference.plugins import Filesystem
from xblockutils.resources import ResourceLoader

from recommender.utils import DummyTranslationService

# TODO: Should be updated once XBlocks and tracking logs have finalized APIs
# and documentation.
try:
Expand Down Expand Up @@ -278,6 +280,8 @@ class RecommenderXBlock(HelperXBlock):
'url', 'title', 'description', 'descriptionText'
]

i18n_js_namespace = 'RecommenderXBlockI18N'

def _get_onetime_url(self, filename):
"""
Return one time url for uploaded screenshot
Expand Down Expand Up @@ -948,21 +952,23 @@ def _construct_view_resource(self, resource):

return result

@staticmethod
def _get_statici18n_js_url(): # pragma: no cover
"""
Returns the Javascript translation file for the currently selected language, if any found by `pkg_resources`
"""
lang_code = translation.get_language()
if not lang_code:
return None
text_js = 'public/js/translations/{lang_code}/text.js'
country_code = lang_code.split('-')[0]
for code in (translation.to_locale(lang_code), lang_code, country_code):
if pkg_resources.resource_exists(resource_loader.module_name, text_js.format(lang_code=code)):
return text_js.format(lang_code=code)
def _get_statici18n_js_url(self):
"""Return the JavaScript translation file provided by the XBlockI18NService."""
if url_getter_func := getattr(self.i18n_service, 'get_javascript_i18n_catalog_url', None):
if javascript_url := url_getter_func(self):
return javascript_url

return None

@property
def i18n_service(self):
""" Obtains translation service """
i18n_service = self.runtime.service(self, "i18n")
if i18n_service:
return i18n_service
else:
return DummyTranslationService()

def student_view(self, _context=None): # pylint: disable=unused-argument
"""
The primary view of the RecommenderXBlock, shown to students
Expand Down Expand Up @@ -1011,7 +1017,7 @@ def student_view(self, _context=None): # pylint: disable=unused-argument
frag.add_javascript(self.resource_string("static/js/src/jquery.tooltipster.min.js"))
statici18n_js_url = self._get_statici18n_js_url()
if statici18n_js_url:
frag.add_javascript(self.resource_string(statici18n_js_url))
frag.add_javascript(statici18n_js_url)
frag.add_javascript(self.resource_string("static/js/src/cats.js"))
frag.add_javascript(self.resource_string("static/js/src/recommender.js"))
frag.initialize_js('RecommenderXBlock', self.get_client_configuration())
Expand Down
24 changes: 24 additions & 0 deletions recommender/utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"""Utils for the Recommender XBlock"""


def _(text):
"""
Make '_' a no-op so we can scrape strings
"""
return text


def ngettext_fallback(text_singular, text_plural, number):
""" Dummy `ngettext` replacement to make string extraction tools scrape strings marked for translation """
if number == 1:
return text_singular
else:
return text_plural


class DummyTranslationService:
"""
Dummy drop-in replacement for i18n XBlock service
"""
gettext = _
ngettext = ngettext_fallback
4 changes: 2 additions & 2 deletions translation_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
from __future__ import absolute_import
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
BASE_DIR = os.path.dirname(__file__)


# Quick-start development settings - unsuitable for production
Expand Down Expand Up @@ -81,7 +81,7 @@
('zh_CN', 'Chinese (China)'),
]

LOCALE_PATHS = [os.path.join(BASE_DIR, "locale")]
LOCALE_PATHS = [os.path.join(BASE_DIR, "recommender", "conf", "locale")]

STATICI18N_DOMAIN = 'text'
STATICI18N_NAMESPACE = 'RecommenderXBlockI18N'
Expand Down

0 comments on commit 5627ca6

Please sign in to comment.