← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 2090: Added multilingual support to DHIS Live app. Added French, German, Spanish, Portugese, Swahili, R...

 

------------------------------------------------------------
revno: 2090
committer: jason-p-pickering
branch nick: trunk
timestamp: Fri 2010-09-10 06:26:24 +0200
message:
  Added multilingual support to DHIS Live app. Added French, German, Spanish, Portugese, Swahili, Russian, and Vietnamese translations.
removed:
  dhis-live/src/main/resources/messages_en.properties
added:
  dhis-live/src/main/java/org/hisp/dhis/LiveMessagingService.java
  dhis-live/src/main/resources/messages_en_GB.properties
  dhis-live/src/main/resources/messages_es.properties
  dhis-live/src/main/resources/messages_pt.properties
  dhis-live/src/main/resources/messages_ru.properties
  dhis-live/src/main/resources/messages_sw.properties
  dhis-live/src/main/resources/messages_vi.properties
modified:
  dhis-live/src/main/java/org/hisp/dhis/TrayApp.java
  dhis-live/src/main/resources/Config.xsd
  dhis-live/src/main/resources/messages_de.properties
  dhis-live/src/main/resources/messages_fr.properties


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== added file 'dhis-live/src/main/java/org/hisp/dhis/LiveMessagingService.java'
--- dhis-live/src/main/java/org/hisp/dhis/LiveMessagingService.java	1970-01-01 00:00:00 +0000
+++ dhis-live/src/main/java/org/hisp/dhis/LiveMessagingService.java	2010-09-10 04:26:24 +0000
@@ -0,0 +1,106 @@
+/*
+*
+ * Copyright (c) 2004-2010, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package org.hisp.dhis;
+import java.util.Locale;
+import java.util.ResourceBundle;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+
+
+/**
+ *
+ * @author Jason P. Pickering
+ */
+public class LiveMessagingService
+
+{
+    
+    private static final Log log = LogFactory.getLog(TrayApp.class);
+
+    private static final String defaultLanguage = "en";
+    private static final String defaultCountry =  "GB";
+
+
+
+     private ResourceBundle getMessageBundle()
+    {
+        ResourceBundle messages;
+        String currentLanguage= TrayApp.getInstance().getConfig().getLocaleLanguage();
+        String currentCountry = TrayApp.getInstance().getConfig().getLocaleCountry();
+        Locale currentLocale = new Locale (currentLanguage,currentCountry);
+        log.debug("Current locale set to " + currentLocale.toString());
+        try
+        {
+            messages = ResourceBundle.getBundle("messages",currentLocale);
+        }
+        catch (Exception e)
+            {
+            //problem loading the desired resource bundle
+            //fall back to default
+            log.error("The desired resource bundle could not be loaded.Usig default");
+            currentLocale = new Locale(defaultLanguage, defaultCountry);
+            messages = ResourceBundle.getBundle("messages",currentLocale);
+            }
+
+        return messages;
+    }
+
+    public String getString (String messageName) {
+
+        ResourceBundle messages = getMessageBundle();
+
+        String returnMessage = null ;
+        if ( messageName.isEmpty() )
+        {
+            returnMessage = "messageName not valid";
+            return returnMessage;
+        }
+        else
+        {
+
+        if ( messages.containsKey( messageName) )
+        {
+            returnMessage = messages.getString( messageName );
+
+        if (returnMessage == null)
+            {
+                returnMessage = "Message not found";
+            }
+
+            }
+            else
+            {
+                returnMessage = "Message key " + messageName + " not found.";
+            }
+        return returnMessage;
+    }
+   }
+
+}

=== modified file 'dhis-live/src/main/java/org/hisp/dhis/TrayApp.java'
--- dhis-live/src/main/java/org/hisp/dhis/TrayApp.java	2010-09-07 21:23:11 +0000
+++ dhis-live/src/main/java/org/hisp/dhis/TrayApp.java	2010-09-10 04:26:24 +0000
@@ -31,12 +31,8 @@
 import java.awt.event.*;
 import java.net.URI;
 import java.net.URL;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import javax.swing.*;
 import java.io.*;
-import java.util.Locale;
-import java.util.ResourceBundle;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.JAXBException;
@@ -81,7 +77,7 @@
     // the configuration
     private ConfigType config;
 
-    private static ResourceBundle messages = ResourceBundle.getBundle( "messages", Locale.getDefault() );
+    private static LiveMessagingService messageService = new LiveMessagingService();
 
     private static TrayApp instance;
 
@@ -103,18 +99,13 @@
     // -------------------------------------------------------------------------
     public static void main( String[] args )
     {
-        Locale[] supportedLocales =
-        {
-            Locale.FRENCH,
-            Locale.GERMAN,
-            Locale.ENGLISH
-        };
+
 
 
         log.info( "Environment variable DHIS2_HOME: " + System.getenv( "DHIS2_HOME" ) );
         if ( !SystemTray.isSupported() )
         {
-            JOptionPane.showMessageDialog( (JFrame) null, messages.getString( "dialogbox.unsupportedPlatform" ) );
+            JOptionPane.showMessageDialog( (JFrame) null, messageService.getString( "dialogbox.unsupportedPlatform" ) );
             System.exit( 0 );
         } else
         {
@@ -125,7 +116,7 @@
             } catch ( Exception ex )
             {
                 log.fatal( "TrayApp Initialization failure", ex );
-                JOptionPane.showMessageDialog( (JFrame) null, messages.getString( "dialogbox.initFailure" ) );
+                JOptionPane.showMessageDialog( (JFrame) null, messageService.getString( "dialogbox.initFailure" ) );
                 System.exit( 0 );
             }
         }
