Commit Graph

252 Commits

Author SHA1 Message Date
Simon Prévost
e04dccf6bd Fix review percentage, personal access token, batch, diffable strings 2022-06-20 09:55:53 -04:00
Simon Prévost
9e26cfb34d Fix first letter lint for non-latin languages 2022-06-16 15:06:42 -04:00
Simon Prévost
c3253e0439 Fix format 2022-03-30 09:07:30 -04:00
Simon Prévost
4fb82dcf16 Fix credo 2022-03-30 08:51:12 -04:00
Simon Prévost
730b6b9dda Fix lint without master value 2022-03-30 08:37:11 -04:00
Simon Prévost
9c57b53904 Add db timeout error grouping in sentry 2022-03-18 07:01:03 -04:00
Simon Prévost
ef42ef0531 Fix empty replacement on lint view 2022-03-18 06:44:09 -04:00
Simon Prévost
dd133b3ff4 Fix machine translations from language select take 2 2022-03-15 15:09:15 -04:00
Simon Prévost
54d0462f70 Fix machine translations from language select 2022-03-15 10:17:39 -04:00
Simon Prévost
78b2c65fe1 Add machine translations document translate 2022-03-15 06:18:21 -04:00
Simon Prévost
b24a115b6d Add new relic optional setup 2022-02-28 11:50:22 -05:00
Simon Prévost
ffdb353848 Update NodeJS deps for webapp and cli 2022-02-28 11:41:08 -05:00
Simon Prévost
66f6d32b21 Fixes 2022-02-23 11:39:47 -05:00
Simon Prévost
aa4335b9a3 Fix inspect changes in 1.13.3 2022-02-23 07:46:56 -05:00
Simon Prévost
e7c56e3eff Add lint in CLI 2022-02-23 07:18:51 -05:00
Simon Prévost
5554d6446a Add apostrophe lint for fr languages 2022-01-21 15:29:45 -05:00
Simon Prévost
d45cfa26f1 Fix media queries, linting and other small improvements 2022-01-21 15:07:59 -05:00
Simon Prévost
e04d267cba Add revision on lint translation item 2021-12-23 07:59:52 -05:00
Simon Prévost
cde90b66ba Remove autocorrect stuff 2021-12-18 21:07:01 -05:00
Simon Prévost
bc72f50b4b Remove gleam 2021-12-12 21:18:48 -05:00
Simon Prévost
559eef3794 wip 2021-12-09 18:45:23 -05:00
Simon Prévost
eea5ec0410 Add lint translations page 2021-06-30 07:08:31 -04:00
Simon Prévost
8b7ef7b367 Refactor navigation and add badges 2021-06-28 12:57:38 -04:00
Simon Prévost
edcc7dc042 Add batched operations in activity item and refactor machine translations UI 2021-06-23 12:43:28 -04:00
Simon Prévost
8a58f8bf99 Add timeout on user socket to prevent heroky router error 2021-06-09 15:03:50 -04:00
Simon Prévost
43055188c3 Add default null option on new slave 2021-06-07 11:10:00 -04:00
Simon Prévost
e9ec74ef61 Add merge options on add translation to correct translation in the same operation 2021-06-04 16:12:33 -04:00
Simon Prévost
c874b64e97 Add export advanced filters 2021-06-04 10:18:43 -04:00
Simon Prévost
2dc3c421be Fix long text machine translations 2021-06-04 10:17:48 -04:00
Simon Prévost
37840f1492 Update elixir deps 2021-04-23 07:28:20 -04:00
Simon Prévost
09e4301aea
Add update comment UI and API on translation and projet comments (#236)
* Add update comment UI and API on translation and projet comments

* Use erlef/setup-elixir in GitHub Actions

* Fix setup gleam
2021-02-12 06:38:47 -05:00
Simon Prévost
8b84d0f1a5 Fix related translations ordering 2021-02-09 07:48:22 -05:00
François Richard
62ed72ec4e
Allow comment deletion (#224)
* Allow comment deletion

* Add delete_changeset for comment, decrement comments count

* Add comment delete resolver test

* Don't use pipe on single function call

Co-authored-by: Simon Prévost <sprevost@mirego.com>

* Improve controller functions

* Run format

Co-authored-by: Simon Prévost <sprevost@mirego.com>
2021-01-27 08:25:42 -05:00
Simon Prévost
8f1e8786e5 Add WEBAPP_SKIP_SUBRESOURCE_INTEGRITY setting to remove integrity attributes on link and script tags 2020-12-02 07:58:29 -05:00
Simon Prévost
897719dd48 Fix duplicate translations on search, search reset and refactor box-shadow 2020-11-26 08:00:03 -05:00
Simon Prévost
c937a2ace1 Fix value_type not set for some parsers 2020-11-25 18:01:32 -05:00
Simon Prévost
704553e0dd Fix lint 2020-11-25 07:53:48 -05:00
Simon Prévost
8e50afc874 Run format 2020-11-25 07:34:47 -05:00
Simon Prévost
2b649acc88 Fix gettext multiline value serializing 2020-11-25 07:34:47 -05:00
Simon Prévost
8c94168c0f Fix translations scope 2020-11-25 07:34:47 -05:00
Simon Prévost
6e0c3e129a Add Google Translate service with machine translations feature 2020-11-25 07:34:47 -05:00
Simon Prévost
3274fbb13d Fix key separator for nested json key 2020-11-10 12:03:57 -05:00
Simon Prévost
e40fe4cb86 Add file comment section in translation edit form 2020-11-05 13:06:32 -05:00
Simon Prévost
83ebde9c9a Fix tests 2020-10-20 21:27:26 -04:00
Simon Prévost
61661d438e Fix elixir 1.11 config and pell config 2020-10-18 20:56:14 -04:00
Simon Prévost
6cd211ee83 Update elixir 1.11.0 and OTP 23 2020-10-09 07:46:58 -04:00
Simon Prévost
cd92e2f79a Add batched sync/merge actions 2020-10-08 16:46:36 -04:00
Simon Prévost
de6cdd15a4 Add recent projects locally stored in projects list 2020-10-07 07:37:59 -04:00
Simon Prévost
23ed664569 Fix, format and service logo reuse 2020-09-30 08:09:12 -04:00
Simon Prévost
d2dbce9358 Add Logger metadata for current user and graphql operations 2020-09-30 07:38:19 -04:00
Simon Prévost
54b68840b0 Fix tests 2020-08-31 20:54:40 -04:00
Simon Prévost
3c5b5d2c6c Refactor select and update deps 2020-08-29 18:06:27 -04:00
Simon Prévost
13fceebf22 Add RESX 2.0 format 2020-07-08 10:52:28 -04:00
Simon Prévost
67874cedbb Add HTML form for html valueType translation 2020-07-02 20:54:47 -04:00
Simon Prévost
e0c0709c61 Update deps 2020-06-10 21:38:14 -04:00
Simon Prévost
19ab6a44f1 Add gleam library to implement type-safe linting module 2020-06-10 13:04:13 -04:00
Simon Prévost
2743d93409 Refactor review and translation UI 2020-06-10 13:02:47 -04:00
Simon Prévost
3a2bb5dd45
Replace custom gen stage event handling with oban to execute async tasks (#187) 2020-06-10 13:02:35 -04:00
Simon Prévost
b033294017 Add FirstLetterCase lint rule 2020-05-25 20:16:42 -04:00
Simon Prévost
5893a518b4 Add ping github event handler
Closes #178
2020-05-09 13:14:45 -04:00
Simon Prévost
e11088f6ec
Add version requirement filter fallback for version tag param (#183) 2020-05-08 08:47:45 -04:00
Simon Prévost
9cdd5626da
Fix parsed document as nil for other formats (#184) 2020-05-08 08:13:08 -04:00
Simon Prévost
7e7abcb9ee
Add version runtime tag in footer when served from the API (#182) 2020-05-08 07:50:53 -04:00
Adam Dobrawy
985d240ade
Update docs for "version" parameter of /export (#172) 2020-05-04 20:36:53 -04:00
Simon Prévost
416df5932e Add page size on document to fix cli documents listing 2020-05-04 12:30:11 -04:00
romarickb
c6ee149163
Collaborator's email must be unique for a projet (#169)
* Collaborator's email must be unique for a projet. Can't add multiple time the same collaborator in a project

* Update priv/repo/migrations/20200430174230_unique_collaborator_email.exs

Co-authored-by: Rémi Prévost <remi@exomel.com>

Co-authored-by: Simon Prévost <sprevost@mirego.com>
Co-authored-by: Rémi Prévost <remi@exomel.com>
2020-05-01 09:18:58 -04:00
Simon Prévost
d2aa3c7c62 Fix input change event 2020-04-27 06:55:44 -04:00
Simon Prévost
9567db9b4d
Convert codebase to typescript and latest Ember (#157)
* Update eslint setup (#134)

* Convert services (#136)

* Convert login and logged-in routes (#137)

* Convert project routes and controllers (#138)

* Convert activities and comments routes (#140)

* Convert project edit sub-routes and controllers (#139)

* Convert files routes and controllers (#141)

* Convert revision routes and controllers (#142)

* Convert phoenix service (#143)

* Convert translation routes and controllers (#144)

* Convert versions routes and controllers (#145)

* Convert JIPT routes and controllers (#146)

* Convert Sass variables to CSS modules @value (#147)

* Convert CSS variables and fix projects page components

* Fix a bunch of components

* Fix another bunch of components

* Update styles and missing global for powerselect

* Fix typings

* Fix typescript warnings

* Add typings for phoenix and file-saver vendor

* Fix github ci

Co-authored-by: Charles Demers <cdemers@mirego.com>
Co-authored-by: Charles Demers <charles.demers6@gmail.com>
2020-04-07 07:47:33 -04:00
Simon Prévost
c63243ce78 Rename original_file_name to document_path 2020-01-11 20:37:09 -05:00
Simon Prévost
d193f300bb Remove dead code 2020-01-09 12:58:45 -05:00
Simon Prévost
bc6b349954 Fix document pagination with empty translations by using joins as select 2020-01-09 12:29:22 -05:00
Simon Prévost
8689caae7e Update deps and fix activity item styles 2020-01-03 16:03:43 -05:00
Simon Prévost
1968150385 Update app.json and jsone dep to remove slash escaping 2019-12-16 18:46:05 -05:00
Simon Prévost
d7a778d22c Fix revision language overwrite for sync/merge/export controller 2019-12-12 12:36:50 -05:00
Simon Prévost
7b3579cae7 Fix breaking graphql API 2019-12-12 12:36:50 -05:00
Simon Prévost
605509d1de Use overridable revision slug/name in CLI 2019-12-12 12:36:50 -05:00
Simon Prévost
78231026d5 Add emoji customization for project 2019-12-12 12:36:50 -05:00
Simon Prévost
43092ce891 Update elixir deps 2019-12-12 12:36:49 -05:00
Simon Prévost
fb6259d9f5 Add tests 2019-12-12 12:36:49 -05:00
Simon Prévost
83c3d283d2 Correct language with variant for language tool 2019-12-12 12:36:49 -05:00
Simon Prévost
c2b02d2aca Test 2019-12-12 12:36:49 -05:00
Simon Prévost
4236ca2cee Add translation lint and spell check 2019-12-12 12:36:49 -05:00
Simon Prévost
8dbc5a4b1e Add more tests 2019-08-27 22:06:07 -04:00
Simon Prévost
ea1ed4ed62 Add advanced filters on translations list 2019-08-27 21:19:44 -04:00
Olafur Arason
fa6ff35d39 Add support for msgctxt (#118) 2019-08-23 12:09:04 -04:00
Simon Prévost
b992ac5215 Fix gettext header serializer 2019-08-14 18:30:10 -04:00
Simon Prévost
26288c9a2e Refactor readme 2019-07-31 21:15:15 -04:00
Simon Prévost
d2dd61131f Upgrade elixir 1.9, use mix release, fix env var for auth 2019-07-30 07:31:01 -04:00
Simon Prévost
62569055bd Fix webapp view rendering 2019-07-24 12:46:46 -04:00
Simon Prévost
39753e63e5 Fix CI 2019-07-22 13:21:53 -04:00
Simon Prévost
a9d4511863 wip docker 2019-07-18 17:13:24 -04:00
Simon Prévost
55c40bc617 Add jipt is conflicted style node and hide overlay settings 2019-06-17 20:45:59 -04:00
Simon Prévost
5a47ef85b4 Add document path update form in documents list 2019-06-16 10:59:34 -04:00
Simon Prévost
768a2fac3e Add uberauth to handle authentication to allow multiple providers login (google, github and slack) 2019-05-20 21:45:25 -04:00
Simon Prévost
0f53caa197 Add config to enable dummy login on production to use in the demo deploy 2019-05-12 21:07:13 -04:00
Simon Prévost
60b8510485 Fix brittle unordered jipt translations 2019-05-12 20:37:24 -04:00
Simon Prévost
be674cc941 Add language override in UI 2019-05-12 20:28:59 -04:00
Simon Prévost
11732c5f30 Add language overrides in revision in schema 2019-05-09 19:04:11 -04:00
Simon Prévost
66605ca1a1 Remove duplication between slack and discord integration service 2019-05-09 17:39:12 -04:00
Simon Prévost
b314d0d12e Add github service integration UI 2019-05-09 17:14:07 -04:00
amy null
93a4198ca3 Add Discord project integration (#86)
* Add basic Discord webhook support

* Add Discord integration tests

* Revert lockfiles
2019-05-09 17:11:24 -04:00
Simon Prévost
e1b1b106c6
Add GitHub webhooks integration to sync a project (#85)
* Add GitHub webhooks integration to sync a project

The webhook generates events that reads the repo’s config file (the same
config file used by accent-cli) and build "sync" and "add translations"
events in Accent.

It supports a default ref: you can specify to only
trigger the "sync" on the "release/production" branch. It also supports
automatic version sync. If you have a version in Accent that matches
your git tag, "sync" events will be generated for those versions,
without touching your current translations. This can be useful if you
use versions to freeze translations on your releases.

This commit only adds the API side of the feature. So while it’s not
user facing, if you want to test the feature, you can add a matching
"integrations" row in the database and setup your webhook in GitHub :)

* Add tests for integration scope

* Rename hook sync to hook update since the hook sync and add translations

* Order mix.exs deps

* Run formatter

* Fix credo

* Fix tests

* Move GitHub producer with the same shared code as the other producer, simple queue without back pressure

* Remove unused function

* Update event producer from gen stage queue broadcaster

* Add tests
2019-04-26 12:41:51 -04:00
Simon Prévost
1d300c308a Add version handling in sync and add translations operations 2019-04-21 14:02:44 -04:00
Simon Prévost
9e1dbb9dbd Replace number status code with atom 2019-04-21 14:02:44 -04:00
Simon Prévost
083645a546 Update icons 2019-04-07 16:28:15 -04:00
Simon Prévost
ae0df57dae
Add basic support for XLIFF 1.2 file format (#79)
![image](https://user-images.githubusercontent.com/464900/55203015-35c17980-51a0-11e9-8647-d91209c7b6de.png)

## Issue
📚 https://github.com/mirego/accent/issues/21

## Feature
This is a basic implementation of the XLIFF 1.2 format. This format is used heavily in a lot of translations related tool (and in XCode) so I may have missed some of the implementation details. But it’s a good start for someone who want to contribute to Accent 😉 

## Refactor
This format is a bit trickier than other since it required the master language to export the targets. We needed to refactor some module to use the master language in the serialization process. Also, not needed but cleaner, we wrap the document’s key `top_of_the_file_comment` and `header` inside a new struct `Language.Document`. This will become handy if we ever need to add an attribute to the document OR if we add a different attribute to the serialization input.

## Next steps
This format includes 2 new dependencies to handle XML encode and decode. _Why not use the same XML library used for the XML Android format?_ Because… \*drum roll\* The `<source>` XML tag when encoded by the `mochiweb_html` module is a self closing tag (per the HTML spec) 🥇 

Since those 2 new deps are required for the XLIFF format and can pretty print XML, we should use them _instead of `mochiweb`_ 🎉
2019-03-31 16:16:20 -04:00
Simon Prévost
5fd55241c9 Fix docker setup with bad libcrypto from alpine 3.9 2019-03-10 21:16:23 -04:00
Simon Prévost
2dd1ea1b53 Fix tests 2019-03-09 22:46:07 -05:00
Simon Prévost
a3e96e4236 Add just in place translation kit to translate directly in the project’s app 2019-03-09 22:46:07 -05:00
Simon Prévost
57b8559feb Refactor UI 2019-03-09 22:46:07 -05:00
Simon Prévost
fa55c9a543 Update deps and elixir/erlang version 2019-03-03 14:56:36 -05:00
Simon Prévost
835d32285c Fix placeholders inclusion in previous translation mapping 2019-01-22 08:09:45 -05:00
Simon Prévost
6316fc4ec3 Add halt in webapp controller when rendering maintenance 2019-01-11 14:19:53 -05:00
Simon Prévost
3cd60023a4 Fix filename parsing when using document path param and fix export filename parsing 2019-01-11 10:28:36 -05:00
Simon Prévost
a5454cf4ad Add maintenance page when ember build runs in the background on deploy 2019-01-11 09:47:14 -05:00
Simon Prévost
aed5793dab Add distillery and docker setup 2019-01-11 09:47:14 -05:00
Simon Prévost
0ba4d0474d wip 2019-01-09 08:01:19 -05:00
Simon Prévost
9a9b50e0d8 Add more tests and refactor scripts and endpoint 2019-01-06 22:41:53 -05:00
Simon Prévost
2a8512be87 Fix styles and sync type option 2018-12-22 14:37:34 -05:00
Simon Prévost
e0b24790e8 Refactor codes and UI with new standard 2018-12-12 20:05:57 -05:00
Simon Prévost
c6dbc084e1 Rename interpolations to placeholders 2018-12-12 19:57:34 -05:00
Benoit Ducharme
8ead83b52a Add interpolations to translation forms
Interpolations are strings automatically marked (based on the format) to
be replaced by the application at runtime. Those strings are meant to be
left unmodified and not translatable. The UI reflects that. The
interpolations shown to the user is always the master translation’s
ones. This is to clearly show on not translated content that maybe
interpolations uploaded after the correction were removed or added.
2018-12-12 19:57:34 -05:00
Simon Prévost
dbbadab99e Add Credo.Check.Readability.AliasOrder to credo config 2018-12-08 19:57:20 -05:00
Simon Prévost
53a0e5c8ac Refactor and adds credo env var check 2018-12-08 16:43:06 -05:00
Simon Prévost
65a41aaf88 Refactor 2018-12-08 16:06:55 -05:00
Simon Prévost
531caf156a Fix last synced at type for project 2018-12-08 15:21:42 -05:00
Simon Prévost
b373646e6c Replace Poison with Jason in app code 2018-12-08 15:21:42 -05:00
Simon Prévost
a4a68b8862 Update sentry to 7.0 to remove peer Plug.Conn error 2018-12-08 15:21:42 -05:00
Simon Prévost
b360e50339 Update Ecto and Phoenix deps 2018-12-08 15:21:42 -05:00
Simon Prévost
da82db5883 Fix credo 2018-12-08 15:12:45 -05:00
Simon Prévost
2f8c8a5522 Add sync type passive as a comparer in sync operation
The "sync_type" option can now be passed to the sync request to have a
different way to handle operations.

The new "passive" option will ignore all actions but the `new`, `renew`
and `remove`. It will ensure that when uploading a file, no translations
or master strings can be overwritten. It behaves the same way as the
existing merge_type "passive".
2018-12-08 15:12:45 -05:00
Simon Prévost
91114ba0dc Add Go i18n JSON document format 2018-09-10 07:54:21 -04:00
Simon Prévost
a4025cd0cf Add plural forms support for gettext serializer 2018-07-06 16:33:34 -04:00
Nicolas Boisvert
be950f5f0e laravel_php - Redone job in new branch 2018-06-08 16:59:28 -04:00
Simon Prévost
78d8c90ad9 Refactor langue tests setup and naming 2018-05-14 08:27:26 -04:00
Łukasz Jan Niemier
b3882e7bc5 Add support for CSV formatter
Issue #22
2018-05-11 07:34:04 -04:00
Łukasz Jan Niemier
fd1499ae52 Count translations in DB instead
Old way required 2 DB queries, where one would be sufficient.
2018-05-11 07:32:46 -04:00
Łukasz Jan Niemier
22b70541c0 Use inner joins instead of left joins
Inner join is default join for Ecto for valid reasons, it helps DB
optimizer to reduce amount of tuples fetched from storage.
2018-05-11 07:32:46 -04:00
Łukasz Jan Niemier
d868bff0ad Write tests for new functionalities 2018-05-11 07:32:25 -04:00
Łukasz Jan Niemier
a40e6a2e0d Do not assume that there will be value in language
Closes #26
2018-05-11 07:32:25 -04:00
Łukasz Jan Niemier
d9c733c0a3 Keep newlines in translations
Closes #28
2018-05-11 07:32:25 -04:00
Simon Prévost
ae6043e292 Add plural and locked state for translations 2018-04-27 08:49:50 -04:00
Simon Prévost
6fd43e95cd Remove useless updated_at in Repo.update and invert conflicted and active count query 2018-04-24 20:05:24 -04:00
Simon Prévost
53d96bc6a6 Add float value type 2018-04-24 20:03:39 -04:00
Simon Prévost
d420bd0fbe Refactor operation and translation value_type to always have a value and handle string/empty/null etc 2018-04-23 21:43:15 -04:00
Simon Prévost
d8c20f5de7 Use Ecto embedded schema to store previous translation on operation 2018-04-13 13:43:52 -04:00
Simon Prévost
c502ce2e4e Fix mass insert of operations that raised a postgresql error on max parameters size 2018-04-13 13:43:38 -04:00
Simon Prévost
d9711d5973 Add tests for hook consumers 2018-04-11 06:02:16 -04:00
Simon Prévost
0bb0b01171 Add email abilities restriction capabilities with RESTRICTED_DOMAIN env var 2018-04-11 06:01:00 -04:00
Simon Prévost
e0afd6806d Add tests for error view module 2018-04-09 20:52:22 -04:00