)]}'
{
  "log": [
    {
      "commit": "8758be81e31ead830e3bf387af5afdc0aecc1c37",
      "tree": "d07b1678aee21ad740b8eb9edd04efa3e90465b1",
      "parents": [
        "da7d760298afdad883bb3dad543ec70d1d042120"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sat Dec 23 14:48:24 2023 +0100"
      },
      "committer": {
        "name": "Adrià Vilanova",
        "email": "me@avm99963.com",
        "time": "Mon Dec 25 20:24:54 2023 +0000"
      },
      "message": "chore(i18n): use conventional commits when bumping translations\n\nChange-Id: Idc3b11a4f90332c86fa5b212c627333c37c11ec4\n"
    },
    {
      "commit": "da7d760298afdad883bb3dad543ec70d1d042120",
      "tree": "f480bf9cbd3986154b9f83e571cb87e215d70af7",
      "parents": [
        "dc0225d2dc1d9cdafb434f7538d66a32d632bf1f"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Sat Dec 23 14:46:51 2023 +0100"
      },
      "committer": {
        "name": "Adrià Vilanova",
        "email": "me@avm99963.com",
        "time": "Mon Dec 25 20:24:54 2023 +0000"
      },
      "message": "chore(i18n): update blocked users\n\nChange-Id: I36832509f433fe33b4f5c81f7d1bdb0e5dfec227\n"
    },
    {
      "commit": "9f03abd534c0f3cac5a89fa9861a9489fe88863a",
      "tree": "11688f30df76f444abc54bd130ddc29b8df8ac8e",
      "parents": [
        "51f151f92ceb51d6e23bdf0a31d5fb26bbb5198f"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Thu Jun 02 00:51:00 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Thu Jun 02 01:20:20 2022 +0200"
      },
      "message": "Add experimental feature to translate links\n\nThis CL adds support for translating links directly from the context\nmenu. This support is experimental, since many details of the\nimplementation might change after testing it for a while and finding\nways to improve it (hopefully also thanks to the feedback given by folks\nwho might also test this).\n\nFor this reason, the feature is only enabled in Canary builds of the\nextension for now (or when the extension is being developed).\n\nThis CL also changes the Crowdin configuration file so strings that\nchange in the source file and are uploaded for translation don\u0027t remove\nthe existing translations. This is because although no strings are\nchanged in this CL, the description/context of 2 strings has changed,\nand this is to be sure that the translations are not erased.\n\nBug: translateselectedtext:7\nChange-Id: I862af18eee8830c901e7fe7d2b473cab43d9bbe7\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": "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": "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": "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": "d378fe721636391550ed72f50762c5ad2f8eca0d",
      "tree": "c6825658388e0de2ad5de1fcbe7b1123d3512c3f",
      "parents": [
        "ae10641654df4f76700724296a51a1d2e36d3464"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Mon May 23 17:47:29 2022 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Mon May 23 17:47:29 2022 +0200"
      },
      "message": "Fix isoLangs generator\n\nThe isoLangs generator didn\u0027t detect a new set of languages which were\nrencently added to Google Translate. This is because the\nhttps://translate.google.com/translate_a/l?client\u003dchrome endpoint no\nlonger returns the full list of languages.\n\nBug: translateselectedtext:8\nChange-Id: If529a6001bc8c80db997e254249dbebd1245f1f3\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": "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": "a1f6607f7e0667d9d68c4f42929ac25f62c2fd90",
      "tree": "393c1e1d96403b90657dd0f9d74daf17aff5eeb4",
      "parents": [
        "73c01d46292c394ce93ab5bb9501b87e30992aff"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue Jun 08 14:51:53 2021 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue Jun 08 14:56:10 2021 +0200"
      },
      "message": "Retrieve API key from crowdin.yml\n\nBefore, you had to set an environmental variable with the API key for\nthe generate-i18n-credits.go script. As this API key is already set in\nthe crowdin.yml file, this change adds code so it is retrieved from\nthere if the environemntal variable is not set.\n\nChange-Id: I57c8af1c50863efd21e01cfce2745d86db6b8774\n"
    },
    {
      "commit": "73c01d46292c394ce93ab5bb9501b87e30992aff",
      "tree": "d18dd702a816f0654027c315b1c5e54396e8b345",
      "parents": [
        "bc9490b1bc1b6f1bc30c80864dfac79a67257df9"
      ],
      "author": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue Jun 08 13:57:36 2021 +0200"
      },
      "committer": {
        "name": "Adrià Vilanova Martínez",
        "email": "me@avm99963.com",
        "time": "Tue Jun 08 14:17:10 2021 +0200"
      },
      "message": "Add upload-sources.bash and README.md to tools/i18n\n\nThe upload-sources.bash script can be used to upload the messages.json\nfile when it gets updated directly to Crowdin.\n\nAlso, the blocked users list has been updated.\n\nChange-Id: I8fe8fbc47e7b780198f31711bd1a464d175b4546\n"
    },
    {
      "commit": "ac2dc4acb55b8e01045e55d61e2cfbdebbd397cd",
      "tree": "b9ad38bdc2b112e9953779131dd6004bfda8c655",
      "parents": [
        "18dc3ef0131e5755fcb976e2b41abb64e3d36385"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 20:01:35 2021 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Jan 10 20:05:24 2021 +0100"
      },
      "message": "Modify bump-translations.bash script\n\n- Rename download-translations.bash to bump-translations.bash\n- Add git-commit command to the script\n- Skip README.md file in empty translations check\n\nChange-Id: Id323cbe0871d565f8b10a1b578e2f52311bdfa10\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": "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": "b5ab76ca2c7ce5584c8164aa20f7d3be2a72f350",
      "tree": "5d6e1535dee707ac5eee66ce285735361f588930",
      "parents": [
        "5a57c41416547f5adab60af8df9887030d295be4"
      ],
      "author": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Dec 27 02:18:49 2020 +0100"
      },
      "committer": {
        "name": "avm99963",
        "email": "me@avm99963.com",
        "time": "Sun Dec 27 12:48:48 2020 +0100"
      },
      "message": "Add tool to generate isoLangs\n\nThe tool generates the isoLangs by downloading the available target\nlanguages directly from Google Translate, and getting the full language\ninformation from the local isoLangs.json file.\n\nChange-Id: I6b03696ea604faef5d24cf429ce3608906a8f534\n"
    }
  ]
}
