forked from ungleich-public/dynamicweb
fix migration history
This commit is contained in:
parent
bb17a89507
commit
8bb2d372c2
59 changed files with 4326 additions and 234 deletions
|
|
@ -508,3 +508,49 @@ def has_plugin_permission(user, plugin_type, permission_type):
|
|||
# Grant all permissions for uninstalled plugins, so they do not block
|
||||
# emptying placeholders.
|
||||
return True
|
||||
|
||||
|
||||
def has_page_permission(user, page, permission, site=None):
|
||||
"""
|
||||
Backwards-compatible wrapper for the legacy django-cms
|
||||
has_page_permission() API.
|
||||
|
||||
Legacy callers pass short permission names such as:
|
||||
add
|
||||
change
|
||||
delete
|
||||
publish
|
||||
|
||||
Modern django-cms uses action names such as:
|
||||
add_page
|
||||
change_page
|
||||
delete_page
|
||||
publish_page
|
||||
"""
|
||||
if not user or not user.is_authenticated:
|
||||
return False
|
||||
|
||||
if user.is_superuser or not get_cms_setting('PERMISSION'):
|
||||
return True
|
||||
|
||||
action_map = {
|
||||
'add': 'add_page',
|
||||
'change': 'change_page',
|
||||
'delete': 'delete_page',
|
||||
'publish': 'publish_page',
|
||||
'move': 'move_page',
|
||||
'view': 'view_page',
|
||||
'change_advanced_settings': 'change_page_advanced_settings',
|
||||
'change_permissions': 'change_page_permissions',
|
||||
}
|
||||
|
||||
action = action_map.get(permission, permission)
|
||||
|
||||
from .page_permissions import has_generic_permission
|
||||
|
||||
return has_generic_permission(
|
||||
page=page,
|
||||
user=user,
|
||||
action=action,
|
||||
site=site,
|
||||
)
|
||||
|
|
@ -24,13 +24,13 @@ class CMSIntegration(models.Model):
|
|||
'fetch the Integration into pages'
|
||||
)
|
||||
)
|
||||
footer_placeholder = PlaceholderRelationField(
|
||||
footer_placeholder = PlaceholderField(
|
||||
'datacenterlight_footer', related_name='dcl-footer-placeholder+'
|
||||
)
|
||||
navbar_placeholder = PlaceholderRelationField(
|
||||
navbar_placeholder = PlaceholderField(
|
||||
'datacenterlight_navbar', related_name='dcl-navbar-placeholder+'
|
||||
)
|
||||
calculator_placeholder = PlaceholderRelationField(
|
||||
calculator_placeholder = PlaceholderField(
|
||||
'datacenterlight_calculator',
|
||||
related_name='dcl-calculator-placeholder+'
|
||||
)
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ class Migration(migrations.Migration):
|
|||
|
||||
dependencies = [
|
||||
('cms', '0014_auto_20160404_1908'),
|
||||
('filer', '0001_squashed_0016_alter_folder_index_together_remove_folder_level_and_more'),
|
||||
('datacenterlight', '0011_auto_20180220_1423'),
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,26 +1,63 @@
|
|||
from cms.models import Page
|
||||
from cms.utils.i18n import get_language_list
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
def forwards(apps, schema_editor):
|
||||
|
||||
BlogConfig = apps.get_model("djangocms_blog", "BlogConfig")
|
||||
BlogConfigTranslation = apps.get_model("djangocms_blog", "BlogConfigTranslation")
|
||||
BlogConfigTranslation = apps.get_model(
|
||||
"djangocms_blog",
|
||||
"BlogConfigTranslation"
|
||||
)
|
||||
Post = apps.get_model("djangocms_blog", "Post")
|
||||
BlogCategory = apps.get_model("djangocms_blog", "BlogCategory")
|
||||
GenericBlogPlugin = apps.get_model("djangocms_blog", "GenericBlogPlugin")
|
||||
LatestPostsPlugin = apps.get_model("djangocms_blog", "LatestPostsPlugin")
|
||||
AuthorEntriesPlugin = apps.get_model("djangocms_blog", "AuthorEntriesPlugin")
|
||||
GenericBlogPlugin = apps.get_model(
|
||||
"djangocms_blog",
|
||||
"GenericBlogPlugin"
|
||||
)
|
||||
LatestPostsPlugin = apps.get_model(
|
||||
"djangocms_blog",
|
||||
"LatestPostsPlugin"
|
||||
)
|
||||
AuthorEntriesPlugin = apps.get_model(
|
||||
"djangocms_blog",
|
||||
"AuthorEntriesPlugin"
|
||||
)
|
||||
|
||||
config = None
|
||||
for page in Page.objects.drafts().filter(application_urls="BlogApp"):
|
||||
config, created = BlogConfig.objects.get_or_create(namespace=page.application_namespace)
|
||||
|
||||
for page in Page.objects.filter(application_urls="BlogApp"):
|
||||
|
||||
config, created = BlogConfig.objects.get_or_create(
|
||||
namespace=page.application_namespace
|
||||
)
|
||||
|
||||
if not BlogConfigTranslation.objects.exists():
|
||||
|
||||
for lang in get_language_list():
|
||||
|
||||
title = page.get_title(lang)
|
||||
BlogConfigTranslation.objects.create(language_code=lang, master_id=config.pk, app_title=title)
|
||||
|
||||
BlogConfigTranslation.objects.create(
|
||||
language_code=lang,
|
||||
master_id=config.pk,
|
||||
app_title=title
|
||||
)
|
||||
|
||||
if config:
|
||||
for model in (Post, BlogCategory, GenericBlogPlugin, LatestPostsPlugin, AuthorEntriesPlugin):
|
||||
|
||||
for model in (
|
||||
Post,
|
||||
BlogCategory,
|
||||
GenericBlogPlugin,
|
||||
LatestPostsPlugin,
|
||||
AuthorEntriesPlugin,
|
||||
):
|
||||
|
||||
for item in model.objects.filter(app_config__isnull=True):
|
||||
|
||||
item.app_config = config
|
||||
item.save()
|
||||
|
||||
|
|
@ -31,6 +68,7 @@ def backwards(apps, schema_editor):
|
|||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("cms", "0004_auto_20140924_1038"),
|
||||
("djangocms_blog", "0013_auto_20160201_2235"),
|
||||
|
|
@ -38,4 +76,4 @@ class Migration(migrations.Migration):
|
|||
|
||||
operations = [
|
||||
migrations.RunPython(forwards, backwards),
|
||||
]
|
||||
]
|
||||
|
|
@ -114,14 +114,14 @@ INSTALLED_APPS = (
|
|||
'aldryn_boilerplates',
|
||||
'aldryn_categories',
|
||||
'aldryn_common',
|
||||
'aldryn_newsblog',
|
||||
'aldryn_people',
|
||||
#TODO:'aldryn_newsblog',
|
||||
#TODO:'aldryn_people',
|
||||
#TODO: 'aldryn_reversion',
|
||||
'aldryn_translation_tools',
|
||||
'treebeard', # utilities for implementing a tree
|
||||
'sekizai', # for javascript and css management
|
||||
'menus', # helper for model independent hierarchical website navigation
|
||||
'cmsplugin_filer_image',
|
||||
#TODO:'cmsplugin_filer_image',
|
||||
|
||||
# 2nd migrate
|
||||
# django-cms plugins
|
||||
|
|
@ -136,9 +136,9 @@ INSTALLED_APPS = (
|
|||
# 'djangocms_teaser',
|
||||
'djangocms_page_meta',
|
||||
'djangocms_text_ckeditor',
|
||||
'cmsplugin_filer_file',
|
||||
'cmsplugin_filer_folder',
|
||||
'cmsplugin_filer_link',
|
||||
#TODO:'cmsplugin_filer_file',
|
||||
#TODO:'cmsplugin_filer_folder',
|
||||
#TODO:'cmsplugin_filer_link',
|
||||
# 'cmsplugin_filer_teaser',
|
||||
#'cmsplugin_filer_video',
|
||||
#
|
||||
|
|
@ -160,8 +160,10 @@ INSTALLED_APPS = (
|
|||
'webhook',
|
||||
|
||||
'django.contrib.postgres',
|
||||
'debug_toolbar',
|
||||
)
|
||||
|
||||
|
||||
MIDDLEWARE = (
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
|
||||
|
|
|
|||
|
|
@ -15,10 +15,10 @@ CACHES = {
|
|||
}
|
||||
}
|
||||
|
||||
MIDDLEWARE_CLASSES += ("debug_toolbar.middleware.DebugToolbarMiddleware",)
|
||||
MIDDLEWARE += ("debug_toolbar.middleware.DebugToolbarMiddleware",)
|
||||
|
||||
INSTALLED_APPS += (
|
||||
'django_extensions',
|
||||
#'django_extensions',
|
||||
# debug_toolbar seems to conflict with multisite (and djangocms_multisite)
|
||||
# 'debug_toolbar'
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
from .base import * # flake8: noqa
|
||||
import os
|
||||
|
||||
# List of people that get admin messages
|
||||
ADMINS = ((x, x + "@ungleich.ch") for x in ["web-team"])
|
||||
|
|
@ -31,5 +32,6 @@ ALLOWED_HOSTS = [
|
|||
".ipv6onlyhosting.com",
|
||||
".digitalglarus.ch",
|
||||
".hack4glarus.ch",
|
||||
".xn--nglarus-n2a.ch"
|
||||
".xn--nglarus-n2a.ch",
|
||||
"127.0.0.1",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -14,6 +14,6 @@ class Migration(migrations.Migration):
|
|||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='virtualmachineplan',
|
||||
options={'permissions': (('view_virtualmachineplan', 'View Virtual Machine Plan'), ('cancel_virtualmachineplan', 'Cancel Virtual Machine Plan'))},
|
||||
options={},
|
||||
),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -14,6 +14,6 @@ class Migration(migrations.Migration):
|
|||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='hostingorder',
|
||||
options={'permissions': (('view_hostingorder', 'View Hosting Order'),)},
|
||||
options={},
|
||||
),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ class Migration(migrations.Migration):
|
|||
('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='membership.StripeCustomer')),
|
||||
],
|
||||
options={
|
||||
'permissions': (('view_hostingbill', 'View Hosting Bill'),),
|
||||
|
||||
},
|
||||
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ class Migration(migrations.Migration):
|
|||
('stripe_customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='membership.StripeCustomer')),
|
||||
],
|
||||
options={
|
||||
'permissions': (('view_usercarddetail', 'View User Card'),),
|
||||
|
||||
},
|
||||
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ class Migration(migrations.Migration):
|
|||
('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hosting.HostingOrder')),
|
||||
],
|
||||
options={
|
||||
'permissions': (('view_monthlyhostingbill', 'View Monthly Hosting'),),
|
||||
|
||||
},
|
||||
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class Migration(migrations.Migration):
|
|||
('monthly_hosting_bill', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hosting.MonthlyHostingBill')),
|
||||
],
|
||||
options={
|
||||
'permissions': (('view_hostingbilllineitem', 'View Monthly Hosting Bill Line Item'),),
|
||||
|
||||
},
|
||||
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -2,6 +2,10 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
sys.path.insert(0, os.path.join(BASE_DIR, "vendor"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dynamicweb.settings")
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,27 @@ class Migration(migrations.Migration):
|
|||
|
||||
operations = [
|
||||
migrations.RunSQL(
|
||||
"ALTER TABLE djangocms_blog_authorentriesplugin_authors "
|
||||
"RENAME COLUMN user_id TO customuser_id;"),
|
||||
"""
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'djangocms_blog_authorentriesplugin_authors'
|
||||
AND column_name = 'user_id'
|
||||
)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'djangocms_blog_authorentriesplugin_authors'
|
||||
AND column_name = 'customuser_id'
|
||||
)
|
||||
THEN
|
||||
ALTER TABLE djangocms_blog_authorentriesplugin_authors
|
||||
RENAME COLUMN user_id TO customuser_id;
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
""",
|
||||
),
|
||||
]
|
||||
|
|
|
|||
102
old_requirements.txt
Normal file
102
old_requirements.txt
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
Babel==2.3.4
|
||||
Django==1.9.4
|
||||
Django-Select2==4.3.2
|
||||
Pillow==3.2.0
|
||||
URLObject==2.4.0
|
||||
Unidecode==0.04.19
|
||||
YURL==0.13
|
||||
aldryn-apphooks-config==0.2.7
|
||||
aldryn-boilerplates==0.7.4
|
||||
aldryn-categories==1.0.3
|
||||
aldryn-common==1.0.1
|
||||
aldryn-newsblog==1.2.1
|
||||
aldryn-people==1.2.0
|
||||
aldryn-reversion==1.0.8
|
||||
aldryn-search==0.2.11
|
||||
aldryn-translation-tools==0.2.1
|
||||
backport-collections==0.1
|
||||
cmsplugin-filer==1.0.1
|
||||
django-appconf==1.0.2
|
||||
django-appdata==0.1.5
|
||||
django-bootstrap3==7.0.1
|
||||
django-classy-tags==0.7.2
|
||||
django-cms==3.2.5
|
||||
django-compressor==2.0
|
||||
django-debug-toolbar==1.4
|
||||
python-dotenv==0.10.3
|
||||
django-extensions==1.6.7
|
||||
django-filer==1.2.0
|
||||
django-filter==0.13.0
|
||||
django-formtools==1.0
|
||||
django-guardian==1.4.4
|
||||
django-haystack==2.4.1
|
||||
django-meta==1.2
|
||||
django-meta-mixin==0.3.0
|
||||
django-model-utils==2.5
|
||||
django-mptt==0.8.4
|
||||
django-parler==1.6.3
|
||||
django-phonenumber-field==1.1.0
|
||||
django-polymorphic==0.9.2
|
||||
django-reversion==1.10.2
|
||||
django-sekizai==0.9.0
|
||||
django-sortedm2m==1.2.2
|
||||
django-spurl==0.6.4
|
||||
django-standard-form==1.1.1
|
||||
django-stored-messages==1.4.0
|
||||
django-taggit==0.18.3
|
||||
django-taggit-autosuggest==0.2.8
|
||||
django-taggit-templatetags==0.2.5
|
||||
django-templatetag-sugar==1.0
|
||||
django-treebeard==4.0.1
|
||||
djangocms-admin-style==1.1.1
|
||||
djangocms-apphook-setup==0.1.2
|
||||
djangocms-blog==0.9.0
|
||||
djangocms-file==1.0
|
||||
djangocms-flash==0.3.0
|
||||
djangocms-googlemap==0.4.0
|
||||
djangocms-inherit==0.2.1
|
||||
djangocms-link==1.7.2
|
||||
djangocms-page-meta==0.5.11
|
||||
djangocms-picture==1.0.0
|
||||
djangocms-teaser==0.2.0
|
||||
djangocms-text-ckeditor==2.9.3
|
||||
djangocms-video==1.0.0
|
||||
easy-thumbnails==2.3
|
||||
html5lib==0.9999999
|
||||
ldap3==2.6.1
|
||||
lxml==3.6.0
|
||||
model-mommy==1.2.6
|
||||
phonenumbers==7.4.0
|
||||
phonenumberslite==7.4.0
|
||||
psycopg2==2.7.3.2
|
||||
pycryptodome==3.6.6
|
||||
pylibmc==1.5.1
|
||||
python-dateutil==2.5.3
|
||||
python-slugify==1.2.0
|
||||
pytz==2016.4
|
||||
rcssmin==1.0.6
|
||||
requests==2.10.0
|
||||
rjsmin==1.0.12
|
||||
six==1.10.0
|
||||
sqlparse==0.1.19
|
||||
stripe==2.41.0
|
||||
wheel==0.29.0
|
||||
django-admin-honeypot==1.0.0
|
||||
coverage==4.3.4
|
||||
git+https://github.com/ungleich/python-oca.git#egg=oca
|
||||
djangorestframework==3.6.3
|
||||
flake8==3.3.0
|
||||
python-memcached==1.58
|
||||
celery==4.0.2
|
||||
redis==2.10.5
|
||||
django-celery-results==1.0.1
|
||||
kombu==4.1.0
|
||||
mccabe==0.6.1
|
||||
pycodestyle==2.3.1
|
||||
pyflakes==1.5.0
|
||||
billiard==3.5.0.3
|
||||
amqp==2.2.1
|
||||
vine==1.1.4
|
||||
cdist==5.0.1
|
||||
git+https://github.com/ungleich/djangocms-multisite.git#egg=djangocms_multisite
|
||||
pyotp
|
||||
199
requirements.txt
199
requirements.txt
|
|
@ -1,102 +1,105 @@
|
|||
Babel==2.3.4
|
||||
Django==1.9.4
|
||||
Django-Select2==4.3.2
|
||||
Pillow==3.2.0
|
||||
URLObject==2.4.0
|
||||
Unidecode==0.04.19
|
||||
YURL==0.13
|
||||
aldryn-apphooks-config==0.2.7
|
||||
aldryn-boilerplates==0.7.4
|
||||
aldryn-categories==1.0.3
|
||||
aldryn-common==1.0.1
|
||||
aldryn-newsblog==1.2.1
|
||||
aldryn-people==1.2.0
|
||||
aldryn-reversion==1.0.8
|
||||
aldryn-search==0.2.11
|
||||
aldryn-translation-tools==0.2.1
|
||||
backport-collections==0.1
|
||||
cmsplugin-filer==1.0.1
|
||||
django-appconf==1.0.2
|
||||
django-appdata==0.1.5
|
||||
django-bootstrap3==7.0.1
|
||||
django-classy-tags==0.7.2
|
||||
django-cms==3.2.5
|
||||
django-compressor==2.0
|
||||
django-debug-toolbar==1.4
|
||||
python-dotenv==0.10.3
|
||||
django-extensions==1.6.7
|
||||
django-filer==1.2.0
|
||||
django-filter==0.13.0
|
||||
django-formtools==1.0
|
||||
django-guardian==1.4.4
|
||||
django-haystack==2.4.1
|
||||
django-meta==1.2
|
||||
aldryn-apphooks-config==0.7.0
|
||||
aldryn-boilerplates==0.8.0
|
||||
aldryn-categories==1.2.0
|
||||
aldryn-common==1.0.5
|
||||
aldryn-newsblog==2.2.1
|
||||
aldryn-people==2.2.0
|
||||
aldryn-translation-tools==0.3.0
|
||||
amqp==5.4.0
|
||||
asgiref==3.12.1
|
||||
babel==2.18.0
|
||||
backport_collections==0.1
|
||||
billiard==4.3.0
|
||||
cdist==7.0.0
|
||||
celery==5.6.3
|
||||
certifi==2026.7.22
|
||||
charset-normalizer==3.5.2
|
||||
click==8.5.0
|
||||
click-didyoumean==0.3.1
|
||||
click-plugins==1.1.1.2
|
||||
click-repl==0.4.0
|
||||
cmsplugin-filer==1.1.3
|
||||
Django==6.1.1
|
||||
django-appconf==1.2.0
|
||||
django-appdata==0.4.0
|
||||
django-bootstrap3==26.2
|
||||
django-classy-tags==0.8.0
|
||||
django-cms==3.11.11
|
||||
django-debug-toolbar==8.0.0
|
||||
django-filer==3.6.0
|
||||
django-formtools==2.1
|
||||
django-guardian==3.5.0
|
||||
django-js-asset==4.2.0
|
||||
django-meta==2.5.1
|
||||
django-meta-mixin==0.3.0
|
||||
django-model-utils==2.5
|
||||
django-mptt==0.8.4
|
||||
django-parler==1.6.3
|
||||
django-phonenumber-field==1.1.0
|
||||
django-polymorphic==0.9.2
|
||||
django-reversion==1.10.2
|
||||
django-sekizai==0.9.0
|
||||
django-sortedm2m==1.2.2
|
||||
django-spurl==0.6.4
|
||||
django-standard-form==1.1.1
|
||||
django-mptt==0.18.0
|
||||
django-multisite==1.9.0
|
||||
django-parler==2.4
|
||||
django-phonenumber-field==1.3.0
|
||||
django-polymorphic==4.11.7
|
||||
django-recaptcha==4.1.0
|
||||
django-reversion==6.3.0
|
||||
django-sekizai==0.10.0
|
||||
django-sortedm2m==4.0.0
|
||||
django-stored-messages==1.4.0
|
||||
django-taggit==0.18.3
|
||||
django-taggit-autosuggest==0.2.8
|
||||
django-taggit==6.1.0
|
||||
django-taggit-autosuggest==0.4.2
|
||||
django-taggit-templatetags==0.2.5
|
||||
django-templatetag-sugar==1.0
|
||||
django-treebeard==4.0.1
|
||||
djangocms-admin-style==1.1.1
|
||||
djangocms-apphook-setup==0.1.2
|
||||
djangocms-blog==0.9.0
|
||||
djangocms-file==1.0
|
||||
djangocms-flash==0.3.0
|
||||
djangocms-googlemap==0.4.0
|
||||
djangocms-inherit==0.2.1
|
||||
djangocms-link==1.7.2
|
||||
djangocms-page-meta==0.5.11
|
||||
djangocms-picture==1.0.0
|
||||
djangocms-teaser==0.2.0
|
||||
djangocms-text-ckeditor==2.9.3
|
||||
djangocms-video==1.0.0
|
||||
easy-thumbnails==2.3
|
||||
html5lib==0.9999999
|
||||
ldap3==2.6.1
|
||||
lxml==3.6.0
|
||||
model-mommy==1.2.6
|
||||
phonenumbers==7.4.0
|
||||
phonenumberslite==7.4.0
|
||||
psycopg2==2.7.3.2
|
||||
pycryptodome==3.6.6
|
||||
pylibmc==1.5.1
|
||||
python-dateutil==2.5.3
|
||||
python-slugify==1.2.0
|
||||
pytz==2016.4
|
||||
rcssmin==1.0.6
|
||||
requests==2.10.0
|
||||
rjsmin==1.0.12
|
||||
six==1.10.0
|
||||
sqlparse==0.1.19
|
||||
stripe==2.41.0
|
||||
wheel==0.29.0
|
||||
django-admin-honeypot==1.0.0
|
||||
coverage==4.3.4
|
||||
git+https://github.com/ungleich/python-oca.git#egg=oca
|
||||
djangorestframework==3.6.3
|
||||
flake8==3.3.0
|
||||
python-memcached==1.58
|
||||
celery==4.0.2
|
||||
redis==2.10.5
|
||||
django-celery-results==1.0.1
|
||||
kombu==4.1.0
|
||||
mccabe==0.6.1
|
||||
pycodestyle==2.3.1
|
||||
pyflakes==1.5.0
|
||||
billiard==3.5.0.3
|
||||
amqp==2.2.1
|
||||
vine==1.1.4
|
||||
cdist==5.0.1
|
||||
git+https://github.com/ungleich/djangocms-multisite.git#egg=djangocms_multisite
|
||||
pyotp
|
||||
django-treebeard==4.3.1
|
||||
django_celery_results==2.6.0
|
||||
django_compressor==4.6.0
|
||||
djangocms-admin-style==3.3.1
|
||||
djangocms-apphook-setup==0.5.1
|
||||
djangocms-attributes-field==4.1.2
|
||||
djangocms-file==4.0.1
|
||||
djangocms-multisite==0.3.1
|
||||
djangocms-page-meta==1.4.5
|
||||
djangocms-picture==4.1.1
|
||||
djangocms-text-ckeditor==5.1.7
|
||||
djangocms-video==3.1.0
|
||||
djangorestframework==3.18.1
|
||||
easy-thumbnails==2.10.1
|
||||
html5lib==1.1
|
||||
idna==3.20
|
||||
kombu==5.6.2
|
||||
ldap3==2.9.1
|
||||
lxml==6.1.3
|
||||
lxml_html_clean==0.4.5
|
||||
oca @ git+https://github.com/ungleich/python-oca.git@9bbda45683736a608c99d5e4bff65e50c93f734f
|
||||
packaging==26.3
|
||||
phonenumbers==9.0.40
|
||||
phonenumberslite==9.0.40
|
||||
pillow==12.3.0
|
||||
pluggy==0.13.1
|
||||
prompt_toolkit==3.0.53
|
||||
psycopg2==2.9.13
|
||||
py_svg_hush==0.3.0
|
||||
pyasn1==0.6.4
|
||||
pycrypto==2.6.1
|
||||
pycryptodome==3.23.0
|
||||
pymemcache==4.0.0
|
||||
PyOTP==2.10.0
|
||||
python-dateutil==2.9.0.post0
|
||||
python-dotenv==1.2.3
|
||||
python-slugify==9.1.2
|
||||
pytz==2026.4
|
||||
rcssmin==1.2.2
|
||||
requests==2.34.2
|
||||
requests-file==3.0.1
|
||||
rjsmin==1.2.5
|
||||
setuptools==84.0.0
|
||||
six==1.17.0
|
||||
sqlparse==0.6.0
|
||||
stripe==15.6.1
|
||||
text-unidecode==1.3
|
||||
tldextract==2.2.3
|
||||
typing_extensions==4.16.0
|
||||
tzdata==2026.4
|
||||
tzlocal==5.4.4
|
||||
Unidecode==1.4.0
|
||||
urllib3==2.8.0
|
||||
vine==5.1.0
|
||||
wcwidth==0.9.1
|
||||
webencodings==0.6.1
|
||||
YURL==1.0.0
|
||||
|
|
|
|||
|
|
@ -1,105 +0,0 @@
|
|||
aldryn-apphooks-config==0.7.0
|
||||
aldryn-boilerplates==0.8.0
|
||||
aldryn-categories==1.2.0
|
||||
aldryn-common==1.0.5
|
||||
aldryn-newsblog==2.2.1
|
||||
aldryn-people==2.2.0
|
||||
aldryn-translation-tools==0.3.0
|
||||
amqp==5.4.0
|
||||
asgiref==3.12.1
|
||||
babel==2.18.0
|
||||
backport_collections==0.1
|
||||
billiard==4.3.0
|
||||
cdist==7.0.0
|
||||
celery==5.6.3
|
||||
certifi==2026.7.22
|
||||
charset-normalizer==3.5.2
|
||||
click==8.5.0
|
||||
click-didyoumean==0.3.1
|
||||
click-plugins==1.1.1.2
|
||||
click-repl==0.4.0
|
||||
cmsplugin-filer==1.1.3
|
||||
Django==6.1.1
|
||||
django-appconf==1.2.0
|
||||
django-appdata==0.4.0
|
||||
django-bootstrap3==26.2
|
||||
django-classy-tags==0.8.0
|
||||
django-cms==3.11.11
|
||||
django-debug-toolbar==8.0.0
|
||||
django-filer==3.6.0
|
||||
django-formtools==2.1
|
||||
django-guardian==3.5.0
|
||||
django-js-asset==4.2.0
|
||||
django-meta==2.5.1
|
||||
django-meta-mixin==0.3.0
|
||||
django-mptt==0.18.0
|
||||
django-multisite==1.9.0
|
||||
django-parler==2.4
|
||||
django-phonenumber-field==1.3.0
|
||||
django-polymorphic==4.11.7
|
||||
django-recaptcha==4.1.0
|
||||
django-reversion==6.3.0
|
||||
django-sekizai==0.10.0
|
||||
django-sortedm2m==4.0.0
|
||||
django-stored-messages==1.4.0
|
||||
django-taggit==6.1.0
|
||||
django-taggit-autosuggest==0.4.2
|
||||
django-taggit-templatetags==0.2.5
|
||||
django-templatetag-sugar==1.0
|
||||
django-treebeard==4.3.1
|
||||
django_celery_results==2.6.0
|
||||
django_compressor==4.6.0
|
||||
djangocms-admin-style==3.3.1
|
||||
djangocms-apphook-setup==0.5.1
|
||||
djangocms-attributes-field==4.1.2
|
||||
djangocms-file==4.0.1
|
||||
djangocms-multisite==0.3.1
|
||||
djangocms-page-meta==1.4.5
|
||||
djangocms-picture==4.1.1
|
||||
djangocms-text-ckeditor==5.1.7
|
||||
djangocms-video==3.1.0
|
||||
djangorestframework==3.18.1
|
||||
easy-thumbnails==2.10.1
|
||||
html5lib==1.1
|
||||
idna==3.20
|
||||
kombu==5.6.2
|
||||
ldap3==2.9.1
|
||||
lxml==6.1.3
|
||||
lxml_html_clean==0.4.5
|
||||
oca @ git+https://github.com/ungleich/python-oca.git@9bbda45683736a608c99d5e4bff65e50c93f734f
|
||||
packaging==26.3
|
||||
phonenumbers==9.0.40
|
||||
phonenumberslite==9.0.40
|
||||
pillow==12.3.0
|
||||
pluggy==0.13.1
|
||||
prompt_toolkit==3.0.53
|
||||
psycopg2==2.9.13
|
||||
py_svg_hush==0.3.0
|
||||
pyasn1==0.6.4
|
||||
pycrypto==2.6.1
|
||||
pycryptodome==3.23.0
|
||||
pymemcache==4.0.0
|
||||
PyOTP==2.10.0
|
||||
python-dateutil==2.9.0.post0
|
||||
python-dotenv==1.2.3
|
||||
python-slugify==9.1.2
|
||||
pytz==2026.4
|
||||
rcssmin==1.2.2
|
||||
requests==2.34.2
|
||||
requests-file==3.0.1
|
||||
rjsmin==1.2.5
|
||||
setuptools==84.0.0
|
||||
six==1.17.0
|
||||
sqlparse==0.6.0
|
||||
stripe==15.6.1
|
||||
text-unidecode==1.3
|
||||
tldextract==2.2.3
|
||||
typing_extensions==4.16.0
|
||||
tzdata==2026.4
|
||||
tzlocal==5.4.4
|
||||
Unidecode==1.4.0
|
||||
urllib3==2.8.0
|
||||
vine==5.1.0
|
||||
wcwidth==0.9.1
|
||||
webencodings==0.6.1
|
||||
YURL==1.0.0
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
class MultipleProxyMiddleware(object):
|
||||
class MultipleProxyMiddleware:
|
||||
FORWARDED_FOR_FIELDS = [
|
||||
'HTTP_X_FORWARDED_FOR',
|
||||
'HTTP_X_FORWARDED_HOST',
|
||||
'HTTP_X_FORWARDED_SERVER',
|
||||
]
|
||||
|
||||
def process_request(self, request):
|
||||
def __init__(self, get_response):
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request):
|
||||
"""
|
||||
Rewrites the proxy headers so that only the most
|
||||
recent proxy is used.
|
||||
|
|
@ -15,3 +18,6 @@ class MultipleProxyMiddleware(object):
|
|||
if ',' in request.META[field]:
|
||||
parts = request.META[field].split(',')
|
||||
request.META[field] = parts[-1].strip()
|
||||
|
||||
response = self.get_response(request)
|
||||
return response
|
||||
2
vendor/djangocms_page_meta/__init__.py
vendored
Normal file
2
vendor/djangocms_page_meta/__init__.py
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
__version__ = "1.4.5"
|
||||
__author__ = "Iacopo Spalletti <i.spalletti@nephila.digital>"
|
||||
107
vendor/djangocms_page_meta/admin.py
vendored
Normal file
107
vendor/djangocms_page_meta/admin.py
vendored
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
from cms.admin.pageadmin import PageAdmin
|
||||
from cms.extensions import PageExtensionAdmin, TitleExtensionAdmin
|
||||
from cms.utils import get_language_from_request
|
||||
from django.conf import settings
|
||||
from django.contrib import admin
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .forms import GenericAttributeInlineForm, PageMetaAdminForm, TitleMetaAdminForm
|
||||
from .models import DefaultMetaImage, GenericMetaAttribute, PageMeta, TitleMeta
|
||||
|
||||
|
||||
@admin.register(DefaultMetaImage)
|
||||
class DefaultMetaImageAdmin(admin.ModelAdmin):
|
||||
actions = None
|
||||
|
||||
def has_add_permission(self, request):
|
||||
return False
|
||||
|
||||
def has_delete_permission(self, request, obj=None):
|
||||
return False
|
||||
|
||||
|
||||
class GenericAttributePageInline(admin.TabularInline):
|
||||
model = GenericMetaAttribute
|
||||
form = GenericAttributeInlineForm
|
||||
fields = ("page", "attribute", "name", "value")
|
||||
extra = 1
|
||||
|
||||
|
||||
class GenericAttributeTitleInline(admin.TabularInline):
|
||||
model = GenericMetaAttribute
|
||||
form = GenericAttributeInlineForm
|
||||
fields = ("title", "attribute", "name", "value")
|
||||
extra = 1
|
||||
|
||||
|
||||
@admin.register(PageMeta)
|
||||
class PageMetaAdmin(PageExtensionAdmin):
|
||||
raw_id_fields = ("og_author",)
|
||||
form = PageMetaAdminForm
|
||||
inlines = (GenericAttributePageInline,)
|
||||
fieldsets = (
|
||||
(None, {"fields": ("image",)}),
|
||||
(
|
||||
_("OpenGraph"),
|
||||
{
|
||||
"fields": (
|
||||
"og_type",
|
||||
("og_author", "og_author_url", "og_author_fbid"),
|
||||
("og_publisher", "og_app_id", "fb_pages"),
|
||||
),
|
||||
"classes": ("collapse",),
|
||||
},
|
||||
),
|
||||
(_("Twitter Cards"), {"fields": ("twitter_type", "twitter_author"), "classes": ("collapse",)}),
|
||||
(_("Schema.org microdata"), {"fields": ("schemaorg_type",), "classes": ("collapse")}),
|
||||
(_("Robots"), {"fields": ("robots",), "classes": ("collapse")}),
|
||||
)
|
||||
|
||||
class Media:
|
||||
css = {"all": ("{}djangocms_page_meta/css/{}".format(settings.STATIC_URL, "djangocms_page_meta_admin.css"),)}
|
||||
|
||||
def get_model_perms(self, request):
|
||||
"""
|
||||
Return empty perms dict thus hiding the model from admin index.
|
||||
"""
|
||||
return {}
|
||||
|
||||
|
||||
@admin.register(TitleMeta)
|
||||
class TitleMetaAdmin(TitleExtensionAdmin):
|
||||
form = TitleMetaAdminForm
|
||||
inlines = (GenericAttributeTitleInline,)
|
||||
|
||||
class Media:
|
||||
css = {"all": ("{}djangocms_page_meta/css/{}".format(settings.STATIC_URL, "djangocms_page_meta_admin.css"),)}
|
||||
|
||||
def get_model_perms(self, request):
|
||||
"""
|
||||
Return empty perms dict thus hiding the model from admin index.
|
||||
"""
|
||||
return {}
|
||||
|
||||
|
||||
# Monkey patch the PageAdmin with a new get_form method
|
||||
_BASE_PAGEADMIN__GET_FORM = PageAdmin.get_form
|
||||
|
||||
|
||||
def get_form(self, request, obj=None, **kwargs):
|
||||
"""
|
||||
Patched method for PageAdmin.get_form.
|
||||
|
||||
Returns a page form without the base field 'meta_description' which is
|
||||
overridden in djangocms-page-meta.
|
||||
|
||||
This is triggered in the page add view and in the change view if
|
||||
the meta description of the page is empty.
|
||||
"""
|
||||
language = get_language_from_request(request, obj)
|
||||
form = _BASE_PAGEADMIN__GET_FORM(self, request, obj, **kwargs)
|
||||
if not obj or not obj.get_meta_description(language=language):
|
||||
form.base_fields.pop("meta_description", None)
|
||||
|
||||
return form
|
||||
|
||||
|
||||
PageAdmin.get_form = get_form
|
||||
8
vendor/djangocms_page_meta/apps.py
vendored
Normal file
8
vendor/djangocms_page_meta/apps.py
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
from django.apps import AppConfig
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class PageMetaConfig(AppConfig):
|
||||
name = "djangocms_page_meta"
|
||||
verbose_name = _("django CMS Page Meta")
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
105
vendor/djangocms_page_meta/cms_toolbars.py
vendored
Normal file
105
vendor/djangocms_page_meta/cms_toolbars.py
vendored
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
from cms.api import get_page_draft
|
||||
from cms.cms_toolbars import PAGE_MENU_SECOND_BREAK
|
||||
from cms.toolbar.items import Break
|
||||
from cms.toolbar_base import CMSToolbar
|
||||
from cms.toolbar_pool import toolbar_pool
|
||||
from cms.utils.i18n import get_language_list, get_language_object
|
||||
from cms.utils.permissions import has_page_permission
|
||||
from django.urls import NoReverseMatch, reverse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .models import DefaultMetaImage, PageMeta, TitleMeta
|
||||
|
||||
try:
|
||||
from cms.utils import get_cms_setting
|
||||
except ImportError:
|
||||
from cms.utils.conf import get_cms_setting
|
||||
|
||||
|
||||
PAGE_META_MENU_TITLE = _("Meta-information")
|
||||
PAGE_META_ITEM_TITLE = _("Common")
|
||||
PAGE_META_DEFAULT_META_IMAGE_TITLE = _("Default meta image")
|
||||
|
||||
|
||||
@toolbar_pool.register
|
||||
class PageToolbarMeta(CMSToolbar):
|
||||
def populate(self):
|
||||
# always use draft if we have a page
|
||||
self.page = get_page_draft(self.request.current_page)
|
||||
if not self.page:
|
||||
# Nothing to do
|
||||
return
|
||||
if self.page.is_page_type:
|
||||
# we don't need this on page types
|
||||
return
|
||||
|
||||
# check global permissions if CMS_PERMISSIONS is active
|
||||
if get_cms_setting("PERMISSION"):
|
||||
has_global_current_page_change_permission = has_page_permission(
|
||||
self.request.user, self.request.current_page, "change_page"
|
||||
)
|
||||
else:
|
||||
has_global_current_page_change_permission = False
|
||||
# check if user has page edit permission
|
||||
permission = self.request.current_page.has_change_permission(self.request.user)
|
||||
can_change = self.request.current_page and permission
|
||||
if has_global_current_page_change_permission or can_change:
|
||||
not_edit_mode = not self.toolbar.edit_mode_active
|
||||
|
||||
current_page_menu = self.toolbar.get_or_create_menu("page")
|
||||
super_item = current_page_menu.find_first(Break, identifier=PAGE_MENU_SECOND_BREAK)
|
||||
if super_item:
|
||||
super_item = super_item + 1
|
||||
meta_menu = current_page_menu.get_or_create_menu("pagemeta", PAGE_META_MENU_TITLE, position=super_item)
|
||||
position = 0
|
||||
# Page tags
|
||||
default_meta_image = DefaultMetaImage.objects.first()
|
||||
if default_meta_image:
|
||||
meta_menu.add_modal_item(
|
||||
PAGE_META_DEFAULT_META_IMAGE_TITLE,
|
||||
url=reverse("admin:djangocms_page_meta_defaultmetaimage_change", args=(default_meta_image.pk,)),
|
||||
position=position,
|
||||
)
|
||||
position += 1
|
||||
try:
|
||||
page_extension = PageMeta.objects.get(extended_object_id=self.page.pk)
|
||||
except PageMeta.DoesNotExist:
|
||||
page_extension = None
|
||||
try:
|
||||
if page_extension:
|
||||
url = reverse("admin:djangocms_page_meta_pagemeta_change", args=(page_extension.pk,))
|
||||
else:
|
||||
url = "{}?extended_object={}".format(
|
||||
reverse("admin:djangocms_page_meta_pagemeta_add"), self.page.pk
|
||||
)
|
||||
except NoReverseMatch:
|
||||
# not in urls
|
||||
pass
|
||||
else:
|
||||
meta_menu.add_modal_item(PAGE_META_ITEM_TITLE, url=url, disabled=not_edit_mode, position=position)
|
||||
# Title tags
|
||||
site_id = self.page.node.site_id
|
||||
titles = self.page.title_set.filter(language__in=get_language_list(site_id))
|
||||
|
||||
title_extensions = {
|
||||
t.extended_object_id: t
|
||||
for t in TitleMeta.objects.filter(extended_object_id__in=[title.id for title in titles])
|
||||
}
|
||||
|
||||
for title in titles:
|
||||
try:
|
||||
if title.pk in title_extensions:
|
||||
url = reverse(
|
||||
"admin:djangocms_page_meta_titlemeta_change", args=(title_extensions[title.pk].pk,)
|
||||
)
|
||||
else:
|
||||
url = "{}?extended_object={}".format(
|
||||
reverse("admin:djangocms_page_meta_titlemeta_add"), title.pk
|
||||
)
|
||||
except NoReverseMatch:
|
||||
# not in urls
|
||||
pass
|
||||
else:
|
||||
position += 1
|
||||
language = get_language_object(title.language)
|
||||
meta_menu.add_modal_item(language["name"], url=url, disabled=not_edit_mode, position=position)
|
||||
45
vendor/djangocms_page_meta/forms.py
vendored
Normal file
45
vendor/djangocms_page_meta/forms.py
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
from django import forms
|
||||
from django.core.validators import MaxLengthValidator
|
||||
|
||||
from .models import GenericMetaAttribute, PageMeta, TitleMeta
|
||||
from .settings import get_setting
|
||||
|
||||
|
||||
class PageMetaAdminForm(forms.ModelForm):
|
||||
robots = forms.MultipleChoiceField(
|
||||
choices=get_setting("ROBOTS_CHOICES"),
|
||||
widget=forms.CheckboxSelectMultiple,
|
||||
required=False,
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
if kwargs.get("instance"):
|
||||
self.initial["robots"] = kwargs.get("instance").robots_list
|
||||
|
||||
class Meta:
|
||||
model = PageMeta
|
||||
exclude = ()
|
||||
|
||||
|
||||
class TitleMetaAdminForm(forms.ModelForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.base_fields["description"].validators = [MaxLengthValidator(get_setting("DESCRIPTION_LENGTH"))]
|
||||
self.base_fields["twitter_description"].validators = [
|
||||
MaxLengthValidator(get_setting("TWITTER_DESCRIPTION_LENGTH"))
|
||||
]
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
model = TitleMeta
|
||||
exclude = ()
|
||||
|
||||
|
||||
class GenericAttributeInlineForm(forms.ModelForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields["attribute"].widget.attrs["placeholder"] = GenericMetaAttribute.DEFAULT_ATTRIBUTE
|
||||
|
||||
class Meta:
|
||||
model = GenericMetaAttribute
|
||||
exclude = ()
|
||||
232
vendor/djangocms_page_meta/locale/ar/LC_MESSAGES/django.po
vendored
Normal file
232
vendor/djangocms_page_meta/locale/ar/LC_MESSAGES/django.po
vendored
Normal file
|
|
@ -0,0 +1,232 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: djangocms-page-meta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-20 13:10+0100\n"
|
||||
"PO-Revision-Date: 2020-12-20 12:11+0000\n"
|
||||
"Last-Translator: yakky <i.spalletti@nephila.digital>\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/nephila/djangocms-page-meta/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ar\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
#: admin.py:32
|
||||
msgid "OpenGraph"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:42
|
||||
msgid "Twitter Cards"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:43
|
||||
msgid "Schema.org microdata"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:7
|
||||
msgid "django CMS Page Meta"
|
||||
msgstr ""
|
||||
|
||||
#: cms_toolbars.py:19
|
||||
msgid "Meta-information"
|
||||
msgstr ""
|
||||
|
||||
#: cms_toolbars.py:20
|
||||
msgid "Common"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:26
|
||||
msgid "Used if title image is empty."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30 models.py:61 models.py:65
|
||||
msgid "Resource type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 models.py:69
|
||||
msgid "Use Article for generic pages."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:38
|
||||
msgid "Author account"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:43
|
||||
msgid "Author Facebook URL"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:45
|
||||
msgid "Author Facebook ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:45
|
||||
msgid "Use Facebook numeric ID."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:47
|
||||
msgid "Website Facebook URL"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:48
|
||||
msgid "Facebook App ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:49
|
||||
msgid "Facebook Pages ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:51
|
||||
msgid "Author Twitter Account"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:51 models.py:58
|
||||
msgid "'@' character not required."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:54
|
||||
msgid "Website Twitter Account"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:73 models.py:74
|
||||
msgid "Page meta info (all languages)"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:77
|
||||
#, python-brace-format
|
||||
msgid "Page Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:98
|
||||
msgid "If empty, page image will be used for all languages."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:103
|
||||
msgid "Facebook Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104
|
||||
msgid "Twitter Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Schemaorg Name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Name of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
#| msgid "Facebook Description"
|
||||
msgid "Schemaorg Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
msgid "Description of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:113 models.py:114 models.py:163 models.py:164
|
||||
msgid "Page meta info (language-dependent)"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:117
|
||||
#, python-brace-format
|
||||
msgid "Title Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:145
|
||||
msgid "attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:147
|
||||
msgid "Custom attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:152
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:154
|
||||
msgid "Meta attribute name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:157
|
||||
msgid "value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:159
|
||||
msgid "Meta attribute value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:168 models.py:170
|
||||
#, python-brace-format
|
||||
#| msgid "Attribute {0} for page {1}"
|
||||
msgid "Attribute {0} for {1}"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Google+ Snippets"
|
||||
#~ msgstr "Google+ Snippets"
|
||||
|
||||
#~ msgid "Author Google+ URL"
|
||||
#~ msgstr "Author Google+ URL"
|
||||
|
||||
#~ msgid "Use the Google+ Name (together with \"+\")"
|
||||
#~ msgstr "Use the Google+ Name (together with \"+\")"
|
||||
|
||||
#~ msgid "Google+ Description"
|
||||
#~ msgstr "Google+ Description"
|
||||
|
||||
#~ msgid "Attribute {0} for title {1}"
|
||||
#~ msgstr "Attribute {0} for title {1}"
|
||||
|
||||
#~ msgid "Article"
|
||||
#~ msgstr "Article"
|
||||
|
||||
#~ msgid "Website"
|
||||
#~ msgstr "Website"
|
||||
|
||||
#~ msgid "Summary"
|
||||
#~ msgstr "Summary"
|
||||
|
||||
#~ msgid "Summary large image"
|
||||
#~ msgstr "Summary large image"
|
||||
|
||||
#~ msgid "Product"
|
||||
#~ msgstr "Product"
|
||||
|
||||
#~ msgid "Photo"
|
||||
#~ msgstr "Photo"
|
||||
|
||||
#~ msgid "Player"
|
||||
#~ msgstr "Player"
|
||||
|
||||
#~ msgid "App"
|
||||
#~ msgstr "App"
|
||||
|
||||
#~ msgid "Blog"
|
||||
#~ msgstr "Blog"
|
||||
|
||||
#~ msgid "Book"
|
||||
#~ msgstr "Book"
|
||||
|
||||
#~ msgid "Event"
|
||||
#~ msgstr "Event"
|
||||
|
||||
#~ msgid "LocalBusiness"
|
||||
#~ msgstr "LocalBusiness"
|
||||
|
||||
#~ msgid "Organization"
|
||||
#~ msgstr "Organization"
|
||||
|
||||
#~ msgid "Person"
|
||||
#~ msgstr "Person"
|
||||
|
||||
#~ msgid "Review"
|
||||
#~ msgstr "Review"
|
||||
232
vendor/djangocms_page_meta/locale/bg/LC_MESSAGES/django.po
vendored
Normal file
232
vendor/djangocms_page_meta/locale/bg/LC_MESSAGES/django.po
vendored
Normal file
|
|
@ -0,0 +1,232 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: djangocms-page-meta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-20 13:10+0100\n"
|
||||
"PO-Revision-Date: 2020-12-20 12:11+0000\n"
|
||||
"Last-Translator: yakky <i.spalletti@nephila.digital>\n"
|
||||
"Language-Team: Bulgarian (http://www.transifex.com/nephila/djangocms-page-meta/language/bg/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: bg\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: admin.py:32
|
||||
msgid "OpenGraph"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:42
|
||||
msgid "Twitter Cards"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:43
|
||||
msgid "Schema.org microdata"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:7
|
||||
msgid "django CMS Page Meta"
|
||||
msgstr ""
|
||||
|
||||
#: cms_toolbars.py:19
|
||||
msgid "Meta-information"
|
||||
msgstr ""
|
||||
|
||||
#: cms_toolbars.py:20
|
||||
msgid "Common"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:26
|
||||
msgid "Used if title image is empty."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30 models.py:61 models.py:65
|
||||
msgid "Resource type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 models.py:69
|
||||
msgid "Use Article for generic pages."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:38
|
||||
msgid "Author account"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:43
|
||||
msgid "Author Facebook URL"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:45
|
||||
msgid "Author Facebook ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:45
|
||||
msgid "Use Facebook numeric ID."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:47
|
||||
msgid "Website Facebook URL"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:48
|
||||
msgid "Facebook App ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:49
|
||||
msgid "Facebook Pages ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:51
|
||||
msgid "Author Twitter Account"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:51 models.py:58
|
||||
msgid "'@' character not required."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:54
|
||||
msgid "Website Twitter Account"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:73 models.py:74
|
||||
msgid "Page meta info (all languages)"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:77
|
||||
#, python-brace-format
|
||||
msgid "Page Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:98
|
||||
msgid "If empty, page image will be used for all languages."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:103
|
||||
msgid "Facebook Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104
|
||||
msgid "Twitter Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Schemaorg Name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Name of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
#| msgid "Facebook Description"
|
||||
msgid "Schemaorg Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
msgid "Description of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:113 models.py:114 models.py:163 models.py:164
|
||||
msgid "Page meta info (language-dependent)"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:117
|
||||
#, python-brace-format
|
||||
msgid "Title Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:145
|
||||
msgid "attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:147
|
||||
msgid "Custom attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:152
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:154
|
||||
msgid "Meta attribute name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:157
|
||||
msgid "value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:159
|
||||
msgid "Meta attribute value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:168 models.py:170
|
||||
#, python-brace-format
|
||||
#| msgid "Attribute {0} for page {1}"
|
||||
msgid "Attribute {0} for {1}"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Google+ Snippets"
|
||||
#~ msgstr "Google+ Snippets"
|
||||
|
||||
#~ msgid "Author Google+ URL"
|
||||
#~ msgstr "Author Google+ URL"
|
||||
|
||||
#~ msgid "Use the Google+ Name (together with \"+\")"
|
||||
#~ msgstr "Use the Google+ Name (together with \"+\")"
|
||||
|
||||
#~ msgid "Google+ Description"
|
||||
#~ msgstr "Google+ Description"
|
||||
|
||||
#~ msgid "Attribute {0} for title {1}"
|
||||
#~ msgstr "Attribute {0} for title {1}"
|
||||
|
||||
#~ msgid "Article"
|
||||
#~ msgstr "Article"
|
||||
|
||||
#~ msgid "Website"
|
||||
#~ msgstr "Website"
|
||||
|
||||
#~ msgid "Summary"
|
||||
#~ msgstr "Summary"
|
||||
|
||||
#~ msgid "Summary large image"
|
||||
#~ msgstr "Summary large image"
|
||||
|
||||
#~ msgid "Product"
|
||||
#~ msgstr "Product"
|
||||
|
||||
#~ msgid "Photo"
|
||||
#~ msgstr "Photo"
|
||||
|
||||
#~ msgid "Player"
|
||||
#~ msgstr "Player"
|
||||
|
||||
#~ msgid "App"
|
||||
#~ msgstr "App"
|
||||
|
||||
#~ msgid "Blog"
|
||||
#~ msgstr "Blog"
|
||||
|
||||
#~ msgid "Book"
|
||||
#~ msgstr "Book"
|
||||
|
||||
#~ msgid "Event"
|
||||
#~ msgstr "Event"
|
||||
|
||||
#~ msgid "LocalBusiness"
|
||||
#~ msgstr "LocalBusiness"
|
||||
|
||||
#~ msgid "Organization"
|
||||
#~ msgstr "Organization"
|
||||
|
||||
#~ msgid "Person"
|
||||
#~ msgstr "Person"
|
||||
|
||||
#~ msgid "Review"
|
||||
#~ msgstr "Review"
|
||||
234
vendor/djangocms_page_meta/locale/de/LC_MESSAGES/django.po
vendored
Normal file
234
vendor/djangocms_page_meta/locale/de/LC_MESSAGES/django.po
vendored
Normal file
|
|
@ -0,0 +1,234 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# fsbraun <fsbraun@gmx.de>, 2016-2017
|
||||
# djangoger <thomas.meitz@retailify.de>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: djangocms-page-meta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-20 13:10+0100\n"
|
||||
"PO-Revision-Date: 2020-12-20 12:11+0000\n"
|
||||
"Last-Translator: yakky <i.spalletti@nephila.digital>\n"
|
||||
"Language-Team: German (http://www.transifex.com/nephila/djangocms-page-meta/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: admin.py:32
|
||||
msgid "OpenGraph"
|
||||
msgstr "OpenGraph"
|
||||
|
||||
#: admin.py:42
|
||||
msgid "Twitter Cards"
|
||||
msgstr "Twitter Cards"
|
||||
|
||||
#: admin.py:43
|
||||
msgid "Schema.org microdata"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:7
|
||||
msgid "django CMS Page Meta"
|
||||
msgstr "django CMS Seiten-Meta"
|
||||
|
||||
#: cms_toolbars.py:19
|
||||
msgid "Meta-information"
|
||||
msgstr "Meta-Information"
|
||||
|
||||
#: cms_toolbars.py:20
|
||||
msgid "Common"
|
||||
msgstr "Gemeinsam"
|
||||
|
||||
#: models.py:26
|
||||
msgid "Used if title image is empty."
|
||||
msgstr "Wird verwendet, wenn das Titelbild ist leer ist."
|
||||
|
||||
#: models.py:30 models.py:61 models.py:65
|
||||
msgid "Resource type"
|
||||
msgstr "Ressourcentyp"
|
||||
|
||||
#: models.py:34 models.py:69
|
||||
msgid "Use Article for generic pages."
|
||||
msgstr "Nutze Artikel für generische Seiten."
|
||||
|
||||
#: models.py:38
|
||||
msgid "Author account"
|
||||
msgstr "Account des Autor"
|
||||
|
||||
#: models.py:43
|
||||
msgid "Author Facebook URL"
|
||||
msgstr "Facebook-URL des Autors"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Author Facebook ID"
|
||||
msgstr "Facebook-ID des Autor"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Use Facebook numeric ID."
|
||||
msgstr "Nutze die numerische Facebook-ID"
|
||||
|
||||
#: models.py:47
|
||||
msgid "Website Facebook URL"
|
||||
msgstr "Facebook-URL der Wbsite"
|
||||
|
||||
#: models.py:48
|
||||
msgid "Facebook App ID"
|
||||
msgstr "Facebook App-ID"
|
||||
|
||||
#: models.py:49
|
||||
msgid "Facebook Pages ID"
|
||||
msgstr "Facebook Seiten-ID"
|
||||
|
||||
#: models.py:51
|
||||
msgid "Author Twitter Account"
|
||||
msgstr "Twitter-Account des Autors"
|
||||
|
||||
#: models.py:51 models.py:58
|
||||
msgid "'@' character not required."
|
||||
msgstr "„@“ nicht benötigt"
|
||||
|
||||
#: models.py:54
|
||||
msgid "Website Twitter Account"
|
||||
msgstr "Twitter-Account der Website"
|
||||
|
||||
#: models.py:73 models.py:74
|
||||
msgid "Page meta info (all languages)"
|
||||
msgstr "Meta-Informationen der Seite (alle Sprachen)"
|
||||
|
||||
#: models.py:77
|
||||
#, python-brace-format
|
||||
msgid "Page Meta for {0}"
|
||||
msgstr "Meta für Seite {0}"
|
||||
|
||||
#: models.py:98
|
||||
msgid "If empty, page image will be used for all languages."
|
||||
msgstr "Wenn nicht gesetzt, wird das Seitenbild wird für alle Sprachen genutzt."
|
||||
|
||||
#: models.py:103
|
||||
msgid "Facebook Description"
|
||||
msgstr "Facebook-Beschreibung"
|
||||
|
||||
#: models.py:104
|
||||
msgid "Twitter Description"
|
||||
msgstr "Twitter-Beschreibung"
|
||||
|
||||
#: models.py:106
|
||||
msgid "Schemaorg Name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Name of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
#| msgid "Facebook Description"
|
||||
msgid "Schemaorg Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
msgid "Description of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:113 models.py:114 models.py:163 models.py:164
|
||||
msgid "Page meta info (language-dependent)"
|
||||
msgstr "Meta-Informationen der Seite (sprachabhängig)"
|
||||
|
||||
#: models.py:117
|
||||
#, python-brace-format
|
||||
msgid "Title Meta for {0}"
|
||||
msgstr "Meta-Titel für {0}"
|
||||
|
||||
#: models.py:145
|
||||
msgid "attribute"
|
||||
msgstr "Attribut"
|
||||
|
||||
#: models.py:147
|
||||
msgid "Custom attribute"
|
||||
msgstr "Benutzerdefiniertes Attribut"
|
||||
|
||||
#: models.py:152
|
||||
msgid "name"
|
||||
msgstr "Name"
|
||||
|
||||
#: models.py:154
|
||||
msgid "Meta attribute name"
|
||||
msgstr "Name des Meta-Attribut"
|
||||
|
||||
#: models.py:157
|
||||
msgid "value"
|
||||
msgstr "Wert"
|
||||
|
||||
#: models.py:159
|
||||
msgid "Meta attribute value"
|
||||
msgstr "Wert des Meta-Attributs"
|
||||
|
||||
#: models.py:168 models.py:170
|
||||
#, python-brace-format
|
||||
#| msgid "Attribute {0} for page {1}"
|
||||
msgid "Attribute {0} for {1}"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Google+ Snippets"
|
||||
#~ msgstr "Google+ Snippets"
|
||||
|
||||
#~ msgid "Author Google+ URL"
|
||||
#~ msgstr "Author Google+ URL"
|
||||
|
||||
#~ msgid "Use the Google+ Name (together with \"+\")"
|
||||
#~ msgstr "Use the Google+ Name (together with \"+\")"
|
||||
|
||||
#~ msgid "Google+ Description"
|
||||
#~ msgstr "Google+ Description"
|
||||
|
||||
#~ msgid "Attribute {0} for title {1}"
|
||||
#~ msgstr "Attribute {0} for title {1}"
|
||||
|
||||
#~ msgid "Article"
|
||||
#~ msgstr "Article"
|
||||
|
||||
#~ msgid "Website"
|
||||
#~ msgstr "Website"
|
||||
|
||||
#~ msgid "Summary"
|
||||
#~ msgstr "Summary"
|
||||
|
||||
#~ msgid "Summary large image"
|
||||
#~ msgstr "Summary large image"
|
||||
|
||||
#~ msgid "Product"
|
||||
#~ msgstr "Product"
|
||||
|
||||
#~ msgid "Photo"
|
||||
#~ msgstr "Photo"
|
||||
|
||||
#~ msgid "Player"
|
||||
#~ msgstr "Player"
|
||||
|
||||
#~ msgid "App"
|
||||
#~ msgstr "App"
|
||||
|
||||
#~ msgid "Blog"
|
||||
#~ msgstr "Blog"
|
||||
|
||||
#~ msgid "Book"
|
||||
#~ msgstr "Book"
|
||||
|
||||
#~ msgid "Event"
|
||||
#~ msgstr "Event"
|
||||
|
||||
#~ msgid "LocalBusiness"
|
||||
#~ msgstr "LocalBusiness"
|
||||
|
||||
#~ msgid "Organization"
|
||||
#~ msgstr "Organization"
|
||||
|
||||
#~ msgid "Person"
|
||||
#~ msgstr "Person"
|
||||
|
||||
#~ msgid "Review"
|
||||
#~ msgstr "Review"
|
||||
233
vendor/djangocms_page_meta/locale/en/LC_MESSAGES/django.po
vendored
Normal file
233
vendor/djangocms_page_meta/locale/en/LC_MESSAGES/django.po
vendored
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: djangocms-page-meta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-20 13:10+0100\n"
|
||||
"PO-Revision-Date: 2017-12-30 18:56+0000\n"
|
||||
"Last-Translator: yakky <i.spalletti@nephila.digital>\n"
|
||||
"Language-Team: English (http://www.transifex.com/nephila/djangocms-page-meta/"
|
||||
"language/en/)\n"
|
||||
"Language: en\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: admin.py:32
|
||||
msgid "OpenGraph"
|
||||
msgstr "OpenGraph"
|
||||
|
||||
#: admin.py:42
|
||||
msgid "Twitter Cards"
|
||||
msgstr "Twitter Cards"
|
||||
|
||||
#: admin.py:43
|
||||
msgid "Schema.org microdata"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:7
|
||||
msgid "django CMS Page Meta"
|
||||
msgstr "django CMS Page Meta"
|
||||
|
||||
#: cms_toolbars.py:19
|
||||
msgid "Meta-information"
|
||||
msgstr "Meta-information"
|
||||
|
||||
#: cms_toolbars.py:20
|
||||
msgid "Common"
|
||||
msgstr "Common"
|
||||
|
||||
#: models.py:26
|
||||
msgid "Used if title image is empty."
|
||||
msgstr "Used if title image is empty."
|
||||
|
||||
#: models.py:30 models.py:61 models.py:65
|
||||
msgid "Resource type"
|
||||
msgstr "Resource type"
|
||||
|
||||
#: models.py:34 models.py:69
|
||||
msgid "Use Article for generic pages."
|
||||
msgstr "Use Article for generic pages."
|
||||
|
||||
#: models.py:38
|
||||
msgid "Author account"
|
||||
msgstr "Author account"
|
||||
|
||||
#: models.py:43
|
||||
msgid "Author Facebook URL"
|
||||
msgstr "Author Facebook URL"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Author Facebook ID"
|
||||
msgstr "Author Facebook ID"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Use Facebook numeric ID."
|
||||
msgstr "Use Facebook numeric ID"
|
||||
|
||||
#: models.py:47
|
||||
msgid "Website Facebook URL"
|
||||
msgstr "Website Facebook URL"
|
||||
|
||||
#: models.py:48
|
||||
msgid "Facebook App ID"
|
||||
msgstr "Facebook App ID"
|
||||
|
||||
#: models.py:49
|
||||
msgid "Facebook Pages ID"
|
||||
msgstr "Facebook Pages ID"
|
||||
|
||||
#: models.py:51
|
||||
msgid "Author Twitter Account"
|
||||
msgstr "Author Twitter Account"
|
||||
|
||||
#: models.py:51 models.py:58
|
||||
msgid "'@' character not required."
|
||||
msgstr "\"@\" character not required."
|
||||
|
||||
#: models.py:54
|
||||
msgid "Website Twitter Account"
|
||||
msgstr "Website Twitter Account"
|
||||
|
||||
#: models.py:73 models.py:74
|
||||
msgid "Page meta info (all languages)"
|
||||
msgstr "Page meta info (all languages)"
|
||||
|
||||
#: models.py:77
|
||||
#, python-brace-format
|
||||
msgid "Page Meta for {0}"
|
||||
msgstr "Page Meta for {0}"
|
||||
|
||||
#: models.py:98
|
||||
msgid "If empty, page image will be used for all languages."
|
||||
msgstr "If empty, page image will be used for all languages."
|
||||
|
||||
#: models.py:103
|
||||
msgid "Facebook Description"
|
||||
msgstr "Facebook Description"
|
||||
|
||||
#: models.py:104
|
||||
msgid "Twitter Description"
|
||||
msgstr "Twitter Description"
|
||||
|
||||
#: models.py:106
|
||||
msgid "Schemaorg Name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Name of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
#, fuzzy
|
||||
#| msgid "Facebook Description"
|
||||
msgid "Schemaorg Description"
|
||||
msgstr "Facebook Description"
|
||||
|
||||
#: models.py:109
|
||||
msgid "Description of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:113 models.py:114 models.py:163 models.py:164
|
||||
msgid "Page meta info (language-dependent)"
|
||||
msgstr "Page meta info (language-dependent)"
|
||||
|
||||
#: models.py:117
|
||||
#, python-brace-format
|
||||
msgid "Title Meta for {0}"
|
||||
msgstr "Title Meta for {0}"
|
||||
|
||||
#: models.py:145
|
||||
msgid "attribute"
|
||||
msgstr "attribute"
|
||||
|
||||
#: models.py:147
|
||||
msgid "Custom attribute"
|
||||
msgstr "Custom attribute"
|
||||
|
||||
#: models.py:152
|
||||
msgid "name"
|
||||
msgstr "name"
|
||||
|
||||
#: models.py:154
|
||||
msgid "Meta attribute name"
|
||||
msgstr "Meta attribute name"
|
||||
|
||||
#: models.py:157
|
||||
msgid "value"
|
||||
msgstr "value"
|
||||
|
||||
#: models.py:159
|
||||
msgid "Meta attribute value"
|
||||
msgstr "Meta attribute value"
|
||||
|
||||
#: models.py:168 models.py:170
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Attribute {0} for page {1}"
|
||||
msgid "Attribute {0} for {1}"
|
||||
msgstr "Attribute {0} for page {1}"
|
||||
|
||||
#~ msgid "Google+ Snippets"
|
||||
#~ msgstr "Google+ Snippets"
|
||||
|
||||
#~ msgid "Author Google+ URL"
|
||||
#~ msgstr "Author Google+ URL"
|
||||
|
||||
#~ msgid "Use the Google+ Name (together with \"+\")"
|
||||
#~ msgstr "Use the Google+ Name (together with \"+\")"
|
||||
|
||||
#~ msgid "Google+ Description"
|
||||
#~ msgstr "Google+ Description"
|
||||
|
||||
#~ msgid "Attribute {0} for title {1}"
|
||||
#~ msgstr "Attribute {0} for title {1}"
|
||||
|
||||
#~ msgid "Article"
|
||||
#~ msgstr "Article"
|
||||
|
||||
#~ msgid "Website"
|
||||
#~ msgstr "Website"
|
||||
|
||||
#~ msgid "Summary"
|
||||
#~ msgstr "Summary"
|
||||
|
||||
#~ msgid "Summary large image"
|
||||
#~ msgstr "Summary large image"
|
||||
|
||||
#~ msgid "Product"
|
||||
#~ msgstr "Product"
|
||||
|
||||
#~ msgid "Photo"
|
||||
#~ msgstr "Photo"
|
||||
|
||||
#~ msgid "Player"
|
||||
#~ msgstr "Player"
|
||||
|
||||
#~ msgid "App"
|
||||
#~ msgstr "App"
|
||||
|
||||
#~ msgid "Blog"
|
||||
#~ msgstr "Blog"
|
||||
|
||||
#~ msgid "Book"
|
||||
#~ msgstr "Book"
|
||||
|
||||
#~ msgid "Event"
|
||||
#~ msgstr "Event"
|
||||
|
||||
#~ msgid "LocalBusiness"
|
||||
#~ msgstr "LocalBusiness"
|
||||
|
||||
#~ msgid "Organization"
|
||||
#~ msgstr "Organization"
|
||||
|
||||
#~ msgid "Person"
|
||||
#~ msgstr "Person"
|
||||
|
||||
#~ msgid "Review"
|
||||
#~ msgstr "Review"
|
||||
233
vendor/djangocms_page_meta/locale/es/LC_MESSAGES/django.po
vendored
Normal file
233
vendor/djangocms_page_meta/locale/es/LC_MESSAGES/django.po
vendored
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# David <d.diazp@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: djangocms-page-meta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-20 13:10+0100\n"
|
||||
"PO-Revision-Date: 2020-12-20 12:11+0000\n"
|
||||
"Last-Translator: yakky <i.spalletti@nephila.digital>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/nephila/djangocms-page-meta/language/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: admin.py:32
|
||||
msgid "OpenGraph"
|
||||
msgstr "OpenGraph"
|
||||
|
||||
#: admin.py:42
|
||||
msgid "Twitter Cards"
|
||||
msgstr "Twitter Cards"
|
||||
|
||||
#: admin.py:43
|
||||
msgid "Schema.org microdata"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:7
|
||||
msgid "django CMS Page Meta"
|
||||
msgstr ""
|
||||
|
||||
#: cms_toolbars.py:19
|
||||
msgid "Meta-information"
|
||||
msgstr "Meta-información"
|
||||
|
||||
#: cms_toolbars.py:20
|
||||
msgid "Common"
|
||||
msgstr "Común"
|
||||
|
||||
#: models.py:26
|
||||
msgid "Used if title image is empty."
|
||||
msgstr "Usado si el título de la imagen está vacío."
|
||||
|
||||
#: models.py:30 models.py:61 models.py:65
|
||||
msgid "Resource type"
|
||||
msgstr "Tipo de recurso"
|
||||
|
||||
#: models.py:34 models.py:69
|
||||
msgid "Use Article for generic pages."
|
||||
msgstr "Utilice el artículo para las páginas genéricas."
|
||||
|
||||
#: models.py:38
|
||||
msgid "Author account"
|
||||
msgstr "Cuenta de autor"
|
||||
|
||||
#: models.py:43
|
||||
msgid "Author Facebook URL"
|
||||
msgstr "URL de Facebook del autor"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Author Facebook ID"
|
||||
msgstr "ID de Facebook del autor"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Use Facebook numeric ID."
|
||||
msgstr "Usar ID numérico de Facebook"
|
||||
|
||||
#: models.py:47
|
||||
msgid "Website Facebook URL"
|
||||
msgstr "URL de Facebook del sitio web"
|
||||
|
||||
#: models.py:48
|
||||
msgid "Facebook App ID"
|
||||
msgstr "ID de aplicación de Facebook"
|
||||
|
||||
#: models.py:49
|
||||
msgid "Facebook Pages ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:51
|
||||
msgid "Author Twitter Account"
|
||||
msgstr "Cuenta de Twitter del autor"
|
||||
|
||||
#: models.py:51 models.py:58
|
||||
msgid "'@' character not required."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:54
|
||||
msgid "Website Twitter Account"
|
||||
msgstr "Cuenta de Twitter del sitio web"
|
||||
|
||||
#: models.py:73 models.py:74
|
||||
msgid "Page meta info (all languages)"
|
||||
msgstr "Información meta de la página (todos los lenguajes)"
|
||||
|
||||
#: models.py:77
|
||||
#, python-brace-format
|
||||
msgid "Page Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:98
|
||||
msgid "If empty, page image will be used for all languages."
|
||||
msgstr "Si está vacío, la imagen de página se usará para todos los lenguajes."
|
||||
|
||||
#: models.py:103
|
||||
msgid "Facebook Description"
|
||||
msgstr "Descripción de Facebook"
|
||||
|
||||
#: models.py:104
|
||||
msgid "Twitter Description"
|
||||
msgstr "Descripción de Twitter"
|
||||
|
||||
#: models.py:106
|
||||
msgid "Schemaorg Name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Name of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
#| msgid "Facebook Description"
|
||||
msgid "Schemaorg Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
msgid "Description of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:113 models.py:114 models.py:163 models.py:164
|
||||
msgid "Page meta info (language-dependent)"
|
||||
msgstr "Meta información de la página (independiente del lenguaje)"
|
||||
|
||||
#: models.py:117
|
||||
#, python-brace-format
|
||||
msgid "Title Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:145
|
||||
msgid "attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:147
|
||||
msgid "Custom attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:152
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:154
|
||||
msgid "Meta attribute name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:157
|
||||
msgid "value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:159
|
||||
msgid "Meta attribute value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:168 models.py:170
|
||||
#, python-brace-format
|
||||
#| msgid "Attribute {0} for page {1}"
|
||||
msgid "Attribute {0} for {1}"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Google+ Snippets"
|
||||
#~ msgstr "Google+ Snippets"
|
||||
|
||||
#~ msgid "Author Google+ URL"
|
||||
#~ msgstr "Author Google+ URL"
|
||||
|
||||
#~ msgid "Use the Google+ Name (together with \"+\")"
|
||||
#~ msgstr "Use the Google+ Name (together with \"+\")"
|
||||
|
||||
#~ msgid "Google+ Description"
|
||||
#~ msgstr "Google+ Description"
|
||||
|
||||
#~ msgid "Attribute {0} for title {1}"
|
||||
#~ msgstr "Attribute {0} for title {1}"
|
||||
|
||||
#~ msgid "Article"
|
||||
#~ msgstr "Article"
|
||||
|
||||
#~ msgid "Website"
|
||||
#~ msgstr "Website"
|
||||
|
||||
#~ msgid "Summary"
|
||||
#~ msgstr "Summary"
|
||||
|
||||
#~ msgid "Summary large image"
|
||||
#~ msgstr "Summary large image"
|
||||
|
||||
#~ msgid "Product"
|
||||
#~ msgstr "Product"
|
||||
|
||||
#~ msgid "Photo"
|
||||
#~ msgstr "Photo"
|
||||
|
||||
#~ msgid "Player"
|
||||
#~ msgstr "Player"
|
||||
|
||||
#~ msgid "App"
|
||||
#~ msgstr "App"
|
||||
|
||||
#~ msgid "Blog"
|
||||
#~ msgstr "Blog"
|
||||
|
||||
#~ msgid "Book"
|
||||
#~ msgstr "Book"
|
||||
|
||||
#~ msgid "Event"
|
||||
#~ msgstr "Event"
|
||||
|
||||
#~ msgid "LocalBusiness"
|
||||
#~ msgstr "LocalBusiness"
|
||||
|
||||
#~ msgid "Organization"
|
||||
#~ msgstr "Organization"
|
||||
|
||||
#~ msgid "Person"
|
||||
#~ msgstr "Person"
|
||||
|
||||
#~ msgid "Review"
|
||||
#~ msgstr "Review"
|
||||
233
vendor/djangocms_page_meta/locale/it/LC_MESSAGES/django.po
vendored
Normal file
233
vendor/djangocms_page_meta/locale/it/LC_MESSAGES/django.po
vendored
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# yakky <i.spalletti@nephila.digital>, 2014,2017,2019-2020
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: djangocms-page-meta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-20 13:10+0100\n"
|
||||
"PO-Revision-Date: 2020-12-20 12:12+0000\n"
|
||||
"Last-Translator: yakky <i.spalletti@nephila.digital>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/nephila/djangocms-page-meta/language/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: admin.py:32
|
||||
msgid "OpenGraph"
|
||||
msgstr "OpenGraph"
|
||||
|
||||
#: admin.py:42
|
||||
msgid "Twitter Cards"
|
||||
msgstr "Twitter Cards"
|
||||
|
||||
#: admin.py:43
|
||||
msgid "Schema.org microdata"
|
||||
msgstr "Microdata Schema.org"
|
||||
|
||||
#: apps.py:7
|
||||
msgid "django CMS Page Meta"
|
||||
msgstr "django CMS Page Meta"
|
||||
|
||||
#: cms_toolbars.py:19
|
||||
msgid "Meta-information"
|
||||
msgstr "Metainformazioni"
|
||||
|
||||
#: cms_toolbars.py:20
|
||||
msgid "Common"
|
||||
msgstr "Generale"
|
||||
|
||||
#: models.py:26
|
||||
msgid "Used if title image is empty."
|
||||
msgstr "Usato se l'immagine per il Titolo è vuota."
|
||||
|
||||
#: models.py:30 models.py:61 models.py:65
|
||||
msgid "Resource type"
|
||||
msgstr "Tipo di risorsa"
|
||||
|
||||
#: models.py:34 models.py:69
|
||||
msgid "Use Article for generic pages."
|
||||
msgstr "Usa \"Articolo\" per le pagine normali."
|
||||
|
||||
#: models.py:38
|
||||
msgid "Author account"
|
||||
msgstr "Account dell'Autore"
|
||||
|
||||
#: models.py:43
|
||||
msgid "Author Facebook URL"
|
||||
msgstr "URL Facebook dell'Autore"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Author Facebook ID"
|
||||
msgstr "Facebook ID dell'Autore"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Use Facebook numeric ID."
|
||||
msgstr "Inserisco il Facebook ID numerico"
|
||||
|
||||
#: models.py:47
|
||||
msgid "Website Facebook URL"
|
||||
msgstr "URL Facebook del sito"
|
||||
|
||||
#: models.py:48
|
||||
msgid "Facebook App ID"
|
||||
msgstr "App ID Facebook"
|
||||
|
||||
#: models.py:49
|
||||
msgid "Facebook Pages ID"
|
||||
msgstr "ID Facebook della pagina"
|
||||
|
||||
#: models.py:51
|
||||
msgid "Author Twitter Account"
|
||||
msgstr "Account Twitter dell'autore"
|
||||
|
||||
#: models.py:51 models.py:58
|
||||
msgid "'@' character not required."
|
||||
msgstr "Carattere \"@\" non richiesto."
|
||||
|
||||
#: models.py:54
|
||||
msgid "Website Twitter Account"
|
||||
msgstr "Account Twitter del sito"
|
||||
|
||||
#: models.py:73 models.py:74
|
||||
msgid "Page meta info (all languages)"
|
||||
msgstr "Metainformazioni (tuttle le lingue)"
|
||||
|
||||
#: models.py:77
|
||||
#, python-brace-format
|
||||
msgid "Page Meta for {0}"
|
||||
msgstr "Meta-info pagina per {0}"
|
||||
|
||||
#: models.py:98
|
||||
msgid "If empty, page image will be used for all languages."
|
||||
msgstr "Se vuota, l'immagine della pagina sarà usata in tutte le lingue."
|
||||
|
||||
#: models.py:103
|
||||
msgid "Facebook Description"
|
||||
msgstr "Descrizione Facebook"
|
||||
|
||||
#: models.py:104
|
||||
msgid "Twitter Description"
|
||||
msgstr "Descrizione Twitter"
|
||||
|
||||
#: models.py:106
|
||||
msgid "Schemaorg Name"
|
||||
msgstr "Nome Schema.org"
|
||||
|
||||
#: models.py:106
|
||||
msgid "Name of the item."
|
||||
msgstr "Nome dell'elemento"
|
||||
|
||||
#: models.py:109
|
||||
#| msgid "Facebook Description"
|
||||
msgid "Schemaorg Description"
|
||||
msgstr "Descrizione Schema.org"
|
||||
|
||||
#: models.py:109
|
||||
msgid "Description of the item."
|
||||
msgstr "Descrizione dell'elemento"
|
||||
|
||||
#: models.py:113 models.py:114 models.py:163 models.py:164
|
||||
msgid "Page meta info (language-dependent)"
|
||||
msgstr "Metainformazioni (per lingua)"
|
||||
|
||||
#: models.py:117
|
||||
#, python-brace-format
|
||||
msgid "Title Meta for {0}"
|
||||
msgstr "Meta-info titolo per {0}"
|
||||
|
||||
#: models.py:145
|
||||
msgid "attribute"
|
||||
msgstr "attributo"
|
||||
|
||||
#: models.py:147
|
||||
msgid "Custom attribute"
|
||||
msgstr "Attributo personalizzato"
|
||||
|
||||
#: models.py:152
|
||||
msgid "name"
|
||||
msgstr "nome"
|
||||
|
||||
#: models.py:154
|
||||
msgid "Meta attribute name"
|
||||
msgstr "Nome dell'attributo"
|
||||
|
||||
#: models.py:157
|
||||
msgid "value"
|
||||
msgstr "valore"
|
||||
|
||||
#: models.py:159
|
||||
msgid "Meta attribute value"
|
||||
msgstr "Valore dell'attributo"
|
||||
|
||||
#: models.py:168 models.py:170
|
||||
#, python-brace-format
|
||||
#| msgid "Attribute {0} for page {1}"
|
||||
msgid "Attribute {0} for {1}"
|
||||
msgstr "Attributo {0} di {1}"
|
||||
|
||||
#~ msgid "Google+ Snippets"
|
||||
#~ msgstr "Google+ Snippets"
|
||||
|
||||
#~ msgid "Author Google+ URL"
|
||||
#~ msgstr "Author Google+ URL"
|
||||
|
||||
#~ msgid "Use the Google+ Name (together with \"+\")"
|
||||
#~ msgstr "Use the Google+ Name (together with \"+\")"
|
||||
|
||||
#~ msgid "Google+ Description"
|
||||
#~ msgstr "Google+ Description"
|
||||
|
||||
#~ msgid "Attribute {0} for title {1}"
|
||||
#~ msgstr "Attribute {0} for title {1}"
|
||||
|
||||
#~ msgid "Article"
|
||||
#~ msgstr "Article"
|
||||
|
||||
#~ msgid "Website"
|
||||
#~ msgstr "Website"
|
||||
|
||||
#~ msgid "Summary"
|
||||
#~ msgstr "Summary"
|
||||
|
||||
#~ msgid "Summary large image"
|
||||
#~ msgstr "Summary large image"
|
||||
|
||||
#~ msgid "Product"
|
||||
#~ msgstr "Product"
|
||||
|
||||
#~ msgid "Photo"
|
||||
#~ msgstr "Photo"
|
||||
|
||||
#~ msgid "Player"
|
||||
#~ msgstr "Player"
|
||||
|
||||
#~ msgid "App"
|
||||
#~ msgstr "App"
|
||||
|
||||
#~ msgid "Blog"
|
||||
#~ msgstr "Blog"
|
||||
|
||||
#~ msgid "Book"
|
||||
#~ msgstr "Book"
|
||||
|
||||
#~ msgid "Event"
|
||||
#~ msgstr "Event"
|
||||
|
||||
#~ msgid "LocalBusiness"
|
||||
#~ msgstr "LocalBusiness"
|
||||
|
||||
#~ msgid "Organization"
|
||||
#~ msgstr "Organization"
|
||||
|
||||
#~ msgid "Person"
|
||||
#~ msgstr "Person"
|
||||
|
||||
#~ msgid "Review"
|
||||
#~ msgstr "Review"
|
||||
233
vendor/djangocms_page_meta/locale/lt/LC_MESSAGES/django.po
vendored
Normal file
233
vendor/djangocms_page_meta/locale/lt/LC_MESSAGES/django.po
vendored
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Matas Dailyda <matas@dailyda.com>, 2015,2018
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: djangocms-page-meta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-20 13:10+0100\n"
|
||||
"PO-Revision-Date: 2020-12-20 12:11+0000\n"
|
||||
"Last-Translator: yakky <i.spalletti@nephila.digital>\n"
|
||||
"Language-Team: Lithuanian (http://www.transifex.com/nephila/djangocms-page-meta/language/lt/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: lt\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
|
||||
|
||||
#: admin.py:32
|
||||
msgid "OpenGraph"
|
||||
msgstr "OpenGraph"
|
||||
|
||||
#: admin.py:42
|
||||
msgid "Twitter Cards"
|
||||
msgstr "Twitter Cards"
|
||||
|
||||
#: admin.py:43
|
||||
msgid "Schema.org microdata"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:7
|
||||
msgid "django CMS Page Meta"
|
||||
msgstr "django CMS Puslapio Meta"
|
||||
|
||||
#: cms_toolbars.py:19
|
||||
msgid "Meta-information"
|
||||
msgstr "Meta informacija"
|
||||
|
||||
#: cms_toolbars.py:20
|
||||
msgid "Common"
|
||||
msgstr "Bendri"
|
||||
|
||||
#: models.py:26
|
||||
msgid "Used if title image is empty."
|
||||
msgstr "Naudojamas jei nėra pirminio paveikslėlio."
|
||||
|
||||
#: models.py:30 models.py:61 models.py:65
|
||||
msgid "Resource type"
|
||||
msgstr "Resurso tipas"
|
||||
|
||||
#: models.py:34 models.py:69
|
||||
msgid "Use Article for generic pages."
|
||||
msgstr "Naudoti straipsnį bendriniams puslapiams."
|
||||
|
||||
#: models.py:38
|
||||
msgid "Author account"
|
||||
msgstr "Autoriaus paskyra"
|
||||
|
||||
#: models.py:43
|
||||
msgid "Author Facebook URL"
|
||||
msgstr "Autoriaus Facebook URL"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Author Facebook ID"
|
||||
msgstr "Autoriaus Facebook ID"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Use Facebook numeric ID."
|
||||
msgstr "Naudoto Facebook skaitinį ID"
|
||||
|
||||
#: models.py:47
|
||||
msgid "Website Facebook URL"
|
||||
msgstr "Tinklalapio Facebook URL"
|
||||
|
||||
#: models.py:48
|
||||
msgid "Facebook App ID"
|
||||
msgstr "Facebook aplikacijos ID"
|
||||
|
||||
#: models.py:49
|
||||
msgid "Facebook Pages ID"
|
||||
msgstr "Facebook puslapių ID"
|
||||
|
||||
#: models.py:51
|
||||
msgid "Author Twitter Account"
|
||||
msgstr "Autoriaus Twitter paskyra"
|
||||
|
||||
#: models.py:51 models.py:58
|
||||
msgid "'@' character not required."
|
||||
msgstr "\"@\" simbolis nereikalingas."
|
||||
|
||||
#: models.py:54
|
||||
msgid "Website Twitter Account"
|
||||
msgstr "Tinklalapio Twitter vartotojas"
|
||||
|
||||
#: models.py:73 models.py:74
|
||||
msgid "Page meta info (all languages)"
|
||||
msgstr "Puslapio meta duomenys (visoms kalboms)"
|
||||
|
||||
#: models.py:77
|
||||
#, python-brace-format
|
||||
msgid "Page Meta for {0}"
|
||||
msgstr "Puslapio meta {0}"
|
||||
|
||||
#: models.py:98
|
||||
msgid "If empty, page image will be used for all languages."
|
||||
msgstr "Jei tuščia, puslapio paveikslėlis bus naudojamas visoms kalboms."
|
||||
|
||||
#: models.py:103
|
||||
msgid "Facebook Description"
|
||||
msgstr "Facebook aprašymas"
|
||||
|
||||
#: models.py:104
|
||||
msgid "Twitter Description"
|
||||
msgstr "Twitter aprašymas"
|
||||
|
||||
#: models.py:106
|
||||
msgid "Schemaorg Name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Name of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
#| msgid "Facebook Description"
|
||||
msgid "Schemaorg Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
msgid "Description of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:113 models.py:114 models.py:163 models.py:164
|
||||
msgid "Page meta info (language-dependent)"
|
||||
msgstr "Puslapio meta duomenys (priklausantys nuo kalbos)"
|
||||
|
||||
#: models.py:117
|
||||
#, python-brace-format
|
||||
msgid "Title Meta for {0}"
|
||||
msgstr "Pavadinimo meta {0}"
|
||||
|
||||
#: models.py:145
|
||||
msgid "attribute"
|
||||
msgstr "atributas"
|
||||
|
||||
#: models.py:147
|
||||
msgid "Custom attribute"
|
||||
msgstr "Specialus atributas"
|
||||
|
||||
#: models.py:152
|
||||
msgid "name"
|
||||
msgstr "pavadinimas"
|
||||
|
||||
#: models.py:154
|
||||
msgid "Meta attribute name"
|
||||
msgstr "Meta atributo pavadinimas"
|
||||
|
||||
#: models.py:157
|
||||
msgid "value"
|
||||
msgstr "reikšmė"
|
||||
|
||||
#: models.py:159
|
||||
msgid "Meta attribute value"
|
||||
msgstr "Meta atributo reikšmė"
|
||||
|
||||
#: models.py:168 models.py:170
|
||||
#, python-brace-format
|
||||
#| msgid "Attribute {0} for page {1}"
|
||||
msgid "Attribute {0} for {1}"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Google+ Snippets"
|
||||
#~ msgstr "Google+ Snippets"
|
||||
|
||||
#~ msgid "Author Google+ URL"
|
||||
#~ msgstr "Author Google+ URL"
|
||||
|
||||
#~ msgid "Use the Google+ Name (together with \"+\")"
|
||||
#~ msgstr "Use the Google+ Name (together with \"+\")"
|
||||
|
||||
#~ msgid "Google+ Description"
|
||||
#~ msgstr "Google+ Description"
|
||||
|
||||
#~ msgid "Attribute {0} for title {1}"
|
||||
#~ msgstr "Attribute {0} for title {1}"
|
||||
|
||||
#~ msgid "Article"
|
||||
#~ msgstr "Article"
|
||||
|
||||
#~ msgid "Website"
|
||||
#~ msgstr "Website"
|
||||
|
||||
#~ msgid "Summary"
|
||||
#~ msgstr "Summary"
|
||||
|
||||
#~ msgid "Summary large image"
|
||||
#~ msgstr "Summary large image"
|
||||
|
||||
#~ msgid "Product"
|
||||
#~ msgstr "Product"
|
||||
|
||||
#~ msgid "Photo"
|
||||
#~ msgstr "Photo"
|
||||
|
||||
#~ msgid "Player"
|
||||
#~ msgstr "Player"
|
||||
|
||||
#~ msgid "App"
|
||||
#~ msgstr "App"
|
||||
|
||||
#~ msgid "Blog"
|
||||
#~ msgstr "Blog"
|
||||
|
||||
#~ msgid "Book"
|
||||
#~ msgstr "Book"
|
||||
|
||||
#~ msgid "Event"
|
||||
#~ msgstr "Event"
|
||||
|
||||
#~ msgid "LocalBusiness"
|
||||
#~ msgstr "LocalBusiness"
|
||||
|
||||
#~ msgid "Organization"
|
||||
#~ msgstr "Organization"
|
||||
|
||||
#~ msgid "Person"
|
||||
#~ msgstr "Person"
|
||||
|
||||
#~ msgid "Review"
|
||||
#~ msgstr "Review"
|
||||
232
vendor/djangocms_page_meta/locale/pt_BR/LC_MESSAGES/django.po
vendored
Normal file
232
vendor/djangocms_page_meta/locale/pt_BR/LC_MESSAGES/django.po
vendored
Normal file
|
|
@ -0,0 +1,232 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: djangocms-page-meta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-20 13:10+0100\n"
|
||||
"PO-Revision-Date: 2020-12-20 12:11+0000\n"
|
||||
"Last-Translator: yakky <i.spalletti@nephila.digital>\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/nephila/djangocms-page-meta/language/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: admin.py:32
|
||||
msgid "OpenGraph"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:42
|
||||
msgid "Twitter Cards"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:43
|
||||
msgid "Schema.org microdata"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:7
|
||||
msgid "django CMS Page Meta"
|
||||
msgstr ""
|
||||
|
||||
#: cms_toolbars.py:19
|
||||
msgid "Meta-information"
|
||||
msgstr ""
|
||||
|
||||
#: cms_toolbars.py:20
|
||||
msgid "Common"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:26
|
||||
msgid "Used if title image is empty."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30 models.py:61 models.py:65
|
||||
msgid "Resource type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 models.py:69
|
||||
msgid "Use Article for generic pages."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:38
|
||||
msgid "Author account"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:43
|
||||
msgid "Author Facebook URL"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:45
|
||||
msgid "Author Facebook ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:45
|
||||
msgid "Use Facebook numeric ID."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:47
|
||||
msgid "Website Facebook URL"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:48
|
||||
msgid "Facebook App ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:49
|
||||
msgid "Facebook Pages ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:51
|
||||
msgid "Author Twitter Account"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:51 models.py:58
|
||||
msgid "'@' character not required."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:54
|
||||
msgid "Website Twitter Account"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:73 models.py:74
|
||||
msgid "Page meta info (all languages)"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:77
|
||||
#, python-brace-format
|
||||
msgid "Page Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:98
|
||||
msgid "If empty, page image will be used for all languages."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:103
|
||||
msgid "Facebook Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104
|
||||
msgid "Twitter Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Schemaorg Name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Name of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
#| msgid "Facebook Description"
|
||||
msgid "Schemaorg Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
msgid "Description of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:113 models.py:114 models.py:163 models.py:164
|
||||
msgid "Page meta info (language-dependent)"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:117
|
||||
#, python-brace-format
|
||||
msgid "Title Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:145
|
||||
msgid "attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:147
|
||||
msgid "Custom attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:152
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:154
|
||||
msgid "Meta attribute name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:157
|
||||
msgid "value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:159
|
||||
msgid "Meta attribute value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:168 models.py:170
|
||||
#, python-brace-format
|
||||
#| msgid "Attribute {0} for page {1}"
|
||||
msgid "Attribute {0} for {1}"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Google+ Snippets"
|
||||
#~ msgstr "Google+ Snippets"
|
||||
|
||||
#~ msgid "Author Google+ URL"
|
||||
#~ msgstr "Author Google+ URL"
|
||||
|
||||
#~ msgid "Use the Google+ Name (together with \"+\")"
|
||||
#~ msgstr "Use the Google+ Name (together with \"+\")"
|
||||
|
||||
#~ msgid "Google+ Description"
|
||||
#~ msgstr "Google+ Description"
|
||||
|
||||
#~ msgid "Attribute {0} for title {1}"
|
||||
#~ msgstr "Attribute {0} for title {1}"
|
||||
|
||||
#~ msgid "Article"
|
||||
#~ msgstr "Article"
|
||||
|
||||
#~ msgid "Website"
|
||||
#~ msgstr "Website"
|
||||
|
||||
#~ msgid "Summary"
|
||||
#~ msgstr "Summary"
|
||||
|
||||
#~ msgid "Summary large image"
|
||||
#~ msgstr "Summary large image"
|
||||
|
||||
#~ msgid "Product"
|
||||
#~ msgstr "Product"
|
||||
|
||||
#~ msgid "Photo"
|
||||
#~ msgstr "Photo"
|
||||
|
||||
#~ msgid "Player"
|
||||
#~ msgstr "Player"
|
||||
|
||||
#~ msgid "App"
|
||||
#~ msgstr "App"
|
||||
|
||||
#~ msgid "Blog"
|
||||
#~ msgstr "Blog"
|
||||
|
||||
#~ msgid "Book"
|
||||
#~ msgstr "Book"
|
||||
|
||||
#~ msgid "Event"
|
||||
#~ msgstr "Event"
|
||||
|
||||
#~ msgid "LocalBusiness"
|
||||
#~ msgstr "LocalBusiness"
|
||||
|
||||
#~ msgid "Organization"
|
||||
#~ msgstr "Organization"
|
||||
|
||||
#~ msgid "Person"
|
||||
#~ msgstr "Person"
|
||||
|
||||
#~ msgid "Review"
|
||||
#~ msgstr "Review"
|
||||
233
vendor/djangocms_page_meta/locale/ru/LC_MESSAGES/django.po
vendored
Normal file
233
vendor/djangocms_page_meta/locale/ru/LC_MESSAGES/django.po
vendored
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Rustam Mirzaev <mirus@2x2.pw>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: djangocms-page-meta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-20 13:10+0100\n"
|
||||
"PO-Revision-Date: 2020-12-20 12:11+0000\n"
|
||||
"Last-Translator: yakky <i.spalletti@nephila.digital>\n"
|
||||
"Language-Team: Russian (http://www.transifex.com/nephila/djangocms-page-meta/language/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ru\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
#: admin.py:32
|
||||
msgid "OpenGraph"
|
||||
msgstr "OpenGraph"
|
||||
|
||||
#: admin.py:42
|
||||
msgid "Twitter Cards"
|
||||
msgstr "Twitter Cards"
|
||||
|
||||
#: admin.py:43
|
||||
msgid "Schema.org microdata"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:7
|
||||
msgid "django CMS Page Meta"
|
||||
msgstr ""
|
||||
|
||||
#: cms_toolbars.py:19
|
||||
msgid "Meta-information"
|
||||
msgstr "Мета информация"
|
||||
|
||||
#: cms_toolbars.py:20
|
||||
msgid "Common"
|
||||
msgstr "Общие"
|
||||
|
||||
#: models.py:26
|
||||
msgid "Used if title image is empty."
|
||||
msgstr "Используется, если изображение отсутствует"
|
||||
|
||||
#: models.py:30 models.py:61 models.py:65
|
||||
msgid "Resource type"
|
||||
msgstr "Тип ресурса"
|
||||
|
||||
#: models.py:34 models.py:69
|
||||
msgid "Use Article for generic pages."
|
||||
msgstr "Использовать статью для общих страниц"
|
||||
|
||||
#: models.py:38
|
||||
msgid "Author account"
|
||||
msgstr "Аккаунт автора"
|
||||
|
||||
#: models.py:43
|
||||
msgid "Author Facebook URL"
|
||||
msgstr "URL автора на Facebook"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Author Facebook ID"
|
||||
msgstr "ID автора на Facebook"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Use Facebook numeric ID."
|
||||
msgstr "Использовать номерной идентификатор Facebook"
|
||||
|
||||
#: models.py:47
|
||||
msgid "Website Facebook URL"
|
||||
msgstr "Адрес веб сайта на Facebook"
|
||||
|
||||
#: models.py:48
|
||||
msgid "Facebook App ID"
|
||||
msgstr "ID приложения на Facebook"
|
||||
|
||||
#: models.py:49
|
||||
msgid "Facebook Pages ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:51
|
||||
msgid "Author Twitter Account"
|
||||
msgstr "Аккаунт автора на Twitter"
|
||||
|
||||
#: models.py:51 models.py:58
|
||||
msgid "'@' character not required."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:54
|
||||
msgid "Website Twitter Account"
|
||||
msgstr "Аккаунт сайта на Twitter"
|
||||
|
||||
#: models.py:73 models.py:74
|
||||
msgid "Page meta info (all languages)"
|
||||
msgstr "Мета информация страницы(для всех языков)"
|
||||
|
||||
#: models.py:77
|
||||
#, python-brace-format
|
||||
msgid "Page Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:98
|
||||
msgid "If empty, page image will be used for all languages."
|
||||
msgstr "Если оставить пустым, изображение страницы будет использовано для всех языков."
|
||||
|
||||
#: models.py:103
|
||||
msgid "Facebook Description"
|
||||
msgstr "Описание на Facebook"
|
||||
|
||||
#: models.py:104
|
||||
msgid "Twitter Description"
|
||||
msgstr "Описание на Twitter"
|
||||
|
||||
#: models.py:106
|
||||
msgid "Schemaorg Name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Name of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
#| msgid "Facebook Description"
|
||||
msgid "Schemaorg Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
msgid "Description of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:113 models.py:114 models.py:163 models.py:164
|
||||
msgid "Page meta info (language-dependent)"
|
||||
msgstr "Мета информация страницы(языкозависимая)"
|
||||
|
||||
#: models.py:117
|
||||
#, python-brace-format
|
||||
msgid "Title Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:145
|
||||
msgid "attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:147
|
||||
msgid "Custom attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:152
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:154
|
||||
msgid "Meta attribute name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:157
|
||||
msgid "value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:159
|
||||
msgid "Meta attribute value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:168 models.py:170
|
||||
#, python-brace-format
|
||||
#| msgid "Attribute {0} for page {1}"
|
||||
msgid "Attribute {0} for {1}"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Google+ Snippets"
|
||||
#~ msgstr "Google+ Snippets"
|
||||
|
||||
#~ msgid "Author Google+ URL"
|
||||
#~ msgstr "Author Google+ URL"
|
||||
|
||||
#~ msgid "Use the Google+ Name (together with \"+\")"
|
||||
#~ msgstr "Use the Google+ Name (together with \"+\")"
|
||||
|
||||
#~ msgid "Google+ Description"
|
||||
#~ msgstr "Google+ Description"
|
||||
|
||||
#~ msgid "Attribute {0} for title {1}"
|
||||
#~ msgstr "Attribute {0} for title {1}"
|
||||
|
||||
#~ msgid "Article"
|
||||
#~ msgstr "Article"
|
||||
|
||||
#~ msgid "Website"
|
||||
#~ msgstr "Website"
|
||||
|
||||
#~ msgid "Summary"
|
||||
#~ msgstr "Summary"
|
||||
|
||||
#~ msgid "Summary large image"
|
||||
#~ msgstr "Summary large image"
|
||||
|
||||
#~ msgid "Product"
|
||||
#~ msgstr "Product"
|
||||
|
||||
#~ msgid "Photo"
|
||||
#~ msgstr "Photo"
|
||||
|
||||
#~ msgid "Player"
|
||||
#~ msgstr "Player"
|
||||
|
||||
#~ msgid "App"
|
||||
#~ msgstr "App"
|
||||
|
||||
#~ msgid "Blog"
|
||||
#~ msgstr "Blog"
|
||||
|
||||
#~ msgid "Book"
|
||||
#~ msgstr "Book"
|
||||
|
||||
#~ msgid "Event"
|
||||
#~ msgstr "Event"
|
||||
|
||||
#~ msgid "LocalBusiness"
|
||||
#~ msgstr "LocalBusiness"
|
||||
|
||||
#~ msgid "Organization"
|
||||
#~ msgstr "Organization"
|
||||
|
||||
#~ msgid "Person"
|
||||
#~ msgstr "Person"
|
||||
|
||||
#~ msgid "Review"
|
||||
#~ msgstr "Review"
|
||||
233
vendor/djangocms_page_meta/locale/tr/LC_MESSAGES/django.po
vendored
Normal file
233
vendor/djangocms_page_meta/locale/tr/LC_MESSAGES/django.po
vendored
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Rustam Mirzaev <mirus@2x2.pw>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: djangocms-page-meta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-20 13:10+0100\n"
|
||||
"PO-Revision-Date: 2020-12-20 12:11+0000\n"
|
||||
"Last-Translator: yakky <i.spalletti@nephila.digital>\n"
|
||||
"Language-Team: Turkish (http://www.transifex.com/nephila/djangocms-page-meta/language/tr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: tr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: admin.py:32
|
||||
msgid "OpenGraph"
|
||||
msgstr "OpenGraph"
|
||||
|
||||
#: admin.py:42
|
||||
msgid "Twitter Cards"
|
||||
msgstr "Twitter Cards"
|
||||
|
||||
#: admin.py:43
|
||||
msgid "Schema.org microdata"
|
||||
msgstr ""
|
||||
|
||||
#: apps.py:7
|
||||
msgid "django CMS Page Meta"
|
||||
msgstr ""
|
||||
|
||||
#: cms_toolbars.py:19
|
||||
msgid "Meta-information"
|
||||
msgstr "Meta-bilgiler"
|
||||
|
||||
#: cms_toolbars.py:20
|
||||
msgid "Common"
|
||||
msgstr "Genel"
|
||||
|
||||
#: models.py:26
|
||||
msgid "Used if title image is empty."
|
||||
msgstr "Başlık resmi olmadığında kullanılır"
|
||||
|
||||
#: models.py:30 models.py:61 models.py:65
|
||||
msgid "Resource type"
|
||||
msgstr "Kaynak tipi"
|
||||
|
||||
#: models.py:34 models.py:69
|
||||
msgid "Use Article for generic pages."
|
||||
msgstr "Makaleyi genel sayfalar için kullan"
|
||||
|
||||
#: models.py:38
|
||||
msgid "Author account"
|
||||
msgstr "Yazarın hesabı"
|
||||
|
||||
#: models.py:43
|
||||
msgid "Author Facebook URL"
|
||||
msgstr "Yazarın Facebook URL'i"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Author Facebook ID"
|
||||
msgstr "Yazarın Facebook ID'si"
|
||||
|
||||
#: models.py:45
|
||||
msgid "Use Facebook numeric ID."
|
||||
msgstr "Facebook ID'yi kullan"
|
||||
|
||||
#: models.py:47
|
||||
msgid "Website Facebook URL"
|
||||
msgstr "Web sitenin Facebook'taki URL'si"
|
||||
|
||||
#: models.py:48
|
||||
msgid "Facebook App ID"
|
||||
msgstr "Facebook Uygulama ID'si"
|
||||
|
||||
#: models.py:49
|
||||
msgid "Facebook Pages ID"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:51
|
||||
msgid "Author Twitter Account"
|
||||
msgstr "Yazarın Twitter hesabı"
|
||||
|
||||
#: models.py:51 models.py:58
|
||||
msgid "'@' character not required."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:54
|
||||
msgid "Website Twitter Account"
|
||||
msgstr "Web sitenin Twitter hesabı"
|
||||
|
||||
#: models.py:73 models.py:74
|
||||
msgid "Page meta info (all languages)"
|
||||
msgstr "Sayfanın meta bilgileri(tüm diller)"
|
||||
|
||||
#: models.py:77
|
||||
#, python-brace-format
|
||||
msgid "Page Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:98
|
||||
msgid "If empty, page image will be used for all languages."
|
||||
msgstr "Eğer boş ise, sayfanın resmi tüm diller için kullanılacaktır"
|
||||
|
||||
#: models.py:103
|
||||
msgid "Facebook Description"
|
||||
msgstr "Facebook özeti"
|
||||
|
||||
#: models.py:104
|
||||
msgid "Twitter Description"
|
||||
msgstr "Twitter özeti"
|
||||
|
||||
#: models.py:106
|
||||
msgid "Schemaorg Name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:106
|
||||
msgid "Name of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
#| msgid "Facebook Description"
|
||||
msgid "Schemaorg Description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:109
|
||||
msgid "Description of the item."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:113 models.py:114 models.py:163 models.py:164
|
||||
msgid "Page meta info (language-dependent)"
|
||||
msgstr "Sayfanın meta bilgileri(dil bağımlı)"
|
||||
|
||||
#: models.py:117
|
||||
#, python-brace-format
|
||||
msgid "Title Meta for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:145
|
||||
msgid "attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:147
|
||||
msgid "Custom attribute"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:152
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:154
|
||||
msgid "Meta attribute name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:157
|
||||
msgid "value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:159
|
||||
msgid "Meta attribute value"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:168 models.py:170
|
||||
#, python-brace-format
|
||||
#| msgid "Attribute {0} for page {1}"
|
||||
msgid "Attribute {0} for {1}"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Google+ Snippets"
|
||||
#~ msgstr "Google+ Snippets"
|
||||
|
||||
#~ msgid "Author Google+ URL"
|
||||
#~ msgstr "Author Google+ URL"
|
||||
|
||||
#~ msgid "Use the Google+ Name (together with \"+\")"
|
||||
#~ msgstr "Use the Google+ Name (together with \"+\")"
|
||||
|
||||
#~ msgid "Google+ Description"
|
||||
#~ msgstr "Google+ Description"
|
||||
|
||||
#~ msgid "Attribute {0} for title {1}"
|
||||
#~ msgstr "Attribute {0} for title {1}"
|
||||
|
||||
#~ msgid "Article"
|
||||
#~ msgstr "Article"
|
||||
|
||||
#~ msgid "Website"
|
||||
#~ msgstr "Website"
|
||||
|
||||
#~ msgid "Summary"
|
||||
#~ msgstr "Summary"
|
||||
|
||||
#~ msgid "Summary large image"
|
||||
#~ msgstr "Summary large image"
|
||||
|
||||
#~ msgid "Product"
|
||||
#~ msgstr "Product"
|
||||
|
||||
#~ msgid "Photo"
|
||||
#~ msgstr "Photo"
|
||||
|
||||
#~ msgid "Player"
|
||||
#~ msgstr "Player"
|
||||
|
||||
#~ msgid "App"
|
||||
#~ msgstr "App"
|
||||
|
||||
#~ msgid "Blog"
|
||||
#~ msgstr "Blog"
|
||||
|
||||
#~ msgid "Book"
|
||||
#~ msgstr "Book"
|
||||
|
||||
#~ msgid "Event"
|
||||
#~ msgstr "Event"
|
||||
|
||||
#~ msgid "LocalBusiness"
|
||||
#~ msgstr "LocalBusiness"
|
||||
|
||||
#~ msgid "Organization"
|
||||
#~ msgstr "Organization"
|
||||
|
||||
#~ msgid "Person"
|
||||
#~ msgstr "Person"
|
||||
|
||||
#~ msgid "Review"
|
||||
#~ msgstr "Review"
|
||||
203
vendor/djangocms_page_meta/migrations/0001_initial.py
vendored
Normal file
203
vendor/djangocms_page_meta/migrations/0001_initial.py
vendored
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
import filer.fields.file
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
(
|
||||
"cms",
|
||||
"0001_initial_squashed_0022_auto_20180620_1551",
|
||||
),
|
||||
(
|
||||
"filer",
|
||||
"0001_squashed_0016_alter_folder_index_together_remove_folder_level_and_more",
|
||||
),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="PageMeta",
|
||||
fields=[
|
||||
("id", models.AutoField(verbose_name="ID", serialize=False, auto_created=True, primary_key=True)),
|
||||
(
|
||||
"og_type",
|
||||
models.CharField(
|
||||
help_text="Use Article for generic pages.",
|
||||
max_length=255,
|
||||
verbose_name="Resource type",
|
||||
choices=[(b"article", "Article"), (b"website", "Website")],
|
||||
),
|
||||
),
|
||||
(
|
||||
"og_author_url",
|
||||
models.CharField(default=b"", max_length=255, verbose_name="Author Facebook URL", blank=True),
|
||||
),
|
||||
(
|
||||
"og_author_fbid",
|
||||
models.CharField(
|
||||
default=b"",
|
||||
help_text="Use Facebook numeric ID",
|
||||
max_length=16,
|
||||
verbose_name="Author Facebook ID",
|
||||
blank=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"og_publisher",
|
||||
models.CharField(default=b"", max_length=255, verbose_name="Website Facebook URL", blank=True),
|
||||
),
|
||||
(
|
||||
"og_app_id",
|
||||
models.CharField(default=b"", max_length=255, verbose_name="Facebook App ID", blank=True),
|
||||
),
|
||||
(
|
||||
"twitter_author",
|
||||
models.CharField(
|
||||
default=b"",
|
||||
help_text='"@" sign not required.',
|
||||
max_length=255,
|
||||
verbose_name="Author Twitter Account",
|
||||
blank=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"twitter_site",
|
||||
models.CharField(
|
||||
default=b"",
|
||||
help_text='"@" sign not required.',
|
||||
max_length=255,
|
||||
verbose_name="Website Twitter Account",
|
||||
blank=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"twitter_type",
|
||||
models.CharField(
|
||||
max_length=255,
|
||||
verbose_name="Resource type",
|
||||
choices=[
|
||||
(b"summary", "Summary"),
|
||||
(b"summary_large_image", "Summary large image"),
|
||||
(b"product", "Product"),
|
||||
(b"photo", "Photo"),
|
||||
(b"player", "Player"),
|
||||
(b"app", "App"),
|
||||
],
|
||||
),
|
||||
),
|
||||
(
|
||||
"gplus_author",
|
||||
models.CharField(
|
||||
default=b"",
|
||||
help_text='Use the Google+ Name (together with "+") or the complete path to the page.',
|
||||
max_length=255,
|
||||
verbose_name="Author Google+ URL",
|
||||
blank=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"gplus_type",
|
||||
models.CharField(
|
||||
help_text="Use Article for generic pages.",
|
||||
max_length=255,
|
||||
verbose_name="Resource type",
|
||||
choices=[
|
||||
(b"Article", "Article"),
|
||||
(b"Blog", "Blog"),
|
||||
(b"Book", "Book"),
|
||||
(b"Event", "Event"),
|
||||
(b"LocalBusiness", "LocalBusiness"),
|
||||
(b"Organization", "Organization"),
|
||||
(b"Person", "Person"),
|
||||
(b"Product", "Product"),
|
||||
(b"Review", "Review"),
|
||||
],
|
||||
),
|
||||
),
|
||||
("extended_object", models.OneToOneField(editable=False, to="cms.Page", on_delete=models.CASCADE)),
|
||||
(
|
||||
"image",
|
||||
filer.fields.file.FilerFileField(
|
||||
related_name="djangocms_page_meta_page",
|
||||
blank=True,
|
||||
to="filer.File",
|
||||
help_text="Used if title image is empty.",
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
),
|
||||
),
|
||||
(
|
||||
"og_author",
|
||||
models.ForeignKey(
|
||||
verbose_name="Author account",
|
||||
blank=True,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
),
|
||||
),
|
||||
(
|
||||
"public_extension",
|
||||
models.OneToOneField(
|
||||
related_name="draft_extension",
|
||||
null=True,
|
||||
editable=False,
|
||||
to="djangocms_page_meta.PageMeta",
|
||||
on_delete=models.CASCADE,
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Page meta info (all languages)",
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="TitleMeta",
|
||||
fields=[
|
||||
("id", models.AutoField(verbose_name="ID", serialize=False, auto_created=True, primary_key=True)),
|
||||
("keywords", models.CharField(default=b"", max_length=400, blank=True)),
|
||||
("description", models.CharField(default=b"", max_length=400, blank=True)),
|
||||
(
|
||||
"og_description",
|
||||
models.CharField(default=b"", max_length=400, verbose_name="Facebook Description", blank=True),
|
||||
),
|
||||
(
|
||||
"twitter_description",
|
||||
models.CharField(default=b"", max_length=140, verbose_name="Twitter Description", blank=True),
|
||||
),
|
||||
(
|
||||
"gplus_description",
|
||||
models.CharField(default=b"", max_length=400, verbose_name="Google+ Description", blank=True),
|
||||
),
|
||||
("extended_object", models.OneToOneField(editable=False, to="cms.pagecontent", on_delete=models.CASCADE)),
|
||||
(
|
||||
"image",
|
||||
filer.fields.file.FilerFileField(
|
||||
related_name="djangocms_page_meta_title",
|
||||
blank=True,
|
||||
to="filer.File",
|
||||
help_text="If empty, page image will be used for all languages.",
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
),
|
||||
),
|
||||
(
|
||||
"public_extension",
|
||||
models.OneToOneField(
|
||||
related_name="draft_extension",
|
||||
null=True,
|
||||
editable=False,
|
||||
to="djangocms_page_meta.TitleMeta",
|
||||
on_delete=models.CASCADE,
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Page meta info (language-dependent)",
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
]
|
||||
21
vendor/djangocms_page_meta/migrations/0002_auto_20150807_0936.py
vendored
Normal file
21
vendor/djangocms_page_meta/migrations/0002_auto_20150807_0936.py
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0001_initial"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="og_author_fbid",
|
||||
field=models.CharField(
|
||||
default=b"",
|
||||
help_text="Use Facebook numeric ID.",
|
||||
max_length=16,
|
||||
verbose_name="Author Facebook ID",
|
||||
blank=True,
|
||||
),
|
||||
),
|
||||
]
|
||||
43
vendor/djangocms_page_meta/migrations/0003_auto_20151220_1734.py
vendored
Normal file
43
vendor/djangocms_page_meta/migrations/0003_auto_20151220_1734.py
vendored
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0002_auto_20150807_0936"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="gplus_author",
|
||||
field=models.CharField(
|
||||
default="",
|
||||
help_text="Use the Google+ Name (together with ) or the complete path to the page.",
|
||||
max_length=255,
|
||||
verbose_name="Author Google+ URL",
|
||||
blank=True,
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="twitter_author",
|
||||
field=models.CharField(
|
||||
default="",
|
||||
help_text="'@' character not required.",
|
||||
max_length=255,
|
||||
verbose_name="Author Twitter Account",
|
||||
blank=True,
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="twitter_site",
|
||||
field=models.CharField(
|
||||
default="",
|
||||
help_text="'@' characther not required.",
|
||||
max_length=255,
|
||||
verbose_name="Website Twitter Account",
|
||||
blank=True,
|
||||
),
|
||||
),
|
||||
]
|
||||
104
vendor/djangocms_page_meta/migrations/0004_auto_20160409_1852.py
vendored
Normal file
104
vendor/djangocms_page_meta/migrations/0004_auto_20160409_1852.py
vendored
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
# Generated by Django 1.9.3 on 2016-04-09 16:52
|
||||
|
||||
from django.db import migrations, models
|
||||
from meta import settings
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0003_auto_20151220_1734"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="gplus_author",
|
||||
field=models.CharField(
|
||||
blank=True,
|
||||
default="",
|
||||
help_text='Use the Google+ Name (together with "+")',
|
||||
max_length=255,
|
||||
verbose_name="Author Google+ URL",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="gplus_type",
|
||||
field=models.CharField(
|
||||
blank=True,
|
||||
choices=(""),
|
||||
help_text="Use Article for generic pages.",
|
||||
max_length=255,
|
||||
verbose_name="Resource type",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="og_app_id",
|
||||
field=models.CharField(blank=True, default="", max_length=255, verbose_name="Facebook App ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="og_author_fbid",
|
||||
field=models.CharField(
|
||||
blank=True,
|
||||
default="",
|
||||
help_text="Use Facebook numeric ID.",
|
||||
max_length=16,
|
||||
verbose_name="Author Facebook ID",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="og_author_url",
|
||||
field=models.CharField(blank=True, default="", max_length=255, verbose_name="Author Facebook URL"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="og_publisher",
|
||||
field=models.CharField(blank=True, default="", max_length=255, verbose_name="Website Facebook URL"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="og_type",
|
||||
field=models.CharField(
|
||||
blank=True,
|
||||
choices=settings.FB_TYPES,
|
||||
help_text="Use Article for generic pages.",
|
||||
max_length=255,
|
||||
verbose_name="Resource type",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="twitter_type",
|
||||
field=models.CharField(
|
||||
blank=True, choices=settings.TWITTER_TYPES, max_length=255, verbose_name="Resource type"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="description",
|
||||
field=models.CharField(blank=True, default="", max_length=400),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="gplus_description",
|
||||
field=models.CharField(blank=True, default="", max_length=400, verbose_name="Google+ Description"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="keywords",
|
||||
field=models.CharField(blank=True, default="", max_length=400),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="og_description",
|
||||
field=models.CharField(blank=True, default="", max_length=400, verbose_name="Facebook Description"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="twitter_description",
|
||||
field=models.CharField(blank=True, default="", max_length=140, verbose_name="Twitter Description"),
|
||||
),
|
||||
]
|
||||
17
vendor/djangocms_page_meta/migrations/0005_pagemeta_fb_pages.py
vendored
Normal file
17
vendor/djangocms_page_meta/migrations/0005_pagemeta_fb_pages.py
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# Generated by Django 1.9.5 on 2016-04-23 13:43
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0004_auto_20160409_1852"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="pagemeta",
|
||||
name="fb_pages",
|
||||
field=models.CharField(blank=True, default="", max_length=255, verbose_name="Facebook Pages ID"),
|
||||
),
|
||||
]
|
||||
64
vendor/djangocms_page_meta/migrations/0006_auto_20160423_1859.py
vendored
Normal file
64
vendor/djangocms_page_meta/migrations/0006_auto_20160423_1859.py
vendored
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0005_pagemeta_fb_pages"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="GenericMetaAttribute",
|
||||
fields=[
|
||||
("id", models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name="ID")),
|
||||
(
|
||||
"attribute",
|
||||
models.CharField(
|
||||
blank=True, help_text="Custom attribute", max_length=200, default="", verbose_name="attribute"
|
||||
),
|
||||
),
|
||||
("name", models.CharField(help_text="Meta attribute name", max_length=200, verbose_name="name")),
|
||||
("value", models.CharField(help_text="Meta attribute value", max_length=2000, verbose_name="value")),
|
||||
],
|
||||
options={
|
||||
"verbose_name_plural": "Page meta info (language-dependent)",
|
||||
"verbose_name": "Page meta info (language-dependent)",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="pagemeta",
|
||||
options={
|
||||
"verbose_name_plural": "Page meta info (all languages)",
|
||||
"verbose_name": "Page meta info (all languages)",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="titlemeta",
|
||||
options={
|
||||
"verbose_name_plural": "Page meta info (language-dependent)",
|
||||
"verbose_name": "Page meta info (language-dependent)",
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="genericmetaattribute",
|
||||
name="page",
|
||||
field=models.ForeignKey(
|
||||
related_name="extra",
|
||||
blank=True,
|
||||
null=True,
|
||||
to="djangocms_page_meta.PageMeta",
|
||||
on_delete=models.CASCADE,
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="genericmetaattribute",
|
||||
name="title",
|
||||
field=models.ForeignKey(
|
||||
related_name="extra",
|
||||
blank=True,
|
||||
null=True,
|
||||
to="djangocms_page_meta.TitleMeta",
|
||||
on_delete=models.CASCADE,
|
||||
),
|
||||
),
|
||||
]
|
||||
50
vendor/djangocms_page_meta/migrations/0007_auto_20160530_2257.py
vendored
Normal file
50
vendor/djangocms_page_meta/migrations/0007_auto_20160530_2257.py
vendored
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# Generated by Django 1.9.6 on 2016-05-30 20:57
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0006_auto_20160423_1859"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="genericmetaattribute",
|
||||
options={
|
||||
"verbose_name": "Page meta info (language-dependent)",
|
||||
"verbose_name_plural": "Page meta info (language-dependent)",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="pagemeta",
|
||||
options={
|
||||
"verbose_name": "Page meta info (all languages)",
|
||||
"verbose_name_plural": "Page meta info (all languages)",
|
||||
},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name="titlemeta",
|
||||
options={
|
||||
"verbose_name": "Page meta info (language-dependent)",
|
||||
"verbose_name_plural": "Page meta info (language-dependent)",
|
||||
},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="genericmetaattribute",
|
||||
name="attribute",
|
||||
field=models.CharField(
|
||||
blank=True, default="", help_text="Custom attribute", max_length=200, verbose_name="attribute"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="genericmetaattribute",
|
||||
name="name",
|
||||
field=models.CharField(help_text="Meta attribute name", max_length=200, verbose_name="name"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="genericmetaattribute",
|
||||
name="value",
|
||||
field=models.CharField(help_text="Meta attribute value", max_length=2000, verbose_name="value"),
|
||||
),
|
||||
]
|
||||
16
vendor/djangocms_page_meta/migrations/0008_auto_20160609_0754.py
vendored
Normal file
16
vendor/djangocms_page_meta/migrations/0008_auto_20160609_0754.py
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# Generated by Django 1.9.6 on 2016-06-09 05:54
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0007_auto_20160530_2257"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterUniqueTogether(
|
||||
name="genericmetaattribute",
|
||||
unique_together=set(),
|
||||
),
|
||||
]
|
||||
23
vendor/djangocms_page_meta/migrations/0009_auto_20171230_1954.py
vendored
Normal file
23
vendor/djangocms_page_meta/migrations/0009_auto_20171230_1954.py
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# Generated by Django 1.11.8 on 2017-12-30 18:54
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0008_auto_20160609_0754"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="twitter_site",
|
||||
field=models.CharField(
|
||||
blank=True,
|
||||
default="",
|
||||
help_text="'@' character not required.",
|
||||
max_length=255,
|
||||
verbose_name="Website Twitter Account",
|
||||
),
|
||||
),
|
||||
]
|
||||
37
vendor/djangocms_page_meta/migrations/0010_auto_20180108_2316.py
vendored
Normal file
37
vendor/djangocms_page_meta/migrations/0010_auto_20180108_2316.py
vendored
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Generated by Django 1.11.9 on 2018-01-08 22:16
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0009_auto_20171230_1954"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="description",
|
||||
field=models.CharField(blank=True, default="", max_length=2000),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="gplus_description",
|
||||
field=models.CharField(blank=True, default="", max_length=2000, verbose_name="Google+ Description"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="keywords",
|
||||
field=models.CharField(blank=True, default="", max_length=2000),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="og_description",
|
||||
field=models.CharField(blank=True, default="", max_length=2000, verbose_name="Facebook Description"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="twitter_description",
|
||||
field=models.CharField(blank=True, default="", max_length=2000, verbose_name="Twitter Description"),
|
||||
),
|
||||
]
|
||||
103
vendor/djangocms_page_meta/migrations/0011_auto_20190218_1010.py
vendored
Normal file
103
vendor/djangocms_page_meta/migrations/0011_auto_20190218_1010.py
vendored
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
# Generated by Django 2.1.7 on 2019-02-18 10:10
|
||||
|
||||
import django.db.models.deletion
|
||||
import filer.fields.file
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0010_auto_20180108_2316"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="genericmetaattribute",
|
||||
name="page",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="extra",
|
||||
to="djangocms_page_meta.PageMeta",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="genericmetaattribute",
|
||||
name="title",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="extra",
|
||||
to="djangocms_page_meta.TitleMeta",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="image",
|
||||
field=filer.fields.file.FilerFileField(
|
||||
blank=True,
|
||||
help_text="Used if title image is empty.",
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="djangocms_page_meta_page",
|
||||
to="filer.File",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="og_author",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
verbose_name="Author account",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="public_extension",
|
||||
field=models.OneToOneField(
|
||||
editable=False,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="draft_extension",
|
||||
to="djangocms_page_meta.PageMeta",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="extended_object",
|
||||
field=models.OneToOneField(
|
||||
editable=False,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="cms.PageContent",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="image",
|
||||
field=filer.fields.file.FilerFileField(
|
||||
blank=True,
|
||||
help_text="If empty, page image will be used for all languages.",
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="djangocms_page_meta_title",
|
||||
to="filer.File",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="public_extension",
|
||||
field=models.OneToOneField(
|
||||
editable=False,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="draft_extension",
|
||||
to="djangocms_page_meta.TitleMeta",
|
||||
),
|
||||
),
|
||||
]
|
||||
31
vendor/djangocms_page_meta/migrations/0012_auto_20200706_1230.py
vendored
Normal file
31
vendor/djangocms_page_meta/migrations/0012_auto_20200706_1230.py
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# Generated by Django 2.2 on 2020-07-06 12:30
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0011_auto_20190218_1010"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name="pagemeta",
|
||||
name="gplus_author",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="pagemeta",
|
||||
name="gplus_type",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="titlemeta",
|
||||
name="gplus_description",
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="pagemeta",
|
||||
name="schemaorg_type",
|
||||
field=models.CharField(
|
||||
blank=True, help_text="Use Article for generic pages.", max_length=255, verbose_name="Resource type"
|
||||
),
|
||||
),
|
||||
]
|
||||
50
vendor/djangocms_page_meta/migrations/0013_auto_20200821_1457.py
vendored
Normal file
50
vendor/djangocms_page_meta/migrations/0013_auto_20200821_1457.py
vendored
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# Generated by Django 2.2 on 2020-08-21 14:57
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0012_auto_20200706_1230"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="titlemeta",
|
||||
name="schemaorg_description",
|
||||
field=models.CharField(
|
||||
blank=True, help_text="Description of the item.", max_length=255, verbose_name="Schemaorg Description"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="titlemeta",
|
||||
name="schemaorg_name",
|
||||
field=models.CharField(
|
||||
blank=True, help_text="Name of the item.", max_length=255, verbose_name="Schemaorg Name"
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="schemaorg_type",
|
||||
field=models.CharField(
|
||||
blank=True,
|
||||
choices=[
|
||||
("Article", "Article"),
|
||||
("Blog", "Blog"),
|
||||
("WebPage", "Page"),
|
||||
("WebSite", "WebSite"),
|
||||
("Event", "Event"),
|
||||
("Product", "Product"),
|
||||
("Place", "Place"),
|
||||
("Person", "Person"),
|
||||
("Book", "Book"),
|
||||
("LocalBusiness", "LocalBusiness"),
|
||||
("Organization", "Organization"),
|
||||
("Review", "Review"),
|
||||
],
|
||||
help_text="Use Article for generic pages.",
|
||||
max_length=255,
|
||||
verbose_name="Resource type",
|
||||
),
|
||||
),
|
||||
]
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
# Generated by Django 4.2.4 on 2023-08-03 13:23
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0013_auto_20200821_1457"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="pagemeta",
|
||||
name="robots",
|
||||
field=models.CharField(blank=True, max_length=512, verbose_name="Robots meta tag"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="genericmetaattribute",
|
||||
name="id",
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="pagemeta",
|
||||
name="id",
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID"),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="titlemeta",
|
||||
name="id",
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID"),
|
||||
),
|
||||
]
|
||||
37
vendor/djangocms_page_meta/migrations/0015_defaultmetaimage.py
vendored
Normal file
37
vendor/djangocms_page_meta/migrations/0015_defaultmetaimage.py
vendored
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Generated by Django 4.2.4 on 2023-08-30 08:06
|
||||
|
||||
import django.db.models.deletion
|
||||
import filer.fields.file
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("filer", "0017_image__transparent"),
|
||||
("djangocms_page_meta", "0014_pagemeta_robots_alter_genericmetaattribute_id_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="DefaultMetaImage",
|
||||
fields=[
|
||||
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
|
||||
(
|
||||
"image",
|
||||
filer.fields.file.FilerFileField(
|
||||
blank=True,
|
||||
help_text="Default image for og:image, twitter:image and schema.org image."
|
||||
"\nYou can override this by setting the image in Meta-information page extension.",
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL,
|
||||
related_name="djangocms_page_meta_default_image",
|
||||
to="filer.file",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Default meta image",
|
||||
"verbose_name_plural": "Default meta images",
|
||||
},
|
||||
),
|
||||
]
|
||||
23
vendor/djangocms_page_meta/migrations/0016_auto_20230830_1007.py
vendored
Normal file
23
vendor/djangocms_page_meta/migrations/0016_auto_20230830_1007.py
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# Generated by Django 4.2.4 on 2023-08-30 08:07
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
def generate_default_meta_image_singleton(apps, schema_editor):
|
||||
DefaultMetaImage = apps.get_model("djangocms_page_meta", "DefaultMetaImage")
|
||||
DefaultMetaImage.objects.create()
|
||||
|
||||
|
||||
def backwards(apps, schema_editor):
|
||||
DefaultMetaImage = apps.get_model("djangocms_page_meta", "DefaultMetaImage")
|
||||
DefaultMetaImage.objects.all().delete()
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("djangocms_page_meta", "0015_defaultmetaimage"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(generate_default_meta_image_singleton, backwards),
|
||||
]
|
||||
28
vendor/djangocms_page_meta/migrations/0017_remove_pagemeta_public_extension_and_more.py
vendored
Normal file
28
vendor/djangocms_page_meta/migrations/0017_remove_pagemeta_public_extension_and_more.py
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# Generated by Django 6.1.1 on 2026-10-01 14:16
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cms', '0045_pageurl_site_unique_path'),
|
||||
('djangocms_page_meta', '0016_auto_20230830_1007'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='pagemeta',
|
||||
name='public_extension',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='titlemeta',
|
||||
name='public_extension',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='titlemeta',
|
||||
name='extended_object',
|
||||
field=models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='cms.pagecontent'),
|
||||
),
|
||||
]
|
||||
0
vendor/djangocms_page_meta/migrations/__init__.py
vendored
Normal file
0
vendor/djangocms_page_meta/migrations/__init__.py
vendored
Normal file
231
vendor/djangocms_page_meta/models.py
vendored
Normal file
231
vendor/djangocms_page_meta/models.py
vendored
Normal file
|
|
@ -0,0 +1,231 @@
|
|||
import ast
|
||||
|
||||
from cms.extensions import PageExtension, TitleExtension
|
||||
from cms.extensions.extension_pool import extension_pool
|
||||
from cms.models import Page, Title
|
||||
from django.conf import settings
|
||||
from django.core.cache import cache
|
||||
from django.db import models
|
||||
from django.db.models.signals import post_save, pre_delete
|
||||
from django.dispatch import receiver
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from filer.fields.file import FilerFileField
|
||||
from meta import settings as meta_settings
|
||||
|
||||
from .utils import get_cache_key, get_metatags
|
||||
|
||||
try:
|
||||
from aldryn_snake.template_api import registry
|
||||
except ImportError:
|
||||
registry = None
|
||||
|
||||
|
||||
class PageMeta(PageExtension):
|
||||
image = FilerFileField(
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name="djangocms_page_meta_page",
|
||||
help_text=_("Used if title image is empty."),
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
og_type = models.CharField(
|
||||
_("Resource type"),
|
||||
max_length=255,
|
||||
choices=meta_settings.FB_TYPES,
|
||||
blank=True,
|
||||
help_text=_("Use Article for generic pages."),
|
||||
)
|
||||
og_author = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL,
|
||||
verbose_name=_("Author account"),
|
||||
null=True,
|
||||
blank=True,
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
og_author_url = models.CharField(_("Author Facebook URL"), max_length=255, default="", blank=True)
|
||||
og_author_fbid = models.CharField(
|
||||
_("Author Facebook ID"), max_length=16, default="", blank=True, help_text=_("Use Facebook numeric ID.")
|
||||
)
|
||||
og_publisher = models.CharField(_("Website Facebook URL"), max_length=255, default="", blank=True)
|
||||
og_app_id = models.CharField(_("Facebook App ID"), max_length=255, default="", blank=True)
|
||||
fb_pages = models.CharField(_("Facebook Pages ID"), max_length=255, default="", blank=True)
|
||||
twitter_author = models.CharField(
|
||||
_("Author Twitter Account"), max_length=255, default="", blank=True, help_text=_("'@' character not required.")
|
||||
)
|
||||
twitter_site = models.CharField(
|
||||
_("Website Twitter Account"),
|
||||
max_length=255,
|
||||
default="",
|
||||
blank=True,
|
||||
help_text=_("'@' character not required."),
|
||||
)
|
||||
twitter_type = models.CharField(
|
||||
_("Resource type"), max_length=255, choices=meta_settings.TWITTER_TYPES, blank=True
|
||||
)
|
||||
schemaorg_type = models.CharField(
|
||||
_("Resource type"),
|
||||
max_length=255,
|
||||
choices=meta_settings.SCHEMAORG_TYPES,
|
||||
blank=True,
|
||||
help_text=_("Use Article for generic pages."),
|
||||
)
|
||||
robots = models.CharField(_("Robots meta tag"), max_length=512, blank=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Page meta info (all languages)")
|
||||
verbose_name_plural = _("Page meta info (all languages)")
|
||||
|
||||
def __str__(self):
|
||||
return _("Page Meta for {0}").format(self.extended_object)
|
||||
|
||||
def copy_relations(self, oldinstance, language):
|
||||
# Remove old refs to prep for copying
|
||||
self.extra.all().delete()
|
||||
|
||||
# Copy everyting to published page instance
|
||||
for item in oldinstance.extra.all():
|
||||
item.pk = None
|
||||
item.page = self
|
||||
item.save()
|
||||
|
||||
@property
|
||||
def robots_list(self):
|
||||
if self.robots:
|
||||
return ast.literal_eval(self.robots)
|
||||
return None
|
||||
|
||||
|
||||
extension_pool.register(PageMeta)
|
||||
|
||||
|
||||
class TitleMeta(TitleExtension):
|
||||
image = FilerFileField(
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name="djangocms_page_meta_title",
|
||||
help_text=_("If empty, page image will be used for all languages."),
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
keywords = models.CharField(max_length=2000, default="", blank=True)
|
||||
description = models.CharField(max_length=2000, default="", blank=True)
|
||||
og_description = models.CharField(_("Facebook Description"), max_length=2000, default="", blank=True)
|
||||
twitter_description = models.CharField(_("Twitter Description"), max_length=2000, default="", blank=True)
|
||||
schemaorg_name = models.CharField(
|
||||
_("Schemaorg Name"), max_length=255, blank=True, help_text=_("Name of the item.")
|
||||
)
|
||||
schemaorg_description = models.CharField(
|
||||
_("Schemaorg Description"), max_length=255, blank=True, help_text=_("Description of the item.")
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Page meta info (language-dependent)")
|
||||
verbose_name_plural = _("Page meta info (language-dependent)")
|
||||
|
||||
def __str__(self):
|
||||
return _("Title Meta for {0}").format(self.extended_object)
|
||||
|
||||
@property
|
||||
def locale(self):
|
||||
if self.extended_object.language.find("_") > -1:
|
||||
return self.extended_object.language
|
||||
else:
|
||||
return None
|
||||
|
||||
def copy_relations(self, oldinstance, language):
|
||||
# Remove old refs to prep for copying
|
||||
self.extra.all().delete()
|
||||
|
||||
# Copy everyting to published page instance
|
||||
for item in oldinstance.extra.all():
|
||||
item.pk = None
|
||||
item.title = self
|
||||
item.save()
|
||||
|
||||
|
||||
extension_pool.register(TitleMeta)
|
||||
|
||||
|
||||
class GenericMetaAttribute(models.Model):
|
||||
DEFAULT_ATTRIBUTE = "name"
|
||||
page = models.ForeignKey(PageMeta, null=True, blank=True, related_name="extra", on_delete=models.CASCADE)
|
||||
title = models.ForeignKey(TitleMeta, null=True, blank=True, related_name="extra", on_delete=models.CASCADE)
|
||||
attribute = models.CharField(
|
||||
_("attribute"),
|
||||
max_length=200,
|
||||
help_text=_("Custom attribute"),
|
||||
default="",
|
||||
blank=True,
|
||||
)
|
||||
name = models.CharField(
|
||||
_("name"),
|
||||
max_length=200,
|
||||
help_text=_("Meta attribute name"),
|
||||
)
|
||||
value = models.CharField(
|
||||
_("value"),
|
||||
max_length=2000,
|
||||
help_text=_("Meta attribute value"),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Page meta info (language-dependent)")
|
||||
verbose_name_plural = _("Page meta info (language-dependent)")
|
||||
|
||||
def __str__(self):
|
||||
if self.page:
|
||||
return _("Attribute {0} for {1}").format(self.name, self.page)
|
||||
if self.title:
|
||||
return _("Attribute {0} for {1}").format(self.name, self.title)
|
||||
|
||||
|
||||
class DefaultMetaImage(models.Model):
|
||||
image = FilerFileField(
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name="djangocms_page_meta_default_image",
|
||||
help_text=_(
|
||||
"Default image for og:image, twitter:image and schema.org image.\n"
|
||||
"You can override this by setting the image in Meta-information page extension."
|
||||
),
|
||||
on_delete=models.SET_NULL,
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Default meta image")
|
||||
verbose_name_plural = _("Default meta images")
|
||||
|
||||
def __str__(self):
|
||||
return self.image.label if self.image else str(self.pk)
|
||||
|
||||
|
||||
# Cache cleanup when deleting pages / editing page extensions
|
||||
@receiver(pre_delete, sender=Page)
|
||||
def cleanup_page(sender, instance, **kwargs):
|
||||
for language in instance.get_languages():
|
||||
key = get_cache_key(instance, language)
|
||||
cache.delete(key)
|
||||
|
||||
|
||||
@receiver(pre_delete, sender=Title)
|
||||
def cleanup_title(sender, instance, **kwargs):
|
||||
key = get_cache_key(instance.page, instance.language)
|
||||
cache.delete(key)
|
||||
|
||||
|
||||
@receiver(post_save, sender=PageMeta)
|
||||
@receiver(pre_delete, sender=PageMeta)
|
||||
def cleanup_pagemeta(sender, instance, **kwargs):
|
||||
for language in instance.extended_object.get_languages():
|
||||
key = get_cache_key(instance.extended_object, language)
|
||||
cache.delete(key)
|
||||
|
||||
|
||||
@receiver(post_save, sender=TitleMeta)
|
||||
@receiver(pre_delete, sender=TitleMeta)
|
||||
def cleanup_titlemeta(sender, instance, **kwargs):
|
||||
key = get_cache_key(instance.extended_object.page, instance.extended_object.language)
|
||||
cache.delete(key)
|
||||
|
||||
|
||||
if registry:
|
||||
registry.add_to_head(get_metatags)
|
||||
27
vendor/djangocms_page_meta/settings.py
vendored
Normal file
27
vendor/djangocms_page_meta/settings.py
vendored
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
def get_setting(name):
|
||||
from django.conf import settings
|
||||
|
||||
description_length = getattr(settings, "PAGE_META_DESCRIPTION_LENGTH", None) or 320
|
||||
|
||||
tw_description_length = getattr(settings, "PAGE_META_TWITTER_DESCRIPTION_LENGTH", None) or 320
|
||||
|
||||
robots_choices = getattr(settings, "PAGE_META_ROBOTS_CHOICES", None) or (
|
||||
("none", _("None [noindex, nofollow]")),
|
||||
("noindex", _("No Index")),
|
||||
("nofollow", _("No Follow")),
|
||||
("noimageindex", _("No Image Index")),
|
||||
("nosnippet", _("No Snippet")),
|
||||
("noarchive", _("No Archive")),
|
||||
("notranslate", _("No Translate")),
|
||||
("nositelinkssearchbox", _("No Site Links Search Box")),
|
||||
)
|
||||
|
||||
default = {
|
||||
"PAGE_META_DESCRIPTION_LENGTH": description_length,
|
||||
"PAGE_META_TWITTER_DESCRIPTION_LENGTH": tw_description_length,
|
||||
"PAGE_META_ROBOTS_CHOICES": robots_choices,
|
||||
}
|
||||
return default["PAGE_META_%s" % name]
|
||||
3
vendor/djangocms_page_meta/static/djangocms_page_meta/css/djangocms_page_meta_admin.css
vendored
Normal file
3
vendor/djangocms_page_meta/static/djangocms_page_meta/css/djangocms_page_meta_admin.css
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
#content .module h2:first-child {
|
||||
display: block;
|
||||
}
|
||||
50
vendor/djangocms_page_meta/templates/djangocms_page_meta/meta.html
vendored
Normal file
50
vendor/djangocms_page_meta/templates/djangocms_page_meta/meta.html
vendored
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{% load meta_extra %}
|
||||
{% if meta %}
|
||||
{% autoescape off %}
|
||||
{% if meta.description %}{% meta 'description' meta.description %}{% endif %}
|
||||
{% if meta.keywords %}{% meta_list 'keywords' meta.keywords %}{% endif %}
|
||||
{% if meta.use_og %}
|
||||
{% if meta.title %}{% og_prop 'title' meta.title %}{% endif %}
|
||||
{% if meta.url %}{% og_prop 'url' meta.url %}{% endif %}
|
||||
{% if meta.og_description %}{% og_prop 'description' meta.og_description %}{% endif %}
|
||||
{% if meta.image %}{% og_prop 'image' meta.image %}{% endif %}
|
||||
{% if meta.og_type %}{% og_prop 'type' meta.og_type %}{% endif %}
|
||||
{% if meta.site_name %}{% og_prop 'site_name' meta.site_name %}{% endif %}
|
||||
{% if meta.og_author_url %}
|
||||
{% generic_prop 'article' 'author' meta.og_author_url %}
|
||||
{% elif meta.og_author %}
|
||||
{% generic_prop 'article' 'author:first_name' meta.og_author.first_name %}
|
||||
{% generic_prop 'article' 'author:last_name' meta.og_author.last_name %}
|
||||
{% endif %}
|
||||
{% if meta.published_time %}{% generic_prop 'article' 'published_time' meta.published_time %}{% endif %}
|
||||
{% if meta.modified_time %}{% generic_prop 'article' 'modified_time' meta.modified_time %}{% endif %}
|
||||
{% if meta.expiration_time %}{% generic_prop 'article' 'expiration_time' meta.expiration_time %}{% endif %}
|
||||
{% if meta.og_publisher %}{% generic_prop 'article' 'publisher' meta.og_publisher %}{% endif %}
|
||||
{% if meta.og_app_id %}{% generic_prop 'fb' 'app_id' meta.og_app_id %}{% endif %}
|
||||
{% if meta.og_profile_id %}{% generic_prop 'fb' 'profile_id' meta.og_profile_id %}{% endif %}
|
||||
{% if meta.fb_pages %}{% generic_prop 'fb' 'pages' meta.fb_pages %}{% endif %}
|
||||
{% if meta.tag %}{% generic_prop 'article' 'tag' meta.tag %}{% endif %}
|
||||
{% if meta.locale %}{% og_prop 'locale' meta.locale %}{% endif %}
|
||||
{% endif %}
|
||||
{% if meta.use_twitter %}
|
||||
{% twitter_prop 'domain' meta.get_domain %}
|
||||
{% if meta.twitter_type %}{% twitter_prop 'card' meta.twitter_type %}{% endif %}
|
||||
{% if meta.title %}{% twitter_prop 'title' meta.title %}{% endif %}
|
||||
{% if meta.url %}{% twitter_prop 'url' meta.url %}{% endif %}
|
||||
{% if meta.twitter_description %}{% twitter_prop 'description' meta.twitter_description %}{% endif %}
|
||||
{% if meta.image %}{% twitter_prop 'image:src' meta.image %}{% endif %}
|
||||
{% if meta.twitter_author %}{% twitter_prop 'creator' meta.twitter_author %}{% endif %}
|
||||
{% if meta.twitter_site %}{% twitter_prop 'site_name' meta.twitter_site %}{% endif %}
|
||||
{% endif %}
|
||||
{% if meta.robots %}{% meta_list 'robots' meta.robots %}{% endif %}
|
||||
{% if meta.use_schemaorg %}
|
||||
{% if meta.schemaorg_name %}{% schemaorg_prop 'name' meta.schemaorg_name %}{% endif %}
|
||||
{% if meta.schemaorg_datePublished %}{% schemaorg_prop 'datePublished' meta.schemaorg_datePublished %}{% endif %}
|
||||
{% if meta.schemaorg_dateModified %}{% schemaorg_prop 'dateModified' meta.schemaorg_dateModified %}{% endif %}
|
||||
{% if meta.schemaorg_description %}{% schemaorg_prop 'description' meta.schemaorg_description %}{% endif %}
|
||||
{% if meta.schemaorg_image %}{% schemaorg_prop 'image' meta.schemaorg_image %}{% endif %}
|
||||
{% if meta.schemaorg_url %}{% schemaorg_prop 'url' meta.schemaorg_url %}{% endif %}
|
||||
{% endif %}
|
||||
{% custom_meta_extras meta.extra_custom_props %}
|
||||
{% endautoescape %}
|
||||
{% endif %}
|
||||
0
vendor/djangocms_page_meta/templatetags/__init__.py
vendored
Normal file
0
vendor/djangocms_page_meta/templatetags/__init__.py
vendored
Normal file
29
vendor/djangocms_page_meta/templatetags/page_meta_tags.py
vendored
Normal file
29
vendor/djangocms_page_meta/templatetags/page_meta_tags.py
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
from classytags.arguments import Argument
|
||||
from classytags.core import Options, Tag
|
||||
from cms.utils import get_language_from_request
|
||||
from django import template
|
||||
from meta.views import Meta
|
||||
|
||||
from ..utils import get_page_meta
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
@register.tag(name="page_meta")
|
||||
class MetaFromPage(Tag):
|
||||
name = "page_meta"
|
||||
options = Options(
|
||||
Argument("page"),
|
||||
"as",
|
||||
Argument("varname", required=True, resolve=False),
|
||||
)
|
||||
|
||||
def render_tag(self, context, page, varname):
|
||||
request = context.get("request")
|
||||
if request:
|
||||
language = get_language_from_request(request)
|
||||
meta = get_page_meta(page, language)
|
||||
else:
|
||||
meta = Meta()
|
||||
context[varname] = meta
|
||||
return ""
|
||||
155
vendor/djangocms_page_meta/utils.py
vendored
Normal file
155
vendor/djangocms_page_meta/utils.py
vendored
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
from django.template.loader import render_to_string
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.translation import get_language_from_request
|
||||
from meta import settings as meta_settings
|
||||
|
||||
|
||||
def get_cache_key(page, language):
|
||||
"""
|
||||
Create the cache key for the current page and language
|
||||
"""
|
||||
from cms.cache import _get_cache_key
|
||||
|
||||
try:
|
||||
site_id = page.node.site_id
|
||||
except AttributeError: # CMS_3_4
|
||||
site_id = page.site_id
|
||||
return _get_cache_key("page_meta", page, language, site_id)
|
||||
|
||||
|
||||
def get_page_meta(page, language):
|
||||
"""
|
||||
Retrieves all the meta information for the page in the given language
|
||||
|
||||
:param page: a Page instance
|
||||
:param lang: a language code
|
||||
|
||||
:return: Meta instance
|
||||
:type: object
|
||||
"""
|
||||
from django.core.cache import cache
|
||||
from meta.views import Meta
|
||||
|
||||
from .models import DefaultMetaImage, PageMeta, TitleMeta
|
||||
|
||||
try:
|
||||
meta_key = get_cache_key(page, language)
|
||||
except AttributeError:
|
||||
return None
|
||||
meta = cache.get(meta_key)
|
||||
if not meta:
|
||||
meta = Meta()
|
||||
title = page.get_title_obj(language)
|
||||
default_meta_image = DefaultMetaImage.objects.first().image
|
||||
meta.extra_custom_props = []
|
||||
|
||||
meta.title = page.get_page_title(language)
|
||||
if not meta.title:
|
||||
meta.title = page.get_title(language)
|
||||
|
||||
if title.meta_description:
|
||||
meta.description = title.meta_description.strip()
|
||||
try:
|
||||
titlemeta = title.titlemeta
|
||||
if titlemeta.description:
|
||||
meta.description = titlemeta.description.strip()
|
||||
if titlemeta.keywords:
|
||||
meta.keywords = titlemeta.keywords.strip().split(",")
|
||||
meta.locale = titlemeta.locale
|
||||
meta.og_description = titlemeta.og_description.strip()
|
||||
if not meta.og_description:
|
||||
meta.og_description = meta.description
|
||||
meta.twitter_description = titlemeta.twitter_description.strip()
|
||||
if not meta.twitter_description:
|
||||
meta.twitter_description = meta.description
|
||||
if titlemeta.image:
|
||||
meta.image = title.titlemeta.image.canonical_url or title.titlemeta.image.url
|
||||
meta.schemaorg_description = titlemeta.schemaorg_description.strip()
|
||||
if not meta.schemaorg_description:
|
||||
meta.schemaorg_description = meta.description
|
||||
meta.schemaorg_name = titlemeta.schemaorg_name
|
||||
if not meta.schemaorg_name:
|
||||
meta.schemaorg_name = meta.title
|
||||
for item in titlemeta.extra.all():
|
||||
attribute = item.attribute
|
||||
if not attribute:
|
||||
attribute = item.DEFAULT_ATTRIBUTE
|
||||
meta.extra_custom_props.append((attribute, item.name, item.value))
|
||||
except (TitleMeta.DoesNotExist, AttributeError):
|
||||
# Skipping title-level metas
|
||||
if meta.description:
|
||||
meta.og_description = meta.description
|
||||
meta.schemaorg_description = meta.description
|
||||
meta.twitter_description = meta.description
|
||||
defaults = {
|
||||
"object_type": meta_settings.get_setting("FB_TYPE"),
|
||||
"og_type": meta_settings.get_setting("FB_TYPE"),
|
||||
"og_app_id": meta_settings.get_setting("FB_APPID"),
|
||||
"fb_pages": meta_settings.get_setting("FB_PAGES"),
|
||||
"og_profile_id": meta_settings.get_setting("FB_PROFILE_ID"),
|
||||
"og_publisher": meta_settings.get_setting("FB_PUBLISHER"),
|
||||
"og_author_url": meta_settings.get_setting("FB_AUTHOR_URL"),
|
||||
"twitter_type": meta_settings.get_setting("TWITTER_TYPE"),
|
||||
"twitter_site": meta_settings.get_setting("TWITTER_SITE"),
|
||||
"twitter_author": meta_settings.get_setting("TWITTER_AUTHOR"),
|
||||
"schemaorg_type": meta_settings.get_setting("SCHEMAORG_TYPE"),
|
||||
"schemaorg_datePublished": page.publication_date.isoformat() if page.publication_date else None,
|
||||
"schemaorg_dateModified": page.changed_date.isoformat() if page.changed_date else None,
|
||||
}
|
||||
try:
|
||||
pagemeta = page.pagemeta
|
||||
meta.object_type = pagemeta.og_type
|
||||
meta.og_type = pagemeta.og_type
|
||||
meta.og_app_id = pagemeta.og_app_id
|
||||
meta.fb_pages = pagemeta.fb_pages
|
||||
meta.og_profile_id = pagemeta.og_author_fbid
|
||||
meta.twitter_type = pagemeta.twitter_type
|
||||
meta.twitter_site = pagemeta.twitter_site
|
||||
meta.twitter_author = pagemeta.twitter_author
|
||||
meta.schemaorg_type = pagemeta.schemaorg_type
|
||||
meta.robots = pagemeta.robots_list
|
||||
if page.publication_date:
|
||||
meta.published_time = page.publication_date.isoformat()
|
||||
if page.changed_date:
|
||||
meta.modified_time = page.changed_date.isoformat()
|
||||
if page.publication_end_date:
|
||||
meta.expiration_time = page.publication_end_date.isoformat()
|
||||
if meta.og_type == "article":
|
||||
meta.og_publisher = pagemeta.og_publisher
|
||||
meta.og_author_url = pagemeta.og_author_url
|
||||
try:
|
||||
from djangocms_page_tags.utils import get_page_tags, get_title_tags
|
||||
|
||||
tags = list(get_title_tags(page, language))
|
||||
tags += list(get_page_tags(page))
|
||||
meta.tag = ",".join([tag.name for tag in tags])
|
||||
except ImportError:
|
||||
# djangocms-page-tags not available
|
||||
pass
|
||||
if not meta.image and pagemeta.image:
|
||||
meta.image = pagemeta.image.canonical_url or pagemeta.image.url
|
||||
for item in pagemeta.extra.all():
|
||||
attribute = item.attribute
|
||||
if not attribute:
|
||||
attribute = item.DEFAULT_ATTRIBUTE
|
||||
meta.extra_custom_props.append((attribute, item.name, item.value))
|
||||
except PageMeta.DoesNotExist:
|
||||
pass
|
||||
for attr, val in defaults.items():
|
||||
if not getattr(meta, attr, "") and val:
|
||||
setattr(meta, attr, val)
|
||||
if not meta.image and default_meta_image:
|
||||
meta.image = default_meta_image.canonical_url or default_meta_image.url
|
||||
meta.url = page.get_absolute_url(language)
|
||||
meta.schemaorg_url = meta.url
|
||||
meta.schemaorg_image = meta.image
|
||||
cache.set(meta_key, meta)
|
||||
return meta
|
||||
|
||||
|
||||
def get_metatags(request):
|
||||
language = get_language_from_request(request, check_path=True)
|
||||
meta = get_page_meta(request.current_page, language)
|
||||
return mark_safe(
|
||||
render_to_string(request=request, template_name="djangocms_page_meta/meta.html", context={"meta": meta})
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue