diff --git a/L10n/en.template b/L10n/en.template index ea83905b..00ac1862 100644 --- a/L10n/en.template +++ b/L10n/en.template @@ -1,7 +1,7 @@ -/* Use same text as E:D Launcher's verification dialog. [prefs.py:311] */ +/* Use same text as E:D Launcher's verification dialog. [prefs.py:319] */ "A verification code has now been sent to the{CR}email address associated with your Elite account." = "A verification code has now been sent to the{CR}email address associated with your Elite account."; -/* App menu entry on OSX. [EDMarketConnector.py:98] */ +/* App menu entry on OSX. [EDMarketConnector.py:138] */ "About {APP}" = "About {APP}"; /* Folder selection button on Windows. [prefs.py:113] */ @@ -10,40 +10,40 @@ /* Folder selection button on OSX. [prefs.py:112] */ "Change..." = "Change..."; -/* [EDMarketConnector.py:99] */ +/* [EDMarketConnector.py:139] */ "Check for Updates..." = "Check for Updates..."; -/* Privacy setting. [prefs.py:149] */ +/* Privacy setting. [prefs.py:152] */ "Cmdr name" = "Cmdr name"; -/* Main window. [EDMarketConnector.py:72] */ +/* Main window. [EDMarketConnector.py:112] */ "Cmdr:" = "Cmdr:"; -/* Update button in main window. [EDMarketConnector.py:323] */ +/* Update button in main window. [EDMarketConnector.py:393] */ "cooldown {SS}s" = "cooldown {SS}s"; /* Section heading in settings. [prefs.py:70] */ "Credentials" = "Credentials"; -/* [EDMarketConnector.py:306] */ +/* [EDMarketConnector.py:354] */ "Error: Can't connect to EDDN" = "Error: Can't connect to EDDN"; -/* [EDMarketConnector.py:311] */ +/* [EDMarketConnector.py:359] */ "Error: Connection to EDDN timed out" = "Error: Connection to EDDN timed out"; -/* [companion.py:109] */ +/* [companion.py:108] */ "Error: Invalid Credentials" = "Error: Invalid Credentials"; -/* [companion.py:103] */ +/* [companion.py:102] */ "Error: Server is down" = "Error: Server is down"; -/* Item in the File menu on Windows. [EDMarketConnector.py:115] */ +/* Item in the File menu on Windows. [EDMarketConnector.py:156] */ "Exit" = "Exit"; -/* [EDMarketConnector.py:203] */ +/* [EDMarketConnector.py:245] */ "Fetching station data..." = "Fetching station data..."; -/* Menu title on Windows. [EDMarketConnector.py:116] */ +/* Menu title on Windows. [EDMarketConnector.py:157] */ "File" = "File"; /* Output folder prompt on Windows. [prefs.py:111] */ @@ -52,19 +52,19 @@ /* [prefs.py:108] */ "Flight log" = "Flight log"; -/* Section heading in settings on Windows. [prefs.py:125] */ +/* Section heading in settings on Windows. [prefs.py:126] */ "Hotkey" = "Hotkey"; -/* [prefs.py:148] */ +/* [prefs.py:151] */ "How do you want to be identified in the saved data" = "How do you want to be identified in the saved data"; -/* Section heading in settings on OSX. [prefs.py:124] */ +/* Section heading in settings on OSX. [prefs.py:125] */ "Keyboard shortcut" = "Keyboard shortcut"; -/* [EDMarketConnector.py:261] */ +/* [EDMarketConnector.py:313] */ "Last updated at {HH}:{MM}:{SS}" = "Last updated at {HH}:{MM}:{SS}"; -/* [EDMarketConnector.py:158] */ +/* [EDMarketConnector.py:198] */ "Logging in..." = "Logging in..."; /* [prefs.py:102] */ @@ -76,16 +76,16 @@ /* [prefs.py:100] */ "Market data in Trade Dangerous format" = "Market data in Trade Dangerous format"; -/* No hotkey/shortcut currently defined. [prefs.py:136] */ +/* No hotkey/shortcut currently defined. [prefs.py:137] */ "none" = "none"; -/* [prefs.py:159] */ +/* [prefs.py:162] */ "OK" = "OK"; /* Hotkey/Shortcut setting. [prefs.py:141] */ "Only when Elite: Dangerous is the active app" = "Only when Elite: Dangerous is the active app"; -/* Shortcut settings button on OSX. [prefs.py:133] */ +/* Shortcut settings button on OSX. [prefs.py:134] */ "Open System Preferences" = "Open System Preferences"; /* Section heading in settings. [prefs.py:89] */ @@ -94,13 +94,13 @@ /* Use same text as E:D Launcher's login dialog. [prefs.py:76] */ "Password" = "Password"; -/* Hotkey/Shortcut setting. [prefs.py:140] */ +/* Hotkey/Shortcut setting. [prefs.py:143] */ "Play sound" = "Play sound"; /* [prefs.py:94] */ "Please choose what data to save" = "Please choose what data to save"; -/* Use same text as E:D Launcher's verification dialog. [prefs.py:314] */ +/* Use same text as E:D Launcher's verification dialog. [prefs.py:322] */ "Please enter the code into the box below." = "Please enter the code into the box below."; /* Use same text as E:D Launcher's login dialog. [prefs.py:74] */ @@ -109,22 +109,22 @@ /* [prefs.py:49] */ "Preferences" = "Preferences"; -/* Section heading in settings. [prefs.py:143] */ +/* Section heading in settings. [prefs.py:146] */ "Privacy" = "Privacy"; -/* Privacy setting. [prefs.py:150] */ +/* Privacy setting. [prefs.py:153] */ "Pseudo-anonymized ID" = "Pseudo-anonymized ID"; -/* Shortcut settings prompt on OSX. [prefs.py:130] */ +/* Shortcut settings prompt on OSX. [prefs.py:131] */ "Re-start {APP} to use shortcuts" = "Re-start {APP} to use shortcuts"; /* [prefs.py:96] */ "Send station data to the Elite Dangerous Data Network" = "Send station data to the Elite Dangerous Data Network"; -/* [EDMarketConnector.py:281] */ +/* [EDMarketConnector.py:333] */ "Sending data to EDDN..." = "Sending data to EDDN..."; -/* Item in the File menu on Windows. [EDMarketConnector.py:113] */ +/* Item in the File menu on Windows. [EDMarketConnector.py:154] */ "Settings" = "Settings"; /* [prefs.py:106] */ @@ -133,42 +133,42 @@ /* [prefs.py:104] */ "Ship loadout in E:D Shipyard format" = "Ship loadout in E:D Shipyard format"; -/* [EDMarketConnector.py:290] */ +/* [EDMarketConnector.py:340] */ "Station doesn't have a market!" = "Station doesn't have a market!"; -/* [EDMarketConnector.py:287] */ +/* [EDMarketConnector.py:338] */ "Station doesn't have anything!" = "Station doesn't have anything!"; -/* Main window. [EDMarketConnector.py:74] */ +/* Main window. [EDMarketConnector.py:114] */ "Station:" = "Station:"; -/* Main window. [EDMarketConnector.py:73] */ +/* Main window. [EDMarketConnector.py:113] */ "System:" = "System:"; -/* Update button in main window. [EDMarketConnector.py:79] */ +/* Update button in main window. [EDMarketConnector.py:119] */ "Update" = "Update"; /* Use same text as E:D Launcher's login dialog. [prefs.py:75] */ "Username (Email)" = "Username (Email)"; -/* Shouldn't happen. [EDMarketConnector.py:227] */ +/* Shouldn't happen. [EDMarketConnector.py:270] */ "What are you flying?!" = "What are you flying?!"; -/* Shouldn't happen. [EDMarketConnector.py:224] */ +/* Shouldn't happen. [EDMarketConnector.py:267] */ "Where are you?!" = "Where are you?!"; /* Output folder prompt on OSX. [prefs.py:110] */ "Where:" = "Where:"; -/* Shouldn't happen. [EDMarketConnector.py:221] */ +/* Shouldn't happen. [EDMarketConnector.py:264] */ "Who are you?!" = "Who are you?!"; -/* Menu title on OSX. [EDMarketConnector.py:102] */ +/* Menu title on OSX. [EDMarketConnector.py:142] */ "Window" = "Window"; -/* [EDMarketConnector.py:265] */ +/* [EDMarketConnector.py:316] */ "You're not docked at a station!" = "You're not docked at a station!"; -/* Shortcut settings prompt on OSX. [prefs.py:132] */ +/* Shortcut settings prompt on OSX. [prefs.py:133] */ "{APP} needs permission to use shortcuts" = "{APP} needs permission to use shortcuts"; diff --git a/L10n/fr.strings b/L10n/fr.strings index 28cb39e0..1deab672 100644 --- a/L10n/fr.strings +++ b/L10n/fr.strings @@ -146,7 +146,7 @@ "You're not docked at a station!" = "Vous n'êtes pas amarré à une station !"; /* Section heading in settings on Windows. [prefs.py:125] */ -"Hotkey" = ""; +"Hotkey" = "Raccourci clavier"; /* No hotkey/shortcut currently defined. [prefs.py:136] */ "none" = "aucun"; @@ -155,10 +155,10 @@ "Open System Preferences" = "Ouvrir Préférences Système"; /* Hotkey/Shortcut setting. [prefs.py:140] */ -"Play sound" = ""; +"Play sound" = "Jouer un son"; /* Shortcut settings prompt on OSX. [prefs.py:130] */ -"Re-start {APP} to use shortcuts" = ""; +"Re-start {APP} to use shortcuts" = "Rédémarrer {APP} pour utiliser les raccourcis"; /* Section heading in settings on OSX. [prefs.py:124] */ "Keyboard shortcut" = "Raccourci clavier"; @@ -167,4 +167,7 @@ "Window" = "Fenêtre"; /* Shortcut settings prompt on OSX. [prefs.py:132] */ -"{APP} needs permission to use shortcuts" = ""; +"{APP} needs permission to use shortcuts" = "{APP} a besoin de permissions pour utiliser les raccourcis"; + +/* Hotkey/Shortcut setting. [prefs.py:141] */ +"Only when Elite: Dangerous is the active app" = "Seulement quand Elite: Dangerous est l'application active"; diff --git a/L10n/it.strings b/L10n/it.strings index d176d53f..513471d9 100644 --- a/L10n/it.strings +++ b/L10n/it.strings @@ -147,7 +147,7 @@ "You're not docked at a station!" = "Non sei parcheggiato in nessuna stazione !"; /* Section heading in settings on Windows. [prefs.py:125] */ -"Hotkey" = ""; +"Hotkey" = "Hotkey"; /* No hotkey/shortcut currently defined. [prefs.py:136] */ "none" = "nessuna"; @@ -156,10 +156,10 @@ "Open System Preferences" = "Apri Preferenze di Systema"; /* Hotkey/Shortcut setting. [prefs.py:140] */ -"Play sound" = ""; +"Play sound" = "Notifica sonora"; /* Shortcut settings prompt on OSX. [prefs.py:130] */ -"Re-start {APP} to use shortcuts" = ""; +"Re-start {APP} to use shortcuts" = "Riavvia {APP} per usare le scorciatoie"; /* Section heading in settings on OSX. [prefs.py:124] */ "Keyboard shortcut" = "Abbreviazione da tastiera"; @@ -168,4 +168,7 @@ "Window" = "Finestra"; /* Shortcut settings prompt on OSX. [prefs.py:132] */ -"{APP} needs permission to use shortcuts" = ""; +"{APP} needs permission to use shortcuts" = "{APP} ha bisogno dei permessi per usare le scorciatoie"; + +/* Hotkey/Shortcut setting. [prefs.py:141] */ +"Only when Elite: Dangerous is the active app" = "Solo quando “Elite: Dangerous” è avviato"; diff --git a/L10n/pl.strings b/L10n/pl.strings index 1ee123f3..fde1010f 100644 --- a/L10n/pl.strings +++ b/L10n/pl.strings @@ -146,7 +146,7 @@ "You're not docked at a station!" = "Nie jesteś zadokowany do stacji!"; /* Section heading in settings on Windows. [prefs.py:125] */ -"Hotkey" = ""; +"Hotkey" = "Skr. Klaw."; /* No hotkey/shortcut currently defined. [prefs.py:136] */ "none" = "brak"; @@ -155,10 +155,10 @@ "Open System Preferences" = "Otwórz Preferencje systemowe"; /* Hotkey/Shortcut setting. [prefs.py:140] */ -"Play sound" = ""; +"Play sound" = "Odtwórz dźwięk"; /* Shortcut settings prompt on OSX. [prefs.py:130] */ -"Re-start {APP} to use shortcuts" = ""; +"Re-start {APP} to use shortcuts" = "Zrestartuj {APP} by użyć{CR}skrótu klawiszowego."; /* Section heading in settings on OSX. [prefs.py:124] */ "Keyboard shortcut" = "Skrót klawiaturowy"; @@ -167,4 +167,7 @@ "Window" = "Okno"; /* Shortcut settings prompt on OSX. [prefs.py:132] */ -"{APP} needs permission to use shortcuts" = ""; +"{APP} needs permission to use shortcuts" = "{APP} wymaga uprawnień by{CR}móc korzystać ze skrótów klawiszowych."; + +/* Hotkey/Shortcut setting. [prefs.py:141] */ +"Only when Elite: Dangerous is the active app" = "Tylko gdy Elite: Dangerous jest aplikacją aktywną"; diff --git a/l10n.py b/l10n.py index 0d0acda5..48346f29 100755 --- a/l10n.py +++ b/l10n.py @@ -38,7 +38,7 @@ class Translations: lang = Translations.FALLBACK if lang not in self.available(): - __builtin__.__dict__['_'] = lambda x: x + __builtin__.__dict__['_'] = lambda x: unicode(x) # Promote strings to Unicode for consistency else: regexp = re.compile(r'\s*"([^"]+)"\s*=\s*"([^"]+)"\s*;\s*$') comment= re.compile(r'\s*/\*.*\*/\s*$') @@ -47,7 +47,7 @@ class Translations: if line.strip(): match = regexp.match(line) if match: - self.translations[match.group(1)] = match.group(2) + self.translations[match.group(1)] = match.group(2).replace(u'{CR}', u'\n') elif not comment.match(line): print 'Bad translation: %s' % line.strip() __builtin__.__dict__['_'] = self.translate @@ -56,12 +56,12 @@ class Translations: def translate(self, x): if not self.translations.get(x): print 'Missing translation: "%s"' % x - return x + return unicode(x) else: - return self.translations.get(x) or x + return self.translations.get(x) or unicode(x) else: def translate(self, x): - return self.translations.get(x, x) or x + return self.translations.get(x) or unicode(x) # Returns list of available language codes def available(self): diff --git a/prefs.py b/prefs.py index 387740f8..928c2f03 100644 --- a/prefs.py +++ b/prefs.py @@ -316,7 +316,7 @@ class AuthenticationDialog(tk.Toplevel): frame.columnconfigure(0, weight=3) frame.columnconfigure(2, weight=1) - ttk.Label(frame, text=_('A verification code has now been sent to the{CR}email address associated with your Elite account.').format(CR='\n') + # Use same text as E:D Launcher's verification dialog + ttk.Label(frame, text=_('A verification code has now been sent to the{CR}email address associated with your Elite account.') + # Use same text as E:D Launcher's verification dialog '\n' + _('Please enter the code into the box below.'), anchor=tk.W, justify=tk.LEFT).grid(columnspan=4, sticky=tk.NSEW) # Use same text as E:D Launcher's verification dialog