|| Create Your Identity

সংযোগ.কম একটি অনলাইন প্লাটফর্ম

সংযোগ.কম হল  ফ্রি ওয়েবসাইট তৈরি করার একটি নতুন অনলাইন প্লাটফর্ম। সব ধরনের ইউযার তার প্রয়োজনয়িতা অনুযায়ী বিভিন্ন ফিচার পাবে। যেমন একজন যদি পারসন হিসাবে সংযোগ.কমে রেজিস্ট্রেশন করে তবে তার জন্য একটি ডায়নামিক সাইট তৈরি হবে। সে তার সাইটে প্রোফাইল, তার প্রোটফিলিও বা এক্সপ্রিয়েন্স, তার নিজস্ব ব্লগ (আর্টিকেল, টিউটরিয়াল,Question)এবং তার লোকেশন দিতে পারবে। সে cv বিল্ডার এর মাধ্যমে একাধিক cv তৈরি, সংশোধন এবং যে কোন কোম্পানি ইমেইলে এপ্লাই করতে পারবে। আবার যদি শপ ওনার হিসেবে রেজিস্ট্রেশন করে তবে তার সাইটে তার প্রোফাইল, ই-কমার্স সাইটের মতো প্রোডাক্ট ডিসপ্লে করা, প্রোডাক্ট বিক্রি করা, বায়ার এর সাথে যোগাযোগ করা, শপ ব্রাঞ্চ স্থাপন করা,  গোগল মেপসহ কনট্রাক ফর্ম স্থাপন করা ইত্যাদি আরও আনেক  ফিচার পাবে। ।

অন্যদিকে সংযোগ.কম হল  শপিং মল, কমপ্লেক্স, দোকান, কোম্পানি, স্কুল, কলেজ, বিশ্ববিদ্যালয়, হাসপাতাল, ব্যাংক, পরিবহন, মিডিয়া এবং বাংলাদেশের বিউটিপ্লেস সহ বিশাল সমৃদ্ধ সংগ্রহ। সংযোগ.কম থেকে যে কেউ বাংলাদেশের শপিং মল বা কমপ্লেক্স, যেকোনো  প্রকারের প্রতিস্টান বা অর্গানাইজেশন , হাসপাতাল, ব্যাংক এবং বাংলাদেশের বিউটিপ্লেস এর  ইনফরমেশন ও লোকেশন পেতে পারবে।

 এছাড়া বাংলাদেশের বিভিন্ন জব সাইট (বিদিজবস, প্রথমআলোজবস, jobsA1ইত্যাদি) এর জব ইনফরমেশন একসাথে পাওয়া যাবে । আবার যে কোন  কোম্পানি ও অর্গানাইজেশন এখানে জব পোস্ট করতে পারবে। - Create Your Account  


Saidul Haque
Web Developer

Articles: Step by step website Internationalization or Multi language in cakePHP 2+

Category: CakePHP
Tag: Internationalization Multi language cakephp
Updated: Sep 02, 2013 05:41PM

At now website Internationalization or Multi language very essential part in web development. In cakephp, how can implement website Internationalization or Multi language, it will discus in this articles

 

First, it’s important to understand some terminology. Internationalization refers to the ability of an application to be localized. The term localization refers to the adaptation of an application to meet specific language (or culture) requirements (i.e., a “locale”). Internationalization and localization are often abbreviated as i18n and l10n respectively; 18 and 10 are the number of characters between the first and last character.

Internationalizing Your Application

There are only a few steps to go from a single-language application to a multi-lingual application,

 

Step1. How can  Cakephp catch string which need Multilanguage?

 The first of which is to make use of the __() function in your code. Below is an example of some code for a single-language application:

<h2>Posts</h2>

To internationalize your code, all you need to do is to wrap strings in __() like so:

<h2><?php echo __('Posts'); ?></h2>

 

 

 

Step 2: Create pot file for insert string in different language.

With your code ready to be multilingual, the next step is to create your pot file, which is the template for all translatable strings in your application. To generate your pot file(s), all you need to do is run the i18n console task, which will look for where you’ve used a translate function in your code and generate your pot file(s) for you. You can and should re-run this console task any time you change the translations in your code.

 

The pot file(s) themselves are not used by CakePHP, they are the templates used to create or update your po files, which contain the translations. Cake will look for your po files in the following location:

/app/Locale//LC_MESSAGES/.po

 

The default domain is ‘default’, therefore your locale folder would look something like this:

/app/Locale/eng/LC_MESSAGES/default.po (English)

/app/Locale/fra/LC_MESSAGES/default.po (French)

 

 

Step 3: Add below code in app/Config/routes.php

 

Router::connect('/:language/:controller/:action/*',

                      array(),

                      array('language' => 'eng|fre'));

 

Router::connect('/:language/:controller',

                      array('action' => 'index'),

                      array('language' => 'eng|fre'));           

 

Router::connect('/:language',

                      array('controller' => 'welcome', 'action' => 'index'),

                      array('language' => 'eng|fre'))

 

Step 4:  Set default language in app/Config/core.php

 

Configure::write('Config.language', 'eng');

 

Step 5: create a helper file which  named MyHtmlHelper.php

Insert below code in app/View/Helper/MyHtmlHelper.php

 App::uses('HtmlHelper', 'View/Helper');

class MyHtmlHelper extends HtmlHelper {

                public function url($url = null, $full = false) {

        if(!isset($url['language']) && isset($this->params['language'])) {

          $url['language'] = $this->params['language'];

        }

        return parent::url($url, $full);

   }

}

 

Step 6: add helper and Cookie component in app/Controller/AppController.php

 

        public $components = array('Cookie','Session');

                //set an alias for the newly created helper: Html<->MyHtml

         public $helpers = array('Html' => array('className' => 'MyHtml'));

 

Step 7: add a method in app/Controller/AppController.php

 

private function _setLanguage() {

        //if the cookie was previously set, and Config.language has not been set

        //write the Config.language with the value from the Cookie

        if ($this->Cookie->read('lang') && !$this->Session->check('Config.language')) {

            $this->Session->write('Config.language', $this->Cookie->read('lang'));

        }

        //if the user clicked the language URL

        else if (isset($this->params['language'])) {

            if ($this->params['language'] != $this->Session->read('Config.language')) {

                //then update the value in Session and the one in Cookie

                $this->Session->write('Config.language', $this->params['language']);

                $this->Cookie->write('lang', $this->params['language'], false, '20 days');

            }

        }

    }

Step 7: call  _setLanguage(); under  beforeFilter() in  app/Controller/AppController.php

 

public function beforeFilter() {

          $this->_setLanguage();

        }

 

Step 8:  add the links to the languages:

//Step 5: app/View/...

echo $this->Html->link('English', array('language'=>'eng'));

echo $this->Html->link('Français', array('language'=>'fre'));

 

Thanks

see the live example http://socialbusinesspedia.com/

 

 

comments powered by Disqus