WeblateOrg / weblate

Web based localization tool with tight version control integration.
https://weblate.org/
GNU General Public License v3.0
4.66k stars 1.02k forks source link

How to spot which translation has a failing syntax #4360

Closed dsnoeck closed 4 years ago

dsnoeck commented 4 years ago

Describe the issue Hello,

When executing Commit or Push from the Repository maintenance page, I got the following error page:

Server Error The server had serious problems serving your request. Trained monkeys are en-route fixing the issue.

with a stack trace in the server log see below:

I do understand there is a Syntax error on line 994, but how to get this content ?

Thank you very much. Damien

Server configuration and status

META:
CONTENT_LENGTH = '84'
CONTENT_TYPE = 'application/x-www-form-urlencoded'
CSRF_COOKIE = 'DtYErHTP72yM4q0Se1bartvbGYVHDB9VeWJD5iFWW1syQCcI4ZwGFvteqZDvXNjT'
CSRF_COOKIE_USED = True
DOCUMENT_ROOT = '/app/data/static'
HTTP_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
HTTP_ACCEPT_ENCODING = 'gzip, deflate'
HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.5'
HTTP_CONNECTION = 'keep-alive'
HTTP_CONTENT_LENGTH = '84'
HTTP_CONTENT_TYPE = 'application/x-www-form-urlencoded'
HTTP_COOKIE = 'sessionid=j4jth2g51dvs9bldbrz57bkacqcvosqo'
HTTP_DNT = '1'
HTTP_HOST = 'weblate.foundry.crp.io'
HTTP_ORIGIN = 'http://weblate.foundry.crp.io'
HTTP_REFERER = 'http://weblate.foundry.crp.io/'
HTTP_UPGRADE_INSECURE_REQUESTS = '1'
HTTP_USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:80.0) Gecko/20100101 Firefox/80.0'
PATH_INFO = '/update/pot/'
QUERY_STRING = ''
REMOTE_ADDR = '10.1.144.4'
REMOTE_PORT = '62556'
REQUEST_METHOD = 'POST'
REQUEST_SCHEME = 'http'
REQUEST_URI = '/update/pot/'
SCRIPT_NAME = ''
SERVER_NAME = ''
SERVER_PORT = '8080'
SERVER_PROTOCOL = 'HTTP/1.1'
WEBLATE_LANGUAGE = ''
WEBLATE_USER = "'admin'"
WEBLATE_VERSION:Cython = '0.29.15'
WEBLATE_VERSION:Django = '3.0.3'
WEBLATE_VERSION:Git = '2.20.1'
WEBLATE_VERSION:GitPython = '3.0.8'
WEBLATE_VERSION:Mercurial = '4.8.2'
WEBLATE_VERSION:Pillow = '7.0.0'
WEBLATE_VERSION:Python = '3.7.3'
WEBLATE_VERSION:Weblate = '3.11.2'
WEBLATE_VERSION:Whoosh = '2.7.4'
WEBLATE_VERSION:aeidon = '1.7.0'
WEBLATE_VERSION:akismet = '1.1'
WEBLATE_VERSION:bleach = '3.1.1'
WEBLATE_VERSION:borgbackup = '1.1.10'
WEBLATE_VERSION:boto3 = '1.12.5'
WEBLATE_VERSION:celery = '4.4.0'
WEBLATE_VERSION:celery-batches = '0.3'
WEBLATE_VERSION:chardet = '3.0.4'
WEBLATE_VERSION:diff-match-patch = '20181111'
WEBLATE_VERSION:django-appconf = '1.0.3'
WEBLATE_VERSION:django-compressor = '2.4'
WEBLATE_VERSION:django-crispy-forms = '1.8.1'
WEBLATE_VERSION:django-redis = '4.11.0'
WEBLATE_VERSION:djangorestframework = '3.11.0'
WEBLATE_VERSION:filelock = '3.0.12'
WEBLATE_VERSION:git-svn = '2.20.1'
WEBLATE_VERSION:hiredis = '1.0.1'
WEBLATE_VERSION:html2text = '2020.1.16'
WEBLATE_VERSION:jellyfish = '0.7.2'
WEBLATE_VERSION:kombu = '4.6.7'
WEBLATE_VERSION:lxml = '4.3.2'
WEBLATE_VERSION:misaka = '2.1.1'
WEBLATE_VERSION:oauthlib = '3.1.0'
WEBLATE_VERSION:openpyxl = '3.0.1'
WEBLATE_VERSION:phply = '1.2.5'
WEBLATE_VERSION:psycopg2 = '2.7.7'
WEBLATE_VERSION:pycairo = '1.16.2'
WEBLATE_VERSION:pygobject = '3.30.4'
WEBLATE_VERSION:python-dateutil = '2.8.1'
WEBLATE_VERSION:requests = '2.23.0'
WEBLATE_VERSION:ruamel.yaml = '0.16.10'
WEBLATE_VERSION:sentry_sdk = '0.14.1'
WEBLATE_VERSION:setuptools = '40.8.0'
WEBLATE_VERSION:siphashc = '1.3'
WEBLATE_VERSION:six = '1.14.0'
WEBLATE_VERSION:social-auth-app-django = '3.1.0'
WEBLATE_VERSION:social-auth-core = '3.2.0'
WEBLATE_VERSION:tesserocr = '2.5.0'
WEBLATE_VERSION:translate-toolkit = '2.5.0'
WEBLATE_VERSION:translation-finder = '1.7'
WEBLATE_VERSION:user-agents = '2.1'
WEBLATE_VERSION:zeep = '3.4.0'
uwsgi.node = b'1af6157890bc'
uwsgi.version = b'2.0.18-debian'
wsgi.errors = <_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'>
wsgi.file_wrapper = ''
wsgi.input = <uwsgi._Input object at 0x7f0bf574d240>
wsgi.multiprocess = True
wsgi.multithread = False
wsgi.run_once = False
wsgi.url_scheme = 'http'
wsgi.version = '(1, 0)'

Settings:
Using settings module weblate.settings_docker
ABSOLUTE_URL_OVERRIDES = {}
ADDITIONAL_CONFIG = '/app/data/settings-override.py'
ADMINS = "(('Admin', 'admin@company.com'),)"
ADMINS_BILLING = []
ADMINS_CONTACT = []
ADMINS_HOSTING = []
AKISMET_API_KEY = '********************'
ALLOWED_HOSTS = ['*']
ANONYMOUS_USER_NAME = 'anonymous'
APPEND_SLASH = True
AUDITLOG_EXPIRY = 180
AUTHENTICATION_BACKENDS = "('social_core.backends.email.EmailAuth', 'django_auth_ldap.backend.LDAPBackend', 'weblate.accounts.auth.WeblateUserBackend')"
AUTH_LDAP_BIND_DN = '<Some correct LDAP binding>'
AUTH_LDAP_BIND_PASSWORD = '********************'
AUTH_LDAP_CONNECTION_OPTIONS = {8: 0}
AUTH_LDAP_SERVER_URI = 'ldap://server:389'
AUTH_LDAP_USER_ATTR_MAP = {'dn': 'dn', 'first_name': 'givenName', 'last_name': 'sn', 'email': 'mail'}
AUTH_LDAP_USER_DN_TEMPLATE = None
AUTH_LDAP_USER_SEARCH = <LDAPSearch: DC=company-net,DC=ads>
AUTH_LOCK_ATTEMPTS = 10
AUTH_PASSWORD_DAYS = '********************'
AUTH_PASSWORD_VALIDATORS = '********************'
AUTH_RESTRICT_ADMINS = {}
AUTH_TOKEN_VALID = '********************'
AUTH_USER_MODEL = 'weblate_auth.User'
AUTH_VALIDATE_PERMS = False
AUTOFIX_LIST = ['weblate.trans.autofixes.whitespace.SameBookendingWhitespace', 'weblate.trans.autofixes.chars.ReplaceTrailingDotsWithEllipsis', 'weblate.trans.autofixes.chars.RemoveZeroSpace', 'weblate.trans.autofixes.chars.RemoveControlChars']
AUTO_UPDATE = False
AVATAR_DEFAULT_IMAGE = 'identicon'
AVATAR_URL_PREFIX = 'https://www.gravatar.com/'
BASE_DIR = '/usr/local/lib/python3.7/dist-packages'
CACHES = {'default': {'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://cache:6379/1', 'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'PARSER_CLASS': 'redis.connection.HiredisParser', 'PASSWORD': '********************', 'CONNECTION_POOL_KWARGS': {}}, 'KEY_PREFIX': '********************'}, 'avatar': {'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', 'LOCATION': '/app/data/avatar-cache', 'TIMEOUT': 86400, 'OPTIONS': {'MAX_ENTRIES': 1000}}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
CELERY_BEAT_SCHEDULE_FILENAME = '/app/data/celery/beat-schedule'
CELERY_BROKER_URL = 'redis://cache:6379/1'
CELERY_IMPORTS = ['weblate.accounts.notifications', 'weblate.trans.discovery', 'weblate.trans.models', 'weblate.trans.search']
CELERY_RESULT_BACKEND = 'redis://cache:6379/1'
CELERY_TASK_ALWAYS_EAGER = False
CELERY_TASK_ROUTES = {'weblate.trans.search.*': {'queue': 'search'}, 'weblate.trans.tasks.optimize_fulltext': {'queue': 'search'}, 'weblate.trans.tasks.cleanup_fulltext': {'queue': 'search'}, 'weblate.trans.tasks.auto_translate': {'queue': 'translate'}, 'weblate.memory.tasks.*': {'queue': 'memory'}, 'weblate.accounts.tasks.notify_*': {'queue': 'notify'}, 'weblate.accounts.tasks.send_mails': {'queue': 'notify'}, 'weblate.memory.tasks.memory_backup': {'queue': 'backup'}, 'weblate.utils.tasks.settings_backup': {'queue': 'backup'}, 'weblate.utils.tasks.database_backup': {'queue': 'backup'}, 'weblate.wladmin.tasks.backup': {'queue': 'backup'}, 'weblate.wladmin.tasks.backup_service': {'queue': 'backup'}}
CELERY_WORKER_MAX_MEMORY_PER_CHILD = 200000
CELERY_WORKER_PREFETCH_MULTIPLIER = 0
CHECK_LIST = ['weblate.checks.same.SameCheck', 'weblate.checks.chars.BeginNewlineCheck', 'weblate.checks.chars.EndNewlineCheck', 'weblate.checks.chars.BeginSpaceCheck', 'weblate.checks.chars.EndSpaceCheck', 'weblate.checks.chars.DoubleSpaceCheck', 'weblate.checks.chars.EndStopCheck', 'weblate.checks.chars.EndColonCheck', 'weblate.checks.chars.EndQuestionCheck', 'weblate.checks.chars.EndExclamationCheck', 'weblate.checks.chars.EndEllipsisCheck', 'weblate.checks.chars.EndSemicolonCheck', 'weblate.checks.chars.MaxLengthCheck', 'weblate.checks.chars.KashidaCheck', 'weblate.checks.chars.PuctuationSpacingCheck', 'weblate.checks.format.PythonFormatCheck', 'weblate.checks.format.PythonBraceFormatCheck', 'weblate.checks.format.PHPFormatCheck', 'weblate.checks.format.CFormatCheck', 'weblate.checks.format.PerlFormatCheck', 'weblate.checks.format.JavaScriptFormatCheck', 'weblate.checks.format.CSharpFormatCheck', 'weblate.checks.format.JavaFormatCheck', 'weblate.checks.format.JavaMessageFormatCheck', 'weblate.checks.angularjs.AngularJSInterpolationCheck', 'weblate.checks.qt.QtFormatCheck', 'weblate.checks.qt.QtPluralCheck', 'weblate.checks.ruby.RubyFormatCheck', 'weblate.checks.consistency.PluralsCheck', 'weblate.checks.consistency.SamePluralsCheck', 'weblate.checks.consistency.ConsistencyCheck', 'weblate.checks.consistency.TranslatedCheck', 'weblate.checks.chars.EscapedNewlineCountingCheck', 'weblate.checks.chars.NewLineCountCheck', 'weblate.checks.markup.BBCodeCheck', 'weblate.checks.chars.ZeroWidthSpaceCheck', 'weblate.checks.render.MaxSizeCheck', 'weblate.checks.markup.XMLValidityCheck', 'weblate.checks.markup.XMLTagsCheck', 'weblate.checks.markup.MarkdownRefLinkCheck', 'weblate.checks.markup.MarkdownLinkCheck', 'weblate.checks.markup.MarkdownSyntaxCheck', 'weblate.checks.markup.URLCheck', 'weblate.checks.markup.SafeHTMLCheck', 'weblate.checks.placeholders.PlaceholderCheck', 'weblate.checks.placeholders.RegexCheck', 'weblate.checks.source.OptionalPluralCheck', 'weblate.checks.source.EllipsisCheck', 'weblate.checks.source.MultipleFailingCheck']
COMMENT_CLEANUP_DAYS = None
COMMIT_PENDING_HOURS = 24
COMPRESSORS = {'css': 'compressor.css.CssCompressor', 'js': 'compressor.js.JsCompressor'}
COMPRESS_CACHEABLE_PRECOMPILERS = '()'
COMPRESS_CACHE_BACKEND = 'default'
COMPRESS_CACHE_KEY_FUNCTION = '********************'
COMPRESS_CLEAN_CSS_ARGUMENTS = ''
COMPRESS_CLEAN_CSS_BINARY = 'cleancss'
COMPRESS_CLOSURE_COMPILER_ARGUMENTS = ''
COMPRESS_CLOSURE_COMPILER_BINARY = 'java -jar compiler.jar'
COMPRESS_CSS_HASHING_METHOD = 'mtime'
COMPRESS_DATA_URI_MAX_SIZE = 1024
COMPRESS_DEBUG_TOGGLE = None
COMPRESS_ENABLED = True
COMPRESS_FILTERS = {'css': ['compressor.filters.css_default.CssAbsoluteFilter'], 'js': ['compressor.filters.jsmin.JSMinFilter']}
COMPRESS_JINJA2_GET_ENVIRONMENT = <function CompressorConf.JINJA2_GET_ENVIRONMENT at 0x7f0bfacea840>
COMPRESS_MINT_DELAY = 30
COMPRESS_MTIME_DELAY = 10
COMPRESS_OFFLINE = False
COMPRESS_OFFLINE_CONTEXT = {'STATIC_URL': '/static/'}
COMPRESS_OFFLINE_MANIFEST = 'manifest.json'
COMPRESS_OFFLINE_TIMEOUT = 31536000
COMPRESS_OUTPUT_DIR = 'CACHE'
COMPRESS_PARSER = 'compressor.parser.AutoSelectParser'
COMPRESS_PRECOMPILERS = '()'
COMPRESS_REBUILD_TIMEOUT = 2592000
COMPRESS_ROOT = '/app/data/static'
COMPRESS_STORAGE = 'compressor.storage.CompressorFileStorage'
COMPRESS_TEMPLATE_FILTER_CONTEXT = {'STATIC_URL': '/static/'}
COMPRESS_URL = '/static/'
COMPRESS_URL_PLACEHOLDER = '/__compressor_url_placeholder__/'
COMPRESS_VERBOSE = False
COMPRESS_YUGLIFY_BINARY = 'yuglify'
COMPRESS_YUGLIFY_CSS_ARGUMENTS = '--terminal'
COMPRESS_YUGLIFY_JS_ARGUMENTS = '--terminal'
COMPRESS_YUI_BINARY = 'java -jar yuicompressor.jar'
COMPRESS_YUI_CSS_ARGUMENTS = ''
COMPRESS_YUI_JS_ARGUMENTS = ''
CRISPY_TEMPLATE_PACK = 'bootstrap3'
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = True
CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SAMESITE = 'Lax'
CSRF_COOKIE_SECURE = False
CSRF_FAILURE_VIEW = 'weblate.trans.views.error.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = []
CSRF_USE_SESSIONS = True
DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql', 'NAME': 'weblate', 'USER': 'weblate_rw', 'PASSWORD': '********************', 'HOST': 'server.ads', 'PORT': '', 'OPTIONS': {'sslmode': 'prefer'}, 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
DATABASE_BACKUP = 'plain'
DATABASE_ROUTERS = []
DATA_DIR = '/app/data'
DATA_UPLOAD_MAX_MEMORY_SIZE = 50000000
DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
DATETIME_FORMAT = 'N j, Y, P'
DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y']
DATE_FORMAT = 'N j, Y'
DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DEBUG = False
DEBUG_PROPAGATE_EXCEPTIONS = False
DECIMAL_SEPARATOR = '.'
DEFAULT_ACCESS_CONTROL = 0
DEFAULT_ADDON_MESSAGE = 'Update translation files\n\nUpdated by "{{ addon_name }}" hook in Weblate.\n\nTranslation: {{ project_name }}/{{ component_name }}\nTranslate-URL: {{ url }}'
DEFAULT_ADD_MESSAGE = 'Added translation using Weblate ({{ language_name }})\n\n'
DEFAULT_CHARSET = 'utf-8'
DEFAULT_COMMITER_EMAIL = 'noreply@weblate.org'
DEFAULT_COMMITER_NAME = 'Weblate'
DEFAULT_COMMIT_MESSAGE = 'Translated using Weblate ({{ language_name }})\n\nCurrently translated at {{ stats.translated_percent }}% ({{ stats.translated }} of {{ stats.all }} strings)\n\nTranslation: {{ project_name }}/{{ component_name }}\nTranslate-URL: {{ url }}'
DEFAULT_DELETE_MESSAGE = 'Deleted translation using Weblate ({{ language_name }})\n\n'
DEFAULT_EXCEPTION_REPORTER_FILTER = 'weblate.trans.debug.WeblateExceptionReporterFilter'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = 'noreply@weblate.company.com'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_LOG = 'console'
DEFAULT_MERGE_MESSAGE = "Merge branch '{{ component_remote_branch }}' into Weblate.\n\n"
DEFAULT_MERGE_STYLE = 'rebase'
DEFAULT_PULL_MESSAGE = 'Translations update from Weblate\n\nTranslations update from [Weblate]({{url}}) for {{ project_name }}/{{ component_name }}.\n'
DEFAULT_PUSH_ON_COMMIT = True
DEFAULT_SHARED_TM = True
DEFAULT_TABLESPACE = ''
DEFAULT_TRANSLATION_PROPAGATION = True
DEFAULT_VCS = 'git'
DISALLOWED_USER_AGENTS = []
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtpinternal.company.com'
EMAIL_HOST_PASSWORD = '********************'
EMAIL_HOST_USER = ''
EMAIL_PORT = 25
EMAIL_SEND_HTML = True
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = '********************'
EMAIL_SUBJECT_PREFIX = '[Weblate] '
EMAIL_TIMEOUT = None
EMAIL_USE_LOCALTIME = False
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
ENABLE_AVATARS = True
ENABLE_HOOKS = True
ENABLE_HTTPS = False
ENABLE_SHARING = True
FILE_CHARSET = 'utf-8'
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
FILE_UPLOAD_PERMISSIONS = 420
FILE_UPLOAD_TEMP_DIR = None
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = []
FONTS_CDN_URL = None
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
GITHUB_USERNAME = None
GITLAB_USERNAME = None
GOOGLE_ANALYTICS_ID = None
HAVE_SYSLOG = False
HIDE_REPO_CREDENTIALS = True
IGNORABLE_404_URLS = []
INSTALLED_APPS = ['customize', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin.apps.SimpleAdminConfig', 'django.contrib.admindocs', 'django.contrib.sitemaps', 'django.contrib.humanize', 'social_django', 'crispy_forms', 'compressor', 'rest_framework', 'rest_framework.authtoken', 'weblate.addons', 'weblate.auth', 'weblate.checks', 'weblate.formats', 'weblate.machinery', 'weblate.trans', 'weblate.lang', 'weblate.langdata', 'weblate.memory', 'weblate.screenshots', 'weblate.fonts', 'weblate.accounts', 'weblate.utils', 'weblate.vcs', 'weblate.wladmin', 'weblate', 'weblate.gitexport']
INTERNAL_IPS = []
INVOICE_PATH = ''
IP_BEHIND_REVERSE_PROXY = True
IP_PROXY_HEADER = 'HTTP_X_FORWARDED_FOR'
IP_PROXY_OFFSET = 0
LANGUAGES = "(('ar', 'العربية'), ('az', 'Azərbaycan'), ('be', 'Беларуская'), ('be@latin', 'Biełaruskaja'), ('bg', 'Български'), ('br', 'Brezhoneg'), ('ca', 'Català'), ('cs', 'Čeština'), ('da', 'Dansk'), ('de', 'Deutsch'), ('en', 'English'), ('el', 'Ελληνικά'), ('en-gb', 'English (United Kingdom)'), ('es', 'Español'), ('fi', 'Suomi'), ('fr', 'Français'), ('gl', 'Galego'), ('he', 'עברית'), ('hu', 'Magyar'), ('hr', 'Hrvatski'), ('id', 'Indonesia'), ('it', 'Italiano'), ('ja', '日本語'), ('kk', 'Қазақ тілі'), ('ko', '한국어'), ('nb', 'Norsk bokmål'), ('nl', 'Nederlands'), ('pl', 'Polski'), ('pt', 'Português'), ('pt-br', 'Português brasileiro'), ('ru', 'Русский'), ('sk', 'Slovenčina'), ('sl', 'Slovenščina'), ('sq', 'Shqip'), ('sr', 'Српски'), ('sv', 'Svenska'), ('tr', 'Türkçe'), ('uk', 'Українська'), ('zh-hans', '简体字'), ('zh-hant', '正體字'))"
LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
LANGUAGE_CODE = 'en-us'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_HTTPONLY = False
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LANGUAGE_COOKIE_SAMESITE = None
LANGUAGE_COOKIE_SECURE = False
LEGAL_URL = None
LICENSE_EXTRA = []
LICENSE_FILTER = None
LICENSE_REQUIRED = False
LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH = True
LOCALE_PATHS = "('/usr/local/lib/python3.7/dist-packages/weblate/locale',)"
LOGGING = {'version': 1, 'disable_existing_loggers': True, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'formatters': {'syslog': {'format': 'weblate[%(process)d]: %(levelname)s %(message)s'}, 'simple': {'format': '%(levelname)s %(message)s'}, 'logfile': {'format': '%(asctime)s %(levelname)s %(message)s'}, 'django.server': {'()': 'django.utils.log.ServerFormatter', 'format': '[%(server_time)s] %(message)s'}}, 'handlers': {'mail_admins': {'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler', 'include_html': True}, 'console': {'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'simple'}, 'django.server': {'level': 'INFO', 'class': 'logging.StreamHandler', 'formatter': 'django.server'}}, 'loggers': {'django.request': {'handlers': ['mail_admins', 'console'], 'level': 'ERROR', 'propagate': True}, 'django.server': {'handlers': ['django.server'], 'level': 'INFO', 'propagate': False}, 'weblate': {'handlers': ['console'], 'level': 'INFO'}, 'weblate.search': {'handlers': ['console'], 'level': 'INFO'}, 'weblate.vcs': {'handlers': ['console'], 'level': 'WARNING'}, 'social': {'handlers': ['console'], 'level': 'WARNING'}, 'django_auth_ldap': {'level': 'WARNING', 'handlers': ['console']}}}
LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_REDIRECT_URL = '/'
LOGIN_REQUIRED_URLS = "('/(.*)$',)"
LOGIN_REQUIRED_URLS_EXCEPTIONS = "('/accounts/(.*)$', '/admin/login/(.*)$', '/static/(.*)$', '/widgets/(.*)$', '/data/(.*)$', '/hooks/(.*)$', '/healthz/$', '/api/(.*)$', '/js/i18n/$', '/contact/$', '/legal/(.*)$')"
LOGIN_URL = '/accounts/login/'
LOGOUT_REDIRECT_URL = None
LOGOUT_URL = '/accounts/logout/'
MANAGERS = "(('Admin', 'admin@company.com'),)"
MATOMO_SITE_ID = None
MATOMO_URL = None
MEDIA_ROOT = '/app/data/media'
MEDIA_URL = '/media/'
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE = ['weblate.middleware.ProxyMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'weblate.accounts.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'social_django.middleware.SocialAuthExceptionMiddleware', 'weblate.accounts.middleware.RequireLoginMiddleware', 'weblate.middleware.SecurityMiddleware']
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = 'F j'
MT_APERTIUM_APY = None
MT_AWS_ACCESS_KEY_ID = '********************'
MT_AWS_REGION = None
MT_AWS_SECRET_ACCESS_KEY = '********************'
MT_BAIDU_ID = None
MT_BAIDU_SECRET = '********************'
MT_DEEPL_KEY = '********************'
MT_GOOGLE_KEY = '********************'
MT_MICROSOFT_COGNITIVE_KEY = '********************'
MT_MICROSOFT_ID = None
MT_MICROSOFT_SECRET = '********************'
MT_MYMEMORY_EMAIL = ''
MT_MYMEMORY_KEY = '********************'
MT_MYMEMORY_USER = None
MT_NETEASE_KEY = '********************'
MT_NETEASE_SECRET = '********************'
MT_SAP_BASE_URL = None
MT_SAP_PASSWORD = '********************'
MT_SAP_SANDBOX_APIKEY = '********************'
MT_SAP_USERNAME = None
MT_SAP_USE_MT = True
MT_SERVICES = "('weblate.machinery.weblatetm.WeblateTranslation', 'weblate.memory.machine.WeblateMemory')"
MT_TMSERVER = None
MT_YANDEX_KEY = '********************'
MT_YOUDAO_ID = None
MT_YOUDAO_SECRET = '********************'
NEARBY_MESSAGES = 5
NUMBER_GROUPING = 0
OFFER_HOSTING = False
PASSWORD_HASHERS = '********************'
PASSWORD_RESET_TIMEOUT_DAYS = '********************'
PREPEND_WWW = False
RATELIMIT_ATTEMPTS = 5
RATELIMIT_COMMENT_ATTEMPTS = 30
RATELIMIT_COMMENT_WINDOW = 60
RATELIMIT_GLOSSARY_ATTEMPTS = 30
RATELIMIT_GLOSSARY_WINDOW = 60
RATELIMIT_LOCKOUT = 600
RATELIMIT_SEARCH_ATTEMPTS = 30
RATELIMIT_SEARCH_LOCKOUT = 60
RATELIMIT_SEARCH_WINDOW = 60
RATELIMIT_TRANSLATE_ATTEMPTS = 30
RATELIMIT_TRANSLATE_WINDOW = 60
RATELIMIT_WINDOW = 300
REDIS_PASSWORD = '********************'
REDIS_PROTO = 'redis'
REGISTRATION_CAPTCHA = True
REGISTRATION_EMAIL_MATCH = '.*'
REGISTRATION_OPEN = False
REST_FRAMEWORK = {'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.IsAuthenticated'], 'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication', 'weblate.api.authentication.BearerAuthentication', 'rest_framework.authentication.SessionAuthentication'), 'DEFAULT_THROTTLE_CLASSES': ('rest_framework.throttling.AnonRateThrottle', 'rest_framework.throttling.UserRateThrottle'), 'DEFAULT_THROTTLE_RATES': {'anon': '100/day', 'user': '5000/hour'}, 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 20, 'VIEW_DESCRIPTION_FUNCTION': 'weblate.api.views.get_view_description', 'UNAUTHENTICATED_USER': 'weblate.auth.models.get_anonymous'}
ROOT_URLCONF = 'weblate.urls'
SECRET_KEY = '********************'
SECURE_BROWSER_XSS_FILTER = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SECURE_HSTS_PRELOAD = False
SECURE_HSTS_SECONDS = 0
SECURE_PROXY_SSL_HEADER = None
SECURE_REDIRECT_EXEMPT = "('healthz/$',)"
SECURE_REFERRER_POLICY = 'same-origin'
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = False
SENTRY_DSN = None
SERVER_EMAIL = 'noreply@weblate.company.com'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 1209600
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_PATH = '/'
SESSION_COOKIE_SAMESITE = 'Lax'
SESSION_COOKIE_SECURE = False
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = False
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE = 'weblate.settings_docker'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
SHORT_DATE_FORMAT = 'm/d/Y'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = ['admin.E408']
SIMILAR_MESSAGES = 5
SIMPLIFY_LANGUAGES = True
SINGLE_PROJECT = False
SITE_ID = 1
SITE_TITLE = 'Weblate'
SOCIAL_AUTH_AUTH0_IMAGE = 'auth0.svg'
SOCIAL_AUTH_AUTH0_TITLE = 'Auth0'
SOCIAL_AUTH_AZUREAD_OAUTH2_KEY = '********************'
SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET = '********************'
SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY = '********************'
SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET = '********************'
SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID = ''
SOCIAL_AUTH_BITBUCKET_KEY = '********************'
SOCIAL_AUTH_BITBUCKET_SECRET = '********************'
SOCIAL_AUTH_BITBUCKET_VERIFIED_EMAILS_ONLY = True
SOCIAL_AUTH_DISCONNECT_PIPELINE = "('social_core.pipeline.disconnect.allowed_to_disconnect', 'social_core.pipeline.disconnect.get_entries', 'social_core.pipeline.disconnect.revoke_tokens', 'weblate.accounts.pipeline.cycle_session', 'weblate.accounts.pipeline.adjust_primary_mail', 'weblate.accounts.pipeline.notify_disconnect', 'social_core.pipeline.disconnect.disconnect', 'weblate.accounts.pipeline.cleanup_next')"
SOCIAL_AUTH_EMAIL_FORM_URL = '/accounts/email/'
SOCIAL_AUTH_EMAIL_VALIDATION_FUNCTION = 'weblate.accounts.pipeline.send_validation'
SOCIAL_AUTH_EMAIL_VALIDATION_URL = '/accounts/email-sent/'
SOCIAL_AUTH_FACEBOOK_API_VERSION = '********************'
SOCIAL_AUTH_FACEBOOK_KEY = '********************'
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {'fields': 'id,name,email'}
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email', 'public_profile']
SOCIAL_AUTH_FACEBOOK_SECRET = '********************'
SOCIAL_AUTH_GITHUB_KEY = '********************'
SOCIAL_AUTH_GITHUB_SCOPE = ['user:email']
SOCIAL_AUTH_GITHUB_SECRET = '********************'
SOCIAL_AUTH_GITLAB_KEY = '********************'
SOCIAL_AUTH_GITLAB_SCOPE = ['read_user']
SOCIAL_AUTH_GITLAB_SECRET = '********************'
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '********************'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '********************'
SOCIAL_AUTH_LOGIN_ERROR_URL = '/accounts/login/'
SOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = '/accounts/profile/#account'
SOCIAL_AUTH_PIPELINE = "('social_core.pipeline.social_auth.social_details', 'social_core.pipeline.social_auth.social_uid', 'social_core.pipeline.social_auth.auth_allowed', 'social_core.pipeline.social_auth.social_user', 'weblate.accounts.pipeline.store_params', 'weblate.accounts.pipeline.verify_open', 'social_core.pipeline.user.get_username', 'weblate.accounts.pipeline.require_email', 'social_core.pipeline.mail.mail_validation', 'weblate.accounts.pipeline.revoke_mail_code', 'weblate.accounts.pipeline.ensure_valid', 'weblate.accounts.pipeline.remove_account', 'social_core.pipeline.social_auth.associate_by_email', 'weblate.accounts.pipeline.reauthenticate', 'weblate.accounts.pipeline.verify_username', 'social_core.pipeline.user.create_user', 'social_core.pipeline.social_auth.associate_user', 'social_core.pipeline.social_auth.load_extra_data', 'weblate.accounts.pipeline.cleanup_next', 'weblate.accounts.pipeline.user_full_name', 'weblate.accounts.pipeline.store_email', 'weblate.accounts.pipeline.notify_connect', 'weblate.accounts.pipeline.password_reset')"
SOCIAL_AUTH_PROTECTED_USER_FIELDS = "('email',)"
SOCIAL_AUTH_RAISE_EXCEPTIONS = True
SOCIAL_AUTH_REDIRECT_IS_HTTPS = False
SOCIAL_AUTH_SLUGIFY_FUNCTION = 'weblate.accounts.pipeline.slugify_username'
SOCIAL_AUTH_SLUGIFY_USERNAMES = True
SOCIAL_AUTH_STRATEGY = 'weblate.accounts.strategy.WeblateStrategy'
SPECIAL_CHARS = "('\\t', '\\n', '…')"
STATICFILES_DIRS = '()'
STATICFILES_FINDERS = "('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'compressor.finders.CompressorFinder')"
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT = '/app/data/static'
STATIC_URL = '/static/'
STATUS_URL = None
SUGGESTION_CLEANUP_DAYS = None
SUPPORT_API_URL = '********************'
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/usr/local/lib/python3.7/dist-packages/weblate/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.request', 'django.template.context_processors.csrf', 'django.contrib.messages.context_processors.messages', 'weblate.trans.context_processors.weblate_context'], 'loaders': [('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])]}}]
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR = ','
TIME_FORMAT = 'P'
TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE = 'Europe/Zurich'
URL_PREFIX = ''
USE_I18N = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_FORWARDED_HOST = False
USE_X_FORWARDED_PORT = False
VAT_RATE = 1.21
VCS_BACKENDS = "('weblate.vcs.git.GitRepository', 'weblate.vcs.git.GitWithGerritRepository', 'weblate.vcs.git.SubversionRepository', 'weblate.vcs.git.GithubRepository', 'weblate.vcs.git.GitLabRepository', 'weblate.vcs.git.LocalRepository', 'weblate.vcs.git.GitForcePushRepository', 'weblate.vcs.mercurial.HgRepository')"
VCS_CLONE_DEPTH = 1
WEBLATE_ADDONS = ['weblate.addons.gettext.GenerateMoAddon', 'weblate.addons.gettext.UpdateLinguasAddon', 'weblate.addons.gettext.UpdateConfigureAddon', 'weblate.addons.gettext.MsgmergeAddon', 'weblate.addons.gettext.GettextCustomizeAddon', 'weblate.addons.gettext.GettextAuthorComments', 'weblate.addons.cleanup.CleanupAddon', 'weblate.addons.consistency.LangaugeConsistencyAddon', 'weblate.addons.discovery.DiscoveryAddon', 'weblate.addons.flags.SourceEditAddon', 'weblate.addons.flags.TargetEditAddon', 'weblate.addons.flags.SameEditAddon', 'weblate.addons.flags.BulkEditAddon', 'weblate.addons.generate.GenerateFileAddon', 'weblate.addons.json.JSONCustomizeAddon', 'weblate.addons.properties.PropertiesSortAddon', 'weblate.addons.git.GitSquashAddon', 'weblate.addons.removal.RemoveComments', 'weblate.addons.removal.RemoveSuggestions', 'weblate.addons.resx.ResxUpdateAddon', 'weblate.addons.yaml.YAMLCustomizeAddon', 'weblate.addons.autotranslate.AutoTranslateAddon']
WEBLATE_FORMATS = "('weblate.formats.ttkit.PoFormat', 'weblate.formats.ttkit.PoMonoFormat', 'weblate.formats.ttkit.TSFormat', 'weblate.formats.ttkit.XliffFormat', 'weblate.formats.ttkit.PoXliffFormat', 'weblate.formats.ttkit.StringsFormat', 'weblate.formats.ttkit.StringsUtf8Format', 'weblate.formats.ttkit.PropertiesUtf8Format', 'weblate.formats.ttkit.PropertiesUtf16Format', 'weblate.formats.ttkit.PropertiesFormat', 'weblate.formats.ttkit.JoomlaFormat', 'weblate.formats.ttkit.PhpFormat', 'weblate.formats.ttkit.RESXFormat', 'weblate.formats.ttkit.AndroidFormat', 'weblate.formats.ttkit.JSONFormat', 'weblate.formats.ttkit.JSONNestedFormat', 'weblate.formats.ttkit.WebExtensionJSONFormat', 'weblate.formats.ttkit.I18NextFormat', 'weblate.formats.ttkit.CSVFormat', 'weblate.formats.ttkit.CSVSimpleFormat', 'weblate.formats.ttkit.CSVSimpleFormatISO', 'weblate.formats.ttkit.YAMLFormat', 'weblate.formats.ttkit.RubyYAMLFormat', 'weblate.formats.ttkit.SubRipFormat', 'weblate.formats.ttkit.MicroDVDFormat', 'weblate.formats.ttkit.AdvSubStationAlphaFormat', 'weblate.formats.ttkit.SubStationAlphaFormat', 'weblate.formats.ttkit.DTDFormat', 'weblate.formats.ttkit.WindowsRCFormat', 'weblate.formats.ttkit.FlatXMLFormat', 'weblate.formats.external.XlsxFormat', 'weblate.formats.txt.AppStoreFormat')"
WEBLATE_GPG_ALGO = 'default'
WEBLATE_GPG_IDENTITY = None
WSGI_APPLICATION = None
X_FRAME_OPTIONS = 'DENY'
YEAR_MONTH_FORMAT = 'F Y'
_AUTH_LDAP_USER_SEARCH = []
_TEMPLATE_LOADERS = [('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])]

Exception traceback


 File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/translation.py", line 452, in commit_pending
    self.update_units(author_name, author.id)
  File "/usr/lib/python3.7/contextlib.py", line 74, in inner
    return func(*args, **kwds)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/translation.py", line 557, in update_units
    pounit, add = self.store.find_unit(unit.context, unit.source)
  File "/usr/local/lib/python3.7/dist-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/translation.py", line 270, in store
    self.component.handle_parse_error(exc, self)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/component.py", line 1143, in handle_parse_error
    raise FileParseError(error_message)
weblate.trans.exceptions.FileParseError: Syntax error on line 994
nginx stdout | 10.1.144.4 - - [21/Aug/2020:15:32:06 +0200] "POST /commit/pot/web-client/ru/ HTTP/1.1" 500 11659 "http://weblate.foundry.crp.io/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:80.0) Gecko/20100101 Firefox/80.0"
uwsgi stderr | [pid: 300|app: 0|req: 15212/31622] 10.1.144.4 () {52 vars in 1029 bytes} [Fri Aug 21 15:32:05 2020] POST /commit/pot/web-client/ru/ => generated 11659 bytes in 1179 msecs (HTTP/1.1 500) 9 headers in 485 bytes (1 switches on core 0)
uwsgi stderr | [pid: 12640|app: 0|req: 12875/31623] 10.1.144.4 () {46 vars in 754 bytes} [Fri Aug 21 15:32:51 2020] GET /widgets/pot/-/open-graph.png => generated 379935 bytes in 253 msecs (HTTP/1.1 200) 11 headers in 623 bytes (152 switches on core 0)
nginx stdout | 10.1.144.4 - - [21/Aug/2020:15:32:51 +0200] "GET /widgets/pot/-/open-graph.png HTTP/1.1" 200 379935 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:80.0) Gecko/20100101 Firefox/80.0"
nginx stdout | 10.1.144.4 - - [21/Aug/2020:15:32:52 +0200] "GET /favicon.ico HTTP/1.1" 200 15086 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:80.0) Gecko/20100101 Firefox/80.0"
nginx stdout | 10.1.144.4 - - [21/Aug/2020:15:33:18 +0200] "GET /commit/pot/ HTTP/1.1" 405 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:80.0) Gecko/20100101 Firefox/80.0"
uwsgi stderr | [pid: 12640|app: 0|req: 12876/31624] 10.1.144.4 () {44 vars in 748 bytes} [Fri Aug 21 15:33:18 2020] GET /commit/pot/ => generated 0 bytes in 24 msecs (HTTP/1.1 405) 10 headers in 491 bytes (1 switches on core 0)
nginx stdout | 10.1.144.4 - - [21/Aug/2020:15:33:23 +0200] "GET / HTTP/1.1" 200 14089 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:80.0) Gecko/20100101 Firefox/80.0"
uwsgi stderr | [pid: 12640|app: 0|req: 12877/31625] 10.1.144.4 () {44 vars in 726 bytes} [Fri Aug 21 15:33:23 2020] GET / => generated 120000 bytes in 439 msecs (HTTP/1.1 200) 11 headers in 579 bytes (1 switches on core 0)
nginx stdout | 10.1.144.4 - - [21/Aug/2020:15:33:36 +0200] "GET /projects/pot/ HTTP/1.1" 200 18741 "http://weblate.foundry.crp.io/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:80.0) Gecko/20100101 Firefox/80.0"
uwsgi stderr | [pid: 300|app: 0|req: 15213/31626] 10.1.144.4 () {46 vars in 804 bytes} [Fri Aug 21 15:33:34 2020] GET /projects/pot/ => generated 150672 bytes in 1337 msecs (HTTP/1.1 200) 11 headers in 579 bytes (1 switches on core 0)
uwsgi stderr | [pid: 12640|app: 0|req: 12878/31627] 10.1.144.4 () {44 vars in 737 bytes} [Fri Aug 21 15:33:36 2020] GET /widgets/pot/-/svg-badge.svg => generated 743 bytes in 28 msecs (HTTP/1.1 200) 10 headers in 497 bytes (2 switches on core 0)
nginx stdout | 10.1.144.4 - - [21/Aug/2020:15:33:36 +0200] "GET /widgets/pot/-/svg-badge.svg HTTP/1.1" 200 743 "http://weblate.foundry.crp.io/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:80.0) Gecko/20100101 Firefox/80.0"
nginx stdout | 10.1.144.4 - - [21/Aug/2020:15:33:39 +0200] "GET /js/git/pot/ HTTP/1.1" 200 1970 "http://weblate.foundry.crp.io/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:80.0) Gecko/20100101 Firefox/80.0"
uwsgi stderr | [pid: 300|app: 0|req: 15214/31628] 10.1.144.4 () {46 vars in 752 bytes} [Fri Aug 21 15:33:39 2020] GET /js/git/pot/ => generated 18496 bytes in 237 msecs (HTTP/1.1 200) 9 headers in 466 bytes (1 switches on core 0)
nginx stdout | 10.1.144.4 - - [21/Aug/2020:15:33:39 +0200] "GET /avatar/32/iredondo.png HTTP/1.1" 200 992 "http://weblate.foundry.crp.io/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:80.0) Gecko/20100101 Firefox/80.0"
uwsgi stderr | [pid: 300|app: 0|req: 15215/31629] 10.1.144.4 () {44 vars in 727 bytes} [Fri Aug 21 15:33:39 2020] GET /avatar/32/iredondo.png => generated 992 bytes in 24 msecs (HTTP/1.1 200) 11 headers in 520 bytes (1 switches on core 0)
uwsgi stderr | INFO pot/web-client/ru: committing pending changes (commit)
uwsgi stderr | INFO:weblate:pot/web-client/ru: committing pending changes (commit)
**uwsgi stderr | ERROR Parse error: ValueError: Syntax error on line 994**
uwsgi stderr | ERROR:weblate:Parse error: ValueError: Syntax error on line 994
uwsgi stderr | ERROR Internal Server Error: /commit/pot/
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/translation.py", line 266, in store
    return self.load_store()
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/translation.py", line 257, in load_store
    is_template=self.is_template,
  File "/usr/local/lib/python3.7/dist-packages/weblate/formats/base.py", line 194, in parse
    return cls(storefile, template_store, language_code, is_template)
  File "/usr/local/lib/python3.7/dist-packages/weblate/formats/ttkit.py", line 215, in __init__
    storefile, template_store, language_code, is_template
  File "/usr/local/lib/python3.7/dist-packages/weblate/formats/base.py", line 208, in __init__
    self.store = self.load(storefile)
  File "/usr/local/lib/python3.7/dist-packages/weblate/formats/ttkit.py", line 239, in load
    return cls.parse_store(storefile)
  File "/usr/local/lib/python3.7/dist-packages/weblate/formats/ttkit.py", line 272, in parse_store
    store.parse(content)
  File "/usr/local/lib/python3.7/dist-packages/translate/storage/pypo.py", line 839, in parse
    poparser.parse_units(poparser.ParseState(input, self.create_unit), self)
  File "/usr/local/lib/python3.7/dist-packages/translate/storage/poparser.py", line 379, in parse_units
    raise ValueError('Syntax error on line {}'.format(parse_state.lineno))
