[webbeans-commits] Webbeans SVN: r820 - doc/trunk/reference/zh-TW.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Wed Jan 7 21:40:29 EST 2009


Author: tchuang
Date: 2009-01-07 21:40:29 -0500 (Wed, 07 Jan 2009)
New Revision: 820

Modified:
   doc/trunk/reference/zh-TW/Author_Group.po
   doc/trunk/reference/zh-TW/Book_Info.po
   doc/trunk/reference/zh-TW/decorators.po
   doc/trunk/reference/zh-TW/ee.po
   doc/trunk/reference/zh-TW/events.po
   doc/trunk/reference/zh-TW/example.po
   doc/trunk/reference/zh-TW/extend.po
   doc/trunk/reference/zh-TW/injection.po
   doc/trunk/reference/zh-TW/interceptors.po
   doc/trunk/reference/zh-TW/intro.po
   doc/trunk/reference/zh-TW/master.po
   doc/trunk/reference/zh-TW/next.po
   doc/trunk/reference/zh-TW/producermethods.po
   doc/trunk/reference/zh-TW/ri-spi.po
   doc/trunk/reference/zh-TW/ri.po
   doc/trunk/reference/zh-TW/scopescontexts.po
   doc/trunk/reference/zh-TW/specialization.po
   doc/trunk/reference/zh-TW/stereotypes.po
   doc/trunk/reference/zh-TW/xml.po
Log:
translations updated

Modified: doc/trunk/reference/zh-TW/Author_Group.po
===================================================================
--- doc/trunk/reference/zh-TW/Author_Group.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/Author_Group.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -8,7 +8,7 @@
 "Project-Id-Version: Author_Group\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-08 09:26+1000\n"
+"PO-Revision-Date: 2009-01-08 09:27+1000\n"
 "Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
 "Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -29,12 +29,14 @@
 "<jobtitle>Web Beans (JSR-299) specification lead</jobtitle> <orgname>Red Hat "
 "Middleware LLC</orgname>"
 msgstr ""
+"<jobtitle>Web Beans (JSR-299) specification lead</jobtitle> <orgname>Red Hat "
+"Middleware LLC</orgname>"
 
 #. Tag: author
 #: Author_Group.xml:12
 #, no-c-format
 msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
-msgstr ""
+msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
 
 #. Tag: affiliation
 #: Author_Group.xml:15
@@ -43,22 +45,24 @@
 "<jobtitle>Web Beans (JSR-299) Reference Implementation lead </jobtitle> "
 "<orgname>Red Hat Middleware LLC</orgname>"
 msgstr ""
+"<jobtitle>Web Beans (JSR-299) Reference Implementation lead </jobtitle> "
+"<orgname>Red Hat Middleware LLC</orgname>"
 
 #. Tag: othercredit
 #: Author_Group.xml:21
 #, no-c-format
 msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
-msgstr ""
+msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
 
 #. Tag: contrib
 #: Author_Group.xml:24 Author_Group.xml:29
 #, no-c-format
 msgid "Italian Translation"
-msgstr ""
+msgstr "義大利文翻譯"
 
 #. Tag: othercredit
 #: Author_Group.xml:26
 #, no-c-format
 msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
-msgstr ""
+msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
 

Modified: doc/trunk/reference/zh-TW/Book_Info.po
===================================================================
--- doc/trunk/reference/zh-TW/Book_Info.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/Book_Info.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,23 +1,26 @@
+# translation of Book_Info.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: Book_Info\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 09:34+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: Book_Info.xml:4
 #, no-c-format
 msgid "Introduction to Web Beans"
-msgstr ""
+msgstr "Web Beans 序言"
 
 #. Tag: subtitle
 #: Book_Info.xml:5
@@ -25,4 +28,5 @@
 msgid ""
 "The new Java standard for dependency injection and contextual state "
 "management"
-msgstr ""
+msgstr "依賴注入(dependency injection)與狀態管理(contextual state management)的新 Java 標準"
+

Modified: doc/trunk/reference/zh-TW/decorators.po
===================================================================
--- doc/trunk/reference/zh-TW/decorators.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/decorators.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,23 +1,26 @@
+# translation of decorators.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: decorators\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 12:39+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: decorators.xml:4
 #, no-c-format
 msgid "Decorators"
-msgstr ""
+msgstr "裝飾器(Decorators)"
 
 #. Tag: para
 #: decorators.xml:6
@@ -30,7 +33,7 @@
 "However, by nature, interceptors are unaware of the actual semantics of the "
 "events they intercept. Thus, interceptors aren't an appropriate tool for "
 "separating business-related concerns."
-msgstr ""
+msgstr "呼叫攔截器(Interceptors)是個用來擷取和區分與型別系統<emphasis>垂直</emphasis>的相關問題的強大方式。任何攔截器皆可攔截任何 Java 類型的調用(invocation)。這使它們適用於解決涉及技術上的問題,例如交易管理和安全性。不過,就一般來講,攔截器並不會知道它們所攔截的事件之實際 語。因此,攔截器並不適合作為一個區分涉及商業問題的工具。意"
 
 #. Tag: para
 #: decorators.xml:14
@@ -42,13 +45,13 @@
 "a perfect tool for modeling some kinds of business concerns. It also means "
 "that a decorator doesn't have the generality of an interceptor. Decorators "
 "aren't able to solve technical concerns that cut across many disparate types."
-msgstr ""
+msgstr "<emphasis>裝飾器(decorators)</emphasis>則是相反的。裝飾器只會針對於特定 java 介面來攔截調用,因此它知道該介面的所有語意。這使得裝飾器適用於模擬涉及商業上的問題。同時這也代表裝飾器並沒有攔截器的普遍性。裝飾器無法解決涉及多種不同類型的技術問題。"
 
 #. Tag: para
 #: decorators.xml:22
 #, no-c-format
 msgid "Suppose we have an interface that represents accounts:"
-msgstr ""
+msgstr "假設我們有個顯示帳號的介面:"
 
 #. Tag: programlisting
 #: decorators.xml:24
@@ -61,6 +64,12 @@
 "    public void deposit(BigDecimal amount);\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public interface Account {\n"
+"    public BigDecimal getBalance();\n"
+"    public User getOwner();\n"
+"    public void withdraw(BigDecimal amount);\n"
+"    public void deposit(BigDecimal amount);\n"
+"}]]>"
 
 #. Tag: para
 #: decorators.xml:26
@@ -70,7 +79,7 @@
 "literal> interface. However, we have a common legal requirement that, for "
 "any kind of account, large transactions must be recorded by the system in a "
 "special log. This is a perfect job for a decorator."
-msgstr ""
+msgstr "我們的系統中會有幾個不同的 Web Bean 實做 <literal>Account</literal> 介面。不過,我們有個法律上的統一規定需求,那就是不管是任何哪種類型的帳號,大型的交易都必須被系統記錄於一個特殊的日誌中。這是一項適合裝飾器的工作。"
 
 #. Tag: para
 #: decorators.xml:32
@@ -78,7 +87,7 @@
 msgid ""
 "A decorator is a simple Web Bean that implements the type it decorates and "
 "is annotated <literal>@Decorator</literal>."
-msgstr ""
+msgstr "裝飾器(decorator)是個單純的 Web Bean,它可實做它所裝飾的類型並且會被標記為 <literal>@Decorator</literal>。"
 
 #. Tag: programlisting
 #: decorators.xml:35
@@ -108,6 +117,29 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator \n"
+"        implements Account {\n"
+"    \n"
+"    @Decorates Account account;\n"
+"    \n"
+"    @PersistenceContext EntityManager em;\n"
+"    \n"
+"    public void withdraw(BigDecimal amount) {\n"
+"        account.withdraw(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedWithdrawl(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void deposit(BigDecimal amount);\n"
+"        account.deposit(amount);\n"
+"        if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+"            em.persist( new LoggedDeposit(amount) );\n"
+"        }\n"
+"    }\n"
+"    \n"
+"}]]>"
 
 #. Tag: para
 #: decorators.xml:37
@@ -116,13 +148,13 @@
 "Unlike other simple Web Beans, a decorator may be an abstract class. If "
 "there's nothing special the decorator needs to do for a particular method of "
 "the decorated interface, you don't need to implement that method."
-msgstr ""
+msgstr "和其它單純的 Web Bean 不同的是,裝飾器可能會是個抽象類別(abstract class)。若裝飾器無須為被裝飾之介面的特定 method 進行任何特殊動作的話,您便無須實做該 method。"
 
 #. Tag: title
 #: decorators.xml:43
 #, no-c-format
 msgid "Delegate attributes"
-msgstr ""
+msgstr "Delegate(類別;表示委派)屬性"
 
 #. Tag: para
 #: decorators.xml:45
@@ -132,7 +164,7 @@
 "binding types of the delegate attribute determine which Web Beans the "
 "decorator is bound to. The delegate attribute type must implement or extend "
 "all interfaces implemented by the decorator."
-msgstr ""
+msgstr "所有的裝飾器都有個 <emphasis>delegate 屬性</emphasis>。delegate 屬性的類型以及綁定類型可斷定裝飾器應綁定至哪些 Web Bean。delegate 屬性類型必須實做或是延伸裝飾器所實做的所有介面。"
 
 #. Tag: para
 #: decorators.xml:50
@@ -140,13 +172,13 @@
 msgid ""
 "This delegate attribute specifies that the decorator is bound to all Web "
 "Beans that implement <literal>Account</literal>:"
-msgstr ""
+msgstr "下列 delegate 屬性指出裝飾器已綁定至所有實做 <literal>Account</literal> 的 Web Bean:"
 
 #. Tag: programlisting
 #: decorators.xml:53
 #, no-c-format
 msgid "<![CDATA[@Decorates Account account;]]>"
-msgstr ""
+msgstr "<![CDATA[@Decorates Account account;]]>"
 
 #. Tag: para
 #: decorators.xml:55
@@ -154,31 +186,31 @@
 msgid ""
 "A delegate attribute may specify a binding annotation. Then the decorator "
 "will only be bound to Web Beans with the same binding."
-msgstr ""
+msgstr "Delegate 屬性可指定一個 binding annotation(綁定註解)。如此一來裝飾器便只會綁定至含有相同 binding 的 Web Bean。"
 
 #. Tag: programlisting
 #: decorators.xml:58
 #, no-c-format
 msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
-msgstr ""
+msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
 
 #. Tag: para
 #: decorators.xml:60
 #, no-c-format
 msgid "A decorator is bound to any Web Bean which:"
-msgstr ""
+msgstr "一個裝飾器會綁定至任何符合以下條件的 Web Bean:"
 
 #. Tag: para
 #: decorators.xml:64
 #, no-c-format
 msgid "has the type of the delegate attribute as an API type, and"
-msgstr ""
+msgstr "擁有一個 API 類型的 delegate 屬性類型,以及"
 
 #. Tag: para
 #: decorators.xml:67
 #, no-c-format
 msgid "has all binding types that are declared by the delegate attribute."
-msgstr ""
+msgstr "擁有 delegate 屬性所宣告的所有綁定類型。"
 
 #. Tag: para
 #: decorators.xml:71
@@ -187,13 +219,13 @@
 "The decorator may invoke the delegate attribute, which has much the same "
 "effect as calling <literal>InvocationContext.proceed()</literal> from an "
 "interceptor."
-msgstr ""
+msgstr "裝飾器能夠引動 delegate 屬性,這和透過一個攔截器調用 <literal>InvocationContext.proceed()</literal> 的效果大致相同。"
 
 #. Tag: title
 #: decorators.xml:78
 #, no-c-format
 msgid "Enabling decorators"
-msgstr ""
+msgstr "啟用裝飾器"
 
 #. Tag: para
 #: decorators.xml:80
@@ -201,7 +233,7 @@
 msgid ""
 "We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans."
 "xml</literal>."
-msgstr ""
+msgstr "我們需要在 <literal>web-beans.xml</literal> 中<emphasis>啟用</emphasis>我們的裝飾器。"
 
 #. Tag: programlisting
 #: decorators.xml:83
@@ -211,6 +243,9 @@
 "    <myapp:LargeTransactionDecorator/>\n"
 "</Decorators>]]>"
 msgstr ""
+"<![CDATA[<Decorators>\n"
+"    <myapp:LargeTransactionDecorator/>\n"
+"</Decorators>]]>"
 
 #. Tag: para
 #: decorators.xml:85
@@ -218,7 +253,7 @@
 msgid ""
 "This declaration serves the same purpose for decorators that the "
 "<literal>&lt;Interceptors&gt;</literal> declaration serves for interceptors:"
-msgstr ""
+msgstr "此宣告(declaration)對於裝飾器的目的和 <literal>&lt;Interceptors&gt;</literal> 宣告對於攔截器的目的是相同的:"
 
 #. Tag: para
 #: decorators.xml:90
