Meertalige website maken met standaard CMS Made Simple funct

Een board om T&T's te plaatsen m.b.t. CMSMS, PHP of Smarty

Moderator: velden

User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Meertalige website maken met standaard CMS Made Simple f

Post by Rolf »

iStevo wrote:daar heb ik ook de correcte pagina-alias op ingevuld. Vandaar dat ik het raar vind dat ik op de home pagina terecht kom.
Zorg ervoor dat in het html sjabloon de {content block=... blah blah} aanroepen net na de </__body> tag zijn opgenomen. In een "logische" volgorde dus.
Dan wordt nml. eerst een waarde gegeven aan de string $dutch_version etc en daarna pas de Smarty vergelijking in de html blokken

grt. Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
janvl
Power Poster
Power Poster
Posts: 947
Joined: Wed Aug 13, 2008 10:57 am

Re: Meertalige website maken met standaard CMS Made Simple f

Post by janvl »

Kontroleer nog even of je alleen de alias in het veld gegeven hebt, geen http of www, alleen de alias.

Groet,
Jan
iStevo

Re: Meertalige website maken met standaard CMS Made Simple f

Post by iStevo »

Rolf wrote:Zorg ervoor dat in het html sjabloon de {content block=... blah blah} aanroepen net na de </__body> tag zijn opgenomen.
Heerlijk. Dank je wel voor jullie bijdrages.
Ziet er goed uit nu.
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Meertalige website maken met standaard CMS Made Simple f

Post by Rolf »

Van thread "Blog ontwikkelen": http://forum.cmsmadesimple.org/viewtopi ... 13&t=56086
iStevo wrote:kan dit?? Kwestie dat de juiste menu's bij de juiste taal meegaan
website.be/nl/blog
website.be/en/blog
website.be/de/blog
website.be/fr/blog
Ja, dat kan zeker! Ik zal in paar hapklare brokken wat code geven. Kijk maar eens goed of je snapt wat er gebeurt ;)

Maak binnen CGBlog voor iedere taal een categorie aan, dus nl, e, d, enz.

Boven in het CGBlog detailtemplate zetten om de titel mee te nemen:

Code: Select all

{* Pass blog title to template *}
{assign var='blog_title' value=$entry->title}
Maak een apart HTML sjabloon die alleen gebruikt wordt voor de detailpagina van CGBlog.


HTML Sjabloon:

Code: Select all

{* The sitename is changed in Site Admin/Global settings. {title} is the name of each page *}
<title>{sitename} - Blog - {$blog_title}</title>
Content "door" Smarty laten gaan:

Code: Select all

< body>
{content assign='contentdump'}
Op de plaats van de main content zet je dan:

Code: Select all

<h2>{$blog_title}</h2>
{$contentdump}
Navigatie:

Code: Select all

{if $lang == 'nl'}
{menu template='minimal_menu_jquery' start_element="2.1" show_root_siblings="1" number_of_levels='1'}
 {elseif $lang == 'd'}
{menu template='minimal_menu_jquery' start_element="4.1" show_root_siblings="1" number_of_levels='1'}
 {else}
{menu template='minimal_menu_jquery' start_element="3.1" show_root_siblings="1" number_of_levels='1'}
{/if}
Breadcrumbs:

Code: Select all

{if $lang == 'nl'}
         {breadcrumbs starttext='U bent hier' root='start' delimiter='>'} <b>- {$blog_title}</b>
 {elseif $lang == 'd'}
         {breadcrumbs starttext='Sie sind hier' root='anfang' delimiter='>'} <b>- {$blog_title}</b>
 {else}
        {breadcrumbs starttext='You are here' root='home' delimiter='>'} <b>- {$blog_title}</b>
{/if}
Met de Smarty vergelijking kun je nog veel meer meenemen...

Per blog artikel kun je een custom URL instellen, dan krijg je:
http://buispost.eu/nl/blog/oude-buispost-advertenties
http://buispost.eu/e/blog/old-pneumatic-tube-ads
http://buispost.eu/d/blog/alte-rohrpost-anzeigen

grt. Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
iStevo

Re: Meertalige website maken met standaard CMS Made Simple f

