OSDN Git Service

...。
[ring-lang-081/ring.git] / docs / ja-jp / build / html / multilanguage.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6   <head>
7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8     
9     <title>多国語アプリケーション &mdash; プログラミング言語 Ring 1.12 取扱説明書</title>
10     
11     <link rel="stylesheet" href="_static/bootstrap-astropy.css" type="text/css" />
12     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
13     
14     <script type="text/javascript">
15       var DOCUMENTATION_OPTIONS = {
16         URL_ROOT:    './',
17         VERSION:     '1.12',
18         COLLAPSE_INDEX: false,
19         FILE_SUFFIX: '.html',
20         HAS_SOURCE:  true
21       };
22     </script>
23     <script type="text/javascript" src="_static/jquery.js"></script>
24     <script type="text/javascript" src="_static/underscore.js"></script>
25     <script type="text/javascript" src="_static/doctools.js"></script>
26     <script type="text/javascript" src="_static/translations.js"></script>
27     <link rel="top" title="プログラミング言語 Ring 1.12 取扱説明書" href="index.html" />
28     <link rel="next" title="Qt3D の用法" href="qt3d.html" />
29     <link rel="prev" title="フォームデザイナーの用法" href="formdesigner.html" />
30     <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,600' rel='stylesheet' type='text/css'/>
31
32   </head>
33   <body role="document">
34 <div class="topbar">
35   <a class="brand" title="Documentation Home" href="index.html"><span id="logotext1">&#x1f369;Ring</span><span id="logotext2"> 1.12</span><span id="logotext3">:docs</span></a>
36   <ul>
37     
38     <li><a href="http://ring-lang.sourceforge.net/news.html">News</a></li>
39     <li><a href="http://ring-lang.sourceforge.net/download.html">Download</a></li>
40     <li><a href="https://groups.google.com/forum/#!forum/ring-lang">Get Help</a></li>
41     <li><a href="https://github.com/ring-lang/ring">Contribute</a></li>
42     <li><a href="http://ring-lang.sourceforge.net/resources.html">Resources</a></li>
43     <li><a href="http://ring-lang.sourceforge.net/team.html">Team</a></li>
44     
45     <li><a title="Ring Homepage" href="http://ring-lang.net/">Website</a></li>
46     <li><a title="総合索引" href="genindex.html">Index</a></li>
47     <li>
48       
49       
50 <form action="search.html" method="get">
51   <input type="text" name="q" placeholder="Search" />
52   <input type="hidden" name="check_keywords" value="yes" />
53   <input type="hidden" name="area" value="default" />
54 </form>
55       
56     </li>
57   </ul>
58 </div>
59
60 <div class="related">
61     <h3>ナビゲーション</h3>
62     <ul>
63       <li class="right">
64         <a href="qt3d.html" title="Qt3D の用法">
65           次へ &raquo;
66         </a>
67       </li>
68       <li class="right">
69         <a href="formdesigner.html" title="フォームデザイナーの用法">
70           &raquo; 前へ
71         </a>
72          |
73       </li>
74       <li>
75         <a href="index.html">プログラミング言語 Ring 1.12 取扱説明書</a>
76          &raquo;
77       </li>
78       
79       <li>多国語アプリケーション</li> 
80     </ul>
81 </div>
82   
83
84     <div class="document">
85       <div class="documentwrapper">
86         <div class="bodywrapper">
87           <div class="body" role="main">
88             
89   <div class="section" id="index-0">
90 <span id="id1"></span><h1>多国語アプリケーション<a class="headerlink" href="#index-0" title="このヘッドラインへのパーマリンク">¶</a></h1>
91 <p>多国語 Ring アプリケーションを実現する方法は色々あります!</p>
92 <p>String2Constant ツールの用法を学びます。</p>
93 <div class="section" id="string2constant">
94 <span id="index-1"></span><h2>String2Constant の用法<a class="headerlink" href="#string2constant" title="このヘッドラインへのパーマリンク">¶</a></h2>
95 <p>Ring 1.8 より String2Constant アプリケーションがあります。</p>
96 <p>このツールは ring/samples/tools/string2constant フォルダにあります。</p>
97 <p>このツールは文字列リテラルではなく、定数を用いたソースコードへ変換します。</p>
98 <p>これにより、定数を様々な言語を翻訳して言語ごとにソースコードのファイルへ格納できます。</p>
99 <p>Arabic.ring, English.ring, Japanese.ring など言語ごとに特殊なファイルを扱うことができます。</p>
100 <p>このツールの採用事例としては、アラビア語へ翻訳したフォームデザイナーがあります。</p>
101 <img alt="String2Constant" src="_images/string2constant.png" />
102 </div>
103 <div class="section" id="index-2">
104 <span id="id2"></span><h2>フォームデザイナーの翻訳<a class="headerlink" href="#index-2" title="このヘッドラインへのパーマリンク">¶</a></h2>
105 <p>フォームデザイナーのアプリケーションは ring/applications/formdesigner フォルダにあります。</p>
106 <p>翻訳用のファイルは ring/applications/formdesinger/translation フォルダにあります。</p>
107 <p>三種類のファイルがあります。</p>
108 <ul class="simple">
109 <li>Arabic.ring</li>
110 <li>English.ring</li>
111 <li>Japanese.ring</li>
112 </ul>
113 <p>定数定義の考えかたを理解するには前述のファイルを確認します。</p>
114 <p>これは Japanese.ring ファイルからの引用です。</p>
115 <div class="highlight-ring"><div class="highlight"><pre><span class="n">T_LANGUAGE</span> <span class="o">=</span> <span class="s">&quot;english&quot;</span>
116 <span class="n">T_LAYOUTDIRECTION</span> <span class="o">=</span> <span class="mi">0</span>                   <span class="c"># 左から右へ</span>
117
118 <span class="n">T_FORMDESIGNER_FORMDESIGNER</span>     <span class="o">=</span> <span class="s">&quot;フォームデザイナー&quot;</span>
119 <span class="n">T_FORMDESIGNER_FORMTITLE</span>                <span class="o">=</span> <span class="s">&quot;Form1&quot;</span>
120
121 <span class="n">T_FORMDESIGNER_FILE</span>                     <span class="o">=</span> <span class="s">&quot;ファイル(&amp;F)&quot;</span>
122 <span class="n">T_FORMDESIGNER_NEW</span>                              <span class="o">=</span> <span class="s">&quot;新規作成(&amp;N)&quot;</span>
123 <span class="n">T_FORMDESIGNER_OPEN</span>                     <span class="o">=</span> <span class="s">&quot;開く(&amp;O)&quot;</span>
124 <span class="n">T_FORMDESIGNER_SAVE</span>                     <span class="o">=</span> <span class="s">&quot;保存(&amp;S)&quot;</span>
125 <span class="n">T_FORMDESIGNER_SAVEAS</span>                   <span class="o">=</span> <span class="s">&quot;名前を付けて保存(&amp;A)&quot;</span>
126 <span class="n">T_FORMDESIGNER_CLOSE</span>                    <span class="o">=</span> <span class="s">&quot;閉じる(&amp;C)&quot;</span>
127 </pre></div>
128 </div>
129 <p>フォームデザイナーのソースコードのファイルでは、文字列リテラル型ではなく定数を使用しています。</p>
130 <p>これは formdesigner/mainwindow/formdesignerview.ring ファイルからの引用です。</p>
131 <div class="highlight-ring"><div class="highlight"><pre><span class="c"># メインウィンドウの作成と MDI 領域の使用</span>
132         <span class="n">win</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainwindow</span><span class="p">()</span> <span class="p">{</span>
133                 <span class="n">setWindowTitle</span><span class="p">(</span><span class="n">T_FORMDESIGNER_FORMDESIGNER</span><span class="p">)</span> <span class="c"># &quot;Form Designer&quot;</span>
134                 <span class="n">setcentralWidget</span><span class="p">(</span><span class="n">this</span><span class="p">.</span><span class="n">oArea</span><span class="p">)</span>
135                 <span class="n">setLayoutDirection</span><span class="p">(</span><span class="n">T_LAYOUTDIRECTION</span><span class="p">)</span>
136         <span class="p">}</span>
137 </pre></div>
138 </div>
139 <ul class="simple">
140 <li>コメントで文字列リテラルを記述すると、コードの可読性向上になります。</li>
141 <li>setLayoutDirection() メソッドで、ウィンドウの方向を左から右へ設定できます。</li>
142 <li>使用する翻訳ファイルをLoad 命令で指定します。</li>
143 </ul>
144 </div>
145 <div class="section" id="index-3">
146 <span id="id3"></span><h2>フォームの翻訳<a class="headerlink" href="#index-3" title="このヘッドラインへのパーマリンク">¶</a></h2>
147 <p>フォームデザイナーでフォームを作成した後に View クラスが生成されます。</p>
148 <p>View クラスの修正は行わずに Controller クラスから翻訳を追加します。</p>
149 <p>例えば、このようなフォームファイルがあります : ring/formdesigner/selobjects/selobjects.rform</p>
150 <img alt="フォームの翻訳" src="_images/formtranslation1.png" />
151 <p>このコードを使って Controller クラスから翻訳を追加します。</p>
152 <p>そして、定数は Arabic.ring, English.ring と Japanese.ring で定義します。</p>
153 <div class="highlight-ring"><div class="highlight"><pre><span class="k">class</span> <span class="n">selobjectsController</span> <span class="k">from</span> <span class="n">windowsControllerParent</span>
154
155         <span class="n">oView</span> <span class="o">=</span> <span class="k">new</span> <span class="n">selobjectsView</span>  <span class="p">{</span>
156                 <span class="n">ListObjects</span><span class="p">.</span><span class="n">setselectionmode</span><span class="p">(</span><span class="n">QAbstractItemView_MultiSelection</span><span class="p">)</span>
157                 <span class="n">win</span><span class="p">.</span><span class="n">setwindowmodality</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
158                 <span class="c"># 翻訳</span>
159                         <span class="n">win</span><span class="p">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="n">T_FORMDESIGNER_SELOBJECTS_TITLE</span><span class="p">)</span>
160                         <span class="n">win</span><span class="p">.</span><span class="n">setLayoutDirection</span><span class="p">(</span><span class="n">T_LAYOUTDIRECTION</span><span class="p">)</span>
161                         <span class="n">labelobjects</span><span class="p">.</span><span class="n">setText</span><span class="p">(</span><span class="n">T_FORMDESIGNER_SELOBJECTS_OBJECTS</span><span class="p">)</span>
162                         <span class="n">btnSelect</span><span class="p">.</span><span class="n">setText</span><span class="p">(</span><span class="n">T_FORMDESIGNER_SELOBJECTS_SELECT</span><span class="p">)</span>
163                         <span class="n">btnClose</span><span class="p">.</span><span class="n">setText</span><span class="p">(</span><span class="n">T_FORMDESIGNER_SELOBJECTS_CLOSE</span><span class="p">)</span>
164         <span class="p">}</span>
165 </pre></div>
166 </div>
167 </div>
168 </div>
169
170
171           </div>
172         </div>
173       </div>
174       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
175         <div class="sphinxsidebarwrapper"><h3>ページの内容</h3>
176 <ul>
177 <li><a class="reference internal" href="#">多国語アプリケーション</a><ul>
178 <li><a class="reference internal" href="#string2constant">String2Constant の用法</a></li>
179 <li><a class="reference internal" href="#index-2">フォームデザイナーの翻訳</a></li>
180 <li><a class="reference internal" href="#index-3">フォームの翻訳</a></li>
181 </ul>
182 </li>
183 </ul>
184
185
186   <h4>前のトピックへ</h4>
187   <p class="topless"><a href="formdesigner.html"
188                         title="前の章へ">フォームデザイナーの用法</a></p>
189   <h4>次のトピックへ</h4>
190   <p class="topless"><a href="qt3d.html"
191                         title="次の章へ">Qt3D の用法</a></p>
192   <div role="note" aria-label="source link">
193     <h3>このページ</h3>
194     <ul class="this-page-menu">
195       <li><a href="_sources/multilanguage.txt"
196             rel="nofollow">ソースコードを表示</a></li>
197     </ul>
198    </div>
199       
200 <form action="search.html" method="get">
201   <input type="text" name="q" placeholder="Search" />
202   <input type="hidden" name="check_keywords" value="yes" />
203   <input type="hidden" name="area" value="default" />
204 </form>
205       
206         </div>
207       </div>
208       <div class="clearer"></div>
209     </div>
210 <footer class="footer">
211   <p class="pull-right">
212     <a href="_sources/multilanguage.txt"
213        rel="nofollow">ソースコードを表示</a> &nbsp;
214     <a href="#">冒頭へ戻る</a></p>
215   <p>
216     &copy; Copyright 2016-2020, Ring Team.<br/>
217     Created using <a href="http://www.sphinx-doc.org/en/stable/">Sphinx</a> 1.3.6 / astropy-sphinx-theme 1.1 (isVowel)
218   </p>
219 </footer>
220   </body>
221 </html>