@@ -226,13 +261,13 @@
 msgid ""
 "it enables us to specify a total ordering for all decorators in our system, "
 "ensuring deterministic behavior, and"
-msgstr ""
+msgstr "它能讓我們為我們系統中所有的裝飾器指定一個全排序(total ordering),以確保確定性的特性,並且"
 
 #. Tag: para
 #: decorators.xml:94
 #, no-c-format
 msgid "it lets us enable or disable decorator classes at deployment time."
-msgstr ""
+msgstr "它讓我們能夠在建置時啟用或停用裝飾器類別。"
 
 #. Tag: para
 #: decorators.xml:98
@@ -240,4 +275,5 @@
 msgid ""
 "Interceptors for a method are called before decorators that apply to that "
 "method."
-msgstr ""
+msgstr "一個 method 的攔截器會於套用至該 method 的裝飾器之前先被調用。"
+

Modified: doc/trunk/reference/zh-TW/ee.po
===================================================================
--- doc/trunk/reference/zh-TW/ee.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/ee.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,23 +1,26 @@
+# translation of ee.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: ee\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 09:47+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: ee.xml:4
 #, no-c-format
 msgid "Java EE integration"
-msgstr ""
+msgstr "Java EE 整合"
 
 #. Tag: para
 #: ee.xml:6
@@ -60,6 +63,15 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Transactional @Interceptor\n"
+"public class TransactionInterceptor {\n"
+"\n"
+"    @Resource Transaction transaction;\n"
+"\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"    \n"
+"}]]>"
 
 #. Tag: programlisting
 #: ee.xml:21
@@ -75,6 +87,15 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@SessionScoped\n"
+"public class Login {\n"
+"\n"
+"    @Current Credentials credentials;\n"
+"    @PersistenceContext EntityManager userDatabase;\n"
+"    \n"
+"    ...\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: ee.xml:23
@@ -134,6 +155,27 @@
 "            \n"
 "}"
 msgstr ""
+"public class Login extends HttpServlet {\n"
+"\n"
+"    @Current Credentials credentials;\n"
+"    @Current Login login;\n"
+"\n"
+"    @Override\n"
+"    public void service(HttpServletRequest request, HttpServletResponse "
+"response)\n"
+"        throws ServletException, IOException {\n"
+"        credentials.setUsername( request.getAttribute(\"username\") ):\n"
+"        credentials.setPassword( request.getAttribute(\"password\") ):\n"
+"        login.login();\n"
+"        if ( login.isLoggedIn() ) {\n"
+"            response.sendRedirect(\"/home.jsp\");\n"
+"        }\n"
+"        else {\n"
+"            response.sendRedirect(\"/loginError.jsp\");\n"
+"        }\n"
+"    }\n"
+"            \n"
+"}"
 
 #. Tag: para
 #: ee.xml:42
@@ -164,8 +206,7 @@
 #. Tag: para
 #: ee.xml:57
 #, no-c-format
-msgid ""
-"You can even use Web Beans interceptor bindings for Message-Driven Beans."
+msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
 msgstr ""
 
 #. Tag: programlisting
@@ -184,6 +225,17 @@
 "            \n"
 "}"
 msgstr ""
+"@Transactional @MessageDriven\n"
+"public class ProcessOrder implements MessageListener {\n"
+"\n"
+"    @Current Inventory inventory;\n"
+"    @PersistenceContext EntityManager em;\n"
+"\n"
+"    public void onMessage(Message message) {\n"
+"        ...\n"
+"    }\n"
+"            \n"
+"}"
 
 #. Tag: para
 #: ee.xml:61
@@ -242,6 +294,12 @@
 "    <myapp:OrderProcessor/>    \n"
 "</Queue>]]>"
 msgstr ""
+"<![CDATA[<Queue>\n"
+"    <destination>java:comp/env/jms/OrderQueue</destination>\n"
+"    <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
+"connectionFactory>\n"
+"    <myapp:OrderProcessor/>    \n"
+"</Queue>]]>"
 
 #. Tag: programlisting
 #: ee.xml:88
@@ -254,6 +312,12 @@
 "    <myapp:StockPrices/>    \n"
 "</Topic>]]>"
 msgstr ""
+"<![CDATA[<Topic>\n"
+"    <destination>java:comp/env/jms/StockPrices</destination>\n"
+"    <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
+"connectionFactory>\n"
+"    <myapp:StockPrices/>    \n"
+"</Topic>]]>"
 
 #. Tag: para
 #: ee.xml:90
@@ -279,6 +343,14 @@
 "    orderSender.send(msg);\n"
 "}"
 msgstr ""
+"@OrderProcessor QueueSender orderSender;\n"
+"@OrderProcessor QueueSession orderSession;\n"
+"\n"
+"public void sendMessage() {\n"
+"    MapMessage msg = orderSession.createMapMessage();\n"
+"    ...\n"
+"    orderSender.send(msg);\n"
+"}"
 
 #. Tag: programlisting
 #: ee.xml:98
@@ -291,6 +363,12 @@
 "    pricePublisher.send( priceSession.createTextMessage(price) );\n"
 "}"
 msgstr ""
+"@StockPrices TopicPublisher pricePublisher;\n"
+"@StockPrices TopicSession priceSession;\n"
+"\n"
+"public void sendMessage(String price) {\n"
+"    pricePublisher.send( priceSession.createTextMessage(price) );\n"
+"}"
 
 #. Tag: para
 #: ee.xml:100
@@ -327,3 +405,4 @@
 "EJBs may be deployed for execution by the embeddable EJB Lite container. "
 "Again, each location must contain a <literal>web-beans.xml</literal> file."
 msgstr ""
+

Modified: doc/trunk/reference/zh-TW/events.po
===================================================================
--- doc/trunk/reference/zh-TW/events.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/events.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of events.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: events\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 09:48+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: events.xml:4
@@ -75,6 +78,8 @@
 "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
 "{ ... }]]>"
 msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }]]>"
 
 #. Tag: para
 #: events.xml:35
@@ -96,6 +101,10 @@
 "@Retention(RUNTIME)\n"
 "public @interface Updated { ... }]]>"
 msgstr ""
+"<![CDATA[@BindingType\n"
+"@Target({PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface Updated { ... }]]>"
 
 #. Tag: para
 #: events.xml:43
@@ -112,6 +121,8 @@
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
 "document) { ... }]]>"
 msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document) { ... }]]>"
 
 #. Tag: para
 #: events.xml:48
@@ -138,6 +149,8 @@
 "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
 "document, User user) { ... }]]>"
 msgstr ""
+"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
+"document, User user) { ... }]]>"
 
 #. Tag: title
 #: events.xml:61
@@ -157,7 +170,7 @@
 #: events.xml:66
 #, no-c-format
 msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
-msgstr ""
+msgstr "<![CDATA[@Observable Event<Document> documentEvent]]>"
 
 #. Tag: para
 #: events.xml:68
@@ -182,7 +195,7 @@
 #: events.xml:75
 #, no-c-format
 msgid "<![CDATA[documentEvent.fire(document);]]>"
-msgstr ""
+msgstr "<![CDATA[documentEvent.fire(document);]]>"
 
 #. Tag: para
 #: events.xml:77
@@ -230,6 +243,8 @@
 "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
 "{} );]]>"
 msgstr ""
+"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
+"{} );]]>"
 
 #. Tag: para
 #: events.xml:100
@@ -266,7 +281,7 @@
 #: events.xml:118
 #, no-c-format
 msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr ""
+msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
 
 #. Tag: para
 #: events.xml:120
@@ -309,6 +324,8 @@
 "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
 "(Document doc) { ... } } );]]>"
 msgstr ""
+"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
+"(Document doc) { ... } } );]]>"
 
 #. Tag: para
 #: events.xml:146
@@ -328,6 +345,10 @@
 "                                                new "
 "AnnotationLiteral<Updated>(){} );]]>"
 msgstr ""
+"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
+"(Document doc) { ... } }, \n"
+"                                                new "
+"AnnotationLiteral<Updated>(){} );]]>"
 
 #. Tag: title
 #: events.xml:154
@@ -352,12 +373,17 @@
 "    RoleType value();\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@BindingType\n"
+"@Target({PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface Role {\n"
+"    RoleType value();\n"
+"}]]>"
 
 #. Tag: para
 #: events.xml:160
 #, no-c-format
-msgid ""
-"The member value is used to narrow the messages delivered to the observer:"
+msgid "The member value is used to narrow the messages delivered to the observer:"
 msgstr ""
 
 #. Tag: programlisting
@@ -367,6 +393,8 @@
 "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
 "{ ... }]]>"
 msgstr ""
+"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
+"{ ... }]]>"
 
 #. Tag: para
 #: events.xml:164
@@ -380,7 +408,7 @@
 #: events.xml:167
 #, no-c-format
 msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
-msgstr ""
+msgstr "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
 
 #. Tag: para
 #: events.xml:169
@@ -399,6 +427,9 @@
 "    extends AnnotationLiteral<Role> \n"
 "    implements Role {}]]>"
 msgstr ""
+"<![CDATA[abstract class RoleBinding \n"
+"    extends AnnotationLiteral<Role> \n"
+"    implements Role {}]]>"
 
 #. Tag: para
 #: events.xml:174
@@ -415,6 +446,8 @@
 "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
 "() { return user.getRole(); } } );]]>"
 msgstr ""
+"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
+"() { return user.getRole(); } } );]]>"
 
 #. Tag: title
 #: events.xml:181
@@ -437,6 +470,10 @@
 "if (document.isBlog()) blogEvent.fire(document, new "
 "AnnotationLiteral<Updated>(){});]]>"
 msgstr ""
+"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"...\n"
+"if (document.isBlog()) blogEvent.fire(document, new "
+"AnnotationLiteral<Updated>(){});]]>"
 
 #. Tag: para
 #: events.xml:187
@@ -453,6 +490,8 @@
 "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
 "document) { ... }]]>"
 msgstr ""
+"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
+"document) { ... }]]>"
 
 #. Tag: programlisting
 #: events.xml:191
@@ -461,6 +500,8 @@
 "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
 "{ ... }]]>"
 msgstr ""
+"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
+"{ ... }]]>"
 
 #. Tag: programlisting
 #: events.xml:192
@@ -469,6 +510,8 @@
 "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
 "{ ... }}}]]>"
 msgstr ""
+"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
+"{ ... }}}]]>"
 
 #. Tag: title
 #: events.xml:197
@@ -494,6 +537,8 @@
 "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
 "CategoryUpdateEvent event) { ... }]]>"
 msgstr ""
+"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
+"CategoryUpdateEvent event) { ... }]]>"
 
 #. Tag: para
 #: events.xml:207
@@ -547,8 +592,7 @@
 #. Tag: para
 #: events.xml:233
 #, no-c-format
-msgid ""
-"Imagine that we have cached a JPA query result set in the application scope:"
+msgid "Imagine that we have cached a JPA query result set in the application scope:"
 msgstr ""
 
 #. Tag: programlisting
@@ -574,6 +618,24 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@ApplicationScoped @Singleton\n"
+"public class Catalog {\n"
+"\n"
+"    @PersistenceContext EntityManager em;\n"
+"    \n"
+"    List<Product> products;\n"
+"\n"
+"    @Produces @Catalog \n"
+"    List<Product> getCatalog() {\n"
+"        if (products==null) {\n"
+"            products = em.createQuery(\"select p from Product p where p."
+"deleted = false\")\n"
+"                .getResultList();\n"
+"        }\n"
+"        return products;\n"
+"    }\n"
+"    \n"
+"}]]>"
 
 #. Tag: para
 #: events.xml:237
@@ -617,6 +679,25 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Stateless\n"
+"public class ProductManager {\n"
+"\n"
+"    @PersistenceContext EntityManager em;\n"
+"    @Observable Event<Product> productEvent;\n"
+"\n"
+"    public void delete(Product product) {\n"
+"        em.delete(product);\n"
+"        productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
+"    }\n"
+"    \n"
+"    public void persist(Product product) {\n"
+"        em.persist(product);\n"
+"        productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
+"    }\n"
+"    \n"
+"    ...\n"
+"    \n"
+"}]]>"
 
 #. Tag: para
 #: events.xml:247
@@ -647,3 +728,20 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@ApplicationScoped @Singleton\n"
+"public class Catalog {\n"
+"\n"
+"    ...\n"
+"    \n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Created Product "
+"product) {\n"
+"        products.add(product);\n"
+"    }\n"
+"    \n"
+"    void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
+"product) {\n"
+"        products.remove(product);\n"
+"    }\n"
+"    \n"
+"}]]>"
+

