From 7e884b51284e83b1604c9d029d3845e77e76d802 Mon Sep 17 00:00:00 2001
From: tof <>
Date: Mon, 27 Aug 2007 07:16:27 +0000
Subject: Add Internationalization to Blog-Tutorial
---
demos/blog-tutorial/protected/application.xml | 14 +++++++---
.../protected/common/BlogTutorialGlobalization.php | 31 ++++++++++++++++++++++
.../blog-tutorial/protected/layout/MainLayout.php | 25 ++++++++++++++++-
.../blog-tutorial/protected/layout/MainLayout.tpl | 12 ++++++++-
4 files changed, 76 insertions(+), 6 deletions(-)
create mode 100755 demos/blog-tutorial/protected/common/BlogTutorialGlobalization.php
(limited to 'demos/blog-tutorial')
diff --git a/demos/blog-tutorial/protected/application.xml b/demos/blog-tutorial/protected/application.xml
index 5eac200b..2b92159f 100644
--- a/demos/blog-tutorial/protected/application.xml
+++ b/demos/blog-tutorial/protected/application.xml
@@ -2,12 +2,18 @@
-
-
-
+
+
+
+
+
+
-
+
+
+
+
\ No newline at end of file
diff --git a/demos/blog-tutorial/protected/common/BlogTutorialGlobalization.php b/demos/blog-tutorial/protected/common/BlogTutorialGlobalization.php
new file mode 100755
index 00000000..70435e34
--- /dev/null
+++ b/demos/blog-tutorial/protected/common/BlogTutorialGlobalization.php
@@ -0,0 +1,31 @@
+Application->OnBeginRequest[] = array($this, 'beginRequest');
+ }
+
+ public function beginRequest($sender, $param)
+ {
+ if(null == ($culture=$this->Request['lang']))
+ {
+ if(null !== ($cookie=$this->Request->Cookies['lang']))
+ $culture = $cookie->getValue();
+ }
+
+ if(is_string($culture))
+ {
+ $info = new CultureInfo();
+ if($info->validCulture($culture))
+ {
+ $this->setCulture($culture);
+ $this->Response->Cookies[] = new THttpCookie('lang',$culture);
+ }
+ }
+ }
+}
+
+?>
\ No newline at end of file
diff --git a/demos/blog-tutorial/protected/layout/MainLayout.php b/demos/blog-tutorial/protected/layout/MainLayout.php
index 253d6c03..4b5890de 100644
--- a/demos/blog-tutorial/protected/layout/MainLayout.php
+++ b/demos/blog-tutorial/protected/layout/MainLayout.php
@@ -1,7 +1,30 @@
languages->DataSource = TPropertyValue::ensureArray($this->Application->Parameters['languages']);
+ $this->languages->dataBind();
+ }
+
+ public function languageLinkCreated($sender, $param)
+ {
+ $item = $param->Item;
+ if($item->ItemType == TListItemType::Item || $item->ItemType == TListItemType::AlternatingItem)
+ {
+ $params = $this->Request->toArray();
+ $params['lang'] = $sender->DataKeys[$item->ItemIndex];
+ unset($params[$this->Request->ServiceID]);
+ $url = $this->Service->ConstructUrl($this->Service->RequestedPagePath, $params);
+ $item->link->NavigateUrl = $url;
+ if($this->Application->Globalization->Culture == $params['lang'])
+ $item->link->CssClass="active";
+ }
+ }
}
?>
\ No newline at end of file
diff --git a/demos/blog-tutorial/protected/layout/MainLayout.tpl b/demos/blog-tutorial/protected/layout/MainLayout.tpl
index 1ee83bae..f2bc1f96 100644
--- a/demos/blog-tutorial/protected/layout/MainLayout.tpl
+++ b/demos/blog-tutorial/protected/layout/MainLayout.tpl
@@ -24,7 +24,17 @@
-
+
+
+ Available Languages:
+
+
+ - DataItem %> />
+
+
+
+
+
--
cgit v1.2.3
|