<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to UIMultiLang</title><link>https://sourceforge.net/p/xe-core/wiki/UIMultiLang/</link><description>Recent changes to UIMultiLang</description><atom:link href="https://sourceforge.net/p/xe-core/wiki/UIMultiLang/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 25 Mar 2015 11:09:17 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/xe-core/wiki/UIMultiLang/feed" rel="self" type="application/rss+xml"/><item><title>UIMultiLang modified by Anonymous</title><link>https://sourceforge.net/p/xe-core/wiki/UIMultiLang/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="multi-language-editor"&gt;Multi Language Editor&lt;/h1&gt;
&lt;p&gt;사용자 정의 다국어를 선택하거나 추가 또는 수정할 때 사용할 수 있는 UI 패턴이다. &lt;/p&gt;
&lt;h2 id="basics"&gt;Basics&lt;/h2&gt;
&lt;p&gt;다국어 편집기 UI는 다음 템플릿 코드를 수정하여 사용할 수 있다. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"multiLangEdit"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"hidden"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"vLang"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"vLang"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"desc"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#langEdit"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"editUserLang tgAnchor"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Edit Multilingual text&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
...
...
&lt;span class="c"&gt;&amp;lt;!-- Multilingual editor layer --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"langEdit"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"langEdit tgContent"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;ul&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"langList"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"langInput"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;다국어 &lt;span class="nt"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;수정&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt; | &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#langEdit"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;추가&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
            {@
                /* move current language to the top */
                $a = array($lang_type=&amp;gt;$lang_supported&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$lang_type&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt;);
                unset($lang_supported&lt;span class="cp"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$lang_type&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt;);
                $lang_supported = array_merge($a, $lang_supported);
            }
            &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;loop=&lt;/span&gt;&lt;span class="s"&gt;"$lang_supported=&amp;gt;$code,$name"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"{$code}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"{$code}_var1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{$name}&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"{$code}_var1"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"action"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btnArea"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn small"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"사용|저장 후 사용"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"{getUrl('act','dispModuleAdminLangcode')}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;다국어 텍스트 관리&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;div.multiLangEdit&lt;/code&gt; 요소는 클래스 이름만 그대로 유지한다면 다른 요소로 대체해도 상관없다. 예를 들어, &lt;code&gt;div&lt;/code&gt;요소 대신 &lt;code&gt;td&lt;/code&gt;를 다음과 같이 사용할 수 있다. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;td&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"multiLangEdit"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"hidden"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"vLang"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"vLang"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"desc"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#langEdit"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"editUserLang tgAnchor"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Edit Multilingual text&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;div#langEdit&lt;/code&gt; 요소는 페이지에서 한 번만 입력하면 되며, 다국어 편집 링크 &lt;code&gt;a.editUserLang.tgAnchor&lt;/code&gt;는 &lt;code&gt;href&lt;/code&gt; 속성을 사용해 &lt;code&gt;#langEdit&lt;/code&gt; 요소를 가리켜야 한다. &lt;/p&gt;
&lt;p&gt;&lt;code&gt;input.vLang&lt;/code&gt; 요소의 첫 번째 요소에는 다국어의 고유한 이름(&lt;code&gt;name&lt;/code&gt;)이, 두 번째 요소에는 현재 사용 중인 언어의 텍스트값(&lt;code&gt;value&lt;/code&gt;)이 저장된다. 예를 들어, DB에 다음과 같이 저장된 다국어 텍스트가 있다고 가정해보자. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;lang_code&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;value&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;userlang1234 &lt;br /&gt;
en &lt;br /&gt;
Hello &lt;/p&gt;
&lt;p&gt;userlang1234 &lt;br /&gt;
ko &lt;br /&gt;
안녕하세요 &lt;/p&gt;
&lt;p&gt;userlang1234 &lt;br /&gt;
jp &lt;br /&gt;
こんにちは &lt;/p&gt;
&lt;p&gt;사용자 환경의 사용중인 언어가 한국어(&lt;code&gt;ko&lt;/code&gt;)일 때 &lt;code&gt;userlang1234&lt;/code&gt; 다국어 텍스트를 적용한 &lt;code&gt;input.vLang&lt;/code&gt;의 값은 다음과 동등하다. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"multiLangEdit"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"hidden"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"vLang"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"$user_lang-&amp;amp;gt;userlang1234"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"vLang"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"안녕하세요"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    ....
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anonymous</dc:creator><pubDate>Wed, 25 Mar 2015 11:09:17 -0000</pubDate><guid>https://sourceforge.netf0abbbda4f304972eefbc6442abbe18ba25b12d2</guid></item></channel></rss>