dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #07362
[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'état système n'est pas supporté sur cette plate-forme
+dialogbox.initFailure=DHIS2-live n'a pas pu initialiser \ log nContactez pour plus de détails
+dialogbox.webserverFailure=serveur Web n'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'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'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