More localization

This commit is contained in:
blitzmann
2020-06-07 13:44:15 -04:00
parent c3ceebcec7
commit 2490d3de92
8 changed files with 239 additions and 82 deletions

View File

@@ -32,7 +32,7 @@ from gui.utils.clipboard import toClipboard
from service.character import Character
from service.fit import Fit
_ = wx.GetTranslation
pyfalog = Logger(__name__)
@@ -44,7 +44,7 @@ class CharacterSelection(wx.Panel):
mainSizer = wx.BoxSizer(wx.HORIZONTAL)
self.SetSizer(mainSizer)
mainSizer.Add(wx.StaticText(self, wx.ID_ANY, "Character: "), 0, wx.CENTER | wx.RIGHT | wx.LEFT, 3)
mainSizer.Add(wx.StaticText(self, wx.ID_ANY, _("Character: ")), 0, wx.CENTER | wx.RIGHT | wx.LEFT, 3)
# cache current selection to fall back in case we choose to open char editor
self.charCache = None
@@ -65,7 +65,7 @@ class CharacterSelection(wx.Panel):
self.btnRefresh.SetMinSize(size)
self.btnRefresh.SetMaxSize(size)
self.btnRefresh.SetToolTip("Refresh API")
self.btnRefresh.SetToolTip(_("Refresh Skills"))
self.btnRefresh.Bind(wx.EVT_BUTTON, self.refreshApi)
self.btnRefresh.Enable(False)
@@ -99,10 +99,10 @@ class CharacterSelection(wx.Panel):
menu = wx.Menu()
grantItem = menu.Append(wx.ID_ANY, "Grant Missing Skills")
grantItem = menu.Append(wx.ID_ANY, _("Grant Missing Skills"))
self.Bind(wx.EVT_MENU, self.grantMissingSkills, grantItem)
exportItem = menu.Append(wx.ID_ANY, "Copy Missing Skills")
exportItem = menu.Append(wx.ID_ANY, _("Copy Missing Skills"))
self.Bind(wx.EVT_MENU, self.exportSkills, exportItem)
self.PopupMenu(menu, pos)
@@ -147,7 +147,7 @@ class CharacterSelection(wx.Panel):
sFit = Fit.getInstance()
sFit.changeChar(fitID, charID)
choice.Append("\u2015 Open Character Editor \u2015", -1)
choice.Append("\u2015 " + _("Open Character Editor") + " \u2015", -1)
self.charCache = self.charChoice.GetCurrentSelection()
if event is not None:
@@ -170,8 +170,8 @@ class CharacterSelection(wx.Panel):
pyfalog.warn(exc_value)
wx.MessageBox(
"Error fetching skill information",
"Error", wx.ICON_ERROR | wx.STAY_ON_TOP)
_("Error fetching skill information"),
_("Error"), wx.ICON_ERROR | wx.STAY_ON_TOP)
def charChanged(self, event):
fitID = self.mainFrame.getActiveFit()
@@ -227,7 +227,7 @@ class CharacterSelection(wx.Panel):
if activeFitID is None:
self.skillReqsStaticBitmap.SetBitmap(self.cleanSkills)
self.skillReqsStaticBitmap.SetToolTip("No active fit")
self.skillReqsStaticBitmap.SetToolTip(_("No active fit"))
else:
sCharacter = Character.getInstance()
self.reqs = sCharacter.checkRequirements(fit)
@@ -235,11 +235,11 @@ class CharacterSelection(wx.Panel):
sCharacter.skillReqsDict = {'charname': fit.character.name, 'skills': []}
if len(self.reqs) == 0:
self.needsSkills = False
tip = "All skill prerequisites have been met"
tip = _("All skill prerequisites have been met")
self.skillReqsStaticBitmap.SetBitmap(self.greenSkills)
else:
self.needsSkills = True
tip = "Skills required:\n"
tip = _("Skills required:") + "\n"
condensed = sFit.serviceFittingOptions["compactSkills"]
if condensed:
dict_ = self._buildSkillsTooltipCondensed(self.reqs, skillsMap={})

View File

@@ -29,7 +29,6 @@ import eos.db
from gui.auxFrame import AuxiliaryFrame
from gui.builtinShipBrowser.events import FitSelected
pyfalog = Logger(__name__)

