Bug 1149968 - Translation history should *never* show last modifier as "Someone offline"
Summary: Translation history should *never* show last modifier as "Someone offline"
Alias: None
Product: Zanata
Classification: Retired
Component: Component-Logic
Version: 3.5
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
: 3.6
Assignee: Patrick Huang
QA Contact: Zanata-QA Mailling List
Depends On:
TreeView+ depends on / blocked
Reported: 2014-10-07 04:41 UTC by Damian Jansen
Modified: 2015-03-19 07:10 UTC (History)
5 users (show)

Fixed In Version: 3.6.0-SNAPSHOT (git-jenkins-zanata-server-github-pull-requests-2475)
Doc Type: Bug Fix
Doc Text:
Story Points: 1
Clone Of:
Last Closed: 2015-03-19 07:10:31 UTC

Attachments (Terms of Use)
Screenshot of error (37.68 KB, image/png)
2014-10-07 04:41 UTC, Damian Jansen
no flags Details

Description Damian Jansen 2014-10-07 04:41:11 UTC
Created attachment 944441 [details]
Screenshot of error

Description of problem:
I've seen throughout translations in Zanata that "(Someone offline)" has uploaded bogus translations, eg. English strings in Italian targets.

The client must know who uploaded it, and must report this when pushing translations.  Otherwise, this is an open invitation for anonymous abuse such as pushing garbage or inappropriate content.

Version-Release number of selected component (if applicable):

How reproducible:
Easy always

Steps to Reproduce:
1. Go to https://translate.zanata.org/zanata/webtrans/Application.seam?project=zanata-server&iteration=master&localeId=it&locale=en#view:doc;doc:zanata-war/src/main/resources/messages;search:Login
 - Note the numerous false translations
2. Click History on any of these bad translations

Actual results:
(Someone offline) created a Translated revision

Expected results:
John Citizen created a Translated revision

Additional info:
Apparently the reasoning is that "John Citizen might not have translated them, he only pushed them". This is flawed, as
- He may have actually translated them, and
- He is responsible for the document being uploaded, so he is responsible for the content.
More so, if someone can push a "Translated" revision, this will potentially end up in target content with inappropriate content with no recorded submitter.

Comment 1 David Mason 2014-11-12 03:15:19 UTC
Notes from developer meeting:

Decided to implement a simple fix:

 - change the label from showing "(someone offline)" to show the username of the user in the modified-by column in the database. This should happen when the translated-by column is null, which indicates that the translation must have been uploaded.
 - this only affects the UI for text flow target history.
 - this does not include any change to contributor statistics.

Discussed why uploaded translations do not contribute to "translated" statistic for the uploading user. The key point is that maintainers and translators can upload files that were translated by other users (such as in a separate project or importing from a different translation management system). The file formats we use do not include enough information to accurately infer which user translated each string.

Also discussed possible changes that may be implemented as separate enhancements:

 - add a statistics category to translator statistics showing uploaded translations.
 - change representation of the origin of a translation to a column for the type of origin (e.g. translated in editor, uploaded, TM merge, copytrans, machine translation), a timestamp, the user, and a nullable column to link to the copied translation for TM merge and copytrans.

Comment 2 Patrick Huang 2015-01-07 23:39:03 UTC

Comment 3 Patrick Huang 2015-01-07 23:43:41 UTC
After investigation, the column "last modified by" IS null when pushed from client (when translation file i.e. po don't have a translator entry which has a Zanata recognized email). Therefore the requirement will change to following:
- old data remains the same with just label change: "(someone offline)" becomes "Anonymous" with special styling to differentiate with real user calling himself "Anonymous"
- new coming data after this bug will have last modified by field set to the uploader. Translated by field will remain null.

Comment 4 Damian Jansen 2015-01-09 05:31:43 UTC
Verified at 1bdb99277804f6135355d2459f8ee5a22d081021

Note You need to log in before you can comment on or make changes to this bug.