ValueError: Syntax error on line 994

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/views/decorators/http.py", line 40, in inner
    return func(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/git.py", line 107, in commit_project
    return perform_commit(request, obj)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/git.py", line 58, in perform_commit
    request.user,
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/git.py", line 36, in execute_locked
    result = call(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/project.py", line 262, in commit_pending
    return self.on_repo_components(True, 'commit_pending', reason, user)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/project.py", line 253, in on_repo_components
    res = getattr(component, call)(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/component.py", line 133, in on_link_wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/component.py", line 1113, in commit_pending
    reason, user, skip_push=True, force=True, signals=False
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/translation.py", line 452, in commit_pending
    self.update_units(author_name, author.id)
  File "/usr/lib/python3.7/contextlib.py", line 74, in inner
    return func(*args, **kwds)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/translation.py", line 557, in update_units
    pounit, add = self.store.find_unit(unit.context, unit.source)
  File "/usr/local/lib/python3.7/dist-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/translation.py", line 270, in store
    self.component.handle_parse_error(exc, self)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/component.py", line 1143, in handle_parse_error
    raise FileParseError(error_message)
weblate.trans.exceptions.FileParseError: Syntax error on line 994
uwsgi stderr | ERROR:django.request:Internal Server Error: /commit/pot/
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/translation.py", line 266, in store
    return self.load_store()
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/translation.py", line 257, in load_store
    is_template=self.is_template,
  File "/usr/local/lib/python3.7/dist-packages/weblate/formats/base.py", line 194, in parse
    return cls(storefile, template_store, language_code, is_template)
  File "/usr/local/lib/python3.7/dist-packages/weblate/formats/ttkit.py", line 215, in __init__
    storefile, template_store, language_code, is_template
  File "/usr/local/lib/python3.7/dist-packages/weblate/formats/base.py", line 208, in __init__
    self.store = self.load(storefile)
  File "/usr/local/lib/python3.7/dist-packages/weblate/formats/ttkit.py", line 239, in load
    return cls.parse_store(storefile)
  File "/usr/local/lib/python3.7/dist-packages/weblate/formats/ttkit.py", line 272, in parse_store
    store.parse(content)
  File "/usr/local/lib/python3.7/dist-packages/translate/storage/pypo.py", line 839, in parse
    poparser.parse_units(poparser.ParseState(input, self.create_unit), self)
  File "/usr/local/lib/python3.7/dist-packages/translate/storage/poparser.py", line 379, in parse_units
    raise ValueError('Syntax error on line {}'.format(parse_state.lineno))
ValueError: Syntax error on line 994

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/views/decorators/http.py", line 40, in inner
    return func(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/git.py", line 107, in commit_project
    return perform_commit(request, obj)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/git.py", line 58, in perform_commit
    request.user,
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/git.py", line 36, in execute_locked
    result = call(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/models/project.py", line 262, in commit_pending
github-actions[bot] commented 4 years ago

This issue looks like a support question. We try to answer these reasonably fast, but in case you are looking for faster resolution, please consider purchasing support subscription and make Weblate stronger.

nijel commented 4 years ago

Since 7bc88faf920 Weblate will properly tell this in the UI. Until you upgrade, you can figure this out in the log, it's PO file for the pot/web-client/ru translation.

dsnoeck commented 4 years ago

Thank you very much for your quick reply. I definitively help me to spot and manually fix the syntax error.

github-actions[bot] commented 4 years ago

The issue you have reported seems to be resolved now.