View File

@@ -30,6 +30,7 @@ from gui.auxFrame import AuxiliaryFrame
from service.prereqsCheck import version_block
_ = wx.GetTranslation
pyfalog = Logger(__name__)
@@ -64,17 +65,17 @@ class ErrorHandler:
class ErrorFrame(AuxiliaryFrame):
def __init__(self, parent=None, error_title='Error!'):
super().__init__(parent, id=wx.ID_ANY, title="pyfa error", pos=wx.DefaultPosition, size=wx.Size(500, 600))
def __init__(self, parent=None, error_title=_('Error!')):
super().__init__(parent, id=wx.ID_ANY, title=_("pyfa error"), pos=wx.DefaultPosition, size=wx.Size(500, 600))
from eos.config import gamedata_version, gamedata_date
time = datetime.datetime.fromtimestamp(int(gamedata_date)).strftime('%Y-%m-%d %H:%M:%S')
version = "pyfa " + config.getVersion() + '\nEVE Data Version: {} ({})\n\n'.format(gamedata_version, time) # gui.aboutData.versionString
desc = "pyfa has experienced an unexpected issue. Below is a message that contains crucial\n" \
"information about how this was triggered. Please contact the developers with the\n" \
"information provided through the EVE Online forums or file a GitHub issue."
desc = _("pyfa has experienced an unexpected issue. Below is a message that contains crucial \n"
"information about how this was triggered. Please contact the developers with the \n"
"information provided through the EVE Online forums or file a GitHub issue.")
self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)

View File

