mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	fixed #1660: added support functions and tags for bidi language support
git-svn-id: http://code.djangoproject.com/svn/django/trunk@2911 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -62,6 +62,9 @@ LANGUAGES = ( | ||||
|     ('zh-tw', _('Traditional Chinese')), | ||||
| ) | ||||
|  | ||||
| # Languages using BiDi (right-to-left) layout | ||||
| LANGUAGES_BIDI = ("he",) | ||||
|  | ||||
| # Not-necessarily-technical managers of the site. They get broken link | ||||
| # notifications and other various e-mails. | ||||
| MANAGERS = ADMINS | ||||
|   | ||||
| @@ -23,6 +23,14 @@ class GetCurrentLanguageNode(Node): | ||||
|         context[self.variable] = translation.get_language() | ||||
|         return '' | ||||
|  | ||||
| class GetCurrentLanguageBidiNode(Node): | ||||
|     def __init__(self, variable): | ||||
|         self.variable = variable | ||||
|  | ||||
|     def render(self, context): | ||||
|         context[self.variable] = translation.get_language_bidi() | ||||
|         return '' | ||||
|          | ||||
| class TranslateNode(Node): | ||||
|     def __init__(self, value, noop): | ||||
|         self.value = value | ||||
| @@ -102,9 +110,26 @@ def do_get_current_language(parser, token): | ||||
|     """ | ||||
|     args = token.contents.split() | ||||
|     if len(args) != 3 or args[1] != 'as': | ||||
|         raise TemplateSyntaxError, "'get_available_languages' requires 'as variable' (got %r)" % args | ||||
|         raise TemplateSyntaxError, "'get_current_language' requires 'as variable' (got %r)" % args | ||||
|     return GetCurrentLanguageNode(args[2]) | ||||
|  | ||||
| def do_get_current_language_bidi(parser, token): | ||||
|     """ | ||||
|     This will store the current language layout in the context. | ||||
|  | ||||
|     Usage:: | ||||
|  | ||||
|         {% get_current_language_bidi as bidi %} | ||||
|  | ||||
|     This will fetch the currently active language's layout and | ||||
|     put it's value into the ``bidi`` context variable. | ||||
|     True indicates right-to-left layout, otherwise left-to-right | ||||
|     """ | ||||
|     args = token.contents.split() | ||||
|     if len(args) != 3 or args[1] != 'as': | ||||
|         raise TemplateSyntaxError, "'get_current_language_bidi' requires 'as variable' (got %r)" % args | ||||
|     return GetCurrentLanguageBidiNode(args[2]) | ||||
|  | ||||
| def do_translate(parser, token): | ||||
|     """ | ||||
|     This will mark a string for translation and will | ||||
| @@ -217,5 +242,6 @@ def do_block_translate(parser, token): | ||||
|  | ||||
| register.tag('get_available_languages', do_get_available_languages) | ||||
| register.tag('get_current_language', do_get_current_language) | ||||
| register.tag('get_current_language_bidi', do_get_current_language_bidi) | ||||
| register.tag('trans', do_translate) | ||||
| register.tag('blocktrans', do_block_translate) | ||||
|   | ||||
| @@ -212,6 +212,16 @@ def get_language(): | ||||
|     from django.conf import settings | ||||
|     return settings.LANGUAGE_CODE | ||||
|  | ||||
| def get_language_bidi(): | ||||
|     """ | ||||
|     Returns selected language's BiDi layout. | ||||
|     False = left-to-right layout | ||||
|     True = right-to-left layout | ||||
|     """ | ||||
|      | ||||
|     from django.conf import settings | ||||
|     return get_language() in settings.LANGUAGES_BIDI | ||||
|      | ||||
| def catalog(): | ||||
|     """ | ||||
|     This function returns the current active catalog for further processing. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user