Author: Paul_R
Date: 2008-08-28 11:45:10 +0200 (Thu, 28 Aug 2008)
New Revision: 1623
Added:
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/Messages.java
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages.properties
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_en.properties
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_fr.properties
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_nl.properties
Modified:
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/resources/fr.po
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/WeatherGadget.java
Log:
* Added a bundle with .properties files to internationalize the google URL.
It's the only way I've found for now, because the framework can translate
only the TTS sentences.
For now, only the system locale is detected. A environment variable should
be added soon to detect the control center language.
Internalization with .po still not working, but should be fixed soon with a
gadget api update.
Modified:
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/resources/fr.po
===================================================================
---
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/resources/fr.po
2008-08-28 08:39:55 UTC (rev 1622)
+++
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/resources/fr.po
2008-08-28 09:45:10 UTC (rev 1623)
@@ -1,11 +1,11 @@
-msgid "http://www.google.com/ig/api?hl=en&weather=%s"
+msgid "http://www.google.com/ig/api?hl=en&weather=%s"
msgstr "http://www.google.com/ig/api?hl=fr&weather=%s"
msgid "unknown"
msgstr "inconnue"
msgid "Current weather at %s are \"%s\" with a temperature of %s degrees %s.
Humidity level is %s percents."
-msgstr "La météo actuelle à %s est \"%s\" avec une température de %s degrés
%s. Le taux d'humidité est de %s pour cent."
+msgstr "La météo actuelle à %s est \"%s\" avec une température de %s degrés
%s. Le taux d'humidité est de %s pour cent."
msgid "Tomorrow's forecast : \"%s\" temperatures from %s to %s degrees."
msgstr "Les prévisions pour demain : \"%s\" avec des température de %s à %s
degrés."
@@ -17,10 +17,10 @@
msgstr "Google Gadget Météo"
msgid "Weather location"
-msgstr "Localisation ÃÃÃÃÃÃ"
+msgstr "Localisation"
msgid "Temperature unit (celsius,fahrenheit)"
msgstr "Unité de température (celsius,fahrenheit)"
msgid "Give tomorrow weather too"
-msgstr "Donner les prévisions météo"
\ No newline at end of file
+msgstr "Donner les prévisions météo"
Added:
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/Messages.java
===================================================================
---
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/Messages.java
(rev 0)
+++
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/Messages.java
2008-08-28 09:45:10 UTC (rev 1623)
@@ -0,0 +1,37 @@
+package net.karmaLab.tuxDroid.gadgets;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import java.util.Locale;
+
+public class Messages {
+ private static final String BUNDLE_NAME =
"net.karmaLab.tuxDroid.gadgets.messages"; //$NON-NLS-1$
+
+ private static final ResourceBundle RESOURCE_BUNDLE;
+
+ private static final String ccLang =
System.getProperty("CC_SET_LANGUAGE");
+
+ static
+ {
+ if (ccLang == null)
+ {
+ RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
+ }
+ else
+ {
+ System.out.println(ccLang);
+ RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME,
new Locale(ccLang));
+ }
+ }
+
+ private Messages() {
+ }
+
+ public static String getString(String key) {
+ try {
+ return RESOURCE_BUNDLE.getString(key);
+ } catch (MissingResourceException e) {
+ return '!' + key + '!';
+ }
+ }
+}
Modified:
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/WeatherGadget.java
===================================================================
---
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/WeatherGadget.java
2008-08-28 08:39:55 UTC (rev 1622)
+++
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/WeatherGadget.java
2008-08-28 09:45:10 UTC (rev 1623)
@@ -21,7 +21,6 @@
*/
package net.karmaLab.tuxDroid.gadgets;
-
import java.net.URL;
import java.io.*;
import java.net.*;
@@ -37,7 +36,7 @@
public class WeatherGadget extends SimpleGadget<WeatherGadget.Configuration> {
public static class Configuration extends SimpleGadgetConfiguration {
- private String location = "Paris";
+ private String location = "Paris"; //$NON-NLS-1$
private boolean tomorrow = true;
private Unit unit = Unit.celsius;
@@ -76,7 +75,7 @@
}
private String getData(Element node, String label) {
- return node.getElement(label).getAttribute("data");
+ return node.getElement(label).getAttribute("data");
//$NON-NLS-1$
}
@Override
@@ -86,19 +85,22 @@
String inputLine;
Writer streamOutput = null;
XMLParser parser = new XMLParser();
+ System.out.println(Messages.getString("url")); //$NON-NLS-1$
Element xmlReply;
try {
/* create a new URL object */
/* BUG : I18N.cc_Locale don't works yet. */
- URL xml = new
URL(String.format("http://www.google.com/ig/api?hl=en&weather=%s",
configuration().getLocation()));
+
+ //URL xml = new
URL(bundle.getString("URL"+configuration().getLocation()));
+ URL xml = new
URL(String.format(Messages.getString("url"), configuration().getLocation()));
//$NON-NLS-1$
/* Open the connection */
URLConnection yc = xml.openConnection();
/* And read the stream input */
BufferedReader streamInput = new BufferedReader(new
InputStreamReader(yc.getInputStream()));
/* Create a new file */
- file = new File("unknowEncoding");
+ file = new File("unknowEncoding"); //$NON-NLS-1$
/* Connect the writer with the file */
streamOutput = new BufferedWriter(new FileWriter(file));
/* ... and write the file content */
@@ -111,11 +113,11 @@
int c;
/* Create a new file to convert the first file */
- outputFile = new File("recoding");
+ outputFile = new File("recoding"); //$NON-NLS-1$
/* Create a stream reader and a stream writer, and connect them
with the two files */
InputStreamReader inputStream = new InputStreamReader(new
FileInputStream(file));
/* Specify the codage for the output file */
- OutputStreamWriter outputStream = new OutputStreamWriter(new
FileOutputStream(outputFile) , "UTF-8");
+ OutputStreamWriter outputStream = new OutputStreamWriter(new
FileOutputStream(outputFile) , "UTF-8"); //$NON-NLS-1$
/* Then, write the file char by char */
while((c = inputStream.read()) != -1)
outputStream.write(c);
@@ -130,27 +132,27 @@
throw new SimpleGadgetException(e);
}
Element current = xmlReply.getElementAt(1);
- String weather = getData(current, "condition");
+ String weather = getData(current, "condition"); //$NON-NLS-1$
if (weather.length() == 0) {
- weather = "unknown";
+ weather = "unknown"; //$NON-NLS-1$
}
- String temperature = getData(current, configuration().getUnit()
== Unit.celsius ? "temp_c" : "temp_f");
- String humidity = getData(current, "humidity");
- humidity = humidity.split(":")[1];
+ String temperature = getData(current, configuration().getUnit()
== Unit.celsius ? "temp_c" : "temp_f"); //$NON-NLS-1$ //$NON-NLS-2$
+ String humidity = getData(current, "humidity"); //$NON-NLS-1$
+ humidity = humidity.split(":")[1]; //$NON-NLS-1$
humidity = (String) humidity.subSequence(0,
humidity.length()-1);
// Icon icon = new ImageIcon(new URL("http://www.google.com" +
// getData(current, "icon")));
// String wind = getData(current, "wind_condition");
// wind = humidity.split("\\s+:\\s+")[1];
- String message = String.format("Current weather at %s are
\"%s\" with a temperature of %s degrees %s. Humidity level is %s percents.",
configuration().getLocation(), weather, temperature,
- configuration().getUnit() == Unit.celsius ?
"celsius" : "fahrenheit", humidity);
+ String message = String.format("Current weather at %s are
\"%s\" with a temperature of %s degrees %s. Humidity level is %s percents.",
configuration().getLocation(), weather, temperature, //$NON-NLS-1$
+ configuration().getUnit() == Unit.celsius ?
"celsius" : "fahrenheit", humidity); //$NON-NLS-1$ //$NON-NLS-2$
throwMessage(message);
if (configuration().isTomorrow()) {
String temperatureHigh;
current = xmlReply.getElementAt(3);
- weather = getData(current, "condition");
+ weather = getData(current, "condition"); //$NON-NLS-1$
/*
* There is an annoying difference between google FR
and EN.
@@ -160,19 +162,19 @@
* be converted to respect the CC configuration.
*/
if (I18N.cc_Locale.equals(Locale.ENGLISH) &&
configuration().getUnit() == Unit.celsius) {
- temperature =
fahrenheitToCelsius(getData(current, "low"));
- temperatureHigh =
fahrenheitToCelsius(getData(current, "high"));
+ temperature =
fahrenheitToCelsius(getData(current, "low")); //$NON-NLS-1$
+ temperatureHigh =
fahrenheitToCelsius(getData(current, "high")); //$NON-NLS-1$
}
else if (!(I18N.cc_Locale.equals(Locale.ENGLISH)) &&
configuration().getUnit() == Unit.fahrenheit) {
- temperature =
celsiusToFahrenheit(getData(current, "low"));
- temperatureHigh =
celsiusToFahrenheit(getData(current, "high"));
+ temperature =
celsiusToFahrenheit(getData(current, "low")); //$NON-NLS-1$
+ temperatureHigh =
celsiusToFahrenheit(getData(current, "high")); //$NON-NLS-1$
}
else {
- temperature = getData(current, "low");
- temperatureHigh = getData(current, "high");
+ temperature = getData(current, "low");
//$NON-NLS-1$
+ temperatureHigh = getData(current, "high");
//$NON-NLS-1$
}
- message = String.format("Tomorrow's forecast : \"%s\"
temperatures from %s to %s degrees.", weather, temperature, temperatureHigh);
+ message = String.format("Tomorrow's forecast : \"%s\"
temperatures from %s to %s degrees.", weather, temperature, temperatureHigh);
//$NON-NLS-1$
throwMessage(message);
}
outputFile.deleteOnExit();
Added:
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages.properties
===================================================================
---
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages.properties
(rev 0)
+++
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages.properties
2008-08-28 09:45:10 UTC (rev 1623)
@@ -0,0 +1 @@
+url=http://www.google.com/ig/api?hl=en&weather=%s
Added:
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_en.properties
===================================================================
---
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_en.properties
(rev 0)
+++
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_en.properties
2008-08-28 09:45:10 UTC (rev 1623)
@@ -0,0 +1 @@
+url=http://www.google.com/ig/api?hl=en&weather=%s
Added:
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_fr.properties
===================================================================
---
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_fr.properties
(rev 0)
+++
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_fr.properties
2008-08-28 09:45:10 UTC (rev 1623)
@@ -0,0 +1 @@
+url=http://www.google.com/ig/api?hl=en&weather=%s
Added:
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_nl.properties
===================================================================
---
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_nl.properties
(rev 0)
+++
software_suite_v2/software/gadgets/tuxdroid-gadget-weather/trunk/tuxdroid-gadget-weather/sources/net/karmaLab/tuxDroid/gadgets/messages_nl.properties
2008-08-28 09:45:10 UTC (rev 1623)
@@ -0,0 +1 @@
+url=http://www.google.com/ig/api?hl=nl&weather=%s
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn