TryGhost / Ghost

Independent technology for modern publishing, memberships, subscriptions and newsletters.
https://ghost.org
MIT License
47.44k stars 10.35k forks source link

[i18n] Multi-lingual Content Publishing (Mockups) #8509

Closed hissingpanda closed 5 years ago

hissingpanda commented 7 years ago

In the spirit of the exciting work being done on #8437 I thought I would take a stab at mocking up a design for publishing content in multiple languages. The purpose of this is merely to mockup a workflow for a user to create multi-lingual content.

Below are the preliminary designs, mess around with the XD link to see the design in action.

Adobe XD mockup: https://xd.adobe.com/view/bfec5bf4-85bf-4d3a-b78b-67c19cc963f8/

Concept

screen shot 2017-05-31 at 15 54 51

Here you can see the that nothing has changed on the current admin interface (Alpha.17) with the exception of an added "translations" box in the post settings.

screen shot 2017-05-31 at 15 55 04

Upon selecting that box, the user would be taken to a settings screen (just like the meta data box functionality) where they can see all of the languages they've added for this post, as well as add additional languages.

screen shot 2017-05-31 at 15 55 18

After selecting a language (in this example the user selects Spanish), they would be taken to a new/existing content post where you can create a custom permalink, metadata, tags, and add a translator. It might be better to have both the author and translator fields present across all translated posts.

The approach I've taken here is akin to Drupal 8's translation workflow which ties translated content nodes to the original node using the same node ID in the database.

In the Stories section, each post in a different language could appear as a separate content post with an additional language filter added at the top for sorting, or, alternatively, a translated post could be linked with the original post and listed together with a marker/link to indicate that the current post has been translated in another language(s).

Benefits to this approach

I would love to hear feedback on this, and I hope to work on the implementation once a workflow has been decided on.

Features and Support

Taken from #3801. I've crossed out features that would immediately be solved with this workflow.

The following is a list of things we know we need to do / make possible / add support for:

Publishing

juan-g commented 7 years ago

The approach I've taken here is akin to Drupal 8's translation workflow which ties translated content nodes to the original node using the same node ID in the database.

That seems a good possibility, ID + language, to e.g. go directly from a page or post to the same one in another language.

I would love to hear feedback on this, and I hope to work on the implementation once a workflow has been decided on.

It looks good. The team probably is super-busy right now preparing the launch of Ghost 1.0 Beta, but I think they will like to have community cooperation for internationalization tasks.

PaszaVonPomiot commented 7 years ago

Functionally is okay from my point of view. Like in Polylang there should be some kind of indication that the same post exists in another language.

danilopolani commented 7 years ago

Is there a branch for this to contribute?

juan-g commented 7 years ago

@DaniloPolani, not yet. However, since multi-language is a high-demand functionality, I think probably after the next i18n stage is launched, surely soon (translatable Ghost's frontend and themes, #8437). These i18n stages are on the Ghost team's wish list, and they will decide suitable times.

danilopolani commented 7 years ago

Oh, well ok. Is there nothing we can do to help with the multi-lang posts/pages feature?

juan-g commented 7 years ago

That would mean installing Ghost locally for development, and preparing a pull request, all with Git.

However, I would wait for a little while until #8437 is released, and continue from there. Or talk directly to the team, for example on Ghost's #i18n or #contributing Slack channels.

kirrg001 commented 6 years ago

Note: If you are interested in leading this project, then please contact us first in slack.

Each project has to go through certain steps (research, review, ui, approval, development). No pull requests accepted before getting an approval.

And keep in mind, that the Ghost developers are quite busy, so you would have to be patient for feedback loops 🙈 😎

edpichler commented 6 years ago

Hello people, is this going on? I really need it.

mindsers commented 6 years ago

@edpichler Hi, I am not a maintainer of this project but I'm glad to see that this issue interests you and that you "really need it", may be it'll be done soon !

The open source community needs motivated developers — just like you — to contribute. 😉

kevinansfield commented 6 years ago

@edpichler, @Mindsers there is no on-going project by the core team to implement this. I would suggest opening a topic on our Ideas board and voting 😄

For the community to help it really needs a champion for this project that can see it through from start-to-finish. The Slack team mentioned above no longer exists but has been replaced by our forum which is the best place to reach out.

mprinc commented 6 years ago

Question from the core developers. Can you provide at least some architectural hints what, how and how complex multi-lingual content extension would be? And also some directions for someone who wants to get involved.

mprinc commented 6 years ago

In the meantime, what is the best workaround? Any links, best practice, ...?

juan-g commented 6 years ago

In the meantime, what is the best workaround? Any links, best practice, ...?

@mprinc Not a core developer but, about this point, there is—for the time being—the workaround of installing several Ghost sites, one for each language (e.g. example.com/es, example.com/fr, etc.). See Set Up Multilingual Ghost.org Blog.

On the other hand, of course this issue's goal is different, multi-language with just one Ghost site, still to be developed.

pawelngei commented 6 years ago

This is a feature I'd really like to see in Ghost, as right now my https://alxd.org/ is build with a Pelican StaticGen and the lack of support for multiple languages is stopping me from migrating.

I should have free time in a ~month and would love to contribute or even lead the implementation proposition initiative. My FLOSS account may not show it, but I've been working on similar projects for the last four years :)

juan-g commented 6 years ago

Ghost is now evolving in ways that are going to make easier the development of this multilingual functionality, as explained by Kevin of the Ghost team in a recent reply to one of the developers considering to help with this issue.

andrewanswer commented 6 years ago

@kevinansfield @mprinc I have an interesting idea - what if Ghost platform will translate the site content on the fly using AWS.Translate/Yandex.Translate API? We can use power of machine learning this way.

We can talk about this. Please contact me through my site http://answe.ru - you can find my Skype in header.

JackNSnake commented 6 years ago

Hi Sir. , Im Jack French Canadian, Quebec near Montreal, justvtold me exactly how to make it ans can translate english tout french, have a nice day

sakulstra commented 5 years ago

hello, was just looking at this and found: https://forum.ghost.org/t/multi-lingual-content-publishing/1413 which seems to be closed, but the feature isn't implemented yet, is it? As i get the linked ghost 2.0 release post we can now localize the theme, but the content itself is still mono lingual or did i get this wrong?

juan-g commented 5 years ago

@sakulstra Currently, there are a couple of ways to have multilingual sites, both with limitations:

  1. The old workaround of installing several Ghost sites, one for each language (e.g. example.com/es, example.com/fr, etc.). See Set Up Multilingual Ghost.org Blog (this link has a recently expired https certificate right now).
  2. The new workaround using dynamic routing: Creating multi-language sites with Ghost – Tutorials, which has its problems, such as no date translation, and for example: Multilanguage blog with a multilanguage theme - Help - Ghost Forum.
  3. A third solution would be one like those proposed on this issue, a dedicated solution for multi-language, which is not yet developed but I think could be great.

For now, until there is something better, I personally still prefer the first one, which is compatible with easily translatable and easily updatable themes, automatically translatable dates, etc.

ErisDS commented 5 years ago

Closing this as there are now ways to achieve multilingual content. We're interested in any new proposals for making this easier at the API level, or improvements to dynamic routing.

Note that we intend to add Nested Tags and custom taxonomies to dynamic routing, and those will provide more avenues for structured content like multilingual content.

YoranBrondsema commented 5 years ago

We're trying to set up a multi-language blog using Ghost as a headless CMS. We use Gatsby as our site generator, and pull the posts from Ghost with GraphQL at build time.

Unfortunately, none of the workarounds are really great, or at least they make the CMS part really unnatural. Ideally, there would be a way to indicate "these three posts are really just the same post but in different languages". The language could be saved as a tag on the post or something. I realize this impacts the data model quite a bit so I understand this is not an easy feature to develop.

We're now looking into other options like Contentful or Craft CMS but an open-source solution like Ghost would have our preference.

Note that I don't want to criticize Ghost or anything. You guys are doing great work and the fact that it's all open-source is great. I just thought it would be useful to document our use case to further advance the discussions.

joallard commented 4 years ago

Hey @ErisDS, I understand what you're saying here:

Closing this as there are now ways to achieve multilingual content. [...]

But I'm not finding what you're referring to. Are you able to clarify?

The only thing I can see from read-skimming this long thread is @juan-g's comment. The solutions he stated aren't things I'm willing to do in good conscience as I want to avoid the potential nightmares ahead.

I understand the circumstances, but I'm also kind of sad that I read "Multi-language" on the features page before installing, and now with some fresh install enthusiasm and some searching I land on this closed issue.

Edit: Just came across doc Translation & Multi-language content; it's still pretty hacky though.

madhums commented 4 years ago

Are there any examples of any themes that do multi language support? Any links other than https://ghost.org/tutorials/multi-language-content/ is appreciated!

JackNSnake commented 4 years ago

I no in Guns of Glory have or and work very great translate

Le lun. 9 mars 2020 7:12 p.m., Madhusudhan Srinivasa < notifications@github.com> a écrit :

Are there any examples of any themes that do multi language support? Any links other than https://ghost.org/tutorials/multi-language-content/ is appreciated!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/TryGhost/Ghost/issues/8509?email_source=notifications&email_token=AKBJXQW2YXX2VMMTWF4HTNDRGVZXFA5CNFSM4DNRO7N2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOJMVFQ#issuecomment-596822678, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKBJXQUMA4X2CD2Z5IA6Y6LRGVZXFANCNFSM4DNRO7NQ .

pengu10 commented 4 years ago

Is multilanguage in the roadmap? Can we get a official response?

ErisDS commented 4 years ago

This is the official response:

https://ghost.org/tutorials/multi-language-content/

pengu10 commented 4 years ago

This is the official response:

https://ghost.org/tutorials/multi-language-content/

ok, so its semi supported with code hack at the moment and there are no plans to integrate this officially in the future. Got it.

ErisDS commented 4 years ago

It's not a hack, but thanks for making me regret taking the time to reply to you. I recommend having a read of this: https://ghost.org/faq/open-source-etiquette/

alevals commented 2 years ago

This is the official response:

https://ghost.org/tutorials/multi-language-content/

It's not a hack, but thanks for making me regret taking the time to reply to you. I recommend having a read of this: https://ghost.org/faq/open-source-etiquette/

That article is misleading. There are many essential multilanguage features that are not supported by Ghost and that are not even mentionend in that article. Just a few:

headkit commented 1 year ago
Bildschirmfoto 2023-01-13 um 13 15 26

https://ghost.org/tutorials/multi-language-content/ is down...

a0m0rajab commented 1 year ago

@headkit you can find it in the archive: https://web.archive.org/web/20201216021255/https://ghost.org/tutorials/multi-language-content/

baloo1687 commented 9 months ago

okay, but how I can translate the strings?

For example: I have index and index-de. And I need to translate text in header as well. How I can do it?

en version:

  • {{t 'Book a Demo' }}
  • de version:

  • {{t 'Buchen Sie eine Demo' }}