def change_lang(request): """ Change current documentation language. """ lang = request.GET.get('lang_code', 'en') # By default, intend to redirect to the home page. path = urlparse(request.META.get('HTTP_REFERER')).path if path == '/about_cn.html': response = redirect('/about_en.html') elif path == '/about_en.html': response = redirect('/about_cn.html') elif path.endswith('404.html'): portal_helper.set_preferred_language(request, None, lang) response = redirect('/404.html') elif path in ['/documentation/models', '/documentation/mobile']: # There is no information on lang and version. The only way is to redirect to the documentation home response = redirect('/documentation/%s' % lang) elif not path in ['/', '/en', '/zh']: # If not for homepage, its regular documentations. response = _find_matching_equivalent_page_for(path, request, lang) else: response = redirect('/%s' % lang) return response
def search(request): """ Placeholder for a search results page that uses local indexes. If this has a 'autocomplete' param, consider it an autocomplete request and serve a response by proxying to the local node search server. """ autocomplete_query = request.GET.get('autocomplete', None) version = request.GET.get('version', '') lang = request.GET.get('language', '') if autocomplete_query: return JsonResponse( requests.get(settings.SEARCH_SERVER_URL + '/search', params={ 'q': autocomplete_query, 'version': version, 'lang': lang }).json()) else: portal_helper.set_preferred_language(request, None, lang) return render( request, 'search.html', { 'q': request.GET.get('q', ''), 'lang': lang, 'CURRENT_DOCS_VERSION': version, })
def change_lang(request): """ Change current documentation language. """ lang = request.GET.get('lang_code', 'en') response = redirect('/') portal_helper.set_preferred_language(request, response, lang) return response
def huangpu_root(request): portal_helper.set_preferred_language(request, None, 'zh') is_mobile = parse(request.META.get('HTTP_USER_AGENT', '')).is_mobile return render( request, 'huangpu-mobile.html' if is_mobile else 'huangpu.html', { 'title': '黄埔计划延展图', 'wrapper_class': 'huangpu-mobile' if is_mobile else None })
def search(request): """ Placeholder for a search results page that uses local indexes. """ lang = request.GET.get('language', '') portal_helper.set_preferred_language(request, None, lang) return render( request, 'search.html', { 'q': request.GET.get('q', ''), 'lang': lang, 'CURRENT_DOCS_VERSION': request.GET.get('version', ''), })
def change_lang(request): """ Change current documentation language. """ lang = request.GET.get('lang_code', 'en') # By default, intend to redirect to the home page. response = redirect('/') # Needs to set the preferred language first in case the following code reads lang from portal_helper. portal_helper.set_preferred_language(request, response, lang) # Use the page the user was on, right before attempting to change the language. # If there is a known page the user was on, attempt to redirect to it's root contents. from_path = urllib.unquote(request.GET.get('path', None)) if from_path: # Get which content the user was reading. content_id = request.GET.get('content_id') if content_id: # Get the proper version. docs_version = portal_helper.get_preferred_version(request) # Grabbing root_navigation to check if the current lang supports this book # It also makes sure that all_links_cache is ready. root_navigation = sitemap_helper.get_sitemap(docs_version, lang) if content_id in root_navigation: all_links_cache = cache.get( sitemap_helper.get_all_links_cache_key(docs_version, lang), None) key = url_helper.link_cache_key(from_path) if all_links_cache and key in all_links_cache: response = redirect(all_links_cache[key]) else: # There is no translated path. Use the first link in the contents instead response = _redirect_first_link_in_contents( request, docs_version, content_id) # If the user happens to be coming from the blog. elif from_path.startswith('/blog'): # Blog doesn't a content_id and translated version. Simply redirect back to the original path. response = redirect(from_path) portal_helper.set_preferred_language(request, response, lang) return response
def base_context(request): path = urlparse(request.path).path content_id, lang, version = url_helper.get_parts_from_url_path(path) if not version: version = portal_helper.get_preferred_version(request) if lang in ['en', 'zh' ] and lang != portal_helper.get_preferred_language(request): portal_helper.set_preferred_language(request, None, lang) else: lang = portal_helper.get_preferred_language(request) return { 'CURRENT_DOCS_VERSION': version, 'settings': settings, 'url_helper': url_helper, 'lang': lang, 'content_id': content_id }
def cn_home_root(request): response = redirect('/') portal_helper.set_preferred_language(request, response, 'zh') return response
def about_cn(request): portal_helper.set_preferred_language(request, None, 'zh') return render(request, 'about_cn.html')
def zh_home_root(request): portal_helper.set_preferred_language(request, None, 'zh') return render(request, 'index.html')
def suite_root(request): portal_helper.set_preferred_language(request, None, 'zh') return render(request, 'pps.html')
def en_home_root(request): portal_helper.set_preferred_language(request, None, 'en') return render(request, 'visualdl/index.html')