Может ли plone.app.multilingual работать с частично переведенными сайтами?

Я пытаюсь заставить plone.app.multilingual работать с сайтом, который в настоящее время на английском языке, но будет частично переведен. Я использую plone.app.multilingual, а не более знакомый LinguaPlone из-за типов содержимого Dexterity, используемых сайтом, которые LinguaPlone не поддерживает.

У меня есть тестовый сайт, с которым можно поиграть. Как только я перевожу одну страницу, кажется, создается папка /en для английского контента и (например) /fr для французского. Я могу переключаться между двумя языковыми вариантами страницы, но когда я нахожусь на французском языке, я не могу видеть все остальные англоязычные страницы. Для посетителя сайта это бесполезно, и игнорируется тот факт, что, хотя браузер может быть настроен на предпочтение французского языка, он также может принимать английский язык. Я выбрал те параметры, которые, по моему мнению, являются подходящими, чтобы разрешить откат к языку сайта по умолчанию, и это позволяет мне просматривать их, если я знаю URL-адрес страницы, но это не очень полезно, если я не вижу, что контент там есть на первом месте.

Можно ли заставить plone.app.multilingual работать таким образом, чтобы пользователь мог видеть страницу с контентом на каком-то языке, даже если он не его родной, или это мой единственный вариант перевести сайт на использовать архетипы?

Спасибо.


person Richard W    schedule 29.06.2012    source источник


Ответы (1)


LinguaPlone поступит в этом случае так же: сделает весь контент «нейтральным к языку», за исключением того, где есть перевод.

Пометив весь ваш контент как «нейтральный к языку», он будет найден и показан конечному пользователю независимо от того, какой язык был установлен. Теперь, если какой-либо из ваших материалов имеет перевод, вам необходимо установить английский язык в качестве языка исходной версии, чтобы он отображался только при выборе английского языка.

Для этого, вероятно, можно использовать подписку на plone.multilingual.events.IObjectTranslatedEvent.

Что касается создания en/ и fr/ местоположений для вашего контента, это задача адаптера ITranslationLocator (из plone.multilingual.interfaces вы можете переопределить этот адаптер, чтобы предоставить свои собственные варианты. См. реализации по умолчанию для того, как это работает в настоящее время.

person Martijn Pieters    schedule 30.06.2012
comment
Спасибо за этот ответ. Я действительно не против, где хранится контент, пока люди могут его видеть, однако я не понимаю, как может быть так, что, оказавшись внутри /fr/, вы увидите любой контент снаружи - кажется, он устанавливает корень сайта к этому моменту. - person Richard W; 30.06.2012
comment
Пример этого: у меня есть нейтральные к языку события и новости, которые отображаются для всех, если я просматриваю корень сайта (что сложно, потому что он хочет перенаправить меня в /en/), однако какой бы язык я ни выбрал, я увижу только содержимое подкаталога этого языка. Я не против работать с этим вариантом использования, но на данный момент я не вижу, как это сработает для кого-либо. - person Richard W; 30.06.2012
comment
@RichardW: он установлен как корень навигации, и поиск автоматически ограничивается этим. - person Martijn Pieters; 30.06.2012
comment
@RichardW: вам нужно будет переопределить создание корней для конкретного языка и, по крайней мере, не устанавливать их в качестве корней навигации. - person Martijn Pieters; 30.06.2012