{"id":13609571,"url":"https://github.com/m-lab/mlab-speedtest","last_synced_at":"2025-05-09T00:10:45.332Z","repository":{"id":10488244,"uuid":"62251974","full_name":"m-lab/mlab-speedtest","owner":"m-lab","description":"Repository of the Interface and Project for speed.measurementlab.net","archived":false,"fork":false,"pushed_at":"2025-04-07T16:23:38.000Z","size":2185,"stargazers_count":43,"open_issues_count":25,"forks_count":17,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-04-29T14:21:37.729Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://speed.measurementlab.net","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-29T19:22:50.000Z","updated_at":"2025-04-08T18:10:28.000Z","dependencies_parsed_at":"2024-11-06T16:38:31.813Z","dependency_job_id":"1642e635-c439-448a-808f-071b73241d8b","html_url":"https://github.com/m-lab/mlab-speedtest","commit_stats":{"total_commits":119,"total_committers":10,"mean_commits":11.9,"dds":0.5546218487394958,"last_synced_commit":"0b18ac930b4a640e7c915f882b7f843555fe97ea"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-lab%2Fmlab-speedtest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-lab%2Fmlab-speedtest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-lab%2Fmlab-speedtest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-lab%2Fmlab-speedtest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m-lab","download_url":"https://codeload.github.com/m-lab/mlab-speedtest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252266582,"owners_count":21720880,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T19:01:36.049Z","updated_at":"2025-05-09T00:10:45.309Z","avatar_url":"https://github.com/m-lab.png","language":"CSS","funding_links":[],"categories":["CSS"],"sub_categories":[],"readme":"# speed.measurementlab.net source code\n\n`mlab-speedtest` is an Angular.js application providing the website https://speed.measurementlab.net. The app code currently uses `gulp` to integrate language localizations prior to deployment.\n\n## Setting up Local Development Environment\n\n### Install Build Dependencies\n\n* Install website build dependencies for your operating system and environment\n  * Node \u003e= v10.15.1 - Using NVM: `nvm install v10.15.1`\n  * Gulp - Installed with `yarn`\n  * Install libraries - `gulp copy_libs`\n  * Firebase tools - `npm install -g firebase-tools`\n\n## Adding new languages\n\nTranslations for this site are managed in the [Open Technology Fund's Localization Lab Transifex site](https://www.transifex.com/otf/m-lab-ndt-portal/dashboard/). Contributing translators may choose to translate and/or review translations there. Completed translations are then imported for use within this application and published by M-Lab staff.\n\n### How to add a new localization\n\n* Download a completed language translation file\n  * Visit the Transifex site and locate a completed language\n  * Click **Interface Language Strings** and then **Download for use** to download the completed language `.po` file\n  * Save it in the folder: `/translations/source/` using the file name pattern: **\u003ctwo letter langugage code\u003e.po**\n* Create new language template \u0026 update language string references\n  * Create a copy of an existing translation folder and index.html file, and make some edits to support the new language\n    * Copy the folder and index file: `cp -r app/nl app/es`\n    * Edit the index file to change the language it references. In `app/es/index.html`: \n      * change: `const INTERFACE_LANGUAGE = 'nl';` to `const INTERFACE_LANGUAGE = 'es';`\n      * change: `\u003cscript src=\"/assets/translations/it.js\"\u003e\u003c/script\u003e`\n    * to: `\u003cscript src=\"/assets/translations/es.js\"\u003e\u003c/script\u003e`\n  * Regenerate the supported language strings: \n    * `gulp inject`\n\n## Previewing site locally\n\nTo preview the site locally, we recommend using the Python Simple HTTP Server. \n\n* Navigate to the `/app` directory and run: `python3 -m http.server 8000`\n\nIf you are a user on the M-Lab Firebase project, you can also preview the site locally using the firebase-cli: `firebase serve --only hosting:mlab-speedtest`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-lab%2Fmlab-speedtest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm-lab%2Fmlab-speedtest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-lab%2Fmlab-speedtest/lists"}