Post by iStevo »

zal discussie hier verderzetten omdat dit inderdaad meer te maken heeft met de meertaligheid.


het zal waarschijnlijk wel zo zijn dat de oplossing hierboven staat, ik probeer het te snappen maar dit lukt voorlopig nog niet.

maak ik nu in elke taal een pagina met een interne link of kan het zoals uw 404-sjabloon dat je content voor alle taal op 1 pagina hebt?
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Meertalige website maken met standaard CMS Made Simple f

Post by Rolf »

iStevo wrote:het zal waarschijnlijk wel zo zijn dat de oplossing hierboven staat, ik probeer het te snappen maar dit lukt voorlopig nog niet.
Ik heb er ook lang over na moeten denken hoor ;)

één detailpagina met een aparte html sjabloon, stel deze pagina in als standaard detailpagina in de CGBlog module

verder op de taal pagina's module aanroepen met:
{CGBlog category="nl"}
{CGBlog category="e"}
{CGBlog category="d"}
etc.

De opbouw van de html sjabloon voor deze detailpagina zal inderdaad op dezelfde wijze gaan als bij de 404 pagina. Met de Smarty vergelijking bepaal je afhankelijk van de waarde van $lang welk onderdeel wordt getoond...

Geloof dat ik het ook niet eenvoudiger kan vertellen :-\

Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Meertalige website maken met standaard CMS Made Simple f

Post by Rolf »

Ohw dacht al dat ik wat miste... Dit moet allemaal boven in het detail template van CGBlog:

Code: Select all

{* Verstuur blog titel naar html sjabloon *}
{assign var='blog_title' value=$entry->title}

{* Neem CGBlog categorie over naar html sjabloon *}
{foreach from=$entry->categories item='category'}
   {assign var=lang value=$category.name}
{/foreach}

{* maak correcte canonical link *}
{if isset($entry->canonical)}

 {foreach from=$entry->categories item='category'}
   {assign var=foo value=$category.name}
 {/foreach}

{capture assign='canonical'}{root_url}/{$foo}/blog/{$entry->title|munge_string_to_url|lower}{/capture}

{/if}
Ben alleen bang dat je nu het spoor helemaal zoek gaat raken :-\
Op zich gebeurt er niet zo vreselijk veel, maar als je de basis niet helemaal begrijpt dan is het lastig...
Wellicht iets voor de volgende CMSMS Workshop...

Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Meertalige website maken met standaard CMS Made Simple f

Post by Rolf »

De werkwijze voor een meertalig webblog is voor iemand die hier net mee begint toch wat te veel...
Voor mijn buispost website heb ik het nml. gemaakt in de ultieme vorm, dus inclusief titel overnemen van het artikel en een goed werkende canonical link voor een betere indexering van de artikelen. Deze opties zijn niet altijd noodzakelijk, en hier in deze tutorial waarschijnlijk een beetje te veel...
Ik zal een volgende post maken met daarin alleen de 'basics' die je nodig hebt.

grt. Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Meertalige website maken met standaard CMS Made Simple f

Post by Rolf »

Meertalig weblog met CGBlog module

CGBlog
Maak per gewenste taal een categorie aan, dus bijv. nl, d, e en fr.
Het is niet mogelijk om één artikel aan meerdere categorieën te koppelen.

Om straks de HTML sjabloon aan te passen aan de $lang string gebruiken we de categorie naam als 'trigger'
Dus artikel in categorie nl is een Nederlandstalig artikel en zal dus een Nederlandstalig website layout moeten tonen...
We doen dit door boven in het detail sjabloon van CGBlog te plaatsen:

Code: Select all

{* Pass category name to template *}
{foreach from=$entry->categories item='category'}
   {assign var=lang value=$category.name}
{/foreach}
Hiermee wordt de categorienaam van het artikel gekoppeld aan de string $lang...

HTML Sjabloon / detailpagina
Maak een apart HTML sjabloon aan die alleen gebruikt wordt voor de detailpagina van CGBlog.
Deze detailpagina moet als "Standaard detail-pagina" worden ingesteld onder de tab "Opties" in de CGBlog module.

