首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django-cms占位符翻译,与语言相关的呈现

Django-cms占位符翻译,与语言相关的呈现
EN

Stack Overflow用户
提问于 2016-06-29 23:57:33
回答 1查看 460关注 0票数 0

我想知道如何手动翻译Django-cms中的占位符。

如果我使用标记{% placeholder "test" %},我只能为所有语言定义一次测试的值。是否可以为网站上使用的所有语言多次定义相同的占位符?还是应该创建不同的占位符test_entest_frtest_es并在模板中使用if子句?它不太优雅。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-22 17:38:00

关于如何构建页面,您还没有给出任何细节,但我猜您已经用自定义的占位符设置创建了自己的页面。如果在设置中配置多种语言,任何常规django-cms页面默认都是可翻译的。

请注意,与单独翻译每个占位符相比,最好是转换保存占位符的容器。

如果您定义了自己的页面,您可以使用django-hvad (这也是django-cms所使用的)来识别这些翻译:

代码语言:javascript
复制
# models.py

from cms.models import PlaceholderField, Placeholder
from django.conf import settings
from django.contrib.auth.models import User
from django.db import models
from django.db.models import Q
from django.utils.translation import ugettext_lazy as _
from hvad.manager import TranslationAwareManager

class LanguageManager(TranslationAwareManager):
    def for_language(self, language):
        return self.get_queryset().filter(Q(language__isnull=True) | Q(language=language))


class CustomPage(models.Model):

    language = models.CharField(_('language'), max_length=5, null=True, blank=True, choices=settings.LANGUAGES,
                                help_text=_('leave empty to display in all languages'))

    placeholder_abstract = PlaceholderField('abstract', related_name='%(class)s_abstracts')
    placeholder_content = PlaceholderField('content', related_name='%(class)s_contents')
    placeholder_links = PlaceholderField('links', related_name='%(class)s_links')

    created_by = models.ForeignKey(User, null=False, blank=False, related_name='+', editable=False)
    modified_by = models.ForeignKey(User, null=False, blank=False, related_name='+', editable=False)
    created = models.DateTimeField(auto_now_add=True, editable=False)
    last_modified = models.DateTimeField(auto_now=True, editable=False)

    objects = LanguageManager()

姜戈·赫瓦德有更多用于翻译模型的好东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38111932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档