738b6f01b6a4382e843414859714a61c40579d68
[profile/ivi/navit.git] / navit / navit / android / src / org / navitproject / navit / NavitTextTranslations.java
1 /**\r
2  * Navit, a modular navigation system.\r
3  * Copyright (C) 2005-2008 Navit Team\r
4  *\r
5  * This program is free software; you can redistribute it and/or\r
6  * modify it under the terms of the GNU General Public License\r
7  * version 2 as published by the Free Software Foundation.\r
8  *\r
9  * This program is distributed in the hope that it will be useful,\r
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
12  * GNU General Public License for more details.\r
13  *\r
14  * You should have received a copy of the GNU General Public License\r
15  * along with this program; if not, write to the\r
16  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\r
17  * Boston, MA  02110-1301, USA.\r
18  */\r
19 \r
20 package org.navitproject.navit;\r
21 \r
22 import java.util.HashMap;\r
23 \r
24 import android.util.Log;\r
25 \r
26 public class NavitTextTranslations\r
27 {\r
28         static String main_language = "en";\r
29         static String sub_language = "EN";\r
30         static String fallback_language = "en";\r
31         static String fallback_sub_language = "EN";\r
32         private static HashMap<String, HashMap<String, String>> Navit_text_lookup = new HashMap<String, HashMap<String, String>>();\r
33 \r
34 \r
35         // space !!\r
36         static final String m = " ";\r
37 \r
38         static final String NAVIT_JAVA_MENU_download_map_en = "Download maps";\r
39         static final String NAVIT_JAVA_MENU_download_map_fr = "Télécharger des cartes";\r
40         static final String NAVIT_JAVA_MENU_download_map_nl = "Download kaarten";\r
41         static final String NAVIT_JAVA_MENU_download_map_de = "Karten herunterladen";\r
42 \r
43         static final String INFO_BOX_TITLE_en = "Welcome to Navit";\r
44         static final String INFO_BOX_TITLE_fr = "Bienvenue chez Navit";\r
45         static final String INFO_BOX_TITLE_nl = "Welkom bij Navit";\r
46         static final String INFO_BOX_TITLE_de = "Willkommen bei Navit";\r
47 \r
48         // FIRST RUN STRINGS\r
49         // During first run of Navit, the following text will display in a dialog box.\r
50         static final String INFO_BOX_TEXT_en =  m + "You are running Navit for the first time!\n\n" + m + "To start, select \"" + NAVIT_JAVA_MENU_download_map_en + "\"\n" + m + "from the menu to download a map\n" + m + "of your area.\n" + m + "Note: The map filesize may be large\n" + m + "(>50MB) - a wifi connection is recommended.\n\n" + m + "Mapdata:\n" + m + "CC-BY-SA OpenStreetMap Project\n\n" + m + "More information on Navit\n" + m + "can be found at\n" + m + "http://wiki.navit-project.org\n" + "\n" + m + "Enjoy Navit!";\r
51         static final String INFO_BOX_TEXT_fr = m + "Vous exécutez Navit pour la première fois\n\n" + m + "Pour commencer, sélectionnez \n \"" + NAVIT_JAVA_MENU_download_map_fr + "\"\n" + m + "du menu et télechargez une carte\n de votre région.\n" + m + "Les cartes sont volumineux, donc\n il est préférable d'avoir une connection\n internet illimitée!\n\n" + m + "Cartes:\n" + m + "CC-BY-SA OpenStreetMap Project\n\n" + m + "Pour plus d'infos sur Navit\n" + m + "visitez notre site internet\n" + m + "http://wiki.navit-project.org/\n" + "\n" + m + "      Amusez vous avec Navit.";\r
52         static final String INFO_BOX_TEXT_de = m + "Sie starten Navit zum ersten Mal!\n\n" + m + "Zum loslegen im Menu \"" + NAVIT_JAVA_MENU_download_map_en + "\"\n" + m + "auswählen und Karte für die\n" + m + "gewünschte Region downloaden.\n" + m + "Die Kartendatei ist sehr gross,\n" + m + "bitte flatrate oder ähnliches aktivieren!\n\n" + m + "Kartendaten:\n" + m + "CC-BY-SA OpenStreetMap Project\n\n" + m + "Für mehr Infos zu Navit\n" + m + "bitte die Website besuchen\n" + m + "http://wiki.navit-project.org/\n" + "\n" + m + "      Viel Spaß mit Navit.";\r
53         static final String INFO_BOX_TEXT_nl = m + "U voert Navit voor de eerste keer uit.\n\n" + m + "Om te beginnen, selecteer  \n \"" + NAVIT_JAVA_MENU_download_map_nl + "\"\n" + m + "uit het menu en download een kaart\n van je regio.\n" + m + "De kaarten zijn groot,\n het is dus aangeraden om een \n ongelimiteerde internetverbinding te hebben!\n\n" + m + "Kaartdata:\n" + m + "CC-BY-SA OpenStreetMap Project\n\n" + m + "Voor meer info over Navit\n" + m + "bezoek onze site\n" + m + "http://wiki.navit-project.org/\n" + "\n" + m + "      Nog veel plezier met Navit.";\r
54 \r
55         // MENU STRINGS\r
56         static final String NAVIT_JAVA_MENU_MOREINFO_en = "More info";\r
57         static final String NAVIT_JAVA_MENU_MOREINFO_fr = "plus d'infos";\r
58         static final String NAVIT_JAVA_MENU_MOREINFO_nl = "meer info";\r
59         static final String NAVIT_JAVA_MENU_MOREINFO_de = "Mehr infos";\r
60 \r
61         static final String NAVIT_JAVA_MENU_ZOOMIN_en = "zoom in";\r
62         static final String NAVIT_JAVA_MENU_ZOOMIN_fr = "zoom-avant";\r
63         static final String NAVIT_JAVA_MENU_ZOOMIN_nl = "inzoomen";\r
64         static final String NAVIT_JAVA_MENU_ZOOMIN_de = "zoom in";\r
65 \r
66         static final String NAVIT_JAVA_MENU_ZOOMOUT_en = "zoom out";\r
67         static final String NAVIT_JAVA_MENU_ZOOMOUT_fr = "zoom-arrière";\r
68         static final String NAVIT_JAVA_MENU_ZOOMOUT_nl = "uitzoomen";\r
69         static final String NAVIT_JAVA_MENU_ZOOMOUT_de = "zoom out";\r
70 \r
71         static final String NAVIT_JAVA_MENU_EXIT_en = "Exit Navit";\r
72         static final String NAVIT_JAVA_MENU_EXIT_fr = "quittez Navit";\r
73         static final String NAVIT_JAVA_MENU_EXIT_nl = "Navit afsluiten";\r
74         static final String NAVIT_JAVA_MENU_EXIT_de = "Navit Beenden";\r
75 \r
76         static final String NAVIT_JAVA_MENU_TOGGLE_POI_en = "POI show/hide";\r
77         static final String NAVIT_JAVA_MENU_TOGGLE_POI_fr = "POI on/off";\r
78         static final String NAVIT_JAVA_MENU_TOGGLE_POI_nl = "POI aan/uit";\r
79         static final String NAVIT_JAVA_MENU_TOGGLE_POI_de = "POI ein/aus";\r
80 \r
81         static final String NAVIT_JAVA_OVERLAY_BUBBLE_DRIVEHERE_en = "drive here";\r
82         static final String NAVIT_JAVA_OVERLAY_BUBBLE_DRIVEHERE_fr = "conduisez";\r
83         static final String NAVIT_JAVA_OVERLAY_BUBBLE_DRIVEHERE_nl = "Ga naar hier";\r
84         static final String NAVIT_JAVA_OVERLAY_BUBBLE_DRIVEHERE_de = "Ziel setzen";\r
85 \r
86         static final String NAVIT_JAVA_MENU_download_second_map_en = "Download second map";\r
87         static final String NAVIT_JAVA_MENU_download_second_map_fr = "Télécharchez 2ème carte";\r
88         static final String NAVIT_JAVA_MENU_download_second_map_nl = "Download 2de kaart";\r
89         static final String NAVIT_JAVA_MENU_download_second_map_de = "2te karte runterladen";\r
90 \r
91         // default values\r
92         static String NAVIT_JAVA_MENU_download_maps     = NAVIT_JAVA_MENU_download_map_en;\r
93         static String INFO_BOX_TITLE                            = INFO_BOX_TITLE_en;\r
94         static String INFO_BOX_TEXT                             = INFO_BOX_TEXT_en;\r
95         static String NAVIT_JAVA_MENU_MOREINFO                  = NAVIT_JAVA_MENU_MOREINFO_en;\r
96         static String NAVIT_JAVA_MENU_ZOOMIN                    = NAVIT_JAVA_MENU_ZOOMIN_en;\r
97         static String NAVIT_JAVA_MENU_ZOOMOUT                   = NAVIT_JAVA_MENU_ZOOMOUT_en;\r
98         static String NAVIT_JAVA_MENU_EXIT                      = NAVIT_JAVA_MENU_EXIT_en;\r
99         static String NAVIT_JAVA_MENU_TOGGLE_POI                = NAVIT_JAVA_MENU_TOGGLE_POI_en;\r
100         static String NAVIT_JAVA_OVERLAY_BUBBLE_DRIVEHERE       = NAVIT_JAVA_OVERLAY_BUBBLE_DRIVEHERE_en;\r
101 \r
102         public static void init()\r
103         {\r
104                 Log.e("NavitTextTranslations", "initializing translated text ...");\r
105                 String k = null;\r
106                 String[] v = null;\r
107 \r
108 \r
109                 k = "exit navit";\r
110                 v = new String[]{"en", "Exit Navit", "de", "Navit beenden", "nl", "Navit afsluiten", "fr","Quittez Navit"};\r
111                 p(k, v);\r
112 \r
113                 k = "zoom in";\r
114                 v = new String[]{"en", "Zoom in", "fr", "Zoom-avant"};\r
115                 p(k, v);\r
116 \r
117                 k = "zoom out";\r
118                 v = new String[]{"en", "Zoom out", "fr", "Zoom-arrière", "nl", "Zoom uit"};\r
119                 p(k, v);\r
120 \r
121                 k = "address search";\r
122                 v = new String[]{"en", "Address search", "de", "Adresse suchen", "nl", "Zoek adres", "fr","Cherchez adresse"};\r
123                 p(k, v);\r
124 \r
125                 k = "Mapdownload";\r
126                 v = new String[]{"en", "Mapdownload", "de", "Kartendownload"};\r
127                 p(k, v);\r
128 \r
129                 k = "downloading";\r
130                 v = new String[]{"en", "downloading"};\r
131                 p(k, v);\r
132 \r
133                 k = "Downloaded Maps";\r
134                 v = new String[]{"en", "Downloaded Maps", "de", "Heruntergeladene Karten", "nl", "Gedownloade kaarten", "fr","Cartes téléchargées" };\r
135                 p(k, v);\r
136 \r
137                 k = "ETA";\r
138                 v = new String[]{"en", "ETA", "de", "fertig in"};\r
139                 p(k, v);\r
140 \r
141                 k = "Error downloading map!";\r
142                 v = new String[]{"en", "Error downloading map!", "de", "Fehler beim Kartendownload"};\r
143                 p(k, v);\r
144 \r
145                 k = "ready";\r
146                 v = new String[]{"en", "ready", "de", "fertig"};\r
147                 p(k, v);\r
148 \r
149                 k = "Ok";\r
150                 v = new String[]{"en", "OK"};\r
151                 p(k, v);\r
152 \r
153                 k = "No address found";\r
154                 v = new String[]{"en", "No address found", "de", "Keine Adresse gefunden"};\r
155                 p(k, v);\r
156 \r
157                 k = "Enter: City and Street";\r
158                 v = new String[]{"en", "Enter: City, Street", "de", "Stadt und Straße:"};\r
159                 p(k, v);\r
160 \r
161                 k = "No search string entered";\r
162                 v = new String[]{"en", "No text entered", "de", "Keine Eingabe"};\r
163                 p(k, v);\r
164 \r
165                 k = "setting destination to";\r
166                 v = new String[]{"en", "Setting destination to:", "de", "neues Fahrziel"};\r
167                 p(k, v);\r
168 \r
169                 k = "getting search results";\r
170                 v = new String[]{"en", "getting search results", "de", "lade Suchergebnisse"};\r
171                 p(k, v);\r
172 \r
173                 k = "searching ...";\r
174                 v = new String[]{"en", "searching ...", "de", "Suche läuft ..."};\r
175                 p(k, v);\r
176 \r
177                 k = "No Results found!";\r
178                 v = new String[]{"en", "No Results found!", "de", "Suche liefert kein Ergebnis!"};\r
179                 p(k, v);\r
180 \r
181                 k = "Map data (c) OpenStreetMap contributors, CC-BY-SA";\r
182                 v = new String[]{"en", "Map data (c) OpenStreetMap contributors, CC-BY-SA"};\r
183                 p(k, v);\r
184 \r
185                 k = "partial match";\r
186                 v = new String[]{"en", "partial match", "de", "ungefähr"};\r
187                 p(k, v);\r
188 \r
189                 k = "Search";\r
190                 v = new String[]{"en", "Search", "de", "suchen"};\r
191                 p(k, v);\r
192 \r
193                 k = "drive here";\r
194                 v = new String[]{"en", "Route to here", "de", "Ziel setzen"};\r
195                 p(k, v);\r
196 \r
197                 k = "loading search results";\r
198                 v = new String[]{"en", "Loading search results", "de", "lade Suchergebnisse"};\r
199                 p(k, v);\r
200 \r
201                 k = "towns";\r
202                 v = new String[]{"en", "Towns", "de", "Städte"};\r
203                 p(k, v);\r
204 \r
205 \r
206                 Log.e("NavitTextTranslations", "... ready");\r
207         }\r
208 \r
209         private static void p(String key, String[] values)\r
210         {\r
211                 HashMap<String, String> t = null;\r
212                 t = new HashMap<String, String>();\r
213                 Log.e("NavitTextTranslations", "trying: " + key);\r
214                 try\r
215                 {\r
216                         for (int i = 0; i < (int) (values.length / 2); i++)\r
217                         {\r
218                                 t.put(values[i * 2], values[(i * 2) + 1]);\r
219                         }\r
220                         Navit_text_lookup.put(key, t);\r
221                 }\r
222                 catch (Exception e)\r
223                 {\r
224                         Log.e("NavitTextTranslations", "!!Error in translationkey: " + key);\r
225                 }\r
226         }\r
227 \r
228         public static String get_text(String in)\r
229         {\r
230                 String out = null;\r
231 \r
232                 //Log.e("NavitTextTranslations", "lookup L:" + main_language + " T:" + in);\r
233                 try\r
234                 {\r
235                         out = Navit_text_lookup.get(in).get(main_language);\r
236                 }\r
237                 catch (Exception e)\r
238                 {\r
239                         // most likely there is not translation yet\r
240                         //Log.e("NavitTextTranslations", "lookup: exception");\r
241                         out = null;\r
242                 }\r
243 \r
244                 if (out == null)\r
245                 {\r
246                         // always return a string for output (use fallback language)\r
247                         //Log.e("NavitTextTranslations", "using default language");\r
248                         try\r
249                         {\r
250                                 out = Navit_text_lookup.get(in).get(fallback_language);\r
251                         }\r
252                         catch (Exception e)\r
253                         {\r
254                                 //Log.e("NavitTextTranslations", "using default language: exception");\r
255                                 // most likely there is not translation yet\r
256                                 out = null;\r
257                         }\r
258                 }\r
259 \r
260                 if (out == null)\r
261                 {\r
262                         // if we still dont have any text, use the ".mo" file and call the c-function gettext(in)\r
263                         out = NavitGraphics.getLocalizedString(in);\r
264                         if (out != null)\r
265                         {\r
266                                 HashMap<String, String> langmap = new HashMap<String, String>();\r
267                                 langmap.put(main_language, out);\r
268                                 Navit_text_lookup.put(in, langmap);\r
269                         }\r
270 \r
271                         //Log.e("NavitTextTranslations", "return the value from gettext() = " + out);\r
272                 }\r
273                 return out;\r
274         }\r
275 \r
276 }\r