-
Type: Feature Request
-
Status: Needs Changes
-
Priority: Minor
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: 5.3.0
-
Component/s: Localization
-
Labels:
-
External issue URL:
-
Additional information:
-
Change Log Group:Added
-
Change Log Message:Allow tracking translation status (up to date or not) between language packs.
-
Story Points:2
-
External issue ID:1023
-
Copy Issue Key:
-
Patch Instructions:
-
BC Break Details:
[B]1. Tracking Changes[/B]
I've imagined that such (or alike) translation system would also be useful for In-Portal websites, who are translated into multiple languages to keep all phrases/e-mails in sync between languages.
a. Add "TranslateFrom" ML column into LanguageLabels (former "Phrases") and EmailEvents (former "Events") database tables
b. Add "Use as Primary" button on phrase/e-mail event edit page (with hint "Use this translation as primary for other languages")
Initially all TranslateFrom columns have 0 in them, that means - "I'm in sync".
c. As you probably noticed user then can press either "Save" or "Use as Primary" button after changing a translation on a specific language he is assigned to translate.
Pressing "Use as Primary" would save phrase/e-mail event translation and set this language ID to TranslateFrom field for all other languages except current one:
l1_TranslateFrom = 3
l2_TranslateFrom = 3
l3_TranslateFrom = 0
l4_TranslateFrom = 3
l5_TranslateFrom = 3
In example above you can easily see, that translation was changed on 3rd language and all other languages needs to be updated to be in sync.
Pressing "Save" would set 0 to TranslateFrom column at current language only, like in example below:
l1_TranslateFrom = 3
l2_TranslateFrom = 3
l3_TranslateFrom = 0
l4_TranslateFrom = 3
l5_TranslateFrom = 0
Here 5th language translation was fixed to be in sync and 0 was set in corresponding field.
Then in phrase/e-mail event list we create column "Translation in Sync" (Yes/No), where we would just compare TranslateFrom column from current language with 0. If it's 0, then all is translated.
On phrase editing page we'll show translation form language indicated in TranslateFrom column and not from primary language. Of course if TranslateFrom = 0, then we can fallback to translation from primary language.
Also I've noticed that we're not showing translation from primary language on e-mail event editing, which makes it harder to translate them.
[B]2. Sync Status in %[/B]
Propose another grid column in Regional Configuration menu, called "sync status", where we could display % of
synced labels, for reporting purposes.
SUM(IF(l5_TranslateFrom = 0, 0, 1)) / COUNT(l5_TranslateFrom).
SUM(IF(l5_TranslateFrom = 0, 1, 0)) - phrase count, that doesn't require to be synced
COUNT(l5_TranslateFrom) - total phrase count
In total we'll have following Sync columns:
- "Front-End / Both Labels"
- "Admin Labels"
- "Front-End E-mail Events"
- "Admin E-mail Events"
[B]3. Percentages of Content Block Translation[/B]
Create a "Scheduled Task" (former "Agent"), that would count % of translated content blocks for each page, which has them. It of course won't allow to track outdated translations as with phrases, but it at least would tell what content blocks aren't translated at all on other languages.
Add multilingual (one column per language) TranslatedContentBlocks column to Categories database table. For each language execute this SQL to fill it:
SELECT SUM( IF(COALESCE(l1_Content, '') = '', 0, 1) ), PageId
FROM PageContent
GROUP BY PageId
- bc break fixed by
-
INP-1674 [bc fix] Ability to Keep Language Packs in Sync
- Scheduled
- blocks
-
MINC-164 Ability to Keep Language Packs in Sync
- Resolved
- parent of
-
INP-1505 Restore e-mail template translation sync code removed during merge
- Resolved
- relates to
-
INP-1169 Show "simultaneous editing" message, when user is about to edit record, that somebody is editing right now
- Closed
-
INP-1506 Show translation statistics in "Configuration > Regional" section
- Scheduled