{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","settings":"","params":[],"results":{"codes":[]}},"next":{"description":"","pages":[]},"title":"Internationalization","type":"basic","slug":"internationalization","excerpt":"","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 `[email protected]` 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 `[email protected]`. \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]","updates":[],"order":13,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"5635b292d209b50d0031dfcf","__v":0,"version":{"version":"0.25","version_clean":"0.25.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["5635b291d209b50d0031dfc5","5635b291d209b50d0031dfc6","5635b291d209b50d0031dfc7","5635b291d209b50d0031dfc8","5635b291d209b50d0031dfc9","5635b291d209b50d0031dfca"],"_id":"5635b290d209b50d0031dfc4","__v":1,"createdAt":"2015-11-01T06:34:56.868Z","project":"550a7754635c660d0052808e","releaseDate":"2015-11-01T06:34:56.868Z"},"createdAt":"2015-06-17T02:23:11.144Z","user":"5469e5dfa3b67a0e00559b06","category":{"sync":{"isSync":false,"url":""},"pages":["5635b292d209b50d0031dfcb","5635b292d209b50d0031dfcc","5635b292d209b50d0031dfcd","5635b292d209b50d0031dfce","5635b292d209b50d0031dfcf","5635b292d209b50d0031dfd0"],"title":"Using Telescope","slug":"using-telescope","order":1,"from_sync":false,"reference":false,"_id":"5635b291d209b50d0031dfc6","version":"5635b290d209b50d0031dfc4","project":"550a7754635c660d0052808e","__v":1,"createdAt":"2015-06-11T00:04:28.030Z"},"githubsync":"","project":"550a7754635c660d0052808e"}

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 `[email protected]` 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 `[email protected]`. [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]