Afhankelijk van de website/pagina opbouw zul je wat aanpassingen moet maken in het HTML sjabloon. Deze basis hiervan is de $lang string, die bepaald welk onderdeel wordt getoond. Deze komt in dit geval vanuit de CGBlog detailtemplate en niet uit een UDT zoals in de landingpage en 404 pagina.

Bijvoorbeeld de navigatie aanroep:

Code: Select all

{if $lang == 'nl'}
{menu template='minimal_menu' start_element="2.1" show_root_siblings="1" number_of_levels='1'}
 {elseif $lang == 'd'}
{menu template='minimal_menu' start_element="4.1" show_root_siblings="1" number_of_levels='1'}
 {else}
{menu template='minimal_menu' start_element="3.1" show_root_siblings="1" number_of_levels='1'}
{/if}
Of mooie meertalige breadcrumbs:

Code: Select all

{if $lang == 'nl'}
         {breadcrumbs starttext='U bent hier' root='start' delimiter='>'} <b>- {$blog_title}</b>
 {elseif $lang == 'd'}
         {breadcrumbs starttext='Sie sind hier' root='anfang' delimiter='>'} <b>- {$blog_title}</b>
 {else}
        {breadcrumbs starttext='You are here' root='home' delimiter='>'} <b>- {$blog_title}</b>
{/if}
Er hoeft maar één {content} blok worden opgenomen, in de pagina zal hier "niets" in hoeven te staan.

Op de blog pagina's kan per taal de juiste CGBlog categorie worden aangeroepen, met:
website.com/nl/blog >> {CGBlog category="nl"}
website.com/e/blog >> {CGBlog category="e"}
website.com/d/blog >> {CGBlog category="d"}

Voor een Nederlandstalig artikel vink je dus alleen categorie nl aan.
In het Custom URL veld van het artikel kun je nu handmatig een pretty url bepalen, dus bijvoorbeeld:
nl/blog/mijn-artikel-naam
Op de website krijg je dan: website.com/nl/blog/mijn-artikel-naam

Ik geloof dat dit wel de basis handelingen zijn...

grt. Rolf :)
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
iStevo

Re: Meertalige website maken met standaard CMS Made Simple f

Post by iStevo »

Beste Rolf,

Ik ben nu al een paar dagen aan het uitproberen, maar ik snap niet veel van jouw uitleg (sorry daarvoor)

Ik had gehoopt dat ik met het weinige gezond verstand dat ik heb het eventueel zo kon oplossen, maar ik zie weinig verandering.

Code: Select all

{get_browserlanguage}
{process_pagedata}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<__html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>{sitename}</title>
<!-- <link REL="SHORTCUT ICON" HREF="http://www.samvanrossom.com/favicon.ico"> -->
{metadata}
{stylesheet}
</head>
</__body>

       <div id="container_holder">                
        	<div id="content_holder" class="container">
                          <div id="header">{content_image block='header' dir='images/header'}</div>

		          <div id="menu">{if $lang == 'nl'}{menu start_level='2.1'}{else}{menu level='3'}{/if}</div>
 	                  <div id="content">
                                    <div class="content">
                                          {if $lang == 'nl'}
{content}
{else}
{content block="english version"}
{/if}


                          </div>
		         </div>
                        <div id="sam">&nbsp;{global_content name='socialblok'}</div>
                        <div id="footer_holder" class="container">
                                    <div id="footer_copyright">{if $lang == 'nl'}{global_content name='footer-nl'}{else}{global_content name='footer-nl'}{/if}</div>
                                    <div id="footer_links">{global_content name='links'}</div>
                        </div>
                 </div>
         </div>
<__body>
</__html>{get_browserlanguage}
{process_pagedata}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<__html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>{sitename}</title>
<!-- <link REL="SHORTCUT ICON" HREF="http://www.samvanrossom.com/favicon.ico"> -->
{metadata}
{stylesheet}
</head>
</__body>

       <div id="container_holder">                
        	<div id="content_holder" class="container">
                          <div id="header">{content_image block='header' dir='images/header'}</div>

		          <div id="menu">{if $lang == 'nl'}{menu start_level='2.1'}{else}{menu level='3'}{/if}</div>
 	                  <div id="content">
                                    <div class="content">
                                          {if $lang == 'nl'}
{content}
{else}
{content block="english version"}
{/if}


                          </div>
		         </div>
                        <div id="sam">&nbsp;{global_content name='socialblok'}</div>
                        <div id="footer_holder" class="container">
                                    <div id="footer_copyright">{if $lang == 'nl'}{global_content name='footer-nl'}{else}{global_content name='footer-nl'}{/if}</div>
                                    <div id="footer_links">{global_content name='links'}</div>
                        </div>
                 </div>
         </div>