@@ -20,6 +20,7 @@ from service.port import Port
from service.port.esi import ESIExportException
_ = wx.GetTranslation
pyfalog = Logger(__name__)
@@ -27,7 +28,7 @@ class EveFittings(AuxiliaryFrame):
def __init__(self, parent):
super().__init__(
parent, id=wx.ID_ANY, title="Browse EVE Fittings", pos=wx.DefaultPosition,
parent, id=wx.ID_ANY, title=_("Browse EVE Fittings"), pos=wx.DefaultPosition,
size=wx.Size(750, 450), resizeable=True)
self.mainFrame = parent
@@ -39,7 +40,7 @@ class EveFittings(AuxiliaryFrame):
characterSelectSizer.Add(self.charChoice, 1, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)
self.updateCharList()
self.fetchBtn = wx.Button(self, wx.ID_ANY, "Fetch Fits", wx.DefaultPosition, wx.DefaultSize, 5)
self.fetchBtn = wx.Button(self, wx.ID_ANY, _("Fetch Fits"), wx.DefaultPosition, wx.DefaultSize, 5)
characterSelectSizer.Add(self.fetchBtn, 0, wx.ALL, 5)
mainSizer.Add(characterSelectSizer, 0, wx.EXPAND, 5)
@@ -59,8 +60,8 @@ class EveFittings(AuxiliaryFrame):
fitSizer.Add(self.fitView, 1, wx.ALL | wx.EXPAND, 5)
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
self.importBtn = wx.Button(self, wx.ID_ANY, "Import to pyfa", wx.DefaultPosition, wx.DefaultSize, 5)
self.deleteBtn = wx.Button(self, wx.ID_ANY, "Delete from EVE", wx.DefaultPosition, wx.DefaultSize, 5)
self.importBtn = wx.Button(self, wx.ID_ANY, _("Import to pyfa"), wx.DefaultPosition, wx.DefaultSize, 5)
self.deleteBtn = wx.Button(self, wx.ID_ANY, _("Delete from EVE"), wx.DefaultPosition, wx.DefaultSize, 5)
btnSizer.Add(self.importBtn, 1, wx.ALL, 5)
btnSizer.Add(self.deleteBtn, 1, wx.ALL, 5)
fitSizer.Add(btnSizer, 0, wx.EXPAND)
@@ -106,10 +107,10 @@ class EveFittings(AuxiliaryFrame):
def fetchFittings(self, event):
sEsi = Esi.getInstance()
waitDialog = wx.BusyInfo("Fetching fits, please wait...", parent=self)
waitDialog = wx.BusyInfo(_("Fetching fits, please wait..."), parent=self)
activeChar = self.getActiveCharacter()
if activeChar is None:
msg = "Need at least one ESI character to fetch"
msg = _("Need at least one ESI character to fetch")
pyfalog.warning(msg)
self.statusbar.SetStatusText(msg)
return
@@ -121,7 +122,7 @@ class EveFittings(AuxiliaryFrame):
self.fitTree.populateSkillTree(self.fittings)
del waitDialog
except requests.exceptions.ConnectionError:
msg = "Connection error, please check your internet connection"
msg = _("Connection error, please check your internet connection")
pyfalog.error(msg)
self.statusbar.SetStatusText(msg)
except APIException as ex:
@@ -151,8 +152,8 @@ class EveFittings(AuxiliaryFrame):
data = json.loads(self.fitTree.fittingsTreeCtrl.GetItemData(selection))
with wx.MessageDialog(
self, "Do you really want to delete %s (%s) from EVE?" % (data['name'], getItem(data['ship_type_id']).name),
"Confirm Delete", wx.YES | wx.NO | wx.ICON_QUESTION
self, _("Do you really want to delete {} ({}) from EVE?").format((data['name'], getItem(data['ship_type_id']).name)),
_("Confirm Delete"), wx.YES | wx.NO | wx.ICON_QUESTION
) as dlg:
if dlg.ShowModal() == wx.ID_YES:
activeChar = self.getActiveCharacter()
@@ -164,7 +165,7 @@ class EveFittings(AuxiliaryFrame):
self.fitTree.populateSkillTree(self.fittings)
self.fitView.update([])
except requests.exceptions.ConnectionError:
msg = "Connection error, please check your internet connection"
msg = _("Connection error, please check your internet connection")
pyfalog.error(msg)
self.statusbar.SetStatusText(msg)
@@ -174,11 +175,11 @@ class ESIServerExceptionHandler:
pyfalog.error(ex)
with wx.MessageDialog(
parentWindow,
"There was an issue starting up the localized server, try setting "
_("There was an issue starting up the localized server, try setting "
"Login Authentication Method to Manual by going to Preferences -> EVE SS0 -> "
"Login Authentication Method. If this doesn't fix the problem please file an "
"issue on Github.",
"Add Character Error",
"issue on Github."),
_("Add Character Error"),
wx.OK | wx.ICON_ERROR
) as dlg:
dlg.ShowModal()
@@ -191,9 +192,9 @@ class ESIExceptionHandler:
pyfalog.error(ex)
with wx.MessageDialog(
parentWindow,
"There was an error validating characters' SSO token. Please try "
"logging into the character again to reset the token.",
"Invalid Token",
_("There was an error validating characters' SSO token. Please try "
"logging into the character again to reset the token."),
_("Invalid Token"),
wx.OK | wx.ICON_ERROR
) as dlg:
dlg.ShowModal()
@@ -206,7 +207,7 @@ class ExportToEve(AuxiliaryFrame):
def __init__(self, parent):
super().__init__(
parent, id=wx.ID_ANY, title="Export fit to EVE", pos=wx.DefaultPosition,
parent, id=wx.ID_ANY, title=_("Export fit to EVE"), pos=wx.DefaultPosition,
size=wx.Size(400, 120) if "wxGTK" in wx.PlatformInfo else wx.Size(350, 100), resizeable=True)
self.mainFrame = parent
@@ -219,7 +220,7 @@ class ExportToEve(AuxiliaryFrame):
self.updateCharList()
self.charChoice.SetSelection(0)
self.exportBtn = wx.Button(self, wx.ID_ANY, "Export Fit", wx.DefaultPosition, wx.DefaultSize, 5)
self.exportBtn = wx.Button(self, wx.ID_ANY, _("Export Fit"), wx.DefaultPosition, wx.DefaultSize, 5)
hSizer.Add(self.exportBtn, 0, wx.ALL, 5)
mainSizer.Add(hSizer, 0, wx.EXPAND, 5)
@@ -267,10 +268,10 @@ class ExportToEve(AuxiliaryFrame):
self.statusbar.SetStatusText("", 0)
if fitID is None:
self.statusbar.SetStatusText("Please select an active fitting in the main window", 1)
self.statusbar.SetStatusText(_("Please select an active fitting in the main window"), 1)
return
self.statusbar.SetStatusText("Sending request and awaiting response", 1)
self.statusbar.SetStatusText(_("Sending request and awaiting response"), 1)
sEsi = Esi.getInstance()
sFit = Fit.getInstance()
@@ -279,13 +280,13 @@ class ExportToEve(AuxiliaryFrame):
except ESIExportException as e:
msg = str(e)
if not msg:
msg = "Failed to generate export data"
msg = _("Failed to generate export data")
pyfalog.warning(msg)
self.statusbar.SetStatusText(msg, 1)
return
activeChar = self.getActiveCharacter()
if activeChar is None:
msg = "Need at least one ESI character to export"
msg = _("Need at least one ESI character to export")
pyfalog.warning(msg)
self.statusbar.SetStatusText(msg, 1)
return
@@ -296,13 +297,13 @@ class ExportToEve(AuxiliaryFrame):
self.statusbar.SetStatusText("", 0)
self.statusbar.SetStatusText(res.reason, 1)
except requests.exceptions.ConnectionError:
msg = "Connection error, please check your internet connection"
msg = _("Connection error, please check your internet connection")
pyfalog.error(msg)
self.statusbar.SetStatusText("ERROR", 0)
self.statusbar.SetStatusText(_("ERROR"), 0)
self.statusbar.SetStatusText(msg, 1)
except ESIExportException as ex:
pyfalog.error(ex)
self.statusbar.SetStatusText("ERROR", 0)
self.statusbar.SetStatusText(_("ERROR"), 0)
self.statusbar.SetStatusText("{} - {}".format(res.status_code, res.reason), 1)
except APIException as ex:
try:
@@ -310,7 +311,7 @@ class ExportToEve(AuxiliaryFrame):
except (KeyboardInterrupt, SystemExit):
raise
except Exception as ex:
self.statusbar.SetStatusText("ERROR", 0)
self.statusbar.SetStatusText(_("ERROR"), 0)
self.statusbar.SetStatusText("{} - {}".format(res.status_code, res.reason), 1)
pyfalog.error(ex)
@@ -319,15 +320,15 @@ class SsoCharacterMgmt(AuxiliaryFrame):
def __init__(self, parent):
super().__init__(
parent, id=wx.ID_ANY, title="SSO Character Management", pos=wx.DefaultPosition,
parent, id=wx.ID_ANY, title=_("SSO Character Management"), pos=wx.DefaultPosition,
size=wx.Size(550, 250), resizeable=True)
self.mainFrame = parent
mainSizer = wx.BoxSizer(wx.HORIZONTAL)
self.lcCharacters = wx.ListCtrl(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_REPORT)
self.lcCharacters.InsertColumn(0, heading='Character')
self.lcCharacters.InsertColumn(1, heading='Character ID')
self.lcCharacters.InsertColumn(0, heading=_('Character'))
self.lcCharacters.InsertColumn(1, heading=_('Character ID'))
self.popCharList()
@@ -335,10 +336,10 @@ class SsoCharacterMgmt(AuxiliaryFrame):
btnSizer = wx.BoxSizer(wx.VERTICAL)
self.addBtn = wx.Button(self, wx.ID_ANY, "Add Character", wx.DefaultPosition, wx.DefaultSize, 0)
self.addBtn = wx.Button(self, wx.ID_ANY, _("Add Character"), wx.DefaultPosition, wx.DefaultSize, 0)
btnSizer.Add(self.addBtn, 0, wx.ALL | wx.EXPAND, 5)
self.deleteBtn = wx.Button(self, wx.ID_ANY, "Remove Character", wx.DefaultPosition, wx.DefaultSize, 0)
self.deleteBtn = wx.Button(self, wx.ID_ANY, _("Remove Character"), wx.DefaultPosition, wx.DefaultSize, 0)
btnSizer.Add(self.deleteBtn, 0, wx.ALL | wx.EXPAND, 5)
mainSizer.Add(btnSizer, 0, wx.EXPAND, 5)