Modified: doc/trunk/reference/zh-TW/example.po
===================================================================
--- doc/trunk/reference/zh-TW/example.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/example.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of example.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: example\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 09:49+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: example.xml:4
@@ -46,6 +49,19 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class Credentials {\n"
+"        \n"
+"    private String username;\n"
+"    private String password;\n"
+"    \n"
+"    public String getUsername() { return username; }\n"
+"    public void setUsername(String username) { this.username = username; }\n"
+"    \n"
+"    public String getPassword() { return password; }\n"
+"    public void setPassword(String password) { this.password = password; }\n"
+"    \n"
+"}]]>"
 
 #. Tag: para
 #: example.xml:13
@@ -70,6 +86,18 @@
 "{login.loggedIn}\"/>\n"
 "</h:form>]]>"
 msgstr ""
+"<![CDATA[<h:form>\n"
+"    <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+"        <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+"        <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+"        <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+"        <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+"    </h:panelGrid>\n"
+"    <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+"    <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
+"</h:form>]]>"
 
 #. Tag: para
 #: example.xml:17
@@ -121,6 +149,42 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@SessionScoped @Named\n"
+"public class Login {\n"
+"\n"
+"    @Current Credentials credentials;\n"
+"    @PersistenceContext EntityManager userDatabase;\n"
+"\n"
+"    private User user;\n"
+"    \n"
+"    public void login() {\n"
+"            \n"
+"        List<User> results = userDatabase.createQuery(\n"
+"           \"select u from User u where u.username=:username and u.password=:"
+"password\")\n"
+"           .setParameter(\"username\", credentials.getUsername())\n"
+"           .setParameter(\"password\", credentials.getPassword())\n"
+"           .getResultList();\n"
+"        \n"
+"        if ( !results.isEmpty() ) {\n"
+"           user = results.get(0);\n"
+"        }\n"
+"        \n"
+"    }\n"
+"    \n"
+"    public void logout() {\n"
+"        user = null;\n"
+"    }\n"
+"    \n"
+"    public boolean isLoggedIn() {\n"
+"       return user!=null;\n"
+"    }\n"
+"    \n"
+"    @Produces @LoggedIn User getCurrentUser() {\n"
+"        return user;\n"
+"    }\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: example.xml:23
@@ -137,6 +201,10 @@
 "@BindingType\n"
 "public @interface LoggedIn {}]]>"
 msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD})\n"
+"@BindingType\n"
+"public @interface LoggedIn {}]]>"
 
 #. Tag: para
 #: example.xml:27
@@ -161,6 +229,18 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class DocumentEditor {\n"
+"\n"
+"    @Current Document document;\n"
+"    @LoggedIn User currentUser;\n"
+"    @PersistenceContext EntityManager docDatabase;\n"
+"    \n"
+"    public void save() {\n"
+"        document.setCreatedBy(currentUser);\n"
+"        docDatabase.persist(document);\n"
+"    }\n"
+"    \n"
+"}]]>"
 
 #. Tag: para
 #: example.xml:31
@@ -170,3 +250,4 @@
 "the next chapter, we'll explore Web Beans dependency injection in greater "
 "depth."
 msgstr ""
+

Modified: doc/trunk/reference/zh-TW/extend.po
===================================================================
--- doc/trunk/reference/zh-TW/extend.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/extend.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of extend.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: extend\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 09:51+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: extend.xml:4
@@ -62,7 +65,7 @@
 #: extend.xml:29
 #, no-c-format
 msgid "The <literal>Manager</literal> object"
-msgstr ""
+msgstr "<literal>Manager</literal> 物件"
 
 #. Tag: para
 #: extend.xml:31
@@ -133,6 +136,62 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public interface Manager\n"
+"{\n"
+"\n"
+"   public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
+"bindings);\n"
+"\n"
+"   public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+"         Annotation... bindings);\n"
+"\n"
+"   public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
+"\n"
+"   public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+"         Annotation... bindings);\n"
+"\n"
+"   public Set<Bean<?>> resolveByName(String name);\n"
+"\n"
+"   public Object getInstanceByName(String name);\n"
+"\n"
+"   public <T> T getInstance(Bean<T> bean);\n"
+"\n"
+"   public void fireEvent(Object event, Annotation... bindings);\n"
+"\n"
+"   public Context getContext(Class<? extends Annotation> scopeType);\n"
+"\n"
+"   public Manager addContext(Context context);\n"
+"\n"
+"   public Manager addBean(Bean<?> bean);\n"
+"\n"
+"   public Manager addInterceptor(Interceptor interceptor);\n"
+"\n"
+"   public Manager addDecorator(Decorator decorator);\n"
+"\n"
+"   public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
+"         Annotation... bindings);\n"
+"\n"
+"   public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
+"eventType,\n"
+"         Annotation... bindings);\n"
+"\n"
+"   public <T> Manager removeObserver(Observer<T> observer, Class<T> "
+"eventType,\n"
+"         Annotation... bindings);\n"
+"\n"
+"   public <T> Manager removeObserver(Observer<T> observer,\n"
+"         TypeLiteral<T> eventType, Annotation... bindings);\n"
+"\n"
+"   public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
+"bindings);\n"
+"\n"
+"   public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+"         Annotation... interceptorBindings);\n"
+"\n"
+"   public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+"         Annotation... bindings);\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: extend.xml:36
@@ -191,6 +250,31 @@
 "    \n"
 "}"
 msgstr ""
+"public abstract class Bean&lt;T&gt; {\n"
+"    \n"
+"    private final Manager manager;\n"
+"    \n"
+"    protected Bean(Manager manager) {\n"
+"        this.manager=manager;\n"
+"    }\n"
+"    \n"
+"    protected Manager getManager() {\n"
+"        return manager;\n"
+"    }\n"
+"    \n"
+"    public abstract Set&lt;Class&gt; getTypes();\n"
+"    public abstract Set&lt;Annotation&gt; getBindingTypes();\n"
+"    public abstract Class&lt;? extends Annotation&gt; getScopeType();\n"
+"    public abstract Class&lt;? extends Annotation&gt; getDeploymentType(); \n"
+"    public abstract String getName();\n"
+"    \n"
+"    public abstract boolean isSerializable();\n"
+"    public abstract boolean isNullable();\n"
+"\n"
+"    public abstract T create();\n"
+"    public abstract void destroy(T instance);\n"
+"    \n"
+"}"
 
 #. Tag: para
 #: extend.xml:52
@@ -217,7 +301,7 @@
 #: extend.xml:67
 #, no-c-format
 msgid "The <literal>Context</literal> interface"
-msgstr ""
+msgstr "<literal>Context</literal> 介面"
 
 #. Tag: para
 #: extend.xml:69
@@ -241,6 +325,15 @@
 "    \n"
 "}"
 msgstr ""
+"public interface Context {\n"
+"    \n"
+"    public Class&lt;? extends Annotation&gt; getScopeType();\n"
+"    \n"
+"    public &lt;T&gt; T get(Bean&lt;T&gt; bean, boolean create);\n"
+"    \n"
+"    boolean isActive();\n"
+"    \n"
+"}"
 
 #. Tag: para
 #: extend.xml:74
@@ -250,3 +343,4 @@
 "process scope to Web Beans, or to add support for the conversation scope to "
 "an application that uses Wicket."
 msgstr ""
+

Modified: doc/trunk/reference/zh-TW/injection.po
===================================================================
--- doc/trunk/reference/zh-TW/injection.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/injection.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of injection.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: injection\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 09:54+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: injection.xml:4
@@ -46,6 +49,16 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class Checkout {\n"
+"        \n"
+"    private final ShoppingCart cart;\n"
+"    \n"
+"    @Initializer\n"
+"    public Checkout(ShoppingCart cart) {\n"
+"        this.cart = cart;\n"
+"    }\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:12
@@ -68,6 +81,16 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class Checkout {\n"
+"        \n"
+"    private ShoppingCart cart;\n"
+"\n"
+"    @Initializer \n"
+"    void setShoppingCart(ShoppingCart cart) {\n"
+"        this.cart = cart;\n"
+"    }\n"
+"    \n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:16
@@ -85,6 +108,11 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class Checkout {\n"
+"\n"
+"    private @Current ShoppingCart cart;\n"
+"    \n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:20
@@ -157,6 +185,9 @@
 "    return new Checkout(cart);\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
+"    return new Checkout(cart);\n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:55
@@ -218,8 +249,7 @@
 #. Tag: para
 #: injection.xml:88
 #, no-c-format
-msgid ""
-"Let's explore how the Web Beans manager determines a Web Bean to be injected."
+msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
 msgstr ""
 
 #. Tag: title
@@ -247,6 +277,10 @@
 "    public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
+"}]]>"
 
 #. Tag: programlisting
 #: injection.xml:100
@@ -257,6 +291,10 @@
 "    public void process(Payment payment) { ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@PayByCreditCard\n"
+"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+"    public void process(Payment payment) { ... }\n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:102
@@ -275,6 +313,10 @@
 "@BindingType\n"
 "public @interface PayByCheque {}]]>"
 msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"@BindingType\n"
+"public @interface PayByCheque {}]]>"
 
 #. Tag: programlisting
 #: injection.xml:107
@@ -285,6 +327,10 @@
 "@BindingType\n"
 "public @interface PayByCreditCard {}]]>"
 msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"@BindingType\n"
+"public @interface PayByCreditCard {}]]>"
 
 #. Tag: para
 #: injection.xml:109
@@ -307,6 +353,8 @@
 "<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
 "@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
 msgstr ""
+"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
+"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
 
 #. Tag: para
 #: injection.xml:116
@@ -327,6 +375,14 @@
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Initializer\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+"                                 @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
+"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
+"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:120
@@ -346,6 +402,13 @@
 "   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Initializer\n"
+"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
+"                @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
+"   this.chequePaymentProcessor = chequePaymentProcessor;\n"
+"   this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"}]]>"
 
 #. Tag: title
 #: injection.xml:125
@@ -370,6 +433,12 @@
 "    PaymentType value();\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"@BindingType\n"
+"public @interface PayBy {\n"
+"    PaymentType value();\n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:131
@@ -384,6 +453,8 @@
 "<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
 "@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
 msgstr ""
+"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
 
 #. Tag: para
 #: injection.xml:135
@@ -408,9 +479,8 @@
 #. Tag: programlisting
 #: injection.xml:145
 #, no-c-format
-msgid ""
-"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr ""
+msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
 #: injection.xml:147
@@ -443,6 +513,12 @@
 "    return new AsynchronousPaymentProcessor(processor);\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Produces \n"
+"@Asynchronous @PayByCheque \n"
+"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
+"processor) {\n"
+"    return new AsynchronousPaymentProcessor(processor);\n"
+"}]]>"
 
 #. Tag: title
 #: injection.xml:162
@@ -516,6 +592,10 @@
 "  @DeploymentType\n"
 "  public @interface Mock {}]]>"
 msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"  @Target({TYPE, METHOD})\n"
+"  @DeploymentType\n"
+"  public @interface Mock {}]]>"
 
 #. Tag: para
 #: injection.xml:199
