[Epic] Ghost and i18n
See original GitHub issueProject description: Ghost is currently pretty much UK-based English-language only, and has barely any features to account for timezones, locales, languages, alphabets, keyboard layouts or anything else that isn’t UTC/English in either the admin or in themes. Even the USA folks luck out, sorry! All this is set to change with full support for multiple locales and languages across the admin and your blog posts. Throughout the Ghost GitHub, support for all of these sorts of features is referred to as i18n (internationalisation).
Currently, Ghost effectively doesn’t work properly unless you’re writing in English or something very similar. Throughout the application, from the ember admin, to the API and even down to themes there are things missing which make it hard to use Ghost if you aren’t English speaking.
This issue is intended as a placeholder to keep track of all the different places where we know we need to add i18n support so that it becomes possible for anyone to publish content comfortably in their own language and locale.
i18n for Ghost falls into 2 broad categories
1. Publish content in your language/locale
We need to make it possible for anyone to create a blog and publish content which is 100% in their language. This includes extending theme helpers, adding support for non latin-standard chars in URLs and other files, and many other things.
2. Use Ghost in your language/locale
Much less important, it would be great for our users if they could have the admin UI appear in their language, with a tailored layout and specific fonts.
Features and Support
The following is a list of things we know we need to do / make possible / add support for:
Publishing
- Level 1: blog language setting
- Level 2: post language
- customisable permalinks where english words are used
- set
<html lang="?">
- add language output in JSON/LD
- non-latin chars in slugs
- non-latin chars in urls
- non-latin chars when uploading files
- non-latin chars handled by
words
andcharacters
features of excerpt/content helpers - non-latin chars in generated heading
id
attributes - non-latin chars supported fully in editor
- customisable permalinks for
/tag/
,/author/
, and/page/
urls - locale dates in themes (moment.js language support)
- different plural structures in the
{{plurals}}
helper - extensible rules for what constitutes paragraphs and words in the excerpt and content helpers
- extensible rules for what constitutes paragraphs and words in the editor
Admin UI
- translate the Admin UI
- locale dates when entering published at date
- register different fonts for use in the admin interface and specifically the editor
- extend the admin interface with layout tweaks for different languages
- install language packs which provide the translations and layout tweaks
- non-latin chars handled by word count and counters on bio/description fields
- ability to include extra character sets in admin via language packs
i18n and Apps
Not all features and support for other languages will exist in core. Different writing systems require very different layouts and as such it should be expected that if your language is significantly different to English, that an App may be required to make Ghost work for you.
The advantage of splitting functionality this way is that we don’t have to design one UI that works for all languages and writing systems. Furthermore we don’t have to bloat the core of Ghost with features that will only ever be used by one specific group. Language packs which add translations for the Ghost admin UI could also add layout tweaks, better fonts, and other modifications to make Ghost work just as well for other languages as it does for English.
Issue Analytics
- State:
- Created 9 years ago
- Reactions:14
- Comments:17 (4 by maintainers)
Top GitHub Comments
Stopped using Ghost about a year ago due to only being able to use it for English-based sites. Still no progress? 😦
I understand the replies here come from a place of frustration and a desire to see this implemented, however the comments here are achieving the opposite effect.
Anyone who comes to this issue with the intention of contributing will be put off by the negativity in the comments. This article does a great job of explaining what it feels like being a maintainer on GitHub. It is extremely demotivating to put in tonnes of work only to have people rock up to GitHub to moan about all the things we haven’t done or got wrong.
Moving forward:
This is an enormous issue, relating to 3 different concepts that people commonly mix up:
We have said these aren’t features the core team plan to build in the near future, instead looking for people from the community to lead the effort. We had a page on ghost.org dedicated to it for over a year, and we’ve had an #i18n channel in Slack for even longer.
If you want to see this implemented, then contribute something. Positivity, ideas and encouragement are all contributions. Rally together a group of people who could make this happen, use the tools we’ve provided and work with us to affect a change.
For now - I am going to close this issue. It serves only as a beacon of frustration for a feature set that does not exist, and that really belongs on https://ideas.ghost.org. If an individual or group wants to work on one of the 3 aspects of locatisation/internationalisation, we can raise a new issue to cover the spec of what they want to build, as happened with #5345.