@@ -157,7 +148,7 @@
             if ( installDir == null )
             {
                 log.fatal( "Neither DHIS Live Jar nor DHIS2_HOME could be found." );
-                JOptionPane.showMessageDialog( (JFrame) null, messages.getString( "dialogbox.initFailure" ) );
+                JOptionPane.showMessageDialog( (JFrame) null, messageService.getString( "dialogbox.initFailure" ) );
                 System.exit( 0 );
             } else
             {
@@ -199,10 +190,14 @@
         Image image = createImage( STOPPED_ICON, "tray icon" );
 
         PopupMenu popup = new PopupMenu();
-        MenuItem openItem = new MenuItem( messages.getString( "CMD_OPEN" ) );
-        MenuItem databaseItem = new MenuItem( messages.getString( "CMD_DATABASE" ) );
-        MenuItem settingsItem = new MenuItem( messages.getString( "CMD_SETTINGS" ) );
-        MenuItem exitItem = new MenuItem( messages.getString( "CMD_EXIT" ) );
+        MenuItem openItem = new MenuItem( messageService.getString( "CMD_OPEN" ) );
+        openItem.setActionCommand("open");
+        MenuItem databaseItem = new MenuItem( messageService.getString( "CMD_DATABASE" ) );
+        databaseItem.setActionCommand("db");
+        MenuItem settingsItem = new MenuItem( messageService.getString( "CMD_SETTINGS" ) );
+        settingsItem.setActionCommand("settings");
+        MenuItem exitItem = new MenuItem( messageService.getString( "CMD_EXIT" ) );
+        exitItem.setActionCommand("exit");
 
         popup.add( openItem );
         popup.add( databaseItem );
@@ -219,13 +214,13 @@
             {
                 String cmd = e.getActionCommand();
 
-                if ( cmd.equals( messages.getString( "CMD_OPEN" ) ) )
+                if ( cmd.equals( "open" ) )
                 {
                     launchBrowser();
 
                 } else
                 {
-                    if ( cmd.equals( messages.getString( "CMD_EXIT" ) ) )
+                    if ( cmd.equals( "exit" )  )
                     {
                         shutdown();
                     } 
@@ -262,16 +257,16 @@
     {
         log.warn( "Lifecycle: server failed" );
         trayIcon.setImage( createImage( FAILED_ICON, "Running icon" ) );
-        JOptionPane.showMessageDialog( (JFrame) null, messages.getString( "dialogbox.webserverFailure" ) );
+        JOptionPane.showMessageDialog( (JFrame) null, messageService.getString( "dialogbox.webserverFailure" ) );
         shutdown();
     }
 
     public void lifeCycleStarted( LifeCycle arg0 )
     {
         log.info( "Lifecycle: server started" );
-        trayIcon.displayMessage( messages.getString( "notification.started" ), messages.getString( "notification.startedDetails" ) + " " + getUrl() + ".",
+        trayIcon.displayMessage( messageService.getString( "notification.started" ), messageService.getString( "notification.startedDetails" ) + " " + getUrl() + ".",
             TrayIcon.MessageType.INFO );
-        trayIcon.setToolTip( messages.getString( "tooltip.running" ) );
+        trayIcon.setToolTip( messageService.getString( "tooltip.running" ) );
         trayIcon.setImage( createImage( RUNNING_ICON, "Running icon" ) );
         launchBrowser();
 
@@ -280,14 +275,14 @@
     public void lifeCycleStarting( LifeCycle arg0 )
     {
         log.info( "Lifecycle: server starting" );
-        trayIcon.displayMessage( messages.getString( "notification.starting" ), messages.getString( "notification.startingDetails" ), TrayIcon.MessageType.INFO );
+        trayIcon.displayMessage( messageService.getString( "notification.starting" ), messageService.getString( "notification.startingDetails" ), TrayIcon.MessageType.INFO );
         trayIcon.setImage( createImage( STARTING_ICON, "Starting icon" ) );
     }
 
     public void lifeCycleStopped( LifeCycle arg0 )
     {
         log.info( "Lifecycle: server stopped" );
-        trayIcon.displayMessage( messages.getString( "notification.stopped" ), messages.getString( "notification.stoppedDetails" ), TrayIcon.MessageType.INFO );
+        trayIcon.displayMessage( messageService.getString( "notification.stopped" ), messageService.getString( "notification.stoppedDetails" ), TrayIcon.MessageType.INFO );
         trayIcon.setImage( createImage( STOPPED_ICON, "Running icon" ) );
     }
 
@@ -511,4 +506,15 @@
             log.error( "Error serializing config to file", ex );
         }
     }
+  /*      private static ResourceBundle messageService
+    {
+        ResourceBundle rb;
+
+        String currentCountry = TrayApp.getInstance().getConfig().getLocaleCountry();
+        String currentLanguage= TrayApp.getInstance().getConfig().getLocaleLanguage();
+        Locale currentLocale = new Locale (currentCountry,currentLanguage);
+        rb = ResourceBundle.getBundle("messages",currentLocale);
+        return rb;
+    }
+   */
 }

=== modified file 'dhis-live/src/main/resources/Config.xsd'
--- dhis-live/src/main/resources/Config.xsd	2010-09-07 21:23:11 +0000
+++ dhis-live/src/main/resources/Config.xsd	2010-09-10 04:26:24 +0000
@@ -6,7 +6,7 @@
         <xs:complexType name="ConfigType">
             <xs:sequence>
                 <xs:element name="LocaleLanguage" type="xs:string" default="en" />
-                <xs:element name="LocaleCountry" type="xs:string" default="GB" />
+                <xs:element name="LocaleCountry" type="xs:string" default="" />
                 <xs:element name="Port" type="xs:int" default="8080" />
                 <xs:element name="Host" type="xs:string" default="localhost" />
                 <xs:element name="PreferredBrowser" type="xs:string" default="" />

=== modified file 'dhis-live/src/main/resources/messages_de.properties'
--- dhis-live/src/main/resources/messages_de.properties	2010-09-06 17:50:24 +0000
+++ dhis-live/src/main/resources/messages_de.properties	2010-09-10 04:26:24 +0000
@@ -1,6 +1,15 @@
-CMD_OPEN=Open DHIS 2 Live
+CMD_OPEN=Open dhis 2 Live
+CMD_CONFIG=Konfigurieren
 CMD_EXIT=Ausgang
 CMD_SETTINGS=Einstellungen
 CMD_DATABASE=Datenbanken
-dialogbox.unsupportedPlatform=System Tray nicht unterst\u00fctzt auf dieser Plattform
-dialogbox.initFailure=DHIS2-live konnte nicht initialisiert werden\nSiehe Protokoll f\u00fcr Details
+dialogbox.unsupportedPlatform=System Tray nicht unterstützt auf dieser Plattform
+dialogbox.initFailure=DHIS2-live nicht \ nWenden Protokoll für Details zu initialisieren
+dialogbox.webserverFailure=Web-Server nicht gestartet werden - siehe Protokolle für Details
+notification.started=Started
+notification.startedDetails=Dhis 2 läuft. Ihr Browser wird \ n hingewiesen werden
+notification.starting=Beginnend
+notification.startingDetails=Dhis 2 ist ab. \ NBitte geduldig zu sein.
+notification.stopped=Gestoppt
+notification.stoppedDetails=Dhis 2 hat aufgehört.
+tooltip.running=Dhis 2 Server laufen

=== removed file 'dhis-live/src/main/resources/messages_en.properties'
--- dhis-live/src/main/resources/messages_en.properties	2010-09-07 21:23:11 +0000
+++ dhis-live/src/main/resources/messages_en.properties	1970-01-01 00:00:00 +0000
@@ -1,18 +0,0 @@
-CMD_OPEN = Open DHIS 2 Live
-CMD_CONFIG = Configure
-CMD_EXIT = Exit
-CMD_SETTINGS = Settings
-CMD_DATABASE = Databases
-
-dialogbox.unsupportedPlatform = System Tray not supported on this platform
-dialogbox.initFailure = DHIS2-live failed to initialize\nSee log for details
-dialogbox.webserverFailure = Web server failed to start - see logs for details
-
-notification.started = Started
-notification.startedDetails = DHIS 2 is running. Your browser will\n be pointed to
-notification.starting = Starting
-notification.startingDetails = DHIS 2 is starting.\nPlease be patient.
-notification.stopped = Stopped
-notification.stoppedDetails = DHIS 2 has stopped.
-
-tooltip.running = DHIS 2 Server running
\ No newline at end of file

=== added file 'dhis-live/src/main/resources/messages_en_GB.properties'
--- dhis-live/src/main/resources/messages_en_GB.properties	1970-01-01 00:00:00 +0000
+++ dhis-live/src/main/resources/messages_en_GB.properties	2010-09-10 04:26:24 +0000
@@ -0,0 +1,18 @@
+CMD_OPEN = Open DHIS 2 Live
+CMD_CONFIG = Configure
+CMD_EXIT = Exit
+CMD_SETTINGS = Settings
+CMD_DATABASE = Databases
+
+dialogbox.unsupportedPlatform = System Tray not supported on this platform
+dialogbox.initFailure = DHIS2-live failed to initialize\nSee log for details
+dialogbox.webserverFailure = Web server failed to start - see logs for details
+
+notification.started = Started
+notification.startedDetails = DHIS 2 is running. Your browser will\n be pointed to
+notification.starting = Starting
+notification.startingDetails = DHIS 2 is starting.\nPlease be patient.
+notification.stopped = Stopped
+notification.stoppedDetails = DHIS 2 has stopped.
+
+tooltip.running = DHIS 2 Server running
\ No newline at end of file

=== added file 'dhis-live/src/main/resources/messages_es.properties'
--- dhis-live/src/main/resources/messages_es.properties	1970-01-01 00:00:00 +0000
+++ dhis-live/src/main/resources/messages_es.properties	2010-09-10 04:26:24 +0000
@@ -0,0 +1,15 @@
+CMD_OPEN=Abrir DHIS 2 Live
+CMD_CONFIG=Configurar
+CMD_EXIT=Salida
+CMD_SETTINGS=Configuración
+CMD_DATABASE=Bases de datos
+dialogbox.unsupportedPlatform=La bandeja del sistema no se admite en esta plataforma
+dialogbox.initFailure=DHIS2-live no se pudo inicializar \ log nConsulte para obtener más detalles
+dialogbox.webserverFailure=servidor Web no se pudo iniciar - ver los registros de datos
+notification.started=Introducción
+notification.startedDetails=DHIS 2 está en ejecución. Su navegador \ n se refirió a
+notification.starting=A partir
+notification.startingDetails=DHIS 2 se está iniciando. \ NPor favor, sea paciente.
+notification.stopped=Detenido
+notification.stoppedDetails=DHIS 2 se ha detenido.
+tooltip.running=DHIS 2 Server que se ejecuta

=== modified file 'dhis-live/src/main/resources/messages_fr.properties'
--- dhis-live/src/main/resources/messages_fr.properties	2010-09-06 17:50:24 +0000
+++ dhis-live/src/main/resources/messages_fr.properties	2010-09-10 04:26:24 +0000
@@ -1,6 +1,15 @@
 CMD_OPEN=Open DHIS 2 Live
+CMD_CONFIG=Configurer
 CMD_EXIT=Sortie
-CMD_SETTINGS=Param\u00e8tres
-CMD_DATABASE=Bases de donn\u00e9es
-dialogbox.unsupportedPlatform=Barre d'\u00e9tat syst\u00e8me n'est pas support\u00e9 sur cette plate-forme
-dialogbox.initFailure=DHIS2-live n'a pas pu s'initialiser\nVoir le journal pour plus de d\u00e9tails
+CMD_SETTINGS=Paramètres
+CMD_DATABASE=Bases de données
+dialogbox.unsupportedPlatform=Barre d&#39;état système n&#39;est pas supporté sur cette plate-forme
+dialogbox.initFailure=DHIS2-live n&#39;a pas pu initialiser \ log nContactez pour plus de détails
+dialogbox.webserverFailure=serveur Web n&#39;a pas pu démarrer - voir les journaux pour plus de détails
+notification.started=En route
+notification.startedDetails=DHIS 2 est en cours d&#39;exécution. Votre navigateur n \ être souligné
+notification.starting=Départ
+notification.startingDetails=DHIS 2 est de départ. \ NVeuillez être patient.
+notification.stopped=Arrêté
+notification.stoppedDetails=DHIS 2 a cessé.
+tooltip.running=DHIS 2 Server en cours d&#39;exécution

=== added file 'dhis-live/src/main/resources/messages_pt.properties'
--- dhis-live/src/main/resources/messages_pt.properties	1970-01-01 00:00:00 +0000
+++ dhis-live/src/main/resources/messages_pt.properties	2010-09-10 04:26:24 +0000
@@ -0,0 +1,15 @@
+CMD_OPEN=Open DHIS 2 Live
+CMD_CONFIG=Configurar
+CMD_EXIT=Saída
+CMD_SETTINGS=Configurações
+CMD_DATABASE=Bases de dados
+dialogbox.unsupportedPlatform=Bandeja do sistema não é suportado nesta plataforma
+dialogbox.initFailure=DHIS2 vivo falhou ao inicializar \ log nConsulte para detalhes
+dialogbox.webserverFailure=servidor Web falhou ao iniciar - ver logs para obter detalhes
+notification.started=Começado
+notification.startedDetails=DHIS 2 está funcionando. Seu navegador \ n ser apontado
+notification.starting=Começando
+notification.startingDetails=DHIS 2 está de partida. \ NPor favor, seja paciente.
+notification.stopped=Parado
+notification.stoppedDetails=DHIS 2 parou.
+tooltip.running=DHIS 2 Server executando

=== added file 'dhis-live/src/main/resources/messages_ru.properties'
--- dhis-live/src/main/resources/messages_ru.properties	1970-01-01 00:00:00 +0000
+++ dhis-live/src/main/resources/messages_ru.properties	2010-09-10 04:26:24 +0000
@@ -0,0 +1,15 @@
+CMD_OPEN=\u041e\u0442\u043a\u0440\u044b\u0442\u044c DHIS 2 Live
+CMD_CONFIG=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c
+CMD_EXIT=\u0412\u044b\u0445\u043e\u0434
+CMD_SETTINGS=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
+CMD_DATABASE=\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445
+dialogbox.unsupportedPlatform=\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043b\u043e\u0442\u043e\u043a \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435
+dialogbox.initFailure=DHIS2-\u0436\u0438\u0442\u044c \u043d\u0435 \u0441\u043c\u043e\u0433 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \ nSee \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435
+dialogbox.webserverFailure=\u0412\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c - \u0441\u043c. \u0436\u0443\u0440\u043d\u0430\u043b\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435
+notification.started=\u0420\u0430\u0431\u043e\u0442\u044b
+notification.startedDetails=DHIS 2 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \ \u043f, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c
+notification.starting=\u041e\u0442\u043f\u0440\u0430\u0432\u043d\u043e\u0439
+notification.startingDetails=DHIS 2 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f. \u0425\u043f\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0431\u0443\u0434\u044c\u0442\u0435 \u0442\u0435\u0440\u043f\u0435\u043b\u0438\u0432\u044b.
+notification.stopped=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432\u0448\u0438\u0439\u0441\u044f
+notification.stoppedDetails=DHIS 2 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f.
+tooltip.running=DHIS 2 Server \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442

=== added file 'dhis-live/src/main/resources/messages_sw.properties'
--- dhis-live/src/main/resources/messages_sw.properties	1970-01-01 00:00:00 +0000
+++ dhis-live/src/main/resources/messages_sw.properties	2010-09-10 04:26:24 +0000
@@ -0,0 +1,15 @@
+CMD_OPEN=Open DHIS 2 Live
+CMD_CONFIG=Configure
+CMD_EXIT=Exit
+CMD_SETTINGS=Vipimo
+CMD_DATABASE=Databaser
+dialogbox.unsupportedPlatform=Mfumo tray si mkono kwenye jukwaa hili
+dialogbox.initFailure=DHIS2-kuishi alishindwa initialize \ nSee logi kwa maelezo
+dialogbox.webserverFailure=Web server alishindwa kuanza - angalia magogo kwa maelezo
+notification.started=Started
+notification.startedDetails=DHIS 2 anakimbia. browser yako \ n kuelekezwa kwa
+notification.starting=Kuanzia
+notification.startingDetails=DHIS 2 ni kuanzia \ nPlease kuwa na subira..
+notification.stopped=Kusimamishwa
+notification.stoppedDetails=DHIS 2 kimesimama.
+tooltip.running=DHIS 2 Server mbio

=== added file 'dhis-live/src/main/resources/messages_vi.properties'
--- dhis-live/src/main/resources/messages_vi.properties	1970-01-01 00:00:00 +0000
+++ dhis-live/src/main/resources/messages_vi.properties	2010-09-10 04:26:24 +0000
@@ -0,0 +1,15 @@
+CMD_OPEN=M\u1edf DHIS 2 Live
+CMD_CONFIG=C\u1ea5u h\u00ecnh
+CMD_EXIT=Ra
+CMD_SETTINGS=C\u00e0i \u0111\u1eb7t
+CMD_DATABASE=C\u01a1 s\u1edf d\u1eef li\u1ec7u
+dialogbox.unsupportedPlatform=Khay h\u1ec7 th\u1ed1ng kh\u00f4ng h\u1ed7 tr\u1ee3 tr\u00ean n\u1ec1n t\u1ea3ng n\u00e0y
+dialogbox.initFailure=DHIS2-s\u1ed1ng kh\u00f4ng th\u1ec3 kh\u1edfi t\u1ea1o \ log nSee \u0111\u1ec3 bi\u1ebft chi ti\u1ebft
+dialogbox.webserverFailure=Web server kh\u00f4ng th\u00e0nh c\u00f4ng \u0111\u1ec3 b\u1eaft \u0111\u1ea7u - xem nh\u1eadt k\u00fd \u0111\u1ec3 bi\u1ebft chi ti\u1ebft
+notification.started=B\u1eaft \u0111\u1ea7u
+notification.startedDetails=DHIS 2 \u0111ang ch\u1ea1y. Tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n s\u1ebd \ n \u0111\u01b0\u1ee3c ch\u1ec9 ra
+notification.starting=B\u1eaft \u0111\u1ea7u
+notification.startingDetails=DHIS 2 l\u00e0 b\u1eaft \u0111\u1ea7u. \ NH\u00e3y \u0111\u01b0\u1ee3c b\u1ec7nh nh\u00e2n.
+notification.stopped=Ng\u01b0ng
+notification.stoppedDetails=DHIS 2 \u0111\u00e3 ng\u1eebng.
+tooltip.running=2 DHIS m\u00e1y ch\u1ee7 \u0111ang ch\u1ea1y