@@ -537,6 +617,13 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class ExternalPaymentProcessor {\n"
+"        \n"
+"    public void process(Payment p) {\n"
+"        ...\n"
+"    }\n"
+"    \n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:204
@@ -568,6 +655,15 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Mock \n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"\n"
+"    @Override\n"
+"    public void process(Payment p) {\n"
+"        p.setSuccessful(true);\n"
+"    }\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:212
@@ -614,6 +710,13 @@
 "    </Deploy>\n"
 "</WebBeans>]]>"
 msgstr ""
+"<![CDATA[<WebBeans>\n"
+"    <Deploy>\n"
+"        <Standard/>\n"
+"        <Production/>\n"
+"        <test:Mock/>\n"
+"    </Deploy>\n"
+"</WebBeans>]]>"
 
 #. Tag: para
 #: injection.xml:229
@@ -662,7 +765,7 @@
 #: injection.xml:251
 #, no-c-format
 msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr ""
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
 #: injection.xml:253
@@ -724,8 +827,7 @@
 #. Tag: para
 #: injection.xml:286
 #, no-c-format
-msgid ""
-"Deployment types are useful for all kinds of things, here's some examples:"
+msgid "Deployment types are useful for all kinds of things, here's some examples:"
 msgstr ""
 
 #. Tag: para
@@ -931,7 +1033,7 @@
 #: injection.xml:397
 #, no-c-format
 msgid "<![CDATA[@Current Manager manager;]]>"
-msgstr ""
+msgstr "<![CDATA[@Current Manager manager;]]>"
 
 #. Tag: para
 #: injection.xml:399
@@ -948,6 +1050,8 @@
 "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
 "class);]]>"
 msgstr ""
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+"class);]]>"
 
 #. Tag: para
 #: injection.xml:404
@@ -967,6 +1071,10 @@
 "                                               new "
 "AnnotationLiteral<CreditCard>(){});]]>"
 msgstr ""
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+"class, \n"
+"                                               new "
+"AnnotationLiteral<CreditCard>(){});]]>"
 
 #. Tag: para
 #: injection.xml:410
@@ -985,6 +1093,9 @@
 "    extends AnnotationLiteral<CreditCard> \n"
 "    implements CreditCard {}]]>"
 msgstr ""
+"<![CDATA[abstract class CreditCardBinding \n"
+"    extends AnnotationLiteral<CreditCard> \n"
+"    implements CreditCard {}]]>"
 
 #. Tag: programlisting
 #: injection.xml:415
@@ -997,6 +1108,12 @@
 "{ return paymentType; } \n"
 "                                               } );]]>"
 msgstr ""
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+"class, \n"
+"                                               new CreditCardBinding() { \n"
+"                                                   public void value() "
+"{ return paymentType; } \n"
+"                                               } );]]>"
 
 #. Tag: title
 #: injection.xml:419
@@ -1104,7 +1221,7 @@
 #: injection.xml:468
 #, no-c-format
 msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
-msgstr ""
+msgstr "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
 
 #. Tag: para
 #: injection.xml:470
@@ -1127,6 +1244,14 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[class LogFactory {\n"
+"\n"
+"   @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
+"      return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
+"getName()); \n"
+"   }\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:475
@@ -1138,7 +1263,7 @@
 #: injection.xml:477
 #, no-c-format
 msgid "<![CDATA[@Current Logger log;]]>"
-msgstr ""
+msgstr "<![CDATA[@Current Logger log;]]>"
 
 #. Tag: para
 #: injection.xml:479
@@ -1159,6 +1284,12 @@
 "   @NonBinding public String value();\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@BindingType\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"public @interface HttpParam {\n"
+"   @NonBinding public String value();\n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:484
@@ -1173,6 +1304,8 @@
 "<![CDATA[@HttpParam(\"username\") String username;\n"
 "@HttpParam(\"password\") String password;]]>"
 msgstr ""
+"<![CDATA[@HttpParam(\"username\") String username;\n"
+"@HttpParam(\"password\") String password;]]>"
 
 #. Tag: para
 #: injection.xml:488
@@ -1194,6 +1327,15 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[class HttpParams\n"
+"\n"
+"   @Produces @HttpParam(\"\")\n"
+"   String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
+"      return request.getParameter(ip.getAnnotation(HttpParam.class).value"
+"());\n"
+"   }\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: injection.xml:492
@@ -1224,3 +1366,11 @@
 "   public Set<T extends Annotation> getAnnotations(); \n"
 "}]]>"
 msgstr ""
+"<![CDATA[public interface InjectionPoint { \n"
+"   public Object getInstance(); \n"
+"   public Bean<?> getBean(); \n"
+"   public Member getMember(): \n"
+"   public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
+"   public Set<T extends Annotation> getAnnotations(); \n"
+"}]]>"
+

Modified: doc/trunk/reference/zh-TW/interceptors.po
===================================================================
--- doc/trunk/reference/zh-TW/interceptors.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/interceptors.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of interceptors.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: interceptors\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 09:56+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: interceptors.xml:4
@@ -76,6 +79,10 @@
 "{ ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class TransactionInterceptor {\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
 
 #. Tag: para
 #: interceptors.xml:38
@@ -94,6 +101,10 @@
 "{ ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class DependencyInjectionInterceptor {\n"
+"    @PostConstruct public void injectDependencies(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
 
 #. Tag: para
 #: interceptors.xml:43
@@ -127,6 +138,10 @@
 "@Retention(RUNTIME)\n"
 "public @interface Transactional {}]]>"
 msgstr ""
+"<![CDATA[@InterceptorBindingType\n"
+"@Target({METHOD, TYPE})\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
 
 #. Tag: para
 #: interceptors.xml:57
@@ -143,6 +158,8 @@
 "<![CDATA[@Transactional\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
+"<![CDATA[@Transactional\n"
+"public class ShoppingCart { ... }]]>"
 
 #. Tag: para
 #: interceptors.xml:62
@@ -158,6 +175,9 @@
 "    @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class ShoppingCart {\n"
+"    @Transactional public void checkout() { ... }\n"
+"}]]>"
 
 #. Tag: title
 #: interceptors.xml:69
@@ -185,6 +205,11 @@
 "{ ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Transactional @Interceptor\n"
+"public class TransactionInterceptor {\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
 
 #. Tag: para
 #: interceptors.xml:78
@@ -208,6 +233,15 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"public class TransactionInterceptor {\n"
+"\n"
+"    @Resource Transaction transaction;\n"
+"\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"    \n"
+"}]]>"
 
 #. Tag: para
 #: interceptors.xml:83
@@ -237,6 +271,9 @@
 "    <tx:TransactionInterceptor/>\n"
 "</Interceptors>]]>"
 msgstr ""
+"<![CDATA[<Interceptors>\n"
+"    <tx:TransactionInterceptor/>\n"
+"</Interceptors>]]>"
 
 #. Tag: para
 #: interceptors.xml:95
@@ -281,6 +318,10 @@
 "    <tx:TransactionInterceptor/>\n"
 "</Interceptors>]]>"
 msgstr ""
+"<![CDATA[<Interceptors>\n"
+"    <sx:SecurityInterceptor/>\n"
+"    <tx:TransactionInterceptor/>\n"
+"</Interceptors>]]>"
 
 #. Tag: para
 #: interceptors.xml:114
@@ -313,6 +354,12 @@
 "    boolean requiresNew() default false;\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@InterceptorBindingType\n"
+"@Target({METHOD, TYPE})\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {\n"
+"    boolean requiresNew() default false;\n"
+"}]]>"
 
 #. Tag: para
 #: interceptors.xml:126
@@ -333,6 +380,11 @@
 "{ ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"public class RequiresNewTransactionInterceptor {\n"
+"    @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
 
 #. Tag: para
 #: interceptors.xml:132
@@ -349,6 +401,8 @@
 "<![CDATA[@Transactional(requiresNew=true)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
+"<![CDATA[@Transactional(requiresNew=true)\n"
+"public class ShoppingCart { ... }]]>"
 
 #. Tag: para
 #: interceptors.xml:136
@@ -370,6 +424,12 @@
 "    @NonBinding String[] rolesAllowed() default {};\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@InterceptorBindingType\n"
+"@Target({METHOD, TYPE})\n"
+"@Retention(RUNTIME)\n"
+"public @interface Secure {\n"
+"    @NonBinding String[] rolesAllowed() default {};\n"
+"}]]>"
 
 #. Tag: title
 #: interceptors.xml:145
@@ -394,6 +454,8 @@
 "<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
+"<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
+"public class ShoppingCart { ... }]]>"
 
 #. Tag: para
 #: interceptors.xml:154
@@ -410,6 +472,8 @@
 "<![CDATA[@Transactional @Secure @Interceptor\n"
 "public class TransactionalSecureInterceptor { ... }]]>"
 msgstr ""
+"<![CDATA[@Transactional @Secure @Interceptor\n"
+"public class TransactionalSecureInterceptor { ... }]]>"
 
 #. Tag: para
 #: interceptors.xml:159
@@ -427,6 +491,9 @@
 "    @Transactional @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class ShoppingCart {\n"
+"    @Transactional @Secure public void checkout() { ... }\n"
+"}]]>"
 
 #. Tag: programlisting
 #: interceptors.xml:164
@@ -437,6 +504,10 @@
 "    @Transactional public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Secure\n"
+"public class ShoppingCart {\n"
+"    @Transactional public void checkout() { ... }\n"
+"}]]>"
 
 #. Tag: programlisting
 #: interceptors.xml:166
@@ -447,6 +518,10 @@
 "    @Secure public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Transactionl\n"
+"public class ShoppingCart {\n"
+"    @Secure public void checkout() { ... }\n"
+"}]]>"
 
 #. Tag: programlisting
 #: interceptors.xml:168
@@ -457,6 +532,10 @@
 "    public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Transactional @Secure\n"
+"public class ShoppingCart {\n"
+"    public void checkout() { ... }\n"
+"}]]>"
 
 #. Tag: title
 #: interceptors.xml:173
@@ -476,9 +555,8 @@
 #. Tag: programlisting
 #: interceptors.xml:179
 #, no-c-format
-msgid ""
-"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
-msgstr ""
+msgid "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgstr "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
 
 #. Tag: para
 #: interceptors.xml:181
@@ -501,6 +579,11 @@
 "@Retention(RUNTIME)\n"
 "public @interface Action { ... }]]>"
 msgstr ""
+"<![CDATA[@Transactional @Secure\n"
+"@InterceptorBindingType\n"
+"@Target(TYPE)\n"
+"@Retention(RUNTIME)\n"
+"public @interface Action { ... }]]>"
 
 #. Tag: para
 #: interceptors.xml:188
@@ -516,7 +599,7 @@
 #: interceptors.xml:195
 #, no-c-format
 msgid "Use of <literal>@Interceptors</literal>"
-msgstr ""
+msgstr "使用 <literal>@Interceptors</literal>"
 
 #. Tag: para
 #: interceptors.xml:197
@@ -537,6 +620,11 @@
 "    public void checkout() { ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
+"class})\n"
+"public class ShoppingCart {\n"
+"    public void checkout() { ... }\n"
+"}]]>"
 
 #. Tag: para
 #: interceptors.xml:202
@@ -567,6 +655,6 @@
 #. Tag: para
 #: interceptors.xml:217
 #, no-c-format
-msgid ""
-"Therefore, we recommend the use of Web Beans-style interceptor bindings."
+msgid "Therefore, we recommend the use of Web Beans-style interceptor bindings."
 msgstr ""
+

Modified: doc/trunk/reference/zh-TW/intro.po
===================================================================
--- doc/trunk/reference/zh-TW/intro.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/intro.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of intro.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: intro\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 09:57+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: intro.xml:4
@@ -68,6 +71,9 @@
 "    public List<String> parse(String text) { ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class SentenceParser {\n"
+"    public List<String> parse(String text) { ... }\n"
+"}]]>"
 
 #. Tag: para
 #: intro.xml:31
@@ -87,6 +93,10 @@
 "    public String translate(String sentence) { ... }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator {\n"
+"    public String translate(String sentence) { ... }\n"
+"}]]>"
 
 #. Tag: para
 #: intro.xml:37
@@ -103,6 +113,10 @@
 "    public String translate(String sentence);\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Local\n"
+"public interface Translator {\n"
+"    public String translate(String sentence);\n"
+"}]]>"
 
 #. Tag: para
 #: intro.xml:41
@@ -138,6 +152,27 @@
 "    \n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class TextTranslator {\n"
+"    \n"
+"    private SentenceParser sentenceParser;\n"
+"    private Translator sentenceTranslator;\n"
+"    \n"
+"    @Initializer\n"
+"    TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
+"        this.sentenceParser = sentenceParser;\n"
+"        this.sentenceTranslator = sentenceTranslator;\n"
+"    }\n"
+"    \n"
+"    public String translate(String text) {\n"
+"        StringBuilder sb = new StringBuilder();\n"
+"        for (String sentence: sentenceParser.parse(text)) {\n"
+"            sb.append(sentenceTranslator.translate(sentence));\n"
+"        }\n"
+"        return sb.toString();\n"
+"    }\n"
+"    \n"
+"}]]>"
 
 #. Tag: para
 #: intro.xml:46
@@ -156,6 +191,10 @@
 "    this.textTranslator = textTranslator;\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Initializer\n"
+"public setTextTranslator(TextTranslator textTranslator) {\n"
+"    this.textTranslator = textTranslator;\n"
+"}]]>"
 
 #. Tag: para
 #: intro.xml:51
@@ -172,6 +211,8 @@
 "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
 "class);]]>"
 msgstr ""
+"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+"class);]]>"
 
 #. Tag: para
 #: intro.xml:56
@@ -265,8 +306,7 @@
 #. Tag: para
 #: intro.xml:108
 #, no-c-format
-msgid ""
-"which clients share a reference to a particular instance of the Web Bean."
+msgid "which clients share a reference to a particular instance of the Web Bean."
 msgstr ""
 
 #. Tag: para
@@ -446,7 +486,7 @@
 #: intro.xml:191
 #, no-c-format
 msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr ""
+msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
 
 #. Tag: para
 #: intro.xml:193
@@ -482,6 +522,9 @@
 "public class CreditCardPaymentProcessor \n"
 "    implements PaymentProcessor { ... }]]>"
 msgstr ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+"    implements PaymentProcessor { ... }]]>"
 
 #. Tag: para
 #: intro.xml:206
@@ -550,6 +593,12 @@
 "    }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Mock\n"
+"public class MockSentenceTranslator implements Translator {\n"
+"    public String translate(String sentence) {\n"
+"        return \"Lorem ipsum dolor sit amet\";\n"
+"    }\n"
+"}]]>"
 
 #. Tag: para
 #: intro.xml:236
@@ -600,6 +649,8 @@
 "<![CDATA[@SessionScoped\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
+"<![CDATA[@SessionScoped\n"
+"public class ShoppingCart { ... }]]>"
 
 #. Tag: para
 #: intro.xml:259
@@ -646,6 +697,8 @@
 "<![CDATA[@SessionScoped @Named(\"cart\")\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
+"<![CDATA[@SessionScoped @Named(\"cart\")\n"
+"public class ShoppingCart { ... }]]>"
 
 #. Tag: para
 #: intro.xml:280
@@ -661,12 +714,14 @@
 "    ....\n"
 "</h:dataTable>]]>"
 msgstr ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+"    ....\n"
+"</h:dataTable>]]>"
 
 #. Tag: para
 #: intro.xml:284
 #, no-c-format
-msgid ""
-"It's even easier to just let the name be defaulted by the Web Bean manager:"
+msgid "It's even easier to just let the name be defaulted by the Web Bean manager:"
 msgstr ""
 
 #. Tag: programlisting
@@ -676,6 +731,8 @@
 "<![CDATA[@SessionScoped @Named\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
+"<![CDATA[@SessionScoped @Named\n"
+"public class ShoppingCart { ... }]]>"
 
 #. Tag: para
 #: intro.xml:289
@@ -717,6 +774,9 @@
 "@Interceptors(TransactionInterceptor.class)\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
+"<![CDATA[@SessionScoped \n"
+"@Interceptors(TransactionInterceptor.class)\n"
+"public class ShoppingCart { ... }]]>"
 
 #. Tag: para
 #: intro.xml:307
@@ -733,6 +793,8 @@
 "<![CDATA[@SessionScoped @Transactional\n"
 "public class ShoppingCart { ... }]]>"
 msgstr ""
+"<![CDATA[@SessionScoped @Transactional\n"
+"public class ShoppingCart { ... }]]>"
 
 #. Tag: para
 #: intro.xml:313
@@ -866,6 +928,15 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Stateful @SessionScoped\n"
+"public class ShoppingCart {\n"
+"\n"
+"    ...\n"
+"    \n"
+"    @Remove\n"
+"    public void destroy() {}\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: intro.xml:380
@@ -987,19 +1058,28 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator {\n"
+"\n"
+"    private Random random = new Random( System.currentTimeMillis() );\n"
+"    \n"
+"    @Produces @Random int next() {\n"
+"        return random.nextInt(100);\n"
+"    }\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: intro.xml:437
 #, no-c-format
-msgid ""
-"The result of a producer method is injected just like any other Web Bean."
+msgid "The result of a producer method is injected just like any other Web Bean."
 msgstr ""
 
 #. Tag: programlisting
 #: intro.xml:439
 #, no-c-format
 msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr ""
+msgstr "<![CDATA[@Random int randomNumber]]>"
 
 #. Tag: para
 #: intro.xml:441
@@ -1024,6 +1104,9 @@
 "    return createConnection( user.getId(), user.getPassword() );\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+"    return createConnection( user.getId(), user.getPassword() );\n"
+"}]]>"
 
 #. Tag: para
 #: intro.xml:449
@@ -1041,6 +1124,9 @@
 "    connection.close();\n"
 "}]]>"
 msgstr ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+"    connection.close();\n"
+"}]]>"
 
 #. Tag: para
 #: intro.xml:453
@@ -1073,3 +1159,4 @@
 "objects required to send messages to queues and topics. We'll discuss JMS "
 "endpoints in <xref linkend=\"jms\"/>."
 msgstr ""
+

Modified: doc/trunk/reference/zh-TW/master.po
===================================================================
--- doc/trunk/reference/zh-TW/master.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/master.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,38 +1,42 @@
+# translation of master.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: master\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 10:09+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: master.xml:12
 #, no-c-format
 msgid "Using contextual objects"
-msgstr ""
+msgstr "使用概念上的物件"
 
 #. Tag: title
 #: master.xml:25
 #, no-c-format
 msgid "Developing loosely-coupled code"
-msgstr ""
+msgstr "開發鬆散耦合(loosely-coupled)的程式碼"
 
 #. Tag: title
 #: master.xml:35
 #, no-c-format
 msgid "Making the most of strong typing"
-msgstr ""
+msgstr "最大程度地使用強類型(strong typing)"
 
 #. Tag: title
 #: master.xml:46
 #, no-c-format
 msgid "Web Beans and the Java EE ecosystem"
-msgstr ""
+msgstr "Web Beans 與 Java EE 應用系統"
+

Modified: doc/trunk/reference/zh-TW/next.po
===================================================================
--- doc/trunk/reference/zh-TW/next.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/next.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,23 +1,26 @@
+# translation of next.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: next\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 10:54+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: next.xml:4
 #, no-c-format
 msgid "Next steps"
-msgstr ""
+msgstr "接下來的步驟"
 
 #. Tag: para
 #: next.xml:6
@@ -25,7 +28,7 @@
 msgid ""
 "Because Web Beans is so new, there's not yet a lot of information available "
 "online."
-msgstr ""
+msgstr "因為 Web Beans 非常地新,因此還尚未有大量線上資訊以供參閱。"
 
 #. Tag: para
 #: next.xml:9
@@ -36,7 +39,7 @@
 "the length of this article, and almost as readable. But, of course, it "
 "covers many details that we've skipped over. The spec is available from "
 "<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
-msgstr ""
+msgstr "當然,Web Beans 的規格為有關於 Web Beans 的最佳來源資訊。該資訊的數量約為 100 頁,只比此文件的長度多出兩倍,並且一樣地容易閱讀。不過,當然它亦包含了許多我們所跳過的細節。您可藉由 <literal>http://jcp.org/en/jsr/detail?id=299</literal> 來取得該規格資訊。"
 
 #. Tag: para
 #: next.xml:15
@@ -46,4 +49,5 @@
 "seamframework.org/WebBeans</literal>. The RI development team and the Web "
 "Beans spec lead blog at <literal>http://in.relation.to</literal>. This "
 "article is substantially based upon a series of blog entries published there."
-msgstr ""
+msgstr "Web Beans Reference 的實做開發於 <literal>http://seamframework.org/WebBeans</literal>。RI 開發團隊以及 Web Beans spec lead 的 blog 位於 <literal>http://in.relation.to</literal>。本文件大體上基於發佈於該網頁上的一系列 blog 項目。"
+

Modified: doc/trunk/reference/zh-TW/producermethods.po
===================================================================
--- doc/trunk/reference/zh-TW/producermethods.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/producermethods.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of producermethods.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: producermethods\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 10:55+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: producermethods.xml:5
@@ -118,6 +121,10 @@
 "    ...\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Produces @Preferred @SessionScoped\n"
+"public PaymentStrategy getPaymentStrategy() {\n"
+"    ...\n"
+"}]]>"
 
 #. Tag: para
 #: producermethods.xml:80
@@ -169,6 +176,17 @@
 "    } \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Produces @Preferred @SessionScoped\n"
+"public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,\n"
+"                                          ChequePaymentStrategy cps,\n"
+"                                          PayPalPaymentStrategy ppps) {\n"
+"    switch (paymentStrategy) {\n"
+"        case CREDIT_CARD: return ccps;\n"
+"        case CHEQUE: return cps;\n"
+"        case PAYPAL: return ppps;\n"
+"        default: return null;\n"
+"    } \n"
+"}]]>"
 
 #. Tag: para
 #: producermethods.xml:99
@@ -233,6 +251,19 @@
 "    } \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Produces @Preferred @SessionScoped\n"
+"public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
+"ccps,\n"
+"                                          @New ChequePaymentStrategy cps,\n"
+"                                          @New PayPalPaymentStrategy ppps) "
+"{\n"
+"    switch (paymentStrategy) {\n"
+"        case CREDIT_CARD: return ccps;\n"
+"        case CHEQUE: return cps;\n"
+"        case PAYPAL: return ppps;\n"
+"        default: return null;\n"
+"    } \n"
+"}]]>"
 
 #. Tag: para
 #: producermethods.xml:125
@@ -245,3 +276,4 @@
 "<literal>Preferences</literal> object is destroyed, at the end of the "
 "session."
 msgstr ""
+

Modified: doc/trunk/reference/zh-TW/ri-spi.po
===================================================================
--- doc/trunk/reference/zh-TW/ri-spi.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/ri-spi.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of ri-spi.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: ri-spi\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 10:59+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: ri-spi.xml:4
@@ -44,7 +47,7 @@
 #: ri-spi.xml:24
 #, no-c-format
 msgid "The Web Beans RI SPI"
-msgstr ""
+msgstr "Web Beans RI SPI"
 
 #. Tag: para
 #: ri-spi.xml:26
@@ -70,7 +73,7 @@
 #: ri-spi.xml:43
 #, no-c-format
 msgid "Web Bean Discovery"
-msgstr ""
+msgstr "Web Bean Discovery"
 
 #. Tag: programlisting
 #: ri-spi.xml:45
@@ -101,6 +104,30 @@
 "   \n"
 "}]]>"
 msgstr ""
+"<![CDATA[public interface WebBeanDiscovery {\n"
+"   /**\n"
+"    * Gets list of all classes in classpath archives with web-beans.xml "
+"files\n"
+"    * \n"
+"    * @return An iterable over the classes \n"
+"    */\n"
+"   public Iterable<Class<?>> discoverWebBeanClasses();\n"
+"   \n"
+"   /**\n"
+"    * Gets a list of all web-beans.xml files in the app classpath\n"
+"    * \n"
+"    * @return An iterable over the web-beans.xml files \n"
+"    */\n"
+"   public Iterable<URL> discoverWebBeansXml();\n"
+"   \n"
+"   /**\n"
+"    * Gets a descriptor for each EJB in the application\n"
+"    * \n"
+"    * @return The bean class to descriptor map \n"
+"    */\n"
+"   public Iterable<EjbDescriptor<?>> discoverEjbs();\n"
+"   \n"
+"}]]>"
 
 #. Tag: para
 #: ri-spi.xml:47
@@ -201,6 +228,81 @@
 "   \n"
 "}]]>"
 msgstr ""
+"<![CDATA[public interface EjbDescriptor<T> {\n"
+"   \n"
+"   /**\n"
+"    * Gets the EJB type\n"
+"    * \n"
+"    * @return The EJB Bean class\n"
+"    */\n"
+"   public Class<T> getType();\n"
+"\n"
+"   /**\n"
+"    * Gets the local business interfaces of the EJB\n"
+"    * \n"
+"    * @return An iterator over the local business interfaces\n"
+"    */\n"
+"   public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
+"();\n"
+"   \n"
+"   /**\n"
+"    * Gets the remote business interfaces of the EJB\n"
+"    * \n"
+"    * @return An iterator over the remote business interfaces\n"
+"    */\n"
+"   public Iterable<BusinessInterfaceDescriptor<?>> "
+"getRemoteBusinessInterfaces();\n"
+"   \n"
+"   /**\n"
+"    * Get the remove methods of the EJB\n"
+"    * \n"
+"    * @return An iterator over the remove methods\n"
+"    */\n"
+"   public Iterable<Method> getRemoveMethods();\n"
+"\n"
+"   /**\n"
+"    * Indicates if the bean is stateless\n"
+"    * \n"
+"    * @return True if stateless, false otherwise\n"
+"    */\n"
+"   public boolean isStateless();\n"
+"\n"
+"   /**\n"
+"    * Indicates if the bean is a EJB 3.1 Singleton\n"
+"    * \n"
+"    * @return True if the bean is a singleton, false otherwise\n"
+"    */\n"
+"   public boolean isSingleton();\n"
+"\n"
+"   /**\n"
+"    * Indicates if the EJB is stateful\n"
+"    * \n"
+"    * @return True if the bean is stateful, false otherwise\n"
+"    */\n"
+"   public boolean isStateful();\n"
+"\n"
+"   /**\n"
+"    * Indicates if the EJB is and MDB\n"
+"    * \n"
+"    * @return True if the bean is an MDB, false otherwise\n"
+"    */\n"
+"   public boolean isMessageDriven();\n"
+"\n"
+"   /**\n"
+"    * Gets the EJB name\n"
+"    * \n"
+"    * @return The name\n"
+"    */\n"
+"   public String getEjbName();\n"
+"   \n"
+"   /**\n"
+"    * @return The JNDI string which can be used to lookup a proxy which \n"
+"    * implements all local business interfaces \n"
+"    * \n"
+"    */\n"
+"   public String getLocalJndiName();\n"
+"   \n"
+"}]]>"
 
 #. Tag: para
 #: ri-spi.xml:62
@@ -229,12 +331,14 @@
 "org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery=org.jboss.webbeans."
 "integration.jbossas.WebBeanDiscoveryImpl"
 msgstr ""
+"org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery=org.jboss.webbeans."
+"integration.jbossas.WebBeanDiscoveryImpl"
 
 #. Tag: title
 #: ri-spi.xml:80
 #, no-c-format
 msgid "JNDI"
-msgstr ""
+msgstr "JNDI"
 
 #. Tag: para
 #: ri-spi.xml:82
@@ -272,6 +376,27 @@
 "   \n"
 "}]]>"
 msgstr ""
+"<![CDATA[public interface Naming extends Serializable {\n"
+"   \n"
+"   /**\n"
+"    * Typed JNDI lookup\n"
+"    * \n"
+"    * @param <T> The type\n"
+"    * @param name The JNDI name\n"
+"    * @param expectedType The expected type\n"
+"    * @return The object\n"
+"    */\n"
+"   public <T> T lookup(String name, Class<? extends T> expectedType);\n"
+"\n"
+"   /**\n"
+"    * Binds an item to JNDI\n"
+"    * \n"
+"    * @param key The key to bind under\n"
+"    * @param value The item to bind\n"
+"    */\n"
+"   public void bind(String key, Object value);\n"
+"   \n"
+"}]]>"
 
 #. Tag: para
 #: ri-spi.xml:92 ri-spi.xml:113
@@ -283,13 +408,13 @@
 #: ri-spi.xml:96
 #, no-c-format
 msgid "org.jboss.webbeans.resources.spi.Naming=com.acme.MyNaming"
-msgstr ""
+msgstr "org.jboss.webbeans.resources.spi.Naming=com.acme.MyNaming"
 
 #. Tag: title
 #: ri-spi.xml:101
 #, no-c-format
 msgid "Resource loading"
-msgstr ""
+msgstr "資源載入"
 
 #. Tag: para
 #: ri-spi.xml:103
@@ -336,12 +461,41 @@
 "}\n"
 "         ]]>"
 msgstr ""
+"<![CDATA[\n"
+"         public interface ResourceLoader {\n"
+"    \n"
+"   /**\n"
+"    * Creates a class from a given FQCN\n"
+"    * \n"
+"    * @param name The name of the clsas\n"
+"    * @return The class\n"
+"    */\n"
+"   public Class<?> classForName(String name);\n"
+"   \n"
+"   /**\n"
+"    * Gets a resource as a URL by name\n"
+"    * \n"
+"    * @param name The name of the resource\n"
+"    * @return An URL to the resource\n"
+"    */\n"
+"   public URL getResource(String name);\n"
+"   \n"
+"   /**\n"
+"    * Gets resources as URLs by name\n"
+"    * \n"
+"    * @param name The name of the resource\n"
+"    * @return An iterable reference to the URLS\n"
+"    */\n"
+"   public Iterable<URL> getResources(String name);\n"
+"   \n"
+"}\n"
+"         ]]>"
 
 #. Tag: programlisting
 #: ri-spi.xml:117
 #, no-c-format
 msgid "org.jboss.webbeans.resources.spi.ResourceLoader=com.acme.ResourceLoader"
-msgstr ""
+msgstr "org.jboss.webbeans.resources.spi.ResourceLoader=com.acme.ResourceLoader"
 
 #. Tag: title
 #: ri-spi.xml:124
@@ -376,7 +530,7 @@
 #: ri-spi.xml:147
 #, no-c-format
 msgid "The <literal>webbeans-ri.jar</literal>"
-msgstr ""
+msgstr "<literal>webbeans-ri.jar</literal>"
 
 #. Tag: para
 #: ri-spi.xml:151
@@ -387,3 +541,4 @@
 "literal> into the applications isolated classloader. It cannot be loaded "
 "from a shared classloader."
 msgstr ""
+

Modified: doc/trunk/reference/zh-TW/ri.po
===================================================================
--- doc/trunk/reference/zh-TW/ri.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/ri.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of ri.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: ri\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 10:58+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: ri.xml:4
@@ -49,13 +52,13 @@
 #: ri.xml:25
 #, no-c-format
 msgid "JBoss AS 5.0.0.GA, and"
-msgstr ""
+msgstr "JBoss AS 5.0.0.GA,以及"
 
 #. Tag: para
 #: ri.xml:28
 #, no-c-format
 msgid "Ant 1.7.0."
-msgstr ""
+msgstr "Ant 1.7.0。"
 
 #. Tag: para
 #: ri.xml:32
@@ -73,6 +76,8 @@
 "<![CDATA[$ cd /Applications\n"
 "$ unzip ~/jboss-5.0.0.GA.zip]]>"
 msgstr ""
+"<![CDATA[$ cd /Applications\n"
+"$ unzip ~/jboss-5.0.0.GA.zip]]>"
 
 #. Tag: para
 #: ri.xml:41
@@ -89,6 +94,8 @@
 "<![CDATA[$ cd ~/\n"
 "$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
 msgstr ""
+"<![CDATA[$ cd ~/\n"
+"$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
 
 #. Tag: para
 #: ri.xml:50
@@ -103,7 +110,7 @@
 #: ri.xml:56
 #, no-c-format
 msgid "jboss.home=/Applications/jboss-5.0.0.GA"
-msgstr ""
+msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
 
 #. Tag: para
 #: ri.xml:58
@@ -140,6 +147,8 @@
 "$ unzip apache-ant-1.7.0.zip\n"
 "$ export ANT_HOME=~/apache-ant-1.7.0"
 msgstr ""
+"$ unzip apache-ant-1.7.0.zip\n"
+"$ export ANT_HOME=~/apache-ant-1.7.0"
 
 #. Tag: para
 #: ri.xml:81
@@ -156,6 +165,8 @@
 "$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
 "$ ant update"
 msgstr ""
+"$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
+"$ ant update"
 
 #. Tag: para
 #: ri.xml:88
@@ -166,8 +177,7 @@
 #. Tag: para
 #: ri.xml:93
 #, no-c-format
-msgid ""
-"The build scripts for the examples offer a number of targets, these are:"
+msgid "The build scripts for the examples offer a number of targets, these are:"
 msgstr ""
 
 #. Tag: para
@@ -187,8 +197,7 @@
 #. Tag: para
 #: ri.xml:111
 #, no-c-format
-msgid ""
-"<literal>ant deploy</literal> - deploy the example in compressed jar format"
+msgid "<literal>ant deploy</literal> - deploy the example in compressed jar format"
 msgstr ""
 
 #. Tag: para
@@ -216,6 +225,8 @@
 "$ cd examples/numberguess\n"
 "ant deploy"
 msgstr ""
+"$ cd examples/numberguess\n"
+"ant deploy"
 
 #. Tag: para
 #: ri.xml:134
@@ -242,6 +253,8 @@
 "$ cd examples/translator\n"
 "ant deploy"
 msgstr ""
+"$ cd examples/translator\n"
+"ant deploy"
 
 #. Tag: para
 #: ri.xml:148
@@ -302,6 +315,18 @@
 "\n"
 "</faces-config>]]>"
 msgstr ""
+"<![CDATA[<?xml version='1.0' encoding='UTF-8'?>\n"
+"<faces-config version=\"1.2\"\n"
+"              xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"              xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"              xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://"
+"java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd\">\n"
+"    \n"
+"    <application>\n"
+"        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+"    </application>\n"
+"\n"
+"</faces-config>]]>"
 
 #. Tag: para
 #: ri.xml:178
@@ -315,7 +340,7 @@
 #: ri.xml:183
 #, no-c-format
 msgid "Finally there is <literal>web.xml</literal>:"
-msgstr ""
+msgstr "最後為 <literal>web.xml</literal>:"
 
 #. Tag: section
 #: ri.xml:185
@@ -447,6 +472,131 @@
 "to an action method on the Web Bean. </para> </callout> </calloutlist> </"
 "programlistingco>"
 msgstr ""
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
+"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
+"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
+"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"\n"
+"<web-app version=\"2.5\"\n"
+"    xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+"    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"    xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun."
+"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+"   \n"
+"   <display-name>Web Beans Numbergues example</display-name>\n"
+"\n"
+"   <!-- JSF -->\n"
+"\n"
+"   <servlet>\n"
+"      <servlet-name>Faces Servlet</servlet-name>\n"
+"      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>\n"
+"      <load-on-startup>1</load-on-startup>\n"
+"   </servlet>\n"
+"\n"
+"   <servlet-mapping>\n"
+"      <servlet-name>Faces Servlet</servlet-name>\n"
+"      <url-pattern>*.jsf</url-pattern>\n"
+"   </servlet-mapping>\n"
+"   \n"
+"   <context-param>\n"
+"      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+"      <param-value>.xhtml</param-value>\n"
+"   </context-param>\n"
+"\n"
+"   <session-config>\n"
+"      <session-timeout>10</session-timeout>\n"
+"   </session-config>\n"
+"   \n"
+"    <listener>\n"
+"       <listener-class>org.jboss.webbeans.servlet.WebBeansListener</listener-"
+"class>\n"
+"    </listener>\n"
+"\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
+"giving our source files (facelets) an extension of <literal>.jsf</literal> </"
+"para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
+"session timeout of 10 minutes </para> </callout> <callout arearefs="
+"\"webbeans.listener\"> <para> Configure the Web Beans listener, so that Web "
+"Beans services can be used in the servlet request </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> The only configuration "
+"required by the Web Beans RI in <literal>web.xml</literal> is to add the Web "
+"Beans listener. </para> <para> Whilst this demo is a JSF demo, you can use "
+"the Web Beans RI with any Servlet based web framework; just configure the "
+"Web Beans listener. </para> </note> <para> Let's take a look at the Facelet "
+"view: </para> <programlistingco> <areaspec> <area id=\"template\" coords=\"8"
+"\"/> <area id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords="
+"\"19\"/> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords="
+"\"30\"/> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><!"
+"[CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+"<html xmlns=\"http://www.w3.org/1999/xhtml\"\n"
+"    xmlns:ui=\"http://java.sun.com/jsf/facelets\"\n"
+"    xmlns:h=\"http://java.sun.com/jsf/html\"\n"
+"    xmlns:f=\"http://java.sun.com/jsf/core\"\n"
+"    xmlns:s=\"http://jboss.com/products/seam/taglib\">\n"
+"\n"
+"  <ui:composition template=\"template.xhtml\">\n"
+"    <ui:define name=\"content\">\n"
+"       <h1>Guess a number...</h1>\n"
+"       <h:form id=\"NumberGuessMain\">\n"
+"          <div style=\"color: red\">\n"
+"             <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
+"             <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
+"number gt game.guess and game.guess ne 0}\"/>\n"
+"             <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
+"number lt game.guess and game.guess ne 0}\"/>\n"
+"          </div>\n"
+"   \n"
+"          <div>\n"
+"             I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
+"             You have #{game.remainingGuesses} guesses.\n"
+"          </div>\n"
+"     \n"
+"          <div>\n"
+"             Your guess: \n"
+"             <h:inputText id=\"inputGuess\" \n"
+"                          value=\"#{game.guess}\" \n"
+"                          required=\"true\" \n"
+"                          size=\"3\" \n"
+"                          disabled=\"#{game.number eq game.guess}\">\n"
+"                <f:validateLongRange maximum=\"#{game.biggest}\" \n"
+"                                     minimum=\"#{game.smallest}\"/>\n"
+"             </h:inputText>\n"
+"            <h:commandButton id=\"GuessButton\"  \n"
+"                             value=\"Guess\" \n"
+"                             action=\"#{game.check}\" \n"
+"                             disabled=\"#{game.number eq game.guess}\"/>\n"
+"          </div>\n"
+"          <div>\n"
+"            <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
+"{game.reset}\" immediate=\"true\" />\n"
+"          </div>\n"
+"       </h:form>\n"
+"    </ui:define>\n"
+"  </ui:composition>\n"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is a templating language for JSF, here we are wrapping our "
+"page in a template which defines the header. </para> </callout> <callout "
+"arearefs=\"messages\"> <para> There are a number of messages which can be "
+"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
+"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
+"range of numbers they can guess gets smaller - this sentance changes to make "
+"sure they know what range to guess in. </para> </callout> <callout arearefs="
+"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
+"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
+"range validator is used to make sure the user doesn't accidentally input a "
+"number outside of the range in which they can guess - if the validator "
+"wasn't here, the user might use up a guess on an out of range number. </"
+"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
+"must be a way for the user to send their guess to the server. Here we bind "
+"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
+"programlistingco>"
 
 #. Tag: para
 #: ri.xml:298
@@ -467,6 +617,11 @@
 "@BindingType\n"
 "public @interface Random {}]]>"
 msgstr ""
+"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"@Documented\n"
+"@BindingType\n"
+"public @interface Random {}]]>"
 
 #. Tag: para
 #: ri.xml:306
@@ -487,6 +642,12 @@
 "public @interface MaxNumber {}\n"
 "]]>"
 msgstr ""
+"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
+"@Retention(RUNTIME)\n"
+"@Documented\n"
+"@BindingType\n"
+"public @interface MaxNumber {}\n"
+"]]>"
 
 #. Tag: para
 #: ri.xml:313
@@ -525,6 +686,29 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator {\n"
+"   \n"
+"   private java.util.Random random = new java.util.Random( System."
+"currentTimeMillis() );\n"
+"   \n"
+"   private int maxNumber = 100;\n"
+"   \n"
+"   java.util.Random getRandom()\n"
+"   {\n"
+"      return random;\n"
+"   }\n"
+"   \n"
+"   @Produces @Random int next() { \n"
+"      return getRandom().nextInt(maxNumber); \n"
+"   }\n"
+"   \n"
+"   @Produces @MaxNumber int getMaxNumber()\n"
+"   {\n"
+"      return maxNumber;\n"
+"   }\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: ri.xml:321
@@ -654,6 +838,102 @@
 "   \n"
 "}]]>"
 msgstr ""
+"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+"\n"
+"\n"
+"import javax.annotation.PostConstruct;\n"
+"import javax.faces.application.FacesMessage;\n"
+"import javax.faces.context.FacesContext;\n"
+"import javax.webbeans.AnnotationLiteral;\n"
+"import javax.webbeans.Current;\n"
+"import javax.webbeans.Initializer;\n"
+"import javax.webbeans.Named;\n"
+"import javax.webbeans.SessionScoped;\n"
+"import javax.webbeans.manager.Manager;\n"
+"\n"
+"@Named\n"
+"@SessionScoped\n"
+"public class Game\n"
+"{\n"
+"   private int number;\n"
+"   \n"
+"   private int guess;\n"
+"   private int smallest;\n"
+"   private int biggest;\n"
+"   private int remainingGuesses;\n"
+"   \n"
+"   @Current Manager manager;\n"
+"   \n"
+"   public Game()\n"
+"   {\n"
+"   }\n"
+"   \n"
+"   @Initializer\n"
+"   Game(@MaxNumber int maxNumber)\n"
+"   {      \n"
+"      this.biggest = maxNumber;\n"
+"   }\n"
+"\n"
+"   public int getNumber()\n"
+"   {\n"
+"      return number;\n"
+"   }\n"
+"   \n"
+"   public int getGuess()\n"
+"   {\n"
+"      return guess;\n"
+"   }\n"
+"   \n"
+"   public void setGuess(int guess)\n"
+"   {\n"
+"      this.guess = guess;\n"
+"   }\n"
+"   \n"
+"   public int getSmallest()\n"
+"   {\n"
+"      return smallest;\n"
+"   }\n"
+"   \n"
+"   public int getBiggest()\n"
+"   {\n"
+"      return biggest;\n"
+"   }\n"
+"   \n"
+"   public int getRemainingGuesses()\n"
+"   {\n"
+"      return remainingGuesses;\n"
+"   }\n"
+"   \n"
+"   public String check()\n"
+"   {\n"
+"      if (guess>number)\n"
+"      {\n"
+"         biggest = guess - 1;\n"
+"      }\n"
+"      if (guess<number)\n"
+"      {\n"
+"         smallest = guess + 1;\n"
+"      }\n"
+"      if (guess == number)\n"
+"      {\n"
+"         FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
+"      }\n"
+"      remainingGuesses--;\n"
+"      return null;\n"
+"   }\n"
+"   \n"
+"   @PostConstruct\n"
+"   public void reset()\n"
+"   {\n"
+"      this.smallest = 0;\n"
+"      this.guess = 0;\n"
+"      this.remainingGuesses = 10;\n"
+"      this.number = manager.getInstanceByType(Integer.class, new "
+"AnnotationLiteral<Random>(){});\n"
+"   }\n"
+"   \n"
+"}]]>"
 
 #. Tag: title
 #: ri.xml:343
@@ -718,6 +998,23 @@
 "   </configuration>\n"
 "</plugin>]]>"
 msgstr ""
+"<![CDATA[<plugin>\n"
+"   <groupId>org.apache.maven.plugins</groupId>\n"
+"   <artifactId>maven-ear-plugin</artifactId>\n"
+"   <configuration>\n"
+"      <modules>\n"
+"         <webModule>\n"
+"            <groupId>org.jboss.webbeans.examples.translator</groupId>\n"
+"            <artifactId>webbeans-translator-war</artifactId>\n"
+"            <contextRoot>/webbeans-translator</contextRoot>\n"
+"         </webModule>\n"
+"      </modules>\n"
+"      <jboss>\n"
+"         <loader-repository>webbeans.jboss.org:loader=webbeans-translator</"
+"loader-repository>\n"
+"      </jboss>\n"
+"   </configuration>\n"
+"</plugin>]]>"
 
 #. Tag: para
 #: ri.xml:372
@@ -750,12 +1047,20 @@
 "repository>\n"
 "</jboss-app>]]>"
 msgstr ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<!DOCTYPE jboss-app\n"
+"    PUBLIC \"-//JBoss//DTD J2EE Application 4.2//EN\"\n"
+"    \"http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd\">\n"
+"<jboss-app>\n"
+"  <loader-repository>webbeans.jboss.org:loader=webbeans-translator</loader-"
+"repository>\n"
+"</jboss-app>]]>"
 
 #. Tag: para
 #: ri.xml:387
 #, no-c-format
 msgid "and <literal>META-INF/application.xml</literal>:"
-msgstr ""
+msgstr "以及 <literal>META-INF/application.xml</literal>:"
 
 #. Tag: programlisting
 #: ri.xml:391
@@ -782,6 +1087,26 @@
 "  </module>\n"
 "</application>]]>"
 msgstr ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<application xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"             xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"             xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://"
+"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+"             version=\"5\">\n"
+"  <display-name>webbeans-translator-ear</display-name>\n"
+"  <description>Ear Example for the reference implementation of JSR 299: Web "
+"Beans</description>\n"
+"  \n"
+"  <module>\n"
+"    <web>\n"
+"      <web-uri>webbeans-translator.war</web-uri>\n"
+"      <context-root>/webbeans-translator</context-root>\n"
+"    </web>\n"
+"  </module>\n"
+"  <module>\n"
+"    <ejb>webbeans-translator.jar</ejb>\n"
+"  </module>\n"
+"</application>]]>"
 
 #. Tag: para
 #: ri.xml:394
@@ -834,6 +1159,33 @@
 "   \n"
 "</h:form>]]>"
 msgstr ""
+"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
+"            \n"
+"   <table>\n"
+"      <tr align=\"center\" style=\"font-weight: bold\" >\n"
+"         <td>\n"
+"            Your text\n"
+"         </td>\n"
+"         <td>\n"
+"            Translation\n"
+"         </td>\n"
+"      </tr>\n"
+"      <tr>\n"
+"         <td>\n"
+"            <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\" />\n"
+"         </td>\n"
+"         <td>\n"
+"            <h:outputText value=\"#{translator.translatedText}\" />\n"
+"         </td>\n"
+"      </tr>\n"
+"   </table>\n"
+"   <div>\n"
+"      <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
+"   </div>\n"
+"   \n"
+"</h:form>]]>"
 
 #. Tag: para
 #: ri.xml:409
@@ -884,6 +1236,29 @@
 "   \n"
 "</ejb-jar>]]>"
 msgstr ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<ejb-jar xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+"         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
+"         xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java."
+"sun.com/xml/ns/javaee/ejb-jar_3_0.xsd\"\n"
+"         version=\"3.0\">\n"
+"         \n"
+"   <interceptors>\n"
+"     <interceptor>\n"
+"       <interceptor-class>org.jboss.webbeans.ejb.SessionBeanInterceptor</"
+"interceptor-class>\n"
+"     </interceptor>\n"
+"   </interceptors>\n"
+"   \n"
+"   <assembly-descriptor>\n"
+"      <interceptor-binding>\n"
+"         <ejb-name>*</ejb-name>\n"
+"         <interceptor-class>org.jboss.webbeans.ejb.SessionBeanInterceptor</"
+"interceptor-class>\n"
+"      </interceptor-binding>\n"
+"   </assembly-descriptor>\n"
+"   \n"
+"</ejb-jar>]]>"
 
 #. Tag: para
 #: ri.xml:428
@@ -921,6 +1296,16 @@
 "      this.sentenceParser = sentenceParser; \n"
 "      this.sentenceTranslator = sentenceTranslator;]]>"
 msgstr ""
+"<![CDATA[public class TextTranslator { \n"
+"   private SentenceParser sentenceParser; \n"
+"   private Translator sentenceTranslator; \n"
+"   \n"
+"   @Initializer\n"
+"   TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) \n"
+"   { \n"
+"      this.sentenceParser = sentenceParser; \n"
+"      this.sentenceTranslator = sentenceTranslator;]]>"
 
 #. Tag: para
 #: ri.xml:446
@@ -952,6 +1337,13 @@
 "   \n"
 "   @Current TextTranslator translator;]]>"
 msgstr ""
+"<![CDATA[@Stateful\n"
+"@RequestScoped\n"
+"@Named(\"translator\")\n"
+"public class TranslatorControllerBean implements TranslatorController\n"
+"{\n"
+"   \n"
+"   @Current TextTranslator translator;]]>"
 
 #. Tag: para
 #: ri.xml:460
@@ -975,6 +1367,11 @@
 "      \n"
 "   }]]>"
 msgstr ""
+"<![CDATA[   @Remove\n"
+"   public void remove()\n"
+"   {\n"
+"      \n"
+"   }]]>"
 
 #. Tag: para
 #: ri.xml:470
@@ -1001,3 +1398,4 @@
 "We need help in all areas - bug fixing, writing new features, writing "
 "examples and translating this reference guide."
 msgstr ""
+

Modified: doc/trunk/reference/zh-TW/scopescontexts.po
===================================================================
--- doc/trunk/reference/zh-TW/scopescontexts.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/scopescontexts.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of scopescontexts.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: scopescontexts\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 11:01+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: scopescontexts.xml:4
@@ -45,8 +48,7 @@
 #. Tag: para
 #: scopescontexts.xml:20
 #, no-c-format
-msgid ""
-"Which injected references refer to any instance of a Web Bean with that scope"
+msgid "Which injected references refer to any instance of a Web Bean with that scope"
 msgstr ""
 
 #. Tag: para
@@ -84,6 +86,10 @@
 "@ScopeType\n"
 "public @interface ClusterScoped {}]]>"
 msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD})\n"
+"@ScopeType\n"
+"public @interface ClusterScoped {}]]>"
 
 #. Tag: para
 #: scopescontexts.xml:39
@@ -110,6 +116,8 @@
 "<![CDATA[@ClusterScoped\n"
 "public class SecondLevelCache { ... }]]>"
 msgstr ""
+"<![CDATA[@ClusterScoped\n"
+"public class SecondLevelCache { ... }]]>"
 
 #. Tag: para
 #: scopescontexts.xml:58
@@ -133,25 +141,25 @@
 #: scopescontexts.xml:69
 #, no-c-format
 msgid "@RequestScoped"
-msgstr ""
+msgstr "@RequestScoped"
 
 #. Tag: literal
 #: scopescontexts.xml:72
 #, no-c-format
 msgid "@SessionScoped"
-msgstr ""
+msgstr "@SessionScoped"
 
 #. Tag: literal
 #: scopescontexts.xml:75
 #, no-c-format
 msgid "@ApplicationScoped"
-msgstr ""
+msgstr "@ApplicationScoped"
 
 #. Tag: literal
 #: scopescontexts.xml:78
 #, no-c-format
 msgid "@ConversationScoped"
-msgstr ""
+msgstr "@ConversationScoped"
 
 #. Tag: para
 #: scopescontexts.xml:82
@@ -290,7 +298,7 @@
 #: scopescontexts.xml:154
 #, no-c-format
 msgid "@Current Conversation conversation;"
-msgstr ""
+msgstr "@Current Conversation conversation;"
 
 #. Tag: para
 #: scopescontexts.xml:156
@@ -346,6 +354,36 @@
 "    \n"
 "}"
 msgstr ""
+"@ConversationScoped @Stateful\n"
+"public class OrderBuilder {\n"
+"\n"
+"    private Order order;\n"
+"    private @Current Conversation conversation;\n"
+"    private @PersistenceContext(type=EXTENDED) EntityManager em;\n"
+"    \n"
+"    @Produces public Order getOrder() {\n"
+"        return order;\n"
+"    }\n"
+"\n"
+"    public Order createOrder() {\n"
+"        order = new Order();\n"
+"        conversation.begin();\n"
+"        return order;\n"
+"    }\n"
+"    \n"
+"    public void addLineItem(Product product, int quantity) {\n"
+"        order.add( new LineItem(product, quantity) );\n"
+"    }\n"
+"\n"
+"    public void saveOrder(Order order) {\n"
+"        em.persist(order);\n"
+"        conversation.end();\n"
+"    }\n"
+"    \n"
+"    @Remove\n"
+"    public void destroy() {}\n"
+"    \n"
+"}"
 
 #. Tag: para
 #: scopescontexts.xml:166
@@ -396,6 +434,8 @@
 "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
 ">"
 msgstr ""
+"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
+">"
 
 #. Tag: para
 #: scopescontexts.xml:190
@@ -438,7 +478,7 @@
 #: scopescontexts.xml:212
 #, no-c-format
 msgid "conversation.setTimeout(timeoutInMillis);"
-msgstr ""
+msgstr "conversation.setTimeout(timeoutInMillis);"
 
 #. Tag: title
 #: scopescontexts.xml:219
@@ -458,15 +498,14 @@
 #. Tag: para
 #: scopescontexts.xml:225
 #, no-c-format
-msgid ""
-"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+msgid "For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
 msgstr ""
 
 #. Tag: programlisting
 #: scopescontexts.xml:227
 #, no-c-format
 msgid "<![CDATA[public class Calculator { ... }]]>"
-msgstr ""
+msgstr "<![CDATA[public class Calculator { ... }]]>"
 
 #. Tag: para
 #: scopescontexts.xml:229
@@ -515,7 +554,7 @@
 #: scopescontexts.xml:254
 #, no-c-format
 msgid "<![CDATA[@New Calculator calculator;]]>"
-msgstr ""
+msgstr "<![CDATA[@New Calculator calculator;]]>"
 
 #. Tag: para
 #: scopescontexts.xml:256
@@ -542,6 +581,8 @@
 "<![CDATA[@ConversationScoped\n"
 "public class Calculator { ... }]]>"
 msgstr ""
+"<![CDATA[@ConversationScoped\n"
+"public class Calculator { ... }]]>"
 
 #. Tag: para
 #: scopescontexts.xml:266
@@ -562,6 +603,12 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public class PaymentCalc {\n"
+"\n"
+"    @Current Calculator calculator;\n"
+"    @New Calculator newCalculator;\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: scopescontexts.xml:271
@@ -580,3 +627,4 @@
 "This feature is particularly useful with producer methods, as we'll see in "
 "the next chapter."
 msgstr ""
+

Modified: doc/trunk/reference/zh-TW/specialization.po
===================================================================
--- doc/trunk/reference/zh-TW/specialization.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/specialization.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of specialization.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: specialization\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 11:01+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: specialization.xml:4
@@ -39,6 +42,11 @@
 "    ...\n"
 "}"
 msgstr ""
+"@CreditCard @Stateless\n"
+"public class CreditCardPaymentProcessor \n"
+"        implements PaymentProcessor {\n"
+"    ...\n"
+"}"
 
 #. Tag: para
 #: specialization.xml:13
@@ -58,6 +66,11 @@
 "    ...\n"
 "}"
 msgstr ""
+"@CreditCard @Stateless @Staging\n"
+"public class StagingCreditCardPaymentProcessor \n"
+"        implements PaymentProcessor {\n"
+"    ...\n"
+"}"
 
 #. Tag: para
 #: specialization.xml:18
@@ -75,7 +88,7 @@
 #: specialization.xml:24
 #, no-c-format
 msgid "@CreditCard PaymentProcessor ccpp"
-msgstr ""
+msgstr "@CreditCard PaymentProcessor ccpp"
 
 #. Tag: para
 #: specialization.xml:26
@@ -187,6 +200,11 @@
 "    ...\n"
 "}"
 msgstr ""
+"@Stateless @Staging @Specializes\n"
+"public class StagingCreditCardPaymentProcessor \n"
+"        extends CreditCardPaymentProcessor {\n"
+"    ...\n"
+"}"
 
 #. Tag: para
 #: specialization.xml:79
@@ -269,8 +287,7 @@
 #. Tag: para
 #: specialization.xml:124
 #, no-c-format
-msgid ""
-"there is no other enabled Web Bean that also specializes the superclass."
+msgid "there is no other enabled Web Bean that also specializes the superclass."
 msgstr ""
 
 #. Tag: para
@@ -289,3 +306,4 @@
 "emphasis> be called in any deployment of the system where the Web Bean "
 "annotated <literal>@Specializes</literal> is deployed and enabled."
 msgstr ""
+

Modified: doc/trunk/reference/zh-TW/stereotypes.po
===================================================================
--- doc/trunk/reference/zh-TW/stereotypes.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/stereotypes.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of stereotypes.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: stereotypes\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 11:02+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: stereotypes.xml:4
@@ -102,6 +105,10 @@
 "@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"@Stereotype\n"
+"public @interface Action {}]]>"
 
 #. Tag: para
 #: stereotypes.xml:46
@@ -116,6 +123,8 @@
 "<![CDATA[@Action \n"
 "public class LoginAction { ... }]]>"
 msgstr ""
+"<![CDATA[@Action \n"
+"public class LoginAction { ... }]]>"
 
 #. Tag: title
 #: stereotypes.xml:51
@@ -145,6 +154,12 @@
 "@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"@RequestScoped\n"
+"@WebTier\n"
+"@Stereotype\n"
+"public @interface Action {}]]>"
 
 #. Tag: para
 #: stereotypes.xml:61
@@ -161,12 +176,13 @@
 "<![CDATA[@Dependent @Mock @Action \n"
 "public class MockLoginAction { ... }]]>"
 msgstr ""
+"<![CDATA[@Dependent @Mock @Action \n"
+"public class MockLoginAction { ... }]]>"
 
 #. Tag: para
 #: stereotypes.xml:66
 #, no-c-format
-msgid ""
-"If we want to force all actions to a particular scope, we can do that too."
+msgid "If we want to force all actions to a particular scope, we can do that too."
 msgstr ""
 
 #. Tag: title
@@ -195,6 +211,8 @@
 "@Stereotype(supportedScopes=RequestScoped.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
+"<![CDATA[@Dependent @Mock @Action \n"
+"public class MockLoginAction { ... }]]>"
 
 #. Tag: para
 #: stereotypes.xml:80
@@ -224,6 +242,12 @@
 "@Stereotype(requiredTypes=AbstractAction.class)\n"
 "public @interface Action {}]]>"
 msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"@RequestScoped\n"
+"@WebTier\n"
+"@Stereotype(requiredTypes=AbstractAction.class)\n"
+"public @interface Action {}]]>"
 
 #. Tag: para
 #: stereotypes.xml:89
@@ -261,6 +285,14 @@
 "@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@WebTier\n"
+"@Stereotype\n"
+"public @interface Action {}]]>"
 
 #. Tag: para
 #: stereotypes.xml:103
@@ -300,6 +332,15 @@
 "@Stereotype\n"
 "public @interface Action {}]]>"
 msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target(TYPE)\n"
+"@RequestScoped\n"
+"@Transactional(requiresNew=true)\n"
+"@Secure\n"
+"@Named\n"
+"@WebTier\n"
+"@Stereotype\n"
+"public @interface Action {}]]>"
 
 #. Tag: para
 #: stereotypes.xml:118
@@ -341,6 +382,12 @@
 "@Retention(RUNTIME) \n"
 "public @interface Model {} ]]>"
 msgstr ""
+"<![CDATA[@Named \n"
+"@RequestScoped \n"
+"@Stereotype \n"
+"@Target({TYPE, METHOD}) \n"
+"@Retention(RUNTIME) \n"
+"public @interface Model {} ]]>"
 
 #. Tag: para
 #: stereotypes.xml:133
@@ -350,3 +397,4 @@
 "beans, just annotate a Web Bean <literal>@Model</literal>, and use it "
 "directly in your JSF page."
 msgstr ""
+

Modified: doc/trunk/reference/zh-TW/xml.po
===================================================================
--- doc/trunk/reference/zh-TW/xml.po	2009-01-08 01:15:10 UTC (rev 819)
+++ doc/trunk/reference/zh-TW/xml.po	2009-01-08 02:40:29 UTC (rev 820)
@@ -1,17 +1,20 @@
+# translation of xml.po to Traditional Chinese
 # Language zh-TW translations for Introduction_to_Web_Beans package.
+#
 # Automatically generated, 2009.
-#
+# Terry Chuang <tchuang at redhat.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: xml\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-08 11:03+1000\n"
+"Last-Translator: Terry Chuang <tchuang at redhat.com>\n"
+"Language-Team: Traditional Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
 
 #. Tag: title
 #: xml.xml:4
@@ -37,8 +40,7 @@
 #. Tag: para
 #: xml.xml:15
 #, no-c-format
-msgid ""
-"when there should be multiple Web Beans with the same implementation class."
+msgid "when there should be multiple Web Beans with the same implementation class."
 msgstr ""
 
 #. Tag: para
@@ -128,6 +130,12 @@
 "\n"
 "</WebBeans>]]>"
 msgstr ""
+"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
+"          xmlns:util=\"urn:java:java.util\">\n"
+"\n"
+"    <util:Date/>\n"
+"\n"
+"</WebBeans>]]>"
 
 #. Tag: para
 #: xml.xml:58
@@ -142,7 +150,7 @@
 #: xml.xml:62
 #, no-c-format
 msgid "<![CDATA[@Current Date date]]>"
-msgstr ""
+msgstr "<![CDATA[@Current Date date]]>"
 
 #. Tag: title
 #: xml.xml:67
@@ -168,6 +176,11 @@
 "    <myfwk:Secure/>\n"
 "</myapp:ShoppingCart>]]>"
 msgstr ""
+"<![CDATA[<myapp:ShoppingCart>\n"
+"    <SessionScoped/>\n"
+"    <myfwk:Transactional requiresNew=\"true\"/>\n"
+"    <myfwk:Secure/>\n"
+"</myapp:ShoppingCart>]]>"
 
 #. Tag: para
 #: xml.xml:74
@@ -195,6 +208,21 @@
 "    <Named>systemStartTime</Named>\n"
 "</util:Date>]]>"
 msgstr ""
+"<![CDATA[<util:Date>\n"
+"    <Named>currentTime</Named>\n"
+"</util:Date>\n"
+"\n"
+"<util:Date>\n"
+"    <SessionScoped/>\n"
+"    <myapp:Login/>\n"
+"    <Named>loginTime</Named>\n"
+"</util:Date>\n"
+"\n"
+"<util:Date>\n"
+"    <ApplicationScoped/>\n"
+"    <myapp:SystemStart/>\n"
+"    <Named>systemStartTime</Named>\n"
+"</util:Date>]]>"
 
 #. Tag: para
 #: xml.xml:78
@@ -212,6 +240,9 @@
 "@Login Date loginTime;\n"
 "@SystemStart Date systemStartTime;]]>"
 msgstr ""
+"<![CDATA[@Current Date currentTime;\n"
+"@Login Date loginTime;\n"
+"@SystemStart Date systemStartTime;]]>"
 
 #. Tag: para
 #: xml.xml:83
@@ -228,6 +259,10 @@
 "    <myapp:Asynchronous/>\n"
 "</myapp:AsynchronousChequePaymentProcessor>]]>"
 msgstr ""
+"<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
+"    <myapp:PayByCheque/>\n"
+"    <myapp:Asynchronous/>\n"
+"</myapp:AsynchronousChequePaymentProcessor>]]>"
 
 #. Tag: para
 #: xml.xml:87
@@ -246,6 +281,10 @@
 "    <myfwk:Transactional/>\n"
 "</myfwk:TransactionInterceptor>]]>"
 msgstr ""
+"<![CDATA[<myfwk:TransactionInterceptor>\n"
+"    <Interceptor/>\n"
+"    <myfwk:Transactional/>\n"
+"</myfwk:TransactionInterceptor>]]>"
 
 #. Tag: title
 #: xml.xml:95
@@ -286,6 +325,16 @@
 "    </myapp:admin>\n"
 "</myapp:System>]]>"
 msgstr ""
+"<![CDATA[<myapp:System>\n"
+"    <ApplicationScoped/>\n"
+"    <myapp:admin>\n"
+"        <myapp:Name>\n"
+"            <myapp:firstname>Gavin</myapp:firstname>\n"
+"            <myapp:lastname>King</myapp:lastname>\n"
+"            <myapp:email>gavin at hibernate.org</myapp:email>\n"
+"        </myapp:Name>\n"
+"    </myapp:admin>\n"
+"</myapp:System>]]>"
 
 #. Tag: para
 #: xml.xml:110
@@ -341,6 +390,19 @@
 "\n"
 "</WebBeans>]]>"
 msgstr ""
+"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
+"          xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+"          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"          xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
+"jee/web-beans-1.0.xsd\n"
+"                              urn:java:com.mydomain.myapp http://mydomain."
+"com/xsd/myapp-1.2.xsd\">\n"
+"\n"
+"    <myapp:System>\n"
+"        ...\n"
+"    </myapp:System>\n"
+"\n"
+"</WebBeans>]]>"
 
 #. Tag: para
 #: xml.xml:132
@@ -350,3 +412,4 @@
 "will provide a tool which automatically generates the XML schema from "
 "compiled Java code."
 msgstr ""
+




More information about the weld-commits mailing list