Change control features in Fink: Building the alpha
In Fink2 Alpha, we have introduced history tracking, diff views, and commit management. These are the first tangible change control features for non-tech users.
Introduction
In our recent blog post, we discussed integrating change control features into Fink, our localization/CAT editor. We've made progress on Fink2 Alpha using the new lix SDK and invite you to try out the alpha version.
This is particularly interesting because these are the first tangible change control features for non-technical people.
→ 📘 If you missed the latest blog post, you can read it here.
→ 👨💻 Experience the alpha version here.
Scope and Use Case
Given the tight timeline, we streamlined the project to focus on key features from our last blog post, excluding review and data-combining functionalities. This setup opens the door for standalone use cases, particularly for translators handling send-over translations.
Rough Workflow
➕ Create a new .inlang project.
⬇ Import files received via email.
📝 Complete the translations.
⬆ Export the files.
📧 Send the completed translations back to the client.
Key Features to Highlight
History Tracking
Diff View for Translators
Commit Management
Implemented Features
Diffing
In our previous blog post we sketched a history showing differences between multiple commits. We tried to think it through for several cases and it became far too complicated. To avoid confusion and lower the complexity, the differences should only be shown between two states, the before and after. In addition, we have found that diffing makes the user interface a little more complex, as two versions are shown to the user simultaneously. We chose to display the entire component twice and highlight the changes instead of displaying each change inline. The latter could be a second display option, but it is more difficult to read and deeply integrated into the UI component that displays the translations.
Commit
We have discussed several times whether non-technical users understand the concept and need for a commit. Our solution is to display pending changes above the history so that users understand a commit as a history entry. The graphic representation on the left supports this mental model. By highlighting the change view after the first data import, users learn this concept during the onboarding process. To verify these assumptions some user research is required.
History (Rollback)
The history data is only helpful if it is well integrated into the user's editing workflow and provides context when needed. Once again, we have found that this requires thoughtful and deep integration into the UI components. It is not the primary interaction when editing translations and should not bloat the UI but should be discoverable when needed. Users can look at the history of each column and revert to a previous version.
To return to the previous state of the entire project, the thinking is slightly different. Since only the changes are saved, we do not have a complete copy of the file. Therefore, we must undo the changes until we have the previous state. This rollback functionality has yet to be implemented.
Deployed demo
Experience the alpha version here.
We invite you to:
Import demo data
Change some translations
Check the diffs
Commit the changes
Next steps
By building Fink2 Alpha, we have created our first app for non-technical users with basic change control features such as history tracking, diff views, and commit management. Now, we need to present these features to non-technical users and see their reactions.
Next week, we will try to find out how a user can intuitively combine two files and resolve conflicts between them. This will be crucial to achieving a good asynchronous collaboration workflow when multiple users work together.