Yii 1.1: Multilanguage Lorem Ipsum Text Generator

2 followers

Taking futher the idea from Piotr Masełkowski - http://www.yiiframework.com/extension/elipsum/ here's how to generate multilanguage Lorem Ipsum text. This example uses English and Bulgarian sample paragraphs. Create a class in /protected/components/LoremIpsum.php. Wall of text incoming wohoo...

/**
 * Get lipsum text from consecutive chapters
 * @example <code>echo LoremIpsum::text('en')</code>
 * @author Yasen Petrov (extended from Piotr Masełkowski - http://www.yiiframework.com/extension/elipsum/)
 */
class LoremIpsum
{
    private static $text = array(
        'en'=>array(
            'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sed libero purus. Sed ac metus est, non rutrum elit. Fusce ac nibh vel lectus cursus lobortis at eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed euismod tincidunt nisi quis consectetur. Nunc venenatis mi vitae nibh placerat nec congue odio semper. Nulla felis elit, laoreet sit amet vehicula sit amet, varius eget elit. Fusce sed mi eu turpis auctor tincidunt a sed augue. Phasellus in nibh nisi, ut ultricies eros. Quisque eget libero in metus suscipit pulvinar. Mauris placerat pretium nunc vitae consequat. Phasellus ac arcu nec lorem hendrerit semper. Aenean sit amet nunc ac mi ornare vestibulum. Nunc sit amet vehicula leo.',
            'Donec tincidunt leo id augue auctor varius. Vivamus consectetur pretium tristique. Cras tortor tellus, adipiscing sed ornare a, aliquam sed quam. In hac habitasse platea dictumst. Morbi ultricies volutpat tincidunt. Maecenas quis neque nibh, at iaculis magna. Phasellus sagittis aliquam quam vel fermentum. In consequat fermentum leo in euismod. Aliquam iaculis adipiscing arcu id gravida. Cras varius risus eget lacus sollicitudin iaculis vel et erat.',
            'Mauris in augue eget mi pellentesque dignissim. Donec vel erat ac turpis mollis tristique. Aliquam sit amet lacus augue, sed hendrerit risus. Proin sit amet arcu ante. Aenean consequat lorem sed mauris bibendum volutpat. Etiam rutrum consequat libero vestibulum ultricies. Suspendisse commodo auctor tristique.',
            'Praesent tempus enim eu dolor dignissim vel semper nisl consectetur. Nulla facilisi. Maecenas eget leo sed justo pharetra pretium. Cras venenatis condimentum urna vel mollis. Etiam dolor augue, iaculis non condimentum vitae, eleifend at turpis. Aenean pharetra, dolor nec vestibulum sodales, dui eros suscipit erat, non facilisis purus nunc vitae ligula. Ut et tellus est. Praesent ut sapien est. Nulla in felis justo. Curabitur posuere, mauris vitae elementum mollis, ipsum quam feugiat risus, sagittis pretium tellus neque consequat velit. Praesent ipsum tortor, varius vel varius non, congue a risus. Nulla mi eros, luctus sed tristique sodales, tempus in turpis. Cras quis sollicitudin nisi. Donec venenatis condimentum dapibus. Proin scelerisque elit nec ipsum pulvinar laoreet.',
            'Suspendisse ornare aliquam urna, quis placerat neque molestie non. Praesent vitae ligula eros, sed volutpat urna. Etiam fringilla ipsum vel turpis consequat imperdiet luctus nunc fringilla. Suspendisse odio libero, posuere porta pulvinar quis, lacinia vel neque. Nulla facilisi. Vivamus sed pulvinar ipsum. Vivamus auctor suscipit purus eget rutrum. Etiam vel hendrerit mauris.'
        ),
        // Lorem Ipsum in Bulgarian - idea from http://www.riznlog.com/o-nerazumni/
        'bg'=>array(
            'Внимавайте вие, читатели и слушатели, роде български, които обичате и вземате присърце своя род и своето българско отечество и желаете да разберете и знаете известното за своя български род и за вашите бащи, прадеди и царе, патриарси и светии как изпърво са живели и прекарвали. За вас е потребно и полезно да знаете известното за делата на вашите бащи, както знаят всички други племена и народи своя род и език, имат история и всеки грамотен от тях знае, разказва и се гордее със своя род и език.',
            'Така и аз ви написах подред това, което е известно за вашия род и език. Четете и знайте, за да не бивате подигравани и укорявани от други племена и народи. Твърде много обикнах българския род и отечество и много труд употребих да събирам от различни книги и истории, докато събрах и обединих историята на българския род в тая книжка за ваша полза и похвала. Написах я за вас, които обичате своя род и българското отечество и обичате да знаете за своя род и език. Преписвайте тая историйка и платете, нека ви я препишат, които умеят да пишат, и пазете я да не изчезне!',
            'Но някои не обичат да знаят за своя български род, а се обръщат към чужда култура и чужд език и не се грижат за своя български език, но се учат да четат и говорят по гръцки и се срамуват да се нарекат българи. О неразумни юроде! Защо се срамуваш да се назовеш българин и не четеш, и не говориш на своя език? Или българите не са имали царство и държава? Толкова години са царували и са били славни и прочути по цялата земя и много пъти са взимали данък от силни римляни и от мъдри гърци. И царе, и крале са им давали своите царски дъщери за съпруги, за да имат мир и любов с българските царе. От целия славянски род най-славни са били българите, първо те са се нарекли царе, първо те са имали патриарх, първо те са се кръстили, най-много земя те завладели. Така от целия славянски род били най-силни и най-почитани и първите славянски светци и просияли от българския род и език, както и за това подред написах в тая история. И за това българите имат свидетелство от много истории, защото всичко е истина за българите, както вече и споменах.',
            'Но поради що ти, глупави човече, се срамуваш от своя род и се влачиш по чужд език? Но, рече, гърците са по-мъдри и по-културни, а българите са прости и глупави и нямат изтънчени думи. Затова, казва, по-добре да се присъединим към гърците. Но виж, неразумни, от гърците има много народи по-мъдри и по-славни. Оставя ли някой грък своя език и учение и род, както ти, безумни, оставяш и нямаш никакви придобивки от гръцката мъдрост и изтънченост? Ти, българино, не се мами, знай своя род и език и се учи на своя език! По-добра е българската простота и незлобливост. Простите българи в своя дом приемат и гощават всекиго и даряват милостиня на ония, които просят от тях. А мъдрите и културни (гърци) никак не правят това, но и отнемат от простите и грабят несправедливо и повече грях, а не полза ще получат от своята мъдрост и култура. Или се срамуваш от своя род и език пред учените и търговците и славните на земята, защото българите са прости и няма от тях много търговци и грамотни, и вещи, и знаменити на земята в днешно време, но повечето от тях са прости орачи, копачи, овчари и прости занаятчии? Аз ще ти отговоря накратко за това.От Адам до Давид и праведния Йоаким, Йосиф годеник (на света Богородица), колкото праведни и свети пророци и патриарси имаше и се нарекоха велики на земята и пред бога, никой от тях не беше търговец или прехитър и горделив човек, както сегашните хитреци които ти имаш на почит и им се чудиш и се влачиш по техния език и обичай. Но всички тия праведни праотци са били земеделци и овчари и били богати с добитък и земни плодове, и били прости и незлобливи на земята. И самият Христос слезе и заживя в дома на простия и бедния Йосиф. Виж как бог обича повече простите и незлобливи орачи и овчари и най-първо тях е възлюбил и прославил на земята, а ти се срамуваш, защото българите са прости и неизкусни, и овчари, и орачи, оставяш своя род и език, хвалиш чуждия език и се влачиш по техния обичай.',
            'Аз видях, че много българи постъпват така и отиват по чужди език и обичай, а своя хулят. Затова тук написах за ония отцеругатели, които не обичат своя род и език; а за вас, които обичате да знаете и слушате своя род и език, написах да знаете, че нашите български царе, патриарси и архиереи не са били без летописни книги и кондики. Толкова години са царували и господствували на земята и са имали царски истории и архиерейски кондики, знания за всичко и за много български светци, жития и служби. Но в онова време не е имало славянски печатници, а хората от небрежност не преписвали. На малко места се намирали такива книги. А когато турците заели българската земя ненадейно, те погазили и изгорили черквите, манастирите, царските и архиерейските дворци. В това време хората бягали от турския страх и ужас само да запазят своя живот и в това люто време загинали ония царски истории и кондики за българските патриарси и архиереи и на много светци житията и службите. И днес няма тия летописни книги, които са били пространно написани за нашия народ и за българските царе.',
            'Аз прочетох много и премного книги и много време търсих прилежно, но никак не можах да намеря. В много ръкописи и печатни истории по малко, рядко и накратко се намира. Някой си Маврубир, латинец, превел от гръцки една кратка история за българските царе, но съвсем кратко – едва се намериха техните имена и кой след кого е царувал. Самият този Маврубир е написал: “Така казват гърците поради завистта и ненавистта, която имали към българите. Не са описали храбрите постъпки и славните дела на българския народ и царе, накратко и противното писали, както им било удобно, за да не се срамуват, че българите много пъти са ги побеждавали и са взимали от тях данък.” От този Маврубир и от много други истории събрах за много време същественото, по-разпространих и съставих тази историйка. При все че се намира в много книги по малко и накратко писано за българите, но не може всеки човек да има тия книги, да ги чете и да ги помни, затова разсъдих и събрах всичко в едно.',
        )
    );
 