<__body>
</__html>
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Meertalige website maken met standaard CMS Made Simple f

Post by Rolf »

@iStevo
Ik ga er vanuit dat je nog steeds een meertalig CGBlog sjabloon aan het maken bent?

Een paar dingen die me opvallen (afgezien van het feit dat je twee templates hierboven hebt staan)

{get_browserlanguage} hoort niet in het sjabloon
Er hoeft maar één {content} blok worden opgenomen, in de pagina zal hier "niets" in hoeven te staan.
Dan klopt dit dus niet...

Code: Select all

{if $lang == 'nl'}
{content}
{else}
{content block="english version"}
{/if}
Ik geloof toch echt dat alles in de handleiding er correct staat... Lees het nog eens goed stap voor stap door. En begin weer eens bij het begin...

grt. Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
iStevo

Re: Meertalige website maken met standaard CMS Made Simple f

Post by iStevo »

Rolf wrote:@iStevo
Ik ga er vanuit dat je nog steeds een meertalig CGBlog sjabloon aan het maken bent?
Sorry, ben eigenlijk voorlopig van blog afgestapt en probeer ik een oplossing te zoeken om menu bij juiste landstaal te hebben in een standaard pagina

zo wil ik

website.com/nl/gallery >interne link naar website.com/gallery
website.com/en/gallery > interne link naar website.com/gallery

en dan wil ik in website.com/gallery eenmalige de gallery hebben en van hieruit dat menu/footer van een taal kan gezien worden.

Anders zit je met eventueel met

website.com/nl/gallery-nl
website.com/nl/gallery-en


maken mijn woorden wat duidelijk wat ik bedoel of moet ik het beter verwoorden?

Grt Stevo
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Meertalige website maken met standaard CMS Made Simple f

Post by Rolf »

Op mijn weblog heb ik een nieuwe MLE aanpak staan. Het kan volgens mij echt niet makkelijker...
https://www.cmscanbesimple.org/blog/mul ... ade-simple

Grt. Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
pedes
Power Poster
Power Poster
Posts: 840
Joined: Tue Jan 27, 2009 11:47 am

Re: Meertalige website maken met standaard CMS Made Simple f

Post by pedes »

rolf in uw : Andere aanpak, lees https://www.cmscanbesimple.org/blog/multil ... ade-simple

ik krijg dit niet werkend... of wellicht zie ik iets over het hoofd...
als ik op een nederlandstalige pagina zit en ik ga met de flag buttons naar vb de engelse versie, dan kom ik steeds weer in de engelse home terecht en niet op de gelijkaardig pagina in het engels ... of is dit niet de bedoeling ?

uw eerste meertalige versie gebruikte ik al en toen was er de mogelijkheid om via een contentlijn een pagina toe te kennen in de andere taal. nu gaat dit automatisch vermoed ik ?

Enig idee wat ik zou over het hoofd hebben gezien ?
CMSMS versie is 1.11.5 6

grtz
Peter
Last edited by pedes on Tue May 14, 2013 10:00 am, edited 2 times in total.
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Meertalige website maken met standaard CMS Made Simple f

Post by Rolf »

Hoi Peter,

Dat klopt, de aanpak op mijn blog is op de eenvoudigste manier gemaakt. Een klik op de vlag gaat naar de homepage van de andere taal.
Wil je dit veranderen dan zul je per taal een extra content block moeten maken zoals hier boven beschreven. De inhoud zal dan bijv. de pagina alias moeten zijn, je zult de cms_selflink in het sjabloon hier op moeten aanpassen.

grt. Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
Post Reply

Return to “Tips en Trucs”