-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Crowdin Connector #121
Crowdin Connector #121
Comments
* feat: Crowdin Connector - Meeds-io/MIPs#121 WIP : Admin connector settings & User connector extension. * fix: Updated copyright headers - Meeds-io/MIPs#121 * fix: Code refactoring - Meeds-io/MIPs#121 - Services and REST Endpoints using Spring - Js modules configuration bug fix
@srenault-meeds @margondicco I'm submitting this new MIP for the Crowdin Connector, providing the ability to incentivize community translators |
These events were added stringCommentCreated, suggestionAdded, suggestionApproved, approveSuggestion
@plamarque I have a question. In order to boost translations for a language or a folder, it would be really interesting to add a parameter to the action like language, folder. WDYT? |
Before this it was not possible to update personal access token
Yes, I have requirements for that but no mockup. I intend to implement them as additional fields in step 2 of the drawer |
Ok yes it would be nice indeed. No blocker for me of course. Go fonc, of course |
* feat: Capture hook events - Meeds-io/MIPs#121 * feat: Capture cancelling events - Meeds-io/MIPs#121
* feat: Fetch translation authors - Meeds-io/MIPs#121 Use Crowdin GraphQL API to fetch all translation authors to reward once their translations are approved * fix: Removed unnecessary logs - Meeds-io/MIPs#121
* fix: Bug fixes - Meeds-io/MIPs#121 - filter the list of projects to only those where we have the privileges - null displayed in project list when we edit - link to contribution should be on the crowdin string url * fix: Removed unnecessary logs - Meeds-io/MIPs#121 * fix: Refactored GraphQL codes - Meeds-io/MIPs#121 Introduced RemoteTranslation object
- Project Filter - Directory Filter - Language Filter - Human Filter
- Project Filter - Directory Filter - Language Filter - Human Filter
- Cancelling deleted translation suggestions - Fixed Languages Filter UI bug - Improved suggestions approved event by removing unnecessary network request (graphql)
Accept both human and machine translations when you don't check the box for human translation
* fix: Selecting Project & Directories - Meeds-io/MIPs#121 * fix: Bug fixes & Improvements - Meeds-io/MIPs#121 - Cancelling deleted translation suggestions - Fixed Languages Filter UI bug - Improved suggestions approved event by removing unnecessary network request (graphql) * fix: human translation bug fix - Meeds-io/MIPs#121 Accept both human and machine translations when you don't check the box for human translation
* feat: Crowdin Connector - Meeds-io/MIPs#121 WIP : Admin connector settings & User connector extension. * fix: Updated copyright headers - Meeds-io/MIPs#121 * fix: Code refactoring - Meeds-io/MIPs#121 - Services and REST Endpoints using Spring - Js modules configuration bug fix
Implement UT
…eeds-io/MIPs#121 (#16) Add missing instruction for create crowdin personal access token
…871 - Meeds-io/MIPs#121 (#17) This PR will improve display of event options depending on the crowdin event type
…t - MEED-6893 - Meeds-io/MIPs#121 (#20) Improve dispowdin rules
… MEED-6899 - Meeds-io/MIPs#121 (#22) This PR will update how to select cowdin folder when creating rule
…#1587) Centralize the rule title in program detail
…1991) Co-authored-by: Boubaker Khanfir <[email protected]>
…1991) Co-authored-by: Boubaker Khanfir <[email protected]>
MIP ready for review by the DAO members (cc @rdenarie ). |
Ok, for me, you can proceed to merge |
…#1587) Centralize the rule title in program detail
…2071) Co-authored-by: Boubaker Khanfir <[email protected]>
…#1593) Centralize the rule title in program detail
…#1593) Centralize the rule title in program detail
…2071) Co-authored-by: Boubaker Khanfir <[email protected]>
Rationale
Content translation is a very accessible and popular activity in communities. One of the best solutions for translation management is Crowdin.com. It has 120K projects and 2 million users.
Meeds is currently running a rewarding program for translation, but it requires significant review effort and can only work in batches. A technical integration would allow the capture and point allocation to be automated.
1. Functional Requirements
The Crowdin Connector should be capable of:
Top User Stories
Contributor
Program Owner
As a program owner, I can add an automated action to reward a fixed amount of points when users on Crowdin :
As a program owner, I can create an automated action that will track translations on a specific folder of the Crowdin project
As a program owner, I can create an automated action that will track translations on a specific language of the Crowdin project
As a program owner, I can create an automated action that will track only **human **translations (rather than MT or TM)
Connector Administration
Impacts
Gamification
Notifications
Analytics
Unified Search
2. Technical Requirements
Expected Volume & Performance
Terminology
Security
*The Oauth Tokens don't have to be stored in the Meeds database, but only used to validate user accounts on external provider
The API key (secret) used by Crowdin to transmit triggered events into the Meeds server has to be generated by the rewarding manager using a specific UI in the Gamification administration UI inside Crowdin connector settings. This Meeds API Key has to be encrypted using
CodecInitializer
before storing it in the database.A Crowdin oAuth Client & Secret keys have to be provided by rewarding admin in a dedicated UI. Those oAuth Keys have to be encrypted using
CodecInitializer
before storing it in the database. Those Keys will be used to validate the oAuth Token provided by the user from the Meeds Server to the Crowdin Server.Extensibility
Configurability
Upgradability
NA
Existing Features
NA
Feature Flags
No feature flag is needed.
Other Non Functional Requirements
Source code
The Crowdin Connector should have a dedicated code repository.
Packaging
The Crowdin Connector should be packaged as a separate add-on.
Webhooks
https://developer.crowdin.com/api/v2/#operation/api.projects.webhooks.post
translation.user.username
suggestion.added
suggestion.deleted
translation.user.username
suggestion.approved
suggestion.disapproved
suggestion.approved
suggestion.disapproved
comment.user.username
stringComment.created
stringComment.deleted
4. Software Architecture
Security
CodecInitialize
before storing them in the database usingSettingService
withGlobal
context andCrowdin
ApplicationScope
.REST endpoints
Some REST endpoints have to be added to serve new assets:
/crowdin/hooks
: this will allow the admin to manage webhooks (add, update, delete)/crowdin/webhooks
: this endpoint will manage external webhooks events.Services & processing
io.meeds.gamification.service.RealizationService.createRealizationsAsync
. The queue has to hold the objects sent by WebHook without parsing dataData and persistence
GAMIFICATION_EVENTS
gamification tableGAMIFICATION_CONNECTOR_ACCOUNTS
gamification tableCROWDIN_WEBHOOKS
The text was updated successfully, but these errors were encountered: