)]}'
{
  "log": [
    {
      "commit": "8b1170319e7c2929f858bb5130a9422759e8cbec",
      "tree": "a0c23b4536db5e73ed435d8a67157abdb1b96edd",
      "parents": [
        "287c504ca26533b1ba785fff546a82f9b87464f4"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Jun 01 17:48:49 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Jun 01 17:48:49 2022 +0200"
      },
      "message": "Updating i18n files from Crowdin\n\nChange-Id: I9b34f3feb65b4cdb89b4e4e01e93ac75c55e85d0\n"
    },
    {
      "commit": "87e350577662bde55c195391da0f3e2b3b1a3d6a",
      "tree": "79d310fcca2ae141e74ab5ad5a178b29105b4b2a",
      "parents": [
        "33ee9cdbff867916004381855e7dd8a93faa4af0"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Jun 01 14:05:29 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Jun 01 14:48:05 2022 +0200"
      },
      "message": "Add Chromium Canary target\n\nThe mv3 variant will be used for this target, to start testing it.\n\nBug: translateselectedtext:10\nChange-Id: I0bc5d715d03b2ef9a7514e107d56c66703f05060\n"
    },
    {
      "commit": "33ee9cdbff867916004381855e7dd8a93faa4af0",
      "tree": "fe79095737430a51f4c43c373417ed0da82f2173",
      "parents": [
        "c9daf85ea5d6878cd0902bbea708e39a3bfafc6f"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Jun 01 01:06:53 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Jun 01 13:17:02 2022 +0200"
      },
      "message": "Replace language editor buttons with paper-button\n\nThe font family for the options page has also been changed so the glyphs\nused in the buttons appear better in Mac (and hopefully in other OSs\ntoo).\n\nAlso, the node_modules is now excluded from the source-map-loader rule\nin order to reduce the extension tarball size.\n\nBug: translateselectedtext:12\nChange-Id: I399987a87c8d2de147d46ce1cf89f36b9e2e4a9d\n"
    },
    {
      "commit": "c9daf85ea5d6878cd0902bbea708e39a3bfafc6f",
      "tree": "3f301c4993aaacf24c04adb1966b8c719c2d6bf3",
      "parents": [
        "2b50e9152ba5b60e1ffd23fd6579f2eafb77c570"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Jun 01 00:35:53 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Jun 01 00:35:53 2022 +0200"
      },
      "message": "Fix options page width for chromium_mv3\n\nChange-Id: I0bd41626344409efeb3b61c1baca974f3a62ca2e\n"
    },
    {
      "commit": "2b50e9152ba5b60e1ffd23fd6579f2eafb77c570",
      "tree": "f2054adadc00968d75fc7123a3a59ed6fa43a1e4",
      "parents": [
        "5bdc473e9a64d4becddf7160220d1d987cfa1f61"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Jun 01 00:05:40 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Jun 01 00:21:05 2022 +0200"
      },
      "message": "Refactor options page to use Typescript\n\nAlso, I\u0027ve added and ran eslint, and fixed several minor issues accross\nthe Typescript codebase.\n\nBug: translateselectedtext:15\nChange-Id: I8cfd67697f9bfb22f6de93b64fd750de66bab863\n"
    },
    {
      "commit": "5bdc473e9a64d4becddf7160220d1d987cfa1f61",
      "tree": "34f5e5778791625250de4061cea30d4b2fd778ff",
      "parents": [
        "47d6fd0120efa879cc2268a05adebdb5e9ace732"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue May 31 20:12:21 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue May 31 20:19:22 2022 +0200"
      },
      "message": "Refactor background page to use Typescript\n\nAlso, this CL adds clean-terminal-webpack-plugin to make it easier to\ndebug Typescript errors while developing the extension.\n\nBug: translateselectedtext:15\nChange-Id: If9b97cb7508859e2e05f5dc82940808fd935bf1a\n"
    },
    {
      "commit": "47d6fd0120efa879cc2268a05adebdb5e9ace732",
      "tree": "7aa2ff2fbb95bc0801e3aad48f41e9163b2b8491",
      "parents": [
        "86fda494fcf23dc67548b5bb0aa01791f69cf59c"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue May 31 16:08:18 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue May 31 16:08:18 2022 +0200"
      },
      "message": "Add Typescript loader to Webpack\n\nThis will allow us to use Typescript in this project.\n\nBug: translateselectedtext:15\nChange-Id: I98eca38e26759fb91fd6cc84a589ce94e31ad70c\n"
    },
    {
      "commit": "86fda494fcf23dc67548b5bb0aa01791f69cf59c",
      "tree": "a821c1a5aa3addce2a3e1f69a37aeb3721ab710e",
      "parents": [
        "ec599347780d90f9ee0d5d9db08c6aa6cecae91d"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue May 31 15:05:21 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue May 31 15:30:35 2022 +0200"
      },
      "message": "Add initial MV3 support\n\nIn order to prepare the migration towards Manifest Version 3, this\nchange adds a MV3 browser target for Chromium (chromium_mv3) and another\none for Edge (edge_mv3), which will build the extension using MV3.\n\nThis CL also changes several things to fix some bugs in the MV3 version\nof the extension:\n\n- Adds //src/common/actionApi.js to target |chrome.browserAction| (MV2)\n  and |chrome.action| (MV3) accordingly using the version-agnostic\n  object |actionApi|.\n- Adds //src/common/sessionStorage.js to wrap the\n  |chrome.storage.session| object in the case of MV3, and polyfill it in\n  the case of MV2. (The polyfill isn\u0027t perfect, since it stores the data\n  under the window object of the current page, so different pages will\n  have access to completely different storage areas, which are cleared\n  once the page is closed, not once the extension stops running.\n  However, this is fine for our case.)\n\nAs of now, the extension built with MV3 might have bugs. Thus, the MV3\nvariant will not be used for builds until it has been stabilized.\n\nBug: translateselectedtext:4\n\nChange-Id: Ib525339c055237b32b7352c490fee86b21555ed6\n"
    },
    {
      "commit": "ec599347780d90f9ee0d5d9db08c6aa6cecae91d",
      "tree": "959be448784435d0f443e6d0e3a7885f6aeaa9c6",
      "parents": [
        "28f2aa06586e3695024520cb2d00e9d4bdb9d11c"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue May 31 11:57:35 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue May 31 12:00:10 2022 +0200"
      },
      "message": "Fix: sometimes the translation window didn\u0027t open\n\nThis issue occured because since Webpack was introduced, the\n|translator_tab| variable wasn\u0027t part of the |window| object, but\ninstead was inside the scope of the Webpack program, and thus the\noptions page couldn\u0027t reset the |translator_tab| variable when the\n|uniquetab| option changed.\n\nFixed: translateselectedtext:14\nChange-Id: I2d56fa7e8d16bc8d33d3d5d7dfe6dfec0d668927\n"
    },
    {
      "commit": "28f2aa06586e3695024520cb2d00e9d4bdb9d11c",
      "tree": "962eec950bbde3906b2c573b93bd7e4c5a4c7b28",
      "parents": [
        "53f7a7f6a3ec8b4ce49984678d77ca56e1f990b7"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue May 31 11:25:06 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue May 31 11:25:06 2022 +0200"
      },
      "message": "Fix bug while setting default language\n\nThe previous change which introduced the new way options were handled\nintroduced a bug, which is fixed by this change.\n\nBug: translateselectedtext:11\nChange-Id: I268031e7bd504d1529ab824eb6fdeb1ee71fbdf6\n"
    },
    {
      "commit": "53f7a7f6a3ec8b4ce49984678d77ca56e1f990b7",
      "tree": "70d71ef8c5e7cde9e854cecd3051ca1d48f48607",
      "parents": [
        "8b63fb37c011d2be893bb3cc9ef4eb756f631924"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Mon May 30 13:59:59 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue May 31 11:03:06 2022 +0200"
      },
      "message": "Change how the options are handled\n\nNow the options are parsed by a single function in the Options class,\nstreamlining how they are interpreted in different parts of the code\n(background page and the options page).\n\nBug: translateselectedtext:11\nChange-Id: I1696da55c8c8d99683a0f45080b59849f9d4be4f\n"
    },
    {
      "commit": "8b63fb37c011d2be893bb3cc9ef4eb756f631924",
      "tree": "9d615b3bba960cdeddf5ef34d3befc89547c46b1",
      "parents": [
        "d4f82c5c7cbc9d47fb39b1de4bd3365357f2d28b"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sun May 29 23:26:50 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sun May 29 23:29:40 2022 +0200"
      },
      "message": "Add Edge target and adapt options page to Edge\n\nNow the extension can be built with Edge as a target. This change also\nadapts the option page for Edge so it doesn\u0027t have a horizontal\nscrollbar.\n\nFixed: translateselectedtext:6\nChange-Id: Ie0a38b85d1c604610942b00269004c51fc02963d\n"
    },
    {
      "commit": "42823642a3bf4a3972a4ba1c5bf21d148a73345f",
      "tree": "1d074e039bd71bd3362bf6b43e4897595c94b462",
      "parents": [
        "b9180effb856a423c56db56e61185e39dc7c7e5b"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sun May 29 20:38:43 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sun May 29 20:38:43 2022 +0200"
      },
      "message": "Remove sortablejs dependency and update credits\n\nChange-Id: Ib850bbb0f901f578430443e294fa1397864b5a15\n"
    },
    {
      "commit": "b9180effb856a423c56db56e61185e39dc7c7e5b",
      "tree": "c83f3751c93f3437746ce6448990b8661ffb0f2e",
      "parents": [
        "e5263f1e5e4f47769f771e7603ff845b1e308656"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sun May 29 20:26:43 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sun May 29 20:26:43 2022 +0200"
      },
      "message": "Improve options page UI\n\nNow the UI is a little bit more serious.\n\nFixed: translateselectedtext:12\nChange-Id: If00acdd5a1148cb1223b959b4e32ab4029b3d09f\n"
    },
    {
      "commit": "e5263f1e5e4f47769f771e7603ff845b1e308656",
      "tree": "47f9616aff645e1f5f30c8a33b78d9aea9236526",
      "parents": [
        "915e15adfc2af4e37d18dd4ad40abdc53b1e0588"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sun May 29 19:22:13 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sun May 29 19:45:56 2022 +0200"
      },
      "message": "Refactor options page using Lit\n\nThe Javascript code for the options page was messy and decreased the\nmaintainability of the entire extension. This change refactors the\nexisting code to use Lit, and thus separates the code into several files\nwhich define different elements of the options page. Thus, the code is\nmore modular now.\n\nAside from the refactoring, this CL also changes the way languages are\nreordered. Now, instead of dragging them in the list, they are reordered\nby clicking the arrow buttons next to them. This has been changed\nbecause the Sortable library is not compatible with Lit.\n\nBug: translateselectedtext:11\nChange-Id: I07364628c0737cf732afc7dd53846e42b082201d\n"
    },
    {
      "commit": "915e15adfc2af4e37d18dd4ad40abdc53b1e0588",
      "tree": "02e3ef7f087a67169843fb6827b597fbd89fa2ff",
      "parents": [
        "a197d863c1f948e2e1195ec87d11ed29e2c3087f"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Fri May 27 19:14:25 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Fri May 27 19:14:25 2022 +0200"
      },
      "message": "Refactor options.js to include credits directly\n\nBug: translateselectedtext:5\nChange-Id: I83306dd3b6fe064f7751ba20913a3acc754e905b\n"
    },
    {
      "commit": "a197d863c1f948e2e1195ec87d11ed29e2c3087f",
      "tree": "5142d129c085164af5864c15283466447339bdd7",
      "parents": [
        "dbadbfb1892725e0853aff9fc56e432525da595a"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Fri May 27 17:33:20 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Fri May 27 17:40:57 2022 +0200"
      },
      "message": "Use webpack\n\nThis change adds webpack as the main tool used while developing the\nextension. The extension has been minimally refactored so it works with\nwebpack, with the intention of refactoring it even further in follow-up\nCLs in order to improve the file/folder structure of the project and its\nreadibility.\n\nBug: translateselectedtext:5\nChange-Id: I89d7422e38fdaf46661c96527c51aa4436ad8056\n"
    },
    {
      "commit": "dbadbfb1892725e0853aff9fc56e432525da595a",
      "tree": "f163a2486160ea09d14dccbc32e528534fc3e96f",
      "parents": [
        "91a6d9c457445783eaffd82e0d1a5ec7a3dc0145"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Mon May 23 18:21:30 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Mon May 23 18:27:58 2022 +0200"
      },
      "message": "Updating i18n files from Crowdin\n\nChange-Id: I53309b7bdb74262b6950ec0470c2efa92f89e8b8\n"
    },
    {
      "commit": "91a6d9c457445783eaffd82e0d1a5ec7a3dc0145",
      "tree": "5ab893f1319977dfd6982c0becc61dd6830c64c1",
      "parents": [
        "d378fe721636391550ed72f50762c5ad2f8eca0d"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Mon May 23 17:49:02 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Mon May 23 17:49:02 2022 +0200"
      },
      "message": "Update Google Translate languages\n\n24 new languages have been added to Google Translate\n(https://blog.google/products/translate/24-new-languages/). This change\nadds them to the language list in the extension.\n\nFixed: translateselectedtext:8\nChange-Id: Ib62b2ca67ab7ad5d317fa919d6c9dbdfb8185b8b\n"
    },
    {
      "commit": "172bdaa22d6ef8bc528b4c33eb19a038ed688ee2",
      "tree": "60e24b870d588f85b59afdad32b9e11e4708e5b4",
      "parents": [
        "30fb69a15f40aaca7527b18551698cb2d18c9cb9"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sat Jan 08 22:22:57 2022 +0100"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sat Jan 08 22:22:57 2022 +0100"
      },
      "message": "Updating i18n files from Crowdin\n\nChange-Id: I7e814d69a3c47e37601424410b29abe83708ae84\n"
    },
    {
      "commit": "30fb69a15f40aaca7527b18551698cb2d18c9cb9",
      "tree": "73fcf883bd25cb7ac742093dbde78129b95cd14a",
      "parents": [
        "27c04ae495a6b9a67234a8090938bb03980ee174"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Dec 08 20:25:12 2021 +0100"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Wed Dec 08 20:34:30 2021 +0100"
      },
      "message": "Updating i18n files from Crowdin\n\nChange-Id: Ic88aeb3a235decfa4a89f87a4759f0640e7d11c8\n"
    },
    {
      "commit": "27c04ae495a6b9a67234a8090938bb03980ee174",
      "tree": "271e1261413d27c6bfc59076f1ba521a0af80834",
      "parents": [
        "203bc43f776ee8d1c2717773f27b533acacbc04d"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sun Aug 08 12:40:00 2021 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sun Aug 08 12:46:37 2021 +0200"
      },
      "message": "Updating i18n files from Crowdin\n\nChange-Id: I62180f649bcd6d6fb66ec6204404cb485a121a99\n"
    },
    {
      "commit": "203bc43f776ee8d1c2717773f27b533acacbc04d",
      "tree": "a598e74941b2983aec63ba8ddd658a77a4f9b1d8",
      "parents": [
        "47dcdee097aec91427f0f3e8f38c2f002f2aa548"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue Jun 08 16:35:00 2021 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue Jun 08 16:46:31 2021 +0200"
      },
      "message": "Remove old upgrade notifications\n\nWhen updating to v0.6 and v0.7, a notification showed up to explain the\nchanges. These versions are very old and these notifications are not\nexpected to be shown again, so this change removes those notifications\nand the corresponding strings from messages.json.\n\nChange-Id: I83d4ae901044e176495555da03da48e2f7ffcb16\n"
    },
    {
      "commit": "47dcdee097aec91427f0f3e8f38c2f002f2aa548",
      "tree": "bc2f90b6017998503c0846a56172b58fd173e683",
      "parents": [
        "0fe9f7be7c61eebbee68ae94e10993024ea2b677"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue Jun 08 16:00:29 2021 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue Jun 08 16:29:12 2021 +0200"
      },
      "message": "Updating i18n files from Crowdin\n\nAlso, updating blocked-users.txt.\n\nChange-Id: Idfa3f519095f2a773d948854f1a9e23b2e1aeef4\n"
    },
    {
      "commit": "0fe9f7be7c61eebbee68ae94e10993024ea2b677",
      "tree": "6f8604c3b5318805404edde1c203112cfd39b707",
      "parents": [
        "a1f6607f7e0667d9d68c4f42929ac25f62c2fd90"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue Jun 08 14:24:38 2021 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue Jun 08 15:52:41 2021 +0200"
      },
      "message": "Generate i18n credits file when bumping translations\n\nThe i18n credits file was previously generated at build time, but doing\nthis when bumping translations makes more sense because this way\ntranslators are added to the credits file when their translations are\nadded to the git repo (and not before that).\n\nThis change also removes the i18n credits file from .gitignore so it is\nchecked in the repo, and it is persisted. This will also make it easier\nto track changes in the list of translators.\n\nAlso, an added benefit is that now everyone can build the extension.\nThis is because previously it was necessary to have a private API token\nin order to generate the i18n credits file at build time (otherwise the\nbuild failed).\n\nChange-Id: Iecfd7ffd409aedc875f9d84cff0549f8d102d330\n"
    },
    {
      "commit": "9c8df4e885a0ec8acf0ecee21f1e1faf150ca48d",
      "tree": "69833dcbb11fc34243dc45147080a48f4c297881",
      "parents": [
        "292d4f2585604e49c836f19d3e29588735ac5268"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Tue May 18 11:46:19 2021 +0200"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Tue May 18 11:46:19 2021 +0200"
      },
      "message": "Updating i18n files from Crowdin\n\nChange-Id: I7dafd37ae66b67a51e31d24266670fba8579797a\n"
    },
    {
      "commit": "292d4f2585604e49c836f19d3e29588735ac5268",
      "tree": "4ecb83fa0f9e4f73d9d40e5c745eeed38e85a693",
      "parents": [
        "a78c17ede69a6043cc3a65d0667a2dd6646600de"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Tue May 18 11:39:04 2021 +0200"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Tue May 18 11:39:04 2021 +0200"
      },
      "message": "Adapt options page to RTL languages\n\nFixes: #16\nChange-Id: Ice5c627b97ef7d661e2c6cc41eb208aece639267\n"
    },
    {
      "commit": "a78c17ede69a6043cc3a65d0667a2dd6646600de",
      "tree": "25ba56a6238aec9ed415592aca9725206aa709d8",
      "parents": [
        "56cc89a21a304a1b92b65c7e68407f77b627b2b7"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Mon Mar 15 19:58:02 2021 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Mon Mar 15 19:58:02 2021 +0100"
      },
      "message": "Updating i18n files from Crowdin\n\nChange-Id: I90442462884ca48dd51e9a73da30e1d4fd4c6210\n"
    },
    {
      "commit": "56cc89a21a304a1b92b65c7e68407f77b627b2b7",
      "tree": "2018836223c2eb5f041b6c7c79dbbc6b0ec8e1f4",
      "parents": [
        "995c650dd13ca8297fde4b0854f90f9d60ba3952"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Wed Feb 24 10:24:34 2021 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Wed Feb 24 10:24:34 2021 +0100"
      },
      "message": "Updating i18n files from Crowdin\n\nChange-Id: I04f2fd48ffe4a3e1ae2a08f7124e5b6f9cfb0e02\n"
    },
    {
      "commit": "393b99f86ff8d644d4a4e3f962cc2a3cc2fa87c8",
      "tree": "e0c3138d0534bb7edc57f7dcba4f22ef6ddacf45",
      "parents": [
        "1e9acd23ff9e53728b204e647515f7cd16b73fcc"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Wed Jan 20 00:54:01 2021 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Wed Jan 20 00:54:01 2021 +0100"
      },
      "message": "Updating i18n files from Crowdin\n\nChange-Id: I9aa9176d85c67e41a8e1b80f8dd2499ad9ec6e86\n"
    },
    {
      "commit": "246676e3c27d74ba76004c876b8613d43e8fd73c",
      "tree": "b89accec147692729562b228acfb051b4a35f4bc",
      "parents": [
        "15c24731451ad2f6e3f3c1380559519eea540197"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sat Jan 16 16:05:59 2021 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sat Jan 16 16:05:59 2021 +0100"
      },
      "message": "Updating i18n files from Crowdin\n\nChange-Id: Ia793c08714b2378729c37ed2b5c27ba4c2a37a40\n"
    },
    {
      "commit": "15c24731451ad2f6e3f3c1380559519eea540197",
      "tree": "d98c0bc6c3463a5a3afce243c6620fd35c28a765",
      "parents": [
        "ac2dc4acb55b8e01045e55d61e2cfbdebbd397cd"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 20:06:18 2021 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 20:19:03 2021 +0100"
      },
      "message": "Updating i18n files from Crowdin\n\nChange-Id: I9f62fc3b23441988aed2eb04768c4b05978f731f\n"
    },
    {
      "commit": "18dc3ef0131e5755fcb976e2b41abb64e3d36385",
      "tree": "1c3c823da4840bb6905803174c9803283d440d48",
      "parents": [
        "8824b8ada67f74077490401bc64415fd98ebc3c7"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 18:49:18 2021 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 18:49:18 2021 +0100"
      },
      "message": "Add extension creator to the credits page\n\nGiven that the credits page now includes many different contributors\n(from translators to a list of open source projects used in the\nextension), I thought it would be a good idea to add myself too.\n\nChange-Id: Ie098d018e108af7ad2e48906ca75bcb9ec584198\n"
    },
    {
      "commit": "8824b8ada67f74077490401bc64415fd98ebc3c7",
      "tree": "abf75634e7ec28e5f437941e047823211c451085",
      "parents": [
        "679a6d7deec91b6e8d700f5c11f319605f5d7b06"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 18:25:12 2021 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 18:30:48 2021 +0100"
      },
      "message": "Change panel references to popup\n\nPanels have been deprecated for a long time, and when creating them a\npopup is created instead, so this change introduces the following:\n\n- Instead of trying to create a panel, create a popup directly\n- Change all i18n strings so \"popups\" are mentioned instead of \"panels\"\n- Change the |uniquetab| option so it is now set to \"popup\" instead of\n  \"panel\", while being backwards-compatible with the \"panel\" value.\n- Change the default |uniquetab| option to \"popup\", because users seem\n  to like this option the most (impression from the CWS reviews).\n\nFixes: #13\nChange-Id: I67aea8168013dd4b77d4ea4229179bcd5145cb6d\n"
    },
    {
      "commit": "679a6d7deec91b6e8d700f5c11f319605f5d7b06",
      "tree": "14c2ad8b28533ca9d4ea3589334cb92b2e3c3ce4",
      "parents": [
        "d6987c3432fb70ca6d77fb6028c88c286113ff93"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 18:22:10 2021 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 18:22:10 2021 +0100"
      },
      "message": "Fix minor typo in i18n string descriptions\n\nBug: #12\nChange-Id: Ifdd3615b5920d3c1372d9548a1df755dbb81509b\n"
    },
    {
      "commit": "d6987c3432fb70ca6d77fb6028c88c286113ff93",
      "tree": "92608a21df4965e939068f9c93f8bd1407139ca2",
      "parents": [
        "a003641d5a5b1a808a777db16486b58018d813fc"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 18:12:05 2021 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 18:12:05 2021 +0100"
      },
      "message": "Clarify i18n strings descriptions\n\nThis change clarifies i18n string descriptions and changes one string of\nthe \"Add language\" dialog in the options page (\"OK\" button --\u003e \"Add\").\n\nChange-Id: I4085085ddaa19ab9b6c8a526c1001b7c3ccb2672\n"
    },
    {
      "commit": "a003641d5a5b1a808a777db16486b58018d813fc",
      "tree": "16b4b2ca34de0101c7626df138a1da1d01a5b18d",
      "parents": [
        "f65e9bf0686a79f89332eb1648184f3ff6e1b780"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Tue Dec 29 13:39:05 2020 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Tue Dec 29 13:39:05 2020 +0100"
      },
      "message": "Automatically save settings in the options page\n\nChange-Id: Ib9e9642a9883dde1d2fd4e77b0dab1c7fc734256\n"
    },
    {
      "commit": "f65e9bf0686a79f89332eb1648184f3ff6e1b780",
      "tree": "3f863827660c622adce988ccc6f678a879df09c8",
      "parents": [
        "15a3f54aeada9dad7223215339b0be6c5615adab"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Tue Dec 29 12:57:16 2020 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Tue Dec 29 13:08:02 2020 +0100"
      },
      "message": "Fix several bugs\n\n- Fix: when installing the extension, the default language was added\n  even if it didn\u0027t exist in isoLangs.\n- Also, the default language now considers \u0027zh-CN\u0027 and \u0027zh-TW\u0027 as\n  possible candidates.\n- Fix: minor CSS issue in the options page.\n- Unknown languages are deleted (or replaced with a known replacement)\n  when updating the extension.\n- Other minor changes.\n\nChange-Id: Id6fc8233255cef2fc67185e1114ca86fdc56bc5a\n"
    },
    {
      "commit": "9bbb3a4624b30312f8774b9769868132e2b8db5b",
      "tree": "a45c1022b457be9917b16096d56352e5833cd6be",
      "parents": [
        "51cae20e6c3777356831eae5be6399207bafcca3"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Tue Dec 29 03:29:44 2020 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Tue Dec 29 11:26:55 2020 +0100"
      },
      "message": "Add translators to the credits dialog\n\n- Add tooling at //tools/i18n to generate the file with the information\n  about the translators: //src/json/i18n-credits.json.\n- Change credits.json to remove an entry from a translator, who is now\n  mentioned in the i18n credits.\n- Change Makefile and release.bash to incorporate the i18n credit\n  generation in the process of building the extension.\n- Change options page to accommodate the translators section.\n\nChange-Id: I7f3991f9c456c381832f4a7bebdfc5581ef9e4be\n"
    },
    {
      "commit": "51cae20e6c3777356831eae5be6399207bafcca3",
      "tree": "86e7a6ad62b6c8aa560386c7e385e76ab8282732",
      "parents": [
        "9f77d0da2155d722309aa1c0df43384d58aae32e"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Mon Dec 28 22:40:59 2020 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Mon Dec 28 23:05:14 2020 +0100"
      },
      "message": "Add new i18n languages and update existent ones\n\n- Add 21 new languages where the UI was translated (all translations\n  are 100% complete except for Chinese Simplified (96%)\n  and Amharic (37%)).\n- Update some translations for preexistent languages.\n\nChange-Id: I64be0a2dd551c12af1547a616b4f49f97c471bde\n"
    },
    {
      "commit": "9f77d0da2155d722309aa1c0df43384d58aae32e",
      "tree": "e1100444c323ddfce3cdd7e65d05b8b5c3a08e4b",
      "parents": [
        "978bfb90105eabf994c40e725d530a958bedeedb"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Mon Dec 28 22:16:12 2020 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Mon Dec 28 22:39:01 2020 +0100"
      },
      "message": "Add download-translations.bash script\n\nThe script can be used to download the translations from Crowdin.\n\nChange-Id: I295b34ef26d361a493e6fd82501bc70405e04ac1\n"
    },
    {
      "commit": "0f96116847748f71502e9278118406177c27957c",
      "tree": "cb0c71cc4707f2cc49887122c265f55d045a795f",
      "parents": [
        "b5ab76ca2c7ce5584c8164aa20f7d3be2a72f350"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Dec 27 13:12:27 2020 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Dec 27 13:44:22 2020 +0100"
      },
      "message": "Add new isoLangs and change isoLangs generation\n\n- Add new isoLangs to src/js/common.js.\n- Generated isoLangs now only have the first nativeName entry defined in\n  tools/langs/isoLangs.json (for instance, instead of \"euskara, euskera\"\n  now the generated nativeName only includes \"euskara\").\n- In the options page, the languages in the select element when adding a\n  new language are ordered by language name. This change was needed\n  because now the generated isoLangs variable is ordered by key and not\n  by name.\n\nChange-Id: Ic0c528b2e0382341700e2ac96cc61186471fe508\n"
    },
    {
      "commit": "5a57c41416547f5adab60af8df9887030d295be4",
      "tree": "d859a517c599a4fe71380568310aeb52292d2ae6",
      "parents": [
        "ce257a95a43dd27b9cf44c79d9fe22c0f21c8b7c"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Dec 27 00:26:45 2020 +0100"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sat Dec 26 23:31:24 2020 +0000"
      },
      "message": "Refactoring: format code according to Google style guides\n\nChange-Id: I9b6a5c2f1237e0e3f49fed94991168517cb8b8a9\n"
    },
    {
      "commit": "ce257a95a43dd27b9cf44c79d9fe22c0f21c8b7c",
      "tree": "9dd9b3c5e08097c92184d987dd7919b63cbac191",
      "parents": [
        "f01af0ecb50ba1eaf811c230d46c4ab630249861"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Dec 27 00:07:13 2020 +0100"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sat Dec 26 23:30:42 2020 +0000"
      },
      "message": "Code refactoring\n\nThe code was repetitive and old. This change is one iteration towards a\ncomplete refactoring of the code which brings it to a better state.\n\nAlso, the extension icon now can be clicked to open the options page.\n\nChange-Id: I998355cd871e31d6590608ff2563d43040944a83\n"
    },
    {
      "commit": "f01af0ecb50ba1eaf811c230d46c4ab630249861",
      "tree": "76909a667fd17e081e4a38ffcdd4d70d4b38cc55",
      "parents": [
        "5951a2cd60da9c897799a1c65cf1d30f3cf3213f"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sat Dec 26 23:11:10 2020 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sat Dec 26 23:48:38 2020 +0100"
      },
      "message": "Add infrastructure\n\nAdd several tools to help with the extension development:\n\n- Add .editorconfig file to set formatting options for the code editors.\n- Add generateManifest.bash to generate the manifest.json file\n  dynamically, from a template at templates/manifest.gjson. The\n  manifest.gjson file can have lines defining what parts of the manifest\n  are added for each target browser.\n- Add release.bash to generate the extension ZIP files.\n- Add Makefile to serve as a wrapper for the release.bash script.\n- Add tagRelease.bash to help tag versions in Git accordingly.\n- Add docs to explain all this new infrastructure (will need to be\n  updated in the future with more details).\n\nChange-Id: I698ffc59d0d2ec02b483935f7860e95760951a42\n"
    },
    {
      "commit": "04b572c059c3ff39aa4241e0eb81e4a1332a9316",
      "tree": "4f43da35111a967bef80983ac36dc3ff4961d970",
      "parents": [
        "16940f697624e42d1c3748e2cb1b50d4432710ea"
      ],
      "author": {
        "name": "avm99963",
        "email": "jocdeladria@gmail.com",
        "time": "Mon Jun 20 16:37:11 2016 +0200"
      },
      "committer": {
        "name": "avm99963",
        "email": "jocdeladria@gmail.com",
        "time": "Mon Jun 20 16:37:11 2016 +0200"
      },
      "message": "Fixed mistake in english translations\n"
    },
    {
      "commit": "16940f697624e42d1c3748e2cb1b50d4432710ea",
      "tree": "fa44af59b45889f706e7e7e98930e1c452aa3bb4",
      "parents": [
        "4a2a5d5ef0f125d7d47f457fc4c0c8e8d75aa44f"
      ],
      "author": {
        "name": "avm99963",
        "email": "jocdeladria@gmail.com",
        "time": "Sat Jun 04 16:33:04 2016 +0200"
      },
      "committer": {
        "name": "avm99963",
        "email": "jocdeladria@gmail.com",
        "time": "Sat Jun 04 16:33:04 2016 +0200"
      },
      "message": "Finished v0.8 beta\n"
    },
    {
      "commit": "4a2a5d5ef0f125d7d47f457fc4c0c8e8d75aa44f",
      "tree": "8a208bcf6479fc5f2af849f2b569500b307d32e4",
      "parents": [
        "2c8146bb53c7a80c1420e398512aa16e52f9e367"
      ],
      "author": {
        "name": "avm99963",
        "email": "jocdeladria@gmail.com",
        "time": "Sat Jun 04 16:17:29 2016 +0200"
      },
      "committer": {
        "name": "avm99963",
        "email": "jocdeladria@gmail.com",
        "time": "Sat Jun 04 16:17:29 2016 +0200"
      },
      "message": "Added new languages and moved extension files to folder src\n"
    }
  ]
}