View File

@@ -6,6 +6,7 @@ import wx
import gui.display as d
from service.fit import Fit
_ = wx.GetTranslation
def fitSorter(fit):
return fit.shipName, fit.name
@@ -13,7 +14,7 @@ def fitSorter(fit):
class FitBrowserLiteDialog(wx.Dialog):
def __init__(self, parent, title='Add Fits', excludedFitIDs=()):
def __init__(self, parent, title=_('Add Fits'), excludedFitIDs=()):
super().__init__(parent, title=title, style=wx.DEFAULT_DIALOG_STYLE)
listWidth = 250 if 'wxGTK' in wx.PlatformInfo else 200

View File

@@ -37,6 +37,8 @@ from gui.builtinItemStatsViews.itemRequirements import ItemRequirements
from gui.builtinItemStatsViews.itemTraits import ItemTraits
from service.market import Market
_ = wx.GetTranslation
class ItemStatsFrame(AuxiliaryFrame):
@@ -53,7 +55,7 @@ class ItemStatsFrame(AuxiliaryFrame):
super().__init__(
parent=gui.mainFrame.MainFrame.getInstance(),
id=wx.ID_ANY,
title="Item stats",
title=_("Item stats"),
pos=pos,
size=size,
resizeable=True)
@@ -82,8 +84,10 @@ class ItemStatsFrame(AuxiliaryFrame):
itemImg = BitmapLoader.getBitmap(item.iconID, "icons")
if itemImg is not None:
self.SetIcon(wx.Icon(itemImg))
self.SetTitle("%s: %s%s" % ("%s Stats" % itmContext if itmContext is not None else "Stats", item.name,
" (%d)" % item.ID if config.debug else ""))
self.SetTitle(_("{context}Stats: {name}{debug_info}").format(
context = "{} ".format(itmContext) if itmContext is not None else "",
name = item.name,
debug_info = " ({item_id})".format(item_id = item.ID) if config.debug else ""))
self.SetMinSize((300, 200))
# GTK has huge tab widgets, give it a bit more room
@@ -159,37 +163,37 @@ class ItemStatsContainer(wx.Panel):
if item.traits is not None:
self.traits = ItemTraits(self.nbContainer, stuff, item)
self.nbContainer.AddPage(self.traits, "Traits")
self.nbContainer.AddPage(self.traits, _("Traits"))
if isinstance(stuff, Module) and stuff.isMutated:
self.mutator = ItemMutatorPanel(self.nbContainer, stuff)
self.nbContainer.AddPage(self.mutator, "Mutations")
self.nbContainer.AddPage(self.mutator, _("Mutations"))
if item.description:
self.desc = ItemDescription(self.nbContainer, stuff, item)
self.nbContainer.AddPage(self.desc, "Description")
self.nbContainer.AddPage(self.desc, _("Description"))
self.params = ItemParams(self.nbContainer, stuff, item, context)
self.nbContainer.AddPage(self.params, "Attributes")
self.nbContainer.AddPage(self.params, _("Attributes"))
items = sMkt.getVariationsByItems([item])
if len(items) > 1:
self.compare = ItemCompare(self.nbContainer, stuff, item, items, context)
self.nbContainer.AddPage(self.compare, "Compare")
self.nbContainer.AddPage(self.compare, _("Compare"))
self.reqs = ItemRequirements(self.nbContainer, stuff, item)
self.nbContainer.AddPage(self.reqs, "Requirements")
self.nbContainer.AddPage(self.reqs, _("Requirements"))
if context == "Skill":
self.dependents = ItemDependents(self.nbContainer, stuff, item)
self.nbContainer.AddPage(self.dependents, "Dependents")
self.nbContainer.AddPage(self.dependents, _("Dependents"))
self.effects = ItemEffects(self.nbContainer, stuff, item)
self.nbContainer.AddPage(self.effects, "Effects")
self.nbContainer.AddPage(self.effects, _("Effects"))
if stuff is not None:
self.affectedby = ItemAffectedBy(self.nbContainer, stuff, item)
self.nbContainer.AddPage(self.affectedby, "Affected by")
self.nbContainer.AddPage(self.affectedby, _("Affected by"))
if config.debug:
self.properties = ItemProperties(self.nbContainer, stuff, item, context)

