{"id":15105335,"url":"https://github.com/mirego/ember-best-language","last_synced_at":"2025-09-27T03:30:48.773Z","repository":{"id":21964496,"uuid":"94557806","full_name":"mirego/ember-best-language","owner":"mirego","description":"🏳 A FastBoot-enabled addon to detect the best language for your user.","archived":true,"fork":false,"pushed_at":"2022-10-25T12:32:13.000Z","size":874,"stargazers_count":19,"open_issues_count":0,"forks_count":5,"subscribers_count":39,"default_branch":"master","last_synced_at":"2024-12-17T01:44:55.365Z","etag":null,"topics":["addon","best","best-language","ember","ember-addon","emberjs","fastboot","language","locale","mirego"],"latest_commit_sha":null,"homepage":"https://open.mirego.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mirego.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-16T15:34:40.000Z","updated_at":"2024-05-30T02:55:27.000Z","dependencies_parsed_at":"2023-01-12T10:15:26.237Z","dependency_job_id":null,"html_url":"https://github.com/mirego/ember-best-language","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirego%2Fember-best-language","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirego%2Fember-best-language/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirego%2Fember-best-language/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirego%2Fember-best-language/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mirego","download_url":"https://codeload.github.com/mirego/ember-best-language/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234376918,"owners_count":18822416,"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":["addon","best","best-language","ember","ember-addon","emberjs","fastboot","language","locale","mirego"],"created_at":"2024-09-25T20:23:33.545Z","updated_at":"2025-09-27T03:30:43.435Z","avatar_url":"https://github.com/mirego.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"**⚠️ This project is deprecated and no longer maintained by Mirego. It’s only available as a read-only repository.**\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/11348/55352478-eaa0b280-548e-11e9-99b2-34f7f34986c0.png\" width=\"600\" /\u003e\n  \u003cp\u003e\u003cbr /\u003eA FastBoot-enabled addon to detect the best language for your user.\u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://travis-ci.com/mirego/ember-best-language\"\u003e\u003cimg src=\"https://travis-ci.com/mirego/ember-best-language.svg?branch=master\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://www.npmjs.com/package/ember-best-language\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/ember-best-language.svg\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## Installation\n\n```shell\n$ ember install ember-best-language\n```\n\n## How does it work?\n\n`ember-best-language` uses a scoring system to determine the best language to use. The scoring system is based on the `Accept-Language` header on the FastBoot-side. On the client side, we use `navigator.languages` and give a score to each language based on its order in the array.\n\n`ember-best-language` also split language code from country code to make sure that if the user reads `fr-CA` and your system supports `fr`, you will have a match.\n\nThis addon is inspired by the work of [Rémi Prévost](https://github.com/remiprev) in [`plug_best`](https://github.com/remiprev/plug_best), you should check it out!\n\n## Usage\n\n`ember-best-language` provides a service with two methods:\n\n- bestLanguage\n- bestLanguageOrFirst\n\nTo find out which language is the best one to use among a list of supported languages:\n\n```js\nimport Route from '@ember/routing/route';\nimport {inject as service} from '@ember/service';\n\nexport default class extends Route {\n  @service('best-language') bestLanguage;\n\n  beforeModel() {\n    const bestLanguage = this.bestLanguage.bestLanguage(['en-US', 'fr']);\n    // =\u003e {language: 'en-US', baseLanguage: 'en', score: 1}\n  }\n});\n```\n\nIf none of the user’s languages are supported, `ember-best-language` will return `null`. However, you can use the `bestLanguageOrFirst` method to make it return the first supported language in those cases.\n\n```js\nimport Route from '@ember/routing/route';\nimport {inject as service} from '@ember/service';\n\nexport default class extends Route {\n  @service('best-language') bestLanguage;\n\n  beforeModel() {\n    const bestLanguage = this.bestLanguage.bestLanguage(['fr', 'de', 'en-US']);\n    // =\u003e null\n\n    const bestLanguageOrFirst = this.bestLanguage.bestLanguageOrFirst(['fr', 'de', 'en-US']);\n    // =\u003e {language: 'fr', baseLanguage: 'fr', score: 0}\n  }\n});\n```\n\n## Contributing\n\n```shell\n$ git clone https://github.com/mirego/ember-best-language\n$ cd ember-best-language\n$ yarn install\n```\n\n## Running tests\n\n```shell\n$ yarn test # Runs `ember try:each` to test the addon against multiple Ember versions\n$ ember test\n$ ember test --server\n```\n\n## Building\n\n```shell\n$ ember build\n```\n\nFor more information on using ember-cli, visit \u003chttps://ember-cli.com\u003e.\n\n## License\n\n`ember-best-language` is © 2017-2022 [Mirego](http://www.mirego.com) and may be freely distributed under the [New BSD license](http://opensource.org/licenses/BSD-3-Clause). See the [`LICENSE.md`](https://github.com/mirego/ember-best-language/blob/master/LICENSE.md) file.\n\nThe flag logo is based on [this lovely icon by Prasanta Kr Dutta](https://thenounproject.com/term/language/1824073), from The Noun Project. Used under a [Creative Commons BY 3.0](http://creativecommons.org/licenses/by/3.0/) license.\n\n## About Mirego\n\n[Mirego](http://mirego.com) is a team of passionate people who believe that work is a place where you can innovate and have fun. We're a team of [talented people](http://life.mirego.com) who imagine and build beautiful Web and mobile applications. We come together to share ideas and [change the world](http://mirego.org).\n\nWe also [love open-source software](http://open.mirego.com) and we try to give back to the community as much as we can.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirego%2Fember-best-language","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmirego%2Fember-best-language","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirego%2Fember-best-language/lists"}