    public static function text($lang='en')
    {
        $text=current(self::$text[$lang]);
        if(!next(self::$text[$lang]))
            reset(self::$text[$lang]);
        return $text;
    }
}

And finally get the consecutive texts as:

echo '<p>'.LoremIpsum::text().'</p>';
echo '<p>'.LoremIpsum::text().'</p>';
echo '<p>'.LoremIpsum::text().'</p>';
echo '<p>'.LoremIpsum::text('en').'</p>'; // putting en as a param though it's not really required as 'en' the default lang
echo '<p>'.LoremIpsum::text().'</p>';
echo '<p>'.LoremIpsum::text().'</p>';
echo '<p>'.LoremIpsum::text('bg').'</p>';
echo '<p>'.LoremIpsum::text('bg').'</p>';
echo '<p>'.LoremIpsum::text('bg').'</p>';

Total 2 comments

#17437 report it
yasen at 2014/06/11 11:03am
Maybe

I also wondered if such code is needed. If you would do this action once, then yes it takes less time to Google some Lorem ipsum text. But when people have to do some stuff over and over they think of some sort of automation. The idea here is to make this text generation multilingual. In this scenario I use Cyrillic letters. Others may want to have/test text with umlauts.

#17434 report it
Trejder at 2014/06/11 08:29am
?

Do we really need a class or an extension for doing something like this? :] Aren't we going crazy too much? :]

I really prefer the OOP idea, but I think, it would take me much less time and effort to copy-paste any lorem ipsum text, that I'm able to find with Google within 3-5 seconds.

Leave a comment

Please to leave your comment.

Write new article