You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've searched for similar issues in this repository.
Steps to reproduce the behavior
Add a glossary entry whose source entry has a non-Unicode character.
Try to commit this glossary to repository, and the error raises.
Expected behavior
It should strip out the Unicode character when seeing the invalid character instead of raising a unrecoverable error. Besides, it will be better to not letting users insert an entry including such that character.
Screenshots
See Describe the issue.
Exception traceback
ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters
File "django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
File "django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "django/contrib/auth/decorators.py", line 23, in _wrapped_viewreturn view_func(request, *args, **kwargs)
File "django/views/decorators/http.py", line 43, in innerreturn func(request, *args, **kwargs)
File "weblate/trans/views/git.py", line 145, in commit_translationreturn perform_commit(request, obj)
File "weblate/trans/views/git.py", line 54, in perform_commitreturn execute_locked(
File "weblate/trans/views/git.py", line 35, in execute_locked
result = call(*args, **kwargs)
File "contextlib.py", line 79, in innerreturn func(*args, **kwds)
File "weblate/trans/models/translation.py", line 573, in commit_pendingreturnself.component.commit_pending(reason, user, skip_push=skip_push)
File "weblate/trans/models/component.py", line 166, in on_link_wrapperreturn func(self, *args, **kwargs)
File "weblate/trans/models/component.py", line 1616, in commit_pending
translation._commit_pending(reason, user)
File "contextlib.py", line 79, in innerreturn func(*args, **kwds)
File "weblate/trans/models/translation.py", line 613, in _commit_pendingself.update_units(units, store, author_name, author.id)
File "weblate/trans/models/translation.py", line 710, in update_units
pounit = store.new_unit(
File "weblate/formats/base.py", line 585, in new_unit
unit =self.create_unit(key, source, target)
File "weblate/formats/ttkit.py", line 399, in create_unit
unit =self.construct_unit(context)
File "weblate/formats/ttkit.py", line 357, in construct_unit
unit.setsource(source, self.source_language)
File "translate/storage/lisa.py", line 122, in setsourceself.source_dom =self.createlanguageNode(sourcelang, text, "source")
File "translate/storage/tbx.py", line 44, in createlanguageNode
term.text = text
File "src/lxml/etree.pyx", line 1041, in lxml.etree._Element.text.__set__
File "src/lxml/apihelpers.pxi", line 748, in lxml.etree._setNodeText
File "src/lxml/apihelpers.pxi", line 736, in lxml.etree._createTextNode
File "src/lxml/apihelpers.pxi", line 1541, in lxml.etree._utf8
$ docker-compose exec --user weblate weblate weblate check --deploy
System check identified some issues:
WARNINGS:
?: (security.W004) You have not set a value for the SECURE_HSTS_SECONDS setting. If your entire site is served only over SSL, you may want to consider setting a value and enabling HTTP Strict Transport Security. Be sure to read the documentation first; enabling HSTS carelessly can cause serious, irreversible problems.
?: (security.W008) Your SECURE_SSL_REDIRECT setting is not set to True. Unless your site should be available over both SSL and non-SSL connections, you may want to either set this setting True or configure a load balancer or reverse-proxy server to redirect all connections to HTTPS.
?: (security.W012) SESSION_COOKIE_SECURE is not set to True. Using a secure-only session cookie makes it more difficult for network traffic sniffers to hijack user sessions.
INFOS:
?: (weblate.I031) New Weblate version is available, please upgrade to 4.14.2.
HINT: https://docs.weblate.org/en/weblate-4.14.1/admin/upgrade.html
System check identified 4 issues (1 silenced).
Additional context
No response
Workarounds for users
Find out the id of the affected string by triggering an error. For example, delete this string and it may navigate to YOUR_INSTANCE_URL/unit/321150/delete – the 321150 is our ID to fix up.
Backup your database before running the following operations!
Open your frontend of database, and run:
BEGIN;
-- Knowing what column of `id` includes the non-Unicode character.SELECT*from trans_unit WHERE id =<that id>;
-- Update the column to the correct version.UPDATE trans_unit SET<column>='<new value>'WHERE id =<that id>;
-- Check again before committing.SELECT*from trans_unit WHERE id =<that id>;
COMMIT;
ROLLBACK; if any of part gets unexpected result.
The text was updated successfully, but these errors were encountered:
Describe the issue
Users can mistakenly type a control character inside glossary. For example, “[\x08]commit”:
And Weblate will raise exceptions when committing, downloading or (sometimes) saving glossary to tbx files:
User-side sees:
I already tried
Steps to reproduce the behavior
Expected behavior
It should strip out the Unicode character when seeing the invalid character instead of raising a unrecoverable error. Besides, it will be better to not letting users insert an entry including such that character.
Screenshots
See Describe the issue.
Exception traceback
How do you run Weblate?
Docker container
Weblate versions
Weblate deploy checks
Additional context
No response
Workarounds for users
id
of the affected string by triggering an error. For example, delete this string and it may navigate toYOUR_INSTANCE_URL/unit/321150/delete
– the321150
is our ID to fix up.ROLLBACK;
if any of part gets unexpected result.The text was updated successfully, but these errors were encountered: