New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Multilingual #173

Open
husO-o opened this Issue Aug 4, 2014 · 84 comments

Comments

Projects
None yet
@husO-o

husO-o commented Aug 4, 2014

Making pagekit natively multilingual would be great.

Eventually, setting up a dedicated language manager extension would be interesting so it would give us the possibility to manage translatable content.

Also if do not need it, we could remove the extension and fallback to a monolingual site.

@cbeier

This comment has been minimized.

Show comment
Hide comment
@cbeier

cbeier Aug 5, 2014

Yes, multilingual ist a important feature in these days, also for smaller sites.

cbeier commented Aug 5, 2014

Yes, multilingual ist a important feature in these days, also for smaller sites.

@tups

This comment has been minimized.

Show comment
Hide comment
@tups

tups Aug 5, 2014

Meanwhile, it is possible to create a language file for themes ?
I tried " ./pagekit theme:translate mytheme " but :
[InvalidArgumentException]
Command "theme:translate" is not defined.

tups commented Aug 5, 2014

Meanwhile, it is possible to create a language file for themes ?
I tried " ./pagekit theme:translate mytheme " but :
[InvalidArgumentException]
Command "theme:translate" is not defined.

@tastymousehub

This comment has been minimized.

Show comment
Hide comment
@tastymousehub

tastymousehub Aug 7, 2014

I agree making pagekit natively multilingual is essential. It would be an extra reason to replace Wordpress by Pagekit.

tastymousehub commented Aug 7, 2014

I agree making pagekit natively multilingual is essential. It would be an extra reason to replace Wordpress by Pagekit.

@saschadube saschadube added this to the Future milestone Aug 7, 2014

@MacWordPress

This comment has been minimized.

Show comment
Hide comment
@MacWordPress

MacWordPress commented Aug 8, 2014

+1

@chrispecoraro

This comment has been minimized.

Show comment
Hide comment
@chrispecoraro

chrispecoraro Aug 10, 2014

I'll take a look at the code and see if it is easily implemented. I'd like this feature, too.

chrispecoraro commented Aug 10, 2014

I'll take a look at the code and see if it is easily implemented. I'd like this feature, too.

@huglester

This comment has been minimized.

Show comment
Hide comment
@huglester

huglester Aug 12, 2014

Contributor

Would be really neat thing to be integrated. Without this, CMS'es are more like "US ONLY" thing for me.

So I +1 for this :)

Contributor

huglester commented Aug 12, 2014

Would be really neat thing to be integrated. Without this, CMS'es are more like "US ONLY" thing for me.

So I +1 for this :)

@markushausammann

This comment has been minimized.

Show comment
Hide comment
@markushausammann

markushausammann Aug 19, 2014

A CMS without multilanguage support is not a CMS.

markushausammann commented Aug 19, 2014

A CMS without multilanguage support is not a CMS.

@chrispecoraro

This comment has been minimized.

Show comment
Hide comment
@chrispecoraro

chrispecoraro Aug 19, 2014

I'm taking a look at what would be required to make this happen. Is anybody else working on this? I'm not familiar with Symfony, but I use Laravel so it's shouldn't be too bad. Should we open up a new branch for this?

chrispecoraro commented Aug 19, 2014

I'm taking a look at what would be required to make this happen. Is anybody else working on this? I'm not familiar with Symfony, but I use Laravel so it's shouldn't be too bad. Should we open up a new branch for this?

@chrispecoraro

This comment has been minimized.

Show comment
Hide comment
@chrispecoraro

chrispecoraro Aug 20, 2014

To make this happen, several things need to happen:

Visitor side:

  • The locale (buttons, controls, etc) should switch for the visitor based on the language settings.
  • The content should be loaded into the correct language, based on the browser settings.

CMS side:

  • Creating versions of the post/articles/pages in another language should be possible.
  • There should be a fallback language.

chrispecoraro commented Aug 20, 2014

To make this happen, several things need to happen:

Visitor side:

  • The locale (buttons, controls, etc) should switch for the visitor based on the language settings.
  • The content should be loaded into the correct language, based on the browser settings.

CMS side:

  • Creating versions of the post/articles/pages in another language should be possible.
  • There should be a fallback language.
@markushausammann

This comment has been minimized.

Show comment
Hide comment
@markushausammann

markushausammann Aug 21, 2014

User friendly language negotiation:

  • check client language and serve content automatically in that language if available
  • if client language can't be detected or is not available, serve fallback language (configurable)
  • let user always select another language (overrides automatic detection) and permanently store it in DB for registered users, in cookie for guests, nothing is more annoying than a site that forgets what language I chose.

markushausammann commented Aug 21, 2014

User friendly language negotiation:

  • check client language and serve content automatically in that language if available
  • if client language can't be detected or is not available, serve fallback language (configurable)
  • let user always select another language (overrides automatic detection) and permanently store it in DB for registered users, in cookie for guests, nothing is more annoying than a site that forgets what language I chose.
@chrispecoraro

This comment has been minimized.

Show comment
Hide comment
@chrispecoraro

chrispecoraro Aug 21, 2014

Markus,

I agree, the only correction is that the client language/locale list is an array:

  • check client language(s) and serve content automatically in that language if available

Now, let me figure out what type of effort it would be. Do you have any tips? I'm new with Symfony, but not with PHP so I'll just start hacking into my fork.

chrispecoraro commented Aug 21, 2014

Markus,

I agree, the only correction is that the client language/locale list is an array:

  • check client language(s) and serve content automatically in that language if available

Now, let me figure out what type of effort it would be. Do you have any tips? I'm new with Symfony, but not with PHP so I'll just start hacking into my fork.

@markushausammann

This comment has been minimized.

Show comment
Hide comment
@markushausammann

markushausammann Aug 21, 2014

Storing of translations:

  • choose adapter wisely, you might need/want to provide online translation tools for crowd sourced CMS translations, handle plurals, etc.
  • break project down in to translation domains that are handled independently from each other (even if that means duplicate translations) e. g. cms-public-end, cms-admin-end
  • provide translations interface for plugin developers so they can hook into the infrastructure

markushausammann commented Aug 21, 2014

Storing of translations:

  • choose adapter wisely, you might need/want to provide online translation tools for crowd sourced CMS translations, handle plurals, etc.
  • break project down in to translation domains that are handled independently from each other (even if that means duplicate translations) e. g. cms-public-end, cms-admin-end
  • provide translations interface for plugin developers so they can hook into the infrastructure
@markushausammann

This comment has been minimized.

Show comment
Hide comment
@markushausammann

markushausammann Aug 21, 2014

Chris, I'm using Symfony very rarely but I'm sure the translation infrastructure isn't very different from other frameworks. Personally I prefer using the gettext adapter.

Introducing i18n / translatability into a whole CMS is not a small task. Subtasks IMO are:

  • language negotiation (pretty easy, probably just something like a controller plugin)
  • language switcher (GUI, pretty easy, one typical mistake is to translate the selectable languages with the rest of the page which is BS, any language in a language switcher should always stay in that language, English, Deutsch, Italiano, etc. otherwise I might need to look for my language in a language I don't understand at all.)
  • translation adapter (hard choise and lots of work because you basically have to touch every single language string in the whole software, this will give you a good idea about the quality of your DI infrastructure and code readability, it will also force you to use sprintf in case you find stuff like $text . ' - and - ' . $anotherText in your code.
  • translatability of text stored in DB these are CMS content texts and I guess also a lot of other texts used in the GUI. Here it's important to create an infrastructure that centralizes all translations into one table so lookups can be optimized.

That's all I can think of at the moment. Just a brainstorm because I like the idea of pagekit and I have some experience with translating large infrastructures.

markushausammann commented Aug 21, 2014

Chris, I'm using Symfony very rarely but I'm sure the translation infrastructure isn't very different from other frameworks. Personally I prefer using the gettext adapter.

Introducing i18n / translatability into a whole CMS is not a small task. Subtasks IMO are:

  • language negotiation (pretty easy, probably just something like a controller plugin)
  • language switcher (GUI, pretty easy, one typical mistake is to translate the selectable languages with the rest of the page which is BS, any language in a language switcher should always stay in that language, English, Deutsch, Italiano, etc. otherwise I might need to look for my language in a language I don't understand at all.)
  • translation adapter (hard choise and lots of work because you basically have to touch every single language string in the whole software, this will give you a good idea about the quality of your DI infrastructure and code readability, it will also force you to use sprintf in case you find stuff like $text . ' - and - ' . $anotherText in your code.
  • translatability of text stored in DB these are CMS content texts and I guess also a lot of other texts used in the GUI. Here it's important to create an infrastructure that centralizes all translations into one table so lookups can be optimized.

That's all I can think of at the moment. Just a brainstorm because I like the idea of pagekit and I have some experience with translating large infrastructures.

@chrispecoraro

This comment has been minimized.

Show comment
Hide comment
@chrispecoraro

chrispecoraro Aug 21, 2014

Markus,

I agree that it is not a small task. I want to tackle one subtask, if possible. I just need to find out where to start.

The translation adapter is already in the code from what I can see, although I've created a issue regarding date formatting fallback.

chrispecoraro commented Aug 21, 2014

Markus,

I agree that it is not a small task. I want to tackle one subtask, if possible. I just need to find out where to start.

The translation adapter is already in the code from what I can see, although I've created a issue regarding date formatting fallback.

@kamov

This comment has been minimized.

Show comment
Hide comment
@kamov

kamov Sep 2, 2014

I can't understand this feature request...

On pagekit already exist localization and content are translatable using what mark said "gettext", using .po files which exist many po editor like poedit or online https://localise.biz/free/poedit

the function name is _() and there is @trans() function for view files.

Which part of pagekit should be translatable?

Content of pages and blogs?

Not sure if this is required by cms core, also WordPress does not support a bilingual or multilingual blog out-of-the-box. There are however Plugins developed by the WordPress community which will allow you to create a multilingual blog easily.

This can be the same for pagekit.

Maybe there is something other that is not translatable which I missing?

kamov commented Sep 2, 2014

I can't understand this feature request...

On pagekit already exist localization and content are translatable using what mark said "gettext", using .po files which exist many po editor like poedit or online https://localise.biz/free/poedit

the function name is _() and there is @trans() function for view files.

Which part of pagekit should be translatable?

Content of pages and blogs?

Not sure if this is required by cms core, also WordPress does not support a bilingual or multilingual blog out-of-the-box. There are however Plugins developed by the WordPress community which will allow you to create a multilingual blog easily.

This can be the same for pagekit.

Maybe there is something other that is not translatable which I missing?

@tastymousehub

This comment has been minimized.

Show comment
Hide comment
@tastymousehub

tastymousehub Sep 2, 2014

Yes, I want translated content and I think it is a mayor shortcoming of Wordpress that it is not native multi-lingual. I don't use it any longer for multi-language sites. The plugins are either not user-friendly or they make the pages load slow.
If Pagekit gets multi-lingual and gets post ordering in the blog I intend to stop using Wordpress.

tastymousehub commented Sep 2, 2014

Yes, I want translated content and I think it is a mayor shortcoming of Wordpress that it is not native multi-lingual. I don't use it any longer for multi-language sites. The plugins are either not user-friendly or they make the pages load slow.
If Pagekit gets multi-lingual and gets post ordering in the blog I intend to stop using Wordpress.

@chrispecoraro

This comment has been minimized.

Show comment
Hide comment
@chrispecoraro

chrispecoraro Sep 2, 2014

It should also do browser locale detection and serve up the proper language of the content. To do this, we would need to add a locale code field for the posts.

chrispecoraro commented Sep 2, 2014

It should also do browser locale detection and serve up the proper language of the content. To do this, we would need to add a locale code field for the posts.

@huglester

This comment has been minimized.

Show comment
Hide comment
@huglester

huglester Sep 2, 2014

Contributor

In our experience, yes it is good to detect users language, but for example in my country 60% users use browser in english, but language is lithuanian. so we separate language by slug.

ALso in-core multi-language would be good because of search modules or something like this. We currently are using PyroCMS with custom multi-lang support.

For us multi-language is not only the translated cms buttons or something.
We need to wrtie news for example in differnet languages, pages are in different languge, then search involves searches only in specific language etc...

Thanks Jaroslav

Contributor

huglester commented Sep 2, 2014

In our experience, yes it is good to detect users language, but for example in my country 60% users use browser in english, but language is lithuanian. so we separate language by slug.

ALso in-core multi-language would be good because of search modules or something like this. We currently are using PyroCMS with custom multi-lang support.

For us multi-language is not only the translated cms buttons or something.
We need to wrtie news for example in differnet languages, pages are in different languge, then search involves searches only in specific language etc...

Thanks Jaroslav

@kamov

This comment has been minimized.

Show comment
Hide comment
@kamov

kamov Sep 4, 2014

@tastymousehub I understand now.

I found this topic on roadmap here: http://www.pagekit.com/roadmap

They seem integrate this feature but only in Future, after releasing 1.0.0 in first quartar of 2015.

For now maybe someone will prepare an extension for this.

I agree with mark who suggest how to handle this:

  1. check client language and serve content automatically in that language if available
  2. if client language can't be detected or is not available, serve fallback language (configurable)
  3. let user always select another language (overrides automatic detection) and permanently store it in DB for registered users, in cookie for guests

kamov commented Sep 4, 2014

@tastymousehub I understand now.

I found this topic on roadmap here: http://www.pagekit.com/roadmap

They seem integrate this feature but only in Future, after releasing 1.0.0 in first quartar of 2015.

For now maybe someone will prepare an extension for this.

I agree with mark who suggest how to handle this:

  1. check client language and serve content automatically in that language if available
  2. if client language can't be detected or is not available, serve fallback language (configurable)
  3. let user always select another language (overrides automatic detection) and permanently store it in DB for registered users, in cookie for guests
@88kbbq

This comment has been minimized.

Show comment
Hide comment
@88kbbq

88kbbq Jan 28, 2015

Guys, you really need to prioritize multi-language functionality. Like nearly all other platforms, you've left it as an afterthought, and it's gonna get messy. While I'm here, I also want to share that your URL structure needs to steer clear of filler words like "page," "post," "category," etc. These are really a nuisance for SEOs and site owners who want to migrate to a new platform but retain the organic ranking they've worked so hard and spent so much money to achieve. I wouldn't even look at yet another CMS that doesn't support custom URLs and multi-language functionality.

88kbbq commented Jan 28, 2015

Guys, you really need to prioritize multi-language functionality. Like nearly all other platforms, you've left it as an afterthought, and it's gonna get messy. While I'm here, I also want to share that your URL structure needs to steer clear of filler words like "page," "post," "category," etc. These are really a nuisance for SEOs and site owners who want to migrate to a new platform but retain the organic ranking they've worked so hard and spent so much money to achieve. I wouldn't even look at yet another CMS that doesn't support custom URLs and multi-language functionality.

@fabianmarz

This comment has been minimized.

Show comment
Hide comment
@fabianmarz

fabianmarz commented Feb 25, 2015

👍

@lenovouser

This comment has been minimized.

Show comment
Hide comment
@lenovouser

lenovouser commented Feb 25, 2015

👍

@rbarilani

This comment has been minimized.

Show comment
Hide comment
@rbarilani

rbarilani commented Feb 28, 2015

👍

@vizo

This comment has been minimized.

Show comment
Hide comment
@vizo

vizo Aug 23, 2015

@88kbbq you are right! :+1

vizo commented Aug 23, 2015

@88kbbq you are right! :+1

@saschadube

This comment has been minimized.

Show comment
Hide comment
@saschadube

saschadube Sep 10, 2015

Member

We released the Pagekit Beta today. I close this issue because the code base completely changed. Please open a new issue if it still exists.

Member

saschadube commented Sep 10, 2015

We released the Pagekit Beta today. I close this issue because the code base completely changed. Please open a new issue if it still exists.

@saschadube saschadube closed this Sep 10, 2015

@88kbbq

This comment has been minimized.

Show comment
Hide comment
@88kbbq

88kbbq Sep 10, 2015

Great news Sascha, I'll check it out.

Cheers!

Kevin

On Thu, Sep 10, 2015 at 11:47 PM, Sascha notifications@github.com wrote:

We released the Pagekit Beta
http://www.pagekit.com/blog/2015/09/10/pagekit-beta-released today. I
close this issue because the code base completely changed. Please open a
new issue if it still exists.


Reply to this email directly or view it on GitHub
#173 (comment).

88kbbq commented Sep 10, 2015

Great news Sascha, I'll check it out.

Cheers!

Kevin

On Thu, Sep 10, 2015 at 11:47 PM, Sascha notifications@github.com wrote:

We released the Pagekit Beta
http://www.pagekit.com/blog/2015/09/10/pagekit-beta-released today. I
close this issue because the code base completely changed. Please open a
new issue if it still exists.


Reply to this email directly or view it on GitHub
#173 (comment).

@markushausammann

This comment has been minimized.

Show comment
Hide comment
@markushausammann

markushausammann Sep 11, 2015

But does the new pagekit support multilingual sites?

markushausammann commented Sep 11, 2015

But does the new pagekit support multilingual sites?

@q2apro

This comment has been minimized.

Show comment
Hide comment
@q2apro

q2apro Aug 18, 2016

Having no multi-language support makes the CMS useless for us :( We are currently deciding to go away from the long-time player ModX and try some new CMS. Currently our choice would be Bolt and ProcessWire because they have modules that ensure multilingual support. See http://stackoverflow.com/a/38902608/1066234

As soon as there is such a feature implemented in Pagekit, we will consider testing and using it. Now we do not touch it, since this is one of the most essential features for us.

q2apro commented Aug 18, 2016

Having no multi-language support makes the CMS useless for us :( We are currently deciding to go away from the long-time player ModX and try some new CMS. Currently our choice would be Bolt and ProcessWire because they have modules that ensure multilingual support. See http://stackoverflow.com/a/38902608/1066234

As soon as there is such a feature implemented in Pagekit, we will consider testing and using it. Now we do not touch it, since this is one of the most essential features for us.

@jonathandion

This comment has been minimized.

Show comment
Hide comment
@jonathandion

jonathandion commented Aug 22, 2016

+1

@PrimozRome

This comment has been minimized.

Show comment
Hide comment
@PrimozRome

PrimozRome commented Sep 21, 2016

+1

@Sogl

This comment has been minimized.

Show comment
Hide comment
@Sogl

Sogl Oct 9, 2016

Still no ML support? Sad...

Sogl commented Oct 9, 2016

Still no ML support? Sad...

@kamuz

This comment has been minimized.

Show comment
Hide comment
@kamuz

kamuz Dec 10, 2016

Отличная идея. Поддерживаю +1

kamuz commented Dec 10, 2016

Отличная идея. Поддерживаю +1

@yaelduckwen

This comment has been minimized.

Show comment
Hide comment
@yaelduckwen

yaelduckwen commented Dec 13, 2016

+1

@DanielKulbe

This comment has been minimized.

Show comment
Hide comment
@DanielKulbe

DanielKulbe commented Dec 23, 2016

+1

@alexmbp

This comment has been minimized.

Show comment
Hide comment
@alexmbp

alexmbp commented Feb 7, 2017

+1

@dominikof

This comment has been minimized.

Show comment
Hide comment
@dominikof

dominikof commented Mar 6, 2017

+1

@maleksandrov

This comment has been minimized.

Show comment
Hide comment
@maleksandrov

maleksandrov commented Mar 13, 2017

+1

@denerFernandes

This comment has been minimized.

Show comment
Hide comment
@denerFernandes

denerFernandes commented May 23, 2017

+1

@FilipBartos

This comment has been minimized.

Show comment
Hide comment
@FilipBartos

FilipBartos commented May 25, 2017

+1

@petrk94

This comment has been minimized.

Show comment
Hide comment
@petrk94

petrk94 commented May 25, 2017

+1

@absoluto

This comment has been minimized.

Show comment
Hide comment
@absoluto

absoluto commented May 29, 2017

+1

@erikperin

This comment has been minimized.

Show comment
Hide comment
@erikperin

erikperin commented Jun 30, 2017

+1

@angay9

This comment has been minimized.

Show comment
Hide comment
@angay9

angay9 commented Aug 1, 2017

+1

@denerFernandes

This comment has been minimized.

Show comment
Hide comment
@denerFernandes

denerFernandes Aug 1, 2017

I help create multi-language version

denerFernandes commented Aug 1, 2017

I help create multi-language version

@RALMAZ

This comment has been minimized.

Show comment
Hide comment
@RALMAZ

RALMAZ Sep 13, 2017

What now? Do u do this?

RALMAZ commented Sep 13, 2017

What now? Do u do this?

@SPQRInc

This comment has been minimized.

Show comment
Hide comment
@SPQRInc

SPQRInc Sep 13, 2017

Contributor

It's on the roadmap: https://pagekit.com/roadmap . So the developers are aware of the fact that the community would love to see this feature.

Contributor

SPQRInc commented Sep 13, 2017

It's on the roadmap: https://pagekit.com/roadmap . So the developers are aware of the fact that the community would love to see this feature.

@nickdring

This comment has been minimized.

Show comment
Hide comment
@nickdring

nickdring commented Oct 11, 2017

+1

@devmount

This comment has been minimized.

Show comment
Hide comment
@devmount

devmount commented Oct 17, 2017

+1

@ThomasSonck

This comment has been minimized.

Show comment
Hide comment
@ThomasSonck

ThomasSonck commented Dec 19, 2017

+1

@Stigmatix

This comment has been minimized.

Show comment
Hide comment
@Stigmatix

Stigmatix Jan 10, 2018

+999999999

Stigmatix commented Jan 10, 2018

+999999999

@websmurf

This comment has been minimized.

Show comment
Hide comment
@websmurf

websmurf commented Mar 6, 2018

+1

@vytsci

This comment has been minimized.

Show comment
Hide comment
@vytsci

vytsci Mar 11, 2018

CMS is incomplete without multilanguage. This feature is required nowdays.

vytsci commented Mar 11, 2018

CMS is incomplete without multilanguage. This feature is required nowdays.

@neosin

This comment has been minimized.

Show comment
Hide comment
@neosin

neosin Mar 28, 2018

since at least 2014 people request this as probably #1 user request
I will also pass on this cms since it is missing multi language support

neosin commented Mar 28, 2018

since at least 2014 people request this as probably #1 user request
I will also pass on this cms since it is missing multi language support

@RALMAZ

This comment has been minimized.

Show comment
Hide comment
@RALMAZ

RALMAZ Mar 31, 2018

Maybe need contribute?

RALMAZ commented Mar 31, 2018

Maybe need contribute?

@Biggisb

This comment has been minimized.

Show comment
Hide comment
@Biggisb

Biggisb Jul 5, 2018

For us, its feels like Pagekit is Dead :( There is a huge potential but nothing is moving....
multilanguage is a Key Factor for most CMS user nowdays...

Biggisb commented Jul 5, 2018

For us, its feels like Pagekit is Dead :( There is a huge potential but nothing is moving....
multilanguage is a Key Factor for most CMS user nowdays...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment