{"_id":"5635b292d209b50d0031dfcf","__v":0,"version":{"_id":"5635b290d209b50d0031dfc4","__v":1,"project":"550a7754635c660d0052808e","createdAt":"2015-11-01T06:34:56.868Z","releaseDate":"2015-11-01T06:34:56.868Z","categories":["5635b291d209b50d0031dfc5","5635b291d209b50d0031dfc6","5635b291d209b50d0031dfc7","5635b291d209b50d0031dfc8","5635b291d209b50d0031dfc9","5635b291d209b50d0031dfca"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"0.25.0","version":"0.25"},"user":"5469e5dfa3b67a0e00559b06","category":{"_id":"5635b291d209b50d0031dfc6","version":"5635b290d209b50d0031dfc4","pages":["5635b292d209b50d0031dfcb","5635b292d209b50d0031dfcc","5635b292d209b50d0031dfcd","5635b292d209b50d0031dfce","5635b292d209b50d0031dfcf","5635b292d209b50d0031dfd0"],"project":"550a7754635c660d0052808e","__v":1,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-06-11T00:04:28.030Z","from_sync":false,"order":1,"slug":"using-telescope","title":"Using Telescope"},"githubsync":"","project":"550a7754635c660d0052808e","updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-06-17T02:23:11.144Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":13,"body":"Telescope is internationalized using the [tap:i18n](https://github.com/TAPevents/tap-i18n) package.\n\nEach package should contain the internationalization files for its own strings, although it's possible that this is not always strictly enforced yet. \n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Using Translated Strings\"\n}\n[/block]\nIn your template, you can call an internationalized string with `{{_ \"key\"}}`. In your code, you can do the same with `i18n.t(\"key\")`.\n\nTo translate your own packages, create an `i18n` directory at the root of your package to hold your translation files, then add them to your package manifest.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Translating Telescope\"\n}\n[/block]\nAll translations in Telescope are managed through [LingoHub](http://lingohub.com).\n\nNote that LingoHub uses the **English** version as master, so any changes to the **structure** of the internationalization files should happen through the English version first. \n\n**Becoming a Translator**\n\nTo join the translation team for a language, please [fill out this form](https://sachag.typeform.com/to/juayPH). It's also recommended you join the **#i18n** channel on [Slack](http://slack.telescopeapp.org).\n\n**Adding a Translation**\n\nYou can add missing translations via LingoHub's dashboard.\n\n**Syncing Translations**\n\nOnce a string is translated on LingoHub, it needs to be synced back to the Telescope GitHub repo (to the [i18n](https://github.com/TelescopeJS/Telescope/tree/i18n) branch). This is a manual process, so please ask an admin (such as `:::at:::sacha`) on the Slack channel or email `hello@telescopeapp.org` once you're done translating. \n\n**Adding a String**\n\nSometimes, you'll run into a part of the app that hasn't been internationalized yet (meaning that you'll see something like `<h3>A Title</h3>` instead of `<h3>{{_ \"a_title\"}}</h3>`).\n\nIf that's the case, you'll need to add the string to your language file (for example, `fr.i18n.json`), as well as the **English** file (`en.i18n.json`) since it's used as master.\n\n**Moving a String**\n\nSimilarly, if you need to move a string from one package to another, make sure you move the same string in the **English** file as well, otherwise your modification will be undone the next time LingoHub syncs. \n\n**Adding a Language**\n\nIf you'd like a new language to be added, please ask an admin on the Slack channel or email `hello@telescopeapp.org`. \n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Translations & GitHub Pull Requests\",\n  \"body\": \"While it's also possible to submit translations via a pull request on GitHub, this approach is not encouraged. So we can't promise your PR will be accepted if it doesn't fit in the pre-existing translation workflow.\"\n}\n[/block]","excerpt":"","slug":"internationalization","type":"basic","title":"Internationalization"}

Internationalization


Telescope is internationalized using the [tap:i18n](https://github.com/TAPevents/tap-i18n) package. Each package should contain the internationalization files for its own strings, although it's possible that this is not always strictly enforced yet. [block:api-header] { "type": "basic", "title": "Using Translated Strings" } [/block] In your template, you can call an internationalized string with `{{_ "key"}}`. In your code, you can do the same with `i18n.t("key")`. To translate your own packages, create an `i18n` directory at the root of your package to hold your translation files, then add them to your package manifest. [block:api-header] { "type": "basic", "title": "Translating Telescope" } [/block] All translations in Telescope are managed through [LingoHub](http://lingohub.com). Note that LingoHub uses the **English** version as master, so any changes to the **structure** of the internationalization files should happen through the English version first. **Becoming a Translator** To join the translation team for a language, please [fill out this form](https://sachag.typeform.com/to/juayPH). It's also recommended you join the **#i18n** channel on [Slack](http://slack.telescopeapp.org). **Adding a Translation** You can add missing translations via LingoHub's dashboard. **Syncing Translations** Once a string is translated on LingoHub, it needs to be synced back to the Telescope GitHub repo (to the [i18n](https://github.com/TelescopeJS/Telescope/tree/i18n) branch). This is a manual process, so please ask an admin (such as `@sacha`) on the Slack channel or email `hello@telescopeapp.org` once you're done translating. **Adding a String** Sometimes, you'll run into a part of the app that hasn't been internationalized yet (meaning that you'll see something like `<h3>A Title</h3>` instead of `<h3>{{_ "a_title"}}</h3>`). If that's the case, you'll need to add the string to your language file (for example, `fr.i18n.json`), as well as the **English** file (`en.i18n.json`) since it's used as master. **Moving a String** Similarly, if you need to move a string from one package to another, make sure you move the same string in the **English** file as well, otherwise your modification will be undone the next time LingoHub syncs. **Adding a Language** If you'd like a new language to be added, please ask an admin on the Slack channel or email `hello@telescopeapp.org`. [block:callout] { "type": "danger", "title": "Translations & GitHub Pull Requests", "body": "While it's also possible to submit translations via a pull request on GitHub, this approach is not encouraged. So we can't promise your PR will be accepted if it doesn't fit in the pre-existing translation workflow." } [/block]