Turning on I18N and providing Czech L10N
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 29 Aug 2014 19:04:17 +0200
changeset 2022f2a29ad26ef
parent 201 0be5bc600566
child 203 8ea23c9e5008
child 212 0e4f488d5fa6
child 215 421b0eb4d980
Turning on I18N and providing Czech L10N
minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java
minesweeper/src/main/webapp/pages/index.html
minesweeper/src/main/webapp/pages/index_cs.html
pom.xml
     1.1 --- a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java	Fri Aug 29 16:32:03 2014 +0200
     1.2 +++ b/minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java	Fri Aug 29 19:04:17 2014 +0200
     1.3 @@ -23,6 +23,7 @@
     1.4   */
     1.5  package org.apidesign.demo.minesweeper;
     1.6  
     1.7 +import java.util.Locale;
     1.8  import net.java.html.boot.BrowserBuilder;
     1.9  import org.netbeans.api.nbrwsr.OpenHTMLRegistration;
    1.10  import org.openide.awt.ActionID;
    1.11 @@ -39,6 +40,7 @@
    1.12      public static void main(String... args) throws Exception {        
    1.13          BrowserBuilder.newBrowser().
    1.14              loadPage("pages/index.html").
    1.15 +            locale(Locale.getDefault()).
    1.16              loadClass(MinesModel.class).
    1.17              invoke("main", args).
    1.18              showAndWait();
     2.1 --- a/minesweeper/src/main/webapp/pages/index.html	Fri Aug 29 16:32:03 2014 +0200
     2.2 +++ b/minesweeper/src/main/webapp/pages/index.html	Fri Aug 29 19:04:17 2014 +0200
     2.3 @@ -185,22 +185,22 @@
     2.4        <div class="caption">
     2.5          <h3>iBrwsr</h3>
     2.6          <p>
     2.7 -            This application can also be packaged to run on your iPhone
     2.8 -            or iPad. It is not yet available on AppStore, but it will.
     2.9 +            This application has been packaged to run on your iPhone
    2.10 +            or iPad and made available on AppStore.
    2.11              In this mode it
    2.12              uses <a target="_blank" href="http://www.robovm.org">RoboVM</a> 
    2.13              virtual machine to execute Java code natively.
    2.14              It uses iOS WebView to display the UI and execute
    2.15              generated JavaScript. Both these components are
    2.16              bound together via <a target="_blank" 
    2.17 -                href="http://wiki.apidesign.org/wiki/IBrwsr">
    2.18 +            href="http://wiki.apidesign.org/wiki/IBrwsr">
    2.19              iBrwsr</a> library.
    2.20          </p>
    2.21          <p>
    2.22 -            <a href="http://wiki.apidesign.org/wiki/IBrwsr"
    2.23 +            <a href="https://itunes.apple.com/us/app/fair-minesweeper/id903688146"
    2.24                 target="_blank"
    2.25                 class="btn btn-primary" role="button"
    2.26 -               >Learn more &raquo;</a> 
    2.27 +               >Install &raquo;</a> 
    2.28          </p>
    2.29        </div>
    2.30      </div>
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/minesweeper/src/main/webapp/pages/index_cs.html	Fri Aug 29 19:04:17 2014 +0200
     3.3 @@ -0,0 +1,247 @@
     3.4 +<!--
     3.5 +
     3.6 +    The MIT License (MIT)
     3.7 +
     3.8 +    Copyright (C) 2013 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     3.9 +
    3.10 +    Permission is hereby granted, free of charge, to any person obtaining a copy
    3.11 +    of this software and associated documentation files (the "Software"), to deal
    3.12 +    in the Software without restriction, including without limitation the rights
    3.13 +    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    3.14 +    copies of the Software, and to permit persons to whom the Software is
    3.15 +    furnished to do so, subject to the following conditions:
    3.16 +
    3.17 +    The above copyright notice and this permission notice shall be included in
    3.18 +    all copies or substantial portions of the Software.
    3.19 +
    3.20 +    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    3.21 +    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    3.22 +    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    3.23 +    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    3.24 +    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    3.25 +    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    3.26 +    THE SOFTWARE.
    3.27 +
    3.28 +-->
    3.29 +<!DOCTYPE html>
    3.30 +<html>
    3.31 +    <head>
    3.32 +        <title>Férové miny</title>
    3.33 +        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    3.34 +        <link href="bootstrap.css" rel="stylesheet">
    3.35 +        <link href="bootstrap-responsive.css" rel="stylesheet">
    3.36 +        <link href="mines.css" rel="stylesheet">
    3.37 +        <!-- Target tablets -->
    3.38 +        <link href="mines-tablet-large.css" 
    3.39 +              media="(min-width:640px), (min-height:660px)" 
    3.40 +              rel="stylesheet" />
    3.41 +        <link href="mines-tablet-small.css" 
    3.42 +              media="(min-width:510px) and (max-width:640px), (min-height:520px) and (max-height:660px)" 
    3.43 +              rel="stylesheet" />
    3.44 +        <!-- Target phones -->
    3.45 +        <link href="mines-phone-large.css" 
    3.46 +              media="(min-width:410px) and (max-width:510px), (min-height:400px) and (max-height:520px)" 
    3.47 +              rel="stylesheet" />
    3.48 +        <link href="mines-phone-small.css" 
    3.49 +              media="(min-width:300px) and (max-width:410px), (min-height:300px) and (max-height:400px)" 
    3.50 +              rel="stylesheet" />
    3.51 +        <link href="mines-phone-smaller.css" 
    3.52 +              media="(max-width:300px), (max-height:300px)" 
    3.53 +              rel="stylesheet" />
    3.54 +    </head>
    3.55 +    <body>
    3.56 +        <div class="navbar">
    3.57 +            <div class="navbar-inner">
    3.58 +                <a id="apptitle" class="brand" href="#" data-bind="click: showHelp">
    3.59 +                    <img height="20" width="20" src="DukeSweeper.png">
    3.60 +                    <span class="hidden-phone">Miny</span>
    3.61 +                </a>
    3.62 +                <button class="btn btn-default navbar-btn" disabled="true" data-bind="disable: false, click: normalGame">
    3.63 +                    <span>&#x21bb;</span>
    3.64 +                    <span class="info-text">Hra</span>
    3.65 +                </button>
    3.66 +                <button class="hidden-phone btn btn-default navbar-btn" disabled="true" data-bind="disable: !gameInProgress(), click: giveUp ">
    3.67 +                    <span>&#x2717;</span>
    3.68 +                    <span>Vzdát</span>
    3.69 +                </button>
    3.70 +                <button class="btn btn-default navbar-btn" disabled="true" data-bind="disable: !gameInProgress(), click: markMine">
    3.71 +                    <span>&#x26A0;</span>
    3.72 +                    <span class="info-text">Označkovat</span>
    3.73 +                </button>
    3.74 +            </div>
    3.75 +        </div>
    3.76 +
    3.77 +
    3.78 +        <script type="text/html" id="field">
    3.79 +          <center>
    3.80 +              <table class="field" data-bind="css: gameStyle">
    3.81 +                <tbody>
    3.82 +                    <!-- ko foreach: rows -->
    3.83 +                    <tr>
    3.84 +                        <!-- ko foreach: columns -->
    3.85 +                        <td data-bind="css: style, click: $parents[1].click" >
    3.86 +                            <div></div>
    3.87 +                        </td>
    3.88 +                        <!-- /ko -->
    3.89 +                    </tr>
    3.90 +                    <!-- /ko -->
    3.91 +                </tbody>
    3.92 +            </table>
    3.93 +          </center>
    3.94 +        </script>
    3.95 +
    3.96 +        <div data-bind="template: { name : 'field', if: fieldShowing }"></div>
    3.97 +        
    3.98 +        <div class="jumbotron control-label" data-bind="visible: !fieldShowing() ">
    3.99 +            <div class="container">
   3.100 +                <h1>Ukázka HTML/Java technologie</h1>
   3.101 +
   3.102 +                <p>Na první pohled se jedná o staré dobré <em>miny</em>.
   3.103 +                   Bližší pohled však odhalí revoluční technologii, jež 
   3.104 +                   umožňuje programovat logiku aplikace v <strong>Javě</strong>
   3.105 +                   a uživatelské rozhraní definovat v <strong>HTML</strong>.
   3.106 +                   To vše na jakémkoli zařízení schopném zobrazit moderní 
   3.107 +                   <strong>HTML5</strong> prohlížeč.
   3.108 +                </p>
   3.109 +                <p><a class="btn btn-primary btn-lg" role="button" 
   3.110 +                      target="_blank" href="http://html.java.net"
   3.111 +                >Navštívit stránky projektu</a>
   3.112 +                </p>
   3.113 +            </div>
   3.114 +        </div>
   3.115 +
   3.116 +    <div class="container" data-bind="visible: !fieldShowing()">
   3.117 +      <div>
   3.118 +        <div class="col-md-4">
   3.119 +          <h2>Miny</h2>
   3.120 +          <p>
   3.121 +              Odhalte deset políček jež skrývají miny 
   3.122 +              a označte je znakem &#x26a0;.
   3.123 +              Dotykem políčka se zjistí,  
   3.124 +              zda-li je na něm mina či kolik min se 
   3.125 +              nachází v sousedních osmi políčkách.
   3.126 +              Nespoléhejte na náhodu,
   3.127 +              tato verze min dokáže detekovat 
   3.128 +              náhodné hádání a v takovém případě přerovnat miny.
   3.129 +              Tato hra je <b>fér</b>!
   3.130 +          </p>
   3.131 +          <p><a class="btn btn-default" href="#" data-bind="click: normalGame"role="button">Hrát &raquo;</a></p>
   3.132 +        </div>
   3.133 +        <div class="col-md-4">
   3.134 +          <h2>Dokumentace</h2>
   3.135 +          <p>
   3.136 +              Chcete-li psát aplikace jako je tato
   3.137 +              (tedy používat <strong>Javu</strong> a <strong>HTML</strong>)
   3.138 +              můžete se nyní dozvědět něco o knihovnách, které 
   3.139 +              to umožňují. Následující odkaz Vás zavede
   3.140 +              stránky s dokumentací.
   3.141 +          </p>
   3.142 +          <p><a class="btn btn-default"
   3.143 +                target="_blank" href="http://bits.netbeans.org/html+java/"
   3.144 +                role="button">Více &raquo;</a></p>
   3.145 +       </div>
   3.146 +        <div class="col-md-4">
   3.147 +          <h2>Verze pro prohlížeč</h2>
   3.148 +          <p>
   3.149 +              Tato technologie je primárně určena pro
   3.150 +              klasické osobní počítače či pro tablety a telefony. 
   3.151 +              Přesto je však možné spustit tu samou aplikaci
   3.152 +              s nezměným kódem v prohlížeči. Je k tomu potřeba
   3.153 +              implementace <b>Java</b> virtuálního stroje zvaná
   3.154 +              <a href="http://bck2brwsr.apidesign.org">bck2brwsr</a>.
   3.155 +          </p>
   3.156 +          <p><a class="btn btn-default"
   3.157 +                target="_blank" href="http://xelfi.cz/minesweeper/bck2brwsr/"
   3.158 +                role="button">Vyzkoušet &raquo;</a></p>
   3.159 +       </div>
   3.160 +      </div>
   3.161 +    </div>
   3.162 +<div class="container" data-bind="visible: !fieldShowing()">
   3.163 +  <div class="col-sm-6 col-md-4">
   3.164 +    <div class="thumbnail">
   3.165 +        <img src="android_logo.jpg" width="120" height="120" alt="Android">
   3.166 +      <div class="caption">
   3.167 +        <h3>DlvkBrwsr</h3>
   3.168 +        <p>
   3.169 +            Tato apliace byla přeložena pro Váš telefon se systémem Android
   3.170 +            a je dostupná na  Google Play! tržišti. V této konfiguraci
   3.171 +            se používá virtuální stroj Dalvik pro spouštění <b>Java</b> kódu 
   3.172 +            a Androidí WebView k zobrazení uživatelského rozhraní a 
   3.173 +            interpretaci generovaného JavaScriptu. Tyto komponenty jsou
   3.174 +            spojeny dohromady pomocí <a href="http://wiki.apidesign.org/wiki/DlvkBrwsr">
   3.175 +            DlvkBrwsr</a> technologie.
   3.176 +        </p>
   3.177 +        <p>
   3.178 +            <a href="https://play.google.com/store/apps/details?id=org.apidesign.demo.minesweeper"
   3.179 +               target="_blank"
   3.180 +               class="btn btn-primary" role="button"
   3.181 +               >Instalovat &raquo;</a> 
   3.182 +        </p>
   3.183 +      </div>
   3.184 +    </div>
   3.185 +  </div>
   3.186 +  <div class="col-sm-6 col-md-4">
   3.187 +    <div class="thumbnail">
   3.188 +        <img src="ios_logo.jpg" width="120" height="120" alt="Android">
   3.189 +      <div class="caption">
   3.190 +        <h3>iBrwsr</h3>
   3.191 +        <p>
   3.192 +            Tato aplikace byla přeložena a zabalena tak, aby běžela na
   3.193 +            Vašem iPhonu
   3.194 +            nebo iPadu a je dostupná na tržišti AppStore.
   3.195 +            V této konfiguraci se používá
   3.196 +            virtuální stroj <a target="_blank" href="http://www.robovm.org">RoboVM</a> 
   3.197 +            pro přeložení <b>Java</b> kódu do nativního formátu.
   3.198 +            Pro zobrazení a provádění vygenerovaného JavaScriptu
   3.199 +            se využívá iOS WebView. Obě tyto komponenty jsou spojeny 
   3.200 +            pomocí <a target="_blank" 
   3.201 +                href="http://wiki.apidesign.org/wiki/IBrwsr">
   3.202 +            iBrwsr</a> knihovny.
   3.203 +        </p>
   3.204 +        <p>
   3.205 +            <a href="https://itunes.apple.com/us/app/fair-minesweeper/id903688146"
   3.206 +               target="_blank"
   3.207 +               class="btn btn-primary" role="button"
   3.208 +               >Instalovat &raquo;</a> 
   3.209 +        </p>
   3.210 +      </div>
   3.211 +    </div>
   3.212 +  </div>
   3.213 +  <div class="col-sm-6 col-md-4">
   3.214 +    <div class="thumbnail">
   3.215 +        <img src="netbeans_logo.jpg" width="120" height="120" alt="Android">
   3.216 +      <div class="caption">
   3.217 +        <h3>Vyvíjejte své aplikace!</h3>
   3.218 +        <p>
   3.219 +            Tuto aplikace lze zabalit jako 
   3.220 +            <a href="http://plugins.netbeans.org/plugin/53864/"
   3.221 +               target="_blank"
   3.222 +            >rozšíření pro NetBeans</a> a nebo
   3.223 +            lze použít vývojové prostředí 
   3.224 +            <a href="http://www.netbeans.org" target="_blank">
   3.225 +            NetBeans</a> k vytvoření své vlastní aplikace,
   3.226 +            jež bude využívat synergie 
   3.227 +            <em>HTML</em> a <em>Javy</em>.
   3.228 +            Pište své aplikace jednou a zobrazte je na 
   3.229 +            každém zařízení schopném zobrazit <em>HTML</em>!
   3.230 +        </p>
   3.231 +        <p>
   3.232 +            <a href="http://wiki.apidesign.org/wiki/DukeScriptInNetBeans"
   3.233 +               target="_blank"
   3.234 +               class="btn btn-primary" role="button"
   3.235 +               >Vyvíjejte &raquo;</a> 
   3.236 +        </p>
   3.237 +      </div>
   3.238 +    </div>
   3.239 +  </div>
   3.240 +</div>
   3.241 +        <!-- boot bck2brwsr -->
   3.242 +        <script type="text/javascript" src="bck2brwsr.js"></script>
   3.243 +        <script>
   3.244 +            var vm = bck2brwsr('minesweeper.js');
   3.245 +            var c = vm.loadClass('org.apidesign.demo.minesweeper.MinesModel');
   3.246 +            c.invoke('main');
   3.247 +        </script>
   3.248 +
   3.249 +    </body>
   3.250 +</html>
     4.1 --- a/pom.xml	Fri Aug 29 16:32:03 2014 +0200
     4.2 +++ b/pom.xml	Fri Aug 29 19:04:17 2014 +0200
     4.3 @@ -13,7 +13,7 @@
     4.4    </parent>  
     4.5    <properties>
     4.6        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     4.7 -      <net.java.html.version>0.8.3</net.java.html.version>
     4.8 +      <net.java.html.version>1.0-SNAPSHOT</net.java.html.version>
     4.9        <nb.html.version>0.8.3</nb.html.version>
    4.10        <bck2brwsr.version>0.9</bck2brwsr.version>
    4.11        <teavm.version>0.1</teavm.version>