View File

@@ -1,21 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2016-05-19 17:07"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: utf8\n"
"Generated-By: pygettext.py 1.5\n"
#: ./gui/mainFrame.py:189
msgid "Market"
msgstr "zhCH Market"

View File

@@ -0,0 +1,172 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2020-05-15 22:13-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
#: ./gui/app.py:34 ./gui/mainFrame.py:181
msgid "Market"
msgstr ""
#: ./gui/mainFrame.py:185
msgid "Fittings"
msgstr ""
#: ./gui/mainFrame.py:272
msgid "Loading previous fits..."
msgstr ""
#: ./gui/mainFrame.py:465
msgid "Save Fitting As..."
msgstr ""
#: ./gui/mainFrame.py:466
msgid "EVE XML fitting files (*.xml)|*.xml"
msgstr ""
#: ./gui/mainFrame.py:643
msgid "Are you sure you wish to ignore fitting restrictions for the current fit? This could lead to wildly inaccurate results and possible errors."
msgstr ""
#: ./gui/mainFrame.py:645 ./gui/mainFrame.py:651
msgid "Confirm"
msgstr ""
#: ./gui/mainFrame.py:650
msgid "Re-enabling fitting restrictions for this fit will also remove any illegal items from the fit. Do you want to continue?"
msgstr ""
#: ./gui/mainFrame.py:669
msgid "Manage Characters"
msgstr ""
#: ./gui/mainFrame.py:686
msgid "&Turn Overrides Off"
msgstr ""
#: ./gui/mainFrame.py:686
msgid "&Turn Overrides On"
msgstr ""
#: ./gui/mainFrame.py:719
msgid "Please Wait..."
msgstr ""
#: ./gui/mainFrame.py:769
msgid "Drones"
msgstr ""
#: ./gui/mainFrame.py:773
msgid "Fighters"
msgstr ""
#: ./gui/mainFrame.py:777
msgid "Implants"
msgstr ""
#: ./gui/mainFrame.py:781
msgid "Boosters"
msgstr ""
#: ./gui/mainFrame.py:785
msgid "Cargo"
msgstr ""
#: ./gui/mainFrame.py:803
msgid "Export Skills Needed As..."
msgstr ""
#: ./gui/mainFrame.py:804
msgid "EVEMon skills training file (*.emp)|*.emp|EVEMon skills training XML file (*.xml)|*.xml|Text skills training file (*.txt)|*.txt"
msgstr ""
#: ./gui/mainFrame.py:823
msgid "Exporting skills needed..."
msgstr ""
#: ./gui/mainFrame.py:830
msgid "Open One Or More Fitting Files"
msgstr ""
#: ./gui/mainFrame.py:831
msgid "EVE XML fitting files (*.xml)|*.xml|EFT text fitting files (*.cfg)|*.cfg|All Files (*)|*"
msgstr ""
#: ./gui/mainFrame.py:838
msgid "Importing fits"
msgstr ""
#: ./gui/mainFrame.py:852
msgid "Save Backup As..."
msgstr ""
#: ./gui/mainFrame.py:853
msgid "EVE XML fitting file (*.xml)|*.xml"
msgstr ""
#: ./gui/mainFrame.py:866 ./gui/mainFrame.py:894
msgid "Backup fits"
msgstr ""
#: ./gui/mainFrame.py:867
msgid "Backing up %d fits to: %s"
msgstr ""
#: ./gui/mainFrame.py:886
msgid ""
"Invalid Path\n"
"\n"
"The following path is invalid or does not exist: \n"
"%s\n"
"\n"
"Please verify path location pyfa's preferences."
msgstr ""
#: ./gui/mainFrame.py:887
msgid "Error"
msgstr ""
#: ./gui/mainFrame.py:895
msgid "Generating HTML file at: %s"
msgstr ""
#: ./gui/mainFrame.py:937
msgid "Export Error"
msgstr ""
#: ./gui/mainFrame.py:937
msgid "Import Error"
msgstr ""
#: ./gui/mainFrame.py:940
msgid ""
"The following error was generated\n"
"\n"
"%s\n"
"\n"
"Be aware that already processed fits were not saved"
msgstr ""
#: ./gui/mainFrame.py:999
msgid "Open One Or More Character Files"
msgstr ""
#: ./gui/mainFrame.py:1000
msgid "EVE API XML character files (*.xml)|*.xml|All Files (*)|*"
msgstr ""
#: ./gui/mainFrame.py:1005
msgid "Importing Character..."
msgstr ""