diff --git a/CMakeLists.txt b/CMakeLists.txt index 70cedffb..4dc3ce26 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,7 @@ set (BOSS_GUI_SRC ${BOSS_SRC} "${CMAKE_SOURCE_DIR}/src/gui/settings.cpp" "${CMAKE_SOURCE_DIR}/src/gui/editor.cpp" "${CMAKE_SOURCE_DIR}/src/gui/viewer.cpp" + "${CMAKE_SOURCE_DIR}/src/gui/misc.cpp" "${CMAKE_SOURCE_DIR}/src/resource.rc") set (BOSS_API_SRC ${BOSS_SRC} @@ -100,6 +101,9 @@ IF (MINGW) wxzlib-3.0-${COMPILER_PREFIX} comctl32) ELSEIF (MSVC) + #IF (MSVC_VERSION EQUAL 1800) + # set (CMAKE_GENERATOR_TOOLSET "v120_xp" CACHE STRING "Platform Toolset" FORCE) + #ENDIF () include_directories("${PROJECT_LIBS_DIR}/wxWidgets/lib/vc_lib/mswu") link_directories("${PROJECT_LIBS_DIR}/wxWidgets/lib/vc_lib") set (CMAKE_CXX_FLAGS "/EHsc") diff --git a/README.md b/README.md index 84d6603b..a5a09d9c 100644 --- a/README.md +++ b/README.md @@ -40,119 +40,8 @@ BOSS requires the following libraries (version numbers used in latest developmen BOSS expects all libraries' folders to be present alongside the BOSS repository folder that contains this readme, or otherwise installed such that the compiler and linker used can find them without suppling additional paths. All paths below are relative to the folder(s) containing the libraries and BOSS. -Alphanum, Libespm and PugiXML do not require any additional setup. The rest of the libraries must be built separately. Instructions for building them and BOSS itself on Windows and Linux are given below. They assume that Visual C++ 2013 is being used on Windows, and mingw-w64 is being used on Linux, though they should be similar for other compilers. +Alphanum, Libespm and PugiXML do not require any additional setup. The rest of the libraries must be built separately. Instructions for building them and BOSS itself using MSVC or MinGW are given in `docs/BUILD.MSVC.md` and `docs/BUILD.MinGW.md` respectively. -### Windows - -#### Boost - -``` -bootstrap.bat -b2 toolset=msvc-12.0 threadapi=win32 link=static variant=release address-model=32 --with-log --with-date_time --with-thread --with-filesystem --with-locale --with-regex --with-system --with-iostreams --stagedir=stage-32 -``` - -#### wxWidgets - -Just build the solution provided by wxWidgets. - -#### zlib - -1. Add `/safeseh` to both lines in `contrib\masmx86\bld_ml32.bat`. -2. Build the solution in `contrib\vstudio`. -3. Copy `build\zconf.h` to `.\zconf.h`. - -#### yaml-cpp - -1. Set CMake up so that it builds the binaries in the `build` subdirectory of the yaml-cpp folder. -2. Define `BOOST_ROOT` to point to where the Boost folder is. -3. Configure CMake, then generate a build system for Visual Studio 12. -4. Open the generated solution file, and build it. - -#### Libloadorder - -Follow the instructions in libloadorder's README.md to build it as a static library. - -#### Libgit2 - -1. Set CMake up so that it builds the binaries in the `build` subdirectory of the libgit2 folder. -2. Configure CMake. -3. Undefine `BUILD_SHARED_LIBS`. -4. Generate a build system for Visual Studio 12. -5. Open the generated solution file, and build it. - -You may need to make sure that the configuration properties for the Visual Studio project are set to use the multithreaded DLL runtime library (C/C++->Code Generation). - -#### BOSS - -1. Set CMake up so that it builds the binaries in the `build` subdirectory of the BOSS folder. -2. Define `PROJECT_ARCH=32` or `PROJECT_ARCH=64` to build 32 or 64 bit executables respectively. -3. Define `PROJECT_LINK=STATIC` to build a static API, or `PROJECT_LINK=SHARED` to build a DLL API. -4. Define `PROEJCT_LIBS_DIR` to point to the folder holding all the required libraries' folders. -5. Configure CMake, then generate a build system for Visual Studio 12. -6. Open the generated solution file, and build it. - -If building on MSVC 2012 or 2013, Windows XP is not supported unless Configuration Properties->Platform Toolset is set to `v120_xp`. - -### Linux - -#### Boost - -``` -./bootstrap.sh -echo "using gcc : 4.6.3 : i686-w64-mingw32-g++ : i686-w64-mingw32-windres i686-w64-mingw32-ar i686-w64-mingw32-ranlib ;" > tools/build/v2/user-config.jam -./b2 toolset=gcc-4.6.3 target-os=windows threadapi=win32 link=static runtime-link=static variant=release address-model=32 cxxflags=-fPIC --with-log --with-date_time --with-thread --with-filesystem --with-locale --with-regex --with-system --with-iostreams --stagedir=stage-32 -``` - -#### wxWidgets - -``` -./configure --host=i686-w64-mingw32 --disable-shared --enable-stl -make -``` - -#### zlib - -``` -mkdir build && cd build -cmake .. -DCMAKE_C_FLAGS=-m32 -DPROJECT_ARCH=32 -DCMAKE_TOOLCHAIN_FILE=../BOSSv3/mingw-toolchain.cmake -make -cp zconf.h ../zconf.h -``` - -#### yaml-cpp - -``` -cmake . -DCMAKE_C_FLAGS=-m32 -DPROJECT_ARCH=32 -DCMAKE_TOOLCHAIN_FILE=../BOSSv3/mingw-toolchain.cmake -DBOOST_ROOT=../boost -make -``` - -#### Libloadorder - -Follow the instructions in libloadorder's README.md to build it as a static library. - -#### OpenSSL - -``` -./Configure --cross-compile-prefix=i686-w64-mingw32- mingw -make -``` - -#### Libgit2 - -``` -mkdir build && cd build -cmake .. -DBUILD_SHARED_LIBS=OFF -DOPENSSL_ROOT_DIR=../openssl -DCMAKE_C_FLAGS=-m32 -DPROJECT_ARCH=32 -DCMAKE_TOOLCHAIN_FILE=../BOSSv3/mingw-toolchain.cmake -make -``` -If building with SSL support using OpenSSL, also pass ``. - -#### BOSS - -``` -mkdir build && cd build -cmake .. -DPROJECT_LIBS_DIR=".." -DPROJECT_ARCH=32 -DPROJECT_LINK=STATIC -DCMAKE_TOOLCHAIN_FILE="mingw-toolchain.cmake" -make -``` ## Using The Masterlist Converter @@ -172,9 +61,9 @@ On encountering an error, it will print an error message to the console, and wil The converter does not perform a lossless conversion. The following do not get transferred into the new masterlist: -* Silent comments. (Search regex: `^IF(NOT)?.+MOD:`.) -* Plugin conditions. (Search regex: `REQ:.+(\.esp|\.esm).`) -* Requirement messages containing plugin filenames. (Search regex: `^(/\*|//)`.) +* Silent comments. (Search regex: `^(/\*|//)`) +* Plugin conditions. (Search regex: `^IF(NOT)?.+MOD:`) +* Requirement messages containing plugin filenames. (Search regex: `REQ:.+(\.esp|\.esm)`) * Dirty message content. The ITM, UDR and Navmesh counts, along with CRCs and the dirty utility referenced are transferred, but any additional content, such as links to additional instructions, are lost. (Search regex: `DIRTY:`.) In addition, while other data is retained, it needs some manual adjustment, eg. translated messages need are converted as separate messages and should be placed into message content objects. @@ -182,3 +71,16 @@ In addition, while other data is retained, it needs some manual adjustment, eg. ## Packaging Releases Installer and zip archive releases for the main BOSS application can be handled by running the scripts `installer.nsi` and `archive.py` in the `src` folder respectively. The installer script requires [NSIS 3](http://nsis.sourceforge.net/Main_Page) to be installed, while the archive script requires [Python](http://www.python.org/) to be installed. + +The installer and Python script both require the built BOSS.exe to be at `build\BOSS.exe`, and the installer also requires the MSVC 2013 Redistributable (x86) to be at `build\vcredist_x86.exe`. + +## Adding Translations To BOSS + +If a translation for a new language is provided, here's what needs changing in the code to make BOSS use that translation. + +* Add constants for the language in `api.h` and `globals.h`. +* In `helpers.cpp`, update `Language::Language(const std::string& nameOrISOCode)` and `Language::Construct(const unsigned int code). +* In `helpers.h`, update `Language::Names()`. +* In `main.cpp`, update `BossGUI::OnInit` to set the correct `wxLANGUAGE_`. +* In `archive.py`, add the language folder to the inline list on line 68. +* In `installer.nsi`, add entries for the language folder to the install and uninstall sections. If there's an installer translation, also add its string definitions beside all the other language string definitions, and insert its macro beside all the other language macros. \ No newline at end of file diff --git a/docs/BOSS Readme.html b/docs/BOSS Readme.html index 85304497..ca77a023 100644 --- a/docs/BOSS Readme.html +++ b/docs/BOSS Readme.html @@ -126,9 +126,9 @@ h3{
Version 3 is incompatible with earlier versions, which should be removed. Any existing user rules must be manually recreated in BOSS's user interface. Some plugins sorted correctly in v2 may be sorted incorrectly by v3 until their metadata has been recorded. Please notify the team if you observe any load order issues.
-

BOSS requires the -Visual C++ Redistributable for Visual Studio 2013 (x86). BOSS can be installed either using its automated installer or manually. To install BOSS manually: +

BOSS requires Windows Vista, 7 or 8. BOSS can be installed either using its automated installer or manually. To install BOSS manually:

    +
  1. Install the Visual C++ Redistributable for Visual Studio 2013 (x86).
  2. Extract the downloaded archive to a location of your choice.

If BOSS was installed using the installer, then use the uninstaller linked to in the Start Menu to uninstall BOSS. If BOSS was installed manually: @@ -146,25 +146,28 @@ Visual C++ Redistributable for Visual Studio 2013 (x86). BOSS can be install

Clicking the Edit Metadata button will open BOSS's metadata editor, where you can make changes to the metadata BOSS uses to sort plugins, the messages that get displayed for plugins, and any Bash Tag suggestions BOSS makes.

Clicking the Sort Plugins button will begin the plugin sorting process. This will sort your plugins, allow you to make any changes to the load order it produces, then display a report that details the results of BOSS's activity. -

Clicking the View Last Report button will display the report generated the last time BOSS sorted your plugins. +

Clicking the View Last Report button will display the report generated the last time BOSS sorted your plugins for the current game.

The File menu provides menu items for sorting plugins, viewing the debug log and the last report BOSS generated, and quitting BOSS. The menu's Redate Plugins option is provided so that Skyrim modders may set the load order for the Creation Kit. It is only enabled for Skyrim, and changes the timestamps of the plugins in its Data folder to match their current load order. A side effect of changing the timestamps is that any Steam Workshop mods installed will be re-downloaded.

The Edit menu provides menu items for accessing BOSS's metadata editor and the settings window. -

The Game menu allows you to change which game BOSS is running for. Games that BOSS cannot find are greyed out, and the the one BOSS is running for is marked with a dot to its left. To change the active game, simply select another game in the list. +

The Game menu allows you to change which game BOSS is running for. Games that BOSS cannot find are greyed out, and the the one BOSS is running for is marked with a bullet point. To change the active game, simply select another game in the list.

The Help menu provides a link to this readme and an about page that contains the version of BOSS being run, some legal information and a link to the project homepage.

Sorting Plugins

-
- -
Editing BOSS's calculated load order.
+
+ BOSS confirmation dialog + BOSS confirmation dialog with editing panel visible +
Viewing & editing BOSS's calculated load order.

Clicking the Sort Plugins button in the main window will begin the sorting process.

Provided that masterlist updating is enabled and that a masterlist repository URL is set, BOSS checks for updates to its masterlist and downloads any that are available. If there are any syntax errors in the latest masterlist (due to human error by its maintainers), the updater rolls back one version at a time until it finds a version that works. If any other errors are encountered, updating is cancelled.

During the sorting process, BOSS extracts information from each of the plugins installed in the game's Data folder and combines this information with any relevant metadata provided by the masterlist and userlist. It then uses the combined data to build a directed graph of all the interactions between all the installed plugins. A topological sort is then carried out on the graph to produce a list of plugins in their optimal load order, according to BOSS's criteria. If a cycle is detected (eg. A depends on B depends on A), then sorting is cancelled as it becomes impossible to generate a load order that satisfies all conditions. -

If successful, the calculated load order is then displayed in the dialog shown above, which allows the user to edit the load order before it is applied. Multiple plugins may be selected and moved at once. Plugins which are empty (ie. only contain a header record) are displayed in grey text, and plugins that are not empty and load BSAs are displayed in blue text. If OK button is clicked, it is then applied, and any edits made are recorded in the userlist for re-application when BOSS next sorts the game's plugins. If the Cancel button is clicked, then the load order and any edits made are discarded. +

If successful, the calculated load order is then displayed in the dialog shown above. Plugins which are empty (ie. only contain a header record) are displayed in grey text, and plugins that are not empty and load BSAs are displayed in blue text. +Clicking on a plugin in the list will display the editing panel, where its load order related metadata can be edited. The Show only conflicting plugins checkbox filters the plugin list so that only plugins which can be validly added to the Load After list and either contain conflicting records or (if the selected plugin loads a BSA) load BSAs that may contain conflicting resources. The checkbox must be ticked before plugins can be added to the Load After list, which is done by drag 'n' dropping them from the plugin list, and it must be unticked to select another plugin for editing. The priority value is explained below. +

If the Apply button is clicked, BOSS does one of two things: if no edits were made, then it immediately applies the load order, but if edits were made, then it repeats the sorting process with the new edits applied. If the Cancel button is clicked, then the load order and any edits made are discarded.

BOSS then generates a report and displays it either in a new window or in your default browser, according to the value of the relevant setting. Any errors encountered during the sorting process will be displayed in this report, including those due to graph cycles, missing dependencies or installed incompatible plugins. See the next section for more information on the report. -

BOSS is able to sort plugins ghosted by Wrye *ash, and can extract Bash Tags and version numbers from plugin descriptions. Provided that they have the Filter Bash Tag present in their description, BOSS can recognise filter patches and so avoid displaying unnecessary error messages for any of their masters that may be missing. +

BOSS is able to sort plugins ghosted by Wrye Bash, and can extract Bash Tags and version numbers from plugin descriptions. Provided that they have the Filter Bash Tag present in their description, BOSS can recognise filter patches and so avoid displaying unnecessary error messages for any of their masters that may be missing.

While reading very large plugins, such as the game's main master file, BOSS may appear to stop responding: this is not an issue. The time it takes for BOSS to sort your load order depends primarily on the size of the masterlist being used, the total size of the files in your load order, and the number of plugins in your load order. The first run is likely to be longer than subsequent runs as BOSS needs to download the full masterlist, rather than just the changes made by updates. In testing, it was found that sorting ~90 plugins with a total size of ~350 MB and a 5 MB masterlist takes around 15 seconds, though performance will vary with computer hardware. @@ -176,7 +179,7 @@ Visual C++ Redistributable for Visual Studio 2013 (x86). BOSS can be install

BOSS's results report can be displayed either in BOSS's own report viewer, or in your default web browser, according to the value of the relevant setting. -

The report is comprised of three main sections: +

The report is comprised of two sections:

  • The Summary tab gives information on the versions of BOSS and the masterlist used, whether masterlist updating is enabled, and breaks down the numbers of each message type in the Summary and Details tabs. It also notifies you if there have been no changes in the Details tab since you last ran BOSS for the same game. Finally, the Summary tab is also where any global messages supplied in the masterlist and any errors encountered during sorting are displayed.
  • The Details tab lists the plugins BOSS sorted in their new load order, along with any messages BOSS has provided for them. BOSS will also display the plugin's CRC value and extract its version if found in the plugin's description field. If BOSS suggests any Bash Tags to be added, they will be displayed in green text, while any Bash Tags to be removed will be displayed in red text. @@ -210,7 +213,7 @@ Visual C++ Redistributable for Visual Studio 2013 (x86). BOSS can be install FieldDescription Enable User ChangesIf this is checked, BOSS will use the metadata you supplied when sorting the current plugin. Otherwise, your metadata will be ignored. - PriorityThis is a very rough control for determining how far up or down the load order a plugin should go. Plugins with equal priority will be compared as normal by the sorting algorithm, but plugins with a larger priority value will load later in the load order than plugins with a smaller priority value, unless the former depends on the latter or the latter is explicity told to load after the former. Plugins have a default priority of 0. + PriorityThis is a very rough control for determining how far up or down the load order a plugin should go. Plugins with equal priority will be compared as normal by the sorting algorithm, but plugins with a larger priority value will load later in the load order than plugins with a smaller priority value, unless the former depends on the latter or the latter is explicity told to load after the former. Plugins have a default priority of 0. RequirementsThis is a list of files that are required by the current plugin for it to function correctly. BOSS will display an error message if any of the listed files are missing.

    Any file, not just plugins, can be listed here, and each file has three sub-fields:

      @@ -231,7 +234,7 @@ Visual C++ Redistributable for Visual Studio 2013 (x86). BOSS can be install
    • The language is the language BOSS runs in that the message will be displayed for. For example, if the message language is set to English and BOSS is running in German, then the message will not be displayed. If left unspecified, the message will be shown no matter what language BOSS is running in.

    If a message's condition determines that it should not be displayed, then it will not be displayed, no matter the language. However, if a message's condition determines that it should be displayed, but the language is specified and doesn't match the language BOSS is running in, the message will not be displayed. - Bash TagsA list of Bash Tags. These are used by the Wrye *ash utilities when generating a Bashed Patch. BOSS's metadata includes Bash Tag addition and removal suggestions, and any Bash Tags that came with the plugin are also displayed. + Bash TagsA list of Bash Tags. These are used by Wrye Bash when generating a Bashed Patch. BOSS's metadata includes Bash Tag addition and removal suggestions, and any Bash Tags that came with the plugin are also displayed.

    As BOSS can suggest Bash Tags be added or removed, it is possible for the same Tag to appear twice, being suggested for addition and removal. In such cases, removal overrides addition.

    Each Bash Tag has three sub-fields:

      @@ -312,13 +315,7 @@ Visual C++ Redistributable for Visual Studio 2013 (x86). BOSS can be install

      General discussion and the submission of questions, suggestions and metadata takes place in BOSS's official threads for Oblivion, Skyrim, Fallout 3 and Fallout: New Vegas. -

      Information on dirty plugins is very welcome, but for such information to be useful we require: -

        -
      • The plugin filename. -
      • The number of records removed (the ITM count) as shown by TES4Edit/TES5Edit/FO3Edit/FNVEdit or Wrye *ash (not the number of records processed). -
      • The number of records undeleted (the UDR count) as shown by TES4Edit/TES5Edit/FO3Edit/FNVEdit or Wrye *ash (not the number of records processed). -
      • The CRC of the dirty plugin. Make sure that the CRC is of the dirty file, not the file after cleaning. The CRC may be calculated using Wrye *ash or 7-zip, with other sources being unverified as correct. In the case of 7-zip, the CRC checksum for data is the one required. -
      +

      Information on dirty plugins is very welcome, but for such information to be useful we require at least the filename and the CRC of the dirty plugin. The CRC may be calculated using Wrye Bash or 7-zip, with other sources being unverified as correct. In the case of 7-zip, the CRC checksum for data is the one required. In addition to the CRC, the number of records removed (the ITM count) and/or undeleted (the UDR count) are also welcome.

      Translating BOSS

      @@ -346,6 +343,7 @@ To translate the BOSS application:
    • Spanish
    • Simplified Chinese
    • French +
    • Polish
  • Open Poedit and select File->Preferences, then in the Editor tab ensure that the checkbox for the Automatically compile .mo file on save setting is checked. Click OK to close the preferences window.
  • If you are starting a new translation, select File->New catalogue from POT file... and choose the template file you downloaded. In the Catalog properties dialog, just click OK without changing anything. @@ -369,12 +367,14 @@ To translate the BOSS application:

    In addition to the above data-related support, the following are credited with application-related support:

    • Dark Creations: For hosting BOSS's Bugzilla bug tracker that was used by v2 to collect anonymous unrecognised plugin reports. Particular thanks to its administrators Andalaybay and Xae for offering to host the tracker and helping to work around Firefox and Bugzilla bugs encountered. -
    • Surazal: For extensive testing of v1.6–2.1 prior to release and for providing the inspiration for many features through his BOSS Masterlist Manager macro for Microsoft Word. -
    • myk002: For extensive testing and code contributions during development of v1.6–2.1. -
    • Hickory: For extensive testing and for providing the icon used by the executables. -
    • Scharesoft: For the installer/uninstaller German translation. -
    • Ysne58: For testing and keeping the thread links on BOSS's Nexus site pages up to date. -
    • For testing and feedback prior to releases: The Beta Testing & Analysis Guild at TES Alliance, AndalayBay, dAb, dj2005, Dubiousness, hyno111, Invader, matter2003, NightStar, olminator, saebel, Telyn, wiz0floyd, wormheart, Zanderat and zone22. +
    • Surazal: For providing the inspiration for many features through his BOSS Masterlist Manager macro for Microsoft Word. +
    • myk002: For code contributions during development of v1.6–2.1. +
    • Hickory: For providing the icon BOSS uses. +
    • Ysne58: For keeping the thread links on BOSS's Nexus site pages up to date. +
    • Łukasz Niemczyk: For the Polish translation of v3. +
    • bluesky404: For the Chinese translation of v3. +
    • Kaos: For the French translation of v3. +
    • For beta testing: Surazal, myk002, Hickory, Ysne58, the Beta Testing & Analysis Guild at TES Alliance, AndalayBay, dAb, dj2005, Dubiousness, hyno111, Invader, matter2003, NightStar, olminator, saebel, Telyn, wiz0floyd, wormheart, Zanderat, zone22 and many more.

    BOSS is written in C++ and makes use of the Alphanum, Boost, libespm, libgit2, libloadorder, PugiXML, wxWidgets and yaml-cpp libraries. BOSS's reports are written in HTML5/CSS3/Javascript and make use of Polyfill.js to provide Internet Explorer 8 compatibility. Copyright license information for all these may be found here. @@ -454,43 +454,35 @@ A copy of the license is included in the file named "GNU FDL v1.3.txt".Appendices

    Introduction To Load Orders

    This appendix provides a general overview of load ordering in the games BOSS supports for those who are unfamiliar with the concept. For simplicity, the game will be used when the text refers to any of the games that BOSS supports. -

    Mod plugins for the game are files that end in .esp or .esm. These files are created by the game's official editing tools, or by third party modders' tools. They contain various data entries, which can either be brand new additions or changes to the entries added by another plugin, including the game's main master file (Oblivion.esm, Skyrim.esm, Fallout3.esm or FalloutNV.esm depending on the game). These entries cover almost all aspects of what is in the game, eg. NPCs, items, races, interiors, worlds, quests, etc. -

    When the game is run, it loads each of the plugins you have installed one by one. The order in which it loads them is, unsurprisingly, what is referred to as the load order. The load order is important for two reasons: +

    Mod plugins for the game are files that end in .esp or .esm. These files are created by the game's official editing tools, or by third-party modders' tools. They contain various data records, which cover almost all aspects of what is in the game – NPCs, items, races, interiors, worlds, quests, etc. – and can either be new or changes to the records added by another plugin. +

    When the game is run, it loads each installed plugin one by one in a certain load order. The load order is important for two reasons:

      -
    • Dependency resolution. -
    • Conflict resolution. +
    • If one plugin changes a record added by another plugin, the former must load after the latter. If it doesn't, the game will crash on launch. +
    • The game can only apply one version of a record, so if multiple plugins contain the same record, the last-loaded plugin's version overrides all others. This is known as the rule of one, and it holds true for almost all record types. Some overrides can cause problems in-game, and a good load order is one that arranges plugins to avoid such problems.
    -

    A plugin which changes the entries added by other plugins is dependent on those other plugins, and the game requires all of the latter plugins to be loaded before the former. If they aren't, the game will crash on launch. -

    The game can only apply one version of any one entry (this is known as the rule of one). Therefore, when more than one plugin changes the same entry, the load order is used to decide which plugin's changes are applied. Put simply, the last loaded plugin's changes are applied. The one exception to the rule of one is that the contents of cells (the physical space in which your character moves) can be changed by any number of plugins, so different plugins can add objects to cells, move them around or remove them and all will see their changes applied by the game. -

    By changing the load order, you can change which plugins override and which are overridden, and so reduce detrimental conflicts. You cannot actually reduce how much is overridden through load order alone, but it is often the case that some overrides are acceptable while others cause problems in game. Setting a good load order is the process by which you seek to maximise the former instead of the latter. -

    Further compatibility between mods is then possible through the use of patches, which are made to address incompatibilities between specific mods, and through the use of Wrye Bash, which can create a Bashed Patch that allows you to select between types of changes for different mods. For example, two mods change a piece of armour, but one changes how it looks and the other changes its effectiveness: through load order alone you could only ever get one change, but using Wrye Bash you can get both, because they change different things in the same armour entry. -

    There are a few hardcoded rules that trump load order in many cases: +

    There are a few hardcoded rules related to load order:

      -
    • Master plugins always load before non-master plugins. +
    • Master plugins always load before non-master plugins. The difference between the two plugin types isn't really relevant, except that a plugin's type is decided by a setting inside it, and not by its file extension (even though .esm stands for Elder Scrolls Master).
    • There is a limit of 255 active plugins that can be loaded by the game. This isn't strictly a load order thing, but is worth mentioning.
    • In Skyrim, Skyrim.esm always loads before all other plugins. -
    • In Skyrim, if Update.esm is present, it is always loaded. If it has no load order position set, it loads after all other master plugins. That might sound a bit odd, but thanks to Skyrim's load order mechanism, it is possible for it to have no set load order position, even though it is always loaded. +
    • In Skyrim, if Update.esm is present, it is always loaded. It loads after all other master plugins, unless it has another position explicitly set.
    -

    A plugin's position in the load order is often displayed by mod managers as a hexadecimal number, from 00 to FE (0 to 255 in decimal). The plugin with position 00 loads first, and the plugin with position FE is loaded last. Hexadecimal numbers are used to display the load order positions of plugins because these numbers form the first two digits of the code that the game uses to reference the entries that the plugin adds, so knowing the numbers allows modders and mod users to determine from which plugin an entry is from. -

    That's all that you as a mod user need to know about load orders. If you want to find out more about the actual mechanism by which the game decides the load order, read on. -

    Oblivion, Fallout 3 and Fallout: New Vegas all share the same mechanism for deciding load order. Skyrim, since the 1.4.26 patch, uses a different mechanism. -

    Load order for Oblivion, Fallout 3 and Fallout: New Vegas is decided by the modification date timestamps of the mod plugins. The active plugin with the earliest date loads first, with plugins being listed in descending date order (earliest to latest). It's a bad idea for a plugin that isn't the game's main master file to load first. -

    Skyrim's mechanism uses the order that plugins are listed within its plugins.txt file as its load order (from top to bottom). This file is the one in which the list of active plugins is stored, so only active plugins can be strictly said to have a load order. +

    A plugin's position in the load order is often displayed by mod managers as a hexadecimal number, from 00 to FE (0 to 255 in decimal). The plugin with position 00 loads first, and the plugin with position FE is loaded last. Hexadecimal numbers are used to display the load order positions of plugins because these numbers form the first two digits of the code that the game uses to reference the records that the plugin adds, so knowing the numbers allows modders and mod users to determine from which plugin a record is from.

    Dirty Edits, Mod Cleaning & CRCs

    Dirty edits are often a side-effect of mod creation, and are often due to bugs in the utilities Bethesda has provided to create mods, rather than bad practice by mod authors. Dirty edits can cause a wide range of issues, including incorrect game settings, missing content, broken quests and crashing to desktop. The more dirty edits there are in a mod, and the more mods with dirty edits you use, the more likely you are to experience issues. -

    Thankfully there is a way to remove dirty edits from mods relatively easily, a process known as mod cleaning, using TES4Edit (for Oblivion), FO3Edit (for Fallout 3), FNVEdit (for Fallout: New Vegas) or TES5Edit (for Skyrim). A detailed set of instructions and information on mod cleaning can be found on the CS Wiki's TES4Edit Cleaning Guide (the page also largely applies to Fallout 3, Fallout: New Vegas and Skyrim). Wrye *ash can also scan plugins for dirty edits and return their ITM and UDR counts, though at the time of writing it cannot clean plugins itself. +

    Thankfully there is a way to remove dirty edits from mods relatively easily, a process known as mod cleaning, using TES4Edit, FO3Edit, FNVEdit or TES5Edit (for Oblivion, Fallout 3, Fallout: New Vegas and Skyrim respectively). Detailed instructions and information on mod cleaning are available for Oblivion and Skyrim, with the process being largely the same for the others.

    The problem of dirty edits is largely a problem of ignorance on the part of mod authors and users alike of the problems dirty mods can cause. As such, there are community efforts to raise awareness of dirty edits and cleaning. BOSS plays a key role in these efforts, as it holds the complete list of all known dirty mods, and it uses this information to provide notification messages to users for any dirty mods they have installed. -There are three key pieces of information that are used to accurately describe and identify an unclean mod. They are: +

    BOSS identifies and describes unclean plugins using four key pieces of information. They are:

      -
    • ITM Count: ITM records are a type of dirty edit where a mod has overwritten something in the game without actually changing anything. If another mod lower in the load order makes an intentional change to that thing, it will have its effect cancelled out by the ITM record, which can cause problems. The ITM count is the number of ITM records found and corrected in the mod plugin. +
    • CRC value: CRC values are a highly accurate way of identifying files based on their contents, as if the contents change, so does the CRC value. BOSS identifies an unclean plugin by comparing the installed plugin's CRC value against the CRC values for known unclean versions of that plugin. This identification method has the limitation that it can't detect unclean plugins that aren't already known as such, and won't detect unclean but edited plugins, but it's a lot faster than actually checking for dirty edits in the plugin. +
    • ITM Count: ITM records are a type of dirty edit where a mod has overwritten something in the game without actually changing anything. If another mod higher up in the load order makes an intentional change to that thing, it will have its effect cancelled out by the ITM record, which can cause problems. The ITM count is the number of ITM records found and corrected in the mod plugin.
    • UDR Count: Deleting records is a significant cause of crashes and game bugs. UDRs are records that the mod deleted from the game or from another mod that have been corrected safely by undeleting them and disabling them instead, which has the same intended effect without causing issues. The UDR count is the number of deleted reference records found and corrected in the mod plugin. -
    • CRC or Checksum: A file's CRC is a highly accurate way of identifying it, and is a number calculated from the file's contents. If the contents of a file changes, so will its CRC. BOSS uses CRCs to check if a user's mods are dirty by checking their CRCs against pre-determined CRCs of known dirty mods. This lets BOSS give precise notification messages for any dirty mods it detects. BOSS can calculate the CRCs of all your installed plugins if run from the GUI with the Display File CRCs option enabled. +
    • Deleted Navmesh Count: Like deleting records, deleting navmeshes can cause crashes. However, these cannot be automatically corrected, and require manual cleaning. Navmeshes don't exist in Oblivion, so this information doesn't apply.
    -

    However, not all unclean mods have all or any of these pieces of information. For unclean mods whose ITM and UDR counts have not been reported, BOSS cannot give them. For unclean mods whose CRCs have not been reported, BOSS cannot give precise notification and so prints a message whether or not the user has cleaned their mod. -

    BOSS and the modding communities rely on user contribution of this information to progress. For information on how to contribute, see the Contributing To BOSS section below. If you find that a mod is dirty, you should also report this to the mod's author so that they can fix it. -

    Note: TES4Edit et al. will include a variety of junk records in the ITM count for a plugin, such as new empty cells that are automatically generated by the Construction Set and are almost impossible to remove. These junk records are non-harmful, and BOSS will inform users when a mod contains these to avoid confusion. This is also the source of any discrepancies between the counts produced by TES4Edit and those produced by Wrye *ash. The latter's counts are more technically accurate, but both are acceptable for use. -

    There is also another type of unnecessary edit, known as a wild edit, that can also cause problems. These edits are neither Identical To Master edits nor deleted records, so cannot be automatically cleaned. Cleaning must be manually done in TES4Edit/FO3Edit/FNVEdit. BOSS can still check for plugins with these edits if the CRCs of the plugins with wild edits are known, and it can provide notification of these edits and some information on fixing them if they are reported in an official BOSS thread. +

    In addition to the above, there is another type of dirty edit known as a wild edit. These are any edit that is unrelated to the purpose of the mod, and so provide unnecessary opportunity for conflicts with other mods that do need to change the same thing. It can be difficult to tell if an edit is a wild edit, and so they cannot be automatically cleaned. BOSS can still notify users of wild edits and link to information on fixing them if the CRCs of plugins with wild edits are reported, along with details on what needs cleaning. +

    BOSS and the modding communities rely on user contribution of this information to progress. For information on how to contribute, see Contributing To BOSS. If you find that a mod contains dirty edits, you should also report this to the mod's author so that they can fix it. +

    Note: TES4Edit et al. will include a variety of junk records in the ITM count for a plugin, such as new empty cells that are automatically generated and are almost impossible to remove. These junk records are non-harmful, and BOSS may inform users when a mod contains these and no true ITMs to avoid confusion.

    File Permissions

    If you are running Windows Vista or a later version of Windows, BOSS (and other modding programs) may be prevented from working correctly by the UAC security feature. There are four common workarounds to this problem: @@ -559,6 +551,7 @@ There are three key pieces of information that are used to accurately describe a BOSS Log plugin submissionBOSS allows users to submit unrecognised plugins from the HTML BOSS Log.As there is no longer any such thing as an unrecognised plugin, the submission system has been removed. BOSS Log display customisationBOSS allows users to customise the colour scheme used by the BOSS Log.BOSS does not allow customisation of the colour scheme used by the BOSS report. However, the styling is now provided by a static stylesheet instead of being dynamically generated within the report every time BOSS is run, so this static stylesheet can be edited to achieve the same effect. Command line interfaceBOSS provides a command line interface.BOSS does not provide a command line interface, as the greater need for user interaction makes it unwieldy. + Windows XP supportSupports Windows XP.Does not support Windows XP.

    Version History

    diff --git a/docs/BUILD.MSVC.md b/docs/BUILD.MSVC.md new file mode 100644 index 00000000..1e30bf9d --- /dev/null +++ b/docs/BUILD.MSVC.md @@ -0,0 +1,50 @@ +# Build Instructions using Microsoft Visual C++ + +These instructions were used to build BOSS using Microsoft Visual Studio Express 2013 for Desktop, though they should also apply to other versions of MSVC. BOSS's CMake configuration builds an executable that can be run on Windows XP, but this support has only been implemented for MSVC 2013 - other versions may require editing of BOSS's `CMakeLists.txt` file. + +#### Boost + +``` +bootstrap.bat +b2 toolset=msvc-12.0 threadapi=win32 link=static variant=release address-model=32 --with-log --with-date_time --with-thread --with-filesystem --with-locale --with-regex --with-system --with-iostreams --stagedir=stage-32 +``` + +#### wxWidgets + +Just build the solution provided by wxWidgets. + +#### zlib + +1. Add `/safeseh` to both lines in `contrib\masmx86\bld_ml32.bat`. +2. Build the solution in `contrib\vstudio`. +3. Copy `build\zconf.h` to `.\zconf.h`. + +#### yaml-cpp + +1. Set CMake up so that it builds the binaries in the `build` subdirectory of the yaml-cpp folder. +2. Define `BOOST_ROOT` to point to where the Boost folder is. +3. Configure CMake, then generate a build system for Visual Studio 12. +4. Open the generated solution file, and build it. + +#### Libloadorder + +Follow the instructions in libloadorder's README.md to build it as a static library. + +#### Libgit2 + +1. Set CMake up so that it builds the binaries in the `build` subdirectory of the libgit2 folder. +2. Configure CMake. +3. Undefine `BUILD_SHARED_LIBS`. +4. Generate a build system for Visual Studio 12. +5. Open the generated solution file, and build it. + +You may need to make sure that the configuration properties for the Visual Studio project are set to use the multithreaded DLL runtime library (C/C++->Code Generation). + +#### BOSS + +1. Set CMake up so that it builds the binaries in the `build` subdirectory of the BOSS folder. +2. Define `PROJECT_ARCH=32` or `PROJECT_ARCH=64` to build 32 or 64 bit executables respectively. +3. Define `PROJECT_LINK=STATIC` to build a static API, or `PROJECT_LINK=SHARED` to build a DLL API. +4. Define `PROEJCT_LIBS_DIR` to point to the folder holding all the required libraries' folders. +5. Configure CMake, then generate a build system for Visual Studio 12. +6. Open the generated solution file, and build it. \ No newline at end of file diff --git a/docs/BUILD.MinGW.md b/docs/BUILD.MinGW.md new file mode 100644 index 00000000..cab68e24 --- /dev/null +++ b/docs/BUILD.MinGW.md @@ -0,0 +1,62 @@ +# Build Instructions using MinGW + +These instructions were used to build BOSS using mingw-w64 on Ubuntu and Debian linux, though they should also apply to other similar environments. + +#### Boost + +``` +./bootstrap.sh +echo "using gcc : 4.6.3 : i686-w64-mingw32-g++ : i686-w64-mingw32-windres i686-w64-mingw32-ar i686-w64-mingw32-ranlib ;" > tools/build/v2/user-config.jam +./b2 toolset=gcc-4.6.3 target-os=windows threadapi=win32 link=static runtime-link=static variant=release address-model=32 cxxflags=-fPIC --with-log --with-date_time --with-thread --with-filesystem --with-locale --with-regex --with-system --with-iostreams --stagedir=stage-32 +``` + +#### wxWidgets + +``` +./configure --host=i686-w64-mingw32 --disable-shared --enable-stl +make +``` + +#### zlib + +``` +mkdir build && cd build +cmake .. -DCMAKE_C_FLAGS=-m32 -DPROJECT_ARCH=32 -DCMAKE_TOOLCHAIN_FILE=../BOSSv3/mingw-toolchain.cmake +make +cp zconf.h ../zconf.h +``` + +#### yaml-cpp + +``` +cmake . -DCMAKE_C_FLAGS=-m32 -DPROJECT_ARCH=32 -DCMAKE_TOOLCHAIN_FILE=../BOSSv3/mingw-toolchain.cmake -DBOOST_ROOT=../boost +make +``` + +#### Libloadorder + +Follow the instructions in libloadorder's README.md to build it as a static library. + +#### OpenSSL + +``` +./Configure --cross-compile-prefix=i686-w64-mingw32- mingw +make +``` + +#### Libgit2 + +``` +mkdir build && cd build +cmake .. -DBUILD_SHARED_LIBS=OFF -DOPENSSL_ROOT_DIR=../openssl -DCMAKE_C_FLAGS=-m32 -DPROJECT_ARCH=32 -DCMAKE_TOOLCHAIN_FILE=../BOSSv3/mingw-toolchain.cmake +make +``` +If building with SSL support using OpenSSL, also pass ``. + +#### BOSS + +``` +mkdir build && cd build +cmake .. -DPROJECT_LIBS_DIR=".." -DPROJECT_ARCH=32 -DPROJECT_LINK=STATIC -DCMAKE_TOOLCHAIN_FILE="mingw-toolchain.cmake" +make +``` diff --git a/docs/images/confirm-1.png b/docs/images/confirm-1.png new file mode 100644 index 00000000..9ecb0385 Binary files /dev/null and b/docs/images/confirm-1.png differ diff --git a/docs/images/confirm-2.png b/docs/images/confirm-2.png new file mode 100644 index 00000000..88ecde28 Binary files /dev/null and b/docs/images/confirm-2.png differ diff --git a/docs/images/confirm.png b/docs/images/confirm.png deleted file mode 100644 index 83b16e4a..00000000 Binary files a/docs/images/confirm.png and /dev/null differ diff --git a/resources/l10n/fr/LC_MESSAGES/boss.po b/resources/l10n/fr/LC_MESSAGES/boss.po index aae888c4..daddcbb3 100644 --- a/resources/l10n/fr/LC_MESSAGES/boss.po +++ b/resources/l10n/fr/LC_MESSAGES/boss.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: BOSS v3.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-26 11:41-0000\n" -"PO-Revision-Date: 2014-02-02 19:20+0100\n" +"PO-Revision-Date: 2014-02-10 14:48+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: French\n" @@ -15,33 +15,33 @@ msgstr "" #: backend/game.cpp:96 msgid "Invalid game ID supplied." -msgstr "ID du jeu fourni incorrect" +msgstr "ID du jeu fournie incorrecte." #: backend/game.cpp:147 msgid "Game path could not be detected." -msgstr "Le chemin du jeu n'a pas pu être trouvée. " +msgstr "Le chemin du jeu n'a pas pu être trouvé. " #: backend/game.cpp:248 backend/game.cpp:308 backend/game.cpp:363 msgid "libloadorder failed to create a game handle. Details:" -msgstr "libloadorder n'est pas parveni à créer une poignée du jeu. Détails : " +msgstr "libloadorder n'est pas parvenu à créer une poignée du jeu. Détails :" #: backend/game.cpp:260 backend/game.cpp:320 backend/game.cpp:374 msgid "libloadorder failed to initialise game master file support. Details:" msgstr "" "libloadorder a échoué dans l'initialisation du support de fichier maître du " -"jeu. Détails ; " +"jeu. Détails :" #: backend/game.cpp:270 msgid "libloadorder failed to get the active plugins list. Details:" -msgstr "libloadorer n'a pas pu obtenir la liste des plugins actifs. Détails : " +msgstr "libloadorer n'a pas pu obtenir la liste des plugins actifs. Détails :" #: backend/game.cpp:330 backend/game.cpp:396 msgid "libloadorder failed to set the load order. Details:" -msgstr "libloadorder n'a pu définir l'ordre de chargement. Détails : " +msgstr "libloadorder n'a pas pu définir l'ordre de chargement. Détails :" #: backend/game.cpp:415 msgid "Could not create BOSS folder for game. Details:" -msgstr "Impossible de créer le dossier de BOSS pour ce jeu. Détails : " +msgstr "Impossible de créer le dossier de BOSS pour ce jeu. Détails :" #: backend/graph.cpp:46 msgid "Cyclic interaction detected between plugins \"%1%\" and \"%2%\"." @@ -81,7 +81,7 @@ msgstr "L'opération d'obtention a échoué. Erreur : %1%" #: backend/network.cpp:338 msgid "Masterlist revision" -msgstr "Révision de la Masterlist" +msgstr "Révision de la masterlist" #: gui/editor.cpp:37 msgid "Note" @@ -130,7 +130,7 @@ msgstr "Ajouter un fichier" #: gui/editor.cpp:128 gui/editor.cpp:376 msgid "Edit File" -msgstr "Éditer un fichier =" +msgstr "Éditer un fichier" #: gui/editor.cpp:129 gui/editor.cpp:377 msgid "Remove File" @@ -138,7 +138,7 @@ msgstr "Retirer un fichier" #: gui/editor.cpp:130 msgid "Save Changes" -msgstr "Sauvegarder les changements" +msgstr "Sauvegarder les modifications" #: gui/editor.cpp:131 msgid "Cancel" @@ -170,7 +170,7 @@ msgstr "Étiquettes du bash" #: gui/editor.cpp:148 msgid "Dirty Info" -msgstr "Infos sur les saletés. " +msgstr "Infos sur les entrées sales" #: gui/editor.cpp:151 msgid "Plugins" @@ -214,7 +214,7 @@ msgstr "Utilitaire de nettoyage" #: gui/editor.cpp:217 msgid "Priority: " -msgstr "Priorité : " +msgstr "Priorité :" #: gui/editor.cpp:379 msgid "Add Plugin" @@ -226,7 +226,7 @@ msgstr "Éditer un plugin" #: gui/editor.cpp:381 msgid "Remove Plugin" -msgstr "Retirer plugin" +msgstr "Retirer un plugin" #: gui/editor.cpp:383 msgid "Add Message" @@ -242,7 +242,7 @@ msgstr "Retirer un message" #: gui/editor.cpp:387 msgid "Add Bash Tag" -msgstr "AJouter une étiquette" +msgstr "Ajouter une étiquette" #: gui/editor.cpp:388 msgid "Edit Bash Tag" @@ -254,7 +254,7 @@ msgstr "Retirer l'étiquette" #: gui/editor.cpp:391 msgid "Add Dirty Info" -msgstr "Ajouter une information à propos d'une entrée sale" +msgstr "Ajouter une information sur les entrée sales" #: gui/editor.cpp:392 msgid "Edit Dirty Info" @@ -262,11 +262,11 @@ msgstr "Éditer les informations sur les entrées sales" #: gui/editor.cpp:393 msgid "Remove Dirty Info" -msgstr "Rerirer l'information concernant la saleté. " +msgstr "Retirer l'information sur les entrées sales " #: gui/editor.cpp:411 msgid "BOSS: Add File/Plugin" -msgstr "BOSS : Ajouter un fichier / Plugin-in" +msgstr "BOSS : Ajouter un fichier / plugin" #: gui/editor.cpp:433 msgid "BOSS: Add Message" @@ -293,11 +293,11 @@ msgstr "BOSS : Ajouter une étiquette" #: gui/editor.cpp:468 msgid "BOSS: Add Dirty Info" -msgstr "BOSS : Ajouter des informations sur la saleté" +msgstr "BOSS : Ajouter des informations sur les entrées sales" #: gui/editor.cpp:487 msgid "BOSS: Edit File/Plugin" -msgstr "BOSS : Éditer le fichir / Plugin-in" +msgstr "BOSS : Éditer le fichier / plugin" #: gui/editor.cpp:511 msgid "BOSS: Edit Message" @@ -313,15 +313,15 @@ msgstr "BOSS : Édition des étiquettes" #: gui/editor.cpp:557 msgid "BOSS: Edit Dirty Info" -msgstr "BOSS : Édition des informations sur la saleté. " +msgstr "BOSS : Édition des informations sur la saleté" #: gui/editor.cpp:932 msgid "Filename (required):" -msgstr "Nom du fichier (requis) : " +msgstr "Nom du fichier (requis) :" #: gui/editor.cpp:935 msgid "Displayed Name:" -msgstr "Nom affiché : " +msgstr "Nom affiché :" #: gui/editor.cpp:938 gui/editor.cpp:1016 gui/editor.cpp:1172 msgid "Condition:" @@ -345,15 +345,15 @@ msgstr "String" #: gui/editor.cpp:1013 gui/settings.cpp:425 msgid "Type:" -msgstr "Type : " +msgstr "Type :" #: gui/editor.cpp:1028 gui/settings.cpp:101 msgid "Language:" -msgstr "Langue : " +msgstr "Langue :" #: gui/editor.cpp:1031 msgid "Content:" -msgstr "Contenu : " +msgstr "Contenu :" #: gui/editor.cpp:1121 gui/editor.cpp:1136 msgid "Error: No content row selected." @@ -361,31 +361,31 @@ msgstr "Erreur : Aucun contenu sélectionné. " #: gui/editor.cpp:1166 msgid "Add/Remove:" -msgstr "Ajouter/Retirer" +msgstr "Ajouter/Retirer :" #: gui/editor.cpp:1169 gui/settings.cpp:422 msgid "Name (required):" -msgstr "Nom (Requis) : " +msgstr "Nom (requis) :" #: gui/editor.cpp:1234 msgid "CRC (required):" -msgstr "CRC (requis):" +msgstr "CRC (requis) :" #: gui/editor.cpp:1237 msgid "ITM Count:" -msgstr "Énumération des ITM : " +msgstr "Énumération des ITM :" #: gui/editor.cpp:1240 msgid "UDR Count:" -msgstr "Énumération des UDR : " +msgstr "Énumération des UDR :" #: gui/editor.cpp:1243 msgid "Deleted Navmesh Count:" -msgstr "Énumération des Navmesh supprimés : " +msgstr "Énumération des Navmesh supprimés :" #: gui/editor.cpp:1246 msgid "Cleaning Utility (required):" -msgstr "Utilitaire de nettoyage (requis) : " +msgstr "Utilitaire de nettoyage (requis) :" #: gui/ids.cpp:31 msgid "None Specified" @@ -397,7 +397,7 @@ msgstr "Le fichier masterlist n'a pas pu être actualisé. Détails: %1%" #: gui/main.cpp:134 msgid "Masterlist parsing failed. Details: %1%" -msgstr "L'analyse de la masterlist a échouée. Détails : %1%" +msgstr "L'analyse de la masterlist a échoué. Détails : %1%" #: gui/main.cpp:142 msgid "Unknown" @@ -414,11 +414,11 @@ msgstr "Erreur : BOSS est déjà lancé. Cette version va maintenant s'arrêter. #: gui/main.cpp:180 msgid "Error: Could not create local app data BOSS folder." -msgstr "Erreur : Impossible de créer le dossier local BOSS app data. " +msgstr "Erreur : Impossible de créer le dossier local app data BOSS." #: gui/main.cpp:193 msgid "Error: Settings parsing failed. %1%" -msgstr "Erreur : Les paramètres d'analyse ont échoués. %1%" +msgstr "Erreur : Les paramètres d'analyse ont échoué. %1%" #: gui/main.cpp:272 msgid "Error: Could not apply translation." @@ -436,11 +436,11 @@ msgstr "" #: gui/main.cpp:303 msgid "Error: Games' settings parsing failed. %1%" -msgstr "Erreur : Les paramètres d'analyse du jeu ont échoués. %1%" +msgstr "Erreur : Les paramètres d'analyse du jeu ont échoué. %1%" #: gui/main.cpp:334 msgid "Error: None of the supported games were detected." -msgstr "Erreur : Aucun des jeux pris en chargé n'a été détecté. " +msgstr "Erreur : Aucun des jeux pris en charge n'a été détecté. " #: gui/main.cpp:379 msgid "Edit Metadata" @@ -448,7 +448,7 @@ msgstr "Éditer les métadonnées" #: gui/main.cpp:380 msgid "Sort Plugins" -msgstr "Trier les plug-ins" +msgstr "Trier les plugins" #: gui/main.cpp:381 msgid "View Last Report" @@ -464,11 +464,11 @@ msgstr "Voir le &journal débogage" #: gui/main.cpp:387 msgid "&Sort Plugins" -msgstr "&Trier les plug-ins" +msgstr "&Trier les plugins" #: gui/main.cpp:388 msgid "&Redate Plugins" -msgstr "&Redater le plugin" +msgstr "&Redater les plugins" #: gui/main.cpp:391 msgid "&File" @@ -480,7 +480,7 @@ msgstr "&Métadonnées" #: gui/main.cpp:394 msgid "&Settings..." -msgstr "&Règlages" +msgstr "&Paramètres" #: gui/main.cpp:395 msgid "&Edit" @@ -488,7 +488,7 @@ msgstr "&Éditer" #: gui/main.cpp:407 msgid "&Game" -msgstr "&Jeux" +msgstr "&Jeu" #: gui/main.cpp:412 msgid "&Help" @@ -496,11 +496,11 @@ msgstr "&Aide" #: gui/main.cpp:496 gui/main.cpp:851 msgid "BOSS: Working..." -msgstr "BOSS : En train de travailler " +msgstr "BOSS : En cours" #: gui/main.cpp:496 gui/main.cpp:851 msgid "BOSS working..." -msgstr "BOSS travail..." +msgstr "BOSS en cours..." #: gui/main.cpp:547 msgid "Userlist parsing failed. Details: %1%" @@ -511,13 +511,13 @@ msgid "" "A global message contains a condition that could not be evaluated. Details: " "%1%" msgstr "" -"Un message global contient une condition qui n'a pas pu être évalué. " +"Un message global contient une condition qui n'a pas pu être évaluée. " "Détails : %1%" #: gui/main.cpp:615 msgid "\"%1%\" contains a condition that could not be evaluated. Details: %2%" msgstr "" -"\"%1%\" contient une condition qui n'a pas pu être évalué. Détails : %2%" +"\"%1%\" contient une condition qui n'a pas pu être évaluée. Détails : %2%" #: gui/main.cpp:627 msgid "\"%1%\" is incompatible with \"%2%\" and is present." @@ -533,7 +533,7 @@ msgstr "Impossible de générer l'image graphique. Détails : %1%" #: gui/main.cpp:687 msgid "BOSS: Calculated Load Order" -msgstr "BOSS : En train de définir l'ordre de chargement. " +msgstr "BOSS : Ordre de chargement défini" #: gui/main.cpp:765 msgid "Failed to set the load order. Details: %1%" @@ -579,8 +579,8 @@ msgid "" msgstr "" "Cette fonction est prévue pour que les moddeurs qui utilisent le Creation " "Kit puissent définir l'ordre de chargement qu'ils utilisent. L'effet " -"secondaire est que les mods souscrits sur le Steam Workshop seront " -"retéléchargés pat Steam. Voulez-vous continuer ? " +"secondaire est que les mods choisis sur le Steam Workshop seront " +"retéléchargés par Steam. Voulez-vous continuer ? " #: gui/main.cpp:961 msgid "BOSS: Warning" @@ -604,11 +604,11 @@ msgstr "BOSS : Redater le plug-in" #: gui/main.cpp:1024 msgid "BOSS: Settings" -msgstr "BOSS: Configuration" +msgstr "BOSS : Configuration" #: gui/main.cpp:1059 gui/main.cpp:1074 msgid "Error: \"%1%\" cannot be found." -msgstr "Erreur: \"%1%\" n'a pas être trouvé" +msgstr "Erreur: \"%1%\" n'a pas être trouvé." #: gui/main.cpp:1086 msgid "" @@ -616,7 +616,7 @@ msgid "" "Master system." msgstr "" "Un outil d'optimisation de l'ordre de chargement pour les jeux qui utilisent " -"le système des Elder Scrols Plugin/Master" +"le système des Elder Scrols plugin/master." #: gui/main.cpp:1110 msgid "Up" @@ -635,14 +635,14 @@ msgid "" "Please submit any alterations made for reasons other than user preference \n" "to the BOSS team so that they may include the changes in the masterlist." msgstr "" -"S'il vous plaît, soumettez les modifications apportées pour des raisons " -"autres que la préfèrence de l'utilisateur \n" -" à l'équipe de BOSS afin qu'elle puisse l'inclure les changements dans la " +"Veuillez soumettre les modifications apportées pour des raisons autres que " +"la préfèrence de l'utilisateur \n" +" à l'équipe de BOSS afin qu'elle puisse inclure les changements dans la " "masterlist. " #: gui/main.cpp:1181 gui/main.cpp:1226 msgid "Error: Cannot load \"%1%\" before \"%2%\"." -msgstr "Erreur : Impossible de charger %1% avant %2%" +msgstr "Erreur : Impossible de charger \"%1%\" avant \"%2%\"." #: gui/settings.cpp:40 msgid "None" @@ -694,7 +694,7 @@ msgstr "Nom" #: gui/settings.cpp:69 msgid "Base Game Type" -msgstr "Type du jeu de base. " +msgstr "Type du jeu de base" #: gui/settings.cpp:70 msgid "BOSS Folder Name" @@ -718,11 +718,11 @@ msgstr "Clé du registre du chemin d'installation. " #: gui/settings.cpp:98 msgid "Default Game:" -msgstr "Jeu par défaut : " +msgstr "Jeu par défaut :" #: gui/settings.cpp:104 msgid "Debug Verbosity:" -msgstr "Niveau de détails de la sortie du débogage : " +msgstr "Niveau de détails de la sortie du débogage :" #: gui/settings.cpp:126 msgid "Language and game changes will be applied after BOSS is restarted." @@ -732,7 +732,7 @@ msgstr "" #: gui/settings.cpp:139 msgid "The output is logged to the BOSSDebugLog.txt file." -msgstr "Les informations sont enregistrées dans le fichier BOSSDEbugLog.txt..." +msgstr "Les informations sont enregistrées dans le fichier BOSSDEbugLog.txt." #: gui/settings.cpp:279 msgid "BOSS: Add Game" @@ -798,7 +798,7 @@ msgstr "Suggestion(s) d'étiquette : " #: backend/generators.h:84 msgid "Warning:" -msgstr "Averissement : " +msgstr "Avertissement : " #: backend/generators.h:86 msgid "Error:" @@ -866,22 +866,22 @@ msgstr "Nombre d'erreurs" #: backend/generators.h:385 msgid "Version:" -msgstr "Version:" +msgstr "Version :" #: backend/generators.h:405 msgid "Add:" -msgstr "Ajouter : " +msgstr "Ajouter :" #: backend/generators.h:411 msgid "Remove:" -msgstr "" +msgstr "Retirer :" #: backend/generators.h:419 msgid "" "Contains %1% ITM records, %2% UDR records and %3% deleted navmeshes. Clean " "with %4%." msgstr "" -"Contient %1% enregistrement d'ITM, %2% enregistrements d'UDR et %3% " +"Contient %1% enregistrements d'ITM, %2% enregistrements d'UDR et %3% " "navmeshes supprimés. Nettoyez-les avec %4%. " #: backend/generators.h:421 @@ -905,18 +905,18 @@ msgstr "Contient %1% enregistrements d'UDR. Nettoyez-les avec %2%. " #: backend/generators.h:432 msgid "Contains %1% ITM records and %2% deleted navmeshes. Clean with %3%." msgstr "" -"Contient %1% enregistrement d'ITM, %2% navmeshes supprimés. Nettoyez-les " +"Contient %1% enregistrements d'ITM, %2% navmeshes supprimés. Nettoyez-les " "avec %3%. " #: backend/generators.h:434 msgid "Contains %1% ITM records. Clean with %2%." -msgstr "Contient %1% enregistrement d'ITM. Nettoyez-les avec %2%. " +msgstr "Contient %1% enregistrements d'ITM. Nettoyez-les avec %2%. " #: backend/generators.h:437 msgid "Contains %1% ITM records and %2% UDR records. Clean with %3%." msgstr "" -"Contient %1% enregistrement d'ITM et %2% enregistrements d'UDR. Nettoyez-les " -"avec %3%. " +"Contient %1% enregistrements d'ITM et %2% enregistrements d'UDR. Nettoyez-" +"les avec %3%. " #: backend/generators.h:474 msgid "The BOSS Report requires Javascript to be enabled in order to function." @@ -941,7 +941,7 @@ msgstr "Cacher les notes" #: backend/generators.h:555 msgid "Hide 'Do Not Clean' Messages" -msgstr "Cacher les messages \"Ne pas nettoyer\"" +msgstr "Cacher les messages 'Ne pas nettoyer'" #: backend/generators.h:563 msgid "Hide All Plugin Messages" @@ -953,11 +953,11 @@ msgstr "Cacher tous les plugins sans message" #: backend/generators.h:581 msgid "%1% of %2% plugins hidden." -msgstr "%1% de %2% plugins cachés" +msgstr "%1% sur %2% plugins cachés." #: backend/generators.h:589 msgid "%1% of %2% messages hidden." -msgstr "%1% de %2% messages cachés" +msgstr "%1% sur %2% messages cachés." #: backend/generators.h:631 msgid "Could not write BOSS report." @@ -965,15 +965,15 @@ msgstr "Impossible d'écrire le rapport de BOSS. " #: backend/parsers.h:466 backend/parsers.h:549 msgid "Invalid file path:" -msgstr "Chemin du fichier invalide : " +msgstr "Chemin du fichier invalide :" #: backend/parsers.h:514 msgid "Invalid folder path:" -msgstr "Chemin du dossier invalide : " +msgstr "Chemin du dossier invalide :" #: backend/parsers.h:531 msgid "Invalid regex string:" -msgstr "Regex string invalide : " +msgstr "Regex string invalide :" #: backend/parsers.h:626 msgid "Expected \"%1%\" at \"%2%\"." diff --git a/resources/l10n/pl/LC_MESSAGES/boss.po b/resources/l10n/pl/LC_MESSAGES/boss.po index 2d22b41b..fbbe3066 100644 --- a/resources/l10n/pl/LC_MESSAGES/boss.po +++ b/resources/l10n/pl/LC_MESSAGES/boss.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: BOSS v3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-26 11:41-0000\n" -"PO-Revision-Date: 2014-02-08 14:40+0100\n" +"POT-Creation-Date: 2014-02-11 17:46-0000\n" +"PO-Revision-Date: 2014-02-15 00:58+0100\n" "Last-Translator: Łukasz Niemczyk \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -19,59 +19,81 @@ msgstr "" "X-Poedit-SearchPath-0: backend\n" "X-Poedit-SearchPath-1: gui\n" -#: backend/game.cpp:96 +#: backend/game.cpp:98 msgid "Invalid game ID supplied." msgstr "Błędny ID gry." -#: backend/game.cpp:147 +#: backend/game.cpp:158 msgid "Game path could not be detected." msgstr "Nie wykryto ścieżki do gry." -#: backend/game.cpp:248 backend/game.cpp:308 backend/game.cpp:363 +#: backend/game.cpp:261 backend/game.cpp:342 backend/game.cpp:418 +msgid "" +"libloadorder failed to create a game handle. Details could not be fetched." +msgstr "" +"libloader nie zdołał zainicjować operatora gry. Szczegóły nie zostały " +"załadowane." + +#: backend/game.cpp:265 backend/game.cpp:346 backend/game.cpp:422 msgid "libloadorder failed to create a game handle. Details:" msgstr "libloader nie zdołał zainicjować operatora gry. Szczegóły:" -#: backend/game.cpp:260 backend/game.cpp:320 backend/game.cpp:374 +#: backend/game.cpp:280 backend/game.cpp:361 backend/game.cpp:436 +msgid "" +"libloadorder failed to initialise game master file support. Details could " +"not be fetched." +msgstr "" +"libloadorder nie zdołał uruchomić wsparcia dla głównego pliku gry. Szczegóły " +"nie zostały załadowane" + +#: backend/game.cpp:284 backend/game.cpp:365 backend/game.cpp:440 msgid "libloadorder failed to initialise game master file support. Details:" msgstr "" "libloadorder nie zdołał uruchomić wsparcia dla głównego pliku gry. Szczegóły:" -#: backend/game.cpp:270 +#: backend/game.cpp:297 +msgid "" +"libloadorder failed to get the active plugins list. Details could not be " +"fetched." +msgstr "" +"libloadorder nie zdołał pobrać listy aktywnych dodatków. Szczegóły nie " +"zostały załadowane." + +#: backend/game.cpp:301 msgid "libloadorder failed to get the active plugins list. Details:" -msgstr "libloadorder nie zdołał pobrać listy aktywnych wtyczek. Szczegóły:" +msgstr "libloadorder nie zdołał pobrać listy aktywnych dodatków. Szczegóły:" -#: backend/game.cpp:330 backend/game.cpp:396 +#: backend/game.cpp:378 backend/game.cpp:465 +msgid "" +"libloadorder failed to set the load order. Details could not be fetched." +msgstr "" +"libloadorder nie zdołał ustawić kolejności uruchamiania. Szczegóły nie " +"zostały załadowane." + +#: backend/game.cpp:382 +msgid "libloadorder failed to get the load order. Details:" +msgstr "libloadorder nie zdołał wyliczyć kolejności uruchamiania. Szczegóły:" + +#: backend/game.cpp:469 msgid "libloadorder failed to set the load order. Details:" -msgstr "libloadorder nie zdołał ustalić kolejności uruchamiania. Szczegóły:" +msgstr "libloadorder nie zdołał ustawić kolejności uruchamiania. Szczegóły:" -#: backend/game.cpp:415 +#: backend/game.cpp:489 msgid "Could not create BOSS folder for game. Details:" msgstr "Nie można utworzyć folderu BOSS dla gry. Szczegóły:" #: backend/graph.cpp:46 msgid "Cyclic interaction detected between plugins \"%1%\" and \"%2%\"." msgstr "" -"Wykryto zamknięte koło powiązań pomiędzy dodatkami \"%1%\" oraz \"%2%\"." +"Wykryto zamknięte koło powiązań pomiędzy dodatkami \"%1%\" and \"%2%\"." #: backend/helpers.cpp:140 msgid "Unable to open \"%1%\" for CRC calculation." msgstr "Nie można otworzyć \"%1%\" by obliczyć CRC." -#: backend/helpers.cpp:302 -msgid "Could not create pipe for process." -msgstr "Nie można utworzyć wątku dla procesu." - -#: backend/helpers.cpp:335 -msgid "Could not create process." -msgstr "Proces nie został rozpoczęty." - -#: backend/helpers.cpp:346 -msgid "Could not get process exit code." -msgstr "Proces nie został zakończony." - -#: backend/helpers.cpp:353 -msgid "Could not read process output." -msgstr "Nie można odczytać wyników procesu." +#: backend/helpers.cpp:259 +msgid "None Specified" +msgstr "Brak wybranych" #: backend/metadata.cpp:142 msgid "Failed to parse condition \"%1%\": %2%" @@ -83,464 +105,469 @@ msgstr "Przetwarzanie warunku nieudane \"%1%\"." #: backend/network.cpp:75 msgid "Git operation failed. Error: %1%" -msgstr "Operacja Git nie udana. Błąd: %1%" +msgstr "Operacja na Git nie udana. Błąd: %1%" -#: backend/network.cpp:338 +#: backend/network.cpp:313 msgid "Masterlist revision" -msgstr "Wersja Masterlisty" +msgstr "Wersja Bazy danych" -#: gui/editor.cpp:37 -msgid "Note" -msgstr "Notatka" +#: backend/network.cpp:313 +msgid "Rolled back to the previous revision." +msgstr "Przywrócono poprzednią wersję." -#: gui/editor.cpp:38 -msgid "Warning" -msgstr "Ostrzeżenie" +#: gui/editor.cpp:157 gui/editor.cpp:311 +msgid "" +"Please submit any edits made for reasons other than personal preference to " +"the BOSS team so that they may be included in the masterlist." +msgstr "" +"Prosimy o informacje o wszelkich nowościach i niezbędnych zmianach w " +"kolejności wtyczek kierować do ekipy BOSS, aby znalazły się w następnej " +"aktualizacji bazy danych." -#: gui/editor.cpp:39 -msgid "Error" -msgstr "Błąd" +#: gui/editor.cpp:160 +msgid "Show only conflicting plugins." +msgstr "Pokaż tylko nikompatybilne wtyczki." -#: gui/editor.cpp:43 -msgid "Add" -msgstr "Dodaj" - -#: gui/editor.cpp:44 -msgid "Remove" -msgstr "Usuń" - -#: gui/editor.cpp:48 -msgid "Type" -msgstr "Typ" - -#: gui/editor.cpp:49 -msgid "Content" -msgstr "Zawartość" - -#: gui/editor.cpp:50 gui/editor.cpp:155 gui/editor.cpp:159 gui/editor.cpp:163 -#: gui/editor.cpp:167 -msgid "Condition" -msgstr "Stan" - -#: gui/editor.cpp:51 gui/editor.cpp:990 -msgid "Language" -msgstr "Język" - -#: gui/editor.cpp:125 -msgid "Enable User Changes" -msgstr "Zazwól na zmiany użytkownika" - -#: gui/editor.cpp:127 gui/editor.cpp:375 -msgid "Add File" -msgstr "Dodaj plik" - -#: gui/editor.cpp:128 gui/editor.cpp:376 -msgid "Edit File" -msgstr "Edytuj plik" - -#: gui/editor.cpp:129 gui/editor.cpp:377 -msgid "Remove File" -msgstr "Usuń plik" - -#: gui/editor.cpp:130 -msgid "Save Changes" -msgstr "Zapisz zmiany" - -#: gui/editor.cpp:131 -msgid "Cancel" -msgstr "Anuluj" - -#: gui/editor.cpp:132 -msgid "Copy Metadata As Text" -msgstr "Kopiuj Metadane jako tekst" - -#: gui/editor.cpp:143 -msgid "Requirements" -msgstr "Wymagania" - -#: gui/editor.cpp:144 -msgid "Incompatibilities" -msgstr "Niekompatybilne" - -#: gui/editor.cpp:145 -msgid "Load After" -msgstr "Załaduj po" - -#: gui/editor.cpp:146 -msgid "Messages" -msgstr "Wiadomości" - -#: gui/editor.cpp:147 -msgid "Bash Tags" -msgstr "Tagi Bash'a" - -#: gui/editor.cpp:148 -msgid "Dirty Info" -msgstr "Brudne Dane" - -#: gui/editor.cpp:151 -msgid "Plugins" -msgstr "Wtyczki" - -#: gui/editor.cpp:153 gui/editor.cpp:157 gui/editor.cpp:161 -msgid "Filename" -msgstr "Nazwa pliku" - -#: gui/editor.cpp:154 gui/editor.cpp:158 gui/editor.cpp:162 -msgid "Display Name" -msgstr "Nazwa wyświetlana" - -#: gui/editor.cpp:165 -msgid "Add/Remove" -msgstr "Dodaj/usuń" - -#: gui/editor.cpp:166 -msgid "Bash Tag" -msgstr "Tag Bash" - -#: gui/editor.cpp:169 -msgid "CRC" -msgstr "CRC" - -#: gui/editor.cpp:170 -msgid "ITM Count" -msgstr "Liczba ITM" - -#: gui/editor.cpp:171 -msgid "UDR Count" -msgstr "Liczba UDR" - -#: gui/editor.cpp:172 -msgid "Deleted Navmesh Count" -msgstr "Liczba usuniętych Navmesh" - -#: gui/editor.cpp:173 -msgid "Cleaning Utility" -msgstr "Narzędzie czyszczące" - -#: gui/editor.cpp:217 -msgid "Priority: " -msgstr "Priorytet:" - -#: gui/editor.cpp:379 -msgid "Add Plugin" -msgstr "Dodaj wtyczkę" - -#: gui/editor.cpp:380 -msgid "Edit Plugin" -msgstr "Edytuj wtyczkę" - -#: gui/editor.cpp:381 +#: gui/editor.cpp:166 gui/editor.cpp:817 msgid "Remove Plugin" msgstr "Usuń wtyczkę" -#: gui/editor.cpp:383 +#: gui/editor.cpp:169 +msgid "Plugin" +msgstr "Dodaj wtyczkę" + +#: gui/editor.cpp:170 +msgid "Priority" +msgstr "Priorytet" + +#: gui/editor.cpp:172 gui/editor.cpp:495 gui/editor.cpp:499 gui/editor.cpp:503 +msgid "Filename" +msgstr "Nazwa pliku" + +#: gui/editor.cpp:173 gui/editor.cpp:496 gui/editor.cpp:500 gui/editor.cpp:504 +msgid "Display Name" +msgstr "Nazwa wyświetlana" + +#: gui/editor.cpp:174 gui/editor.cpp:497 gui/editor.cpp:501 gui/editor.cpp:505 +#: gui/editor.cpp:509 gui/misc.cpp:36 +msgid "Condition" +msgstr "Stan" + +#: gui/editor.cpp:200 gui/editor.cpp:566 +msgid "Priority: " +msgstr "Priorytet:" + +#: gui/editor.cpp:204 gui/editor.cpp:487 +msgid "Load After" +msgstr "Załaduj po" + +#: gui/editor.cpp:466 +msgid "Enable User Changes" +msgstr "Zazwól na zmiany urzytkownika" + +#: gui/editor.cpp:468 gui/editor.cpp:811 +msgid "Add File" +msgstr "Dodaj plik" + +#: gui/editor.cpp:469 gui/editor.cpp:812 +msgid "Edit File" +msgstr "Edytuj plik" + +#: gui/editor.cpp:470 gui/editor.cpp:813 +msgid "Remove File" +msgstr "Usuń plik" + +#: gui/editor.cpp:471 +msgid "Save Changes" +msgstr "Zapisz zmiany" + +#: gui/editor.cpp:472 +msgid "Cancel" +msgstr "Anuluj" + +#: gui/editor.cpp:485 +msgid "Requirements" +msgstr "Wymagania" + +#: gui/editor.cpp:486 +msgid "Incompatibilities" +msgstr "Niekompatybilne" + +#: gui/editor.cpp:488 +msgid "Messages" +msgstr "Wiadomości" + +#: gui/editor.cpp:489 +msgid "Bash Tags" +msgstr "Tagi Bash" + +#: gui/editor.cpp:490 +msgid "Dirty Info" +msgstr "Brudne dane" + +#: gui/editor.cpp:493 +msgid "Plugins" +msgstr "Wtyczki" + +#: gui/editor.cpp:507 +msgid "Add/Remove" +msgstr "Dodaj/Usuń" + +#: gui/editor.cpp:508 +#, fuzzy +msgid "Bash Tag" +msgstr "Tag Bash" + +#: gui/editor.cpp:511 +#, fuzzy +msgid "CRC" +msgstr "CRC" + +#: gui/editor.cpp:512 +#, fuzzy +msgid "ITM Count" +msgstr "Liczba ITM" + +#: gui/editor.cpp:513 +#, fuzzy +msgid "UDR Count" +msgstr "Liczba UDR" + +#: gui/editor.cpp:514 +#, fuzzy +msgid "Deleted Navmesh Count" +msgstr "Liczba usuniętych Navmesh" + +#: gui/editor.cpp:515 +#, fuzzy +msgid "Cleaning Utility" +msgstr "Narzędzie czyszczące" + +#: gui/editor.cpp:518 +msgid "Copy Name" +msgstr "Kopiuj Nazwę" + +#: gui/editor.cpp:519 +#, fuzzy +msgid "Copy Metadata As Text" +msgstr "Kopiuj Metadane jako tekst" + +#: gui/editor.cpp:520 +msgid "Remove All User-Added Metadata" +msgstr "Usuń wszystkie informacje dodane przez użytkownika." + +#: gui/editor.cpp:783 +msgid "" +"Are you sure you want to clear all existing user-added metadata from this " +"plugin?" +msgstr "" +"Czy jesteś pewny że chcesz usunąć wszystkie dodane informacje użytkownika o " +"tej wtyczce?" + +#: gui/editor.cpp:784 gui/main.cpp:1066 +#, fuzzy +msgid "BOSS: Warning" +msgstr "BOSS: Ostrzeżenie" + +#: gui/editor.cpp:815 +#, fuzzy +msgid "Add Plugin" +msgstr "Dodaj wtyczkę" + +#: gui/editor.cpp:816 +#, fuzzy +msgid "Edit Plugin" +msgstr "Edytuj wtyczkę" + +#: gui/editor.cpp:819 msgid "Add Message" msgstr "Dodaj wiadomość" -#: gui/editor.cpp:384 +#: gui/editor.cpp:820 +#, fuzzy msgid "Edit Message" msgstr "Edytuj wiadomość" -#: gui/editor.cpp:385 +#: gui/editor.cpp:821 +#, fuzzy msgid "Remove Message" msgstr "Usuń wiadomość" -#: gui/editor.cpp:387 +#: gui/editor.cpp:823 +#, fuzzy msgid "Add Bash Tag" msgstr "Dodaj Tag Bash" -#: gui/editor.cpp:388 +#: gui/editor.cpp:824 +#, fuzzy msgid "Edit Bash Tag" msgstr "Edytuj Tag Bash" -#: gui/editor.cpp:389 +#: gui/editor.cpp:825 +#, fuzzy msgid "Remove Bash Tag" msgstr "Usuń Tag Bash" -#: gui/editor.cpp:391 +#: gui/editor.cpp:827 msgid "Add Dirty Info" -msgstr "Dodaj Brudne Info" +msgstr "BOSS: Dodaj informację o brudach" -#: gui/editor.cpp:392 +#: gui/editor.cpp:828 msgid "Edit Dirty Info" -msgstr "Edytuj Brudne Info" +msgstr "BOSS: Edytuj dane o brudach" -#: gui/editor.cpp:393 +#: gui/editor.cpp:829 msgid "Remove Dirty Info" -msgstr "Usuń Brudne Info" +msgstr "Usuń dane o brudach" -#: gui/editor.cpp:411 +#: gui/editor.cpp:847 +#, fuzzy msgid "BOSS: Add File/Plugin" msgstr "BOSS: Dodaj Plik/Wtyczkę" -#: gui/editor.cpp:433 +#: gui/editor.cpp:869 +#, fuzzy msgid "BOSS: Add Message" msgstr "Dodaj Wiadomość" -#: gui/editor.cpp:443 +#: gui/editor.cpp:879 +#, fuzzy msgid "Error: No content specified. Row will not be added." msgstr "Błąd: Brak zawartości. Linia nie będzie dodana." -#: gui/editor.cpp:444 gui/editor.cpp:526 gui/editor.cpp:1122 -#: gui/editor.cpp:1137 gui/main.cpp:164 gui/main.cpp:181 gui/main.cpp:194 -#: gui/main.cpp:273 gui/main.cpp:283 gui/main.cpp:296 gui/main.cpp:304 -#: gui/main.cpp:335 gui/main.cpp:352 gui/main.cpp:820 gui/main.cpp:873 -#: gui/main.cpp:893 gui/main.cpp:972 gui/main.cpp:1009 gui/main.cpp:1040 -#: gui/main.cpp:1060 gui/main.cpp:1075 gui/main.cpp:1182 gui/main.cpp:1227 -#: gui/settings.cpp:287 gui/settings.cpp:299 gui/settings.cpp:307 -#: gui/settings.cpp:350 gui/settings.cpp:358 gui/settings.cpp:366 +#: gui/editor.cpp:880 gui/editor.cpp:962 gui/main.cpp:167 gui/main.cpp:184 +#: gui/main.cpp:199 gui/main.cpp:280 gui/main.cpp:290 gui/main.cpp:303 +#: gui/main.cpp:311 gui/main.cpp:342 gui/main.cpp:359 gui/main.cpp:524 +#: gui/main.cpp:545 gui/main.cpp:561 gui/main.cpp:938 gui/main.cpp:990 +#: gui/main.cpp:1012 gui/main.cpp:1077 gui/main.cpp:1114 gui/misc.cpp:312 +#: gui/misc.cpp:327 gui/settings.cpp:287 gui/settings.cpp:299 +#: gui/settings.cpp:307 gui/settings.cpp:351 gui/settings.cpp:359 +#: gui/settings.cpp:367 +#, fuzzy msgid "BOSS: Error" msgstr "BOSS: Błąd" -#: gui/editor.cpp:454 +#: gui/editor.cpp:890 +#, fuzzy msgid "BOSS: Add Tag" msgstr "BOSS: Dodaj Tag" -#: gui/editor.cpp:468 +#: gui/editor.cpp:904 msgid "BOSS: Add Dirty Info" -msgstr "BOSS: Dodaj Brudne Info" +msgstr "BOSS: Dodaj dane o brudach" -#: gui/editor.cpp:487 +#: gui/editor.cpp:923 +#, fuzzy msgid "BOSS: Edit File/Plugin" msgstr "BOSS: Edytuj plik/wtyczkę" -#: gui/editor.cpp:511 +#: gui/editor.cpp:947 +#, fuzzy msgid "BOSS: Edit Message" msgstr "BOSS: Edytuj Wiadomość" -#: gui/editor.cpp:525 +#: gui/editor.cpp:961 +#, fuzzy msgid "Error: No content specified. Row will not be edited." msgstr "Błąd: Brak zawartości. Linia nie będzie edytowana." -#: gui/editor.cpp:535 +#: gui/editor.cpp:971 +#, fuzzy msgid "BOSS: Edit Tag" msgstr "BOSS: Edytuj Tag" -#: gui/editor.cpp:557 +#: gui/editor.cpp:993 msgid "BOSS: Edit Dirty Info" -msgstr "BOSS: Edytuj Brudne Info" +msgstr "BOSS: Edytuj dane o brudach" -#: gui/editor.cpp:932 -msgid "Filename (required):" -msgstr "Nazwa pliku (wymagane)" - -#: gui/editor.cpp:935 -msgid "Displayed Name:" -msgstr "Nazwa wyświetlana" - -#: gui/editor.cpp:938 gui/editor.cpp:1016 gui/editor.cpp:1172 -msgid "Condition:" -msgstr "Stan" - -#: gui/editor.cpp:986 -msgid "Add Content" -msgstr "Dodaj zawartość" - -#: gui/editor.cpp:987 -msgid "Edit Content" -msgstr "Edytuj zawartość" - -#: gui/editor.cpp:988 -msgid "Remove Content" -msgstr "Usuń zawartość" - -#: gui/editor.cpp:991 -msgid "String" -msgstr "Ciąg" - -#: gui/editor.cpp:1013 gui/settings.cpp:425 -msgid "Type:" -msgstr "Typ:" - -#: gui/editor.cpp:1028 gui/settings.cpp:101 -msgid "Language:" -msgstr "Język:" - -#: gui/editor.cpp:1031 -msgid "Content:" -msgstr "Zawartość:" - -#: gui/editor.cpp:1121 gui/editor.cpp:1136 -msgid "Error: No content row selected." -msgstr "Błąd: Brak zawartości w wybranej lini." - -#: gui/editor.cpp:1166 -msgid "Add/Remove:" -msgstr "Dodaj/Usuń:" - -#: gui/editor.cpp:1169 gui/settings.cpp:422 -msgid "Name (required):" -msgstr "Nazwa (wymagane):" - -#: gui/editor.cpp:1234 -msgid "CRC (required):" -msgstr "CRC (wymagane):" - -#: gui/editor.cpp:1237 -msgid "ITM Count:" -msgstr "Liczba ITM:" - -#: gui/editor.cpp:1240 -msgid "UDR Count:" -msgstr "Liczba UDR:" - -#: gui/editor.cpp:1243 -msgid "Deleted Navmesh Count:" -msgstr "Liczba usuniętych Navmesh:" - -#: gui/editor.cpp:1246 -msgid "Cleaning Utility (required):" -msgstr "Narzędzie czyszczące (wymagane):" - -#: gui/ids.cpp:31 -msgid "None Specified" -msgstr "Brak wybranych" - -#: gui/main.cpp:118 +#: gui/main.cpp:119 msgid "Masterlist update failed. Details: %1%" -msgstr "Aktualizacja Masterlisty nie powiodła się. Szczegóły: %1%" +msgstr "Aktualizacja Bazy danych nie powiodła się. Szczegóły: %1%" -#: gui/main.cpp:134 +#: gui/main.cpp:137 msgid "Masterlist parsing failed. Details: %1%" -msgstr "Przetwarzanie Masterlisty nie powiodło się. Szczegóły: %1%" +msgstr "Przetwarzanie Bazy danych nie powiodło się. Szczegóły: %1%" -#: gui/main.cpp:142 +#: gui/main.cpp:145 +#, fuzzy msgid "Unknown" msgstr "Nieznany" -#: gui/main.cpp:144 +#: gui/main.cpp:147 msgid "No masterlist" -msgstr "Brak Masterlisty" +msgstr "Brak bazy danych" -#: gui/main.cpp:163 +#: gui/main.cpp:166 msgid "Error: BOSS is already running. This instance will now quit." -msgstr "Błąd: BOSS jest już uruchomiony. Ta wersja zostanie zamknięta." +msgstr "" +"Błąd: BOSS jest już uruchomiony. Uruchamianie kolejnego zostało anulowane." -#: gui/main.cpp:180 +#: gui/main.cpp:183 +#, fuzzy msgid "Error: Could not create local app data BOSS folder." msgstr "Błąd: Nie znaleziono folderu z ustawieniami BOSS." -#: gui/main.cpp:193 +#: gui/main.cpp:198 +#, fuzzy msgid "Error: Settings parsing failed. %1%" msgstr "Błąd: Przetwarzanie ustawień nieudane. %1%" -#: gui/main.cpp:272 +#: gui/main.cpp:279 +#, fuzzy msgid "Error: Could not apply translation." msgstr "Błąd: Nie można zmienić tłumaczenia." -#: gui/main.cpp:282 +#: gui/main.cpp:289 msgid "Error: The selected language is not available on this system." -msgstr "Błąd: Wybrane tłumaczenie jest niedostępny w tym systemie." +msgstr "Błąd: Wybrany język jest niedostępny w tym systemie." -#: gui/main.cpp:295 gui/main.cpp:351 gui/main.cpp:1039 +#: gui/main.cpp:302 gui/main.cpp:358 gui/main.cpp:523 +#, fuzzy msgid "Error: Game-specific settings could not be initialised. %1%" msgstr "Błąd: Nie można zainicjować ustawień gry. %1%" -#: gui/main.cpp:303 +#: gui/main.cpp:310 +#, fuzzy msgid "Error: Games' settings parsing failed. %1%" msgstr "Błąd: Przetwarzanie ustawień gry nieudane. %1%" -#: gui/main.cpp:334 +#: gui/main.cpp:341 +#, fuzzy msgid "Error: None of the supported games were detected." msgstr "Błąd: Nie wykryto obsługiwanych gier." -#: gui/main.cpp:379 +#: gui/main.cpp:386 +#, fuzzy msgid "Edit Metadata" msgstr "Edytuj Metadane" -#: gui/main.cpp:380 +#: gui/main.cpp:387 +#, fuzzy msgid "Sort Plugins" msgstr "Sortuj Wtyczki" -#: gui/main.cpp:381 +#: gui/main.cpp:388 +#, fuzzy msgid "View Last Report" msgstr "Czytaj ostatni raport" -#: gui/main.cpp:385 +#: gui/main.cpp:392 msgid "&View Last Report" msgstr "&Czytaj ostatni raport" -#: gui/main.cpp:386 +#: gui/main.cpp:393 msgid "View &Debug Log" -msgstr "Czytaj &Logi Debug" +msgstr "Czytaj Logi &Debug" -#: gui/main.cpp:387 +#: gui/main.cpp:394 msgid "&Sort Plugins" msgstr "&Sortuj Wtyczki" -#: gui/main.cpp:388 +#: gui/main.cpp:395 msgid "&Redate Plugins" -msgstr "&Przedatuj Wtyczki" +msgstr "P&Rzedatuj Wtyczki" -#: gui/main.cpp:391 +#: gui/main.cpp:398 +#, fuzzy msgid "&File" msgstr "&Plik" -#: gui/main.cpp:393 +#: gui/main.cpp:400 +#, fuzzy msgid "&Metadata..." msgstr "&Metadane..." -#: gui/main.cpp:394 +#: gui/main.cpp:401 +#, fuzzy msgid "&Settings..." msgstr "&Ustawienia" -#: gui/main.cpp:395 +#: gui/main.cpp:402 +#, fuzzy msgid "&Edit" msgstr "&Edycja" -#: gui/main.cpp:407 +#: gui/main.cpp:414 +#, fuzzy msgid "&Game" msgstr "&Gra" -#: gui/main.cpp:412 +#: gui/main.cpp:419 +#, fuzzy msgid "&Help" msgstr "&Pomoc" -#: gui/main.cpp:496 gui/main.cpp:851 +#: gui/main.cpp:499 gui/main.cpp:954 +#, fuzzy +msgid "BOSS: Report Viewer" +msgstr "BOSS: Czytnik Raportów" + +#: gui/main.cpp:507 +#, fuzzy +msgid "BOSS: Settings" +msgstr "BOSS: Ustawienia" + +#: gui/main.cpp:544 gui/main.cpp:560 +#, fuzzy +msgid "Error: \"%1%\" cannot be found." +msgstr "Błąd: nie znaleziono \"%1%\"" + +#: gui/main.cpp:572 +msgid "" +"Load order optimisation for Oblivion, Skyrim, Fallout 3 and Fallout: New " +"Vegas." +msgstr "" +"Optymalizacja kolejności ładowania wtyczek dla gier: Oblivion, Skyrim, " +"Fallout 3 oraz Fallout: New Vegas." + +#: gui/main.cpp:603 gui/main.cpp:819 gui/main.cpp:966 +#, fuzzy msgid "BOSS: Working..." msgstr "BOSS: Pracuję..." -#: gui/main.cpp:496 gui/main.cpp:851 +#: gui/main.cpp:603 gui/main.cpp:819 gui/main.cpp:966 +#, fuzzy msgid "BOSS working..." -msgstr "BOSS pracuje..." +msgstr "BOSS: Pracuję..." -#: gui/main.cpp:547 +#: gui/main.cpp:660 msgid "Userlist parsing failed. Details: %1%" -msgstr "Przetwarzanie listy użytkownika nie powiodło się. Szczegóły: %1%" +msgstr "Przetwarzanie listy użytkownika zawiodło. Szczegóły: %1%" -#: gui/main.cpp:584 +#: gui/main.cpp:701 msgid "" "A global message contains a condition that could not be evaluated. Details: " "%1%" -msgstr "Wiadomość zawiera warunek nie możliwy do oszacowania. Szczegóły:" +msgstr "" +"Wiadomość globalna zawiera warunek nie możliwy do oszacowania. Szczegóły:" -#: gui/main.cpp:615 +#: gui/main.cpp:734 +#, fuzzy msgid "\"%1%\" contains a condition that could not be evaluated. Details: %2%" msgstr "" "\"%1%\" zawiera warunek który nie może zostać oszacowany. Szczegóły: %2%" -#: gui/main.cpp:627 +#: gui/main.cpp:746 msgid "\"%1%\" is incompatible with \"%2%\" and is present." msgstr "\"%1%\" jest niekompatybilny z \"%2%\" a jest obecny." -#: gui/main.cpp:630 +#: gui/main.cpp:749 +#, fuzzy msgid "\"%1%\" is required by \"%2%\" but is missing." msgstr "\"%1%\" jest wymagany przez \"%2%\" ale go brakuje." -#: gui/main.cpp:670 -msgid "Failed to generate graph image. Details: %1%" -msgstr "Generowanie wykresu nieudane. Szczegóły: %1%" - -#: gui/main.cpp:687 +#: gui/main.cpp:804 +#, fuzzy msgid "BOSS: Calculated Load Order" msgstr "BOSS: Wyliczona Kolejność Ładowania" -#: gui/main.cpp:765 +#: gui/main.cpp:876 +#, fuzzy msgid "Failed to set the load order. Details: %1%" msgstr "Nie udało się ustalić kolejności ładowania. Szczegóły: %1%" -#: gui/main.cpp:769 +#: gui/main.cpp:886 +#, fuzzy msgid "" "The load order displayed in the Details tab was not applied as sorting was " "canceled." @@ -548,31 +575,30 @@ msgstr "" "Kolejność ładowania wyświetlona w karcie szczegółów nie została zastosowana " "gdyż sortowanie zostało anulowane." -#: gui/main.cpp:778 +#: gui/main.cpp:891 +#, fuzzy msgid "Failed to calculate the load order. Details: %1%" msgstr "Ustalanie kolejności ładowania nieudane. Szczegóły: %1%" -#: gui/main.cpp:819 +#: gui/main.cpp:937 +#, fuzzy msgid "Error: %1%" msgstr "Błąd: %1%" -#: gui/main.cpp:839 gui/main.cpp:954 -msgid "BOSS: Report Viewer" -msgstr "BOSS: Czytnik Raportów" - -#: gui/main.cpp:872 +#: gui/main.cpp:989 msgid "Error: Masterlist parsing failed. %1%" -msgstr "Błąd: Przetwarzanie Masterlisty nieudane. %1%" +msgstr "Błąd: Przetwarzanie bazy danych nieudane. %1%" -#: gui/main.cpp:892 +#: gui/main.cpp:1011 msgid "Error: Userlist parsing failed. %1%" msgstr "Błąd: Przetwarzanie listy użytkownika nieudane. %1%" -#: gui/main.cpp:939 +#: gui/main.cpp:1057 msgid "BOSS: Metadata Editor" msgstr "BOSS: Edytor Metadanych" -#: gui/main.cpp:961 +#: gui/main.cpp:1066 +#, fuzzy msgid "" "This feature is provided so that modders using the Creation Kit may set the " "load order it uses. A side-effect is that any subscribed Steam Workshop mods " @@ -582,387 +608,517 @@ msgstr "" "kolejności wczytywania tego programu. W efekcie każdy subskrybowany mod ze " "Steam Workshop będzie ponownie pobrany przez Steam. Czy chcesz kontynuować?" -#: gui/main.cpp:961 -msgid "BOSS: Warning" -msgstr "BOSS: Ostrzeżenie" - -#: gui/main.cpp:971 +#: gui/main.cpp:1076 +#, fuzzy msgid "Error: Failed to get load order. %1%" msgstr "Błąd: Wczytywanie kolejności ładowania nieudane. %1%" -#: gui/main.cpp:1008 +#: gui/main.cpp:1113 +#, fuzzy msgid "Error: Failed to set plugin timestamps. %1%" msgstr "Błąd: Ustawianie opuźnienia wtyczek nieudane. %1%" -#: gui/main.cpp:1015 +#: gui/main.cpp:1120 +#, fuzzy msgid "Plugins were successfully redated." msgstr "Wtyczki zostały pomyślnie przedatowane." -#: gui/main.cpp:1016 +#: gui/main.cpp:1121 +#, fuzzy msgid "BOSS: Plugin Redate" msgstr "BOSS: Przedatowanie Wtyczek" -#: gui/main.cpp:1024 -msgid "BOSS: Settings" -msgstr "BOSS: Ustawienia" +#: gui/misc.cpp:34 +#, fuzzy +msgid "Type" +msgstr "Typ" -#: gui/main.cpp:1059 gui/main.cpp:1074 -msgid "Error: \"%1%\" cannot be found." -msgstr "Błąd: nie znaleziono \"%1%\"" +#: gui/misc.cpp:35 +#, fuzzy +msgid "Content" +msgstr "Zawartość" -#: gui/main.cpp:1086 -msgid "" -"A load order optimisation tool for games using the Elder Scrolls Plugin/" -"Master system." -msgstr "" -"Narzędzie do optymalizacji kolejności wczytywania dla gier w systemie The " -"Elder Scrolls Plugin/Master." +#: gui/misc.cpp:37 gui/misc.cpp:180 +#, fuzzy +msgid "Language" +msgstr "Język" -#: gui/main.cpp:1110 -msgid "Up" -msgstr "Wyżej" +#: gui/misc.cpp:116 +#, fuzzy +msgid "Filename (required):" +msgstr "Nazwa pliku (wymagane)" -#: gui/main.cpp:1111 -msgid "Down" -msgstr "Niżej" +#: gui/misc.cpp:119 +#, fuzzy +msgid "Displayed Name:" +msgstr "Nazwa wyświetlana" -#: gui/main.cpp:1114 -msgid "Load Order" -msgstr "Kolejność wczytywania" +#: gui/misc.cpp:122 gui/misc.cpp:206 gui/misc.cpp:362 +msgid "Condition:" +msgstr "Warunek:" -#: gui/main.cpp:1136 -msgid "" -"Please submit any alterations made for reasons other than user preference \n" -"to the BOSS team so that they may include the changes in the masterlist." -msgstr "" -"Bardzo proszę zgłaszać wszelkie zmiany uzytkowników w kolejności sugerowanej " -"przez program BOSS wynikłe z nieprawidłowego segregowania do twórców. " -"Zostaną one dołączone do nastepnej aktualizacji Masterlisty." +#: gui/misc.cpp:176 +#, fuzzy +msgid "Add Content" +msgstr "Dodaj zawartość" -#: gui/main.cpp:1181 gui/main.cpp:1226 -msgid "Error: Cannot load \"%1%\" before \"%2%\"." -msgstr "Błąd: Nie można załadować \"%1%\" przed \"%2%\"." +#: gui/misc.cpp:177 +#, fuzzy +msgid "Edit Content" +msgstr "Edytuj zawartość" -#: gui/settings.cpp:40 +#: gui/misc.cpp:178 +#, fuzzy +msgid "Remove Content" +msgstr "Usuń zawartość" + +#: gui/misc.cpp:181 +#, fuzzy +msgid "String" +msgstr "Ciąg" + +#: gui/misc.cpp:203 gui/settings.cpp:428 +msgid "Type:" +msgstr "Typ:" + +#: gui/misc.cpp:218 gui/settings.cpp:108 +msgid "Language:" +msgstr "Język:" + +#: gui/misc.cpp:221 +msgid "Content:" +msgstr "Zawartość:" + +#: gui/misc.cpp:311 gui/misc.cpp:326 +#, fuzzy +msgid "Error: No content row selected." +msgstr "Błąd: Brak zawartości w wybranej lini." + +#: gui/misc.cpp:356 +msgid "Add/Remove:" +msgstr "Dodaj/Usuń:" + +#: gui/misc.cpp:359 gui/settings.cpp:425 +msgid "Name (required):" +msgstr "Nazwa (wymagane):" + +#: gui/misc.cpp:424 +msgid "CRC (required):" +msgstr "CRC (wymagane):" + +#: gui/misc.cpp:427 +#, fuzzy +msgid "ITM Count:" +msgstr "Liczba ITM" + +#: gui/misc.cpp:430 +#, fuzzy +msgid "UDR Count:" +msgstr "Liczba UDR" + +#: gui/misc.cpp:433 +#, fuzzy +msgid "Deleted Navmesh Count:" +msgstr "Liczba usuniętych Navmesh" + +#: gui/misc.cpp:436 +#, fuzzy +msgid "Cleaning Utility (required):" +msgstr "Narzędzie czyszczące (wymagane):" + +#: gui/settings.cpp:41 +#, fuzzy msgid "None" msgstr "Brak" -#: gui/settings.cpp:41 +#: gui/settings.cpp:42 +#, fuzzy msgid "Low" msgstr "Niskie" -#: gui/settings.cpp:42 +#: gui/settings.cpp:43 +#, fuzzy msgid "Medium" msgstr "Średnie" -#: gui/settings.cpp:43 +#: gui/settings.cpp:44 +#, fuzzy msgid "High" msgstr "Wysokie" -#: gui/settings.cpp:47 +#: gui/settings.cpp:48 +#, fuzzy msgid "Autodetect" msgstr "Automatycznie" -#: gui/settings.cpp:59 +#: gui/settings.cpp:66 +#, fuzzy msgid "Add Game" msgstr "Dodaj Grę" -#: gui/settings.cpp:60 +#: gui/settings.cpp:67 +#, fuzzy msgid "Edit Game" msgstr "Edytuj Grę" -#: gui/settings.cpp:61 +#: gui/settings.cpp:68 +#, fuzzy msgid "Remove Game" msgstr "Usuń Grę" -#: gui/settings.cpp:63 +#: gui/settings.cpp:70 msgid "Update masterlist before sorting." -msgstr "Uaktualnij Masterlistę przed sortowaniem." +msgstr "Uaktualnij bazę danych przed sortowaniem." -#: gui/settings.cpp:64 +#: gui/settings.cpp:71 +#, fuzzy msgid "View reports externally in default browser." -msgstr "Czytaj raport w domyślnej przeglądarce." +msgstr "Czytaj raport w domyslnej przeglądarce." -#: gui/settings.cpp:65 -msgid "Generate and display plugin graph images." -msgstr "Wygeneruj i pokaż wykres wtyczek." - -#: gui/settings.cpp:68 +#: gui/settings.cpp:74 +#, fuzzy msgid "Name" msgstr "Nazwa" -#: gui/settings.cpp:69 +#: gui/settings.cpp:75 +#, fuzzy msgid "Base Game Type" msgstr "Podstawowy typ gry" -#: gui/settings.cpp:70 +#: gui/settings.cpp:76 +#, fuzzy msgid "BOSS Folder Name" -msgstr "Nazwa folderu BOSS" +msgstr "nazwa folderu BOSS (wymagane):" -#: gui/settings.cpp:71 +#: gui/settings.cpp:77 +#, fuzzy msgid "Master File" msgstr "Główny plik" -#: gui/settings.cpp:72 -msgid "Online Masterlist URL" -msgstr "URL Masterlisty Online" +#: gui/settings.cpp:78 +msgid "Masterlist Repository URL" +msgstr "URL do Bazy danych:" -#: gui/settings.cpp:73 +#: gui/settings.cpp:79 +msgid "Masterlist Repository Branch" +msgstr "Odłam bazy danych" + +#: gui/settings.cpp:80 +#, fuzzy msgid "Install Path" msgstr "Ścieżka instalacyjna" -#: gui/settings.cpp:74 +#: gui/settings.cpp:81 +#, fuzzy msgid "Install Path Registry Key" -msgstr "Klucz rejestru ścieżki instalacyjnej" +msgstr "Klucz rejestru śieżki instalacyjnej " -#: gui/settings.cpp:98 +#: gui/settings.cpp:105 msgid "Default Game:" msgstr "Domyślna gra" -#: gui/settings.cpp:104 +#: gui/settings.cpp:111 +#, fuzzy msgid "Debug Verbosity:" msgstr "Debug Verbosity:" -#: gui/settings.cpp:126 +#: gui/settings.cpp:130 +#, fuzzy msgid "Language and game changes will be applied after BOSS is restarted." msgstr "Język oraz zmiany w grze zostaną zastosowane po restarcie BOSS." -#: gui/settings.cpp:139 +#: gui/settings.cpp:143 +#, fuzzy msgid "The output is logged to the BOSSDebugLog.txt file." msgstr "Wyniki zostały zapisane w BOSSDebugLog.txt." #: gui/settings.cpp:279 +#, fuzzy msgid "BOSS: Add Game" msgstr "BOSS: Dodaj Grę" -#: gui/settings.cpp:286 gui/settings.cpp:365 +#: gui/settings.cpp:286 gui/settings.cpp:366 +#, fuzzy msgid "Error: A path and/or registry key is required. Row will not be added." msgstr "" "Błąd: Scieżka oraz/lub klucz rejestru jest wymagany. Linia nie zostanie " "dodana." #: gui/settings.cpp:298 +#, fuzzy msgid "Error: A game with this name is already defined. Row will not be added." msgstr "Błąd: Gra z tą nazwą jest już opisana. Linia nie zostanie dodana." #: gui/settings.cpp:306 +#, fuzzy msgid "" "Error: A game with this folder name is already defined. Row will not be " "added." msgstr "Błąd: Gra z tym folderem jest już opisana. Linia nie zostanie dodana." -#: gui/settings.cpp:328 +#: gui/settings.cpp:329 +#, fuzzy msgid "BOSS: Edit Game" msgstr "BOSS: Edytuj Grę" -#: gui/settings.cpp:349 +#: gui/settings.cpp:350 +#, fuzzy msgid "Error: Name is required. Row will not be added." msgstr "Błąd: Nazwa jest wymagana. Linia nie zostanie dodana." -#: gui/settings.cpp:357 +#: gui/settings.cpp:358 +#, fuzzy msgid "Error: Folder is required. Row will not be added." msgstr "Błąd: Folder jest wymagany. Linia nie zostanie dodana." -#: gui/settings.cpp:428 +#: gui/settings.cpp:431 msgid "BOSS Folder Name (required):" msgstr "Nazwa folderu BOSS (wymagane):" -#: gui/settings.cpp:431 +#: gui/settings.cpp:434 msgid "Master File:" msgstr "Główny plik:" -#: gui/settings.cpp:434 -msgid "Masterlist URL:" -msgstr "URL do Masterlisty:" - #: gui/settings.cpp:437 -msgid "Install Path:" -msgstr "Ścieżka Instalacyjna:" +msgid "Masterlist Repository URL:" +msgstr "URL do Bazy danych:" #: gui/settings.cpp:440 -msgid "Install Path Registry Key:" -msgstr "Klucz rejestru ścieżki instalacyjnej:" +#, fuzzy +msgid "Masterlist Repository Branch:" +msgstr "Brak Mastelisty" -#: backend/generators.h:80 +#: gui/settings.cpp:443 +msgid "Install Path:" +msgstr "Ścieżka instalacyjna:" + +#: gui/settings.cpp:446 +msgid "Install Path Registry Key:" +msgstr "Klucz rejestru śieżki instalacyjnej:" + +#: backend/generators.h:56 msgid "Note:" msgstr "Notatki:" -#: backend/generators.h:82 +#: backend/generators.h:58 msgid "Bash Tag Suggestion(s):" msgstr "Sugerowane tagi Bash:" -#: backend/generators.h:84 +#: backend/generators.h:60 msgid "Warning:" msgstr "Ostrzeżenie:" -#: backend/generators.h:86 +#: backend/generators.h:62 msgid "Error:" msgstr "Błąd:" -#: backend/generators.h:159 +#: backend/generators.h:129 +#, fuzzy msgid "BOSS Report" msgstr "Raport BOSS" -#: backend/generators.h:191 backend/generators.h:262 +#: backend/generators.h:155 backend/generators.h:218 +#, fuzzy msgid "Summary" msgstr "Podsumowanie" -#: backend/generators.h:197 +#: backend/generators.h:161 msgid "Details" msgstr "Szczegóły" -#: backend/generators.h:204 -msgid "Graph" -msgstr "Wykres" - -#: backend/generators.h:211 +#: backend/generators.h:167 msgid "Filters" msgstr "Filtry" -#: backend/generators.h:275 +#: backend/generators.h:231 msgid "BOSS Version" msgstr "Wersja BOSS" -#: backend/generators.h:284 +#: backend/generators.h:240 msgid "Masterlist Version" -msgstr "Wersja Masterlisty" +msgstr "Wersja Bazy Danych" -#: backend/generators.h:293 +#: backend/generators.h:249 msgid "Masterlist Updating" -msgstr "Aktualizacja Masterlisty" +msgstr "Aktualizacja Bazy Danych" -#: backend/generators.h:297 +#: backend/generators.h:253 msgid "Enabled" msgstr "Aktywny" -#: backend/generators.h:299 +#: backend/generators.h:255 msgid "Disabled" msgstr "Nieaktywny" -#: backend/generators.h:306 -msgid "No change in details since last run." -msgstr "Brak istotnych zmian od ostatniego uruchomienia" +#: backend/generators.h:264 +msgid "" +"There have been no changes in the Details tab since BOSS was last run for " +"this game." +msgstr "" +"Nie ma zmian w zakładce \"Szczegóły\" od ostantiego uruchomienia BOSS'a dla " +"tej gry." -#: backend/generators.h:316 +#: backend/generators.h:274 msgid "General Messages" msgstr "Ogólne wiadomości" -#: backend/generators.h:326 +#: backend/generators.h:284 msgid "Total Number of Messages" msgstr "Liczba wiadomości" -#: backend/generators.h:335 +#: backend/generators.h:293 msgid "Number of Warnings" msgstr "Liczba ostrzeżeń" -#: backend/generators.h:344 +#: backend/generators.h:302 msgid "Number of Errors" -msgstr "Niczba Błędów" +msgstr "Niczba błędów" -#: backend/generators.h:385 +#: backend/generators.h:343 +#, fuzzy msgid "Version:" msgstr "Wersja:" -#: backend/generators.h:405 +#: backend/generators.h:363 msgid "Add:" msgstr "Dodaj:" -#: backend/generators.h:411 +#: backend/generators.h:369 msgid "Remove:" msgstr "Usuń:" -#: backend/generators.h:419 +#: backend/generators.h:377 msgid "" "Contains %1% ITM records, %2% UDR records and %3% deleted navmeshes. Clean " "with %4%." msgstr "" -"Zawiera %1% wpisów ITM, %2% wpisów UDR oraz %3% usuniętych nasmesh. " +"Zawiera %1% wpisów ITM, %2% wpisów UDR oraz %3% usuniętych navmesh. " "Wyczyścić w %4%." -#: backend/generators.h:421 +#: backend/generators.h:379 +#, fuzzy msgid "Clean with %1%." msgstr "Wyczyść z %1%." -#: backend/generators.h:425 +#: backend/generators.h:383 +#, fuzzy msgid "Contains %1% UDR records and %2% deleted navmeshes. Clean with %3%." msgstr "Zawiera %1% wpisów UDR oraz %2% usuniętych navmesh. Wyczyść w %3%." -#: backend/generators.h:427 +#: backend/generators.h:385 +#, fuzzy msgid "Contains %1% deleted navmeshes. Clean with %2%." msgstr "Zawiera %1% usuniętych navmesh. Wyczyść w %2%." -#: backend/generators.h:429 +#: backend/generators.h:387 +#, fuzzy msgid "Contains %1% UDR records. Clean with %2%." msgstr "Zawiera %1% wpisów UDR. Wyczyść w %2%." -#: backend/generators.h:432 +#: backend/generators.h:390 +#, fuzzy msgid "Contains %1% ITM records and %2% deleted navmeshes. Clean with %3%." msgstr "Zawiera %1% wpisów ITM oraz %2% usuniętych navmesh. Wyczyść w %3%." -#: backend/generators.h:434 +#: backend/generators.h:392 +#, fuzzy msgid "Contains %1% ITM records. Clean with %2%." msgstr "Zawiera %1% wpisów ITM. Wyczyść w %2%." -#: backend/generators.h:437 +#: backend/generators.h:395 +#, fuzzy msgid "Contains %1% ITM records and %2% UDR records. Clean with %3%." msgstr "Zawiera %1% wpisów ITM oraz %2% wpisów UDR. Wyczyść w %3%." -#: backend/generators.h:474 +#: backend/generators.h:431 +#, fuzzy msgid "The BOSS Report requires Javascript to be enabled in order to function." msgstr "Raport BOSS wymaga włączonego Javascript do pracy." -#: backend/generators.h:521 +#: backend/generators.h:458 +#, fuzzy msgid "Hide Version Numbers" msgstr "Ukryj numer wersji" -#: backend/generators.h:530 +#: backend/generators.h:467 +#, fuzzy msgid "Hide CRCs" msgstr "Ukryj CRC" -#: backend/generators.h:539 +#: backend/generators.h:476 msgid "Hide Bash Tag Suggestions" -msgstr "Ukryj sugestie Tagów Bash" +msgstr "Ukryj sugestie tagów Bash" -#: backend/generators.h:547 +#: backend/generators.h:484 msgid "Hide Notes" -msgstr "Ukryj Notatki" +msgstr "Ukryj notatki" -#: backend/generators.h:555 +#: backend/generators.h:492 +#, fuzzy msgid "Hide 'Do Not Clean' Messages" -msgstr "Ukryj wiadomości 'Nie Czyścić'" +msgstr "Ukryj wiadomości \"Nie czyścić\"" -#: backend/generators.h:563 +#: backend/generators.h:500 +#, fuzzy msgid "Hide All Plugin Messages" msgstr "Ukryj wszystkie wiadomości wtyczek" -#: backend/generators.h:571 +#: backend/generators.h:508 +#, fuzzy msgid "Hide Messageless Plugins" -msgstr "Ukryj wtyczki bez wiadomości" +msgstr "Ukryj Wtyczki bez wiadomości" -#: backend/generators.h:581 +#: backend/generators.h:518 +#, fuzzy msgid "%1% of %2% plugins hidden." msgstr "%1% z %2% wtyczek ukrytych." -#: backend/generators.h:589 +#: backend/generators.h:526 +#, fuzzy msgid "%1% of %2% messages hidden." msgstr "%1% z %2% wiadomosci ukrytych." -#: backend/generators.h:631 -msgid "Could not write BOSS report." -msgstr "Nie można zapisać raportu BOSS." - -#: backend/parsers.h:466 backend/parsers.h:549 +#: backend/parsers.h:467 backend/parsers.h:550 +#, fuzzy msgid "Invalid file path:" msgstr "Nieprawidłowa ścieżka do pliku:" -#: backend/parsers.h:514 +#: backend/parsers.h:515 +#, fuzzy msgid "Invalid folder path:" -msgstr "Nieprawidłowa ścieżka do folderu:" +msgstr "Nieprawidłowa ścieźka do folderu:" -#: backend/parsers.h:531 +#: backend/parsers.h:532 +#, fuzzy msgid "Invalid regex string:" msgstr "Nieprawidłowy ciąg regex:" -#: backend/parsers.h:626 +#: backend/parsers.h:627 +#, fuzzy msgid "Expected \"%1%\" at \"%2%\"." msgstr "Oczekiwano \"%1%\" w \"%2%\"." + +#: gui/misc.h:35 +#, fuzzy +msgid "Note" +msgstr "Notatka" + +#: gui/misc.h:36 +#, fuzzy +msgid "Warning" +msgstr "Ostrzeżenie" + +#: gui/misc.h:37 +#, fuzzy +msgid "Error" +msgstr "Błąd" + +#: gui/misc.h:41 +#, fuzzy +msgid "Add" +msgstr "Dodaj" + +#: gui/misc.h:42 +#, fuzzy +msgid "Remove" +msgstr "Usuń" diff --git a/resources/l10n/pl/LC_MESSAGES/wxstd.po b/resources/l10n/pl/LC_MESSAGES/wxstd.po new file mode 100644 index 00000000..f2dcb824 --- /dev/null +++ b/resources/l10n/pl/LC_MESSAGES/wxstd.po @@ -0,0 +1,9155 @@ +msgid "" +msgstr "" +"Project-Id-Version: wxWidgets 3.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-08-23 18:18+0200\n" +"PO-Revision-Date: 2014-02-08 20:40-0000\n" +"Last-Translator: Grzegorz Zlotowicz \n" +"Language-Team: wxWidgets translators \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2;\n" +"X-Generator: Poedit 1.6.3\n" + +#: ../src/common/debugrpt.cpp:591 +msgid "" +"\n" +"Please send this report to the program maintainer, thank you!\n" +msgstr "" +"\n" +"Proszę przesłać ten raport do autora programu, dziękuję!\n" + +#: ../src/richtext/richtextstyledlg.cpp:210 +#: ../src/richtext/richtextstyledlg.cpp:222 +msgid " " +msgstr " " + +#: ../src/generic/dbgrptg.cpp:326 +msgid " Thank you and we're sorry for the inconvenience!\n" +msgstr " Dziękujemy i przepraszamy za niedogodności!\n" + +#: ../src/common/prntbase.cpp:546 +#, c-format +msgid " (copy %d of %d)" +msgstr " (kopia %d z %d)" + +#: ../src/common/log.cpp:427 +#, c-format +msgid " (error %ld: %s)" +msgstr " (błąd %ld: %s)" + +#: ../src/common/imagtiff.cpp:75 +#, c-format +msgid " (in module \"%s\")" +msgstr " (w module \"%s\")" + +#: ../src/common/docview.cpp:1625 +msgid " - " +msgstr " - " + +#: ../src/richtext/richtextprint.cpp:588 ../src/html/htmprint.cpp:704 +msgid " Preview" +msgstr " Podgląd" + +#: ../src/common/fontcmn.cpp:811 +msgid " bold" +msgstr "pogrubiony" + +#: ../src/common/fontcmn.cpp:827 +msgid " italic" +msgstr "kursywa" + +#: ../src/common/fontcmn.cpp:807 +msgid " light" +msgstr "lekki" + +#: ../src/common/paper.cpp:118 +msgid "#10 Envelope, 4 1/8 x 9 1/2 in" +msgstr "Koperta #10, 4 1/8 x 9 1/2 cali" + +#: ../src/common/paper.cpp:119 +msgid "#11 Envelope, 4 1/2 x 10 3/8 in" +msgstr "Koperta #11, 4 1/2 x 10 3/8 cali" + +#: ../src/common/paper.cpp:120 +msgid "#12 Envelope, 4 3/4 x 11 in" +msgstr "Koperta #12, 4 3/4 x 11 cali" + +#: ../src/common/paper.cpp:121 +msgid "#14 Envelope, 5 x 11 1/2 in" +msgstr "Koperta #14, 5 x 11 1/2 cali" + +#: ../src/common/paper.cpp:117 +msgid "#9 Envelope, 3 7/8 x 8 7/8 in" +msgstr "Koperta #9, 3 7/8 x 8 7/8 cali" + +#: ../src/html/helpwnd.cpp:1044 +#, c-format +msgid "%d of %lu" +msgstr "%d z %lu" + +#: ../src/html/helpwnd.cpp:1681 ../src/html/helpwnd.cpp:1719 +#, c-format +msgid "%i of %i" +msgstr "%i z %i" + +#: ../src/generic/filectrlg.cpp:315 +#, c-format +msgid "%ld byte" +msgid_plural "%ld bytes" +msgstr[0] "%ld bajt" +msgstr[1] "%ld bajty" +msgstr[2] "%ld bajtów" + +#: ../src/html/helpwnd.cpp:1046 +#, c-format +msgid "%lu of %lu" +msgstr "%lu z %lu" + +#: ../src/common/cmdline.cpp:1050 +#, c-format +msgid "%s (or %s)" +msgstr "%s (lub %s)" + +#: ../src/generic/logg.cpp:230 +#, c-format +msgid "%s Error" +msgstr "%s Błąd" + +#: ../src/generic/logg.cpp:242 +#, c-format +msgid "%s Information" +msgstr "%s Informacja" + +#: ../src/generic/preferencesg.cpp:110 +#, c-format +msgid "%s Preferences" +msgstr "Preferencje %s" + +#: ../src/generic/logg.cpp:234 +#, c-format +msgid "%s Warning" +msgstr "%s Ostrzeżenie" + +#: ../src/common/tarstrm.cpp:1319 +#, c-format +msgid "%s did not fit the tar header for entry '%s'" +msgstr "%s nie pasuje nagłówek tar do wpisu '%s'" + +#: ../src/common/fldlgcmn.cpp:106 +#, c-format +msgid "%s files (%s)|%s" +msgstr "%s pliki (%s)|%s" + +#: ../src/common/stockitem.cpp:139 ../src/html/helpfrm.cpp:142 +#: ../src/html/helpfrm.cpp:144 +msgid "&About" +msgstr "Inform&acje" + +#: ../src/common/stockitem.cpp:207 +msgid "&Actual Size" +msgstr "&Bieżący rozmiar" + +#: ../src/richtext/richtextindentspage.cpp:262 +msgid "&After a paragraph:" +msgstr "&Po paragrafie:" + +#: ../src/richtext/richtextindentspage.cpp:128 +#: ../src/richtext/richtextliststylepage.cpp:319 +msgid "&Alignment" +msgstr "&Wyrównanie" + +#: ../src/common/stockitem.cpp:141 +msgid "&Apply" +msgstr "Z&astosuj" + +#: ../src/richtext/richtextstyledlg.cpp:251 +msgid "&Apply Style" +msgstr "Z&astosuj styl" + +#: ../src/msw/mdi.cpp:175 +msgid "&Arrange Icons" +msgstr "&Rozmieść ikony" + +#: ../src/common/stockitem.cpp:195 +msgid "&Ascending" +msgstr "&Rosnąco" + +#: ../src/common/stockitem.cpp:142 +msgid "&Back" +msgstr "&Wstecz" + +#: ../src/richtext/richtextstylepage.cpp:113 +msgid "&Based on:" +msgstr "&Na podstawie:" + +#: ../src/richtext/richtextindentspage.cpp:253 +msgid "&Before a paragraph:" +msgstr "&Przed paragrafem:" + +#: ../src/richtext/richtextfontpage.cpp:271 +msgid "&Bg colour:" +msgstr "Kolor &tła:" + +#: ../src/common/stockitem.cpp:143 +msgid "&Bold" +msgstr "Pogru&biony" + +#: ../src/common/stockitem.cpp:144 +msgid "&Bottom" +msgstr "&Dolny" + +#: ../src/richtext/richtextborderspage.cpp:359 +#: ../src/richtext/richtextborderspage.cpp:503 +#: ../src/richtext/richtextmarginspage.cpp:260 +#: ../src/richtext/richtextmarginspage.cpp:374 +#: ../src/richtext/richtextsizepage.cpp:634 +#: ../src/richtext/richtextsizepage.cpp:641 +msgid "&Bottom:" +msgstr "&Dolny:" + +#: ../include/wx/richtext/richtextbuffer.h:3523 +msgid "&Box" +msgstr "&Blok" + +#: ../src/richtext/richtextliststylepage.cpp:210 +#: ../src/richtext/richtextbulletspage.cpp:159 +msgid "&Bullet style:" +msgstr "&Styl wypunktowania:" + +#: ../src/common/stockitem.cpp:146 +msgid "&CD-Rom" +msgstr "&CD-Rom" + +#: ../src/generic/wizard.cpp:432 ../src/generic/fontdlgg.cpp:470 +#: ../src/generic/fontdlgg.cpp:489 ../src/osx/carbon/fontdlg.cpp:588 +#: ../src/common/stockitem.cpp:145 +msgid "&Cancel" +msgstr "&Anuluj" + +#: ../src/msw/mdi.cpp:171 +msgid "&Cascade" +msgstr "&Kaskada" + +#: ../include/wx/richtext/richtextbuffer.h:5578 +msgid "&Cell" +msgstr "&Komórka" + +#: ../src/richtext/richtextsymboldlg.cpp:439 +msgid "&Character code:" +msgstr "&Kod znaku:" + +#: ../src/common/stockitem.cpp:147 +msgid "&Clear" +msgstr "Wy&czyść" + +#: ../src/generic/logg.cpp:522 ../src/common/stockitem.cpp:148 +#: ../src/common/prntbase.cpp:1570 ../src/univ/themes/win32.cpp:3756 +#: ../src/html/helpfrm.cpp:139 +msgid "&Close" +msgstr "Zam&knij" + +#: ../src/common/stockitem.cpp:193 +#, fuzzy +msgid "&Color" +msgstr "K&olor:" + +#: ../src/richtext/richtextfontpage.cpp:258 +msgid "&Colour:" +msgstr "K&olor:" + +#: ../src/common/stockitem.cpp:149 +msgid "&Convert" +msgstr "&Konwertuj" + +#: ../src/richtext/richtextctrl.cpp:326 ../src/osx/textctrl_osx.cpp:583 +#: ../src/common/stockitem.cpp:150 ../src/msw/textctrl.cpp:2284 +msgid "&Copy" +msgstr "&Kopiuj" + +#: ../src/generic/hyperlinkg.cpp:156 +msgid "&Copy URL" +msgstr "&Kopiuj URL" + +#: ../src/common/headerctrlcmn.cpp:328 +msgid "&Customize..." +msgstr "&Dostosuj..." + +#: ../src/generic/dbgrptg.cpp:334 +msgid "&Debug report preview:" +msgstr "Po&dgląd raportu błędów:" + +#: ../src/richtext/richtexttabspage.cpp:142 +#: ../src/richtext/richtextctrl.cpp:328 ../src/osx/textctrl_osx.cpp:585 +#: ../src/common/stockitem.cpp:152 ../src/msw/textctrl.cpp:2286 +msgid "&Delete" +msgstr "&Usuń" + +#: ../src/richtext/richtextstyledlg.cpp:269 +msgid "&Delete Style..." +msgstr "&Usuń styl..." + +#: ../src/common/stockitem.cpp:196 +msgid "&Descending" +msgstr "&Malejąco" + +#: ../src/generic/logg.cpp:688 +msgid "&Details" +msgstr "&Szczegóły" + +#: ../src/common/stockitem.cpp:153 +msgid "&Down" +msgstr "W &dół" + +#: ../src/common/stockitem.cpp:154 +msgid "&Edit" +msgstr "&Edytuj" + +#: ../src/richtext/richtextstyledlg.cpp:263 +msgid "&Edit Style..." +msgstr "&Edytuj styl..." + +#: ../src/common/stockitem.cpp:155 +msgid "&Execute" +msgstr "&Uruchom" + +#: ../src/common/stockitem.cpp:157 ../src/html/helpfrm.cpp:146 +msgid "&File" +msgstr "&Plik" + +#: ../src/common/stockitem.cpp:158 +msgid "&Find" +msgstr "&Znajdź" + +#: ../src/generic/wizard.cpp:626 +msgid "&Finish" +msgstr "Za&kończ" + +#: ../src/common/stockitem.cpp:159 +#, fuzzy +msgid "&First" +msgstr "pierwszy" + +#: ../src/richtext/richtextsizepage.cpp:241 +msgid "&Floating mode:" +msgstr "Tryb &ruchomy:" + +#: ../src/common/stockitem.cpp:160 +msgid "&Floppy" +msgstr "&Dyskietka" + +#: ../src/common/stockitem.cpp:194 +#, fuzzy +msgid "&Font" +msgstr "&Czcionka:" + +#: ../src/generic/fontdlgg.cpp:371 +msgid "&Font family:" +msgstr "&Rozmiar czcionki:" + +#: ../src/richtext/richtextliststylepage.cpp:194 +msgid "&Font for Level..." +msgstr "&Czcionka dla poziomu..." + +#: ../src/richtext/richtextfontpage.cpp:156 +#: ../src/richtext/richtextsymboldlg.cpp:400 +msgid "&Font:" +msgstr "&Czcionka:" + +#: ../src/common/stockitem.cpp:161 +msgid "&Forward" +msgstr "&Dalej" + +#: ../src/richtext/richtextsymboldlg.cpp:451 +msgid "&From:" +msgstr "&Od:" + +#: ../src/common/stockitem.cpp:162 +msgid "&Harddisk" +msgstr "&Dysk twardy" + +#: ../src/richtext/richtextsizepage.cpp:348 +#: ../src/richtext/richtextsizepage.cpp:355 +msgid "&Height:" +msgstr "&Wysokość:" + +#: ../src/generic/wizard.cpp:435 ../src/richtext/richtextstyledlg.cpp:303 +#: ../src/richtext/richtextsymboldlg.cpp:479 ../src/osx/menu_osx.cpp:785 +#: ../src/common/stockitem.cpp:163 ../src/html/helpfrm.cpp:147 +msgid "&Help" +msgstr "&Pomoc" + +#: ../include/wx/richmsgdlg.h:30 +msgid "&Hide details" +msgstr "&Ukryj szczegóły" + +#: ../src/common/stockitem.cpp:164 +msgid "&Home" +msgstr "&Początek" + +#: ../src/richtext/richtextindentspage.cpp:184 +#: ../src/richtext/richtextliststylepage.cpp:372 +msgid "&Indentation (tenths of a mm)" +msgstr "&Wcięcia (w dziesiątych częściach mm)" + +#: ../src/richtext/richtextindentspage.cpp:167 +#: ../src/richtext/richtextliststylepage.cpp:356 +msgid "&Indeterminate" +msgstr "&Nieokreślony" + +#: ../src/common/stockitem.cpp:166 +msgid "&Index" +msgstr "&Indeks" + +#: ../src/common/stockitem.cpp:167 +msgid "&Info" +msgstr "&Info" + +#: ../src/common/stockitem.cpp:168 +msgid "&Italic" +msgstr "&Kursywa" + +#: ../src/common/stockitem.cpp:169 +msgid "&Jump to" +msgstr "&Skocz do" + +#: ../src/richtext/richtextindentspage.cpp:153 +#: ../src/richtext/richtextliststylepage.cpp:342 +msgid "&Justified" +msgstr "&Wyrównanie obustronne" + +#: ../src/common/stockitem.cpp:174 +msgid "&Last" +msgstr "&Ostatni" + +#: ../src/richtext/richtextindentspage.cpp:139 +#: ../src/richtext/richtextliststylepage.cpp:328 +msgid "&Left" +msgstr "&Lewy" + +#: ../src/richtext/richtextindentspage.cpp:195 +#: ../src/richtext/richtextborderspage.cpp:269 +#: ../src/richtext/richtextborderspage.cpp:413 +#: ../src/richtext/richtextliststylepage.cpp:381 +#: ../src/richtext/richtextmarginspage.cpp:187 +#: ../src/richtext/richtextmarginspage.cpp:301 +#: ../src/richtext/richtextsizepage.cpp:529 +#: ../src/richtext/richtextsizepage.cpp:536 +msgid "&Left:" +msgstr "&Lewy:" + +#: ../src/richtext/richtextliststylepage.cpp:183 +msgid "&List level:" +msgstr "Poziom &listy:" + +#: ../src/generic/logg.cpp:523 +msgid "&Log" +msgstr "&Dziennik" + +#: ../src/univ/themes/win32.cpp:3748 +msgid "&Move" +msgstr "Prz&enieś" + +#: ../src/richtext/richtextsizepage.cpp:669 +msgid "&Move the object to:" +msgstr "&Przenieś obiekt do:" + +#: ../src/common/stockitem.cpp:175 +msgid "&Network" +msgstr "&Sieć" + +#: ../src/richtext/richtexttabspage.cpp:136 ../src/common/stockitem.cpp:176 +msgid "&New" +msgstr "&Nowy" + +#: ../src/aui/tabmdi.cpp:111 ../src/generic/mdig.cpp:100 +#: ../src/msw/mdi.cpp:176 +msgid "&Next" +msgstr "&Następne" + +#: ../src/generic/wizard.cpp:431 ../src/generic/wizard.cpp:626 +msgid "&Next >" +msgstr "&Dalej >" + +#: ../src/richtext/richtextsizepage.cpp:678 +msgid "&Next Paragraph" +msgstr "&Następny akapit" + +#: ../src/generic/tipdlg.cpp:276 +msgid "&Next Tip" +msgstr "&Następna porada" + +#: ../src/richtext/richtextstylepage.cpp:123 +msgid "&Next style:" +msgstr "&Następny styl:" + +#: ../src/common/stockitem.cpp:177 ../src/msw/msgdlg.cpp:476 +msgid "&No" +msgstr "&Nie" + +#: ../src/generic/dbgrptg.cpp:356 +msgid "&Notes:" +msgstr "&Uwagi:" + +#: ../src/richtext/richtextbulletspage.cpp:264 +msgid "&Number:" +msgstr "&Numer:" + +#: ../src/generic/fontdlgg.cpp:475 ../src/generic/fontdlgg.cpp:482 +#: ../src/osx/carbon/fontdlg.cpp:594 ../src/common/stockitem.cpp:178 +msgid "&OK" +msgstr "&OK" + +#: ../src/generic/dbgrptg.cpp:342 ../src/common/stockitem.cpp:179 +#: ../src/html/helpfrm.cpp:137 +msgid "&Open..." +msgstr "&Otwórz..." + +#: ../src/richtext/richtextindentspage.cpp:222 +msgid "&Outline level:" +msgstr "Poziom &kontur:" + +#: ../src/richtext/richtextindentspage.cpp:293 +msgid "&Page Break" +msgstr "&Podział strony" + +#: ../src/richtext/richtextctrl.cpp:327 ../src/osx/textctrl_osx.cpp:584 +#: ../src/common/stockitem.cpp:180 ../src/msw/textctrl.cpp:2285 +msgid "&Paste" +msgstr "Wkl&ej" + +#: ../include/wx/richtext/richtextbuffer.h:4648 +msgid "&Picture" +msgstr "&Obraz" + +#: ../src/generic/fontdlgg.cpp:422 +msgid "&Point size:" +msgstr "&Rozmiar punktu:" + +#: ../src/richtext/richtexttabspage.cpp:114 +msgid "&Position (tenths of a mm):" +msgstr "&Pozycja (w dziesiątych częściach mm):" + +#: ../src/richtext/richtextsizepage.cpp:511 +msgid "&Position mode:" +msgstr "&Tryb pozycji:" + +#: ../src/common/stockitem.cpp:181 +msgid "&Preferences" +msgstr "&Preferencje" + +#: ../src/aui/tabmdi.cpp:112 ../src/generic/mdig.cpp:101 +#: ../src/msw/mdi.cpp:177 +msgid "&Previous" +msgstr "&Poprzednie" + +#: ../src/richtext/richtextsizepage.cpp:672 +msgid "&Previous Paragraph" +msgstr "&Poprzedni akapit" + +#: ../src/common/stockitem.cpp:183 +msgid "&Print..." +msgstr "&Drukuj..." + +#: ../src/richtext/richtextctrl.cpp:332 ../src/richtext/richtextctrl.cpp:4922 +#: ../src/common/stockitem.cpp:184 +msgid "&Properties" +msgstr "&Właściwości" + +#: ../src/common/stockitem.cpp:156 +msgid "&Quit" +msgstr "&Wyjście" + +#: ../src/richtext/richtextctrl.cpp:323 ../src/osx/textctrl_osx.cpp:580 +#: ../src/common/stockitem.cpp:185 ../src/common/cmdproc.cpp:293 +#: ../src/common/cmdproc.cpp:300 ../src/msw/textctrl.cpp:2281 +msgid "&Redo" +msgstr "&Ponów" + +#: ../src/common/cmdproc.cpp:289 ../src/common/cmdproc.cpp:309 +msgid "&Redo " +msgstr "&Ponów " + +#: ../src/richtext/richtextstyledlg.cpp:257 +msgid "&Rename Style..." +msgstr "&Zmień nazwę stylu..." + +#: ../src/generic/fdrepdlg.cpp:179 +msgid "&Replace" +msgstr "&Zastąp" + +#: ../src/richtext/richtextstyledlg.cpp:287 +msgid "&Restart numbering" +msgstr "&Ponowienie numeracji" + +#: ../src/univ/themes/win32.cpp:3747 +msgid "&Restore" +msgstr "&Przywróć" + +#: ../src/richtext/richtextindentspage.cpp:146 +#: ../src/richtext/richtextliststylepage.cpp:335 +msgid "&Right" +msgstr "&Prawy" + +#: ../src/richtext/richtextindentspage.cpp:213 +#: ../src/richtext/richtextborderspage.cpp:299 +#: ../src/richtext/richtextborderspage.cpp:443 +#: ../src/richtext/richtextliststylepage.cpp:399 +#: ../src/richtext/richtextmarginspage.cpp:212 +#: ../src/richtext/richtextmarginspage.cpp:326 +#: ../src/richtext/richtextsizepage.cpp:599 +#: ../src/richtext/richtextsizepage.cpp:606 +msgid "&Right:" +msgstr "&Prawy:" + +#: ../src/common/stockitem.cpp:190 +msgid "&Save" +msgstr "Zapi&sz" + +#: ../src/common/stockitem.cpp:191 +msgid "&Save as" +msgstr "Zapisz &Jako" + +#: ../include/wx/richmsgdlg.h:29 +msgid "&See details" +msgstr "&Zobacz szczegóły" + +#: ../src/generic/tipdlg.cpp:270 +msgid "&Show tips at startup" +msgstr "&Pokazuj porady przy uruchamianiu" + +#: ../src/univ/themes/win32.cpp:3750 +msgid "&Size" +msgstr "&Rozmiar" + +#: ../src/richtext/richtextfontpage.cpp:168 +msgid "&Size:" +msgstr "&Rozmiar:" + +#: ../src/generic/progdlgg.cpp:282 +msgid "&Skip" +msgstr "&Pomiń" + +#: ../src/richtext/richtextindentspage.cpp:242 +#: ../src/richtext/richtextliststylepage.cpp:417 +msgid "&Spacing (tenths of a mm)" +msgstr "&Odstępy (w dziesiątych częściach mm)" + +#: ../src/common/stockitem.cpp:197 +msgid "&Spell Check" +msgstr "&Sprawdzanie pisowni" + +#: ../src/common/stockitem.cpp:198 +msgid "&Stop" +msgstr "&Stop" + +#: ../src/richtext/richtextfontpage.cpp:284 ../src/common/stockitem.cpp:199 +msgid "&Strikethrough" +msgstr "&Przekreślenie" + +#: ../src/generic/fontdlgg.cpp:382 ../src/richtext/richtextstylepage.cpp:104 +msgid "&Style:" +msgstr "&Styl:" + +#: ../src/richtext/richtextstyledlg.cpp:198 +msgid "&Styles:" +msgstr "&Style:" + +#: ../src/richtext/richtextsymboldlg.cpp:413 +msgid "&Subset:" +msgstr "&Podzbiór:" + +#: ../src/richtext/richtextliststylepage.cpp:268 +#: ../src/richtext/richtextbulletspage.cpp:222 +msgid "&Symbol:" +msgstr "&Symbol:" + +#: ../include/wx/richtext/richtextbuffer.h:5668 +msgid "&Table" +msgstr "&Tabela" + +#: ../src/common/stockitem.cpp:200 +msgid "&Top" +msgstr "&Góra" + +#: ../src/richtext/richtextborderspage.cpp:329 +#: ../src/richtext/richtextborderspage.cpp:473 +#: ../src/richtext/richtextmarginspage.cpp:235 +#: ../src/richtext/richtextmarginspage.cpp:349 +#: ../src/richtext/richtextsizepage.cpp:564 +#: ../src/richtext/richtextsizepage.cpp:571 +msgid "&Top:" +msgstr "&Góra:" + +#: ../src/generic/fontdlgg.cpp:444 ../src/common/stockitem.cpp:202 +msgid "&Underline" +msgstr "&Podkreślony" + +#: ../src/richtext/richtextfontpage.cpp:243 +msgid "&Underlining:" +msgstr "&Podkreślenie:" + +#: ../src/richtext/richtextctrl.cpp:322 ../src/osx/textctrl_osx.cpp:579 +#: ../src/common/stockitem.cpp:203 ../src/common/cmdproc.cpp:271 +#: ../src/msw/textctrl.cpp:2280 +msgid "&Undo" +msgstr "&Cofnij" + +#: ../src/common/cmdproc.cpp:265 +msgid "&Undo " +msgstr "&Cofnij " + +#: ../src/common/stockitem.cpp:204 +msgid "&Unindent" +msgstr "&Cofnij wcięcie" + +#: ../src/common/stockitem.cpp:205 +msgid "&Up" +msgstr "&W górę" + +#: ../src/richtext/richtextsizepage.cpp:275 +msgid "&Vertical alignment:" +msgstr "&Wyrównanie pionowe:" + +#: ../src/generic/dbgrptg.cpp:340 +msgid "&View..." +msgstr "&Widok..." + +#: ../src/generic/fontdlgg.cpp:393 +msgid "&Weight:" +msgstr "&Waga" + +#: ../src/richtext/richtextsizepage.cpp:314 +#: ../src/richtext/richtextsizepage.cpp:321 +msgid "&Width:" +msgstr "&Szerokość:" + +#: ../src/aui/tabmdi.cpp:311 ../src/aui/tabmdi.cpp:327 +#: ../src/aui/tabmdi.cpp:329 ../src/generic/mdig.cpp:294 +#: ../src/generic/mdig.cpp:310 ../src/generic/mdig.cpp:314 +#: ../src/msw/mdi.cpp:77 +msgid "&Window" +msgstr "&Okno" + +#: ../src/common/stockitem.cpp:206 ../src/msw/msgdlg.cpp:476 +msgid "&Yes" +msgstr "&Tak" + +#: ../src/common/config.cpp:523 ../src/msw/regconf.cpp:258 +#, c-format +msgid "'%s' has extra '..', ignored." +msgstr "'%s' ma nadmiarowe '..', zignorowane." + +#: ../src/common/valtext.cpp:249 ../src/common/valtext.cpp:251 +#: ../src/common/valtext.cpp:253 ../src/common/valtext.cpp:255 +#, c-format +msgid "'%s' is invalid" +msgstr "'%s' jest nieprawidłowy" + +#: ../src/common/cmdline.cpp:948 ../src/common/cmdline.cpp:966 +#, c-format +msgid "'%s' is not a correct numeric value for option '%s'." +msgstr "'%s' nie jest poprawną wartością numeryczną opcji '%s'." + +#: ../src/common/translation.cpp:1086 +#, c-format +msgid "'%s' is not a valid message catalog." +msgstr "'%s' nie jest prawidłowym katalogiem komunikatów." + +#: ../src/common/textbuf.cpp:239 +#, c-format +msgid "'%s' is probably a binary buffer." +msgstr "'%s' jest prawdopodobnie buforem binarnym." + +#: ../src/common/valtext.cpp:247 +#, c-format +msgid "'%s' should be numeric." +msgstr "'%s' powinno być numeryczne." + +#: ../src/common/valtext.cpp:239 +#, c-format +msgid "'%s' should only contain ASCII characters." +msgstr "'%s' powinien zawierać tylko znaki ASCII." + +#: ../src/common/valtext.cpp:241 +#, c-format +msgid "'%s' should only contain alphabetic characters." +msgstr "'%s' powinien zawierać tylko wartości znakowe." + +#: ../src/common/valtext.cpp:243 +#, c-format +msgid "'%s' should only contain alphabetic or numeric characters." +msgstr "'%s' powinien zawierać tylko wartości znakowe lub numeryczne." + +#: ../src/common/valtext.cpp:245 +#, c-format +msgid "'%s' should only contain digits." +msgstr "'%s' powinien zawierać tylko cyfry." + +#: ../src/richtext/richtextliststylepage.cpp:229 +#: ../src/richtext/richtextbulletspage.cpp:179 +msgid "(*)" +msgstr "(*)" + +#: ../src/html/helpwnd.cpp:976 +msgid "(Help)" +msgstr "(Pomoc)" + +#: ../src/richtext/richtextliststylepage.cpp:481 +#: ../src/richtext/richtextbulletspage.cpp:286 +msgid "(None)" +msgstr "(Brak)" + +#: ../src/richtext/richtextsymboldlg.cpp:504 +msgid "(Normal text)" +msgstr "(Normalny tekst)" + +#: ../src/html/helpwnd.cpp:426 ../src/html/helpwnd.cpp:1119 +#: ../src/html/helpwnd.cpp:1745 +msgid "(bookmarks)" +msgstr "(zakładki)" + +#: ../src/richtext/richtextindentspage.cpp:274 +#: ../src/richtext/richtextindentspage.cpp:286 +#: ../src/richtext/richtextindentspage.cpp:287 +#: ../src/richtext/richtextindentspage.cpp:311 +#: ../src/richtext/richtextindentspage.cpp:326 +#: ../src/richtext/richtextformatdlg.cpp:829 +#: ../src/richtext/richtextfontpage.cpp:331 +#: ../src/richtext/richtextfontpage.cpp:335 +#: ../src/richtext/richtextfontpage.cpp:339 +#: ../src/richtext/richtextliststylepage.cpp:448 +#: ../src/richtext/richtextliststylepage.cpp:460 +#: ../src/richtext/richtextliststylepage.cpp:461 +msgid "(none)" +msgstr "(beznazwy)" + +#: ../src/richtext/richtextliststylepage.cpp:492 +#: ../src/richtext/richtextbulletspage.cpp:297 +msgid "*" +msgstr "*" + +#: ../src/richtext/richtextliststylepage.cpp:236 +#: ../src/richtext/richtextbulletspage.cpp:186 +msgid "*)" +msgstr "*)" + +#: ../src/richtext/richtextliststylepage.cpp:495 +#: ../src/richtext/richtextbulletspage.cpp:300 +msgid "+" +msgstr "+" + +#: ../src/msw/utils.cpp:1324 +msgid ", 64-bit edition" +msgstr ", wydanie 64-bitowe" + +#: ../src/richtext/richtextliststylepage.cpp:493 +#: ../src/richtext/richtextbulletspage.cpp:298 +msgid "-" +msgstr "-" + +#: ../src/generic/filepickerg.cpp:66 +msgid "..." +msgstr "..." + +#: ../src/richtext/richtextindentspage.cpp:276 +#: ../src/richtext/richtextliststylepage.cpp:450 +msgid "1.1" +msgstr "1.1" + +#: ../src/richtext/richtextindentspage.cpp:277 +#: ../src/richtext/richtextliststylepage.cpp:451 +msgid "1.2" +msgstr "1.2" + +#: ../src/richtext/richtextindentspage.cpp:278 +#: ../src/richtext/richtextliststylepage.cpp:452 +msgid "1.3" +msgstr "1.3" + +#: ../src/richtext/richtextindentspage.cpp:279 +#: ../src/richtext/richtextliststylepage.cpp:453 +msgid "1.4" +msgstr "1.4" + +#: ../src/richtext/richtextindentspage.cpp:280 +#: ../src/richtext/richtextliststylepage.cpp:454 +msgid "1.5" +msgstr "1.5" + +#: ../src/richtext/richtextindentspage.cpp:281 +#: ../src/richtext/richtextliststylepage.cpp:455 +msgid "1.6" +msgstr "1.6" + +#: ../src/richtext/richtextindentspage.cpp:282 +#: ../src/richtext/richtextliststylepage.cpp:456 +msgid "1.7" +msgstr "1.7" + +#: ../src/richtext/richtextindentspage.cpp:283 +#: ../src/richtext/richtextliststylepage.cpp:457 +msgid "1.8" +msgstr "1.8" + +#: ../src/richtext/richtextindentspage.cpp:284 +#: ../src/richtext/richtextliststylepage.cpp:458 +msgid "1.9" +msgstr "1.9" + +#: ../src/common/paper.cpp:141 +msgid "10 x 11 in" +msgstr "10 x 11 cali" + +#: ../src/common/paper.cpp:114 +msgid "10 x 14 in" +msgstr "10 x 14 cali" + +#: ../src/common/paper.cpp:115 +msgid "11 x 17 in" +msgstr "11 x 17 cali" + +#: ../src/common/paper.cpp:185 +msgid "12 x 11 in" +msgstr "12 x 11 cali" + +#: ../src/common/paper.cpp:142 +msgid "15 x 11 in" +msgstr "15 x 11 cali" + +#: ../src/richtext/richtextindentspage.cpp:285 +#: ../src/richtext/richtextliststylepage.cpp:459 +msgid "2" +msgstr "2" + +#: ../src/common/paper.cpp:133 +msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in" +msgstr "Koperta 6 3/4, 3 5/8 x 6 1/2 cali" + +#: ../src/common/paper.cpp:140 +msgid "9 x 11 in" +msgstr "9 x 11 cali" + +#: ../src/html/htmprint.cpp:431 +msgid ": file does not exist!" +msgstr ": plik nie istnieje!" + +#: ../src/common/fontmap.cpp:199 +msgid ": unknown charset" +msgstr ": nieznany zestaw znaków" + +#: ../src/common/fontmap.cpp:413 +msgid ": unknown encoding" +msgstr ": nieznane kodowanie" + +#: ../src/generic/wizard.cpp:437 +msgid "< &Back" +msgstr "< &Wstecz" + +#: ../src/osx/carbon/fontdlg.cpp:608 ../src/osx/carbon/fontdlg.cpp:815 +#: ../src/osx/carbon/fontdlg.cpp:835 +msgid "" +msgstr "" + +#: ../src/osx/carbon/fontdlg.cpp:609 ../src/osx/carbon/fontdlg.cpp:817 +#: ../src/osx/carbon/fontdlg.cpp:837 +msgid "" +msgstr "" + +#: ../src/osx/carbon/fontdlg.cpp:607 ../src/osx/carbon/fontdlg.cpp:813 +#: ../src/osx/carbon/fontdlg.cpp:833 +msgid "" +msgstr "" + +#: ../src/osx/carbon/fontdlg.cpp:610 ../src/osx/carbon/fontdlg.cpp:819 +#: ../src/osx/carbon/fontdlg.cpp:839 +msgid "" +msgstr "" + +#: ../src/osx/carbon/fontdlg.cpp:611 ../src/osx/carbon/fontdlg.cpp:824 +#: ../src/osx/carbon/fontdlg.cpp:843 +msgid "" +msgstr "" + +#: ../src/osx/carbon/fontdlg.cpp:612 ../src/osx/carbon/fontdlg.cpp:821 +#: ../src/osx/carbon/fontdlg.cpp:841 +msgid "" +msgstr "" + +#: ../src/osx/carbon/fontdlg.cpp:606 +msgid "" +msgstr "" + +#: ../src/generic/filectrlg.cpp:286 ../src/generic/filectrlg.cpp:309 +msgid "" +msgstr "" + +#: ../src/generic/filectrlg.cpp:290 ../src/generic/filectrlg.cpp:313 +msgid "" +msgstr "" + +#: ../src/generic/filectrlg.cpp:288 ../src/generic/filectrlg.cpp:311 +msgid "" +msgstr "<ŁĄCZE>" + +#: ../src/html/helpwnd.cpp:1279 +msgid "Bold italic face.
    " +msgstr "Pogrubiona kursywa.
    " + +#: ../src/html/helpwnd.cpp:1283 +msgid "bold italic underlined
    " +msgstr "pogrubiona kursywa z podkreśleniem
    " + +#: ../src/html/helpwnd.cpp:1278 +msgid "Bold face. " +msgstr "Pogrubienie. " + +#: ../src/html/helpwnd.cpp:1277 +msgid "Italic face. " +msgstr "Kursywa. " + +#: ../src/richtext/richtextliststylepage.cpp:494 +#: ../src/richtext/richtextbulletspage.cpp:299 +msgid ">" +msgstr ">" + +#: ../src/generic/dbgrptg.cpp:318 +msgid "A debug report has been generated in the directory\n" +msgstr "Raport błędów został wygenerowany w katalogu\n" + +#: ../src/common/debugrpt.cpp:578 +msgid "A debug report has been generated. It can be found in" +msgstr "Raport błędów został wygenerowany. Znajduje się w" + +#: ../src/common/xtixml.cpp:418 +msgid "A non empty collection must consist of 'element' nodes" +msgstr "Nie pusta kolekcja musi składać się z węzłów typu 'element'" + +#: ../src/richtext/richtextliststylepage.cpp:304 +#: ../src/richtext/richtextliststylepage.cpp:306 +#: ../src/richtext/richtextbulletspage.cpp:257 +#: ../src/richtext/richtextbulletspage.cpp:259 +msgid "A standard bullet name." +msgstr "Standardowa nazwa wypunktowania." + +#: ../src/common/paper.cpp:218 +msgid "A0 sheet, 841 x 1189 mm" +msgstr "Arkusz A0, 841 x 1189 mm" + +#: ../src/common/paper.cpp:219 +msgid "A1 sheet, 594 x 841 mm" +msgstr "Arkusz A1, 594 x 841 mm" + +#: ../src/common/paper.cpp:160 +msgid "A2 420 x 594 mm" +msgstr "A2 420 x 594 mm" + +#: ../src/common/paper.cpp:157 +msgid "A3 Extra 322 x 445 mm" +msgstr "A3 Extra 322 x 445 mm" + +#: ../src/common/paper.cpp:162 +msgid "A3 Extra Transverse 322 x 445 mm" +msgstr "A3 Extra Poprzecznie 322 x 445 mm" + +#: ../src/common/paper.cpp:171 +msgid "A3 Rotated 420 x 297 mm" +msgstr "A3 Obrócone 420 x 297 mm" + +#: ../src/common/paper.cpp:161 +msgid "A3 Transverse 297 x 420 mm" +msgstr "A3 Poprzecznie 297 x 420 mm" + +#: ../src/common/paper.cpp:107 +msgid "A3 sheet, 297 x 420 mm" +msgstr "Arkusz A3, 297 x 420 mm" + +#: ../src/common/paper.cpp:147 +msgid "A4 Extra 9.27 x 12.69 in" +msgstr "A4 Extra 9.27 x 12.69 cali" + +#: ../src/common/paper.cpp:154 +msgid "A4 Plus 210 x 330 mm" +msgstr "A4 Plus 210 x 330 mm" + +#: ../src/common/paper.cpp:172 +msgid "A4 Rotated 297 x 210 mm" +msgstr "A4 Obrócone 297 x 210 mm" + +#: ../src/common/paper.cpp:149 +msgid "A4 Transverse 210 x 297 mm" +msgstr "A4 Poprzecznie 210 x 297 mm" + +#: ../src/common/paper.cpp:98 +msgid "A4 sheet, 210 x 297 mm" +msgstr "Arkusz A4, 210 x 297 mm" + +#: ../src/common/paper.cpp:108 +msgid "A4 small sheet, 210 x 297 mm" +msgstr "Mały arkusz A4, 210 x 297 mm" + +#: ../src/common/paper.cpp:158 +msgid "A5 Extra 174 x 235 mm" +msgstr "A5 Extra 174 x 235 mm" + +#: ../src/common/paper.cpp:173 +msgid "A5 Rotated 210 x 148 mm" +msgstr "A5 Obrócone 210 x 148 mm" + +#: ../src/common/paper.cpp:155 +msgid "A5 Transverse 148 x 210 mm" +msgstr "A5 Poprzecznie 148 x 210 mm" + +#: ../src/common/paper.cpp:109 +msgid "A5 sheet, 148 x 210 mm" +msgstr "Arkusz A5, 148 x 210 mm" + +#: ../src/common/paper.cpp:165 +msgid "A6 105 x 148 mm" +msgstr "A6 105 x 148 mm" + +#: ../src/common/paper.cpp:178 +msgid "A6 Rotated 148 x 105 mm" +msgstr "A6 Obrócone 148 x 105 mm" + +#: ../src/generic/fontdlgg.cpp:83 ../src/richtext/richtextformatdlg.cpp:526 +#: ../src/osx/carbon/fontdlg.cpp:339 +msgid "ABCDEFGabcdefg12345" +msgstr "ABCDEFGabcdefg12345" + +#: ../src/common/accelcmn.cpp:76 +msgid "ADD" +msgstr "DODAJ" + +#: ../src/richtext/richtextsymboldlg.cpp:458 ../src/common/ftp.cpp:405 +msgid "ASCII" +msgstr "ASCII" + +#: ../src/osx/menu_osx.cpp:630 ../src/common/stockitem.cpp:139 +#, fuzzy +msgid "About" +msgstr "Inform&acje" + +#: ../src/generic/aboutdlgg.cpp:140 ../src/msw/aboutdlg.cpp:64 +#, c-format +msgid "About %s" +msgstr "O %s" + +#: ../src/richtext/richtextsizepage.cpp:517 +msgid "Absolute" +msgstr "Absolutne" + +#: ../src/common/stockitem.cpp:207 +#, fuzzy +msgid "Actual Size" +msgstr "&Bieżący rozmiar" + +#: ../src/common/stockitem.cpp:140 +msgid "Add" +msgstr "Dodaj" + +#: ../src/richtext/richtextbuffer.cpp:10648 +msgid "Add column" +msgstr "Dodaj kolumnę" + +#: ../src/html/helpwnd.cpp:439 +msgid "Add current page to bookmarks" +msgstr "Dodaj bieżącą stronę do listy zakładek" + +#: ../src/richtext/richtextbuffer.cpp:10590 +msgid "Add row" +msgstr "Dodaj wiersz" + +#: ../src/generic/colrdlgg.cpp:283 +msgid "Add to custom colours" +msgstr "Dodaj do kolorów niestandardowych" + +#: ../include/wx/xtiprop.h:259 +msgid "AddToPropertyCollection called on a generic accessor" +msgstr "" + +#: ../include/wx/xtiprop.h:197 +msgid "AddToPropertyCollection called w/o valid adder" +msgstr "" + +#: ../src/html/helpctrl.cpp:159 +#, c-format +msgid "Adding book %s" +msgstr "Dodawanie książki %s" + +#: ../src/osx/carbon/dataview.cpp:1933 +msgid "Adding flavor TEXT failed" +msgstr "" + +#: ../src/osx/carbon/dataview.cpp:1954 +msgid "Adding flavor utxt failed" +msgstr "" + +#: ../src/common/preferencescmn.cpp:41 +msgid "Advanced" +msgstr "Zaawansowane" + +#: ../src/richtext/richtextliststylepage.cpp:435 +msgid "After a paragraph:" +msgstr "Za paragrafem:" + +#: ../src/common/stockitem.cpp:172 +msgid "Align Left" +msgstr "Wyrównanie do lewej" + +#: ../src/common/stockitem.cpp:173 +msgid "Align Right" +msgstr "Wyrównanie do prawej" + +#: ../src/richtext/richtextsizepage.cpp:263 +#, fuzzy +msgid "Alignment" +msgstr "&Wyrównanie" + +#: ../src/generic/prntdlgg.cpp:220 +msgid "All" +msgstr "Wszystko" + +#: ../src/generic/filectrlg.cpp:1205 ../src/common/fldlgcmn.cpp:89 +#, c-format +msgid "All files (%s)|%s" +msgstr "Wszystkie pliki (%s)|%s" + +#: ../include/wx/defs.h:2884 +msgid "All files (*)|*" +msgstr "Wszystkie pliki (*)|*" + +#: ../include/wx/defs.h:2881 +msgid "All files (*.*)|*.*" +msgstr "Wszystkie pliki (*.*)|*.*" + +#: ../src/richtext/richtextstyles.cpp:1057 +msgid "All styles" +msgstr "Wszystkie style" + +#: ../src/propgrid/manager.cpp:1496 +msgid "Alphabetic Mode" +msgstr "Tryb Alfabetyczny" + +#: ../src/common/xtistrm.cpp:429 +msgid "Already Registered Object passed to SetObjectClassInfo" +msgstr "" +"Zarejestrowany wcześniej obiekt przekazany do funkcji SetObjectClassInfo" + +#: ../src/unix/dialup.cpp:354 +msgid "Already dialling ISP." +msgstr "Już łączy z ISP." + +#: ../src/common/accelcmn.cpp:320 ../src/univ/themes/win32.cpp:3756 +#, fuzzy +msgid "Alt+" +msgstr "Alt-" + +#: ../src/common/debugrpt.cpp:581 +msgid "And includes the following files:\n" +msgstr "I zawiera następujące pliki:\n" + +#: ../src/generic/animateg.cpp:162 +#, c-format +msgid "Animation file is not of type %ld." +msgstr "Plik animacyjny nie jest typu %ld." + +#: ../src/generic/logg.cpp:1034 +#, c-format +msgid "Append log to file '%s' (choosing [No] will overwrite it)?" +msgstr "Dołączyć dziennik do pliku '%s' (wybierając [Nie] zastąpisz go)?" + +#: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:610 +#: ../src/osx/menu_osx.cpp:649 ../src/osx/menu_osx.cpp:657 +msgid "Application" +msgstr "Aplikacja" + +#: ../src/common/stockitem.cpp:141 +#, fuzzy +msgid "Apply" +msgstr "Z&astosuj" + +#: ../src/richtext/richtextliststylepage.cpp:482 +#: ../src/richtext/richtextbulletspage.cpp:287 +msgid "Arabic" +msgstr "Arabski" + +#: ../src/common/fmapbase.cpp:153 +msgid "Arabic (ISO-8859-6)" +msgstr "Arabski (ISO-8859-6)" + +# catalog file --> ? +# domain --> ? +#: ../src/msw/ole/automtn.cpp:661 +#, c-format +msgid "Argument %u not found." +msgstr "Nie znaleziono argumentu %u." + +#: ../src/generic/aboutdlgg.cpp:184 +msgid "Artists" +msgstr "Artyści" + +#: ../src/common/stockitem.cpp:195 +msgid "Ascending" +msgstr "Rosnąco" + +#: ../src/generic/filectrlg.cpp:468 +msgid "Attributes" +msgstr "Właściwości" + +#: ../src/richtext/richtextliststylepage.cpp:294 +#: ../src/richtext/richtextbulletspage.cpp:245 +#: ../src/richtext/richtextbulletspage.cpp:247 +msgid "Available fonts." +msgstr "Dostępne czcionki." + +#: ../src/common/paper.cpp:138 +msgid "B4 (ISO) 250 x 353 mm" +msgstr "B4 (ISO) 250 x 353 mm" + +#: ../src/common/paper.cpp:174 +msgid "B4 (JIS) Rotated 364 x 257 mm" +msgstr "B4 (JIS) Obrócone 364 x 257 mm" + +#: ../src/common/paper.cpp:128 +msgid "B4 Envelope, 250 x 353 mm" +msgstr "Koperta B4, 250 x 353 mm" + +#: ../src/common/paper.cpp:110 +msgid "B4 sheet, 250 x 354 mm" +msgstr "Arkusz B4, 250 x 354 mm" + +#: ../src/common/paper.cpp:159 +msgid "B5 (ISO) Extra 201 x 276 mm" +msgstr "B5 (ISO) Extra 201 x 276 mm" + +#: ../src/common/paper.cpp:175 +msgid "B5 (JIS) Rotated 257 x 182 mm" +msgstr "B5 (JIS) Obrócone 257 x 182 mm" + +#: ../src/common/paper.cpp:156 +msgid "B5 (JIS) Transverse 182 x 257 mm" +msgstr "B5 (JIS) Poprzecznie 182 x 257 mm" + +#: ../src/common/paper.cpp:129 +msgid "B5 Envelope, 176 x 250 mm" +msgstr "Koperta B5, 176 x 250 mm" + +#: ../src/common/paper.cpp:111 +msgid "B5 sheet, 182 x 257 millimeter" +msgstr "Arkusz B5, 182 x 257 mm" + +#: ../src/common/paper.cpp:183 +msgid "B6 (JIS) 128 x 182 mm" +msgstr "B6 (JIS) 128 x 182 mm" + +#: ../src/common/paper.cpp:184 +msgid "B6 (JIS) Rotated 182 x 128 mm" +msgstr "B6 (JIS) Obrócone 182 x 128 mm" + +#: ../src/common/paper.cpp:130 +msgid "B6 Envelope, 176 x 125 mm" +msgstr "Koperta B6, 176 x 125 mm" + +#: ../src/common/accelcmn.cpp:49 +msgid "BACK" +msgstr "WSTECZ" + +#: ../src/common/imagbmp.cpp:523 ../src/common/imagbmp.cpp:553 +#: ../src/common/imagbmp.cpp:568 +msgid "BMP: Couldn't allocate memory." +msgstr "BMP: Nie można przydzielić pamięci." + +#: ../src/common/imagbmp.cpp:97 +msgid "BMP: Couldn't save invalid image." +msgstr "BMP: Nie można zapisać nieprawidłowego obrazu.." + +#: ../src/common/imagbmp.cpp:338 +msgid "BMP: Couldn't write RGB color map." +msgstr "BMP: Nie można zapisać mapy kolorów RGB." + +#: ../src/common/imagbmp.cpp:473 +msgid "BMP: Couldn't write data." +msgstr "BMP: Nie można zapisać danych." + +#: ../src/common/imagbmp.cpp:239 +msgid "BMP: Couldn't write the file (Bitmap) header." +msgstr "BMP: Nie można zapisać nagłówka pliku (Bitmap)." + +#: ../src/common/imagbmp.cpp:262 +msgid "BMP: Couldn't write the file (BitmapInfo) header." +msgstr "BMP: Nie można zapisać nagłówka pliku (BitmapInfo)." + +#: ../src/common/imagbmp.cpp:133 +msgid "BMP: wxImage doesn't have own wxPalette." +msgstr "BMP: wxImage nie ma własnej wxPalette." + +#: ../src/common/stockitem.cpp:142 +#, fuzzy +msgid "Back" +msgstr "&Wstecz" + +#: ../src/richtext/richtextbackgroundpage.cpp:119 +#: ../src/richtext/richtextformatdlg.cpp:374 +msgid "Background" +msgstr "Tło" + +#: ../src/richtext/richtextbackgroundpage.cpp:131 +msgid "Background &colour:" +msgstr "Kolor &tła" + +#: ../src/osx/carbon/fontdlg.cpp:406 +msgid "Background colour" +msgstr "Kolor tła" + +#: ../src/common/fmapbase.cpp:160 +msgid "Baltic (ISO-8859-13)" +msgstr "Bałtycki (ISO-8859-13)" + +#: ../src/common/fmapbase.cpp:151 +msgid "Baltic (old) (ISO-8859-4)" +msgstr "Bałtycki (stary) (ISO-8859-4)" + +#: ../src/richtext/richtextliststylepage.cpp:426 +msgid "Before a paragraph:" +msgstr "Przed paragrafem:" + +#: ../src/richtext/richtextliststylepage.cpp:489 +#: ../src/richtext/richtextbulletspage.cpp:294 +msgid "Bitmap" +msgstr "Bitmap" + +#: ../src/osx/carbon/dataview.cpp:2396 +msgid "Bitmap renderer cannot render value; value type: " +msgstr "Bitmap renderer nie mógł wyświetlić wartości; typ wartości:" + +#: ../src/generic/fontdlgg.cpp:333 ../src/richtext/richtextfontpage.cpp:337 +#: ../src/osx/carbon/fontdlg.cpp:540 ../src/common/stockitem.cpp:143 +msgid "Bold" +msgstr "Pogrubiony" + +#: ../src/richtext/richtextborderspage.cpp:256 +#: ../src/richtext/richtextborderspage.cpp:389 +msgid "Border" +msgstr "Obramowanie" + +#: ../src/richtext/richtextformatdlg.cpp:368 +msgid "Borders" +msgstr "Ramki" + +#: ../src/richtext/richtextsizepage.cpp:285 ../src/common/stockitem.cpp:144 +msgid "Bottom" +msgstr "Dolny" + +#: ../src/generic/prntdlgg.cpp:898 +msgid "Bottom margin (mm):" +msgstr "Dolny margines (mm):" + +#: ../src/richtext/richtextbuffer.cpp:8861 +msgid "Box Properties" +msgstr "&Właściwości bloku" + +#: ../src/richtext/richtextstyles.cpp:1061 +msgid "Box styles" +msgstr "Style bloku" + +#: ../src/common/filepickercmn.cpp:43 ../src/common/filepickercmn.cpp:44 +msgid "Browse" +msgstr "Przeglądaj" + +#: ../src/richtext/richtextliststylepage.cpp:245 +#: ../src/richtext/richtextbulletspage.cpp:195 +msgid "Bullet &Alignment:" +msgstr "&Wyrównanie wypunktowania:" + +#: ../src/richtext/richtextliststylepage.cpp:309 +msgid "Bullet style" +msgstr "Styl wypunktowania" + +#: ../src/richtext/richtextformatdlg.cpp:342 +msgid "Bullets" +msgstr "Wypunktowania" + +#: ../src/common/paper.cpp:99 +msgid "C sheet, 17 x 22 in" +msgstr "Arkusz C, 17 x 22 cali" + +#: ../src/generic/logg.cpp:520 +msgid "C&lear" +msgstr "&Wyczyść" + +#: ../src/generic/fontdlgg.cpp:406 +msgid "C&olour:" +msgstr "K&olor:" + +#: ../src/common/paper.cpp:124 +msgid "C3 Envelope, 324 x 458 mm" +msgstr "Koperta C3, 324 x 458 mm" + +#: ../src/common/paper.cpp:125 +msgid "C4 Envelope, 229 x 324 mm" +msgstr "Koperta C4, 229 x 324 mm" + +#: ../src/common/paper.cpp:123 +msgid "C5 Envelope, 162 x 229 mm" +msgstr "Koperta C5, 162 x 229 mm" + +#: ../src/common/paper.cpp:126 +msgid "C6 Envelope, 114 x 162 mm" +msgstr "Koperta C6, 114 x 162 mm" + +#: ../src/common/paper.cpp:127 +msgid "C65 Envelope, 114 x 229 mm" +msgstr "Koperta C65, 114 x 229 mm" + +#: ../src/common/accelcmn.cpp:66 +msgid "CANCEL" +msgstr "ANULUJ" + +#: ../src/common/accelcmn.cpp:70 +msgid "CAPITAL" +msgstr "CAPS" + +#: ../src/common/stockitem.cpp:146 +msgid "CD-Rom" +msgstr "CD-Rom" + +#: ../src/html/chm.cpp:815 ../src/html/chm.cpp:874 +msgid "CHM handler currently supports only local files!" +msgstr "Obsługa CHM obecnie wspiera tylko pliki lokalne!" + +#: ../src/common/accelcmn.cpp:67 +msgid "CLEAR" +msgstr "WYCZYŚĆ" + +#: ../src/common/accelcmn.cpp:111 +msgid "COMMAND" +msgstr "POLECENIE" + +#: ../src/richtext/richtextfontpage.cpp:291 +msgid "Ca&pitals" +msgstr "&Duże litery" + +#: ../src/common/cmdproc.cpp:267 +msgid "Can't &Undo " +msgstr "Nie można &cofnąć " + +#: ../src/common/image.cpp:2686 +msgid "Can't automatically determine the image format for non-seekable input." +msgstr "" +"Nie można automatycznie określić formatu obrazu dla nieprzeszukiwalnego " +"wejścia." + +#: ../src/msw/registry.cpp:505 +#, c-format +msgid "Can't close registry key '%s'" +msgstr "Nie można zamknąć klucza rejestru '%s'" + +#: ../src/msw/registry.cpp:583 +#, c-format +msgid "Can't copy values of unsupported type %d." +msgstr "Nie można kopiować wartości nieobsługiwanego typu %d." + +#: ../src/msw/registry.cpp:486 +#, c-format +msgid "Can't create registry key '%s'" +msgstr "Nie można utworzyć klucza rejestru '%s'" + +#: ../src/msw/thread.cpp:696 ../src/os2/thread.cpp:494 +msgid "Can't create thread" +msgstr "Nie można utworzyć wątku" + +#: ../src/msw/window.cpp:3783 +#, c-format +msgid "Can't create window of class %s" +msgstr "Nie można utworzyć okna klasy '%s'" + +#: ../src/msw/registry.cpp:776 +#, c-format +msgid "Can't delete key '%s'" +msgstr "Nie można usunąć klucza '%s'" + +#: ../src/msw/iniconf.cpp:458 ../src/os2/iniconf.cpp:471 +#, c-format +msgid "Can't delete the INI file '%s'" +msgstr "Nie można usunąć pliku INI '%s'" + +#: ../src/msw/registry.cpp:804 +#, c-format +msgid "Can't delete value '%s' from key '%s'" +msgstr "Nie można usunąć wartości '%s' z klucza '%s'" + +#: ../src/msw/registry.cpp:1161 +#, c-format +msgid "Can't enumerate subkeys of key '%s'" +msgstr "Nie można wyliczyć podkluczy klucza '%s'" + +#: ../src/msw/registry.cpp:1116 +#, c-format +msgid "Can't enumerate values of key '%s'" +msgstr "Nie można wyliczyć wartości klucza '%s'" + +#: ../src/msw/registry.cpp:1379 +#, c-format +msgid "Can't export value of unsupported type %d." +msgstr "Nie można wyeksportować wartości nieobsługiwanego typu %d." + +#: ../src/common/ffile.cpp:236 +#, c-format +msgid "Can't find current position in file '%s'" +msgstr "Nie można znaleźć bieżącej pozycji w pliku '%s'" + +#: ../src/msw/registry.cpp:416 +#, c-format +msgid "Can't get info about registry key '%s'" +msgstr "Nie można uzyskać informacji o kluczu rejestru '%s'" + +#: ../src/common/zstream.cpp:346 +msgid "Can't initialize zlib deflate stream." +msgstr "Nie można zainicjować strumienia kompresji biblioteki zlib." + +#: ../src/common/zstream.cpp:185 +msgid "Can't initialize zlib inflate stream." +msgstr "Nie można zainicjować strumienia dekompresji biblioteki zlib." + +#: ../src/msw/fswatcher.cpp:432 +#, c-format +msgid "Can't monitor non-existent directory \"%s\" for changes." +msgstr "Nie można monitorować zmian w nieistniejącym folderze \"%s\"." + +#: ../src/msw/registry.cpp:452 +#, c-format +msgid "Can't open registry key '%s'" +msgstr "Nie można otworzyć klucza rejestru '%s'" + +#: ../src/common/zstream.cpp:252 +#, c-format +msgid "Can't read from inflate stream: %s" +msgstr "Nie można czytać z dekompresowanego strumienia: %s" + +#: ../src/common/zstream.cpp:244 +msgid "Can't read inflate stream: unexpected EOF in underlying stream." +msgstr "" +"Nie można odczytać dekompresowanego strumienia: nieoczekiwany koniec w " +"strumieniu." + +#: ../src/msw/registry.cpp:1048 +#, c-format +msgid "Can't read value of '%s'" +msgstr "Nie można odczytać wartości '%s'" + +#: ../src/msw/registry.cpp:877 ../src/msw/registry.cpp:909 +#: ../src/msw/registry.cpp:971 +#, c-format +msgid "Can't read value of key '%s'" +msgstr "Nie można odczytać wartości klucza '%s'" + +#: ../src/common/image.cpp:2483 +#, c-format +msgid "Can't save image to file '%s': unknown extension." +msgstr "Nie można zapisać obrazu do pliku '%s': nieznane rozszerzenie." + +#: ../src/generic/logg.cpp:579 ../src/generic/logg.cpp:996 +msgid "Can't save log contents to file." +msgstr "Nie można zapisać zawartości dziennika w pliku." + +# ustalić? +#: ../src/msw/thread.cpp:652 ../src/os2/thread.cpp:477 +msgid "Can't set thread priority" +msgstr "Nie można zmienić priorytetu wątku" + +#: ../src/msw/registry.cpp:895 ../src/msw/registry.cpp:939 +#: ../src/msw/registry.cpp:1065 +#, c-format +msgid "Can't set value of '%s'" +msgstr "Nie można nadać wartości '%s'" + +#: ../src/unix/utilsunx.cpp:357 +msgid "Can't write to child process's stdin" +msgstr "" + +#: ../src/common/zstream.cpp:427 +#, c-format +msgid "Can't write to deflate stream: %s" +msgstr "Nie można zapisywać do kompresowanego strumienia: %s" + +#: ../include/wx/msgdlg.h:274 ../src/generic/dirdlgg.cpp:107 +#: ../src/richtext/richtextstyledlg.cpp:300 ../src/common/stockitem.cpp:145 +#: ../src/msw/msgdlg.cpp:489 ../src/msw/progdlg.cpp:673 +#: ../src/gtk1/fontdlg.cpp:144 ../src/motif/msgdlg.cpp:196 +msgid "Cancel" +msgstr "Zrezygnuj" + +#: ../src/os2/thread.cpp:116 +msgid "Cannot create mutex." +msgstr "Nie można utworzyć muteksu." + +#: ../src/osx/carbon/dataview.cpp:895 +msgid "Cannot create new column's ID. Probably max. number of columns reached." +msgstr "" +"Nie można utworzyć nowego ID kolumny. Prawdopodobnie została osiągnięta " +"maks. liczba kolumn." + +#: ../src/common/filefn.cpp:1335 +#, c-format +msgid "Cannot enumerate files '%s'" +msgstr "Nie można wyliczyć plików '%s'" + +#: ../src/msw/dir.cpp:264 +#, c-format +msgid "Cannot enumerate files in directory '%s'" +msgstr "Nie można wyliczyć plików w katalogu '%s'" + +#: ../src/msw/dialup.cpp:542 +#, c-format +msgid "Cannot find active dialup connection: %s" +msgstr "Nie można znaleźć aktywnego połączenia dialup: %s" + +#: ../src/msw/dialup.cpp:848 +msgid "Cannot find the location of address book file" +msgstr "Nie można znaleźć lokalizacji pliku książki adresowej" + +#: ../src/msw/ole/automtn.cpp:562 +#, c-format +msgid "Cannot get an active instance of \"%s\"" +msgstr "NIe można znaleźć aktywnej instancji \"%s\"" + +#: ../src/unix/threadpsx.cpp:1030 +#, c-format +msgid "Cannot get priority range for scheduling policy %d." +msgstr "Nie można uzyskać zakresu priorytetów strategii harmogramowania %d." + +#: ../src/unix/utilsunx.cpp:983 +msgid "Cannot get the hostname" +msgstr "Nie można pobrać nazwy serwera" + +#: ../src/unix/utilsunx.cpp:1019 +msgid "Cannot get the official hostname" +msgstr "Nie można pobrać oficjalnej nazwy serwera" + +#: ../src/msw/dialup.cpp:949 +msgid "Cannot hang up - no active dialup connection." +msgstr "Nie można rozłączyć - brak aktywnego połączenia dialup." + +#: ../include/wx/msw/ole/oleutils.h:52 +msgid "Cannot initialize OLE" +msgstr "Nie można zainicjować OLE" + +#: ../src/common/socket.cpp:847 +msgid "Cannot initialize sockets" +msgstr "" + +#: ../src/msw/volume.cpp:620 +#, c-format +msgid "Cannot load icon from '%s'." +msgstr "Nie można wczytać ikony z '%s'." + +#: ../src/xrc/xmlres.cpp:361 +#, c-format +msgid "Cannot load resources from '%s'." +msgstr "Nie można wczytać zasobów z pliku '%s'." + +#: ../src/xrc/xmlres.cpp:746 +#, c-format +msgid "Cannot load resources from file '%s'." +msgstr "Nie można wczytać zasobów z pliku '%s'." + +#: ../src/html/htmlfilt.cpp:137 +#, c-format +msgid "Cannot open HTML document: %s" +msgstr "Nie można otworzyć dokumentu HTML: %s" + +#: ../src/html/helpdata.cpp:664 +#, c-format +msgid "Cannot open HTML help book: %s" +msgstr "Nie można otworzyć książki pomocy HTML: %s" + +#: ../src/html/helpdata.cpp:297 +#, c-format +msgid "Cannot open contents file: %s" +msgstr "Nie można otworzyć pliku spisu treści: %s" + +#: ../src/generic/dcpsg.cpp:1751 +msgid "Cannot open file for PostScript printing!" +msgstr "Nie można otworzyć pliku dla drukowania postscriptowego!" + +#: ../src/html/helpdata.cpp:311 +#, c-format +msgid "Cannot open index file: %s" +msgstr "Nie można otworzyć pliku indeksowego: %s" + +#: ../src/xrc/xmlres.cpp:728 +#, c-format +msgid "Cannot open resources file '%s'." +msgstr "Nie można wczytać zasobów z pliku '%s'." + +#: ../src/html/helpwnd.cpp:1537 +msgid "Cannot print empty page." +msgstr "Nie można wydrukować pustej strony." + +#: ../src/msw/volume.cpp:507 +#, c-format +msgid "Cannot read typename from '%s'!" +msgstr "Nie można odczytać nazwy typu z '%s'!" + +#: ../src/os2/thread.cpp:527 +#, c-format +msgid "Cannot resume thread %lu" +msgstr "Nie można wznowić wątku %lu" + +#: ../src/msw/thread.cpp:923 +#, c-format +msgid "Cannot resume thread %lx" +msgstr "Nie można wznowić wątku %lx" + +#: ../src/unix/threadpsx.cpp:1011 +msgid "Cannot retrieve thread scheduling policy." +msgstr "Nie można uzyskać strategii harmonogramowania wątków." + +#: ../src/common/intl.cpp:542 +#, c-format +msgid "Cannot set locale to language \"%s\"." +msgstr "Nie można ustawić lokalizacji na język \"%s\"." + +#: ../src/unix/threadpsx.cpp:831 ../src/msw/thread.cpp:569 +msgid "Cannot start thread: error writing TLS." +msgstr "Nie można wystartować wątku: błąd zapisu TLS." + +#: ../src/os2/thread.cpp:513 +#, c-format +msgid "Cannot suspend thread %lu" +msgstr "Nie można zawiesić wątku %lu" + +#: ../src/msw/thread.cpp:907 +#, c-format +msgid "Cannot suspend thread %lx" +msgstr "Nie można zawiesić wątku %lx" + +#: ../src/msw/thread.cpp:830 +msgid "Cannot wait for thread termination" +msgstr "Nie można czekać na zakończenie wątku" + +#: ../src/html/helpwnd.cpp:546 +msgid "Case sensitive" +msgstr "Uwzględniaj wielkość liter" + +#: ../src/propgrid/manager.cpp:1495 +msgid "Categorized Mode" +msgstr "Tryb skategoryzowany" + +#: ../src/richtext/richtextbuffer.cpp:9273 +msgid "Cell Properties" +msgstr "&Właściwości komórki" + +#: ../src/common/fmapbase.cpp:161 +msgid "Celtic (ISO-8859-14)" +msgstr "Celtycki (ISO-8859-14)" + +#: ../src/richtext/richtextindentspage.cpp:160 +#: ../src/richtext/richtextliststylepage.cpp:349 +msgid "Cen&tred" +msgstr "wyś&rodkowany" + +#: ../src/common/stockitem.cpp:170 +msgid "Centered" +msgstr "Wyrównanie do środka" + +#: ../src/common/fmapbase.cpp:149 +msgid "Central European (ISO-8859-2)" +msgstr "Środkowoeuropejski (ISO-8859-2)" + +#: ../src/richtext/richtextliststylepage.cpp:250 +#: ../src/richtext/richtextbulletspage.cpp:200 +msgid "Centre" +msgstr "Wyrównanie do środka" + +#: ../src/richtext/richtextindentspage.cpp:162 +#: ../src/richtext/richtextindentspage.cpp:164 +#: ../src/richtext/richtextliststylepage.cpp:351 +#: ../src/richtext/richtextliststylepage.cpp:353 +msgid "Centre text." +msgstr "Wyśrodkowanie tekstu." + +#: ../src/richtext/richtextsizepage.cpp:284 +msgid "Centred" +msgstr "wyśrodkowany" + +#: ../src/richtext/richtextliststylepage.cpp:280 +#: ../src/richtext/richtextbulletspage.cpp:232 +msgid "Ch&oose..." +msgstr "&Wybierz..." + +#: ../src/richtext/richtextbuffer.cpp:4029 +msgid "Change List Style" +msgstr "Zmień styl listy" + +#: ../src/richtext/richtextbuffer.cpp:3380 +msgid "Change Object Style" +msgstr "Zmień styl obiektu" + +#: ../src/richtext/richtextbuffer.cpp:3646 +msgid "Change Properties" +msgstr "Zmień właściwości" + +#: ../src/richtext/richtextbuffer.cpp:3197 +msgid "Change Style" +msgstr "Zmień styl" + +#: ../src/common/fileconf.cpp:372 +#, c-format +msgid "Changes won't be saved to avoid overwriting the existing file \"%s\"" +msgstr "" +"Zmiany nie zostaną zapisane, aby uniknąć nadpisania istniejącego pliku \"%s\"" + +#: ../src/richtext/richtextstyles.cpp:1059 +msgid "Character styles" +msgstr "Style znaku" + +#: ../src/richtext/richtextliststylepage.cpp:224 +#: ../src/richtext/richtextliststylepage.cpp:226 +#: ../src/richtext/richtextbulletspage.cpp:174 +#: ../src/richtext/richtextbulletspage.cpp:176 +msgid "Check to add a period after the bullet." +msgstr "Zaznacz aby dodać kropkę po wypunktowaniu." + +#: ../src/richtext/richtextliststylepage.cpp:238 +#: ../src/richtext/richtextliststylepage.cpp:240 +#: ../src/richtext/richtextbulletspage.cpp:188 +#: ../src/richtext/richtextbulletspage.cpp:190 +msgid "Check to add a right parenthesis." +msgstr "Zaznacz aby dodać prawy nawias." + +#: ../src/richtext/richtextliststylepage.cpp:231 +#: ../src/richtext/richtextliststylepage.cpp:233 +#: ../src/richtext/richtextbulletspage.cpp:181 +#: ../src/richtext/richtextbulletspage.cpp:183 +msgid "Check to enclose the bullet in parentheses." +msgstr "Zaznacz aby dołączyć wypunktowanie w nawiasach." + +#: ../src/osx/carbon/fontdlg.cpp:542 ../src/osx/carbon/fontdlg.cpp:544 +msgid "Check to make the font bold." +msgstr "Zaznacz aby pogrubić czcionkę." + +#: ../src/osx/carbon/fontdlg.cpp:549 ../src/osx/carbon/fontdlg.cpp:551 +msgid "Check to make the font italic." +msgstr "Zaznacz aby uzyskać kursywę czcionki." + +#: ../src/osx/carbon/fontdlg.cpp:558 ../src/osx/carbon/fontdlg.cpp:560 +msgid "Check to make the font underlined." +msgstr "Zaznacz aby podkreślić czcionkę." + +#: ../src/richtext/richtextstyledlg.cpp:289 +#: ../src/richtext/richtextstyledlg.cpp:291 +msgid "Check to restart numbering." +msgstr "Zaznacz aby ponownie uruchomić numerację." + +#: ../src/richtext/richtextfontpage.cpp:286 +#: ../src/richtext/richtextfontpage.cpp:288 +msgid "Check to show a line through the text." +msgstr "Zaznacz aby pokazać linię poprzez tekst." + +#: ../src/richtext/richtextfontpage.cpp:293 +#: ../src/richtext/richtextfontpage.cpp:295 +msgid "Check to show the text in capitals." +msgstr "Zaznacz aby wyświetlić tekst w dużych literach." + +#: ../src/richtext/richtextfontpage.cpp:300 +#: ../src/richtext/richtextfontpage.cpp:302 +msgid "Check to show the text in small capitals." +msgstr "Zaznacz aby wyświetlić tekst w dużych literach." + +#: ../src/richtext/richtextfontpage.cpp:314 +#: ../src/richtext/richtextfontpage.cpp:316 +msgid "Check to show the text in subscript." +msgstr "Zaznacz aby wyświetlić tekst w indeksie dolnym." + +#: ../src/richtext/richtextfontpage.cpp:307 +#: ../src/richtext/richtextfontpage.cpp:309 +msgid "Check to show the text in superscript." +msgstr "Zaznacz aby wyświetlić tekst w indeksie górnym." + +#: ../src/msw/dialup.cpp:784 +msgid "Choose ISP to dial" +msgstr "Wybierz ISP do połączenia" + +#: ../src/propgrid/props.cpp:1643 +msgid "Choose a directory:" +msgstr "Wybierz katalog" + +#: ../src/propgrid/props.cpp:1702 +msgid "Choose a file" +msgstr "Wybierz plik" + +#: ../src/generic/colrdlgg.cpp:144 ../src/gtk/colordlg.cpp:63 +msgid "Choose colour" +msgstr "Wybierz kolor" + +#: ../src/generic/fontpickerg.cpp:50 ../src/gtk/fontdlg.cpp:75 +#: ../src/gtk1/fontdlg.cpp:125 +msgid "Choose font" +msgstr "Wybierz czcionkę" + +#: ../src/common/module.cpp:74 +#, c-format +msgid "Circular dependency involving module \"%s\" detected." +msgstr "" + +#: ../src/aui/tabmdi.cpp:108 ../src/generic/mdig.cpp:97 +msgid "Cl&ose" +msgstr "Zam&knij" + +#: ../src/msw/ole/automtn.cpp:673 +msgid "Class not registered." +msgstr "Klasa niezarejestrowana." + +#: ../src/common/stockitem.cpp:147 +#, fuzzy +msgid "Clear" +msgstr "Wy&czyść" + +#: ../src/generic/logg.cpp:520 +msgid "Clear the log contents" +msgstr "Wyczyść zawartość dziennika" + +#: ../src/richtext/richtextstyledlg.cpp:252 +#: ../src/richtext/richtextstyledlg.cpp:254 +msgid "Click to apply the selected style." +msgstr "Kliknij, aby zastosować wybrany styl." + +#: ../src/richtext/richtextliststylepage.cpp:281 +#: ../src/richtext/richtextliststylepage.cpp:283 +#: ../src/richtext/richtextbulletspage.cpp:233 +#: ../src/richtext/richtextbulletspage.cpp:235 +msgid "Click to browse for a symbol." +msgstr "Kliknij, aby wyszukać symbol." + +#: ../src/osx/carbon/fontdlg.cpp:589 ../src/osx/carbon/fontdlg.cpp:591 +msgid "Click to cancel changes to the font." +msgstr "Kliknij, aby anulować zmiany czcionki." + +#: ../src/generic/fontdlgg.cpp:472 ../src/generic/fontdlgg.cpp:491 +msgid "Click to cancel the font selection." +msgstr "Anulowanie wyboru czcionki" + +#: ../src/osx/carbon/fontdlg.cpp:570 ../src/osx/carbon/fontdlg.cpp:572 +msgid "Click to change the font colour." +msgstr "Kliknij, aby zmienić kolor czcionki." + +#: ../src/richtext/richtextfontpage.cpp:276 +#: ../src/richtext/richtextfontpage.cpp:278 +msgid "Click to change the text background colour." +msgstr "Kliknij, aby zmienić kolor tła tekstu." + +#: ../src/richtext/richtextfontpage.cpp:263 +#: ../src/richtext/richtextfontpage.cpp:265 +msgid "Click to change the text colour." +msgstr "Kliknij, aby zmienić kolor tekstu." + +#: ../src/richtext/richtextliststylepage.cpp:195 +#: ../src/richtext/richtextliststylepage.cpp:197 +msgid "Click to choose the font for this level." +msgstr "Kliknij, aby wybrać czcionkę dla tego poziomu." + +#: ../src/richtext/richtextstyledlg.cpp:279 +#: ../src/richtext/richtextstyledlg.cpp:281 +msgid "Click to close this window." +msgstr "Kliknij, aby zamknąć to okno." + +#: ../src/osx/carbon/fontdlg.cpp:596 ../src/osx/carbon/fontdlg.cpp:598 +msgid "Click to confirm changes to the font." +msgstr "Kliknij, aby potwierdzić zmiany czcionki." + +#: ../src/generic/fontdlgg.cpp:477 ../src/generic/fontdlgg.cpp:479 +#: ../src/generic/fontdlgg.cpp:484 ../src/generic/fontdlgg.cpp:486 +msgid "Click to confirm the font selection." +msgstr "Potwierdzenie wyboru czcionki" + +#: ../src/richtext/richtextstyledlg.cpp:244 +#: ../src/richtext/richtextstyledlg.cpp:246 +msgid "Click to create a new box style." +msgstr "Kliknij, aby utworzyć nowy styl bloku." + +#: ../src/richtext/richtextstyledlg.cpp:226 +#: ../src/richtext/richtextstyledlg.cpp:228 +msgid "Click to create a new character style." +msgstr "Kliknij, aby utworzyć nowy styl znaków." + +#: ../src/richtext/richtextstyledlg.cpp:238 +#: ../src/richtext/richtextstyledlg.cpp:240 +msgid "Click to create a new list style." +msgstr "Kliknij, aby utworzyć nowy styl listy." + +#: ../src/richtext/richtextstyledlg.cpp:232 +#: ../src/richtext/richtextstyledlg.cpp:234 +msgid "Click to create a new paragraph style." +msgstr "Kliknij, aby utworzyć nowy styl paragrafu." + +#: ../src/richtext/richtexttabspage.cpp:137 +#: ../src/richtext/richtexttabspage.cpp:139 +msgid "Click to create a new tab position." +msgstr "Kliknij, aby utworzyć nową pozycję karty." + +#: ../src/richtext/richtexttabspage.cpp:149 +#: ../src/richtext/richtexttabspage.cpp:151 +msgid "Click to delete all tab positions." +msgstr "Kliknij, aby usunąć wszystkie pozycje kart." + +#: ../src/richtext/richtextstyledlg.cpp:270 +#: ../src/richtext/richtextstyledlg.cpp:272 +msgid "Click to delete the selected style." +msgstr "Kliknij, aby usunąć wybrany styl." + +#: ../src/richtext/richtexttabspage.cpp:143 +#: ../src/richtext/richtexttabspage.cpp:145 +msgid "Click to delete the selected tab position." +msgstr "Kliknij, aby usunąć wybraną pozycję karty." + +#: ../src/richtext/richtextstyledlg.cpp:264 +#: ../src/richtext/richtextstyledlg.cpp:266 +msgid "Click to edit the selected style." +msgstr "Kliknij, aby edytować wybrany styl." + +#: ../src/richtext/richtextstyledlg.cpp:258 +#: ../src/richtext/richtextstyledlg.cpp:260 +msgid "Click to rename the selected style." +msgstr "Kliknij, aby zmienić nazwę wybranego stylu." + +#: ../src/generic/dbgrptg.cpp:97 ../src/generic/progdlgg.cpp:804 +#: ../src/generic/progdlgg.cpp:809 ../src/richtext/richtextstyledlg.cpp:277 +#: ../src/richtext/richtextsymboldlg.cpp:476 ../src/common/stockitem.cpp:148 +#: ../src/msw/progdlg.cpp:170 ../src/msw/progdlg.cpp:679 +#: ../src/html/helpdlg.cpp:90 +msgid "Close" +msgstr "Zamknij" + +#: ../src/aui/tabmdi.cpp:109 ../src/generic/mdig.cpp:98 +msgid "Close All" +msgstr "Zamknij wszystko" + +#: ../src/common/stockitem.cpp:266 +msgid "Close current document" +msgstr "Zamknij bieżący dokument" + +#: ../src/generic/logg.cpp:522 +msgid "Close this window" +msgstr "Zamknij to okno" + +#: ../src/common/stockitem.cpp:193 +#, fuzzy +msgid "Color" +msgstr "Kolor" + +#: ../src/richtext/richtextformatdlg.cpp:723 +msgid "Colour" +msgstr "Kolor" + +#: ../src/msw/colordlg.cpp:156 +#, c-format +msgid "Colour selection dialog failed with error %0lx." +msgstr "Okno wyboru koloru nie powiodło się z błędem %0lx." + +#: ../src/osx/carbon/fontdlg.cpp:566 +msgid "Colour:" +msgstr "Kolor:" + +#: ../src/osx/carbon/dataview.cpp:900 +msgid "Column could not be added." +msgstr "Kolumna nie mogła być dodana." + +#: ../src/osx/carbon/dataview.cpp:899 +msgid "Column description could not be initialized." +msgstr "Opis kolumny nie może być zainicjowany." + +# catalog file --> ? +# domain --> ? +#: ../src/osx/carbon/dataview.cpp:1538 ../src/osx/carbon/dataview.cpp:1559 +msgid "Column index not found." +msgstr "Nie znaleziono indeksu kolumny." + +#: ../src/osx/carbon/dataview.cpp:1614 +msgid "Column width could not be determined" +msgstr "Szerokość kolumny nie może być ustalona" + +#: ../src/osx/carbon/dataview.cpp:901 +msgid "Column width could not be set." +msgstr "Szerokość kolumny nie może być ustawiona." + +#: ../src/common/init.cpp:188 +#, c-format +msgid "" +"Command line argument %d couldn't be converted to Unicode and will be " +"ignored." +msgstr "" +"Argument wiersza polecenia %d nie może zostać zamieniony na Unicode i " +"zostanie zignorowany." + +#: ../src/msw/fontdlg.cpp:119 +#, c-format +msgid "Common dialog failed with error code %0lx." +msgstr "" + +#: ../src/gtk/window.cpp:4284 +msgid "" +"Compositing not supported by this system, please enable it in your Window " +"Manager." +msgstr "" +"Kompozycje nie są wspierane w tym systemie, proszę je włączyć w managerze." + +#: ../src/html/helpwnd.cpp:1554 +msgid "Compressed HTML Help file (*.chm)|*.chm|" +msgstr "Skompresowane pliki pomocy HTML Help (*.chm)|*.chm|" + +#: ../src/generic/dirctrlg.cpp:544 +msgid "Computer" +msgstr "Komputer" + +#: ../src/common/fileconf.cpp:965 +#, c-format +msgid "Config entry name cannot start with '%c'." +msgstr "Nazwa pozycji konfiguracji nie może zaczynać się od '%c'." + +#: ../src/gtk/filedlg.cpp:59 +msgid "Confirm" +msgstr "Potwierdź" + +#: ../src/msw/mimetype.cpp:739 +msgid "Confirm registry update" +msgstr "Potwierdź uaktualnienie rejestru" + +#: ../src/html/htmlwin.cpp:544 +msgid "Connecting..." +msgstr "Łączenie..." + +#: ../src/html/helpwnd.cpp:482 +msgid "Contents" +msgstr "Zawartość" + +#: ../src/common/strconv.cpp:2261 +#, c-format +msgid "Conversion to charset '%s' doesn't work." +msgstr "Nie działa konwersja do zestawu znaków '%s'." + +#: ../src/common/stockitem.cpp:149 +msgid "Convert" +msgstr "KonwertujZawartość" + +#: ../src/html/htmlwin.cpp:1057 +#, c-format +msgid "Copied to clipboard:\"%s\"" +msgstr "Skopiowano do schowka:\"%s\"" + +#: ../src/generic/prntdlgg.cpp:252 +msgid "Copies:" +msgstr "Kopie:" + +#: ../src/common/stockitem.cpp:150 ../src/stc/stc_i18n.cpp:18 +msgid "Copy" +msgstr "Kopiuj" + +#: ../src/common/stockitem.cpp:258 +msgid "Copy selection" +msgstr "Kopiuj wybór" + +#: ../src/html/chm.cpp:718 +#, c-format +msgid "Could not create temporary file '%s'" +msgstr "Nie można utworzyć tymczasowego pliku '%s'" + +#: ../src/osx/carbon/dataview.cpp:1285 ../src/osx/carbon/dataview.cpp:1672 +msgid "Could not determine column index." +msgstr "Nie można określić indeksu kolumny." + +#: ../src/osx/carbon/dataview.cpp:876 +msgid "Could not determine column's position" +msgstr "Nie można określić pozycji kolumny" + +#: ../src/osx/carbon/dataview.cpp:843 +msgid "Could not determine number of columns." +msgstr "Nie można określić ilości kolumn" + +#: ../src/osx/carbon/dataview.cpp:975 +msgid "Could not determine number of items" +msgstr "Nie można określić ilości elementów" + +#: ../src/html/chm.cpp:273 +#, c-format +msgid "Could not extract %s into %s: %s" +msgstr "Nie można wydzielić %s do %s: %s" + +#: ../src/generic/tabg.cpp:1048 +msgid "Could not find tab for id" +msgstr "Nie można znaleźć (tab) dla (id)" + +#: ../src/osx/carbon/dataview.cpp:2556 ../src/osx/carbon/dataview.cpp:2591 +#: ../src/osx/carbon/dataview.cpp:2615 ../src/osx/carbon/dataview.cpp:2636 +#: ../src/osx/carbon/dataview.cpp:2773 +msgid "Could not get header description." +msgstr "Nie można uzyskać opisu nagłówku." + +#: ../src/osx/carbon/dataview.cpp:1169 ../src/osx/carbon/dataview.cpp:1195 +msgid "Could not get items." +msgstr "Nie można uzyskać elementów." + +#: ../src/osx/carbon/dataview.cpp:2659 ../src/osx/carbon/dataview.cpp:2724 +msgid "Could not get property flags." +msgstr "Nie można pobrać flag właściwości." + +#: ../src/osx/carbon/dataview.cpp:726 +msgid "Could not get selected items." +msgstr "Nie można pobrać wybranych elementów." + +#: ../src/html/chm.cpp:444 +#, c-format +msgid "Could not locate file '%s'." +msgstr "Nie odnaleziono pliku '%s'." + +#: ../src/osx/carbon/dataview.cpp:845 +msgid "Could not remove column." +msgstr "Nie można usunąć kolumny." + +#: ../src/osx/carbon/dataview.cpp:642 +msgid "Could not retrieve number of items" +msgstr "Nie można pobrać ilości elementów" + +#: ../src/osx/carbon/dataview.cpp:2572 +msgid "Could not set alignment." +msgstr "Nie można ustawić wyrównania." + +#: ../src/osx/carbon/dataview.cpp:2803 +msgid "Could not set column width." +msgstr "Nie można ustawić szerokości kolumny." + +#: ../src/common/filefn.cpp:1568 +msgid "Could not set current working directory" +msgstr "Nie udało się ustawić katalogu roboczego" + +#: ../src/osx/carbon/dataview.cpp:2775 +msgid "Could not set header description." +msgstr "Nie można ustawić opisu nagłówka." + +#: ../src/osx/carbon/dataview.cpp:2596 +msgid "Could not set icon." +msgstr "Nie można ustawić ikony." + +#: ../src/osx/carbon/dataview.cpp:2617 +msgid "Could not set maximum width." +msgstr "Nie można ustawić maksymalnej szerokości." + +#: ../src/osx/carbon/dataview.cpp:2638 +msgid "Could not set minimum width." +msgstr "Nie można ustawić minimalnej szerokości." + +#: ../src/osx/carbon/dataview.cpp:2664 ../src/osx/carbon/dataview.cpp:2729 +msgid "Could not set property flags." +msgstr "Nie można ustawić flag własności." + +#: ../src/common/prntbase.cpp:1985 +msgid "Could not start document preview." +msgstr "Nie można wystartować podglądu dokumentu." + +#: ../src/generic/printps.cpp:178 ../src/msw/printwin.cpp:210 +#: ../src/gtk/print.cpp:1086 ../src/gtk/gnome/gprint.cpp:922 +msgid "Could not start printing." +msgstr "Nie można rozpocząć drukowania." + +# przenieść? +#: ../src/common/wincmn.cpp:2114 +msgid "Could not transfer data to window" +msgstr "Nie można przenieść danych do okna" + +#: ../src/os2/thread.cpp:160 +msgid "Couldn't acquire a mutex lock" +msgstr "Nie można przechwycić muteksu" + +#: ../src/msw/imaglist.cpp:166 ../src/msw/imaglist.cpp:197 +#: ../src/msw/imaglist.cpp:209 ../src/msw/dragimag.cpp:193 +#: ../src/msw/dragimag.cpp:232 +msgid "Couldn't add an image to the image list." +msgstr "Nie można dodać obrazu do listy obrazów." + +#: ../src/msw/timer.cpp:134 ../src/os2/timer.cpp:113 +msgid "Couldn't create a timer" +msgstr "Nie można utworzyć stopera" + +#: ../src/osx/carbon/overlay.cpp:122 +msgid "Couldn't create the overlay window" +msgstr "Nie można utworzyć okna nakładki" + +#: ../src/common/translation.cpp:2024 +msgid "Couldn't enumerate translations" +msgstr "Nie można policzyć tłumaczeń" + +# dynamicznej? nieładne, a chyba zbędne +#: ../src/common/dynlib.cpp:152 +#, c-format +msgid "Couldn't find symbol '%s' in a dynamic library" +msgstr "Nie można znaleźć symbolu '%s' w bibliotece" + +#: ../src/gtk/print.cpp:2023 +msgid "Couldn't get hatch style from wxBrush." +msgstr "Nie można uzyskać stylów kreskowania z wxBrush." + +#: ../src/msw/thread.cpp:950 +msgid "Couldn't get the current thread pointer" +msgstr "Nie można pobrać wskaźnika aktualnego wątku" + +#: ../src/osx/carbon/overlay.cpp:129 +msgid "Couldn't init the context on the overlay window" +msgstr "Nie można zainicjować kontekstu w oknie nakładki" + +#: ../src/common/imaggif.cpp:263 +msgid "Couldn't initialize GIF hash table." +msgstr "" + +#: ../src/common/imagpng.cpp:657 +msgid "Couldn't load a PNG image - file is corrupted or not enough memory." +msgstr "" +"Nie można wczytać obrazu PNG - plik jest uszkodzony lub zabrakło pamięci." + +#: ../src/unix/sound.cpp:470 +#, c-format +msgid "Couldn't load sound data from '%s'." +msgstr "Nie można wczytać danych dźwiękowych '%s'." + +#: ../src/msw/dirdlg.cpp:441 +msgid "Couldn't obtain folder name" +msgstr "Nie można pobrać nazwy folderu" + +#: ../src/unix/sound_sdl.cpp:229 +#, c-format +msgid "Couldn't open audio: %s" +msgstr "Nie można otworzyć dźwięku: %s" + +#: ../src/msw/ole/dataobj.cpp:350 +#, c-format +msgid "Couldn't register clipboard format '%s'." +msgstr "Nie można zarejestrować formatu schowka '%s'." + +#: ../src/os2/thread.cpp:177 +msgid "Couldn't release a mutex" +msgstr "Muteks nie mógł być uwolniony" + +#: ../src/msw/listctrl.cpp:756 +#, c-format +msgid "Couldn't retrieve information about list control item %d." +msgstr "Nie można pobrać informacji o elemencie listy kontroli %d." + +#: ../src/common/imagpng.cpp:746 ../src/common/imagpng.cpp:757 +#: ../src/common/imagpng.cpp:767 +msgid "Couldn't save PNG image." +msgstr "Nie można zapisać obrazu PNG." + +#: ../src/msw/thread.cpp:715 +msgid "Couldn't terminate thread" +msgstr "Nie można zakończyć wątku" + +#: ../src/common/xtistrm.cpp:170 +#, c-format +msgid "Create Parameter %s not found in declared RTTI Parameters" +msgstr "" + +#: ../src/generic/dirdlgg.cpp:317 +msgid "Create directory" +msgstr "Tworzenie katalogu" + +#: ../src/generic/filedlgg.cpp:228 ../src/generic/dirdlgg.cpp:131 +msgid "Create new directory" +msgstr "Utwórz nowy katalog" + +#: ../src/common/accelcmn.cpp:322 +#, fuzzy +msgid "Ctrl+" +msgstr "Ctrl-" + +#: ../src/richtext/richtextctrl.cpp:325 ../src/osx/textctrl_osx.cpp:582 +#: ../src/common/stockitem.cpp:151 ../src/msw/textctrl.cpp:2283 +msgid "Cu&t" +msgstr "&Wytnij" + +#: ../src/generic/filectrlg.cpp:956 +msgid "Current directory:" +msgstr "Bieżący katalog:" + +#: ../src/gtk/print.cpp:768 +msgid "Custom size" +msgstr "Rozmiar użytkownika" + +#: ../src/common/headerctrlcmn.cpp:60 +msgid "Customize Columns" +msgstr "Dostosuj kolumny" + +#: ../src/common/stockitem.cpp:151 ../src/stc/stc_i18n.cpp:17 +msgid "Cut" +msgstr "Wytnij" + +#: ../src/common/stockitem.cpp:259 +msgid "Cut selection" +msgstr "Wytnij wybór" + +#: ../src/common/fmapbase.cpp:152 +msgid "Cyrillic (ISO-8859-5)" +msgstr "Cyrylica (ISO-8859-5)" + +#: ../src/common/paper.cpp:100 +msgid "D sheet, 22 x 34 in" +msgstr "Arkusz D, 22 x 34 cali" + +#: ../src/msw/dde.cpp:708 +msgid "DDE poke request failed" +msgstr "żądanie danych z serwera DDE nie powiodło się" + +#: ../src/common/accelcmn.cpp:79 +msgid "DECIMAL" +msgstr "DECIMAL" + +#: ../src/common/accelcmn.cpp:47 +msgid "DEL" +msgstr "DEL" + +#: ../src/common/accelcmn.cpp:48 +msgid "DELETE" +msgstr "DELETE" + +#: ../src/common/imagbmp.cpp:1092 +msgid "DIB Header: Encoding doesn't match bitdepth." +msgstr "Nagłówek DIB: kodowanie nie odpowiada rozdzielczości." + +#: ../src/common/imagbmp.cpp:1040 +msgid "DIB Header: Image height > 32767 pixels for file." +msgstr "DIB nagłówek: Wysokość obrazu > 32767 pikseli." + +# dla pliku? moim zdaniem zbędne +#: ../src/common/imagbmp.cpp:1032 +msgid "DIB Header: Image width > 32767 pixels for file." +msgstr "Nagłówek DIB: Szerokość obrazu > 32767 pikseli." + +#: ../src/common/imagbmp.cpp:1060 +msgid "DIB Header: Unknown bitdepth in file." +msgstr "Nagłówek DIB: Plik z nieznaną rozdzielczością." + +#: ../src/common/imagbmp.cpp:1074 +msgid "DIB Header: Unknown encoding in file." +msgstr "Nagłówek DIB: Plik z nieznanym kodowaniem." + +#: ../src/common/accelcmn.cpp:80 +msgid "DIVIDE" +msgstr "DZIELIĆ" + +#: ../src/common/paper.cpp:122 +msgid "DL Envelope, 110 x 220 mm" +msgstr "Koperta DL, 110 x 220 mm" + +#: ../src/common/accelcmn.cpp:59 +msgid "DOWN" +msgstr "DÓŁ" + +#: ../src/richtext/richtextborderspage.cpp:545 +msgid "Dashed" +msgstr "" + +#: ../src/osx/carbon/dataview.cpp:1921 +msgid "Data object has invalid data format" +msgstr "Obiekt danych ma nieprawidłowy format" + +#: ../src/osx/carbon/dataview.cpp:2491 +msgid "Date renderer cannot render value; value type: " +msgstr "Render daty nie może renderować wartości; typ wartości:" + +#: ../src/generic/dbgrptg.cpp:300 +#, c-format +msgid "Debug report \"%s\"" +msgstr "Raport błędów \"%s\"" + +#: ../src/common/debugrpt.cpp:210 +msgid "Debug report couldn't be created." +msgstr "Wygenerowanie raport błędów nie powiodło się." + +#: ../src/common/debugrpt.cpp:558 +msgid "Debug report generation has failed." +msgstr "Generowanie raportu błędów nie powiodło się." + +#: ../src/generic/fontdlgg.cpp:323 +msgid "Decorative" +msgstr "Decorative" + +#: ../src/common/fmapbase.cpp:796 +msgid "Default encoding" +msgstr "Kodowanie domyślne" + +#: ../src/dfb/fontmgr.cpp:180 +msgid "Default font" +msgstr "Domyślna czcionka" + +#: ../src/generic/prntdlgg.cpp:515 +msgid "Default printer" +msgstr "Domyślna drukarka" + +#: ../src/richtext/richtextbuffer.cpp:7793 ../src/common/stockitem.cpp:152 +#: ../src/stc/stc_i18n.cpp:20 +msgid "Delete" +msgstr "Usuń" + +#: ../src/richtext/richtexttabspage.cpp:148 +msgid "Delete A&ll" +msgstr "&Usuń wszystko" + +#: ../src/richtext/richtextstyledlg.cpp:779 +msgid "Delete Style" +msgstr "Usuń styl" + +#: ../src/richtext/richtextctrl.cpp:1231 ../src/richtext/richtextctrl.cpp:1452 +msgid "Delete Text" +msgstr "Usuń tekst" + +#: ../src/richtext/richtextbuffer.cpp:10540 +msgid "Delete column" +msgstr "Usuń kolumnęUsuń wybór" + +#: ../src/generic/editlbox.cpp:274 +msgid "Delete item" +msgstr "Usuń pozycję" + +#: ../src/richtext/richtextbuffer.cpp:10472 +msgid "Delete row" +msgstr "Usuń wiersz" + +#: ../src/common/stockitem.cpp:260 +msgid "Delete selection" +msgstr "Usuń wybór" + +#: ../src/richtext/richtextstyledlg.cpp:779 +#, c-format +msgid "Delete style %s?" +msgstr "Usuń styl %s?" + +#: ../src/unix/snglinst.cpp:295 +#, c-format +msgid "Deleted stale lock file '%s'." +msgstr "Nieaktualny plik blokujący '%s' został usunięty." + +#: ../src/common/module.cpp:124 +#, c-format +msgid "Dependency \"%s\" of module \"%s\" doesn't exist." +msgstr "Zależność \"%s\" z modułu \"%s\" nie istnieje." + +#: ../src/common/stockitem.cpp:196 +msgid "Descending" +msgstr "MalejącoKodowanie domyślne" + +#: ../src/generic/dirctrlg.cpp:626 +msgid "Desktop" +msgstr "Pulpit" + +#: ../src/generic/aboutdlgg.cpp:70 +msgid "Developed by " +msgstr "Opracowane przez" + +#: ../src/generic/aboutdlgg.cpp:176 +msgid "Developers" +msgstr "Programiści" + +#: ../src/msw/dialup.cpp:393 +msgid "" +"Dial up functions are unavailable because the remote access service (RAS) is " +"not installed on this machine. Please install it." +msgstr "" +"Funkcje Dial up nie są dostępne, ponieważ serwis zdalnego dostępu (RAS) nie " +"jest zainstalowany na tej maszynie. Zainstaluj go." + +#: ../src/generic/tipdlg.cpp:230 +msgid "Did you know..." +msgstr "Czy wiesz że..." + +#: ../src/dfb/wrapdfb.cpp:63 +#, c-format +msgid "DirectFB error %d occurred." +msgstr "" + +#: ../src/motif/filedlg.cpp:219 +msgid "Directories" +msgstr "Katalogi" + +#: ../src/common/filefn.cpp:1250 +#, c-format +msgid "Directory '%s' couldn't be created" +msgstr "Nie można utworzyć katalogu '%s'" + +#: ../src/common/filefn.cpp:1270 +#, c-format +msgid "Directory '%s' couldn't be deleted" +msgstr "Nie można usunąć katalogu '%s'" + +#: ../src/generic/dirdlgg.cpp:233 +msgid "Directory does not exist" +msgstr "Katalog nie istnieje" + +#: ../src/generic/filectrlg.cpp:1412 +msgid "Directory doesn't exist." +msgstr "Katalog nie istnieje." + +#: ../src/common/docview.cpp:455 +msgid "Discard changes and reload the last saved version?" +msgstr "Odrzucić zmiany i wczytać ponownie ostatnio zapisaną wersję?" + +#: ../src/html/helpwnd.cpp:512 +msgid "" +"Display all index items that contain given substring. Search is case " +"insensitive." +msgstr "" +"Wyświetla wszystkie elementy indeksu zawierające podany łańcuch. Szuka bez " +"uwzględniania wielkości liter." + +#: ../src/html/helpwnd.cpp:692 +msgid "Display options dialog" +msgstr "Wyświetl okno dialogowe opcji" + +#: ../src/html/helpwnd.cpp:326 +msgid "Displays help as you browse the books on the left." +msgstr "Wyświetla pomoc podczas przeglądania książek po lewej." + +#: ../src/msw/mimetype.cpp:732 +msgid "" +"Do you want to overwrite the command used to %s files with extension \"%s" +"\" ?\n" +"Current value is \n" +"%s, \n" +"New value is \n" +"%s %1" +msgstr "" +"Chcesz zastąpić polecenie używane do plików %s z rozszerzeniem \"%s\" ?\n" +"Bieżaca wartość to \n" +"%s, \n" +"Nowa wartość to \n" +"%s %1" + +#: ../src/common/docview.cpp:531 +#, fuzzy, c-format +msgid "Do you want to save changes to %s?" +msgstr "Chcesz zapisać zmiany w dokumencie %s?" + +#: ../src/common/prntbase.cpp:525 +msgid "Document:" +msgstr "Dokument:" + +#: ../src/generic/aboutdlgg.cpp:73 +msgid "Documentation by " +msgstr "Dokumentacja autorstwa" + +#: ../src/generic/aboutdlgg.cpp:180 +msgid "Documentation writers" +msgstr "Autorzy dokumentacji" + +#: ../src/common/sizer.cpp:2680 +msgid "Don't Save" +msgstr "Nie Zapisuj" + +#: ../src/msw/frame.cpp:122 ../src/html/htmlwin.cpp:611 +msgid "Done" +msgstr "Zrobione" + +#: ../src/generic/progdlgg.cpp:481 ../src/msw/progdlg.cpp:407 +msgid "Done." +msgstr "Zrobione." + +#: ../src/richtext/richtextborderspage.cpp:544 +msgid "Dotted" +msgstr "Kropkowany" + +#: ../src/richtext/richtextborderspage.cpp:546 +#, fuzzy +msgid "Double" +msgstr "podwójnie" + +#: ../src/common/paper.cpp:177 +msgid "Double Japanese Postcard Rotated 148 x 200 mm" +msgstr "Podwójna Japońska Pocztówka Obrócona 148 x 200 mm" + +#: ../src/common/xtixml.cpp:273 +#, c-format +msgid "Doubly used id : %d" +msgstr "Dwukrotnie użyty identyfikator : %d" + +#: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:153 +msgid "Down" +msgstr "W dół" + +#: ../src/richtext/richtextctrl.cpp:814 +msgid "Drag" +msgstr "Przeciągnij" + +#: ../src/common/paper.cpp:101 +msgid "E sheet, 34 x 44 in" +msgstr "Arkusz E, 34 x 44 cale" + +#: ../src/common/accelcmn.cpp:61 +msgid "END" +msgstr "END" + +#: ../src/common/accelcmn.cpp:52 +msgid "ENTER" +msgstr "ENTER" + +#: ../src/unix/fswatcher_inotify.cpp:535 +msgid "EOF while reading from inotify descriptor" +msgstr "" + +#: ../src/common/accelcmn.cpp:64 +msgid "ESC" +msgstr "ESC" + +#: ../src/common/accelcmn.cpp:65 +msgid "ESCAPE" +msgstr "ESCAPE" + +#: ../src/common/accelcmn.cpp:73 +msgid "EXECUTE" +msgstr "WYKONAĆ" + +#: ../src/common/stockitem.cpp:154 +#, fuzzy +msgid "Edit" +msgstr "&Edytuj" + +#: ../src/generic/editlbox.cpp:272 +msgid "Edit item" +msgstr "Edytuj pozycję" + +#: ../include/wx/generic/progdlgg.h:84 +msgid "Elapsed time:" +msgstr "Upłynęło już:" + +#: ../src/richtext/richtextsizepage.cpp:350 +#: ../src/richtext/richtextsizepage.cpp:352 +#: ../src/richtext/richtextsizepage.cpp:462 +#: ../src/richtext/richtextsizepage.cpp:464 +#, fuzzy +msgid "Enable the height value." +msgstr "włącz wartość wysokości." + +#: ../src/richtext/richtextsizepage.cpp:435 +#: ../src/richtext/richtextsizepage.cpp:437 +msgid "Enable the maximum width value." +msgstr "Włącz wartość maksymalnej szerokości." + +#: ../src/richtext/richtextsizepage.cpp:408 +#: ../src/richtext/richtextsizepage.cpp:410 +#, fuzzy +msgid "Enable the minimum height value." +msgstr "Włącz minimalną wartość wysokości." + +#: ../src/richtext/richtextsizepage.cpp:381 +#: ../src/richtext/richtextsizepage.cpp:383 +msgid "Enable the minimum width value." +msgstr "Włącz wartość minimalnej szerokości." + +#: ../src/richtext/richtextsizepage.cpp:316 +#: ../src/richtext/richtextsizepage.cpp:318 +msgid "Enable the width value." +msgstr "Włącz wartość szerokości." + +#: ../src/richtext/richtextsizepage.cpp:277 +#: ../src/richtext/richtextsizepage.cpp:279 +msgid "Enable vertical alignment." +msgstr "Włącz wyrównanie w pionie." + +#: ../src/richtext/richtextbackgroundpage.cpp:133 +#: ../src/richtext/richtextbackgroundpage.cpp:135 +msgid "Enables a background colour." +msgstr "Włącza kolor tła" + +#: ../src/richtext/richtextstyledlg.cpp:931 +msgid "Enter a box style name" +msgstr "Podaj nową nazwę stylu bloku" + +#: ../src/richtext/richtextstyledlg.cpp:603 +msgid "Enter a character style name" +msgstr "Wprowadź nazwę stylu znaku" + +#: ../src/richtext/richtextstyledlg.cpp:817 +msgid "Enter a list style name" +msgstr "Wprowadź nazwę listy stylu" + +#: ../src/richtext/richtextstyledlg.cpp:890 +msgid "Enter a new style name" +msgstr "Podaj nową nazwę stylu" + +#: ../src/richtext/richtextstyledlg.cpp:651 +msgid "Enter a paragraph style name" +msgstr "Wprowadź nazwę stylu paragrafu" + +#: ../src/generic/dbgrptg.cpp:174 +#, c-format +msgid "Enter command to open file \"%s\":" +msgstr "Wprowadź komendę otwierającą plik \"%s\":" + +#: ../src/generic/helpext.cpp:463 +msgid "Entries found" +msgstr "Znalezione pozycje" + +#: ../src/common/paper.cpp:143 +msgid "Envelope Invite 220 x 220 mm" +msgstr "Koperta Invite 220 x 220 mm" + +#: ../src/common/config.cpp:473 +#, c-format +msgid "" +"Environment variables expansion failed: missing '%c' at position %u in '%s'." +msgstr "" +"Rozwinięcie zmiennych środowiskowych nie powiodło się: zabrakło '%c' na " +"pozycji '%u' w '%s'." + +#: ../src/generic/dirctrlg.cpp:670 ../src/generic/dirctrlg.cpp:688 +#: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 +#: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:791 +#: ../src/generic/filectrlg.cpp:805 ../src/generic/filectrlg.cpp:821 +#: ../src/generic/filectrlg.cpp:1381 ../src/generic/filectrlg.cpp:1412 +#: ../src/gtk/filedlg.cpp:73 ../src/gtk1/fontdlg.cpp:74 +msgid "Error" +msgstr "Błąd" + +#: ../src/unix/epolldispatcher.cpp:103 +msgid "Error closing epoll descriptor" +msgstr "Błąd zamknięcia deskryptora epoll" + +#: ../src/unix/fswatcher_kqueue.cpp:114 +msgid "Error closing kqueue instance" +msgstr "" + +#: ../src/generic/dirdlgg.cpp:251 +msgid "Error creating directory" +msgstr "Błąd przy tworzeniu katalogu" + +#: ../src/common/imagbmp.cpp:1103 +msgid "Error in reading image DIB." +msgstr "Błąd odczytu obrazu DIB." + +#: ../src/propgrid/propgrid.cpp:6563 +#, c-format +msgid "Error in resource: %s" +msgstr "Błąd w zasobie: %s" + +#: ../src/common/fileconf.cpp:453 +msgid "Error reading config options." +msgstr "Błąd odczytu opcji konfiguracji." + +#: ../src/common/fileconf.cpp:1064 +msgid "Error saving user configuration data." +msgstr "Błąd zapisu konfiguracji użytkownika." + +#: ../src/gtk/print.cpp:680 +msgid "Error while printing: " +msgstr "Błąd podczas drukowania:" + +#: ../src/common/log.cpp:225 +msgid "Error: " +msgstr "Błąd: " + +#: ../src/common/fmapbase.cpp:150 +msgid "Esperanto (ISO-8859-3)" +msgstr "Esperanto (ISO-8859-3)" + +#: ../include/wx/generic/progdlgg.h:85 +msgid "Estimated time:" +msgstr "Szacowany czas:" + +#: ../src/unix/fswatcher_inotify.cpp:639 +msgid "Event queue overflowed" +msgstr "Przepełniona kolejka zdarzeń" + +#: ../src/generic/dbgrptg.cpp:234 +msgid "Executable files (*.exe)|*.exe|" +msgstr "Pliki wykonywalne (*.exe)|*.exe|" + +#: ../src/common/stockitem.cpp:155 +msgid "Execute" +msgstr "Uruchom" + +#: ../src/msw/utilsexc.cpp:888 +#, c-format +msgid "Execution of command '%s' failed" +msgstr "Wykonanie polecenia '%s' nie powiodło się" + +#: ../src/os2/utilsexc.cpp:163 +#, c-format +msgid "Execution of command '%s' failed with error: %ul" +msgstr "Wykonanie polecenia '%s' nie powiodło się; błąd: %ul" + +#: ../src/common/paper.cpp:106 +msgid "Executive, 7 1/4 x 10 1/2 in" +msgstr "Executive, 7 1/4 x 10 1/2 cali" + +#: ../src/msw/registry.cpp:1230 +#, c-format +msgid "" +"Exporting registry key: file \"%s\" already exists and won't be overwritten." +msgstr "" +"Eksport klucza rejestrów: plik \"%s\" już istnieje i nie może zostać " +"nadpisany." + +#: ../src/common/fmapbase.cpp:195 +msgid "Extended Unix Codepage for Japanese (EUC-JP)" +msgstr "Japońska rozszerzona strona kodowa UNIX (EUC-JP)" + +#: ../src/html/chm.cpp:725 +#, c-format +msgid "Extraction of '%s' into '%s' failed." +msgstr "Pobranie '%s' do '%s' nie powiodło się." + +#: ../src/common/accelcmn.cpp:238 ../src/common/accelcmn.cpp:333 +msgid "F" +msgstr "F" + +# To jest maska do tworzenia nazw typu NowaNaz1 itd +#: ../src/propgrid/advprops.cpp:640 +msgid "Face Name" +msgstr "" + +#: ../src/unix/snglinst.cpp:269 +msgid "Failed to access lock file." +msgstr "Nie udało się dostać do pliku blokującego." + +#: ../src/unix/epolldispatcher.cpp:116 +#, c-format +msgid "Failed to add descriptor %d to epoll descriptor %d" +msgstr "Nie udało się dodać deskryptora %d do deskryptora epoll %d" + +#: ../src/msw/dib.cpp:548 +#, fuzzy, c-format +msgid "Failed to allocate %luKb of memory for bitmap data." +msgstr "Nie udała się rezerwacja %luKb pamięci na dane obrazu." + +#: ../src/common/glcmn.cpp:87 +msgid "Failed to allocate colour for OpenGL" +msgstr "Nie udało się przydzielić koloru dla OpenGL" + +# uchwyt chyba zbędny +#: ../src/unix/displayx11.cpp:288 +msgid "Failed to change video mode" +msgstr "Nie udało się zmienić trybu video" + +#: ../src/common/image.cpp:3139 +#, fuzzy, c-format +msgid "Failed to check format of image file \"%s\"." +msgstr "Nie udało się zapisać obrazu do pliku \"%s\"." + +#: ../src/common/debugrpt.cpp:244 +#, c-format +msgid "Failed to clean up debug report directory \"%s\"" +msgstr "Nie udało się czyszczenie katalogu raportu błędów \"%s\"" + +# uchwyt chyba zbędny +#: ../src/common/filename.cpp:211 +msgid "Failed to close file handle" +msgstr "Nie udało się zamknąć pliku." + +#: ../src/unix/snglinst.cpp:334 +#, c-format +msgid "Failed to close lock file '%s'" +msgstr "Nie udało się zamknąć pliku blokującego '%s'" + +#: ../src/msw/clipbrd.cpp:115 +msgid "Failed to close the clipboard." +msgstr "Nie udało się zamknąć schowka." + +#: ../src/x11/utils.cpp:204 +#, c-format +msgid "Failed to close the display \"%s\"" +msgstr "Nie udało się zamknąć ekranu \"%s\"" + +#: ../src/msw/dialup.cpp:818 +msgid "Failed to connect: missing username/password." +msgstr "Nie udało się połączyć: brakuje użytkownika/hasła." + +#: ../src/msw/dialup.cpp:764 +msgid "Failed to connect: no ISP to dial." +msgstr "Nie udało się połączyć: brak ISP." + +# uchwyt chyba zbędny +#: ../src/common/textfile.cpp:200 +#, c-format +msgid "Failed to convert file \"%s\" to Unicode." +msgstr "Nie udało się zamienić pliku \"%s\" na Unicode." + +#: ../src/generic/logg.cpp:976 +msgid "Failed to copy dialog contents to the clipboard." +msgstr "Nie udało się skopiować treści dialogu do schowka." + +#: ../src/msw/registry.cpp:691 +#, c-format +msgid "Failed to copy registry value '%s'" +msgstr "Nie udało się skopiować wartości rejestru '%s'" + +#: ../src/msw/registry.cpp:700 +#, c-format +msgid "Failed to copy the contents of registry key '%s' to '%s'." +msgstr "Nie udało się skopiować zawartości klucza rejestru '%s' do '%s'." + +#: ../src/common/filefn.cpp:1058 +#, c-format +msgid "Failed to copy the file '%s' to '%s'" +msgstr "Nie udało się skopiować pliku '%s' do '%s'." + +#: ../src/msw/registry.cpp:678 +#, c-format +msgid "Failed to copy the registry subkey '%s' to '%s'." +msgstr "Nie udało się kopiowanie klucza rejestru '%s' na '%s'." + +#: ../src/msw/dde.cpp:1073 +msgid "Failed to create DDE string" +msgstr "Nie udało się utworzyć łańcucha DDE" + +#: ../src/msw/mdi.cpp:590 +msgid "Failed to create MDI parent frame." +msgstr "Nie udało się utworzyć ramki rodzica MDI." + +#: ../src/common/filename.cpp:1080 +msgid "Failed to create a temporary file name" +msgstr "Nie udało się wygenerować nazwy dla pliku tymczasowego" + +# dlaczego anonimowego? +#: ../src/msw/utilsexc.cpp:235 +msgid "Failed to create an anonymous pipe" +msgstr "Nie udało się utworzyć potoku" + +#: ../src/msw/ole/automtn.cpp:522 +#, c-format +msgid "Failed to create an instance of \"%s\"" +msgstr "Nie udało się utworzenie instancji \"%s\"" + +#: ../src/msw/dde.cpp:442 +#, c-format +msgid "Failed to create connection to server '%s' on topic '%s'" +msgstr "Nie udało się utworzyć połączenia do serwera '%s' na temat '%s'" + +#: ../src/msw/cursor.cpp:212 +msgid "Failed to create cursor." +msgstr "Nie udało się utworzyć kursora." + +#: ../src/common/debugrpt.cpp:209 +#, c-format +msgid "Failed to create directory \"%s\"" +msgstr "Nie udało się utworzenie katalogu \"%s\"" + +#: ../src/generic/dirdlgg.cpp:249 +#, c-format +msgid "" +"Failed to create directory '%s'\n" +"(Do you have the required permissions?)" +msgstr "" +"Nie udało się utworzyć katalogu '%s'\n" +"(Posiadasz wymagane prawa dostępu?)" + +#: ../src/unix/epolldispatcher.cpp:84 +msgid "Failed to create epoll descriptor" +msgstr "Nie udało się utworzyć deskryptora epoll" + +#: ../src/msw/mimetype.cpp:198 +#, c-format +msgid "Failed to create registry entry for '%s' files." +msgstr "Nie udało się utworzyć pozycji rejestru dla plików '%s'." + +#: ../src/msw/fdrepdlg.cpp:442 +#, c-format +msgid "Failed to create the standard find/replace dialog (error code %d)" +msgstr "" +"Nie udało się utworzyć standardowego okna dialogowego wyszukaj/zastąp (kod " +"błędu %d)" + +#: ../src/unix/wakeuppipe.cpp:52 +msgid "Failed to create wake up pipe used by event loop." +msgstr "Nie udało się utworzyć potoku budzącego używanego przez pętlę zdarzeń" + +#: ../src/html/winpars.cpp:739 +#, c-format +msgid "Failed to display HTML document in %s encoding" +msgstr "Nie udało się wyświelić dokumentu HTML w kodowaniu %s" + +#: ../src/msw/clipbrd.cpp:127 +msgid "Failed to empty the clipboard." +msgstr "Nie udało się opróżnić schowka." + +#: ../src/unix/displayx11.cpp:265 +msgid "Failed to enumerate video modes" +msgstr "Nie udało się pobranie listy trybów video" + +# to moja swobodna interpretacja +#: ../src/msw/dde.cpp:727 +msgid "Failed to establish an advise loop with DDE server" +msgstr "" +"Nie udało się rozpocząć transakcji doradzającej (advise) z serwerem DDE" + +#: ../src/msw/dialup.cpp:650 ../src/msw/dialup.cpp:884 +#, c-format +msgid "Failed to establish dialup connection: %s" +msgstr "Nie udało się nawiązać połączenia dialup: %s" + +#: ../src/unix/utilsunx.cpp:617 +#, c-format +msgid "Failed to execute '%s'\n" +msgstr "Nie udało się wykonać '%s'\n" + +#: ../src/common/debugrpt.cpp:725 +msgid "Failed to execute curl, please install it in PATH." +msgstr "" +"Nie udało się uruchomienie curl, proszę zainstalować go w dostępnym katalogu " +"(PATH)." + +#: ../src/msw/ole/automtn.cpp:505 +#, c-format +msgid "Failed to find CLSID of \"%s\"" +msgstr "" + +#: ../src/common/regex.cpp:434 ../src/common/regex.cpp:482 +#, c-format +msgid "Failed to find match for regular expression: %s" +msgstr "Nie udało się znaleźć połączenia dla regularnego wyrażenia: %s" + +#: ../src/msw/dialup.cpp:716 +#, c-format +msgid "Failed to get ISP names: %s" +msgstr "Nie udało się usyskać listy ISP: %s" + +#: ../src/msw/ole/automtn.cpp:574 +#, c-format +msgid "Failed to get OLE automation interface for \"%s\"" +msgstr "" + +#: ../src/msw/clipbrd.cpp:747 +msgid "Failed to get data from the clipboard" +msgstr "Nie udało się pobrać danych ze schowka" + +#: ../src/common/time.cpp:249 +msgid "Failed to get the local system time" +msgstr "Nie udało się pobrać lokalnego czasu systemowego" + +#: ../src/common/filefn.cpp:1452 +msgid "Failed to get the working directory" +msgstr "Nie udało się uzyskać katalogu roboczego" + +#: ../src/univ/theme.cpp:113 +msgid "Failed to initialize GUI: no built-in themes found." +msgstr "Nie udało się zainicjować GUI: brak wbudowanych kompozycji." + +#: ../src/msw/helpchm.cpp:63 +msgid "Failed to initialize MS HTML Help." +msgstr "Nie udało się zainicjować pomocy MS HTML." + +#: ../src/msw/glcanvas.cpp:892 +msgid "Failed to initialize OpenGL" +msgstr "Nie udało się zainicjować OpenGL" + +#: ../src/msw/dialup.cpp:879 +#, c-format +msgid "Failed to initiate dialup connection: %s" +msgstr "Nie udało się rozpocząć połączenia dialup: %s" + +#: ../src/gtk/textctrl.cpp:1117 +msgid "Failed to insert text in the control." +msgstr "Nie udało się wstawić tekstu w kontroli." + +#: ../src/unix/snglinst.cpp:241 +#, c-format +msgid "Failed to inspect the lock file '%s'" +msgstr "Nie udało się sprawdzenie blokady pliku '%s'" + +# uchwyt chyba zbędny +#: ../src/unix/appunix.cpp:182 +msgid "Failed to install signal handler" +msgstr "Nie udało się zainstalować obsługi sygnału" + +# połączyć? +# wyciek? +#: ../src/unix/threadpsx.cpp:1162 +msgid "" +"Failed to join a thread, potential memory leak detected - please restart the " +"program" +msgstr "" +"Nie udało połączyć się z wątkiem, potencjalny wyciek pamięci - uruchom " +"program ponownie" + +#: ../src/msw/utils.cpp:745 +#, c-format +msgid "Failed to kill process %d" +msgstr "Nie udało się zabić procesu %d" + +#: ../src/common/image.cpp:2365 +#, c-format +msgid "Failed to load bitmap \"%s\" from resources." +msgstr "Nie udało się wczytanie obrazu \"%s\" z zasobów." + +#: ../src/common/image.cpp:2374 +#, c-format +msgid "Failed to load icon \"%s\" from resources." +msgstr "Nie udało się wczytanie ikony \"%s\" z zasobów." + +#: ../src/common/iconbndl.cpp:182 +#, c-format +msgid "Failed to load image %%d from file '%s'." +msgstr "Nie udało się wczytanie obrazu %%d z pliku '%s'." + +#: ../src/common/iconbndl.cpp:190 +#, c-format +msgid "Failed to load image %d from stream." +msgstr "Nie udało się wczytanie obrazu %d ze strumienia." + +#: ../src/common/image.cpp:2450 ../src/common/image.cpp:2469 +#, c-format +msgid "Failed to load image from file \"%s\"." +msgstr "Nie udało się wczytanie obrazu z pliku \"%s\"." + +#: ../src/msw/enhmeta.cpp:97 +#, c-format +msgid "Failed to load metafile from file \"%s\"." +msgstr "Nie udało się załadowanie pliku meta \"%s\"." + +#: ../src/msw/volume.cpp:327 +msgid "Failed to load mpr.dll." +msgstr "Nie udało się wczytać mpr.dll." + +#: ../src/msw/utils.cpp:1120 +#, c-format +msgid "Failed to load resource \"%s\"." +msgstr "Nie udało się wczytanie zasobu \"%s\"." + +#: ../src/common/dynlib.cpp:100 +#, c-format +msgid "Failed to load shared library '%s'" +msgstr "Nie udało się wczytać biblioteki '%s'." + +#: ../src/msw/utils.cpp:1127 +#, c-format +msgid "Failed to lock resource \"%s\"." +msgstr "Nie udało się zablokowanie zasobu \"%s\"." + +#: ../src/unix/snglinst.cpp:198 +#, c-format +msgid "Failed to lock the lock file '%s'" +msgstr "Nie udało się zablokować pliku blokującego '%s'" + +#: ../src/unix/epolldispatcher.cpp:136 +#, c-format +msgid "Failed to modify descriptor %d in epoll descriptor %d" +msgstr "Nie można zmienić hasła %d w deskryptorze epoll %d" + +# nieładne +#: ../src/common/filename.cpp:2681 +#, c-format +msgid "Failed to modify file times for '%s'" +msgstr "Nie udało się zmodyfikować czasów pliku '%s'" + +#: ../src/common/selectdispatcher.cpp:252 +msgid "Failed to monitor I/O channels" +msgstr "Nie udało się monitorować kanałów wejściowych/wyjściowych" + +#: ../src/common/filename.cpp:194 +#, c-format +msgid "Failed to open '%s' for reading" +msgstr "Nie udało się otworzyć '%s' do odczytu" + +#: ../src/common/filename.cpp:199 +#, c-format +msgid "Failed to open '%s' for writing" +msgstr "Nie udało się otworzyć '%s' do zapisu" + +#: ../src/html/chm.cpp:141 +#, c-format +msgid "Failed to open CHM archive '%s'." +msgstr "Nie udało się otworzyć archiwum CHM '%s'." + +#: ../src/common/utilscmn.cpp:1135 +#, c-format +msgid "Failed to open URL \"%s\" in default browser." +msgstr "Nie udało się otworzyć URL \"%s\" w domyślnej przeglądarce." + +#: ../include/wx/msw/private/fswatcher.h:92 +#, c-format +msgid "Failed to open directory \"%s\" for monitoring." +msgstr "Nie udało się otwarcie monitoringu katalogu \"%s\"." + +#: ../src/x11/utils.cpp:223 +#, c-format +msgid "Failed to open display \"%s\"." +msgstr "Nie udało się otworzyć ekranu \"%s\"." + +#: ../src/common/filename.cpp:1115 +msgid "Failed to open temporary file." +msgstr "Nie udało się otworzyć pliku tymczasowego." + +#: ../src/msw/clipbrd.cpp:94 +msgid "Failed to open the clipboard." +msgstr "Nie udało się otworzyć schowka." + +#: ../src/common/translation.cpp:1170 +#, fuzzy, c-format +msgid "Failed to parse Plural-Forms: '%s'" +msgstr "Nie można przetworzyć formy liczby mnogiej: '%s'" + +#: ../src/unix/mediactrl.cpp:1268 +#, c-format +msgid "Failed to prepare playing \"%s\"." +msgstr "Nie udało się przygotowanie odtwarzania \"%s\"." + +#: ../src/msw/clipbrd.cpp:647 +msgid "Failed to put data on the clipboard" +msgstr "Nie udało się umieścić danych w schowku" + +#: ../src/unix/snglinst.cpp:278 +msgid "Failed to read PID from lock file." +msgstr "Nie udało sie odczytać identyfikatora z pliku blokującego." + +#: ../src/common/fileconf.cpp:464 +msgid "Failed to read config options." +msgstr "Nie udało się odczytać opcji konfiguracji." + +#: ../src/common/docview.cpp:678 +#, c-format +msgid "Failed to read document from the file \"%s\"." +msgstr "Nie udało się wczytanie dokumentu z pliku \"%s\"." + +#: ../src/dfb/evtloop.cpp:98 +msgid "Failed to read event from DirectFB pipe" +msgstr "" + +#: ../src/unix/wakeuppipe.cpp:120 +msgid "Failed to read from wake-up pipe" +msgstr "Nie udało się czytać z potoku budzącego " + +#: ../src/unix/utilsunx.cpp:685 +msgid "Failed to redirect child process input/output" +msgstr "Nie udało się przekierować wejścia/wyjścia procesu potomnego." + +#: ../src/msw/utilsexc.cpp:697 +msgid "Failed to redirect the child process IO" +msgstr "Nie udało się przekierować wejścia/wyjścia procesu potomnego" + +#: ../src/msw/dde.cpp:293 +#, c-format +msgid "Failed to register DDE server '%s'" +msgstr "Nie udało się zarejestrować serwera DDE '%s'" + +#: ../src/common/fontmap.cpp:245 +#, c-format +msgid "Failed to remember the encoding for the charset '%s'." +msgstr "Nie udało się zapamiętać kodowania dla zestawu znaków '%s'" + +#: ../src/common/debugrpt.cpp:227 +#, c-format +msgid "Failed to remove debug report file \"%s\"" +msgstr "Nie udało się usunięcie pliku raportu błędów \"%s\"" + +#: ../src/unix/snglinst.cpp:322 +#, c-format +msgid "Failed to remove lock file '%s'" +msgstr "Nie udało się usunąć pliku blokującego '%s'" + +# stale --> ? +#: ../src/unix/snglinst.cpp:288 +#, c-format +msgid "Failed to remove stale lock file '%s'." +msgstr "Nie udało się usunąć nieaktualnego pliku blokującego '%s'." + +#: ../src/msw/registry.cpp:528 +#, c-format +msgid "Failed to rename registry value '%s' to '%s'." +msgstr "Nie udało się zmienić nazwy wartości rejestru '%s' do '%s'." + +#: ../src/common/filefn.cpp:1168 +#, c-format +msgid "" +"Failed to rename the file '%s' to '%s' because the destination file already " +"exists." +msgstr "" +"Nie udało się zmienić nazwy pliku '%s' na '%s', ponieważ plik docelowy już " +"istnieje." + +#: ../src/msw/registry.cpp:633 +#, c-format +msgid "Failed to rename the registry key '%s' to '%s'." +msgstr "Nie udało się zmienić nazwy klucza rejestru '%s' na '%s'." + +#: ../src/msw/clipbrd.cpp:497 +msgid "Failed to retrieve data from the clipboard." +msgstr "Nie udało się odzyskać danych ze schowka." + +#: ../src/common/filename.cpp:2777 +#, c-format +msgid "Failed to retrieve file times for '%s'" +msgstr "Nie udało się odczytać czasów pliku '%s'" + +#: ../src/msw/dialup.cpp:487 +msgid "Failed to retrieve text of RAS error message" +msgstr "Nie udało się uzyskać tekstu komunikatu błędu RAS" + +#: ../src/msw/clipbrd.cpp:784 +msgid "Failed to retrieve the supported clipboard formats" +msgstr "Nie udało się uzyskać listy formatów obsługiwanych przez schowek" + +#: ../src/common/docview.cpp:649 +#, c-format +msgid "Failed to save document to the file \"%s\"." +msgstr "Nie udało się zapisać dokumentu do pliku \"%s\"." + +#: ../src/msw/dib.cpp:326 +#, c-format +msgid "Failed to save the bitmap image to file \"%s\"." +msgstr "Nie udało się zapisać obrazu do pliku \"%s\"." + +#: ../src/msw/dde.cpp:768 +msgid "Failed to send DDE advise notification" +msgstr "Nie udało się wysłać powiadomienia DDE" + +#: ../src/common/ftp.cpp:404 +#, c-format +msgid "Failed to set FTP transfer mode to %s." +msgstr "FTP: Nie udało się ustawić trybu transmisji na '%s'." + +#: ../src/msw/clipbrd.cpp:373 +msgid "Failed to set clipboard data." +msgstr "Nie udało się skorzystać ze schowka." + +#: ../src/unix/snglinst.cpp:181 +#, c-format +msgid "Failed to set permissions on lock file '%s'" +msgstr "Nie udało się nadanie praw dostępu na blokowanym pliku '%s'" + +#: ../src/unix/utilsunx.cpp:674 +msgid "Failed to set process priority" +msgstr "" + +#: ../src/common/file.cpp:576 +msgid "Failed to set temporary file permissions" +msgstr "Nie udało się nadać praw dostępu pliku tymczasowemu" + +#: ../src/gtk/textctrl.cpp:1058 +msgid "Failed to set text in the text control." +msgstr "Nie udało się ustawić tekstu w kontroli tekstu." + +#: ../src/unix/threadpsx.cpp:1293 +#, c-format +msgid "Failed to set thread concurrency level to %lu" +msgstr "" + +#: ../src/unix/threadpsx.cpp:1377 ../src/unix/threadpsx.cpp:1387 +#, c-format +msgid "Failed to set thread priority %d." +msgstr "Nie udało się zmienić priorytetu wątku na %d." + +#: ../src/unix/utilsunx.cpp:791 +msgid "Failed to set up non-blocking pipe, the program might hang." +msgstr "Nie udało się ustawić nieblokowego potoku, program może się zawiesić." + +#: ../src/common/fs_mem.cpp:261 +#, c-format +msgid "Failed to store image '%s' to memory VFS!" +msgstr "Nie udało się odłożyć obrazu '%s' do pamięci VFS!" + +#: ../src/dfb/evtloop.cpp:170 +msgid "Failed to switch DirectFB pipe to non-blocking mode" +msgstr "" + +#: ../src/unix/wakeuppipe.cpp:59 +msgid "Failed to switch wake up pipe to non-blocking mode" +msgstr "Nie udało się przełączyć potoku budzącego na modus nie-blokujący" + +#: ../src/unix/threadpsx.cpp:1569 +msgid "Failed to terminate a thread." +msgstr "Nie udało się zakończyć wątku." + +#: ../src/msw/dde.cpp:746 +msgid "Failed to terminate the advise loop with DDE server" +msgstr "" +"Nie udało się zakończyć transakcji doradzającej (advise) z serwerem DDE" + +#: ../src/msw/dialup.cpp:959 +#, c-format +msgid "Failed to terminate the dialup connection: %s" +msgstr "Nie udało się zakończyć połączenia dialup: %s" + +#: ../src/common/filename.cpp:2696 +#, c-format +msgid "Failed to touch the file '%s'" +msgstr "Nie udało się zmienić czasów pliku '%s'" + +#: ../src/unix/snglinst.cpp:328 +#, c-format +msgid "Failed to unlock lock file '%s'" +msgstr "Nie udało się odblokować pliku blokującego '%s'" + +#: ../src/msw/dde.cpp:314 +#, c-format +msgid "Failed to unregister DDE server '%s'" +msgstr "Nie udało się wyrejestrować serwera DDE '%s'" + +#: ../src/unix/epolldispatcher.cpp:155 +#, c-format +msgid "Failed to unregister descriptor %d from epoll descriptor %d" +msgstr "Nie udało się wyrejestrować deskryptora %d z deskryptora epoll %d" + +#: ../src/common/fileconf.cpp:1037 +msgid "Failed to update user configuration file." +msgstr "Nie udała się aktualizacja pliku konfiguracyjnego użytkownika." + +#: ../src/common/debugrpt.cpp:738 +#, c-format +msgid "Failed to upload the debug report (error code %d)." +msgstr "Nie udało się przesłanie raportu błędów (kod błędu %d)" + +# ze źródeł wynika że chodzi o PID +#: ../src/unix/snglinst.cpp:168 +#, c-format +msgid "Failed to write to lock file '%s'" +msgstr "Nie udało się zapisać identyfikatora do pliku blokującego '%s'" + +#: ../src/propgrid/propgrid.cpp:172 +msgid "False" +msgstr "" + +#: ../src/propgrid/advprops.cpp:658 +msgid "Family" +msgstr "" + +#: ../src/common/stockitem.cpp:157 ../src/msw/wince/filedlgwce.cpp:121 +msgid "File" +msgstr "Plik" + +#: ../src/common/docview.cpp:666 +#, fuzzy, c-format +msgid "File \"%s\" could not be opened for reading." +msgstr "Nie udało się otworzyć '%s' do odczytu" + +#: ../src/common/docview.cpp:643 +#, fuzzy, c-format +msgid "File \"%s\" could not be opened for writing." +msgstr "Nie udało się otworzyć '%s' do zapisu" + +#: ../src/gtk/filedlg.cpp:56 +#, c-format +msgid "File '%s' already exists, do you really want to overwrite it?" +msgstr "Plik '%s' już istnieje, naprawdę chcesz go zastąpić?" + +#: ../src/os2/filedlg.cpp:310 +#, c-format +msgid "" +"File '%s' already exists.\n" +"Do you want to replace it?" +msgstr "" +"Plik '%s' już istnieje.\n" +"Chcesz go zastąpić?" + +#: ../src/common/filefn.cpp:1206 +#, c-format +msgid "File '%s' couldn't be removed" +msgstr "Plik '%s' nie mógł zostać usunięty" + +#: ../src/common/filefn.cpp:1187 +#, c-format +msgid "File '%s' couldn't be renamed '%s'" +msgstr "Nazwa pliku '%s' nie mogła zostać zmieniona '%s'" + +#: ../src/richtext/richtextctrl.cpp:2688 ../src/common/textcmn.cpp:921 +msgid "File couldn't be loaded." +msgstr "Plik nie może być wczytany." + +#: ../src/msw/filedlg.cpp:458 +#, c-format +msgid "File dialog failed with error code %0lx." +msgstr "" + +#: ../src/common/docview.cpp:1772 +msgid "File error" +msgstr "Błąd plikowy" + +#: ../src/generic/dirctrlg.cpp:688 ../src/generic/filectrlg.cpp:805 +msgid "File name exists already." +msgstr "Plik o tej nazwie już istnieje." + +#: ../src/motif/filedlg.cpp:220 +msgid "Files" +msgstr "Pliki" + +#: ../src/common/filefn.cpp:1760 +#, c-format +msgid "Files (%s)" +msgstr "Pliki (%s)" + +#: ../src/motif/filedlg.cpp:218 +msgid "Filter" +msgstr "Filtr" + +#: ../src/common/stockitem.cpp:158 ../src/html/helpwnd.cpp:500 +msgid "Find" +msgstr "Znajdź" + +#: ../src/common/stockitem.cpp:159 +#, fuzzy +msgid "First" +msgstr "pierwszy" + +#: ../src/common/prntbase.cpp:1518 +msgid "First page" +msgstr "Pierwsza strona" + +#: ../src/richtext/richtextsizepage.cpp:518 +#, fuzzy +msgid "Fixed" +msgstr "Czcionka o stałej szerokości:" + +#: ../src/html/helpwnd.cpp:1219 +msgid "Fixed font:" +msgstr "Czcionka o stałej szerokości:" + +#: ../src/html/helpwnd.cpp:1282 +msgid "Fixed size face.
    bold italic " +msgstr "Ustalony rozmiar tekstu.
    pogrubienie kursywa " + +#: ../src/richtext/richtextsizepage.cpp:226 +msgid "Floating" +msgstr "Pływający" + +#: ../src/common/stockitem.cpp:160 +msgid "Floppy" +msgstr "Dyskietka" + +#: ../src/common/paper.cpp:112 +msgid "Folio, 8 1/2 x 13 in" +msgstr "Folio, 8 1/2 x 13 cali" + +#: ../src/richtext/richtextformatdlg.cpp:324 ../src/osx/carbon/fontdlg.cpp:473 +#: ../src/common/stockitem.cpp:194 +msgid "Font" +msgstr "Czcionka" + +#: ../src/richtext/richtextfontpage.cpp:230 +msgid "Font &weight:" +msgstr "&Waga czcionki:" + +#: ../src/html/helpwnd.cpp:1220 +msgid "Font size:" +msgstr "Rozmiar czcionki:" + +#: ../src/richtext/richtextfontpage.cpp:217 +msgid "Font st&yle:" +msgstr "&Styl czcionki:" + +#: ../src/osx/carbon/fontdlg.cpp:515 +msgid "Font:" +msgstr "Czcionka:" + +#: ../src/dfb/fontmgr.cpp:198 +#, c-format +msgid "Fonts index file %s disappeared while loading fonts." +msgstr "Plik indeksu czcionek %s znikł podczas ładowania czcionek." + +#: ../src/unix/utilsunx.cpp:651 +msgid "Fork failed" +msgstr "Rozwidlenie nie powiodło się" + +#: ../src/common/stockitem.cpp:161 +#, fuzzy +msgid "Forward" +msgstr "&Dalej" + +#: ../src/common/xtixml.cpp:235 +msgid "Forward hrefs are not supported" +msgstr "Przekazywanie właściwości 'href' nie jest wspierane" + +#: ../src/html/helpwnd.cpp:888 +#, c-format +msgid "Found %i matches" +msgstr "Znaleziono %i odpowiednik(i/ów)" + +#: ../src/generic/prntdlgg.cpp:243 +msgid "From:" +msgstr "Od:" + +# ...indeks w grafice (?) +# ideks - katalog, wska?nik? +#: ../src/common/imaggif.cpp:160 +msgid "GIF: Invalid gif index." +msgstr "GIF: Brak obrazu o podanym indeksie." + +#: ../src/common/imaggif.cpp:150 +msgid "GIF: data stream seems to be truncated." +msgstr "GIF: strumień daych wygląda na obcięty." + +#: ../src/common/imaggif.cpp:134 +msgid "GIF: error in GIF image format." +msgstr "GIF: błąd w formacie obrazu GIF." + +#: ../src/common/imaggif.cpp:137 +msgid "GIF: not enough memory." +msgstr "GIF: za mało pamięci." + +#: ../src/common/imaggif.cpp:140 +msgid "GIF: unknown error!!!" +msgstr "GIF: neznany błąd !!!" + +#: ../src/gtk/window.cpp:4266 +msgid "" +"GTK+ installed on this machine is too old to support screen compositing, " +"please install GTK+ 2.12 or later." +msgstr "" +"GTK+ zainstalowana na tej maszynie jest zbyt stara i nie wspiera kompozycji " +"ekranu, proszę zainstalować GTK+ 2.12 lub nowszą." + +#: ../src/univ/themes/gtk.cpp:525 +msgid "GTK+ theme" +msgstr "Kompozycja GTK+" + +#: ../src/common/preferencescmn.cpp:39 +msgid "General" +msgstr "Ogólne" + +#: ../src/common/prntbase.cpp:243 +msgid "Generic PostScript" +msgstr "PostScript" + +#: ../src/common/paper.cpp:136 +msgid "German Legal Fanfold, 8 1/2 x 13 in" +msgstr "Składanka German Legal, 8 1/2 x 13 cali" + +#: ../src/common/paper.cpp:135 +msgid "German Std Fanfold, 8 1/2 x 12 in" +msgstr "Składanka German Std, 8 1/2 x 12 cali" + +#: ../include/wx/xtiprop.h:188 +msgid "GetProperty called w/o valid getter" +msgstr "Funkcja GetProperty wywołana bez poprawnego modułu pobierającego" + +#: ../include/wx/xtiprop.h:266 +msgid "GetPropertyCollection called on a generic accessor" +msgstr "Funkcja GetPropertyCollection wywołana w ogólnym akcesorze" + +#: ../include/wx/xtiprop.h:206 +msgid "GetPropertyCollection called w/o valid collection getter" +msgstr "" +"Funkcja GetPropertyCollection wywołana bez poprawnego modułu pobierającego" + +#: ../src/html/helpwnd.cpp:673 +msgid "Go back" +msgstr "Idź wstecz" + +#: ../src/html/helpwnd.cpp:674 +msgid "Go forward" +msgstr "Idź dalej" + +#: ../src/html/helpwnd.cpp:676 +msgid "Go one level up in document hierarchy" +msgstr "Idź poziom wyżej w hierarchi dokumentu" + +#: ../src/generic/filedlgg.cpp:223 ../src/generic/dirdlgg.cpp:136 +msgid "Go to home directory" +msgstr "Idź do katalogu domowego" + +#: ../src/generic/filedlgg.cpp:219 +msgid "Go to parent directory" +msgstr "Idź do katalogu nadrzędnego" + +#: ../src/generic/aboutdlgg.cpp:76 +msgid "Graphics art by " +msgstr "Grafika autorstwa" + +#: ../src/common/fmapbase.cpp:154 +msgid "Greek (ISO-8859-7)" +msgstr "Grecki (ISO-8859-7)" + +#: ../src/richtext/richtextborderspage.cpp:547 +msgid "Groove" +msgstr "Groove" + +#: ../src/common/zstream.cpp:158 ../src/common/zstream.cpp:318 +msgid "Gzip not supported by this version of zlib" +msgstr "Format Gzip nie jest wspierany przez tę wersję biblioteki zlib" + +#: ../src/common/accelcmn.cpp:75 +msgid "HELP" +msgstr "POMOC" + +#: ../src/common/accelcmn.cpp:60 +msgid "HOME" +msgstr "HOME" + +#: ../src/html/helpwnd.cpp:1552 +msgid "HTML Help Project (*.hhp)|*.hhp|" +msgstr "Plik projektu pomocy HTML Help (*.hhp)|*.hhp|" + +# Kotwica? +#: ../src/html/htmlwin.cpp:659 +#, c-format +msgid "HTML anchor %s does not exist." +msgstr "HTML: kotwica %s ie istnieje." + +#: ../src/html/helpwnd.cpp:1550 +msgid "HTML files (*.html;*.htm)|*.html;*.htm|" +msgstr "Pliki HTML (*.html;*.htm)|*.html;*.htm|" + +#: ../src/common/stockitem.cpp:162 +msgid "Harddisk" +msgstr "Dysk twardy" + +#: ../src/common/fmapbase.cpp:155 +msgid "Hebrew (ISO-8859-8)" +msgstr "Hebrajski (ISO-8859-8)" + +#: ../include/wx/msgdlg.h:275 ../src/osx/button_osx.cpp:39 +#: ../src/common/stockitem.cpp:163 ../src/html/helpdlg.cpp:66 +#: ../src/html/helpfrm.cpp:116 +msgid "Help" +msgstr "Pomoc" + +#: ../src/html/helpwnd.cpp:1213 +msgid "Help Browser Options" +msgstr "Opcje przeglądarki pomocy" + +#: ../src/generic/helpext.cpp:458 ../src/generic/helpext.cpp:459 +msgid "Help Index" +msgstr "Spis treści" + +# pomoc do drukowania? +#: ../src/html/helpwnd.cpp:1534 +msgid "Help Printing" +msgstr "Drukowanie pomocy" + +#: ../src/html/helpwnd.cpp:814 +msgid "Help Topics" +msgstr "Tematy Pomocy" + +#: ../src/html/helpwnd.cpp:1551 +msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|" +msgstr "Pakiety pomocy (*.htb)|*.htb|Pakiety pomocy (*.zip)|*.zip|" + +#: ../src/generic/helpext.cpp:271 +#, c-format +msgid "Help directory \"%s\" not found." +msgstr "Nie znaleziono katalogu pomocy \"%s\"." + +# catalog file --> ? +# domain --> ? +#: ../src/generic/helpext.cpp:279 +#, c-format +msgid "Help file \"%s\" not found." +msgstr "Nie znaleziono pliku pomocy \"%s\"." + +#: ../src/html/helpctrl.cpp:63 +#, c-format +msgid "Help: %s" +msgstr "Pomoc: %s" + +#: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:649 +#, c-format +msgid "Hide %s" +msgstr "Ukryj %s" + +#: ../src/osx/menu_osx.cpp:604 ../src/osx/menu_osx.cpp:651 +msgid "Hide Others" +msgstr "Ukryj inne" + +#: ../src/generic/infobar.cpp:85 +msgid "Hide this notification message." +msgstr "Ukryj to powiadomienie." + +#: ../src/generic/dirdlgg.cpp:98 ../src/common/stockitem.cpp:164 +msgid "Home" +msgstr "Katalog początkowy" + +#: ../src/generic/dirctrlg.cpp:624 +msgid "Home directory" +msgstr "Katalog początkowy" + +#: ../src/richtext/richtextsizepage.cpp:250 +#: ../src/richtext/richtextsizepage.cpp:252 +msgid "How the object will float relative to the text." +msgstr "Jak obiekt będzie pływać względem tekstu." + +#: ../src/common/imagbmp.cpp:1118 +msgid "ICO: Error in reading mask DIB." +msgstr "ICO: Błąd odczytu maski DIB." + +#: ../src/common/imagbmp.cpp:1233 ../src/common/imagbmp.cpp:1294 +#: ../src/common/imagbmp.cpp:1305 ../src/common/imagbmp.cpp:1318 +#: ../src/common/imagbmp.cpp:1363 ../src/common/imagbmp.cpp:1375 +#: ../src/common/imagbmp.cpp:1386 +msgid "ICO: Error writing the image file!" +msgstr "ICO: Błąd przy zapisie do pliku." + +#: ../src/common/imagbmp.cpp:1198 +msgid "ICO: Image too tall for an icon." +msgstr "ICO: Obraz jest zbyt wysoki jak na ikonę." + +#: ../src/common/imagbmp.cpp:1206 +msgid "ICO: Image too wide for an icon." +msgstr "ICO: Obraz jest zbyt szeroki jak na ikonę." + +# ...indeks w grafice (?) +# ideks - katalog, wskaŸnik? +#: ../src/common/imagbmp.cpp:1466 +msgid "ICO: Invalid icon index." +msgstr "ICO: Brak ikony o podanym indeksie.." + +#: ../src/common/imagiff.cpp:759 +msgid "IFF: data stream seems to be truncated." +msgstr "IFF: strumień daych wygląda na obcięty." + +#: ../src/common/imagiff.cpp:743 +msgid "IFF: error in IFF image format." +msgstr "IFF: błąd w formacie obrazu IFF." + +#: ../src/common/imagiff.cpp:746 +msgid "IFF: not enough memory." +msgstr "IFF: za mało pamięci." + +#: ../src/common/imagiff.cpp:749 +msgid "IFF: unknown error!!!" +msgstr "IFF: nieznany błąd !!!" + +#: ../src/common/accelcmn.cpp:50 +msgid "INS" +msgstr "INS" + +#: ../src/common/accelcmn.cpp:51 +msgid "INSERT" +msgstr "WSTAW" + +#: ../src/common/fmapbase.cpp:197 +msgid "ISO-2022-JP" +msgstr "ISO-2022-JP" + +#: ../src/osx/carbon/dataview.cpp:2420 +msgid "Icon & text renderer cannot render value; value type: " +msgstr "Renderer ikony i tekstu nie może renderować wartości; typ wartości:" + +#: ../src/html/htmprint.cpp:282 +msgid "" +"If possible, try changing the layout parameters to make the printout more " +"narrow." +msgstr "" +"Jeżeli to możliwe, spróbuj zmodyfikować parametry układu, aby uczynić wydruk " +"węższy." + +#: ../src/generic/dbgrptg.cpp:358 +msgid "" +"If you have any additional information pertaining to this bug\n" +"report, please enter it here and it will be joined to it:" +msgstr "" +"Jeśli masz jakiekolwiek dodatkowe informacje odnośnie\n" +"raportowanego błędu, proszę dołącz je tu:" + +#: ../src/generic/dbgrptg.cpp:324 +msgid "" +"If you wish to suppress this debug report completely, please choose the " +"\"Cancel\" button,\n" +"but be warned that it may hinder improving the program, so if\n" +"at all possible please do continue with the report generation.\n" +msgstr "" +"Jeśli chcesz całkowicie pominąć raport błędów, wybierz \"Anuluj\",\n" +"ale rozważ że to może utrudnić usprawnianie oprogramowania,\n" +"w związku z tym zachęcamy do kontynuowania raportowania błędów.\n" + +#: ../src/msw/registry.cpp:1395 +#, c-format +msgid "Ignoring value \"%s\" of the key \"%s\"." +msgstr "Wartiść \"%s\" klucza \"%s\" zignorowana." + +#: ../src/common/xtistrm.cpp:299 +msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source" +msgstr "Błędna Klasa Obiekty (nie typu wxEvtHandler) jako Źródło Zdarzenia" + +#: ../src/common/xti.cpp:513 +msgid "Illegal Parameter Count for ConstructObject Method" +msgstr "Nieprawidłowa Liczba Parametrów w Metodzie ConstructObject" + +#: ../src/common/xti.cpp:501 +msgid "Illegal Parameter Count for Create Method" +msgstr "Nieprawidłowa Liczba Parametrów w Metodzie Create" + +#: ../src/generic/dirctrlg.cpp:670 ../src/generic/filectrlg.cpp:791 +msgid "Illegal directory name." +msgstr "Niedozwolona nazwa katalogu." + +#: ../src/generic/filectrlg.cpp:1380 +msgid "Illegal file specification." +msgstr "Niedozwolona specyfikacja pliku." + +#: ../src/common/image.cpp:2158 +msgid "Image and mask have different sizes." +msgstr "Obraz i maska mają różne rozmiary." + +#: ../src/common/image.cpp:2609 +#, c-format +msgid "Image file is not of type %d." +msgstr "Nie jest to obraz typu %d." + +#: ../src/common/image.cpp:2739 +#, fuzzy, c-format +msgid "Image is not of type %s." +msgstr "Nie jest to obraz typu %s." + +#: ../src/msw/textctrl.cpp:399 +msgid "" +"Impossible to create a rich edit control, using simple text control instead. " +"Please reinstall riched32.dll" +msgstr "" +"Nie jest możliwe utworzenie kontrolki rich edit, użyj zamiast tego prostego " +"'text control'. Przeinstaluj riched32.dll" + +#: ../src/unix/utilsunx.cpp:307 +msgid "Impossible to get child process input" +msgstr "Nie jest możliwe uzyskanie wejścia procesu potomnego" + +#: ../src/common/filefn.cpp:1074 +#, c-format +msgid "Impossible to get permissions for file '%s'" +msgstr "Uzyskanie praw dostępu do pliku '%s' jest niemożliwe" + +#: ../src/common/filefn.cpp:1088 +#, c-format +msgid "Impossible to overwrite the file '%s'" +msgstr "Zastąpienie pliku '%s' jest niemożliwe" + +#: ../src/common/filefn.cpp:1142 +#, c-format +msgid "Impossible to set permissions for the file '%s'" +msgstr "Nie jest możliwe nadanie praw dostępu plikowi '%s'" + +#: ../src/common/gifdecod.cpp:818 +#, c-format +msgid "Incorrect GIF frame size (%u, %d) for the frame #%u" +msgstr "Nieprawidłowy rozmiar ramki GIF (%u, %d) dla ramki #%u" + +#: ../src/msw/ole/automtn.cpp:624 +msgid "Incorrect number of arguments." +msgstr "Nieprawidłowa liczba argumentów." + +#: ../src/common/stockitem.cpp:165 +msgid "Indent" +msgstr "Wcięcie" + +#: ../src/richtext/richtextformatdlg.cpp:330 +msgid "Indents && Spacing" +msgstr "Wcięcia i odstępy" + +#: ../src/common/stockitem.cpp:166 ../src/html/helpwnd.cpp:525 +msgid "Index" +msgstr "Indeks" + +#: ../src/common/fmapbase.cpp:159 +msgid "Indian (ISO-8859-12)" +msgstr "Hinduski (ISO-8859-12)" + +#: ../src/common/stockitem.cpp:167 +msgid "Info" +msgstr "Info" + +#: ../src/common/init.cpp:276 +msgid "Initialization failed in post init, aborting." +msgstr "Inicjalizacja nie powiodła się powodując wyjście." + +#: ../src/richtext/richtextsymboldlg.cpp:472 +msgid "Insert" +msgstr "Wstawić" + +#: ../src/richtext/richtextbuffer.cpp:7672 +msgid "Insert Field" +msgstr "Wstaw pole" + +#: ../src/richtext/richtextbuffer.cpp:7583 +#: ../src/richtext/richtextbuffer.cpp:8493 +msgid "Insert Image" +msgstr "Wstaw obraz" + +#: ../src/richtext/richtextbuffer.cpp:7630 +msgid "Insert Object" +msgstr "Wstaw obiekt" + +#: ../src/richtext/richtextctrl.cpp:1172 ../src/richtext/richtextctrl.cpp:1362 +#: ../src/richtext/richtextbuffer.cpp:7428 +#: ../src/richtext/richtextbuffer.cpp:7455 +#: ../src/richtext/richtextbuffer.cpp:7499 +msgid "Insert Text" +msgstr "Wstaw tekst" + +#: ../src/richtext/richtextindentspage.cpp:295 +#: ../src/richtext/richtextindentspage.cpp:297 +msgid "Inserts a page break before the paragraph." +msgstr "Wstawia łamanie strony przed akapitem." + +#: ../src/richtext/richtextborderspage.cpp:549 +msgid "Inset" +msgstr "" + +#: ../src/gtk/app.cpp:429 +#, c-format +msgid "Invalid GTK+ command line option, use \"%s --help\"" +msgstr "Nieprawidłowa opcja GTK+ wiersza poleceń, należy użyć \"%s --help\"" + +# ...indeks w grafice (?) +# ideks - katalog, wska?nik? +#: ../src/common/imagtiff.cpp:314 +msgid "Invalid TIFF image index." +msgstr "TIFF: Brak obrazu o podanym indeksie." + +#: ../src/osx/carbon/dataview.cpp:1782 ../src/osx/carbon/dataview.cpp:1877 +msgid "Invalid data view item" +msgstr "Nieprawidłowa pozycja widoku danych" + +#: ../src/common/appcmn.cpp:245 +#, c-format +msgid "Invalid display mode specification '%s'." +msgstr "Błędna specyfikacja trybu wyświetlania '%s'." + +# Pytanie X11 +#: ../src/x11/app.cpp:121 +#, c-format +msgid "Invalid geometry specification '%s'" +msgstr "Niedozwolona specyfikacja \"geometry\" '%s'." + +#: ../src/unix/fswatcher_inotify.cpp:298 +#, c-format +msgid "Invalid inotify event for \"%s\"" +msgstr "Nieprawidłowe zdarzenie inotify dla \"%s\"" + +#: ../src/unix/snglinst.cpp:306 +#, c-format +msgid "Invalid lock file '%s'." +msgstr "Nieprawidłowy plik blokujący '%s'." + +#: ../src/common/translation.cpp:1111 +msgid "Invalid message catalog." +msgstr "Nieprawidłowy katalog komunikatów." + +#: ../src/common/xtistrm.cpp:409 ../src/common/xtistrm.cpp:424 +msgid "Invalid or Null Object ID passed to GetObjectClassInfo" +msgstr "" +"Błędny lub Pusty Identyfikator Obiektu przekazany do funkcji " +"GetObjectClassInfo" + +#: ../src/common/xtistrm.cpp:439 +msgid "Invalid or Null Object ID passed to HasObjectClassInfo" +msgstr "" +"Błędny lub Pusty Identyfikator Obiektu przekazany do funkcji " +"HasObjectClassInfo" + +#: ../src/common/regex.cpp:313 +#, c-format +msgid "Invalid regular expression '%s': %s" +msgstr "Nieprawidłowe wyrażenie regularne '%s': %s" + +#: ../src/common/config.cpp:226 +#, c-format +msgid "Invalid value %ld for a boolean key \"%s\" in config file." +msgstr "" +"Nieprawidłowa wartość %ld dla klucza logicznego\"%s\" w pliku " +"konfiguracyjnym." + +#: ../src/generic/fontdlgg.cpp:329 ../src/richtext/richtextfontpage.cpp:333 +#: ../src/osx/carbon/fontdlg.cpp:547 ../src/common/stockitem.cpp:168 +msgid "Italic" +msgstr "Kursywa" + +#: ../src/common/paper.cpp:131 +msgid "Italy Envelope, 110 x 230 mm" +msgstr "Koperta włoska, 110 x 230 mm" + +#: ../src/common/imagjpeg.cpp:255 +msgid "JPEG: Couldn't load - file is probably corrupted." +msgstr "JPEG: Nie można wczytać - prawdopodobnie plik jest uszkodzony." + +#: ../src/common/imagjpeg.cpp:434 +msgid "JPEG: Couldn't save image." +msgstr "JPEG: Nie można zapisać obrazu." + +#: ../src/common/paper.cpp:164 +msgid "Japanese Double Postcard 200 x 148 mm" +msgstr "Japońska Podwójna Pocztówka 200 x 148 mm" + +#: ../src/common/paper.cpp:168 +msgid "Japanese Envelope Chou #3" +msgstr "Japońska Koperta Chou #3" + +#: ../src/common/paper.cpp:181 +msgid "Japanese Envelope Chou #3 Rotated" +msgstr "Japońska Koperta Chou #3 Obrócona" + +#: ../src/common/paper.cpp:169 +msgid "Japanese Envelope Chou #4" +msgstr "Japońska Koperta Chou #4" + +#: ../src/common/paper.cpp:182 +msgid "Japanese Envelope Chou #4 Rotated" +msgstr "Japońska Koperta Chou #4 Obrócona" + +#: ../src/common/paper.cpp:166 +msgid "Japanese Envelope Kaku #2" +msgstr "Japońska Koperta Kaku #2" + +#: ../src/common/paper.cpp:179 +msgid "Japanese Envelope Kaku #2 Rotated" +msgstr "Japońska Koperta Kaku #2 Obrócona" + +#: ../src/common/paper.cpp:167 +msgid "Japanese Envelope Kaku #3" +msgstr "Japońska Koperta Kaku #3" + +#: ../src/common/paper.cpp:180 +msgid "Japanese Envelope Kaku #3 Rotated" +msgstr "Japońska Koperta Kaku #3 Obrócona" + +#: ../src/common/paper.cpp:186 +msgid "Japanese Envelope You #4" +msgstr "Japońska Koperta You #4" + +#: ../src/common/paper.cpp:187 +msgid "Japanese Envelope You #4 Rotated" +msgstr "Japońska Koperta You #4 Obrócona" + +#: ../src/common/paper.cpp:139 +msgid "Japanese Postcard 100 x 148 mm" +msgstr "Japońska Pocztówka 100 x 148 mm" + +#: ../src/common/paper.cpp:176 +msgid "Japanese Postcard Rotated 148 x 100 mm" +msgstr "Japońska Pocztówka Obrócona 148 x 100 mm" + +#: ../src/common/stockitem.cpp:169 +msgid "Jump to" +msgstr "Skocz do" + +#: ../src/common/stockitem.cpp:171 +msgid "Justified" +msgstr "Wyrównanie obustronne" + +#: ../src/richtext/richtextindentspage.cpp:155 +#: ../src/richtext/richtextindentspage.cpp:157 +#: ../src/richtext/richtextliststylepage.cpp:344 +#: ../src/richtext/richtextliststylepage.cpp:346 +msgid "Justify text left and right." +msgstr "Wyjustuj tekst w lewo i w prawo." + +#: ../src/common/fmapbase.cpp:163 +msgid "KOI8-R" +msgstr "KOI8-R" + +#: ../src/common/fmapbase.cpp:164 +msgid "KOI8-U" +msgstr "KOI8-U" + +#: ../src/common/accelcmn.cpp:254 ../src/common/accelcmn.cpp:336 +msgid "KP_" +msgstr "KP_" + +#: ../src/common/accelcmn.cpp:103 +msgid "KP_ADD" +msgstr "KP_ADD" + +#: ../src/common/accelcmn.cpp:98 +msgid "KP_BEGIN" +msgstr "KP_BEGIN" + +#: ../src/common/accelcmn.cpp:106 +msgid "KP_DECIMAL" +msgstr "KP_DECIMAL" + +#: ../src/common/accelcmn.cpp:100 +msgid "KP_DELETE" +msgstr "KP_DELETE" + +#: ../src/common/accelcmn.cpp:107 +msgid "KP_DIVIDE" +msgstr "KP_DIVIDE" + +#: ../src/common/accelcmn.cpp:92 +msgid "KP_DOWN" +msgstr "KP_DOWN" + +#: ../src/common/accelcmn.cpp:97 +msgid "KP_END" +msgstr "KP_END" + +#: ../src/common/accelcmn.cpp:87 +msgid "KP_ENTER" +msgstr "KP_ENTER" + +#: ../src/common/accelcmn.cpp:101 +msgid "KP_EQUAL" +msgstr "KP_EQUAL" + +#: ../src/common/accelcmn.cpp:88 +msgid "KP_HOME" +msgstr "KP_HOME" + +#: ../src/common/accelcmn.cpp:99 +msgid "KP_INSERT" +msgstr "KP_INSERT" + +#: ../src/common/accelcmn.cpp:89 +msgid "KP_LEFT" +msgstr "KP_LEFT" + +#: ../src/common/accelcmn.cpp:102 +msgid "KP_MULTIPLY" +msgstr "KP_MULTIPLY" + +#: ../src/common/accelcmn.cpp:95 +msgid "KP_NEXT" +msgstr "KP_NEXT" + +#: ../src/common/accelcmn.cpp:96 +msgid "KP_PAGEDOWN" +msgstr "KP_PAGEDOWN" + +#: ../src/common/accelcmn.cpp:94 +msgid "KP_PAGEUP" +msgstr "KP_PAGEUP" + +#: ../src/common/accelcmn.cpp:93 +msgid "KP_PRIOR" +msgstr "KP_PRIOR" + +#: ../src/common/accelcmn.cpp:91 +msgid "KP_RIGHT" +msgstr "KP_RIGHT" + +#: ../src/common/accelcmn.cpp:104 +msgid "KP_SEPARATOR" +msgstr "KP_SEPARATOR" + +#: ../src/common/accelcmn.cpp:85 +msgid "KP_SPACE" +msgstr "KP_SPACE" + +#: ../src/common/accelcmn.cpp:105 +msgid "KP_SUBTRACT" +msgstr "KP_SUBTRACT" + +#: ../src/common/accelcmn.cpp:86 +msgid "KP_TAB" +msgstr "KP_TAB" + +#: ../src/common/accelcmn.cpp:90 +msgid "KP_UP" +msgstr "KP_UP" + +#: ../src/richtext/richtextindentspage.cpp:270 +msgid "L&ine spacing:" +msgstr "&Odstęp między wierszami:" + +#: ../src/common/accelcmn.cpp:56 +msgid "LEFT" +msgstr "LEWO" + +#: ../src/generic/prntdlgg.cpp:618 ../src/generic/prntdlgg.cpp:873 +msgid "Landscape" +msgstr "Pejzaż" + +#: ../src/common/stockitem.cpp:174 +msgid "Last" +msgstr "Ostatni" + +#: ../src/common/prntbase.cpp:1542 +msgid "Last page" +msgstr "Ostatnia strona" + +#: ../src/common/log.cpp:311 +#, c-format +msgid "Last repeated message (\"%s\", %lu time) wasn't output" +msgid_plural "Last repeated message (\"%s\", %lu times) wasn't output" +msgstr[0] "Last repeated message (\"%s\", %lu time) wasn't output" +msgstr[1] "Last repeated message (\"%s\", %lu times) wasn't output" +msgstr[2] "Last repeated message (\"%s\", %lu times) wasn't output" + +#: ../src/common/paper.cpp:104 +msgid "Ledger, 17 x 11 in" +msgstr "Ledger, 17 x 11 cali" + +#: ../src/richtext/richtextliststylepage.cpp:249 +#: ../src/richtext/richtextliststylepage.cpp:252 +#: ../src/richtext/richtextliststylepage.cpp:253 +#: ../src/richtext/richtextbulletspage.cpp:199 +#: ../src/richtext/richtextbulletspage.cpp:202 +#: ../src/richtext/richtextbulletspage.cpp:203 +#: ../src/richtext/richtextsizepage.cpp:246 +msgid "Left" +msgstr "Lewo" + +#: ../src/richtext/richtextindentspage.cpp:204 +#: ../src/richtext/richtextliststylepage.cpp:390 +msgid "Left (&first line):" +msgstr "Lewo (&pierwsza linijka):" + +#: ../src/generic/prntdlgg.cpp:885 +msgid "Left margin (mm):" +msgstr "Lewy margines (mm):" + +#: ../src/richtext/richtextindentspage.cpp:141 +#: ../src/richtext/richtextindentspage.cpp:143 +#: ../src/richtext/richtextliststylepage.cpp:330 +#: ../src/richtext/richtextliststylepage.cpp:332 +msgid "Left-align text." +msgstr "Lewe dostosowanie tekstu." + +#: ../src/common/paper.cpp:145 +msgid "Legal Extra 9 1/2 x 15 in" +msgstr "Legal Extra 9 1/2 x 15 cali" + +#: ../src/common/paper.cpp:97 +msgid "Legal, 8 1/2 x 14 in" +msgstr "Legal, 8 1/2 x 14 cali" + +#: ../src/common/paper.cpp:144 +msgid "Letter Extra 9 1/2 x 12 in" +msgstr "List Extra 9 1/2 x 12 cali" + +#: ../src/common/paper.cpp:150 +msgid "Letter Extra Transverse 9.275 x 12 in" +msgstr "List Extra Poprzecznie 9.275 x 12 cali" + +#: ../src/common/paper.cpp:153 +msgid "Letter Plus 8 1/2 x 12.69 in" +msgstr "List Plus 8 1/2 x 12.69 cala" + +#: ../src/common/paper.cpp:170 +msgid "Letter Rotated 11 x 8 1/2 in" +msgstr "List Obrócony 11 x 8 1/2 cala" + +#: ../src/common/paper.cpp:102 +msgid "Letter Small, 8 1/2 x 11 in" +msgstr "Mały list, 8 1/2 x 11 cali" + +#: ../src/common/paper.cpp:148 +msgid "Letter Transverse 8 1/2 x 11 in" +msgstr "List Poprzecznie 8 1/2 x 11 cali" + +#: ../src/common/paper.cpp:96 +msgid "Letter, 8 1/2 x 11 in" +msgstr "List, 8 1/2 x 11 cali" + +#: ../src/generic/aboutdlgg.cpp:173 +msgid "License" +msgstr "Licencja" + +#: ../src/generic/fontdlgg.cpp:332 +msgid "Light" +msgstr "Cieńszy" + +#: ../src/generic/helpext.cpp:298 +#, c-format +msgid "Line %lu of map file \"%s\" has invalid syntax, skipped." +msgstr "" +"Linijka %lu pliku mapy \"%s\" posiada nieprawidłową składnię, pominięta." + +#: ../src/richtext/richtextliststylepage.cpp:444 +msgid "Line spacing:" +msgstr "Odstęp między wierszami:" + +#: ../src/html/chm.cpp:838 +msgid "Link contained '//', converted to absolute link." +msgstr "Odsyłacz zawierający '//' przekonwertowano do adresu bezwzględnego." + +#: ../src/richtext/richtextformatdlg.cpp:349 +msgid "List Style" +msgstr "Styl listy" + +#: ../src/richtext/richtextstyles.cpp:1060 +msgid "List styles" +msgstr "Style listy" + +#: ../src/richtext/richtextfontpage.cpp:206 +#: ../src/richtext/richtextfontpage.cpp:208 +msgid "Lists font sizes in points." +msgstr "Wielkość czcionki listy w punktach." + +#: ../src/richtext/richtextfontpage.cpp:199 +#: ../src/richtext/richtextfontpage.cpp:201 +msgid "Lists the available fonts." +msgstr "Lista dostępnych czcionek." + +#: ../src/common/fldlgcmn.cpp:325 +#, c-format +msgid "Load %s file" +msgstr "Wczytaj plik %s" + +#: ../src/html/htmlwin.cpp:575 +msgid "Loading : " +msgstr "Wczytywanie : " + +#: ../src/unix/snglinst.cpp:246 +#, c-format +msgid "Lock file '%s' has incorrect owner." +msgstr "Blokowany plik '%s' ma niewłaściwego właściciela." + +#: ../src/unix/snglinst.cpp:251 +#, c-format +msgid "Lock file '%s' has incorrect permissions." +msgstr "Blokowany plik '%s' ma niewłaściwe uprawnienia." + +#: ../src/generic/logg.cpp:582 +#, c-format +msgid "Log saved to the file '%s'." +msgstr "Log został zapisany do pliku '%s'." + +#: ../src/richtext/richtextliststylepage.cpp:484 +#: ../src/richtext/richtextbulletspage.cpp:289 +msgid "Lower case letters" +msgstr "Małe litery" + +#: ../src/richtext/richtextliststylepage.cpp:486 +#: ../src/richtext/richtextbulletspage.cpp:291 +msgid "Lower case roman numerals" +msgstr "Małe litery cyframi rzymskimi" + +#: ../src/gtk/mdi.cpp:422 ../src/gtk1/mdi.cpp:431 +msgid "MDI child" +msgstr "potomek MDI" + +#: ../src/common/accelcmn.cpp:68 +msgid "MENU" +msgstr "MENU" + +#: ../src/msw/helpchm.cpp:56 +msgid "" +"MS HTML Help functions are unavailable because the MS HTML Help library is " +"not installed on this machine. Please install it." +msgstr "" +"Funkcje pomocy dla MS HTML Help nie są dostępne, ponieważ biblioteka MS HTML " +"Help nie jest zainstalowana na tej maszynie. Zainstaluj ją." + +#: ../src/univ/themes/win32.cpp:3754 +msgid "Ma&ximize" +msgstr "&Maksymalizuj" + +#: ../src/common/fmapbase.cpp:203 +msgid "MacArabic" +msgstr "" + +#: ../src/common/fmapbase.cpp:222 +msgid "MacArmenian" +msgstr "MacOrmiański" + +#: ../src/common/fmapbase.cpp:211 +msgid "MacBengali" +msgstr "MacBengalski" + +#: ../src/common/fmapbase.cpp:217 +msgid "MacBurmese" +msgstr "MacBirmański" + +#: ../src/common/fmapbase.cpp:236 +msgid "MacCeltic" +msgstr "" + +#: ../src/common/fmapbase.cpp:227 +msgid "MacCentralEurRoman" +msgstr "MacŚrodkowoEuroRzymski" + +#: ../src/common/fmapbase.cpp:223 +msgid "MacChineseSimp" +msgstr "MacChińskiUpr" + +#: ../src/common/fmapbase.cpp:201 +msgid "MacChineseTrad" +msgstr "MacChińskiTrad" + +#: ../src/common/fmapbase.cpp:233 +msgid "MacCroatian" +msgstr "MacChorwacki" + +#: ../src/common/fmapbase.cpp:206 +msgid "MacCyrillic" +msgstr "MacCyrylica" + +#: ../src/common/fmapbase.cpp:207 +msgid "MacDevanagari" +msgstr "" + +#: ../src/common/fmapbase.cpp:231 +msgid "MacDingbats" +msgstr "" + +#: ../src/common/fmapbase.cpp:226 +msgid "MacEthiopic" +msgstr "MacEtiopski" + +#: ../src/common/fmapbase.cpp:229 +msgid "MacExtArabic" +msgstr "" + +#: ../src/common/fmapbase.cpp:237 +msgid "MacGaelic" +msgstr "MacCeltycki" + +#: ../src/common/fmapbase.cpp:221 +msgid "MacGeorgian" +msgstr "MacGruziński" + +#: ../src/common/fmapbase.cpp:205 +msgid "MacGreek" +msgstr "MacGrecki" + +#: ../src/common/fmapbase.cpp:209 +msgid "MacGujarati" +msgstr "MacGudżarati" + +#: ../src/common/fmapbase.cpp:208 +msgid "MacGurmukhi" +msgstr "" + +#: ../src/common/fmapbase.cpp:204 +msgid "MacHebrew" +msgstr "MacHebrajski" + +#: ../src/common/fmapbase.cpp:234 +msgid "MacIcelandic" +msgstr "MacIslandzki" + +#: ../src/common/fmapbase.cpp:200 +msgid "MacJapanese" +msgstr "MacJapoński" + +#: ../src/common/fmapbase.cpp:214 +msgid "MacKannada" +msgstr "" + +#: ../src/common/fmapbase.cpp:238 +msgid "MacKeyboardGlyphs" +msgstr "" + +#: ../src/common/fmapbase.cpp:218 +msgid "MacKhmer" +msgstr "" + +#: ../src/common/fmapbase.cpp:202 +msgid "MacKorean" +msgstr "MacKoreański" + +#: ../src/common/fmapbase.cpp:220 +msgid "MacLaotian" +msgstr "" + +#: ../src/common/fmapbase.cpp:215 +msgid "MacMalayalam" +msgstr "" + +#: ../src/common/fmapbase.cpp:225 +msgid "MacMongolian" +msgstr "MacMongolski" + +#: ../src/common/fmapbase.cpp:210 +msgid "MacOriya" +msgstr "" + +#: ../src/common/fmapbase.cpp:199 +msgid "MacRoman" +msgstr "" + +#: ../src/common/fmapbase.cpp:235 +msgid "MacRomanian" +msgstr "" + +#: ../src/common/fmapbase.cpp:216 +msgid "MacSinhalese" +msgstr "" + +#: ../src/common/fmapbase.cpp:230 +msgid "MacSymbol" +msgstr "" + +#: ../src/common/fmapbase.cpp:212 +msgid "MacTamil" +msgstr "MacTamilski" + +#: ../src/common/fmapbase.cpp:213 +msgid "MacTelugu" +msgstr "" + +#: ../src/common/fmapbase.cpp:219 +msgid "MacThai" +msgstr "MacTajski" + +#: ../src/common/fmapbase.cpp:224 +msgid "MacTibetan" +msgstr "MacTybetański" + +#: ../src/common/fmapbase.cpp:232 +msgid "MacTurkish" +msgstr "MacTurecki" + +#: ../src/common/fmapbase.cpp:228 +msgid "MacVietnamese" +msgstr "MacWietnamski" + +#: ../src/propgrid/advprops.cpp:2024 +msgid "Make a selection:" +msgstr "Dokonaj wyboru:" + +#: ../src/richtext/richtextformatdlg.cpp:362 +#: ../src/richtext/richtextmarginspage.cpp:172 +msgid "Margins" +msgstr "Marginesy" + +#: ../src/generic/fdrepdlg.cpp:147 +msgid "Match case" +msgstr "Uwzględniaj wielkość liter" + +#: ../src/richtext/richtextsizepage.cpp:460 +msgid "Max height:" +msgstr "Maksymalna wysokość:" + +#: ../src/richtext/richtextsizepage.cpp:433 +msgid "Max width:" +msgstr "Maksymalna szerokość:" + +#: ../src/unix/mediactrl.cpp:1006 +#, c-format +msgid "Media playback error: %s" +msgstr "Błąd odtwarzania mediów: %s" + +#: ../src/common/fs_mem.cpp:175 +#, c-format +msgid "Memory VFS already contains file '%s'!" +msgstr "Pamięć VFS już zawiera plik '%s'!" + +#: ../src/msw/frame.cpp:347 +msgid "Menu" +msgstr "Menu" + +#: ../src/common/msgout.cpp:124 +msgid "Message" +msgstr "Komunikat" + +#: ../src/univ/themes/metal.cpp:168 +msgid "Metal theme" +msgstr "Kompozycja metalowa" + +#: ../src/msw/ole/automtn.cpp:641 +msgid "Method or property not found." +msgstr "Nie odnaleziono metody lub właściwości." + +#: ../src/univ/themes/win32.cpp:3752 +msgid "Mi&nimize" +msgstr "Mi&nimalizuj" + +#: ../src/richtext/richtextsizepage.cpp:406 +msgid "Min height:" +msgstr "Minimalna wysokość:" + +#: ../src/richtext/richtextsizepage.cpp:379 +msgid "Min width:" +msgstr "Min szerokość:" + +#: ../src/msw/ole/automtn.cpp:657 +msgid "Missing a required parameter." +msgstr "Brak wymaganego parametru." + +#: ../src/generic/fontdlgg.cpp:324 +msgid "Modern" +msgstr "Modern" + +#: ../src/generic/filectrlg.cpp:462 +msgid "Modified" +msgstr "Zmodyfikowany" + +#: ../src/common/module.cpp:133 +#, c-format +msgid "Module \"%s\" initialization failed" +msgstr "Inicjalizacja modułu \"%s\" nie powiodła się" + +#: ../src/common/paper.cpp:132 +msgid "Monarch Envelope, 3 7/8 x 7 1/2 in" +msgstr "Koperta Monarch, 3 7/8 x 7 1/2 cala" + +#: ../src/msw/fswatcher.cpp:143 +msgid "Monitoring individual files for changes is not supported currently." +msgstr "" +"Monitorowanie zmian pojedynczych plików nie jest aktualnie obsługiwane." + +#: ../src/generic/editlbox.cpp:276 +msgid "Move down" +msgstr "Przenieś w dół" + +#: ../src/generic/editlbox.cpp:275 +msgid "Move up" +msgstr "Przenieś w górę" + +#: ../src/richtext/richtextsizepage.cpp:679 +#: ../src/richtext/richtextsizepage.cpp:681 +msgid "Moves the object to the next paragraph." +msgstr "Przenosi obiekt do następnego akapitu." + +#: ../src/richtext/richtextsizepage.cpp:673 +#: ../src/richtext/richtextsizepage.cpp:675 +msgid "Moves the object to the previous paragraph." +msgstr "Przenosi obiekt do poprzedniego paragrafu." + +#: ../src/richtext/richtextbuffer.cpp:9271 +msgid "Multiple Cell Properties" +msgstr "Właściwości wielu komórek" + +#: ../src/common/accelcmn.cpp:81 +msgid "NUM_LOCK" +msgstr "NUM_LOCK" + +#: ../src/generic/filectrlg.cpp:459 +msgid "Name" +msgstr "Nazwa" + +#: ../src/common/stockitem.cpp:175 +msgid "Network" +msgstr "Sieć" + +#: ../src/common/stockitem.cpp:176 +#, fuzzy +msgid "New" +msgstr "&Nowy" + +#: ../src/richtext/richtextstyledlg.cpp:243 +msgid "New &Box Style..." +msgstr "Nowy styl &bloku..." + +#: ../src/richtext/richtextstyledlg.cpp:225 +msgid "New &Character Style..." +msgstr "Nowy styl &znaku..." + +#: ../src/richtext/richtextstyledlg.cpp:237 +msgid "New &List Style..." +msgstr "Nowy styl &listy..." + +#: ../src/richtext/richtextstyledlg.cpp:231 +msgid "New &Paragraph Style..." +msgstr "Nowy styl ¶grafu..." + +#: ../src/richtext/richtextstyledlg.cpp:603 +#: ../src/richtext/richtextstyledlg.cpp:608 +#: ../src/richtext/richtextstyledlg.cpp:651 +#: ../src/richtext/richtextstyledlg.cpp:656 +#: ../src/richtext/richtextstyledlg.cpp:817 +#: ../src/richtext/richtextstyledlg.cpp:822 +#: ../src/richtext/richtextstyledlg.cpp:890 +#: ../src/richtext/richtextstyledlg.cpp:898 +#: ../src/richtext/richtextstyledlg.cpp:931 +#: ../src/richtext/richtextstyledlg.cpp:936 +msgid "New Style" +msgstr "Nowy styl" + +#: ../src/generic/dirdlgg.cpp:102 +msgid "New directory" +msgstr "Nowy katalog" + +#: ../src/generic/editlbox.cpp:273 +msgid "New item" +msgstr "Nowa pozycja" + +# To jest maska do tworzenia nazw typu NowaNaz1 itd +#: ../src/generic/dirdlgg.cpp:326 ../src/generic/dirdlgg.cpp:336 +#: ../src/generic/filectrlg.cpp:653 ../src/generic/filectrlg.cpp:662 +msgid "NewName" +msgstr "NowaNaz" + +#: ../src/generic/tipdlg.cpp:305 +msgid "Next" +msgstr "Dalej" + +#: ../src/common/prntbase.cpp:1537 ../src/html/helpwnd.cpp:678 +msgid "Next page" +msgstr "Następna strona" + +#: ../include/wx/msgdlg.h:272 ../src/common/stockitem.cpp:177 +#: ../src/motif/msgdlg.cpp:196 +msgid "No" +msgstr "Nie" + +#: ../src/generic/animateg.cpp:150 +#, c-format +msgid "No animation handler for type %ld defined." +msgstr "Brak procedury obsługi animacji dla typu %ld." + +#: ../src/dfb/bitmap.cpp:642 ../src/dfb/bitmap.cpp:676 +#, c-format +msgid "No bitmap handler for type %d defined." +msgstr "Brak procedury obsługi bitmapy dla typu %d." + +#: ../src/osx/carbon/dataview.cpp:1784 +msgid "No column existing." +msgstr "Nie istnieje kolumny." + +#: ../src/osx/carbon/dataview.cpp:1674 +msgid "No column for the specified column existing." +msgstr "" + +#: ../src/osx/carbon/dataview.cpp:1423 +msgid "No column for the specified column position existing." +msgstr "Nie istnieje kolumny dla określonej pozycji kolumny." + +#: ../src/common/utilscmn.cpp:1049 +msgid "No default application configured for HTML files." +msgstr "Nie ma ustawionej domyślnej aplikacji dla plików HTML." + +#: ../src/generic/helpext.cpp:449 +msgid "No entries found." +msgstr "Nie znaleziono pozycji." + +#: ../src/common/fontmap.cpp:421 +#, c-format +msgid "" +"No font for displaying text in encoding '%s' found,\n" +"but an alternative encoding '%s' is available.\n" +"Do you want to use this encoding (otherwise you will have to choose another " +"one)?" +msgstr "" +"Brak czcionki do wyświelenia tekstu w kodowaniu '%s',\n" +"jednak dostępne jest alternatywne kodowanie '%s'.\n" +"Chesz użyć tego kodowania (możesz także wybrać inne)?" + +#: ../src/common/fontmap.cpp:426 +#, c-format +msgid "" +"No font for displaying text in encoding '%s' found.\n" +"Would you like to select a font to be used for this encoding\n" +"(otherwise the text in this encoding will not be shown correctly)?" +msgstr "" +"Brak czcionki do wyświelenia tekstu w kodowaniu '%s'.\n" +"Chcesz wskazać czcionkę do użycia\n" +"(inaczej tekst może nie być wyświetlony poprawnie)?" + +#: ../src/generic/animateg.cpp:142 +msgid "No handler found for animation type." +msgstr "Brak procedury obsługi typu animacji." + +#: ../src/common/image.cpp:2591 +msgid "No handler found for image type." +msgstr "Brak procedury obsługi grafiki." + +#: ../src/common/image.cpp:2599 ../src/common/image.cpp:2710 +#: ../src/common/image.cpp:2763 +#, c-format +msgid "No image handler for type %d defined." +msgstr "Brak procedury obsługi obrazów typu %d." + +#: ../src/common/image.cpp:2733 ../src/common/image.cpp:2777 +#, c-format +msgid "No image handler for type %s defined." +msgstr "Brak procedury obsługi obrazów typu %s." + +#: ../src/html/helpwnd.cpp:871 +msgid "No matching page found yet" +msgstr "Jeszcze nie znaleziono pasującej strony" + +#: ../src/osx/carbon/dataview.cpp:1676 ../src/osx/carbon/dataview.cpp:1786 +msgid "No renderer or invalid renderer type specified for custom data column." +msgstr "" +"Nie ma rendera lub nieprawidłowy typ rendera określonego dla własnych danych " +"kolumny." + +#: ../src/osx/carbon/dataview.cpp:1424 +msgid "No renderer specified for column." +msgstr "Nie określono rendera dla kolumny." + +#: ../src/unix/sound.cpp:81 +msgid "No sound" +msgstr "Brak dźwięku" + +#: ../src/common/image.cpp:2166 ../src/common/image.cpp:2207 +msgid "No unused colour in image being masked." +msgstr "Brak nieużywanych kolorów w maskowanym obrazie." + +#: ../src/common/image.cpp:3236 +msgid "No unused colour in image." +msgstr "Brak wolnych kolorów w obrazie." + +#: ../src/generic/helpext.cpp:306 +#, c-format +msgid "No valid mappings found in the file \"%s\"." +msgstr "Znaleziono nie ważne mapowania w pliku \"%s\"." + +#: ../src/richtext/richtextborderspage.cpp:542 +#: ../src/richtext/richtextsizepage.cpp:245 +#: ../src/richtext/richtextsizepage.cpp:249 +#, fuzzy +msgid "None" +msgstr "(Brak)" + +#: ../src/common/fmapbase.cpp:157 +msgid "Nordic (ISO-8859-10)" +msgstr "Nordycki (ISO-8859-10)" + +#: ../src/generic/fontdlgg.cpp:328 ../src/generic/fontdlgg.cpp:331 +msgid "Normal" +msgstr "Normalny" + +#: ../src/html/helpwnd.cpp:1276 +msgid "Normal face
    and underlined. " +msgstr "Zwykły tekst
    i podkreślony. " + +#: ../src/html/helpwnd.cpp:1218 +msgid "Normal font:" +msgstr "Normalna czcionka:" + +#: ../src/propgrid/props.cpp:887 +#, c-format +msgid "Not %s" +msgstr "" + +#: ../include/wx/filename.h:586 ../include/wx/filename.h:591 +msgid "Not available" +msgstr "Niedostępne" + +#: ../src/richtext/richtextfontpage.cpp:340 +msgid "Not underlined" +msgstr "Nie podkreślony" + +#: ../src/common/paper.cpp:116 +msgid "Note, 8 1/2 x 11 in" +msgstr "Note, 8 1/2 x 11 cali" + +#: ../src/generic/notifmsgg.cpp:104 +msgid "Notice" +msgstr "Uwaga" + +#: ../src/osx/carbon/dataview.cpp:902 +msgid "Number of columns could not be determined." +msgstr "Ilość kolumn nie może być ustalona" + +#: ../src/richtext/richtextliststylepage.cpp:487 +#: ../src/richtext/richtextbulletspage.cpp:292 +msgid "Numbered outline" +msgstr "Numerowane kontury" + +#: ../include/wx/msgdlg.h:273 ../src/richtext/richtextstyledlg.cpp:297 +#: ../src/common/stockitem.cpp:178 ../src/msw/msgdlg.cpp:489 +#: ../src/msw/msgdlg.cpp:795 ../src/msw/dialog.cpp:120 +#: ../src/gtk1/fontdlg.cpp:138 +msgid "OK" +msgstr "OK" + +#: ../src/msw/ole/automtn.cpp:681 +#, c-format +msgid "OLE Automation error in %s: %s" +msgstr "Błąd automatyzacji OLE w %s: %s" + +#: ../include/wx/richtext/richtextimagedlg.h:39 +msgid "Object Properties" +msgstr "&Właściwości obiektu" + +#: ../src/msw/ole/automtn.cpp:649 +msgid "Object implementation does not support named arguments." +msgstr "Implementacja obiektu nie obsługuje nazywanych argumentów." + +#: ../src/common/xtixml.cpp:264 +msgid "Objects must have an id attribute" +msgstr "Obiekty muszą posiadać właściwość typu 'id'" + +#: ../src/common/docview.cpp:1756 ../src/common/docview.cpp:1798 +msgid "Open File" +msgstr "Otwieranie Pliku" + +#: ../src/html/helpwnd.cpp:684 ../src/html/helpwnd.cpp:1557 +msgid "Open HTML document" +msgstr "Otwórz dokument HTML" + +#: ../src/generic/dbgrptg.cpp:163 +#, c-format +msgid "Open file \"%s\"" +msgstr "Otwieranie pliku \"%s\"" + +#: ../src/common/stockitem.cpp:179 +#, fuzzy +msgid "Open..." +msgstr "&Otwórz..." + +#: ../src/osx/carbon/glcanvas.cpp:48 +#, c-format +msgid "OpenGL function \"%s\" failed: %s (error %d)" +msgstr "Nie powiodła się funkcja \"%s\" OpenGL: %s (błąd %d)" + +#: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 +#: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:821 +msgid "Operation not permitted." +msgstr "Operacja nie jest dozwolona." + +#: ../src/common/cmdline.cpp:735 +#, c-format +msgid "Option '%s' can't be negated" +msgstr "" + +#: ../src/common/cmdline.cpp:899 +#, c-format +msgid "Option '%s' requires a value." +msgstr "Opcja '%s' wymaga podania wartości." + +#: ../src/common/cmdline.cpp:982 +#, c-format +msgid "Option '%s': '%s' cannot be converted to a date." +msgstr "Opcja '%s': nie można przekształcić '%s' na datę." + +#: ../src/generic/dirdlgg.cpp:187 ../src/generic/prntdlgg.cpp:623 +msgid "Options" +msgstr "Opcje" + +#: ../src/generic/prntdlgg.cpp:620 ../src/generic/prntdlgg.cpp:874 +msgid "Orientation" +msgstr "Orientacja" + +#: ../src/common/windowid.cpp:259 +msgid "Out of window IDs. Recommend shutting down application." +msgstr "Po za identyfikatorami okna. Zalecane jest zamknięcie aplikacji." + +#: ../src/richtext/richtextborderspage.cpp:400 +#: ../src/richtext/richtextborderspage.cpp:533 +msgid "Outline" +msgstr "kontur" + +#: ../src/richtext/richtextborderspage.cpp:550 +msgid "Outset" +msgstr "" + +#: ../src/msw/ole/automtn.cpp:645 +msgid "Overflow while coercing argument values." +msgstr "Przepełnienie podczas wymuszania wartości argumentów." + +#: ../src/common/accelcmn.cpp:84 +msgid "PAGEDOWN" +msgstr "PAGEDOWN" + +#: ../src/common/accelcmn.cpp:83 +msgid "PAGEUP" +msgstr "PAGEUP" + +#: ../src/common/accelcmn.cpp:69 +msgid "PAUSE" +msgstr "PAUZA" + +#: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:480 +msgid "PCX: couldn't allocate memory" +msgstr "PCX: Nie można przydzielić pamięci." + +#: ../src/common/imagpcx.cpp:456 +msgid "PCX: image format unsupported" +msgstr "PCX: nieobsługiwany format obrazu." + +#: ../src/common/imagpcx.cpp:479 +msgid "PCX: invalid image" +msgstr "PCX: nieprawidłowy obraz" + +#: ../src/common/imagpcx.cpp:442 +msgid "PCX: this is not a PCX file." +msgstr "PCX: To nie jest plik w formacie PCX." + +#: ../src/common/imagpcx.cpp:459 ../src/common/imagpcx.cpp:481 +msgid "PCX: unknown error !!!" +msgstr "PCX: nieznany błąd !!!" + +#: ../src/common/imagpcx.cpp:458 +msgid "PCX: version number too low" +msgstr "PCX: zbyt niski numer wersji." + +#: ../src/common/accelcmn.cpp:55 +msgid "PGDN" +msgstr "PGDN" + +#: ../src/common/accelcmn.cpp:54 +msgid "PGUP" +msgstr "PGUP" + +#: ../src/common/imagpnm.cpp:91 +msgid "PNM: Couldn't allocate memory." +msgstr "PNM: Nie można przydzielić pamięci." + +#: ../src/common/imagpnm.cpp:73 +msgid "PNM: File format is not recognized." +msgstr "PNM: Nieznany format pliku." + +#: ../src/common/imagpnm.cpp:112 ../src/common/imagpnm.cpp:134 +#: ../src/common/imagpnm.cpp:156 +msgid "PNM: File seems truncated." +msgstr "PNM: Plik wygląda na obcięty." + +#: ../src/common/paper.cpp:188 +msgid "PRC 16K 146 x 215 mm" +msgstr "PRC 16K 146 x 215 mm" + +#: ../src/common/paper.cpp:201 +msgid "PRC 16K Rotated" +msgstr "PRC 16K Obrócony" + +#: ../src/common/paper.cpp:189 +msgid "PRC 32K 97 x 151 mm" +msgstr "PRC 32K 97 x 151 mm" + +#: ../src/common/paper.cpp:202 +msgid "PRC 32K Rotated" +msgstr "PRC 32K Obrócony" + +#: ../src/common/paper.cpp:190 +msgid "PRC 32K(Big) 97 x 151 mm" +msgstr "PRC 32K(Big) 97 x 151 mm" + +#: ../src/common/paper.cpp:203 +msgid "PRC 32K(Big) Rotated" +msgstr "PRC 32K(Big) Obrócony" + +#: ../src/common/paper.cpp:191 +msgid "PRC Envelope #1 102 x 165 mm" +msgstr "Koperta PRC #1, 102 x 165 mm" + +#: ../src/common/paper.cpp:204 +msgid "PRC Envelope #1 Rotated 165 x 102 mm" +msgstr "Koperta PRC #1 Obrócona, 165 x 102 mm" + +#: ../src/common/paper.cpp:200 +msgid "PRC Envelope #10 324 x 458 mm" +msgstr "Koperta PRC #10 324 x 458 mm" + +#: ../src/common/paper.cpp:213 +msgid "PRC Envelope #10 Rotated 458 x 324 mm" +msgstr "Koperta PRC #10 Obrócona 458 x 324 mm" + +#: ../src/common/paper.cpp:192 +msgid "PRC Envelope #2 102 x 176 mm" +msgstr "Koperta PRC #2 102 x 176 mm" + +#: ../src/common/paper.cpp:205 +msgid "PRC Envelope #2 Rotated 176 x 102 mm" +msgstr "Koperta PRC #2 Obrócona 176 x 102 mm" + +#: ../src/common/paper.cpp:193 +msgid "PRC Envelope #3 125 x 176 mm" +msgstr "Koperta PRC #3 125 x 176 mm" + +#: ../src/common/paper.cpp:206 +msgid "PRC Envelope #3 Rotated 176 x 125 mm" +msgstr "Koperta PRC #3 Obrócona 176 x 125 mm" + +#: ../src/common/paper.cpp:194 +msgid "PRC Envelope #4 110 x 208 mm" +msgstr "Koperta PRC #4 110 x 208 mm" + +#: ../src/common/paper.cpp:207 +msgid "PRC Envelope #4 Rotated 208 x 110 mm" +msgstr "Koperta PRC #4 Obrócona 208 x 110 mm" + +#: ../src/common/paper.cpp:195 +msgid "PRC Envelope #5 110 x 220 mm" +msgstr "Koperta PRC #5 110 x 220 mm" + +#: ../src/common/paper.cpp:208 +msgid "PRC Envelope #5 Rotated 220 x 110 mm" +msgstr "Koperta PRC #5 Obrócona 220 x 110 mm" + +#: ../src/common/paper.cpp:196 +msgid "PRC Envelope #6 120 x 230 mm" +msgstr "Koperta PRC #6 120 x 230 mm" + +#: ../src/common/paper.cpp:209 +msgid "PRC Envelope #6 Rotated 230 x 120 mm" +msgstr "Koperta PRC #6 Obrócona 230 x 120 mm" + +#: ../src/common/paper.cpp:197 +msgid "PRC Envelope #7 160 x 230 mm" +msgstr "Koperta PRC #7 160 x 230 mm" + +#: ../src/common/paper.cpp:210 +msgid "PRC Envelope #7 Rotated 230 x 160 mm" +msgstr "Koperta PRC #7 Obrócona 230 x 160 mm" + +#: ../src/common/paper.cpp:198 +msgid "PRC Envelope #8 120 x 309 mm" +msgstr "Koperta PRC #8 120 x 309 mm" + +#: ../src/common/paper.cpp:211 +msgid "PRC Envelope #8 Rotated 309 x 120 mm" +msgstr "Koperta PRC #8 Obrócona 309 x 120 mm" + +#: ../src/common/paper.cpp:199 +msgid "PRC Envelope #9 229 x 324 mm" +msgstr "Koperta PRC #9 229 x 324 mm" + +#: ../src/common/paper.cpp:212 +msgid "PRC Envelope #9 Rotated 324 x 229 mm" +msgstr "Koperta PRC #9 Obrócona 324 x 229 mm" + +#: ../src/common/accelcmn.cpp:72 +msgid "PRINT" +msgstr "WYDRUK" + +#: ../src/richtext/richtextmarginspage.cpp:286 +msgid "Padding" +msgstr "" + +#: ../src/common/prntbase.cpp:2044 +#, c-format +msgid "Page %d" +msgstr "Strona %d" + +#: ../src/common/prntbase.cpp:2042 +#, c-format +msgid "Page %d of %d" +msgstr "Strona %d z %d" + +#: ../src/gtk/print.cpp:783 +msgid "Page Setup" +msgstr "Ustawienia strony" + +#: ../src/generic/prntdlgg.cpp:833 ../src/common/prntbase.cpp:467 +#: ../src/gtk/gnome/gprint.cpp:710 +msgid "Page setup" +msgstr "Ustawienia strony" + +#: ../src/generic/prntdlgg.cpp:221 +msgid "Pages" +msgstr "Strony" + +#: ../src/generic/prntdlgg.cpp:607 ../src/generic/prntdlgg.cpp:806 +#: ../src/generic/prntdlgg.cpp:847 ../src/generic/prntdlgg.cpp:860 +#: ../src/generic/prntdlgg.cpp:1057 ../src/generic/prntdlgg.cpp:1062 +msgid "Paper size" +msgstr "Rozmiar papieru" + +#: ../src/richtext/richtextstyles.cpp:1058 +msgid "Paragraph styles" +msgstr "Style paragrafu" + +#: ../src/common/xtistrm.cpp:469 +msgid "Passing a already registered object to SetObject" +msgstr "Przekazano już zarejestrowany obiekt do funkcji SetObject" + +#: ../src/common/xtistrm.cpp:480 +#, fuzzy +msgid "Passing an unknown object to GetObject" +msgstr "Przekazanie nieznanego obiektu do funkcji GetObject" + +#: ../src/richtext/richtextctrl.cpp:3103 ../src/common/stockitem.cpp:180 +#: ../src/stc/stc_i18n.cpp:19 +msgid "Paste" +msgstr "Wklej" + +#: ../src/common/stockitem.cpp:262 +msgid "Paste selection" +msgstr "Wklej wybór" + +#: ../src/richtext/richtextliststylepage.cpp:222 +#: ../src/richtext/richtextbulletspage.cpp:172 +msgid "Peri&od" +msgstr "&Okres" + +# prawa? +#: ../src/generic/filectrlg.cpp:465 +msgid "Permissions" +msgstr "Uprawnienia" + +#: ../src/richtext/richtextbuffer.cpp:11745 +msgid "Picture Properties" +msgstr "&Właściwości obrazu" + +#: ../include/wx/unix/pipe.h:47 +msgid "Pipe creation failed" +msgstr "Nie udało się utworzyć potoku." + +#: ../src/gtk1/fontdlg.cpp:74 +msgid "Please choose a valid font." +msgstr "Proszę wybrać poprawną czcionkę." + +#: ../src/gtk/filedlg.cpp:72 +msgid "Please choose an existing file." +msgstr "Proszę wybrać istniejący plik." + +#: ../src/html/helpwnd.cpp:813 +msgid "Please choose the page to display:" +msgstr "Wybierz stronę do wyświetlenia:" + +#: ../src/msw/dialup.cpp:785 +msgid "Please choose which ISP do you want to connect to" +msgstr "Wybierz ISP, z którym chcesz się połączyć" + +#: ../src/msw/listctrl.cpp:372 +#, c-format +msgid "" +"Please install a newer version of comctl32.dll\n" +"(at least version 4.70 is required but you have %d.%02d)\n" +"or this program won't operate correctly." +msgstr "" +"Proszę zainstalować nowszą wersję bliblioteki comctl32.dll\n" +"(wymagana co najmniej 4.70, zainstalowana %d.%02d)\n" +"inaczej program nie będzie działał poprawnie." + +#: ../src/common/headerctrlcmn.cpp:59 +msgid "Please select the columns to show and define their order:" +msgstr "Proszę wybrać kolumny do pokazania i określić ich kolejność:" + +#: ../src/common/prntbase.cpp:521 +#, fuzzy +msgid "Please wait while printing..." +msgstr "Proszę czekać, trwa drukowanie\n" + +#: ../src/propgrid/advprops.cpp:631 +msgid "Point Size" +msgstr "&Rozmiar punktu:" + +#: ../src/osx/carbon/dataview.cpp:1278 ../src/osx/carbon/dataview.cpp:1329 +#: ../src/osx/carbon/dataview.cpp:1420 ../src/osx/carbon/dataview.cpp:1443 +#: ../src/osx/carbon/dataview.cpp:1460 ../src/osx/carbon/dataview.cpp:1477 +#: ../src/osx/carbon/dataview.cpp:1670 ../src/osx/carbon/dataview.cpp:1779 +#: ../src/osx/carbon/dataview.cpp:1821 ../src/osx/carbon/dataview.cpp:1874 +#: ../src/osx/carbon/dataview.cpp:1997 +msgid "Pointer to data view control not set correctly." +msgstr "Wskaźnik do kontroli widoku danych nie jest prawidłowo ustawiony." + +#: ../src/osx/carbon/dataview.cpp:1279 ../src/osx/carbon/dataview.cpp:1338 +#: ../src/osx/carbon/dataview.cpp:1421 ../src/osx/carbon/dataview.cpp:1478 +#: ../src/osx/carbon/dataview.cpp:1671 ../src/osx/carbon/dataview.cpp:1780 +#: ../src/osx/carbon/dataview.cpp:1822 ../src/osx/carbon/dataview.cpp:1875 +#: ../src/osx/carbon/dataview.cpp:1998 +msgid "Pointer to model not set correctly." +msgstr "Wskaźnik do modelu nie jest prawidłowo ustawiony." + +#: ../src/generic/prntdlgg.cpp:617 ../src/generic/prntdlgg.cpp:872 +msgid "Portrait" +msgstr "Portret" + +#: ../src/richtext/richtextsizepage.cpp:493 +msgid "Position" +msgstr "PozycjaPytanie" + +#: ../src/generic/prntdlgg.cpp:303 +msgid "PostScript file" +msgstr "plik PostScript" + +#: ../src/common/stockitem.cpp:181 +msgid "Preferences" +msgstr "Preferencje" + +#: ../src/osx/menu_osx.cpp:643 +msgid "Preferences..." +msgstr "&Preferencje..." + +#: ../src/common/prntbase.cpp:529 +msgid "Preparing" +msgstr "Przygotowywanie" + +#: ../src/generic/fontdlgg.cpp:455 ../src/osx/carbon/fontdlg.cpp:576 +#: ../src/html/helpwnd.cpp:1235 +msgid "Preview:" +msgstr "Podgląd:" + +#: ../src/common/prntbase.cpp:1523 ../src/html/helpwnd.cpp:677 +msgid "Previous page" +msgstr "Poprzednia strona" + +#: ../src/generic/prntdlgg.cpp:148 ../src/generic/prntdlgg.cpp:162 +#: ../src/common/prntbase.cpp:409 ../src/common/prntbase.cpp:1511 +#: ../src/gtk/print.cpp:593 ../src/gtk/print.cpp:606 +#: ../src/gtk/gnome/gprint.cpp:537 ../src/gtk/gnome/gprint.cpp:549 +msgid "Print" +msgstr "Drukuj" + +#: ../include/wx/prntbase.h:395 ../src/common/docview.cpp:1250 +msgid "Print Preview" +msgstr "Podgląd wydruku" + +#: ../src/common/prntbase.cpp:1985 ../src/common/prntbase.cpp:2027 +#: ../src/common/prntbase.cpp:2035 +msgid "Print Preview Failure" +msgstr "Awaria podglądu wydruku" + +#: ../src/generic/prntdlgg.cpp:229 +msgid "Print Range" +msgstr "Zakres wydruku" + +#: ../src/generic/prntdlgg.cpp:454 +msgid "Print Setup" +msgstr "Ustawienia wydruku" + +#: ../src/generic/prntdlgg.cpp:626 +msgid "Print in colour" +msgstr "Wydruk w kolorze" + +#: ../src/common/stockitem.cpp:182 +#, fuzzy +msgid "Print previe&w..." +msgstr "Podgląd &wydruku" + +#: ../src/gtk/gnome/gprint.cpp:944 +msgid "Print preview" +msgstr "Podgląd wydruku" + +#: ../src/common/docview.cpp:1244 +msgid "Print preview creation failed." +msgstr "Nie udało się utworzyć podglądu wydruku." + +#: ../src/common/stockitem.cpp:182 +#, fuzzy +msgid "Print preview..." +msgstr "Podgląd wydruku" + +#: ../src/generic/prntdlgg.cpp:635 +msgid "Print spooling" +msgstr "Kolejkowanie wydruków" + +#: ../src/html/helpwnd.cpp:688 +msgid "Print this page" +msgstr "Drukuj stronę" + +#: ../src/generic/prntdlgg.cpp:190 +msgid "Print to File" +msgstr "Drukuj do pliku" + +#: ../src/common/stockitem.cpp:183 +#, fuzzy +msgid "Print..." +msgstr "&Drukuj..." + +#: ../src/generic/prntdlgg.cpp:498 +msgid "Printer" +msgstr "Drukarka" + +#: ../src/generic/prntdlgg.cpp:638 +msgid "Printer command:" +msgstr "Polecenie drukarki:" + +#: ../src/generic/prntdlgg.cpp:185 +msgid "Printer options" +msgstr "Opcje drukarki" + +#: ../src/generic/prntdlgg.cpp:650 +msgid "Printer options:" +msgstr "Opcje drukarki:" + +#: ../src/generic/prntdlgg.cpp:921 +msgid "Printer..." +msgstr "Drukarka..." + +#: ../src/generic/prntdlgg.cpp:201 +msgid "Printer:" +msgstr "Drukarka:" + +#: ../include/wx/richtext/richtextprint.h:163 ../src/common/prntbase.cpp:518 +#: ../src/html/htmprint.cpp:277 +#, fuzzy +msgid "Printing" +msgstr "Drukowanie " + +#: ../src/common/prntbase.cpp:586 +msgid "Printing " +msgstr "Drukowanie " + +#: ../src/common/prntbase.cpp:330 +msgid "Printing Error" +msgstr "Błąd wydruku" + +#: ../src/common/prntbase.cpp:544 +#, c-format +msgid "Printing page %d of %d" +msgstr "Drukowanie strony %d z %d" + +#: ../src/generic/printps.cpp:201 +#, c-format +msgid "Printing page %d..." +msgstr "Drukowanie strony %d..." + +#: ../src/generic/printps.cpp:161 +msgid "Printing..." +msgstr "Drukowanie..." + +#: ../include/wx/richtext/richtextprint.h:109 ../include/wx/prntbase.h:263 +#: ../src/common/docview.cpp:2125 +msgid "Printout" +msgstr "Wydruk" + +#: ../src/common/debugrpt.cpp:565 +#, c-format +msgid "" +"Processing debug report has failed, leaving the files in \"%s\" directory." +msgstr "" +"Przetwarzanie raportu błędów nie powiodło się, pozostawiając pliku w " +"katalogu \"%s\"." + +#: ../src/osx/carbon/dataview.cpp:2472 +msgid "Progress renderer cannot render value type; value type: " +msgstr "Render postępu nie może renderować typu wartości; typ wartości:" + +#: ../src/common/prntbase.cpp:528 +msgid "Progress:" +msgstr "Postęp:" + +#: ../src/common/stockitem.cpp:184 +#, fuzzy +msgid "Properties" +msgstr "&Właściwości" + +#: ../src/propgrid/manager.cpp:237 +msgid "Property" +msgstr "Właściwość" + +#: ../src/propgrid/propgrid.cpp:3144 ../src/propgrid/propgrid.cpp:3276 +msgid "Property Error" +msgstr "Błąd właściwości" + +#: ../src/common/paper.cpp:113 +msgid "Quarto, 215 x 275 mm" +msgstr "Quarto, 215 x 275 mm" + +#: ../src/generic/logg.cpp:1036 +msgid "Question" +msgstr "Pytanie" + +#: ../src/common/stockitem.cpp:156 +#, fuzzy +msgid "Quit" +msgstr "&Wyjście" + +#: ../src/osx/menu_osx.cpp:610 ../src/osx/menu_osx.cpp:657 +#, c-format +msgid "Quit %s" +msgstr "&Wyjście z %s" + +#: ../src/common/stockitem.cpp:263 +msgid "Quit this program" +msgstr "Zamknij program" + +#: ../src/common/accelcmn.cpp:53 +msgid "RETURN" +msgstr "RETURN" + +#: ../src/common/accelcmn.cpp:57 +msgid "RIGHT" +msgstr "PRAWO" + +#: ../src/common/accelcmn.cpp:327 +msgid "RawCtrl+" +msgstr "" + +#: ../src/common/ffile.cpp:113 ../src/common/ffile.cpp:134 +#, c-format +msgid "Read error on file '%s'" +msgstr "Błąd odczytu pliku '%s'" + +#: ../src/common/prntbase.cpp:257 +msgid "Ready" +msgstr "Gotowy" + +#: ../src/common/stockitem.cpp:185 ../src/stc/stc_i18n.cpp:16 +msgid "Redo" +msgstr "Ponów" + +#: ../src/common/stockitem.cpp:264 +msgid "Redo last action" +msgstr "Powtórz ostatnią czynność" + +#: ../src/common/stockitem.cpp:186 +msgid "Refresh" +msgstr "Odśwież" + +#: ../src/msw/registry.cpp:625 +#, c-format +msgid "Registry key '%s' already exists." +msgstr "Klucz rejestru '%s' już istnieje." + +#: ../src/msw/registry.cpp:594 +#, c-format +msgid "Registry key '%s' does not exist, cannot rename it." +msgstr "Klucz rejestru '%s' nie istnieje, nie można zmienić jego nazwy." + +#: ../src/msw/registry.cpp:726 +#, c-format +msgid "" +"Registry key '%s' is needed for normal system operation,\n" +"deleting it will leave your system in unusable state:\n" +"operation aborted." +msgstr "" +"Klucz rejestru '%s' jest potrzebny do normalnego funkcjonowania systemu,\n" +"usunięcie go zdestabilizowałoby system:\n" +"operacja została przerwana." + +#: ../src/msw/registry.cpp:520 +#, c-format +msgid "Registry value '%s' already exists." +msgstr "Wartość rejestru '%s' już istnieje." + +#: ../src/richtext/richtextfontpage.cpp:332 +#: ../src/richtext/richtextfontpage.cpp:336 +msgid "Regular" +msgstr "Regularne" + +#: ../src/richtext/richtextsizepage.cpp:516 +msgid "Relative" +msgstr "" + +#: ../src/generic/helpext.cpp:462 +msgid "Relevant entries:" +msgstr "Pozycje związane:" + +#: ../include/wx/generic/progdlgg.h:86 +msgid "Remaining time:" +msgstr "Pozostały czas:" + +#: ../src/common/stockitem.cpp:187 +msgid "Remove" +msgstr "Usuń" + +#: ../src/richtext/richtextctrl.cpp:1430 +msgid "Remove Bullet" +msgstr "Usuń wypunktowanie" + +#: ../src/html/helpwnd.cpp:440 +msgid "Remove current page from bookmarks" +msgstr "Usuń bieżącą stronę z listy zakładek" + +#: ../src/common/rendcmn.cpp:194 +#, c-format +msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded." +msgstr "" +"Wizualizator \"%s\" ma niezgodną wersję %d.%d i nie może być załadowany." + +#: ../src/osx/carbon/dataview.cpp:1430 +msgid "Rendering failed." +msgstr "Rendering nie powiodł się." + +#: ../src/richtext/richtextbuffer.cpp:4202 +msgid "Renumber List" +msgstr "Zmień numerację listy" + +#: ../src/common/stockitem.cpp:188 +msgid "Rep&lace" +msgstr "&Zastąp" + +#: ../src/richtext/richtextctrl.cpp:3263 ../src/common/stockitem.cpp:188 +msgid "Replace" +msgstr "Zastąp" + +#: ../src/generic/fdrepdlg.cpp:182 +msgid "Replace &all" +msgstr "Zastąp &wszystko" + +#: ../src/common/stockitem.cpp:261 +msgid "Replace selection" +msgstr "Zastąp wybór" + +#: ../src/generic/fdrepdlg.cpp:124 +msgid "Replace with:" +msgstr "Zastąp przez:" + +#: ../src/common/valtext.cpp:161 +msgid "Required information entry is empty." +msgstr "Wymagane pole informacji jest puste." + +#: ../src/common/translation.cpp:1975 +#, c-format +msgid "Resource '%s' is not a valid message catalog." +msgstr "Zasób '%s' nie jest prawidłowym katalogiem komunikatów." + +#: ../src/common/stockitem.cpp:189 +msgid "Revert to Saved" +msgstr "Przywróć zapisany" + +#: ../src/richtext/richtextborderspage.cpp:548 +msgid "Ridge" +msgstr "" + +#: ../src/richtext/richtextliststylepage.cpp:251 +#: ../src/richtext/richtextbulletspage.cpp:201 +#: ../src/richtext/richtextsizepage.cpp:247 +msgid "Right" +msgstr "Prawy" + +#: ../src/generic/prntdlgg.cpp:897 +msgid "Right margin (mm):" +msgstr "Prawy margines (mm):" + +#: ../src/richtext/richtextindentspage.cpp:148 +#: ../src/richtext/richtextindentspage.cpp:150 +#: ../src/richtext/richtextliststylepage.cpp:337 +#: ../src/richtext/richtextliststylepage.cpp:339 +msgid "Right-align text." +msgstr "Prawe dostosowanie tekstu." + +#: ../src/generic/fontdlgg.cpp:322 +msgid "Roman" +msgstr "Roman" + +#: ../src/richtext/richtextliststylepage.cpp:299 +#: ../src/richtext/richtextbulletspage.cpp:252 +msgid "S&tandard bullet name:" +msgstr "Standardowy styl wypunktowania:" + +#: ../src/common/accelcmn.cpp:82 +msgid "SCROLL_LOCK" +msgstr "SCROLL_LOCK" + +#: ../src/common/accelcmn.cpp:71 +msgid "SELECT" +msgstr "WYBÓR" + +#: ../src/common/accelcmn.cpp:77 +msgid "SEPARATOR" +msgstr "SEPARATOR" + +#: ../src/common/accelcmn.cpp:74 +msgid "SNAPSHOT" +msgstr "ZRZUT EKRANU" + +#: ../src/common/accelcmn.cpp:62 +msgid "SPACE" +msgstr "SPACJA" + +#: ../src/common/accelcmn.cpp:257 ../src/common/accelcmn.cpp:339 +msgid "SPECIAL" +msgstr "SPECJALNY" + +#: ../src/common/accelcmn.cpp:78 +msgid "SUBTRACT" +msgstr "DZIELENIE" + +#: ../src/common/stockitem.cpp:190 ../src/common/sizer.cpp:2678 +msgid "Save" +msgstr "Zapisz" + +#: ../src/common/fldlgcmn.cpp:327 +#, c-format +msgid "Save %s file" +msgstr "Zapisz plik %s" + +#: ../src/generic/logg.cpp:518 +msgid "Save &As..." +msgstr "Zapisz J&ako..." + +#: ../src/common/docview.cpp:360 +msgid "Save As" +msgstr "Zapisz Jako" + +#: ../src/common/stockitem.cpp:191 +#, fuzzy +msgid "Save as" +msgstr "Zapisz Jako" + +# perspektywę? +#: ../src/common/stockitem.cpp:267 +msgid "Save current document" +msgstr "Zapisz bieżący dokument" + +#: ../src/common/stockitem.cpp:268 +msgid "Save current document with a different filename" +msgstr "Zapisz bieżący dokument pod inną nazwą pliku" + +#: ../src/generic/logg.cpp:518 +msgid "Save log contents to file" +msgstr "Zapisz zawartość dziennika do pliku" + +#: ../src/generic/fontdlgg.cpp:325 +msgid "Script" +msgstr "Script" + +#: ../src/generic/srchctlg.cpp:67 ../src/html/helpwnd.cpp:548 +#: ../src/html/helpwnd.cpp:563 +msgid "Search" +msgstr "Szukaj" + +#: ../src/html/helpwnd.cpp:550 +#, fuzzy +msgid "" +"Search contents of help book(s) for all occurrences of the text you typed " +"above" +msgstr "" +"Przeszukuje zawartość pliku(ów) pomocy dla wszystkich wystąpień " +"wprowadzonego powyżej tekstu" + +#: ../src/generic/fdrepdlg.cpp:160 +msgid "Search direction" +msgstr "Kierunek szukania" + +#: ../src/generic/fdrepdlg.cpp:112 +msgid "Search for:" +msgstr "Znajdź:" + +# spisach? +#: ../src/html/helpwnd.cpp:1065 +msgid "Search in all books" +msgstr "Szukaj we wszystkich plikach pomocy" + +#: ../src/html/helpwnd.cpp:870 +msgid "Searching..." +msgstr "Wyszukiwanie..." + +#: ../src/generic/dirctrlg.cpp:546 +msgid "Sections" +msgstr "Sekcje" + +#: ../src/common/ffile.cpp:220 +#, c-format +msgid "Seek error on file '%s'" +msgstr "Błąd pozycjonowania w pliku '%s'" + +#: ../src/common/ffile.cpp:210 +#, c-format +msgid "Seek error on file '%s' (large files not supported by stdio)" +msgstr "Błąd wyszukiwania w pliku '%s' (stdio nie wspiera olbrzymich plików)" + +#: ../src/richtext/richtextctrl.cpp:330 ../src/osx/textctrl_osx.cpp:587 +#: ../src/common/stockitem.cpp:192 ../src/msw/textctrl.cpp:2288 +msgid "Select &All" +msgstr "&Zaznacz wszystko" + +#: ../src/common/stockitem.cpp:192 ../src/stc/stc_i18n.cpp:21 +msgid "Select All" +msgstr "Zaznacz wszystko" + +#: ../src/common/docview.cpp:1878 +msgid "Select a document template" +msgstr "Wybierz szablon dokumentu" + +# perspektywę? +#: ../src/common/docview.cpp:1952 +msgid "Select a document view" +msgstr "Wybierz widok dokumentu" + +#: ../src/richtext/richtextfontpage.cpp:235 +#: ../src/richtext/richtextfontpage.cpp:237 +msgid "Select regular or bold." +msgstr "Wybierz regularną lub pogrubioną czcionkę." + +#: ../src/richtext/richtextfontpage.cpp:222 +#: ../src/richtext/richtextfontpage.cpp:224 +msgid "Select regular or italic style." +msgstr "Wybierz regularny lub kursywny styl." + +#: ../src/richtext/richtextfontpage.cpp:248 +#: ../src/richtext/richtextfontpage.cpp:250 +msgid "Select underlining or no underlining." +msgstr "Wybierz podkreślanie lub bez podkreślania." + +#: ../src/motif/filedlg.cpp:220 +msgid "Selection" +msgstr "Wybór" + +#: ../src/richtext/richtextliststylepage.cpp:187 +#: ../src/richtext/richtextliststylepage.cpp:189 +msgid "Selects the list level to edit." +msgstr "Wybiera poziom listy do edycji." + +#: ../src/common/cmdline.cpp:918 +#, c-format +msgid "Separator expected after the option '%s'." +msgstr "Oczekiwano separatora po opcji '%s'." + +#: ../src/richtext/richtextbuffer.cpp:10397 +msgid "Set Cell Style" +msgstr "Usuń styl komórki" + +#: ../include/wx/xtiprop.h:179 +msgid "SetProperty called w/o valid setter" +msgstr "" +"Funkcja SetProperty wywołana bez poprawnej moduły ustawiającego właściwość" + +#: ../src/common/filename.cpp:2632 +msgid "Setting directory access times is not supported under this OS version" +msgstr "" +"Ustawienie czasu dostępu do katalogów nie jest obsługiwane w tej wersji " +"systemu operacyjnego." + +#: ../src/generic/prntdlgg.cpp:193 +msgid "Setup..." +msgstr "Ustawienia..." + +#: ../src/msw/dialup.cpp:563 +msgid "Several active dialup connections found, choosing one randomly." +msgstr "Znalezione kilka dostępnych połączeń dialup, zostanie użyte pierwsze." + +#: ../src/common/accelcmn.cpp:324 +#, fuzzy +msgid "Shift+" +msgstr "Shift-" + +#: ../src/generic/dirdlgg.cpp:170 +msgid "Show &hidden directories" +msgstr "Pokaż &ukryte katalogi" + +#: ../src/generic/filectrlg.cpp:1003 +msgid "Show &hidden files" +msgstr "Pokazuj &ukryte pliki" + +#: ../src/osx/menu_osx.cpp:605 ../src/osx/menu_osx.cpp:652 +#, fuzzy +msgid "Show All" +msgstr "Pokaż wszystko" + +#: ../src/common/stockitem.cpp:257 +msgid "Show about dialog" +msgstr "Pokazuje okno O" + +#: ../src/html/helpwnd.cpp:502 +msgid "Show all" +msgstr "Pokaż wszystko" + +#: ../src/html/helpwnd.cpp:513 +msgid "Show all items in index" +msgstr "Pokaż wszystkie elementy indeksu" + +#: ../src/generic/dirdlgg.cpp:105 +msgid "Show hidden directories" +msgstr "Pokaż ukryte katalogi" + +#: ../src/html/helpwnd.cpp:671 +msgid "Show/hide navigation panel" +msgstr "Pokaż/ukryj panel sterowania" + +#: ../src/richtext/richtextsymboldlg.cpp:421 +#: ../src/richtext/richtextsymboldlg.cpp:423 +msgid "Shows a Unicode subset." +msgstr "Pokazuje podzbiór Unicode." + +#: ../src/richtext/richtextliststylepage.cpp:472 +#: ../src/richtext/richtextliststylepage.cpp:474 +#: ../src/richtext/richtextbulletspage.cpp:276 +#: ../src/richtext/richtextbulletspage.cpp:278 +msgid "Shows a preview of the bullet settings." +msgstr "Pokazuje podgląd ustawień wypunktowania." + +#: ../src/richtext/richtextfontpage.cpp:322 +#: ../src/richtext/richtextfontpage.cpp:324 +msgid "Shows a preview of the font settings." +msgstr "Pokazuje podgląd ustawień czcionki." + +#: ../src/osx/carbon/fontdlg.cpp:580 ../src/osx/carbon/fontdlg.cpp:582 +msgid "Shows a preview of the font." +msgstr "Pokazuje podgląd czcionki." + +#: ../src/richtext/richtextindentspage.cpp:303 +#: ../src/richtext/richtextindentspage.cpp:305 +msgid "Shows a preview of the paragraph settings." +msgstr "Pokazuje podgląd ustawień paragrafu." + +#: ../src/generic/fontdlgg.cpp:460 ../src/generic/fontdlgg.cpp:462 +msgid "Shows the font preview." +msgstr "Podgląd czcionki." + +#: ../src/univ/themes/mono.cpp:516 +msgid "Simple monochrome theme" +msgstr "Prosty czarno-biały motyw" + +#: ../src/richtext/richtextindentspage.cpp:275 +#: ../src/richtext/richtextliststylepage.cpp:449 +msgid "Single" +msgstr "Pojedynczy" + +#: ../src/generic/filectrlg.cpp:460 ../src/richtext/richtextformatdlg.cpp:356 +#: ../src/richtext/richtextsizepage.cpp:296 +msgid "Size" +msgstr "Rozmiar" + +#: ../src/osx/carbon/fontdlg.cpp:525 +msgid "Size:" +msgstr "Rozmiar:" + +#: ../src/generic/progdlgg.cpp:262 ../src/generic/progdlgg.cpp:773 +#: ../src/msw/progdlg.cpp:801 +msgid "Skip" +msgstr "Pomiń" + +#: ../src/generic/fontdlgg.cpp:330 +msgid "Slant" +msgstr "Pochylony" + +#: ../src/richtext/richtextfontpage.cpp:298 +msgid "Small C&apitals" +msgstr "" + +#: ../src/richtext/richtextborderspage.cpp:543 +msgid "Solid" +msgstr "" + +#: ../src/common/docview.cpp:1774 +msgid "Sorry, could not open this file." +msgstr "Niestety nie można otworzyć tego pliku." + +#: ../src/common/prntbase.cpp:2027 ../src/common/prntbase.cpp:2035 +msgid "Sorry, not enough memory to create a preview." +msgstr "Niestety za mało pamięci aby przygotować podgląd." + +#: ../src/richtext/richtextstyledlg.cpp:608 +#: ../src/richtext/richtextstyledlg.cpp:656 +#: ../src/richtext/richtextstyledlg.cpp:822 +#: ../src/richtext/richtextstyledlg.cpp:898 +#: ../src/richtext/richtextstyledlg.cpp:936 +msgid "Sorry, that name is taken. Please choose another." +msgstr "Niestety, nazwa ta jest zajęta. Proszę wybrać inną." + +#: ../src/common/docview.cpp:1797 +msgid "Sorry, the format for this file is unknown." +msgstr "Niestety, nieznany format pliku." + +#: ../src/unix/sound.cpp:492 +msgid "Sound data are in unsupported format." +msgstr "Dane dźwiękowe są w formacie, który nie jest wspierany." + +#: ../src/unix/sound.cpp:477 +#, c-format +msgid "Sound file '%s' is in unsupported format." +msgstr "Plik z dźwiękiem '%s' jest w formacie, który nie jest wspierany." + +#: ../src/richtext/richtextliststylepage.cpp:467 +msgid "Spacing" +msgstr "Odstępy" + +#: ../src/common/stockitem.cpp:197 +msgid "Spell Check" +msgstr "Sprawdzanie pisowni" + +#: ../src/richtext/richtextliststylepage.cpp:490 +#: ../src/richtext/richtextbulletspage.cpp:295 +msgid "Standard" +msgstr "Standard" + +#: ../src/common/paper.cpp:105 +msgid "Statement, 5 1/2 x 8 1/2 in" +msgstr "Statement, 5 1/2 x 8 1/2 cala" + +#: ../src/richtext/richtextsizepage.cpp:515 +#: ../src/richtext/richtextsizepage.cpp:520 +msgid "Static" +msgstr "Statyczny" + +#: ../src/generic/prntdlgg.cpp:209 +msgid "Status:" +msgstr "Status:" + +#: ../src/common/stockitem.cpp:198 +msgid "Stop" +msgstr "Stop" + +#: ../src/common/stockitem.cpp:199 +#, fuzzy +msgid "Strikethrough" +msgstr "&Przekreślenie" + +#: ../src/common/colourcmn.cpp:45 +#, c-format +msgid "String To Colour : Incorrect colour specification : %s" +msgstr "Nieprawidłowa specyfikacja koloru : %s" + +#: ../src/richtext/richtextformatdlg.cpp:318 ../src/propgrid/advprops.cpp:647 +msgid "Style" +msgstr "Styl" + +#: ../include/wx/richtext/richtextstyledlg.h:47 +msgid "Style Organiser" +msgstr "Organizator stylu" + +#: ../src/osx/carbon/fontdlg.cpp:534 +msgid "Style:" +msgstr "Styl:" + +#: ../src/richtext/richtextfontpage.cpp:312 +msgid "Subscrip&t" +msgstr "Indeks &dolny" + +#: ../src/richtext/richtextfontpage.cpp:305 +msgid "Supe&rscript" +msgstr "Indeks &górny" + +#: ../src/common/paper.cpp:151 +msgid "SuperA/SuperA/A4 227 x 356 mm" +msgstr "SuperA/SuperA/A4 227 x 356 mm" + +#: ../src/common/paper.cpp:152 +msgid "SuperB/SuperB/A3 305 x 487 mm" +msgstr "SuperB/SuperB/A3 305 x 487 mm" + +#: ../src/generic/fontdlgg.cpp:326 +msgid "Swiss" +msgstr "Swiss" + +#: ../src/richtext/richtextliststylepage.cpp:488 +#: ../src/richtext/richtextbulletspage.cpp:293 +msgid "Symbol" +msgstr "Symbol" + +#: ../src/richtext/richtextliststylepage.cpp:288 +#: ../src/richtext/richtextbulletspage.cpp:240 +msgid "Symbol &font:" +msgstr "&Czcionka symbolu:" + +#: ../include/wx/richtext/richtextsymboldlg.h:47 +msgid "Symbols" +msgstr "Symbole" + +#: ../src/common/accelcmn.cpp:63 +msgid "TAB" +msgstr "TAB" + +#: ../src/common/imagtiff.cpp:372 ../src/common/imagtiff.cpp:385 +#: ../src/common/imagtiff.cpp:744 +msgid "TIFF: Couldn't allocate memory." +msgstr "TIFF: Nie można przydzielić pamięci." + +#: ../src/common/imagtiff.cpp:304 +msgid "TIFF: Error loading image." +msgstr "TIFF: Błąd przy wczytywaniu obrazu." + +#: ../src/common/imagtiff.cpp:471 +msgid "TIFF: Error reading image." +msgstr "TIFF: Błąd odczytu." + +#: ../src/common/imagtiff.cpp:611 +msgid "TIFF: Error saving image." +msgstr "TIFF: Wystąpił błąd przy zapisie." + +#: ../src/common/imagtiff.cpp:849 +msgid "TIFF: Error writing image." +msgstr "TIFF: Błąd zapisu." + +#: ../src/common/imagtiff.cpp:358 +msgid "TIFF: Image size is abnormally big." +msgstr "TIFF: Rozmiar obrazu jest wyjątkowo duży." + +#: ../src/richtext/richtextbuffer.cpp:10687 +msgid "Table Properties" +msgstr "&Właściwości tabeli" + +#: ../src/common/paper.cpp:146 +msgid "Tabloid Extra 11.69 x 18 in" +msgstr "Tabloid Extra 11.69 x 18 cali" + +#: ../src/common/paper.cpp:103 +msgid "Tabloid, 11 x 17 in" +msgstr "Tabloid, 11 x 17 cali" + +#: ../src/richtext/richtextformatdlg.cpp:336 +msgid "Tabs" +msgstr "Karty" + +#: ../src/generic/fontdlgg.cpp:327 +msgid "Teletype" +msgstr "Teletype" + +#: ../src/common/docview.cpp:1879 +msgid "Templates" +msgstr "Szablony" + +#: ../src/osx/carbon/dataview.cpp:2373 +msgid "Text renderer cannot render value; value type: " +msgstr "Render tekstu nie może renderować wartości; typ wartości:" + +#: ../src/common/fmapbase.cpp:158 +msgid "Thai (ISO-8859-11)" +msgstr "Tajski (ISO-8859-11)" + +#: ../src/common/ftp.cpp:620 +msgid "The FTP server doesn't support passive mode." +msgstr "Serwer FTP nie obsługuje trybu pasywnego." + +#: ../src/common/ftp.cpp:606 +msgid "The FTP server doesn't support the PORT command." +msgstr "Serwer FTP nie obsługuje komendy PORT." + +#: ../src/richtext/richtextliststylepage.cpp:215 +#: ../src/richtext/richtextliststylepage.cpp:217 +#: ../src/richtext/richtextbulletspage.cpp:164 +#: ../src/richtext/richtextbulletspage.cpp:166 +msgid "The available bullet styles." +msgstr "Dostępne style wypunktowania." + +#: ../src/richtext/richtextstyledlg.cpp:202 +#: ../src/richtext/richtextstyledlg.cpp:204 +msgid "The available styles." +msgstr "Dostępne style." + +#: ../src/richtext/richtextbackgroundpage.cpp:139 +#: ../src/richtext/richtextbackgroundpage.cpp:141 +#, fuzzy +msgid "The background colour." +msgstr "Kolor tła" + +#: ../src/richtext/richtextmarginspage.cpp:268 +#: ../src/richtext/richtextmarginspage.cpp:270 +msgid "The bottom margin size." +msgstr "Rozmiar dolnego marginesu." + +#: ../src/richtext/richtextmarginspage.cpp:382 +#: ../src/richtext/richtextmarginspage.cpp:384 +msgid "The bottom padding size." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:636 +#: ../src/richtext/richtextsizepage.cpp:638 +#: ../src/richtext/richtextsizepage.cpp:650 +#: ../src/richtext/richtextsizepage.cpp:652 +msgid "The bottom position." +msgstr "" + +#: ../src/richtext/richtextliststylepage.cpp:254 +#: ../src/richtext/richtextliststylepage.cpp:256 +#: ../src/richtext/richtextliststylepage.cpp:275 +#: ../src/richtext/richtextliststylepage.cpp:277 +#: ../src/richtext/richtextbulletspage.cpp:204 +#: ../src/richtext/richtextbulletspage.cpp:206 +#: ../src/richtext/richtextbulletspage.cpp:227 +#: ../src/richtext/richtextbulletspage.cpp:229 +msgid "The bullet character." +msgstr "Znak wypunktowania." + +#: ../src/richtext/richtextsymboldlg.cpp:443 +#: ../src/richtext/richtextsymboldlg.cpp:445 +msgid "The character code." +msgstr "Kod znaku." + +#: ../src/common/fontmap.cpp:203 +#, c-format +msgid "" +"The charset '%s' is unknown. You may select\n" +"another charset to replace it with or choose\n" +"[Cancel] if it cannot be replaced" +msgstr "" +"Nieznany zestaw znaków '%s'. Możesz wybrać\n" +"inny zestaw aby go zastąpić lub wybierz\n" +"[Anuluj] jeśli nie można go zastąpić." + +#: ../src/msw/ole/dataobj.cpp:367 +#, c-format +msgid "The clipboard format '%d' doesn't exist." +msgstr "Format schowka '%d' nie istnieje." + +#: ../src/richtext/richtextstylepage.cpp:128 +#: ../src/richtext/richtextstylepage.cpp:130 +msgid "The default style for the next paragraph." +msgstr "Domyślny styl dla następnego paragrafu." + +#: ../src/generic/dirdlgg.cpp:231 +#, c-format +msgid "" +"The directory '%s' does not exist\n" +"Create it now?" +msgstr "" +"Katalog '%s' nie istnieje\n" +"Utworzyć go teraz?" + +#: ../src/html/htmprint.cpp:271 +#, c-format +msgid "" +"The document \"%s\" doesn't fit on the page horizontally and will be " +"truncated if printed.\n" +"\n" +"Would you like to proceed with printing it nevertheless?" +msgstr "" +"Dokument \"%s\" nie mieści się na stronie poziomo i będzie ucięty na " +"wydruku.\n" +"\n" +"Chcesz kontynuować drukowanie mimo to?" + +#: ../src/common/docview.cpp:1184 +#, c-format +msgid "" +"The file '%s' doesn't exist and couldn't be opened.\n" +"It has been removed from the most recently used files list." +msgstr "" +"Plik '%s' nie istnieje i nie można go otworzyć.\n" +"Informacja o nim została usunięta z listy ostatnio używanych plików." + +#: ../src/richtext/richtextindentspage.cpp:208 +#: ../src/richtext/richtextindentspage.cpp:210 +#: ../src/richtext/richtextliststylepage.cpp:394 +#: ../src/richtext/richtextliststylepage.cpp:396 +msgid "The first line indent." +msgstr "Wcięcie pierwszego wierszu." + +#: ../src/gtk/utilsgtk.cpp:427 +msgid "The following standard GTK+ options are also supported:\n" +msgstr "Następujące opcje standardowe GTK+ także są obsługiwane:\n" + +#: ../src/generic/fontdlgg.cpp:414 ../src/generic/fontdlgg.cpp:416 +msgid "The font colour." +msgstr "Kolor czcionki." + +#: ../src/generic/fontdlgg.cpp:375 ../src/generic/fontdlgg.cpp:377 +msgid "The font family." +msgstr "Rodzina czcionki." + +#: ../src/richtext/richtextsymboldlg.cpp:405 +#: ../src/richtext/richtextsymboldlg.cpp:407 +msgid "The font from which to take the symbol." +msgstr "Czcionka z której pobrać symbol." + +#: ../src/generic/fontdlgg.cpp:427 ../src/generic/fontdlgg.cpp:429 +#: ../src/generic/fontdlgg.cpp:434 ../src/generic/fontdlgg.cpp:436 +msgid "The font point size." +msgstr "Rozmiar czcionki." + +#: ../src/osx/carbon/fontdlg.cpp:529 ../src/osx/carbon/fontdlg.cpp:531 +msgid "The font size in points." +msgstr "Rozmiar czcionki w punktach." + +#: ../src/richtext/richtextfontpage.cpp:190 +#: ../src/richtext/richtextfontpage.cpp:192 +msgid "The font size units, points or pixels." +msgstr "Rozmiar czcionki w punktach lub pikselach ." + +#: ../src/generic/fontdlgg.cpp:386 ../src/generic/fontdlgg.cpp:388 +msgid "The font style." +msgstr "Styl czcionki." + +#: ../src/generic/fontdlgg.cpp:397 ../src/generic/fontdlgg.cpp:399 +msgid "The font weight." +msgstr "Waga czcionki." + +#: ../src/common/docview.cpp:1465 +#, c-format +msgid "The format of file '%s' couldn't be determined." +msgstr "" + +#: ../src/richtext/richtextindentspage.cpp:199 +#: ../src/richtext/richtextindentspage.cpp:201 +#: ../src/richtext/richtextliststylepage.cpp:385 +#: ../src/richtext/richtextliststylepage.cpp:387 +msgid "The left indent." +msgstr "Lewe wcięcie." + +#: ../src/richtext/richtextmarginspage.cpp:195 +#: ../src/richtext/richtextmarginspage.cpp:197 +msgid "The left margin size." +msgstr "Rozmiar lewego marginesu." + +#: ../src/richtext/richtextmarginspage.cpp:309 +#: ../src/richtext/richtextmarginspage.cpp:311 +msgid "The left padding size." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:531 +#: ../src/richtext/richtextsizepage.cpp:533 +#: ../src/richtext/richtextsizepage.cpp:545 +#: ../src/richtext/richtextsizepage.cpp:547 +msgid "The left position." +msgstr "" + +#: ../src/richtext/richtextindentspage.cpp:288 +#: ../src/richtext/richtextindentspage.cpp:290 +#: ../src/richtext/richtextliststylepage.cpp:462 +#: ../src/richtext/richtextliststylepage.cpp:464 +msgid "The line spacing." +msgstr "Odstęp między wierszami." + +#: ../src/richtext/richtextbulletspage.cpp:268 +#: ../src/richtext/richtextbulletspage.cpp:270 +msgid "The list item number." +msgstr "Numer pozycji listy." + +#: ../src/msw/ole/automtn.cpp:653 +msgid "The locale ID is unknown." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:363 +#: ../src/richtext/richtextsizepage.cpp:365 +msgid "The object height." +msgstr "Wysokość obiektu" + +#: ../src/richtext/richtextsizepage.cpp:471 +#: ../src/richtext/richtextsizepage.cpp:473 +msgid "The object maximum height." +msgstr "Maksymalna wysokość obiektu" + +#: ../src/richtext/richtextsizepage.cpp:444 +#: ../src/richtext/richtextsizepage.cpp:446 +msgid "The object maximum width." +msgstr "Maksymalna szerokość obiektu" + +#: ../src/richtext/richtextsizepage.cpp:417 +#: ../src/richtext/richtextsizepage.cpp:419 +msgid "The object minimum height." +msgstr "Minimalna wysokość obiektu" + +#: ../src/richtext/richtextsizepage.cpp:390 +#: ../src/richtext/richtextsizepage.cpp:392 +msgid "The object minimum width." +msgstr "Minimalna szerokość obiektu." + +#: ../src/richtext/richtextsizepage.cpp:329 +#: ../src/richtext/richtextsizepage.cpp:331 +msgid "The object width." +msgstr "Szerokość obiektu." + +#: ../src/richtext/richtextindentspage.cpp:227 +#: ../src/richtext/richtextindentspage.cpp:229 +msgid "The outline level." +msgstr "Poziom kontur." + +#: ../src/common/log.cpp:283 +#, c-format +msgid "The previous message repeated %lu time." +msgid_plural "The previous message repeated %lu times." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../src/common/log.cpp:276 +#, fuzzy +msgid "The previous message repeated once." +msgstr "Poprzednia wiadomość była raz powtórzona." + +#: ../src/gtk/print.cpp:940 ../src/gtk/print.cpp:1123 +msgid "The print dialog returned an error." +msgstr "Okno dialogowe drukowania zwróciło błąd." + +#: ../src/richtext/richtextsymboldlg.cpp:462 +#: ../src/richtext/richtextsymboldlg.cpp:464 +msgid "The range to show." +msgstr "Zakres do pokazania." + +#: ../src/generic/dbgrptg.cpp:322 +msgid "" +"The report contains the files listed below. If any of these files contain " +"private information,\n" +"please uncheck them and they will be removed from the report.\n" +msgstr "" +"Raport zawiera pliki wymienione niżej. Jeśli którykolwiek z tych plików " +"zawiera prywatne informacje,\n" +"proszę odznacz go w celu usunięcia go z raportu.\n" + +#: ../src/common/cmdline.cpp:1083 +#, c-format +msgid "The required parameter '%s' was not specified." +msgstr "Wymagany parametr '%s' nie został podany." + +#: ../src/richtext/richtextindentspage.cpp:217 +#: ../src/richtext/richtextindentspage.cpp:219 +#: ../src/richtext/richtextliststylepage.cpp:403 +#: ../src/richtext/richtextliststylepage.cpp:405 +msgid "The right indent." +msgstr "Prawidłowe wcięcie." + +#: ../src/richtext/richtextmarginspage.cpp:220 +#: ../src/richtext/richtextmarginspage.cpp:222 +msgid "The right margin size." +msgstr "Rozmiar prawego marginesu." + +#: ../src/richtext/richtextmarginspage.cpp:334 +#: ../src/richtext/richtextmarginspage.cpp:336 +msgid "The right padding size." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:601 +#: ../src/richtext/richtextsizepage.cpp:603 +#: ../src/richtext/richtextsizepage.cpp:615 +#: ../src/richtext/richtextsizepage.cpp:617 +msgid "The right position." +msgstr "" + +#: ../src/richtext/richtextindentspage.cpp:267 +#: ../src/richtext/richtextliststylepage.cpp:439 +#: ../src/richtext/richtextliststylepage.cpp:441 +msgid "The spacing after the paragraph." +msgstr "Odstępy po paragrafie." + +#: ../src/richtext/richtextindentspage.cpp:257 +#: ../src/richtext/richtextindentspage.cpp:259 +#: ../src/richtext/richtextliststylepage.cpp:430 +#: ../src/richtext/richtextliststylepage.cpp:432 +msgid "The spacing before the paragraph." +msgstr "Odstępy przed paragrafem." + +#: ../src/richtext/richtextstylepage.cpp:108 +#: ../src/richtext/richtextstylepage.cpp:110 +msgid "The style name." +msgstr "Nazwa stylu." + +#: ../src/richtext/richtextstylepage.cpp:118 +#: ../src/richtext/richtextstylepage.cpp:120 +msgid "The style on which this style is based." +msgstr "Styl, na którym ten styl jest oparty." + +#: ../src/richtext/richtextstyledlg.cpp:214 +#: ../src/richtext/richtextstyledlg.cpp:216 +msgid "The style preview." +msgstr "Podgląd stylu." + +#: ../src/msw/ole/automtn.cpp:669 +msgid "The system cannot find the file specified." +msgstr "System nie może odnaleźć określonego pliku." + +#: ../src/richtext/richtexttabspage.cpp:118 +#: ../src/richtext/richtexttabspage.cpp:120 +msgid "The tab position." +msgstr "Pozycja karty." + +#: ../src/richtext/richtexttabspage.cpp:124 +msgid "The tab positions." +msgstr "Pozycje karty." + +#: ../src/richtext/richtextctrl.cpp:2705 +msgid "The text couldn't be saved." +msgstr "Tekst nie może być zapisany.." + +#: ../src/richtext/richtextmarginspage.cpp:243 +#: ../src/richtext/richtextmarginspage.cpp:245 +msgid "The top margin size." +msgstr "Rozmiar górnego marginesu." + +#: ../src/richtext/richtextmarginspage.cpp:357 +#: ../src/richtext/richtextmarginspage.cpp:359 +msgid "The top padding size." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:566 +#: ../src/richtext/richtextsizepage.cpp:568 +#: ../src/richtext/richtextsizepage.cpp:580 +#: ../src/richtext/richtextsizepage.cpp:582 +msgid "The top position." +msgstr "" + +#: ../src/common/cmdline.cpp:1061 +#, c-format +msgid "The value for the option '%s' must be specified." +msgstr "Wartość opcji '%s' musi zostać podana." + +#: ../src/msw/dialup.cpp:452 +#, c-format +msgid "" +"The version of remote access service (RAS) installed on this machine is too " +"old, please upgrade (the following required function is missing: %s)." +msgstr "" +"Zainstalowana wersja serwisu zdalnego dostępu (RAS) jest zbyt stara, " +"zainstaluj nowszą (brakująca funkcja to: %s)." + +#: ../src/gtk/print.cpp:968 +msgid "The wxGtkPrinterDC cannot be used." +msgstr "wxGtkPrinterDC nie może być używany." + +#: ../src/osx/carbon/dataview.cpp:1340 +msgid "There is no column or renderer for the specified column index." +msgstr "Nie ma kolumny lub rendera dla określonej kolumny indeksu." + +#: ../src/richtext/richtextprint.cpp:614 ../src/html/htmprint.cpp:735 +msgid "" +"There was a problem during page setup: you may need to set a default printer." +msgstr "" +"Wystąpił błąd podczas konfigurowania strony: powinieneś określić domyślną " +"drukarkę." + +#: ../src/html/htmprint.cpp:255 +msgid "" +"This document doesn't fit on the page horizontally and will be truncated " +"when it is printed." +msgstr "" +"Ten dokument nie mieści się poziomo na stronie i będzie ucięty na wydruku." + +#: ../src/common/image.cpp:2716 +#, c-format +msgid "This is not a %s." +msgstr "" + +#: ../src/common/wincmn.cpp:1647 +msgid "This platform does not support background transparency." +msgstr "Ta platforma nie obsługuje przezroczystości tła." + +#: ../src/gtk/window.cpp:4295 +msgid "" +"This program was compiled with a too old version of GTK+, please rebuild " +"with GTK+ 2.12 or newer." +msgstr "" +"Ten program został skompilowany przy użyciu zbyt starej wersji GTK+, proszę " +"skompilować ponownie z użyciem GTK+ 2.12 or nowszej." + +#: ../src/msw/datecontrols.cpp:59 +msgid "" +"This system doesn't support date controls, please upgrade your version of " +"comctl32.dll" +msgstr "" +"Ten system nie wspiera wyboru daty, należy zaktualizować bibliotekę comctl32." +"dll" + +#: ../src/msw/thread.cpp:1300 +msgid "" +"Thread module initialization failed: cannot store value in thread local " +"storage" +msgstr "" +"Zainicjowanie modułu wątków nie powiodło się: nie można odłożyć wartości do " +"lokalnej pamięci wątków" + +#: ../src/unix/threadpsx.cpp:1758 +msgid "Thread module initialization failed: failed to create thread key" +msgstr "" +"Zainicjowanie modułu wątków nie powiodło się: nie udało się utworzyć klucza " +"wątków" + +#: ../src/msw/thread.cpp:1288 +msgid "" +"Thread module initialization failed: impossible to allocate index in thread " +"local storage" +msgstr "" +"Zainicjowanie modułu wątków nie powiodło się: nie jest możliwe przydzielenie " +"indeksu w lokalnej pamięci wątków." + +#: ../src/unix/threadpsx.cpp:1038 +msgid "Thread priority setting is ignored." +msgstr "Ustawienie priorytetu wątku jest ignorowane." + +#: ../src/msw/mdi.cpp:172 +msgid "Tile &Horizontally" +msgstr "&Sąsiadująco w poziomie" + +#: ../src/msw/mdi.cpp:173 +msgid "Tile &Vertically" +msgstr "Sąsi&adująco w pionie" + +#: ../src/common/ftp.cpp:202 +msgid "Timeout while waiting for FTP server to connect, try passive mode." +msgstr "" +"Przekroczono czas oczekiwania dla serwera FTP, spróbuj trybu pasywnego." + +#: ../src/os2/timer.cpp:99 +msgid "Timer creation failed." +msgstr "Nie powiodło się utworzenie stopera." + +#: ../src/generic/tipdlg.cpp:220 +msgid "Tip of the Day" +msgstr "Porada dnia" + +#: ../src/generic/tipdlg.cpp:154 +msgid "Tips not available, sorry!" +msgstr "Niestety, porady nie są dostępne!" + +#: ../src/generic/prntdlgg.cpp:247 +msgid "To:" +msgstr "Do:" + +#: ../src/osx/carbon/dataview.cpp:2451 +msgid "Toggle renderer cannot render value; value type: " +msgstr "Aktywny render nie może renderować wartości; typ wartości:" + +#: ../src/richtext/richtextbuffer.cpp:7925 +msgid "Too many EndStyle calls!" +msgstr "Zbyt wiele wezwań EndStyle!" + +#: ../src/common/imagpng.cpp:286 +msgid "Too many colours in PNG, the image may be slightly blurred." +msgstr "Zbyt wiele kolorów w formacie PNG, obraz może być zamazany." + +#: ../src/richtext/richtextsizepage.cpp:283 +#: ../src/richtext/richtextsizepage.cpp:287 ../src/common/stockitem.cpp:200 +msgid "Top" +msgstr "Góra" + +#: ../src/generic/prntdlgg.cpp:886 +msgid "Top margin (mm):" +msgstr "Górny margines (mm):" + +#: ../src/generic/aboutdlgg.cpp:79 +msgid "Translations by " +msgstr "Tłumaczenia autorstwa" + +#: ../src/generic/aboutdlgg.cpp:188 +msgid "Translators" +msgstr "Tłumacze" + +#: ../src/propgrid/propgrid.cpp:173 +msgid "True" +msgstr "" + +#: ../src/common/fs_mem.cpp:227 +#, c-format +msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!" +msgstr "Próbą usunięcia pliku '%s' z pamięci VFS, który nie został wczytany!" + +#: ../src/common/fmapbase.cpp:156 +msgid "Turkish (ISO-8859-9)" +msgstr "Turecki (ISO-8859-9)" + +#: ../src/generic/filectrlg.cpp:461 +msgid "Type" +msgstr "Typ" + +#: ../src/richtext/richtextfontpage.cpp:160 +#: ../src/richtext/richtextfontpage.cpp:162 +msgid "Type a font name." +msgstr "Wpisz nazwę czcionki." + +#: ../src/richtext/richtextfontpage.cpp:175 +#: ../src/richtext/richtextfontpage.cpp:177 +msgid "Type a size in points." +msgstr "Wpisz rozmiar w punktach." + +#: ../src/msw/ole/automtn.cpp:665 +#, c-format +msgid "Type mismatch in argument %u." +msgstr "Niezgodność typów argumentu %u." + +#: ../src/common/xtixml.cpp:356 ../src/common/xtixml.cpp:509 +#: ../src/common/xtistrm.cpp:322 +msgid "Type must have enum - long conversion" +msgstr "Typ musi umożliwiać konswersję enum - long" + +#: ../src/propgrid/propgridiface.cpp:382 +#, c-format +msgid "" +"Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", NOT " +"\"%s\"." +msgstr "" +"Niepowodzenie operacji typu \"%s\": właściwość nazwana \"%s\" jest typu \"%s" +"\", nie \"%s\"." + +#: ../src/common/accelcmn.cpp:58 +msgid "UP" +msgstr "GÓRA" + +#: ../src/common/paper.cpp:134 +msgid "US Std Fanfold, 14 7/8 x 11 in" +msgstr "Składanka US Std, 14 7/8 x 11 cali" + +#: ../src/common/fmapbase.cpp:196 +msgid "US-ASCII" +msgstr "US-ASCII" + +#: ../src/unix/fswatcher_inotify.cpp:109 +msgid "Unable to add inotify watch" +msgstr "Nie można dodać czujki inotify" + +#: ../src/unix/fswatcher_kqueue.cpp:136 +msgid "Unable to add kqueue watch" +msgstr "Nie można dodać czujki kolejki" + +#: ../include/wx/msw/private/fswatcher.h:142 +msgid "Unable to associate handle with I/O completion port" +msgstr "Nie można skojarzyć uchwytu z portem kompletności We/Wy" + +# uchwyt chyba zbędny +#: ../include/wx/msw/private/fswatcher.h:125 +msgid "Unable to close I/O completion port handle" +msgstr "" + +# uchwyt chyba zbędny +#: ../src/unix/fswatcher_inotify.cpp:97 +msgid "Unable to close inotify instance" +msgstr "" + +#: ../include/wx/unix/private/fswatcher_kqueue.h:74 +#, c-format +msgid "Unable to close path '%s'" +msgstr "" + +# uchwyt chyba zbędny +#: ../include/wx/msw/private/fswatcher.h:48 +#, c-format +msgid "Unable to close the handle for '%s'" +msgstr "" + +#: ../include/wx/msw/private/fswatcher.h:240 +msgid "Unable to create I/O completion port" +msgstr "" + +#: ../src/msw/fswatcher.cpp:84 +msgid "Unable to create IOCP worker thread" +msgstr "" + +#: ../src/unix/fswatcher_inotify.cpp:74 +msgid "Unable to create inotify instance" +msgstr "" + +#: ../src/unix/fswatcher_kqueue.cpp:97 +msgid "Unable to create kqueue instance" +msgstr "" + +#: ../include/wx/msw/private/fswatcher.h:229 +#, fuzzy +msgid "Unable to dequeue completion packet" +msgstr "Nie można odkolejkować pakietu kompletności" + +#: ../src/unix/fswatcher_kqueue.cpp:185 +msgid "Unable to get events from kqueue" +msgstr "Nie można pobrać zdarzeń z kolejki" + +#: ../src/osx/carbon/dataview.cpp:1903 +#, fuzzy +msgid "Unable to handle native drag&drop data" +msgstr "Nie można przetworzyć systemowych danych przeciągnij / upuść" + +#: ../src/gtk/app.cpp:439 +msgid "Unable to initialize GTK+, is DISPLAY set properly?" +msgstr "Nie można ustawić GTK+, czy jest prawidłowo ustawiony EKRAN?" + +#: ../src/gtk/app.cpp:276 +msgid "Unable to initialize Hildon program" +msgstr "Nie udało się zainicjować programu Hildon" + +#: ../include/wx/unix/private/fswatcher_kqueue.h:57 +#, c-format +msgid "Unable to open path '%s'" +msgstr "" + +#: ../src/html/htmlwin.cpp:561 +#, c-format +msgid "Unable to open requested HTML document: %s" +msgstr "Nie można otworzyć wskazanego dokumentu HTML: %s" + +#: ../src/unix/sound.cpp:368 +msgid "Unable to play sound asynchronously." +msgstr "Nie można odtowrzyć dźwięku asynchronicznie." + +#: ../include/wx/msw/private/fswatcher.h:207 +msgid "Unable to post completion status" +msgstr "" + +#: ../src/unix/fswatcher_inotify.cpp:530 +msgid "Unable to read from inotify descriptor" +msgstr "" + +#: ../src/unix/fswatcher_inotify.cpp:132 +msgid "Unable to remove inotify watch" +msgstr "Nie można usunąć czujki inotify" + +#: ../src/unix/fswatcher_kqueue.cpp:153 +msgid "Unable to remove kqueue watch" +msgstr "Nie można usunąć czujki kolejki" + +#: ../src/msw/fswatcher.cpp:168 +#, c-format +msgid "Unable to set up watch for '%s'" +msgstr "" + +#: ../src/msw/fswatcher.cpp:91 +msgid "Unable to start IOCP worker thread" +msgstr "" + +#: ../src/common/stockitem.cpp:201 +msgid "Undelete" +msgstr "Odzyskaj" + +#: ../src/common/stockitem.cpp:202 +msgid "Underline" +msgstr "Podkreślenie" + +#: ../src/richtext/richtextfontpage.cpp:341 ../src/osx/carbon/fontdlg.cpp:556 +#: ../src/propgrid/advprops.cpp:655 +msgid "Underlined" +msgstr "Podkreślony" + +#: ../src/common/stockitem.cpp:203 ../src/stc/stc_i18n.cpp:15 +msgid "Undo" +msgstr "Cofnij" + +#: ../src/common/stockitem.cpp:265 +msgid "Undo last action" +msgstr "Cofnij ostatnią czynność" + +#: ../src/common/cmdline.cpp:864 +#, c-format +msgid "Unexpected characters following option '%s'." +msgstr "Nieoczekiwane znaki następujących opcji '%s'." + +#: ../src/unix/fswatcher_inotify.cpp:261 +#, c-format +msgid "Unexpected event for \"%s\": no matching watch descriptor." +msgstr "" + +#: ../src/common/cmdline.cpp:1024 +#, c-format +msgid "Unexpected parameter '%s'" +msgstr "Nieoczekiwany parametr '%s'" + +#: ../include/wx/msw/private/fswatcher.h:148 +msgid "Unexpectedly new I/O completion port was created" +msgstr "" + +#: ../src/msw/fswatcher.cpp:70 +msgid "Ungraceful worker thread termination" +msgstr "" + +#: ../src/richtext/richtextsymboldlg.cpp:459 +#: ../src/richtext/richtextsymboldlg.cpp:460 +#: ../src/richtext/richtextsymboldlg.cpp:461 +msgid "Unicode" +msgstr "Unicode" + +#: ../src/common/fmapbase.cpp:185 ../src/common/fmapbase.cpp:191 +msgid "Unicode 16 bit (UTF-16)" +msgstr "Unicode 16 bit (UTF-16)" + +#: ../src/common/fmapbase.cpp:190 +msgid "Unicode 16 bit Big Endian (UTF-16BE)" +msgstr "Unicode 16 bit Big Endian (UTF-16BE)" + +#: ../src/common/fmapbase.cpp:186 +msgid "Unicode 16 bit Little Endian (UTF-16LE)" +msgstr "Unicode 16 bit Little Endian (UTF-16LE)" + +#: ../src/common/fmapbase.cpp:187 ../src/common/fmapbase.cpp:193 +msgid "Unicode 32 bit (UTF-32)" +msgstr "Unicode 32 bit (UTF-32)" + +#: ../src/common/fmapbase.cpp:192 +msgid "Unicode 32 bit Big Endian (UTF-32BE)" +msgstr "Unicode 32 bit Big Endian (UTF-32BE)" + +#: ../src/common/fmapbase.cpp:188 +msgid "Unicode 32 bit Little Endian (UTF-32LE)" +msgstr "Unicode 32 bit Little Endian (UTF-32LE)" + +#: ../src/common/fmapbase.cpp:182 +msgid "Unicode 7 bit (UTF-7)" +msgstr "Unicode 7 bit (UTF-7)" + +#: ../src/common/fmapbase.cpp:183 +msgid "Unicode 8 bit (UTF-8)" +msgstr "Unicode 8 bit (UTF-8)" + +#: ../src/common/stockitem.cpp:204 +#, fuzzy +msgid "Unindent" +msgstr "&Cofnij wcięcie" + +#: ../src/richtext/richtextborderspage.cpp:373 +#: ../src/richtext/richtextborderspage.cpp:375 +msgid "Units for the bottom border width." +msgstr "jednostki szerokości dolnej ramki." + +#: ../src/richtext/richtextmarginspage.cpp:278 +#: ../src/richtext/richtextmarginspage.cpp:280 +msgid "Units for the bottom margin." +msgstr "Jednostki dolnego marginesu." + +#: ../src/richtext/richtextborderspage.cpp:517 +#: ../src/richtext/richtextborderspage.cpp:519 +msgid "Units for the bottom outline width." +msgstr "Jednostki szerokości dolnego konturu." + +#: ../src/richtext/richtextmarginspage.cpp:392 +#: ../src/richtext/richtextmarginspage.cpp:394 +msgid "Units for the bottom padding." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:661 +#: ../src/richtext/richtextsizepage.cpp:663 +msgid "Units for the bottom position." +msgstr "" + +#: ../src/richtext/richtextborderspage.cpp:283 +#: ../src/richtext/richtextborderspage.cpp:285 +msgid "Units for the left border width." +msgstr "Jednostki szerokości lewej ramki." + +#: ../src/richtext/richtextmarginspage.cpp:205 +#: ../src/richtext/richtextmarginspage.cpp:207 +msgid "Units for the left margin." +msgstr "Jednostki lewego marginesu." + +#: ../src/richtext/richtextborderspage.cpp:427 +#: ../src/richtext/richtextborderspage.cpp:429 +msgid "Units for the left outline width." +msgstr "Jednostki szerokości lewego konturu." + +#: ../src/richtext/richtextmarginspage.cpp:319 +#: ../src/richtext/richtextmarginspage.cpp:321 +msgid "Units for the left padding." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:556 +#: ../src/richtext/richtextsizepage.cpp:558 +msgid "Units for the left position." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:482 +#: ../src/richtext/richtextsizepage.cpp:484 +msgid "Units for the maximum object height." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:455 +#: ../src/richtext/richtextsizepage.cpp:457 +msgid "Units for the maximum object width." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:428 +#: ../src/richtext/richtextsizepage.cpp:430 +msgid "Units for the minimum object height." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:401 +#: ../src/richtext/richtextsizepage.cpp:403 +msgid "Units for the minimum object width." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:374 +#: ../src/richtext/richtextsizepage.cpp:376 +msgid "Units for the object height." +msgstr "Jednostki wysokości obiektu." + +#: ../src/richtext/richtextsizepage.cpp:340 +#: ../src/richtext/richtextsizepage.cpp:342 +msgid "Units for the object width." +msgstr "Jednostki szerokości obiektu." + +#: ../src/richtext/richtextborderspage.cpp:313 +#: ../src/richtext/richtextborderspage.cpp:315 +msgid "Units for the right border width." +msgstr "Jednostki szerokości prawej ramki." + +#: ../src/richtext/richtextmarginspage.cpp:230 +#: ../src/richtext/richtextmarginspage.cpp:232 +msgid "Units for the right margin." +msgstr "Jednostki prawego marginesu." + +#: ../src/richtext/richtextborderspage.cpp:457 +#: ../src/richtext/richtextborderspage.cpp:459 +msgid "Units for the right outline width." +msgstr "Jednostki szerokości prawego konturu." + +#: ../src/richtext/richtextmarginspage.cpp:344 +#: ../src/richtext/richtextmarginspage.cpp:346 +msgid "Units for the right padding." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:626 +#: ../src/richtext/richtextsizepage.cpp:628 +msgid "Units for the right position." +msgstr "" + +#: ../src/richtext/richtextborderspage.cpp:343 +#: ../src/richtext/richtextborderspage.cpp:345 +msgid "Units for the top border width." +msgstr "Jednostki szerokości górnej ramki." + +#: ../src/richtext/richtextmarginspage.cpp:253 +#: ../src/richtext/richtextmarginspage.cpp:255 +msgid "Units for the top margin." +msgstr "" + +#: ../src/richtext/richtextborderspage.cpp:487 +#: ../src/richtext/richtextborderspage.cpp:489 +msgid "Units for the top outline width." +msgstr "Jednostki szerokości prawego konturu." + +#: ../src/richtext/richtextmarginspage.cpp:367 +#: ../src/richtext/richtextmarginspage.cpp:369 +msgid "Units for the top padding." +msgstr "" + +#: ../src/richtext/richtextsizepage.cpp:591 +#: ../src/richtext/richtextsizepage.cpp:593 +msgid "Units for the top position." +msgstr "" + +#: ../src/generic/progdlgg.cpp:382 ../src/generic/progdlgg.cpp:655 +msgid "Unknown" +msgstr "Nieznany" + +#: ../src/msw/dde.cpp:1177 +#, c-format +msgid "Unknown DDE error %08x" +msgstr "Nieznany błąd DDE %08x" + +#: ../src/common/xtistrm.cpp:414 +msgid "Unknown Object passed to GetObjectClassInfo" +msgstr "Nieznany obiekt przekazany do funkcji GetObjectClassInfo" + +#: ../src/common/imagpng.cpp:614 +#, c-format +msgid "Unknown PNG resolution unit %d" +msgstr "" + +#: ../src/common/xtixml.cpp:327 +#, c-format +msgid "Unknown Property %s" +msgstr "Nieznana właściwość %s" + +#: ../src/common/imagtiff.cpp:532 +#, c-format +msgid "Unknown TIFF resolution unit %d ignored" +msgstr "Zignorowana nieznana jednostka %d rozdzielczości TIFF" + +#: ../src/osx/carbon/dataview.cpp:1978 +#, fuzzy +msgid "Unknown data format" +msgstr "błąd w formacie" + +#: ../src/unix/dlunix.cpp:325 +msgid "Unknown dynamic library error" +msgstr "Nieznany błąd biblioteki dynamicznej" + +#: ../src/common/fmapbase.cpp:810 +#, c-format +msgid "Unknown encoding (%d)" +msgstr "Nieznane kodowanie (%d)" + +#: ../src/msw/ole/automtn.cpp:677 +#, c-format +msgid "Unknown error %08x" +msgstr "" + +#: ../src/msw/ole/automtn.cpp:636 +msgid "Unknown exception" +msgstr "" + +#: ../src/common/image.cpp:2701 +msgid "Unknown image data format." +msgstr "" + +#: ../src/common/cmdline.cpp:749 +#, c-format +msgid "Unknown long option '%s'" +msgstr "Nieznana długa opcja '%s'" + +#: ../src/msw/ole/automtn.cpp:620 +msgid "Unknown name or named argument." +msgstr "Nieprawidłowa nazwa lub nazwany argument." + +#: ../src/common/cmdline.cpp:764 ../src/common/cmdline.cpp:786 +#, c-format +msgid "Unknown option '%s'" +msgstr "Nieznana opcja '%s'" + +# inaczej +#: ../src/common/mimecmn.cpp:230 +#, c-format +msgid "Unmatched '{' in an entry for mime type %s." +msgstr "Nieodpowiedni '{' w pozycji dla typu mime %s." + +#: ../src/common/cmdproc.cpp:262 ../src/common/cmdproc.cpp:288 +#: ../src/common/cmdproc.cpp:308 +msgid "Unnamed command" +msgstr "Polecenie bez nazwy" + +#: ../src/propgrid/propgrid.cpp:398 +msgid "Unspecified" +msgstr "" + +#: ../src/msw/clipbrd.cpp:271 ../src/msw/clipbrd.cpp:439 +msgid "Unsupported clipboard format." +msgstr "Nieobsługiwany format schowka." + +#: ../src/common/appcmn.cpp:228 +#, c-format +msgid "Unsupported theme '%s'." +msgstr "Nieobsługiwana kompozycja '%s'." + +#: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:205 +msgid "Up" +msgstr "W górę" + +#: ../src/richtext/richtextliststylepage.cpp:483 +#: ../src/richtext/richtextbulletspage.cpp:288 +msgid "Upper case letters" +msgstr "Duże litery" + +#: ../src/richtext/richtextliststylepage.cpp:485 +#: ../src/richtext/richtextbulletspage.cpp:290 +msgid "Upper case roman numerals" +msgstr "Duże litery cyframi rzymskimi" + +# hm +#: ../src/common/cmdline.cpp:1155 +#, c-format +msgid "Usage: %s" +msgstr "Użycie: %s" + +#: ../src/richtext/richtextindentspage.cpp:169 +#: ../src/richtext/richtextindentspage.cpp:171 +#: ../src/richtext/richtextliststylepage.cpp:358 +#: ../src/richtext/richtextliststylepage.cpp:360 +msgid "Use the current alignment setting." +msgstr "Użyj bieżącego dostosowywania ustawień." + +#: ../src/osx/carbon/dataview.cpp:2658 ../src/osx/carbon/dataview.cpp:2723 +msgid "Valid pointer to native data view control does not exist" +msgstr "Aktualny wskaźnik do rodzimego widoku danych kontroli nie istnieje" + +#: ../src/common/valtext.cpp:174 +msgid "Validation conflict" +msgstr "Konflikt kontroli poprawności" + +#: ../src/propgrid/manager.cpp:238 +msgid "Value" +msgstr "Wartość" + +#: ../src/propgrid/props.cpp:384 +#, c-format +msgid "Value must be %s or higher." +msgstr "Wartość musi wynosić %s lub więcej." + +#: ../src/propgrid/props.cpp:411 +#, c-format +msgid "Value must be %s or less." +msgstr "Wartość musi wynosić %s lub mniej." + +#: ../src/propgrid/props.cpp:388 ../src/propgrid/props.cpp:415 +#, c-format +msgid "Value must be between %s and %s." +msgstr "" + +# prawa? +#: ../src/generic/aboutdlgg.cpp:128 +#, fuzzy +msgid "Version " +msgstr "Wersja %s" + +#: ../src/richtext/richtextsizepage.cpp:288 +#: ../src/richtext/richtextsizepage.cpp:290 +msgid "Vertical alignment." +msgstr "" + +#: ../src/generic/filedlgg.cpp:216 +msgid "View files as a detailed view" +msgstr "Przeglądaj pliki w formie szczegółowej listy" + +#: ../src/generic/filedlgg.cpp:214 +msgid "View files as a list view" +msgstr "Przeglądaj pliki w formie listy" + +#: ../src/common/docview.cpp:1953 +msgid "Views" +msgstr "Widoki" + +#: ../src/common/accelcmn.cpp:108 +msgid "WINDOWS_LEFT" +msgstr "WINDOWS_LEWO" + +#: ../src/common/accelcmn.cpp:110 +msgid "WINDOWS_MENU" +msgstr "WINDOWS_MENU" + +#: ../src/common/accelcmn.cpp:109 +msgid "WINDOWS_RIGHT" +msgstr "WINDOWS_PRAWO" + +#: ../src/unix/epolldispatcher.cpp:213 +#, c-format +msgid "Waiting for IO on epoll descriptor %d failed" +msgstr "Oczekiwanie na IO w deskryptorze epoll %d nie powiodło się" + +#: ../src/common/log.cpp:229 +msgid "Warning: " +msgstr "Ostrzeżenie: " + +#: ../src/propgrid/advprops.cpp:651 +#, fuzzy +msgid "Weight" +msgstr "&Waga" + +#: ../src/common/fmapbase.cpp:148 +msgid "Western European (ISO-8859-1)" +msgstr "Zachodnioeuropejski (ISO-8859-1)" + +#: ../src/common/fmapbase.cpp:162 +msgid "Western European with Euro (ISO-8859-15)" +msgstr "Zachodnioeuropejski z Euro (ISO-8859-15)" + +#: ../src/generic/fontdlgg.cpp:446 ../src/generic/fontdlgg.cpp:448 +msgid "Whether the font is underlined." +msgstr "Określenie podkreślenia." + +#: ../src/generic/fdrepdlg.cpp:144 +msgid "Whole word" +msgstr "Całe słowo" + +#: ../src/html/helpwnd.cpp:547 +msgid "Whole words only" +msgstr "Tylko całe słowa" + +#: ../src/univ/themes/win32.cpp:1102 +msgid "Win32 theme" +msgstr "Kompozycja Win32" + +#: ../src/msw/utils.cpp:1220 +msgid "Win32s on Windows 3.1" +msgstr "Win32s na Windows 3.1" + +#: ../src/msw/utils.cpp:1270 +msgid "Windows 2000" +msgstr "" + +#: ../src/msw/utils.cpp:1302 +msgid "Windows 7" +msgstr "" + +#: ../src/msw/utils.cpp:1234 +msgid "Windows 95" +msgstr "Windows 95" + +#: ../src/msw/utils.cpp:1230 +msgid "Windows 95 OSR2" +msgstr "Windows 95 OSR2" + +#: ../src/msw/utils.cpp:1245 +msgid "Windows 98" +msgstr "Windows 98" + +#: ../src/msw/utils.cpp:1241 +msgid "Windows 98 SE" +msgstr "Windows 98 SE" + +#: ../src/msw/utils.cpp:1252 +#, c-format +msgid "Windows 9x (%d.%d)" +msgstr "Windows 9x (%d.%d)" + +#: ../src/common/fmapbase.cpp:177 +msgid "Windows Arabic (CP 1256)" +msgstr "Windows arabski (CP 1256)" + +#: ../src/common/fmapbase.cpp:178 +msgid "Windows Baltic (CP 1257)" +msgstr "Windows bałtycki (CP 1257)" + +#: ../src/msw/utils.cpp:1214 +#, c-format +msgid "Windows CE (%d.%d)" +msgstr "Windows CE (%d.%d)" + +#: ../src/common/fmapbase.cpp:171 +msgid "Windows Central European (CP 1250)" +msgstr "Windows środkowoeuropejski (CP 1250)" + +#: ../src/common/fmapbase.cpp:168 +#, fuzzy +msgid "Windows Chinese Simplified (CP 936) or GB-2312" +msgstr "Windows chiński uproszczony (CP 936)" + +#: ../src/common/fmapbase.cpp:170 +#, fuzzy +msgid "Windows Chinese Traditional (CP 950) or Big-5" +msgstr "Windows chiński tradycyjny (CP 950)" + +#: ../src/common/fmapbase.cpp:172 +msgid "Windows Cyrillic (CP 1251)" +msgstr "Windows cyrylica (CP 1251)" + +#: ../src/common/fmapbase.cpp:174 +msgid "Windows Greek (CP 1253)" +msgstr "Windows grecki (CP 1253)" + +#: ../src/common/fmapbase.cpp:176 +msgid "Windows Hebrew (CP 1255)" +msgstr "Windows hebrajski (CP 1255)" + +#: ../src/common/fmapbase.cpp:167 +#, fuzzy +msgid "Windows Japanese (CP 932) or Shift-JIS" +msgstr "Windows japoński (CP 932)" + +#: ../src/common/fmapbase.cpp:180 +msgid "Windows Johab (CP 1361)" +msgstr "" + +#: ../src/common/fmapbase.cpp:169 +msgid "Windows Korean (CP 949)" +msgstr "Windows koreański (CP 949)" + +#: ../src/msw/utils.cpp:1249 +msgid "Windows ME" +msgstr "Windows ME" + +#: ../src/msw/utils.cpp:1310 +#, c-format +msgid "Windows NT %lu.%lu" +msgstr "" + +#: ../src/msw/utils.cpp:1279 +msgid "Windows Server 2003" +msgstr "" + +#: ../src/msw/utils.cpp:1295 +msgid "Windows Server 2008" +msgstr "" + +#: ../src/msw/utils.cpp:1301 +msgid "Windows Server 2008 R2" +msgstr "" + +#: ../src/common/fmapbase.cpp:166 +msgid "Windows Thai (CP 874)" +msgstr "Windows Thai (CP 874)" + +#: ../src/common/fmapbase.cpp:175 +msgid "Windows Turkish (CP 1254)" +msgstr "Windows turecki (CP 1254)" + +#: ../src/common/fmapbase.cpp:179 +msgid "Windows Vietnamese (CP 1258)" +msgstr "" + +#: ../src/msw/utils.cpp:1296 +msgid "Windows Vista" +msgstr "" + +#: ../src/common/fmapbase.cpp:173 +msgid "Windows Western European (CP 1252)" +msgstr "Windows zachodnioeuropejski (CP 1252)" + +#: ../src/msw/utils.cpp:1285 +msgid "Windows XP" +msgstr "" + +#: ../src/common/fmapbase.cpp:181 +msgid "Windows/DOS OEM (CP 437)" +msgstr "Windows/DOS OEM (CP 437)" + +#: ../src/common/fmapbase.cpp:165 +msgid "Windows/DOS OEM Cyrillic (CP 866)" +msgstr "" + +#: ../src/common/ffile.cpp:148 +#, c-format +msgid "Write error on file '%s'" +msgstr "Błąd zapisu do pliku '%s'" + +#: ../src/xml/xml.cpp:844 +#, c-format +msgid "XML parsing error: '%s' at line %d" +msgstr "Błąd parsowania XML: '%s' w linii %d" + +#: ../src/common/xpmdecod.cpp:796 +msgid "XPM: Malformed pixel data!" +msgstr "XPM: Zniekształcone dane obrazu!" + +#: ../src/common/xpmdecod.cpp:705 +#, c-format +msgid "XPM: incorrect colour description in line %d" +msgstr "XPM: niepoprawny opis koloru w linijce %d" + +#: ../src/common/xpmdecod.cpp:680 +msgid "XPM: incorrect header format!" +msgstr "XPM: niepoprawna nagłówka formatu!" + +#: ../src/common/xpmdecod.cpp:716 ../src/common/xpmdecod.cpp:725 +#, c-format +msgid "XPM: malformed colour definition '%s' at line %d!" +msgstr "XPM: niepoprawna definicja koloru '%s 'w linijce %d!" + +#: ../src/common/xpmdecod.cpp:755 +msgid "XPM: no colors left to use for mask!" +msgstr "XPM: nie zostało kolorów dla maski!" + +#: ../src/common/xpmdecod.cpp:782 +#, c-format +msgid "XPM: truncated image data at line %d!" +msgstr "XPM: obcięte dane obrazu w linijce %d!" + +#: ../include/wx/msgdlg.h:271 ../src/common/stockitem.cpp:206 +#: ../src/motif/msgdlg.cpp:196 +msgid "Yes" +msgstr "Tak" + +#: ../src/osx/carbon/overlay.cpp:155 +msgid "You cannot Clear an overlay that is not inited" +msgstr "Nie można wyczyścić nakładki, która nie jest zainicjowana" + +#: ../src/osx/carbon/overlay.cpp:107 ../src/dfb/overlay.cpp:61 +msgid "You cannot Init an overlay twice" +msgstr "Nie można uruchomić nakładki podwójnie" + +#: ../src/generic/dirdlgg.cpp:316 +msgid "You cannot add a new directory to this section." +msgstr "Nie możesz dodać nowego katalogu do tej sekcji." + +#: ../src/propgrid/propgrid.cpp:3258 +msgid "You have entered invalid value. Press ESC to cancel editing." +msgstr "Wprowadzono nieprawidłową wartość. Naciśnij ESC by anulować edycję." + +#: ../src/common/stockitem.cpp:209 +msgid "Zoom &In" +msgstr "Powiększen&ie" + +#: ../src/common/stockitem.cpp:210 +msgid "Zoom &Out" +msgstr "P&omniejszenie" + +#: ../src/common/stockitem.cpp:209 ../src/common/prntbase.cpp:1564 +msgid "Zoom In" +msgstr "Powiększenie" + +#: ../src/common/stockitem.cpp:210 ../src/common/prntbase.cpp:1550 +msgid "Zoom Out" +msgstr "Pomniejszenie" + +#: ../src/common/stockitem.cpp:208 +msgid "Zoom to &Fit" +msgstr "&Dopasowanie powiększenia" + +#: ../src/common/stockitem.cpp:208 +#, fuzzy +msgid "Zoom to Fit" +msgstr "&Dopasowanie powiększenia" + +#: ../src/msw/dde.cpp:1144 +msgid "a DDEML application has created a prolonged race condition." +msgstr "Aplikacja DDEML utworzyła przedłużony wyścig (race condition)." + +# instance --> +#: ../src/msw/dde.cpp:1132 +msgid "" +"a DDEML function was called without first calling the DdeInitialize " +"function,\n" +"or an invalid instance identifier\n" +"was passed to a DDEML function." +msgstr "" +"została wywołana funkcja DDEML bez wcześniejszego wywołania funkcji " +"DdeInitialize,\n" +"lub do funkcji DDEML przesłano\n" +"nieprawidłowy identyfikator instancji." + +#: ../src/msw/dde.cpp:1150 +msgid "a client's attempt to establish a conversation has failed." +msgstr "próba nawiązania konwersacji przez klienta nie powiodła się." + +#: ../src/msw/dde.cpp:1147 +msgid "a memory allocation failed." +msgstr "przydzielenie pamięci nie powiodło się." + +#: ../src/msw/dde.cpp:1141 +msgid "a parameter failed to be validated by the DDEML." +msgstr "parametr nie przeszedł kontroli poprawności DDEML" + +#: ../src/msw/dde.cpp:1123 +msgid "a request for a synchronous advise transaction has timed out." +msgstr "" +"upłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji advise." + +#: ../src/msw/dde.cpp:1129 +msgid "a request for a synchronous data transaction has timed out." +msgstr "" +"upłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji data." + +#: ../src/msw/dde.cpp:1138 +msgid "a request for a synchronous execute transaction has timed out." +msgstr "" +"upłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji execute." + +#: ../src/msw/dde.cpp:1156 +msgid "a request for a synchronous poke transaction has timed out." +msgstr "" +"upłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji poke." + +#: ../src/msw/dde.cpp:1171 +msgid "a request to end an advise transaction has timed out." +msgstr "upłynął czas oczekiwania na zakończenie trancakcji advise." + +#: ../src/msw/dde.cpp:1165 +msgid "" +"a server-side transaction was attempted on a conversation\n" +"that was terminated by the client, or the server\n" +"terminated before completing a transaction." +msgstr "" +"transakcja server-side próbowała kontynuować konwersację\n" +"zakończoną przez klienta, lub serwer\n" +"zakończył pracę przez zakończeniem transakcji." + +#: ../src/msw/dde.cpp:1153 +msgid "a transaction failed." +msgstr "transakcja nie powiodła się." + +#: ../src/common/accelcmn.cpp:184 +msgid "alt" +msgstr "alt" + +# transakcję normalnie wykonywaną przez serwer, inaczej +#: ../src/msw/dde.cpp:1135 +msgid "" +"an application initialized as APPCLASS_MONITOR has\n" +"attempted to perform a DDE transaction,\n" +"or an application initialized as APPCMD_CLIENTONLY has \n" +"attempted to perform server transactions." +msgstr "" +"aplikacja zainicjowana jako APPCLASS_MONITOR\n" +"usiłowała wykonać transakcję DDE,\n" +"lub aplikacja zainicjowana jako APPCMD_CLIENTONLY\n" +"usiłowała wykonać transakcję serwera." + +#: ../src/msw/dde.cpp:1159 +msgid "an internal call to the PostMessage function has failed. " +msgstr "wewnętrzne wywołanie funkcji PostMessage zakończyło się niepowodzeniem" + +#: ../src/msw/dde.cpp:1168 +msgid "an internal error has occurred in the DDEML." +msgstr "wystąpił wewnętrzny błąd w DDEML." + +#: ../src/msw/dde.cpp:1174 +msgid "" +"an invalid transaction identifier was passed to a DDEML function.\n" +"Once the application has returned from an XTYP_XACT_COMPLETE callback,\n" +"the transaction identifier for that callback is no longer valid." +msgstr "" +"do funkcji DDEML przesłano nieprawidłowy identyfikator transakcji.\n" +"Kiedy aplikacja kończy połączenie zwrotne XTYP_XACT_COMPLETE,\n" +"identyfikator transakcji dla tego połączenia nie jest dłużej ważny." + +#: ../src/common/zipstrm.cpp:1272 +msgid "assuming this is a multi-part zip concatenated" +msgstr "założenie że jest to połączony wieloczęściowy zip" + +#: ../src/common/fileconf.cpp:1882 +#, c-format +msgid "attempt to change immutable key '%s' ignored." +msgstr "zignorowano próbę zmiany niezmiennego klucza '%s'." + +#: ../src/html/chm.cpp:329 +msgid "bad arguments to library function" +msgstr "błędne argumenty funkcji bibliotecznej" + +#: ../src/html/chm.cpp:341 +msgid "bad signature" +msgstr "błędne oznaczenie" + +#: ../src/common/zipstrm.cpp:1715 +msgid "bad zipfile offset to entry" +msgstr "błędne przemieszczenie w pliku zip" + +#: ../src/common/ftp.cpp:405 +msgid "binary" +msgstr "binarny" + +#: ../src/common/fontcmn.cpp:978 +msgid "bold" +msgstr "pogrubiony" + +#: ../src/os2/iniconf.cpp:463 +msgid "buffer is too small for Windows directory." +msgstr "bufor jest zbyt mały na katalog Windows." + +#: ../src/msw/utils.cpp:1316 +#, c-format +msgid "build %lu" +msgstr "" + +#: ../src/common/ffile.cpp:79 +#, c-format +msgid "can't close file '%s'" +msgstr "nie można zamknąć pliku '%s'" + +#: ../src/common/file.cpp:278 +#, c-format +msgid "can't close file descriptor %d" +msgstr "nie można zamknąć deskryptora pliku %d" + +#: ../src/common/file.cpp:604 +#, c-format +msgid "can't commit changes to file '%s'" +msgstr "nie można zatwierdzić zmian w pliku '%s'" + +#: ../src/common/file.cpp:212 +#, c-format +msgid "can't create file '%s'" +msgstr "nie można utworzyć pliku '%s'" + +#: ../src/common/fileconf.cpp:1176 +#, c-format +msgid "can't delete user configuration file '%s'" +msgstr "nie można usunąć pliku konfiguracyjnego użytkownika '%s'" + +#: ../src/common/file.cpp:511 +#, c-format +msgid "can't determine if the end of file is reached on descriptor %d" +msgstr "nie można określić czy osiągnięto koniec pliku w deskryptorze %d" + +#: ../src/msdos/utilsdos.cpp:310 ../src/msdos/utilsdos.cpp:475 +#, c-format +msgid "can't execute '%s'" +msgstr "nie udało się wykonać '%s'" + +#: ../src/common/zipstrm.cpp:1490 +msgid "can't find central directory in zip" +msgstr "nie można znaleźć centralnego katalogu zip" + +#: ../src/common/file.cpp:481 +#, c-format +msgid "can't find length of file on file descriptor %d" +msgstr "nie można znaleźć rozmiaru pliku w deskryptorze pliku %d" + +#: ../src/msw/utils.cpp:373 +msgid "can't find user's HOME, using current directory." +msgstr "nie można znaleźć katalogu domowego, zostanie użyty bieżący." + +#: ../src/common/file.cpp:382 +#, c-format +msgid "can't flush file descriptor %d" +msgstr "nie można opróżnić deskryptora pliku %d" + +#: ../src/common/file.cpp:438 ../src/msw/wince/filefnwce.cpp:204 +#, c-format +msgid "can't get seek position on file descriptor %d" +msgstr "nie można odczytać bieżącej pozycji w deskryptorze pliku %d" + +#: ../src/common/fontmap.cpp:325 +msgid "can't load any font, aborting" +msgstr "nie można załadować żadnej czcionki, program kończy pracę" + +#: ../src/common/file.cpp:264 ../src/common/ffile.cpp:63 +#, c-format +msgid "can't open file '%s'" +msgstr "nie można otworzyć pliku '%s'" + +# globalnej? +#: ../src/common/fileconf.cpp:351 +#, c-format +msgid "can't open global configuration file '%s'." +msgstr "nie można otworzyć globalnego pliku konfiguracji '%s'." + +#: ../src/common/fileconf.cpp:367 +#, c-format +msgid "can't open user configuration file '%s'." +msgstr "nie można otworzyć pliku konfiguracyjnego użytkownika '%s'." + +#: ../src/common/fileconf.cpp:1017 +msgid "can't open user configuration file." +msgstr "nie można otworzyć pliku konfiguracyjnego użytkownika." + +#: ../src/common/zipstrm.cpp:527 +msgid "can't re-initialize zlib deflate stream" +msgstr "nie można ponownie zainicjować strumienia kompresji biblioteki zlib" + +#: ../src/common/zipstrm.cpp:552 +msgid "can't re-initialize zlib inflate stream" +msgstr "nie można ponownie zainicjować strumienia dekompresji biblioteki zlib" + +#: ../src/common/file.cpp:334 +#, c-format +msgid "can't read from file descriptor %d" +msgstr "nie można czytać z deskryptora pliku %d" + +#: ../src/common/file.cpp:599 +#, c-format +msgid "can't remove file '%s'" +msgstr "nie można usunąć pliku '%s'" + +#: ../src/common/file.cpp:616 +#, c-format +msgid "can't remove temporary file '%s'" +msgstr "nie można usunąć tymczasowego pliku '%s'" + +#: ../src/common/file.cpp:424 ../src/msw/wince/filefnwce.cpp:190 +#, c-format +msgid "can't seek on file descriptor %d" +msgstr "nie można ustawić pozycji w deskryptorze pliku %d" + +#: ../src/common/textfile.cpp:299 +#, c-format +msgid "can't write buffer '%s' to disk." +msgstr "nie można zapisać bufora '%s' na dysk." + +#: ../src/common/file.cpp:350 +#, c-format +msgid "can't write to file descriptor %d" +msgstr "nie można zapisać do deskryptora pliku %d" + +#: ../src/common/fileconf.cpp:1031 +msgid "can't write user configuration file." +msgstr "nie można zapisać pliku konfiguracyjnego użytkownika." + +#: ../src/html/chm.cpp:345 +msgid "checksum error" +msgstr "błąd sumy kontrolnej" + +#: ../src/common/tarstrm.cpp:820 +msgid "checksum failure reading tar header block" +msgstr "Niepowodzenie sumy kontrolnej czytania nagłówka bloku tar" + +#: ../src/richtext/richtextborderspage.cpp:280 +#: ../src/richtext/richtextborderspage.cpp:310 +#: ../src/richtext/richtextborderspage.cpp:340 +#: ../src/richtext/richtextborderspage.cpp:370 +#: ../src/richtext/richtextborderspage.cpp:424 +#: ../src/richtext/richtextborderspage.cpp:454 +#: ../src/richtext/richtextborderspage.cpp:484 +#: ../src/richtext/richtextborderspage.cpp:514 +#: ../src/richtext/richtextmarginspage.cpp:202 +#: ../src/richtext/richtextmarginspage.cpp:227 +#: ../src/richtext/richtextmarginspage.cpp:250 +#: ../src/richtext/richtextmarginspage.cpp:275 +#: ../src/richtext/richtextmarginspage.cpp:316 +#: ../src/richtext/richtextmarginspage.cpp:341 +#: ../src/richtext/richtextmarginspage.cpp:364 +#: ../src/richtext/richtextmarginspage.cpp:389 +#: ../src/richtext/richtextsizepage.cpp:336 +#: ../src/richtext/richtextsizepage.cpp:370 +#: ../src/richtext/richtextsizepage.cpp:397 +#: ../src/richtext/richtextsizepage.cpp:424 +#: ../src/richtext/richtextsizepage.cpp:451 +#: ../src/richtext/richtextsizepage.cpp:478 +#: ../src/richtext/richtextsizepage.cpp:552 +#: ../src/richtext/richtextsizepage.cpp:587 +#: ../src/richtext/richtextsizepage.cpp:622 +#: ../src/richtext/richtextsizepage.cpp:657 +msgid "cm" +msgstr "cm" + +#: ../src/html/chm.cpp:347 +msgid "compression error" +msgstr "błąd kompresji" + +#: ../src/common/regex.cpp:239 +msgid "conversion to 8-bit encoding failed" +msgstr "nie powiodła się konwersja do kodowania '8-bit'" + +#: ../src/common/accelcmn.cpp:182 +msgid "ctrl" +msgstr "ctrl" + +#: ../src/common/cmdline.cpp:1323 +msgid "date" +msgstr "data" + +#: ../src/html/chm.cpp:349 +msgid "decompression error" +msgstr "błąd dekompresji" + +#: ../src/richtext/richtextstyles.cpp:780 ../src/common/fmapbase.cpp:820 +msgid "default" +msgstr "domyślny" + +#: ../src/common/cmdline.cpp:1319 +msgid "double" +msgstr "podwójnie" + +#: ../src/common/debugrpt.cpp:543 +msgid "dump of the process state (binary)" +msgstr "kopia stanu procesu (binarnie)" + +#: ../src/common/datetimefmt.cpp:1936 +msgid "eighteenth" +msgstr "osiemnasty" + +#: ../src/common/datetimefmt.cpp:1926 +msgid "eighth" +msgstr "ósmy" + +#: ../src/common/datetimefmt.cpp:1929 +msgid "eleventh" +msgstr "jedenasty" + +#: ../src/common/fileconf.cpp:1868 +#, c-format +msgid "entry '%s' appears more than once in group '%s'" +msgstr "pozycja '%s' występuje w grupie '%s' więcej niż jeden raz" + +#: ../src/html/chm.cpp:343 +msgid "error in data format" +msgstr "błąd w formacie" + +#: ../src/msdos/utilsdos.cpp:413 +#, c-format +msgid "error opening '%s'" +msgstr "błąd otwarcia '%s'" + +#: ../src/html/chm.cpp:331 +msgid "error opening file" +msgstr "błąd otwarcia pliku" + +#: ../src/common/zipstrm.cpp:1576 +msgid "error reading zip central directory" +msgstr "błąd przy odczycie centralnego katalogu zip" + +#: ../src/common/zipstrm.cpp:1667 +msgid "error reading zip local header" +msgstr "błąd odczytu lokalnego nagłówka zip" + +#: ../src/common/zipstrm.cpp:2396 +#, c-format +msgid "error writing zip entry '%s': bad crc or length" +msgstr "błąd zapisu zip '%s': niepoprawna sygnatura crc lub długość" + +# nie do końca... +#: ../src/common/ffile.cpp:170 +#, c-format +msgid "failed to flush the file '%s'" +msgstr "nie udało się opróżnić (flush) pliku '%s'" + +#: ../src/common/datetimefmt.cpp:1933 +msgid "fifteenth" +msgstr "piętnasty" + +#: ../src/common/datetimefmt.cpp:1923 +msgid "fifth" +msgstr "piąty" + +#: ../src/common/fileconf.cpp:610 +#, c-format +msgid "file '%s', line %d: '%s' ignored after group header." +msgstr "plik '%s', linia %d: zignorowano '%s' po nagłówku grupy." + +#: ../src/common/fileconf.cpp:639 +#, c-format +msgid "file '%s', line %d: '=' expected." +msgstr "plik '%s', linia %d: oczekiwano '='." + +#: ../src/common/fileconf.cpp:662 +#, c-format +msgid "file '%s', line %d: key '%s' was first found at line %d." +msgstr "plik '%s', linia %d: klucz '%s' wystąpił po raz pierwszy w lini %d." + +# niezmiennego? +#: ../src/common/fileconf.cpp:652 +#, c-format +msgid "file '%s', line %d: value for immutable key '%s' ignored." +msgstr "plik '%s', linia %d: zignorowano wartość dla niezmiennego klucza '%s'." + +#: ../src/common/fileconf.cpp:574 +#, c-format +msgid "file '%s': unexpected character %c at line %d." +msgstr "plik '%s': nieoczekiwany znak %c w lini %d." + +#: ../src/richtext/richtextbuffer.cpp:8300 +msgid "files" +msgstr "pliki" + +#: ../src/common/datetimefmt.cpp:1919 +msgid "first" +msgstr "pierwszy" + +#: ../src/html/helpwnd.cpp:1265 +msgid "font size" +msgstr "rozmiar czcionki" + +#: ../src/common/datetimefmt.cpp:1932 +msgid "fourteenth" +msgstr "czternasty" + +#: ../src/common/datetimefmt.cpp:1922 +msgid "fourth" +msgstr "czwarty" + +# inaczej +#: ../src/common/appbase.cpp:695 +msgid "generate verbose log messages" +msgstr "generuje listę komunikatów" + +#: ../src/richtext/richtextbuffer.cpp:12015 +#: ../src/richtext/richtextbuffer.cpp:12125 +msgid "image" +msgstr "obraz" + +#: ../src/common/tarstrm.cpp:796 +msgid "incomplete header block in tar" +msgstr "niekompletny blok nagłówka w tar" + +#: ../src/common/xtixml.cpp:489 +msgid "incorrect event handler string, missing dot" +msgstr "nieprawidłowy uchwyt zdarzenia, brak kropki w nazwie" + +#: ../src/common/tarstrm.cpp:1381 +msgid "incorrect size given for tar entry" +msgstr "nieprawidłowy rozmiar podany w wpisie tar" + +#: ../src/common/tarstrm.cpp:993 +msgid "invalid data in extended tar header" +msgstr "nieprawidłowe dane w rozszerzonym nagłówku tar" + +#: ../src/generic/logg.cpp:1050 +msgid "invalid message box return value" +msgstr "wartość zwrócona przez okno komunikatu jest nieprawidłowa" + +#: ../src/common/zipstrm.cpp:1445 +msgid "invalid zip file" +msgstr "nieprawidłowy plik zip" + +#: ../src/common/fontcmn.cpp:983 +msgid "italic" +msgstr "kursywa" + +#: ../src/common/fontcmn.cpp:973 +msgid "light" +msgstr "lekki" + +#: ../src/common/intl.cpp:293 +#, c-format +msgid "locale '%s' cannot be set." +msgstr "lokalizacja '%s' nie może być ustawiona." + +#: ../src/common/datetimefmt.cpp:2092 +msgid "midnight" +msgstr "północ" + +#: ../src/common/datetimefmt.cpp:1937 +msgid "nineteenth" +msgstr "dziewiętnasty" + +#: ../src/common/datetimefmt.cpp:1927 +msgid "ninth" +msgstr "dziewiąty" + +#: ../src/msw/dde.cpp:1119 +msgid "no DDE error." +msgstr "bez błędu DDE." + +#: ../src/html/chm.cpp:327 +msgid "no error" +msgstr "brak błędu" + +#: ../src/dfb/fontmgr.cpp:174 +#, c-format +msgid "no fonts found in %s, using builtin font" +msgstr "nie znaleziono czcionek w %s, wykorzystując czcionki wypunktowania" + +#: ../src/html/helpdata.cpp:654 +msgid "noname" +msgstr "beznazwy" + +#: ../src/common/datetimefmt.cpp:2091 +msgid "noon" +msgstr "południe" + +#: ../src/richtext/richtextstyles.cpp:779 +#, fuzzy +msgid "normal" +msgstr "Normalny" + +#: ../src/gtk/print.cpp:1227 ../src/gtk/print.cpp:1332 +msgid "not implemented" +msgstr "nie zaimplementowany" + +#: ../src/common/cmdline.cpp:1315 +msgid "num" +msgstr "liczba" + +#: ../src/common/xtixml.cpp:259 +msgid "objects cannot have XML Text Nodes" +msgstr "obiekty nie może mieć węzłów typu 'XML Text'" + +#: ../src/html/chm.cpp:339 +msgid "out of memory" +msgstr "brak wolnej pamięci" + +#: ../src/richtext/richtextsizepage.cpp:337 +#: ../src/richtext/richtextsizepage.cpp:371 +#: ../src/richtext/richtextsizepage.cpp:398 +#: ../src/richtext/richtextsizepage.cpp:425 +#: ../src/richtext/richtextsizepage.cpp:452 +#: ../src/richtext/richtextsizepage.cpp:479 +#: ../src/richtext/richtextsizepage.cpp:553 +#: ../src/richtext/richtextsizepage.cpp:588 +#: ../src/richtext/richtextsizepage.cpp:623 +#: ../src/richtext/richtextsizepage.cpp:658 +msgid "percent" +msgstr "procent" + +#: ../src/common/debugrpt.cpp:519 +msgid "process context description" +msgstr "opis kontekstu procesu" + +#: ../src/richtext/richtextfontpage.cpp:186 +#: ../src/richtext/richtextfontpage.cpp:189 +msgid "pt" +msgstr "pt" + +#: ../src/richtext/richtextfontpage.cpp:187 +#: ../src/richtext/richtextborderspage.cpp:279 +#: ../src/richtext/richtextborderspage.cpp:281 +#: ../src/richtext/richtextborderspage.cpp:282 +#: ../src/richtext/richtextborderspage.cpp:309 +#: ../src/richtext/richtextborderspage.cpp:311 +#: ../src/richtext/richtextborderspage.cpp:312 +#: ../src/richtext/richtextborderspage.cpp:339 +#: ../src/richtext/richtextborderspage.cpp:341 +#: ../src/richtext/richtextborderspage.cpp:342 +#: ../src/richtext/richtextborderspage.cpp:369 +#: ../src/richtext/richtextborderspage.cpp:371 +#: ../src/richtext/richtextborderspage.cpp:372 +#: ../src/richtext/richtextborderspage.cpp:423 +#: ../src/richtext/richtextborderspage.cpp:425 +#: ../src/richtext/richtextborderspage.cpp:426 +#: ../src/richtext/richtextborderspage.cpp:453 +#: ../src/richtext/richtextborderspage.cpp:455 +#: ../src/richtext/richtextborderspage.cpp:456 +#: ../src/richtext/richtextborderspage.cpp:483 +#: ../src/richtext/richtextborderspage.cpp:485 +#: ../src/richtext/richtextborderspage.cpp:486 +#: ../src/richtext/richtextborderspage.cpp:513 +#: ../src/richtext/richtextborderspage.cpp:515 +#: ../src/richtext/richtextborderspage.cpp:516 +#: ../src/richtext/richtextmarginspage.cpp:201 +#: ../src/richtext/richtextmarginspage.cpp:203 +#: ../src/richtext/richtextmarginspage.cpp:204 +#: ../src/richtext/richtextmarginspage.cpp:226 +#: ../src/richtext/richtextmarginspage.cpp:228 +#: ../src/richtext/richtextmarginspage.cpp:229 +#: ../src/richtext/richtextmarginspage.cpp:249 +#: ../src/richtext/richtextmarginspage.cpp:251 +#: ../src/richtext/richtextmarginspage.cpp:252 +#: ../src/richtext/richtextmarginspage.cpp:274 +#: ../src/richtext/richtextmarginspage.cpp:276 +#: ../src/richtext/richtextmarginspage.cpp:277 +#: ../src/richtext/richtextmarginspage.cpp:315 +#: ../src/richtext/richtextmarginspage.cpp:317 +#: ../src/richtext/richtextmarginspage.cpp:318 +#: ../src/richtext/richtextmarginspage.cpp:340 +#: ../src/richtext/richtextmarginspage.cpp:342 +#: ../src/richtext/richtextmarginspage.cpp:343 +#: ../src/richtext/richtextmarginspage.cpp:363 +#: ../src/richtext/richtextmarginspage.cpp:365 +#: ../src/richtext/richtextmarginspage.cpp:366 +#: ../src/richtext/richtextmarginspage.cpp:388 +#: ../src/richtext/richtextmarginspage.cpp:390 +#: ../src/richtext/richtextmarginspage.cpp:391 +#: ../src/richtext/richtextsizepage.cpp:335 +#: ../src/richtext/richtextsizepage.cpp:338 +#: ../src/richtext/richtextsizepage.cpp:339 +#: ../src/richtext/richtextsizepage.cpp:369 +#: ../src/richtext/richtextsizepage.cpp:372 +#: ../src/richtext/richtextsizepage.cpp:373 +#: ../src/richtext/richtextsizepage.cpp:396 +#: ../src/richtext/richtextsizepage.cpp:399 +#: ../src/richtext/richtextsizepage.cpp:400 +#: ../src/richtext/richtextsizepage.cpp:423 +#: ../src/richtext/richtextsizepage.cpp:426 +#: ../src/richtext/richtextsizepage.cpp:427 +#: ../src/richtext/richtextsizepage.cpp:450 +#: ../src/richtext/richtextsizepage.cpp:453 +#: ../src/richtext/richtextsizepage.cpp:454 +#: ../src/richtext/richtextsizepage.cpp:477 +#: ../src/richtext/richtextsizepage.cpp:480 +#: ../src/richtext/richtextsizepage.cpp:481 +#: ../src/richtext/richtextsizepage.cpp:551 +#: ../src/richtext/richtextsizepage.cpp:554 +#: ../src/richtext/richtextsizepage.cpp:555 +#: ../src/richtext/richtextsizepage.cpp:586 +#: ../src/richtext/richtextsizepage.cpp:589 +#: ../src/richtext/richtextsizepage.cpp:590 +#: ../src/richtext/richtextsizepage.cpp:621 +#: ../src/richtext/richtextsizepage.cpp:624 +#: ../src/richtext/richtextsizepage.cpp:625 +#: ../src/richtext/richtextsizepage.cpp:656 +#: ../src/richtext/richtextsizepage.cpp:659 +#: ../src/richtext/richtextsizepage.cpp:660 +msgid "px" +msgstr "px" + +#: ../src/common/accelcmn.cpp:188 +msgid "rawctrl" +msgstr "" + +#: ../src/html/chm.cpp:333 +msgid "read error" +msgstr "błąd odczytu" + +#: ../src/common/zipstrm.cpp:1882 +#, c-format +msgid "reading zip stream (entry %s): bad crc" +msgstr "odczyt strumienia zip (%s): niepoprawna sygnatura crc" + +#: ../src/common/zipstrm.cpp:1877 +#, c-format +msgid "reading zip stream (entry %s): bad length" +msgstr "odczyt strumienia zip (%s): niepoprawna długość" + +#: ../src/msw/dde.cpp:1162 +msgid "reentrancy problem." +msgstr "problem współbieżności" + +#: ../src/common/datetimefmt.cpp:1920 +msgid "second" +msgstr "drugi" + +#: ../src/html/chm.cpp:337 +msgid "seek error" +msgstr "błąd przeszukiwania" + +#: ../src/common/datetimefmt.cpp:1935 +msgid "seventeenth" +msgstr "siedemnasty" + +#: ../src/common/datetimefmt.cpp:1925 +msgid "seventh" +msgstr "siódmy" + +#: ../src/common/accelcmn.cpp:186 +msgid "shift" +msgstr "shift" + +#: ../src/common/appbase.cpp:685 +msgid "show this help message" +msgstr "wyświetla ten komunikat" + +#: ../src/common/datetimefmt.cpp:1934 +msgid "sixteenth" +msgstr "szesnasty" + +#: ../src/common/datetimefmt.cpp:1924 +msgid "sixth" +msgstr "szósty" + +#: ../src/common/appcmn.cpp:206 +msgid "specify display mode to use (e.g. 640x480-16)" +msgstr "określa tryb wyświetlania, który ma być użyty (np. 640x480-16)" + +#: ../src/common/appcmn.cpp:192 +msgid "specify the theme to use" +msgstr "określa kompozycję, który ma być użyta" + +#: ../src/richtext/richtextbuffer.cpp:8818 +msgid "standard/circle" +msgstr "" + +#: ../src/richtext/richtextbuffer.cpp:8819 +msgid "standard/circle-outline" +msgstr "" + +#: ../src/richtext/richtextbuffer.cpp:8821 +msgid "standard/diamond" +msgstr "" + +#: ../src/richtext/richtextbuffer.cpp:8820 +msgid "standard/square" +msgstr "" + +#: ../src/richtext/richtextbuffer.cpp:8822 +msgid "standard/triangle" +msgstr "" + +#: ../src/common/zipstrm.cpp:1782 +msgid "stored file length not in Zip header" +msgstr "długość pliku nie w nagłówku Zip" + +#: ../src/common/cmdline.cpp:1311 +msgid "str" +msgstr "tekst" + +#: ../src/common/fontcmn.cpp:794 ../src/common/fontcmn.cpp:969 +#, fuzzy +msgid "strikethrough" +msgstr "&Przekreślenie" + +#: ../src/common/tarstrm.cpp:1003 ../src/common/tarstrm.cpp:1025 +#: ../src/common/tarstrm.cpp:1507 ../src/common/tarstrm.cpp:1529 +msgid "tar entry not open" +msgstr "wpis tar nie otwarty" + +#: ../src/common/datetimefmt.cpp:1928 +msgid "tenth" +msgstr "dziesiąty" + +# niezręczne +#: ../src/msw/dde.cpp:1126 +msgid "the response to the transaction caused the DDE_FBUSY bit to be set." +msgstr "odpowiedź na transakcję spowodowała ustawienie bitu DDE_FBUSY." + +#: ../src/common/datetimefmt.cpp:1921 +msgid "third" +msgstr "trzeci" + +#: ../src/common/datetimefmt.cpp:1931 +msgid "thirteenth" +msgstr "trzynasty" + +#: ../src/common/datetimefmt.cpp:1725 +msgid "today" +msgstr "dziś" + +#: ../src/common/datetimefmt.cpp:1727 +msgid "tomorrow" +msgstr "jutro" + +#: ../src/common/fileconf.cpp:1979 +#, c-format +msgid "trailing backslash ignored in '%s'" +msgstr "końcowy ukośnik odwrotny zignorowany w '%s'" + +#: ../src/gtk/aboutdlg.cpp:218 +msgid "translator-credits" +msgstr "Michał Trzebiatowski" + +#: ../src/common/datetimefmt.cpp:1930 +msgid "twelfth" +msgstr "dwunasty" + +#: ../src/common/datetimefmt.cpp:1938 +msgid "twentieth" +msgstr "dwudziesty" + +#: ../src/common/fontcmn.cpp:789 ../src/common/fontcmn.cpp:965 +msgid "underlined" +msgstr "podkreślony" + +#: ../src/common/fileconf.cpp:2014 +#, c-format +msgid "unexpected \" at position %d in '%s'." +msgstr "nieoczekiwany \" na pozycji %d w '%s'." + +#: ../src/common/tarstrm.cpp:1045 +msgid "unexpected end of file" +msgstr "nieoczekiwany koniec pliku" + +#: ../src/generic/progdlgg.cpp:399 ../src/common/tarstrm.cpp:371 +#: ../src/common/tarstrm.cpp:394 ../src/common/tarstrm.cpp:425 +msgid "unknown" +msgstr "nieznany" + +#: ../src/common/xtixml.cpp:253 +#, c-format +msgid "unknown class %s" +msgstr "nieznana klasa %s" + +#: ../src/common/regex.cpp:261 ../src/html/chm.cpp:351 +msgid "unknown error" +msgstr "nieznany błąd" + +#: ../src/msw/dialup.cpp:490 +#, c-format +msgid "unknown error (error code %08x)." +msgstr "nieznany błąd (kod błędu %08x)." + +#: ../src/msw/wince/filefnwce.cpp:172 +msgid "unknown seek origin" +msgstr "nieznany odnośnik pozycjonowania" + +#: ../src/common/fmapbase.cpp:834 +#, c-format +msgid "unknown-%d" +msgstr "nieznany-%d" + +#: ../src/common/docview.cpp:507 +msgid "unnamed" +msgstr "beznazwy" + +#: ../src/common/docview.cpp:1607 +#, c-format +msgid "unnamed%d" +msgstr "beznazwy%d" + +#: ../src/common/zipstrm.cpp:1796 ../src/common/zipstrm.cpp:2184 +msgid "unsupported Zip compression method" +msgstr "niewspierana metoda kompresji Zip" + +#: ../src/common/translation.cpp:1892 +#, c-format +msgid "using catalog '%s' from '%s'." +msgstr "użycie katalogu '%s' z '%s'." + +#: ../src/html/chm.cpp:335 +msgid "write error" +msgstr "błąd zapisu" + +#: ../src/common/time.cpp:318 +msgid "wxGetTimeOfDay failed." +msgstr "wxGetTimeOfDay zwróciło błąd." + +#: ../src/gtk/print.cpp:996 +msgid "wxPrintout::GetPageInfo gives a null maxPage." +msgstr "wxPrintout: GetPageInfo daje zero maxPage." + +#: ../src/osx/carbon/dataview.cpp:1303 +msgid "wxWidget control pointer is not a data view pointer" +msgstr "Wskaźnik kontroli wxWidget nie jest wskaźnikiem widoku danych" + +#: ../src/osx/carbon/dataview.cpp:907 +msgid "wxWidget's control not initialized." +msgstr "" + +#: ../src/motif/app.cpp:245 +#, c-format +msgid "wxWidgets could not open display for '%s': exiting." +msgstr "Nie można zainicjować wyświetlania dla '%s': program kończy pracę." + +#: ../src/x11/app.cpp:164 +msgid "wxWidgets could not open display. Exiting." +msgstr "Nie można zainicjować wyświetlania. Program kończy pracę." + +#: ../src/richtext/richtextsymboldlg.cpp:434 +msgid "xxxx" +msgstr "xxxx" + +#: ../src/common/datetimefmt.cpp:1726 +msgid "yesterday" +msgstr "wczoraj" + +#: ../src/common/zstream.cpp:251 ../src/common/zstream.cpp:426 +#, c-format +msgid "zlib error %d" +msgstr "błąd biblioteki zlib %d" + +#: ../src/richtext/richtextliststylepage.cpp:496 +#: ../src/richtext/richtextbulletspage.cpp:301 +msgid "~" +msgstr "~" + +#~ msgid "1" +#~ msgstr "1" + +#, fuzzy +#~ msgid "10" +#~ msgstr "1" + +#~ msgid "3" +#~ msgstr "3" + +#~ msgid "4" +#~ msgstr "4" + +#~ msgid "5" +#~ msgstr "5" + +#~ msgid "6" +#~ msgstr "6" + +#~ msgid "7" +#~ msgstr "7" + +#~ msgid "8" +#~ msgstr "8" + +#~ msgid "9" +#~ msgstr "9" + +#, fuzzy +#~ msgid "&Preview..." +#~ msgstr " Podgląd" + +#, fuzzy +#~ msgid "Preview..." +#~ msgstr " Podgląd" + +#, fuzzy +#~ msgid "The vertical offset relative to the paragraph." +#~ msgstr "Domyślny styl dla następnego paragrafu." + +#~ msgid "&Save..." +#~ msgstr "&Zapisz..." + +#~ msgid "About " +#~ msgstr "O" + +#~ msgid "All files (*.*)|*" +#~ msgstr "Wszystkie pliki (*.*)|*" + +#~ msgid "Cannot initialize SciTech MGL!" +#~ msgstr "Nie można zainicjować SciTech MGL!" + +#~ msgid "Cannot initialize display." +#~ msgstr "Nie można zainicjować obsługi wyświetlania." + +#~ msgid "Cannot start thread: error writing TLS" +#~ msgstr "Nie można wystartować wątku: błąd zapisu TLS" + +#~ msgid "Close\tAlt-F4" +#~ msgstr "Zamknij\tAlt-F4" + +#~ msgid "Couldn't create cursor." +#~ msgstr "Nie można utworzyć kursora." + +#~ msgid "Directory '%s' doesn't exist!" +#~ msgstr "Katalog '%s' nie istnieje!" + +#~ msgid "File %s does not exist." +#~ msgstr "Plik %s nie istnieje." + +# sprawdzić "tryb", może "nie jest", "nie" - razem czy osobno, +#~ msgid "Mode %ix%i-%i not available." +#~ msgstr "Tryb %ix%i-%i nie jest dostępny." + +#~ msgid "Paper Size" +#~ msgstr "Rozmiar papieru" + +#~ msgid "%.*f GB" +#~ msgstr "%.*f GB" + +#~ msgid "%.*f MB" +#~ msgstr "%.*f MB" + +#~ msgid "%.*f TB" +#~ msgstr "%.*f TB" + +#~ msgid "%.*f kB" +#~ msgstr "%.*f kB" + +#~ msgid "%s" +#~ msgstr "%s" + +#~ msgid "%s B" +#~ msgstr "%s B" + +#~ msgid "&Goto..." +#~ msgstr "&Przejdź do..." + +#~ msgid "<<" +#~ msgstr "<<" + +#~ msgid ">>" +#~ msgstr ">>" + +#~ msgid ">>|" +#~ msgstr ">>|" + +#~ msgid "Added item is invalid." +#~ msgstr "Dodana pozycja jest nieprawidłowa." + +#~ msgid "Archive doesnt contain #SYSTEM file" +#~ msgstr "Archiwum nie zawiera pliku #SYSTEM" + +#~ msgid "BIG5" +#~ msgstr "BIG5" + +#~ msgid "Can't check image format of file '%s': file does not exist." +#~ msgstr "" +#~ "Nie można sprawdzić formatu graficznego pliku '%s': plik nie istnieje." + +#~ msgid "Can't load image from file '%s': file does not exist." +#~ msgstr "Nie można wczytać obrazu z pliku '%s': plik nie istnieje." + +# units --> ? +#~ msgid "Cannot convert dialog units: dialog unknown." +#~ msgstr "" +#~ "Nie można wykonać konwersji okien dialogowych: nieznane okno dialogowe." + +#~ msgid "Cannot convert from the charset '%s'!" +#~ msgstr "Nie można dokonać konwersji z tablicy '%s'!" + +#~ msgid "Cannot find container for unknown control '%s'." +#~ msgstr "NIe można znaleźć kontenera dla nieznanej kontrolki '%s'." + +#~ msgid "Cannot find font node '%s'." +#~ msgstr "Nie można znaleźć węzła czcionki '%s'." + +#~ msgid "Cannot open file '%s'." +#~ msgstr "Nie można otworzyć pliku '%s'." + +#~ msgid "Cannot parse coordinates from '%s'." +#~ msgstr "Nie można wyciągnąć koordynatów z '%s'." + +#~ msgid "Cannot parse dimension from '%s'." +#~ msgstr "Nie można wyciągnąć wymiaru z '%s'." + +#~ msgid "Cant create the thread event queue" +#~ msgstr "Nie można utworzyć kolejki zdarzeń wątku" + +#~ msgid "Changed item is invalid." +#~ msgstr "Zmieniona pozycja jest nieprawidłowa." + +#~ msgid "Click to cancel this window." +#~ msgstr "Kliknij, aby anulować to okno." + +#~ msgid "Click to confirm your selection." +#~ msgstr "Kliknij, aby potwierdzić wybór." + +#~ msgid "Column does not have a renderer." +#~ msgstr "Kolumna nie ma rendera." + +#~ msgid "Column pointer must not be NULL." +#~ msgstr "Wskaźnik kolumny nie może być ZERO." + +#~ msgid "Column's model column has no equivalent in the associated model." +#~ msgstr "Kolumna modelu kolumny nie ma odpowiednika w powiązanym modelu." + +#~ msgid "Control is wrongly initialized." +#~ msgstr "Kontrola jest niesłusznie zainicjalizowana." + +#~ msgid "Could not add column to internal structures." +#~ msgstr "Nie można dodać kolumny do wewnętrznych struktur." + +#~ msgid "Could not unlock mutex" +#~ msgstr "Nie odblokowano muteksu" + +#~ msgid "Data view control is not correctly initialized" +#~ msgstr "Widok kontroli danych nie jest poprawnie inicjowany" + +#~ msgid "Error while waiting on semaphore" +#~ msgstr "Błąd oczekiwania na semafor" + +#~ msgid "Failed to connect to session manager: %s" +#~ msgstr "Nie udało połączyć się do menedżera sesji: %s" + +#~ msgid "Failed to create a status bar." +#~ msgstr "Nie udało się utworzyć paska statusu." + +#~ msgid "Failed to register OpenGL window class." +#~ msgstr "Nie udała się rejestracja klasy okna OpenGL." + +#~ msgid "Fatal error" +#~ msgstr "Błąd krytyczny " + +#~ msgid "Fatal error: " +#~ msgstr "Błąd krytyczny: " + +#~ msgid "GB-2312" +#~ msgstr "GB-2312" + +#~ msgid "Go forward to the next HTML page" +#~ msgstr "Przejdź do następnej strony HTML" + +#~ msgid "Goto Page" +#~ msgstr "Skocz do strony" + +#~ msgid "" +#~ "HTML pagination algorithm generated more than the allowed maximum number " +#~ "of pages and it can't continue any longer!" +#~ msgstr "" +#~ "Algorytm paginacji HTML generował więcej niż dozwoloną maksymalną liczbę " +#~ "stron i nie może być dłużej kontynuowany!" + +#~ msgid "Help : %s" +#~ msgstr "Pomoc : %s" + +#~ msgid "I64" +#~ msgstr "I64" + +#~ msgid "Internal error, illegal wxCustomTypeInfo" +#~ msgstr "Błąd wewnętrzny, nieprawidłowości w wxCustomTypeInfo" + +# korzenia? +#~ msgid "Invalid XRC resource '%s': doesn't have root node 'resource'." +#~ msgstr "Nieprawidłowy zasób XRC '%s': brakuje głównego węzła 'resource'." + +#~ msgid "No handler found for XML node '%s', class '%s'!" +#~ msgstr "Brak procedury obsługi dla węzła XML '%s', klasa '%s'!" + +#~ msgid "No image handler for type %ld defined." +#~ msgstr "Brak procedury obsługi obrazów typu %ld." + +#~ msgid "No model associated with control." +#~ msgstr "Nie ma modelu powiązanego z kontrolą." + +#~ msgid "Owner not initialized." +#~ msgstr "Właściciel niezainicjowany." + +#~ msgid "Passed item is invalid." +#~ msgstr "Ostatni element jest nieprawidłowy." + +#~ msgid "Passing a already registered object to SetObjectName" +#~ msgstr "Przekazano już zarejestrowany obiekt do funkcji SetObjectName" + +#~ msgid "Preparing help window..." +#~ msgstr "Przygotowanie okna pomocy..." + +#~ msgid "Program aborted." +#~ msgstr "Program przerwany." + +#~ msgid "Referenced object node with ref=\"%s\" not found!" +#~ msgstr "Nie znalezione węzła obiektu, do którego odwołuje się ref=\"%s\"!" + +#~ msgid "Resource files must have same version number!" +#~ msgstr "Pliki zasobów muszę mieć zgodny numer wersji!" + +#~ msgid "SHIFT-JIS" +#~ msgstr "SHIFT-JIS" + +#~ msgid "Search!" +#~ msgstr "Szukaj!" + +#~ msgid "Sorry, could not open this file for saving." +#~ msgstr "Niestety nie można otworzyć tego pliku do zapisu." + +#~ msgid "Sorry, could not save this file." +#~ msgstr "Niestety nie można zapisać tego pliku." + +#~ msgid "Sorry, print preview needs a printer to be installed." +#~ msgstr "Niestety, podgląd wydruku wymaga zainstalowania drukarki." + +#~ msgid "Status: " +#~ msgstr "Status: " + +#~ msgid "" +#~ "Streaming delegates for not already streamed objects not yet supported" +#~ msgstr "" +#~ "Delegacja w strumieniu dlaobiektu który nie jest już w strumieniu nie " +#~ "jest jeszcze wspierana" + +#~ msgid "Subclass '%s' not found for resource '%s', not subclassing!" +#~ msgstr "Nie znaleziono podklasy '%s' dla zasobu '%s', bez podklas!" + +#~ msgid "TIFF library error." +#~ msgstr "Błąd biblioteki TIFF." + +#~ msgid "TIFF library warning." +#~ msgstr "Ostrzeżenie biblioteki TIFF." + +#~ msgid "" +#~ "The file '%s' couldn't be opened.\n" +#~ "It has been removed from the most recently used files list." +#~ msgstr "" +#~ "Nie można otworzyć pliku '%s'.\n" +#~ "Informacja o nim została usunięta z listy ostatnio używanych plików." + +#~ msgid "The path '%s' contains too many \"..\"!" +#~ msgstr "Ścieżka '%s' zawiera za dużo \"..\"!" + +#~ msgid "Trying to solve a NULL hostname: giving up" +#~ msgstr "próba użycia niezdefiniowej (NULL) nazwy serwera: rezygnacja" + +#~ msgid "Unknown style flag " +#~ msgstr "Nieznana flaga stylu" + +#~ msgid "Warning" +#~ msgstr "Ostrzeżenie" + +#~ msgid "Windows 2000 (build %lu" +#~ msgstr "Windows 2000 (kompilacja %lu" + +#~ msgid "XRC resource '%s' (class '%s') not found!" +#~ msgstr "Nie znaleziono zasobu XRC '%s' (klasa '%s')!" + +#~ msgid "XRC resource: Cannot create animation from '%s'." +#~ msgstr "Zasoby XRC: Nie można utworzyć animacji z '%s'." + +#~ msgid "XRC resource: Cannot create bitmap from '%s'." +#~ msgstr "Zasoby XRC: Nie można utworzyć mapy bitowej z '%s'." + +#~ msgid "" +#~ "XRC resource: Incorrect colour specification '%s' for attribute '%s'." +#~ msgstr "" +#~ "Zasoby XRC: Nieprawidłowa specyfikacja koloru '%s' dla atrybutu '%s'." + +#~ msgid "[EMPTY]" +#~ msgstr "[PUSTY]" + +# catalog file --> ? +# domain --> ? +#~ msgid "catalog file for domain '%s' not found." +#~ msgstr "Nie znaleziono pliku katalogowego dla domeny '%s'." + +#~ msgid "delegate has no type info" +#~ msgstr "brak informacji o delegowanym typie" + +#~ msgid "encoding %i" +#~ msgstr "kodowanie %i" + +# w ścieżce - nieładne +#~ msgid "looking for catalog '%s' in path '%s'." +#~ msgstr "szukanie katalogu '%s' w ścieżce '%s'." + +#~ msgid "m_peer is not or incorrectly initialized" +#~ msgstr "m_peer nie jest lub nieprawidłowo zainicjowany" + +#~ msgid "wxRichTextFontPage" +#~ msgstr "wxRichTextFontPage" + +#~ msgid "wxSearchEngine::LookFor must be called before scanning!" +#~ msgstr "wxSearchEngine::LookFor musi być wywołane przed skanowaniem!" + +#~ msgid "wxSocket: invalid signature in ReadMsg." +#~ msgstr "wxSocket: błędna sygnatura w ReadMsg." + +#~ msgid "wxSocket: unknown event!." +#~ msgstr "wxSocket: nieznane zdarzenie!" + +#~ msgid "|<<" +#~ msgstr "|<<" + +#~ msgid "\t%s: %s\n" +#~ msgstr "\t%s: %s\n" + +#, fuzzy +#~ msgid " Couldn't create the UnicodeConverter" +#~ msgstr "Nie można utworzyć stopera" + +#~ msgid "#define %s must be an integer." +#~ msgstr "#define %s musi być liczbą całkowitą." + +#~ msgid "%s not a bitmap resource specification." +#~ msgstr "%s nie jest specyfikacją zasobu mapy bitowej." + +#~ msgid "%s not an icon resource specification." +#~ msgstr "%s nie jest specyfikacją zasobu ikony." + +#~ msgid "%s: ill-formed resource file syntax." +#~ msgstr "%s: błędna składnia pliku zasobu." + +#~ msgid "&Open" +#~ msgstr "&Otwórz" + +#~ msgid "&Print" +#~ msgstr "&Drukuj" + +#~ msgid "*** A debug report has been generated\n" +#~ msgstr "*** Raport błędów został wygenerowany\n" + +#~ msgid "*** It can be found in \"%s\"\n" +#~ msgstr "*** Znajduje się w \"%s\"\n" + +#~ msgid "" +#~ ", expected static, #include or #define\n" +#~ "while parsing resource." +#~ msgstr "" +#~ ", oczekiwano static, #include or #define\n" +#~ "podczas przetwarzania zasobu." + +#~ msgid "Bitmap resource specification %s not found." +#~ msgstr "Nie znaleziono specyfikacji %s zasobu mapy bitowej." + +#~ msgid "" +#~ "Could not resolve control class or id '%s'. Use (non-zero) integer " +#~ "instead\n" +#~ " or provide #define (see manual for caveats)" +#~ msgstr "" +#~ "Nie rozpoznano klasy lub identyfikatora '%s'. Użyj (niezerową) liczbę " +#~ "całkowitą \n" +#~ " lub #define (szukaj szczegółów w dokumentacji)" + +#~ msgid "" +#~ "Could not resolve menu id '%s'. Use (non-zero) integer instead\n" +#~ "or provide #define (see manual for caveats)" +#~ msgstr "" +#~ "Nie rozpoznano identyfikatora menu '%s'. Użyj (niezerową) liczbę " +#~ "całkowitą \n" +#~ " lub #define (szukaj szczegółów w dokumentacji)" + +#, fuzzy +#~ msgid "Couldn't end the context on the overlay window" +#~ msgstr "Nie można pobrać wskaźnika aktualnego wątku" + +#~ msgid "Expected '*' while parsing resource." +#~ msgstr "Przetwarzając zasób oczekiwano '*'." + +#~ msgid "Expected '=' while parsing resource." +#~ msgstr "Przetwarzając zasób oczekiwano '='." + +#~ msgid "Expected 'char' while parsing resource." +#~ msgstr "Przetwarzając zasób oczekiwano 'char'." + +#~ msgid "" +#~ "Failed to find XBM resource %s.\n" +#~ "Forgot to use wxResourceLoadBitmapData?" +#~ msgstr "" +#~ "Brak zasobu XBM %s.\n" +#~ "Nie wywołano wxResourceLoadBitmapData?" + +#~ msgid "" +#~ "Failed to find XBM resource %s.\n" +#~ "Forgot to use wxResourceLoadIconData?" +#~ msgstr "" +#~ "Brak zasobu XBM %s.\n" +#~ "Nie wywołano wxResourceLoadIconData?" + +#~ msgid "" +#~ "Failed to find XPM resource %s.\n" +#~ "Forgot to use wxResourceLoadBitmapData?" +#~ msgstr "" +#~ "Brak zasobu XBM %s.\n" +#~ "Nie wywołano wxResourceLoadBitmapData?" + +#~ msgid "Failed to get clipboard data." +#~ msgstr "Nie udało się pobrać danych ze schowka." + +# shared -->? +#~ msgid "Failed to load shared library '%s' Error '%s'" +#~ msgstr "Nie udało się wczytać biblioteki '%s': błąd '%s'" + +#~ msgid "Found " +#~ msgstr "Znaleziono " + +#~ msgid "Icon resource specification %s not found." +#~ msgstr "Specyfikacja zasobu ikony %s nie znaleziona." + +#~ msgid "Ill-formed resource file syntax." +#~ msgstr "Błędna składnia pliku zasobu" + +#~ msgid "Long Conversions not supported" +#~ msgstr "Konwersja typu 'Long' nie jest wspierana." + +#~ msgid "No XPM icon facility available!" +#~ msgstr "Brak wsparcia dla ikon XPM!" + +#~ msgid "Option '%s' requires a value, '=' expected." +#~ msgstr "Opcja '%s' wymaga wartości, oczekiwane: '='." + +#, fuzzy +#~ msgid "Select all" +#~ msgstr "&Zaznacz wszystko" + +#~ msgid "String conversions not supported" +#~ msgstr "Konwersja tekstu nie jest wspierana" + +#~ msgid "Unexpected end of file while parsing resource." +#~ msgstr "Nieoczekiwany koniec pliku podczas przetwarzania zasobu." + +#~ msgid "Unrecognized style %s while parsing resource." +#~ msgstr "Nierozpoznany styl %s podczas przetwarzania zasobu." + +#~ msgid "Video Output" +#~ msgstr "Wyjście Video" + +#~ msgid "Warning: attempt to remove HTML tag handler from empty stack." +#~ msgstr "" +#~ "Ostrzeżenie: próba usunięcia procedury obsługi znacznika HTML z pustego " +#~ "stosu." + +# ustalić? ustanowić? +#~ msgid "establish" +#~ msgstr "nawiązać" + +#~ msgid "initiate" +#~ msgstr "zainicjować" + +#~ msgid "invalid eof() return value." +#~ msgstr "błędna wartość znacznika końca pliku." + +#~ msgid "unknown line terminator" +#~ msgstr "nieznany znacznik końca linii" + +#~ msgid "writing" +#~ msgstr "zapisu" + +#~ msgid "." +#~ msgstr "." + +#~ msgid "Cannot open URL '%s'" +#~ msgstr "Nie można otworzyć URL '%s'" + +#~ msgid "Error " +#~ msgstr "Błąd " + +#~ msgid "Failed to create directory %s/.gnome." +#~ msgstr "Nie udało się utworzyć katalogu %s/.gnome" + +#~ msgid "Failed to create directory %s/mime-info." +#~ msgstr "Nie udało się utworzyć katalogu %s/mime-info." + +#~ msgid "MP Thread Support is not available on this System" +#~ msgstr "MP Thread Support jest niedostępny w tym systemie" + +#~ msgid "Mailcap file %s, line %d: incomplete entry ignored." +#~ msgstr "Plik mailcap %s, linia %d: zignorowano niekompletny wpis." + +#~ msgid "Mime.types file %s, line %d: unterminated quoted string." +#~ msgstr "Plik typów mime %s, linia %d: brak zamykającego cudzysłowu." + +#~ msgid "Unknown field in file %s, line %d: '%s'." +#~ msgstr "Nieznane pole w pliku %s, linia %d: '%s'." + +#~ msgid "bold " +#~ msgstr "pogrubiony " + +#~ msgid "can't query for GUI plugins name in console applications" +#~ msgstr "" +#~ "nie można pobierać nazw wtyczek interfejsu graficznego w aplikacji " +#~ "przeznaczonej dla trybu tekstowego" + +#~ msgid "light " +#~ msgstr "lekki " + +#~ msgid "underlined " +#~ msgstr "podkreślony " + +#~ msgid "unsupported zip archive" +#~ msgstr "niewspierane archiwum zip" + +#, fuzzy +#~ msgid "" +#~ "Failed to get stack backtrace:\n" +#~ "%s" +#~ msgstr "Nie udało się usyskać listy ISP: %s" + +#~ msgid "Loading Grey Ascii PNM image is not yet implemented." +#~ msgstr "Ładowanie obrazów Grey Ascii PNM nie jest jeszcze zaimplementowane." + +#~ msgid "Loading Grey Raw PNM image is not yet implemented." +#~ msgstr "Ładowanie obrazów Grey Raw PNM nie jest jeszcze zaimplementowane." + +#, fuzzy +#~ msgid "Cannot wait on thread to exit." +#~ msgstr "Nie można czekać na zakończenie wątku" + +#~ msgid "Could not load Rich Edit DLL '%s'" +#~ msgstr "Nie można wczytać biblioteki Rich Edit '%s'" + +#~ msgid "ZIP handler currently supports only local files!" +#~ msgstr "Obsługiwane są tylko lokalne pliki ZIP!" + +#, fuzzy +#~ msgid "" +#~ "can't seek on file descriptor %d, large files support is not enabled." +#~ msgstr "nie można ustawić pozycji w deskryptorze pliku %d" + +#~ msgid "More..." +#~ msgstr "Więcej..." + +#~ msgid "Setup" +#~ msgstr "Ustawienia" + +#~ msgid "/#SYSTEM" +#~ msgstr "/#SYSTEM" + +#~ msgid "Backward" +#~ msgstr "Wstecz" + +#~ msgid "GetUnusedColour:: No Unused Color in image " +#~ msgstr "Brak wolnych kolorów w obrazie (GetUnusedColour)" diff --git a/resources/l10n/ru/LC_MESSAGES/boss.po b/resources/l10n/ru/LC_MESSAGES/boss.po index 068db631..85bee5c7 100644 --- a/resources/l10n/ru/LC_MESSAGES/boss.po +++ b/resources/l10n/ru/LC_MESSAGES/boss.po @@ -2,42 +2,76 @@ msgid "" msgstr "" "Project-Id-Version: BOSS v3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-26 11:41-0000\n" -"PO-Revision-Date: 2014-02-01 23:09+0600\n" +"POT-Creation-Date: 2014-02-18 19:15-0000\n" +"PO-Revision-Date: 2014-02-19 04:56+0600\n" "Last-Translator: \n" "Language-Team: Russian\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.6.3\n" -"Language: ru\n" +"X-Generator: Poedit 1.6.4\n" -#: backend/game.cpp:96 +#: backend/game.cpp:98 msgid "Invalid game ID supplied." msgstr "Предоставлен неверный идентификатор игры." -#: backend/game.cpp:147 +#: backend/game.cpp:158 msgid "Game path could not be detected." msgstr "Путь к игре найти не удалось." -#: backend/game.cpp:248 backend/game.cpp:308 backend/game.cpp:363 -msgid "libloadorder failed to create a game handle. Details:" -msgstr "libloadorder не удалось создать игру вручную. Детали:" +#: backend/game.cpp:261 backend/game.cpp:342 backend/game.cpp:418 +msgid "" +"libloadorder failed to create a game handle. Details could not be fetched." +msgstr "" +"libloadorder не удалось создать дескриптор игры. Детали не могут быть " +"получены." -#: backend/game.cpp:260 backend/game.cpp:320 backend/game.cpp:374 +#: backend/game.cpp:265 backend/game.cpp:346 backend/game.cpp:422 +msgid "libloadorder failed to create a game handle. Details:" +msgstr "libloadorder не удалось создать дескриптор игры. Детали:" + +#: backend/game.cpp:280 backend/game.cpp:361 backend/game.cpp:436 +msgid "" +"libloadorder failed to initialise game master file support. Details could " +"not be fetched." +msgstr "" +"libloadorder не удалось инициализировать поддержку мастер-файла игры. Детали " +"не могут быть получены." + +#: backend/game.cpp:284 backend/game.cpp:365 backend/game.cpp:440 msgid "libloadorder failed to initialise game master file support. Details:" msgstr "" -"libloadorder не удалось инициализировать мастер-файл поддержки игры. Детали:" +"libloadorder не удалось инициализировать поддержку мастер-файла игры. Детали:" -#: backend/game.cpp:270 +#: backend/game.cpp:297 +msgid "" +"libloadorder failed to get the active plugins list. Details could not be " +"fetched." +msgstr "" +"libloadorder не удалось получить список активных плагинов. Детали не могут " +"быть получены." + +#: backend/game.cpp:301 msgid "libloadorder failed to get the active plugins list. Details:" msgstr "libloadorder не удалось получить список активных плагинов. Детали:" -#: backend/game.cpp:330 backend/game.cpp:396 +#: backend/game.cpp:378 backend/game.cpp:465 +msgid "" +"libloadorder failed to set the load order. Details could not be fetched." +msgstr "" +"libloadorder не удалось установить порядок загрузки. Детали не могут быть " +"получены." + +#: backend/game.cpp:382 +msgid "libloadorder failed to get the load order. Details:" +msgstr "libloadorder не удалось получить порядок загрузки. Детали:" + +#: backend/game.cpp:469 msgid "libloadorder failed to set the load order. Details:" msgstr "libloadorder не удалось установить порядок загрузки. Детали:" -#: backend/game.cpp:415 +#: backend/game.cpp:489 msgid "Could not create BOSS folder for game. Details:" msgstr "Не удалось создать папку BOSS для игры. Детали:" @@ -50,21 +84,9 @@ msgstr "" msgid "Unable to open \"%1%\" for CRC calculation." msgstr "Не удается открыть \"%1%\" для подсчета CRC." -#: backend/helpers.cpp:302 -msgid "Could not create pipe for process." -msgstr "Невозможно создать канал для процесса." - -#: backend/helpers.cpp:335 -msgid "Could not create process." -msgstr "Невозможно создать процесс." - -#: backend/helpers.cpp:346 -msgid "Could not get process exit code." -msgstr "Не удалось получить код выхода процесса." - -#: backend/helpers.cpp:353 -msgid "Could not read process output." -msgstr "Не удалось прочесть выходной поток процесса." +#: backend/helpers.cpp:259 +msgid "None Specified" +msgstr "Не определено" #: backend/metadata.cpp:142 msgid "Failed to parse condition \"%1%\": %2%" @@ -74,436 +96,405 @@ msgstr "Не удалось обработать выражение \"%1%\": %2% msgid "Failed to parse condition \"%1%\"." msgstr "Не удалось обработать выражение \"%1%\"." +#: backend/metadata.cpp:708 backend/metadata.cpp:719 +msgid "This plugin requires \"%1%\" to be installed, but it is missing." +msgstr "Этот плагин требует установленного плагина \"%1%\", но он отсутствует." + +#: backend/metadata.cpp:712 +msgid "This plugin requires \"%1%\" to be active, but it is inactive." +msgstr "Этот плагин требует подключенного плагина \"%1%\", но он не подключен." + +#: backend/metadata.cpp:725 +msgid "This plugin is incompatible with \"%1%\", but both are present." +msgstr "Этот плагин несовместим с \"%1%\", но они оба присутствуют." + #: backend/network.cpp:75 msgid "Git operation failed. Error: %1%" msgstr "Не удалась операция с Git. Ошибка: %1%" -#: backend/network.cpp:338 +#: backend/network.cpp:313 msgid "Masterlist revision" msgstr "Версия мастерлиста" -#: gui/editor.cpp:37 -msgid "Note" -msgstr "Примечание" +#: backend/network.cpp:313 +msgid "Rolled back to the previous revision." +msgstr "Выполнен откат к предыдущей версии." -#: gui/editor.cpp:38 -msgid "Warning" -msgstr "Предупреждение" - -#: gui/editor.cpp:39 -msgid "Error" -msgstr "Ошибка" - -#: gui/editor.cpp:43 -msgid "Add" -msgstr "Добавить" - -#: gui/editor.cpp:44 -msgid "Remove" -msgstr "Удалить" - -#: gui/editor.cpp:48 -msgid "Type" -msgstr "Тип" - -#: gui/editor.cpp:49 -msgid "Content" -msgstr "Содержимое" - -#: gui/editor.cpp:50 gui/editor.cpp:155 gui/editor.cpp:159 gui/editor.cpp:163 -#: gui/editor.cpp:167 -msgid "Condition" -msgstr "Выражение" - -#: gui/editor.cpp:51 gui/editor.cpp:990 -msgid "Language" -msgstr "Язык" - -#: gui/editor.cpp:125 -msgid "Enable User Changes" -msgstr "Включить пользовательские правки" - -#: gui/editor.cpp:127 gui/editor.cpp:375 -msgid "Add File" -msgstr "Добавить файл" - -#: gui/editor.cpp:128 gui/editor.cpp:376 -msgid "Edit File" -msgstr "Править файл" - -#: gui/editor.cpp:129 gui/editor.cpp:377 -msgid "Remove File" -msgstr "Удалить файл" - -#: gui/editor.cpp:130 -msgid "Save Changes" -msgstr "Сохранить изменения" - -#: gui/editor.cpp:131 -msgid "Cancel" -msgstr "Отмена" - -#: gui/editor.cpp:132 -msgid "Copy Metadata As Text" -msgstr "Копировать метаданные как текст" - -#: gui/editor.cpp:143 -msgid "Requirements" -msgstr "Требования" - -#: gui/editor.cpp:144 -msgid "Incompatibilities" -msgstr "Несовместимости" - -#: gui/editor.cpp:145 -msgid "Load After" -msgstr "Грузить после" - -#: gui/editor.cpp:146 -msgid "Messages" -msgstr "Сообщения" - -#: gui/editor.cpp:147 -msgid "Bash Tags" -msgstr "Bash-теги" - -#: gui/editor.cpp:148 -msgid "Dirty Info" -msgstr "Инфо. о \"грязных\" правках" - -#: gui/editor.cpp:151 -msgid "Plugins" -msgstr "Плагины" - -#: gui/editor.cpp:153 gui/editor.cpp:157 gui/editor.cpp:161 -msgid "Filename" -msgstr "Имя файла" - -#: gui/editor.cpp:154 gui/editor.cpp:158 gui/editor.cpp:162 -msgid "Display Name" -msgstr "Отображаемое имя" - -#: gui/editor.cpp:165 -msgid "Add/Remove" -msgstr "Добавить/удалить" - -#: gui/editor.cpp:166 -msgid "Bash Tag" -msgstr "Bash-тег" - -#: gui/editor.cpp:169 -msgid "CRC" +#: gui/editor.cpp:158 gui/editor.cpp:318 gui/editor.cpp:456 +msgid "" +"Please submit any edits made for reasons other than personal preference to " +"the BOSS team so that they may be included in the masterlist." msgstr "" +"Пожалуйста, сообщайте команде BOSS о любых сделанных изменениях (кроме " +"личных предпочтений), для того, чтобы эти изменения могли быть внесены в " +"мастерлист." -#: gui/editor.cpp:170 -msgid "ITM Count" -msgstr "Число ITM" +#: gui/editor.cpp:161 +msgid "Show only conflicting plugins." +msgstr "Показать только конфликтующие плагины." -#: gui/editor.cpp:171 -msgid "UDR Count" -msgstr "Число UDR" - -#: gui/editor.cpp:172 -msgid "Deleted Navmesh Count" -msgstr "Число удаленных Navmesh-записей" - -#: gui/editor.cpp:173 -msgid "Cleaning Utility" -msgstr "Утилита для очистки" - -#: gui/editor.cpp:217 -msgid "Priority: " -msgstr "Приоритет: " - -#: gui/editor.cpp:379 -msgid "Add Plugin" -msgstr "Добавить плагин" - -#: gui/editor.cpp:380 -msgid "Edit Plugin" -msgstr "Править плагин" - -#: gui/editor.cpp:381 +#: gui/editor.cpp:167 gui/editor.cpp:832 msgid "Remove Plugin" msgstr "Удалить плагин" -#: gui/editor.cpp:383 +#: gui/editor.cpp:170 +msgid "Plugin" +msgstr "Плагин" + +#: gui/editor.cpp:171 +msgid "Priority" +msgstr "Приоритет" + +#: gui/editor.cpp:173 gui/editor.cpp:510 gui/editor.cpp:514 gui/editor.cpp:518 +msgid "Filename" +msgstr "Имя файла" + +#: gui/editor.cpp:174 gui/editor.cpp:511 gui/editor.cpp:515 gui/editor.cpp:519 +msgid "Display Name" +msgstr "Отображаемое имя" + +#: gui/editor.cpp:175 gui/editor.cpp:512 gui/editor.cpp:516 gui/editor.cpp:520 +#: gui/editor.cpp:524 gui/misc.cpp:36 +msgid "Condition" +msgstr "Выражение" + +#: gui/editor.cpp:203 gui/editor.cpp:581 +msgid "Priority: " +msgstr "Приоритет: " + +#: gui/editor.cpp:207 gui/editor.cpp:502 +msgid "Load After" +msgstr "Грузить после" + +#: gui/editor.cpp:481 +msgid "Enable User Changes" +msgstr "Включить пользовательские правки" + +#: gui/editor.cpp:483 gui/editor.cpp:826 +msgid "Add File" +msgstr "Добавить файл" + +#: gui/editor.cpp:484 gui/editor.cpp:827 +msgid "Edit File" +msgstr "Править файл" + +#: gui/editor.cpp:485 gui/editor.cpp:828 +msgid "Remove File" +msgstr "Удалить файл" + +#: gui/editor.cpp:486 +msgid "Save Changes" +msgstr "Сохранить изменения" + +#: gui/editor.cpp:487 +msgid "Cancel" +msgstr "Отмена" + +#: gui/editor.cpp:500 +msgid "Requirements" +msgstr "Требования" + +#: gui/editor.cpp:501 +msgid "Incompatibilities" +msgstr "Несовместимости" + +#: gui/editor.cpp:503 +msgid "Messages" +msgstr "Сообщения" + +#: gui/editor.cpp:504 +msgid "Bash Tags" +msgstr "Bash-теги" + +#: gui/editor.cpp:505 +msgid "Dirty Info" +msgstr "Инфо. о \"грязных\" правках" + +#: gui/editor.cpp:508 +msgid "Plugins" +msgstr "Плагины" + +#: gui/editor.cpp:522 +msgid "Add/Remove" +msgstr "Добавить/удалить" + +#: gui/editor.cpp:523 +msgid "Bash Tag" +msgstr "Bash-тег" + +#: gui/editor.cpp:526 +msgid "CRC" +msgstr "" + +#: gui/editor.cpp:527 +msgid "ITM Count" +msgstr "Число ITM" + +#: gui/editor.cpp:528 +msgid "UDR Count" +msgstr "Число UDR" + +#: gui/editor.cpp:529 +msgid "Deleted Navmesh Count" +msgstr "Число удаленных Navmesh-записей" + +#: gui/editor.cpp:530 +msgid "Cleaning Utility" +msgstr "Утилита для очистки" + +#: gui/editor.cpp:533 +msgid "Copy Name" +msgstr "Скопировать имя" + +#: gui/editor.cpp:534 +msgid "Copy Metadata As Text" +msgstr "Копировать метаданные как текст" + +#: gui/editor.cpp:535 +msgid "Remove All User-Added Metadata" +msgstr "Удалить все пользовательские метаданные" + +#: gui/editor.cpp:798 +msgid "" +"Are you sure you want to clear all existing user-added metadata from this " +"plugin?" +msgstr "" +"Вы уверены, что хотите очистить все существующие пользовательские метаданные " +"для этого плагина?" + +#: gui/editor.cpp:799 gui/main.cpp:1060 +msgid "BOSS: Warning" +msgstr "BOSS: Предупреждение" + +#: gui/editor.cpp:830 +msgid "Add Plugin" +msgstr "Добавить плагин" + +#: gui/editor.cpp:831 +msgid "Edit Plugin" +msgstr "Править плагин" + +#: gui/editor.cpp:834 msgid "Add Message" msgstr "Добавить сообщение" -#: gui/editor.cpp:384 +#: gui/editor.cpp:835 msgid "Edit Message" msgstr "Править сообщение" -#: gui/editor.cpp:385 +#: gui/editor.cpp:836 msgid "Remove Message" msgstr "Удалить сообщение" -#: gui/editor.cpp:387 +#: gui/editor.cpp:838 msgid "Add Bash Tag" msgstr "Добавить Bash-тег" -#: gui/editor.cpp:388 +#: gui/editor.cpp:839 msgid "Edit Bash Tag" msgstr "Править Bash-тег" -#: gui/editor.cpp:389 +#: gui/editor.cpp:840 msgid "Remove Bash Tag" msgstr "Удалить Bash-тег" -#: gui/editor.cpp:391 +#: gui/editor.cpp:842 msgid "Add Dirty Info" msgstr "Добавить инфо. о \"грязных\" правках" -#: gui/editor.cpp:392 +#: gui/editor.cpp:843 msgid "Edit Dirty Info" msgstr "Править инфо. о \"грязных\" правках" -#: gui/editor.cpp:393 +#: gui/editor.cpp:844 msgid "Remove Dirty Info" msgstr "Удалить инфо. о \"грязных\" правках" -#: gui/editor.cpp:411 +#: gui/editor.cpp:862 msgid "BOSS: Add File/Plugin" msgstr "BOSS: Добавить файл/плагин" -#: gui/editor.cpp:433 +#: gui/editor.cpp:884 msgid "BOSS: Add Message" msgstr "BOSS: Добавить сообщение" -#: gui/editor.cpp:443 +#: gui/editor.cpp:894 msgid "Error: No content specified. Row will not be added." msgstr "Ошибка: Не указано содержимое. Строка не будет добавлена." -#: gui/editor.cpp:444 gui/editor.cpp:526 gui/editor.cpp:1122 -#: gui/editor.cpp:1137 gui/main.cpp:164 gui/main.cpp:181 gui/main.cpp:194 -#: gui/main.cpp:273 gui/main.cpp:283 gui/main.cpp:296 gui/main.cpp:304 -#: gui/main.cpp:335 gui/main.cpp:352 gui/main.cpp:820 gui/main.cpp:873 -#: gui/main.cpp:893 gui/main.cpp:972 gui/main.cpp:1009 gui/main.cpp:1040 -#: gui/main.cpp:1060 gui/main.cpp:1075 gui/main.cpp:1182 gui/main.cpp:1227 -#: gui/settings.cpp:287 gui/settings.cpp:299 gui/settings.cpp:307 -#: gui/settings.cpp:350 gui/settings.cpp:358 gui/settings.cpp:366 +#: gui/editor.cpp:895 gui/editor.cpp:977 gui/main.cpp:167 gui/main.cpp:184 +#: gui/main.cpp:199 gui/main.cpp:280 gui/main.cpp:290 gui/main.cpp:303 +#: gui/main.cpp:311 gui/main.cpp:342 gui/main.cpp:359 gui/main.cpp:524 +#: gui/main.cpp:545 gui/main.cpp:561 gui/main.cpp:932 gui/main.cpp:984 +#: gui/main.cpp:1006 gui/main.cpp:1071 gui/main.cpp:1108 gui/misc.cpp:312 +#: gui/misc.cpp:327 gui/settings.cpp:287 gui/settings.cpp:299 +#: gui/settings.cpp:307 gui/settings.cpp:351 gui/settings.cpp:359 +#: gui/settings.cpp:367 msgid "BOSS: Error" msgstr "BOSS: Ошибка" -#: gui/editor.cpp:454 +#: gui/editor.cpp:905 msgid "BOSS: Add Tag" msgstr "BOSS: Добавить тег" -#: gui/editor.cpp:468 +#: gui/editor.cpp:919 msgid "BOSS: Add Dirty Info" msgstr "BOSS: Добавить инфо. о \"грязных\" правках" -#: gui/editor.cpp:487 +#: gui/editor.cpp:938 msgid "BOSS: Edit File/Plugin" msgstr "BOSS: Править файл/плагин" -#: gui/editor.cpp:511 +#: gui/editor.cpp:962 msgid "BOSS: Edit Message" msgstr "BOSS: Править сообщение" -#: gui/editor.cpp:525 +#: gui/editor.cpp:976 msgid "Error: No content specified. Row will not be edited." msgstr "Ошибка: Не указано содержимое. Строка не будет добавлена." -#: gui/editor.cpp:535 +#: gui/editor.cpp:986 msgid "BOSS: Edit Tag" msgstr "BOSS: Править тег" -#: gui/editor.cpp:557 +#: gui/editor.cpp:1008 msgid "BOSS: Edit Dirty Info" msgstr "BOSS: Править инфо. о \"грязных\" правках" -#: gui/editor.cpp:932 -msgid "Filename (required):" -msgstr "Имя файла (требуется):" - -#: gui/editor.cpp:935 -msgid "Displayed Name:" -msgstr "Отображаемое имя:" - -#: gui/editor.cpp:938 gui/editor.cpp:1016 gui/editor.cpp:1172 -msgid "Condition:" -msgstr "Выражение:" - -#: gui/editor.cpp:986 -msgid "Add Content" -msgstr "Добавить содержимое" - -#: gui/editor.cpp:987 -msgid "Edit Content" -msgstr "Править содержимое" - -#: gui/editor.cpp:988 -msgid "Remove Content" -msgstr "Удалить содержимое" - -#: gui/editor.cpp:991 -msgid "String" -msgstr "Строка" - -#: gui/editor.cpp:1013 gui/settings.cpp:425 -msgid "Type:" -msgstr "Тип:" - -#: gui/editor.cpp:1028 gui/settings.cpp:101 -msgid "Language:" -msgstr "Язык:" - -#: gui/editor.cpp:1031 -msgid "Content:" -msgstr "Содержимое:" - -#: gui/editor.cpp:1121 gui/editor.cpp:1136 -msgid "Error: No content row selected." -msgstr "Ошибка: Не выбрана строка с содержимым." - -#: gui/editor.cpp:1166 -msgid "Add/Remove:" -msgstr "Добавить/Удалить:" - -#: gui/editor.cpp:1169 gui/settings.cpp:422 -msgid "Name (required):" -msgstr "Имя (требуется):" - -#: gui/editor.cpp:1234 -msgid "CRC (required):" -msgstr "CRC (требуется):" - -#: gui/editor.cpp:1237 -msgid "ITM Count:" -msgstr "Число ITM:" - -#: gui/editor.cpp:1240 -msgid "UDR Count:" -msgstr "Число UDR:" - -#: gui/editor.cpp:1243 -msgid "Deleted Navmesh Count:" -msgstr "Число удаленных Navmesh-записей:" - -#: gui/editor.cpp:1246 -msgid "Cleaning Utility (required):" -msgstr "Утилита для очистки (требуется):" - -#: gui/ids.cpp:31 -msgid "None Specified" -msgstr "Не определено" - -#: gui/main.cpp:118 +#: gui/main.cpp:119 msgid "Masterlist update failed. Details: %1%" msgstr "Проверка обновлений мастерлиста не удалась. Детали: %1%" -#: gui/main.cpp:134 +#: gui/main.cpp:137 msgid "Masterlist parsing failed. Details: %1%" msgstr "Обработка мастерлиста не удалась. Детали: %1%" -#: gui/main.cpp:142 +#: gui/main.cpp:145 msgid "Unknown" msgstr "Неизвестно" -#: gui/main.cpp:144 +#: gui/main.cpp:147 msgid "No masterlist" msgstr "Нет мастерлиста" -#: gui/main.cpp:163 +#: gui/main.cpp:166 msgid "Error: BOSS is already running. This instance will now quit." msgstr "Ошибка: BOSS GUI уже запущен. Этот экземпляр будет закрыт." -#: gui/main.cpp:180 +#: gui/main.cpp:183 msgid "Error: Could not create local app data BOSS folder." msgstr "Ошибка: Невозможно создать локальную папку данных BOSS." -#: gui/main.cpp:193 +#: gui/main.cpp:198 msgid "Error: Settings parsing failed. %1%" msgstr "Ошибка: Обработка настроек не удалась. %1%" -#: gui/main.cpp:272 +#: gui/main.cpp:279 msgid "Error: Could not apply translation." msgstr "Ошибка: Невозможно применить перевод." -#: gui/main.cpp:282 +#: gui/main.cpp:289 msgid "Error: The selected language is not available on this system." msgstr "Ошибка: Выбранный язык не доступен на этой системе." -#: gui/main.cpp:295 gui/main.cpp:351 gui/main.cpp:1039 +#: gui/main.cpp:302 gui/main.cpp:358 gui/main.cpp:523 msgid "Error: Game-specific settings could not be initialised. %1%" msgstr "" "Ошибка: Специфические для игры настройки не могут быть инициализированы. %1%" -#: gui/main.cpp:303 +#: gui/main.cpp:310 msgid "Error: Games' settings parsing failed. %1%" msgstr "Ошибка: Обработка настроек игры не удалась. %1%" -#: gui/main.cpp:334 +#: gui/main.cpp:341 msgid "Error: None of the supported games were detected." msgstr "Ошибка: Не найдено ни одной поддерживаемой игры." -#: gui/main.cpp:379 +#: gui/main.cpp:386 msgid "Edit Metadata" msgstr "Править метаданные" -#: gui/main.cpp:380 +#: gui/main.cpp:387 msgid "Sort Plugins" msgstr "Сортировать плагины" -#: gui/main.cpp:381 +#: gui/main.cpp:388 msgid "View Last Report" msgstr "Просмотр последнего отчета" -#: gui/main.cpp:385 +#: gui/main.cpp:392 msgid "&View Last Report" msgstr "&Просмотр последнего отчета" -#: gui/main.cpp:386 +#: gui/main.cpp:393 msgid "View &Debug Log" msgstr "Просмотр лога &отладки" -#: gui/main.cpp:387 +#: gui/main.cpp:394 msgid "&Sort Plugins" msgstr "&Сортировать плагины" -#: gui/main.cpp:388 +#: gui/main.cpp:395 msgid "&Redate Plugins" msgstr "&Редатировать плагины" -#: gui/main.cpp:391 +#: gui/main.cpp:398 msgid "&File" msgstr "&Файл" -#: gui/main.cpp:393 +#: gui/main.cpp:400 msgid "&Metadata..." msgstr "&Метаданные..." -#: gui/main.cpp:394 +#: gui/main.cpp:401 msgid "&Settings..." msgstr "&Настройки..." -#: gui/main.cpp:395 +#: gui/main.cpp:402 msgid "&Edit" msgstr "&Правка" -#: gui/main.cpp:407 +#: gui/main.cpp:414 msgid "&Game" msgstr "&Игра" -#: gui/main.cpp:412 +#: gui/main.cpp:419 msgid "&Help" msgstr "&Справка" -#: gui/main.cpp:496 gui/main.cpp:851 +#: gui/main.cpp:499 gui/main.cpp:948 +msgid "BOSS: Report Viewer" +msgstr "BOSS: Средство просмотра отчетов" + +#: gui/main.cpp:507 +msgid "BOSS: Settings" +msgstr "BOSS: Настройки" + +#: gui/main.cpp:544 gui/main.cpp:560 +msgid "Error: \"%1%\" cannot be found." +msgstr "Ошибка: \"%1%\" не найден." + +#: gui/main.cpp:572 +msgid "" +"Load order optimisation for Oblivion, Skyrim, Fallout 3 and Fallout: New " +"Vegas." +msgstr "" +"Оптимизация порядка загрузки для Oblivion, Skyrim, Fallout 3 и Fallout: New " +"Vegas." + +#: gui/main.cpp:603 gui/main.cpp:813 gui/main.cpp:960 msgid "BOSS: Working..." msgstr "BOSS: Работает..." -#: gui/main.cpp:496 gui/main.cpp:851 +#: gui/main.cpp:603 gui/main.cpp:960 msgid "BOSS working..." msgstr "BOSS работает..." -#: gui/main.cpp:547 +#: gui/main.cpp:660 msgid "Userlist parsing failed. Details: %1%" msgstr "Обработка пользовательского списка не удалась. Детали: %1%" -#: gui/main.cpp:584 +#: gui/main.cpp:701 msgid "" "A global message contains a condition that could not be evaluated. Details: " "%1%" @@ -511,31 +502,27 @@ msgstr "" "Глобальное сообщение включает выражение, которое не может быть оценено. " "Детали: %1%" -#: gui/main.cpp:615 +#: gui/main.cpp:734 msgid "\"%1%\" contains a condition that could not be evaluated. Details: %2%" msgstr "\"%1%\" включает выражение, которое не может быть оценено. Детали: %2%" -#: gui/main.cpp:627 -msgid "\"%1%\" is incompatible with \"%2%\" and is present." -msgstr "\"%1%\" несовместим с \"%2%\" и присутствует." +#: gui/main.cpp:753 +msgid "Building plugin graph..." +msgstr "Построение графика плагина..." -#: gui/main.cpp:630 -msgid "\"%1%\" is required by \"%2%\" but is missing." -msgstr "\"%1%\" требуется для \"%2%\", но отсутствует." - -#: gui/main.cpp:670 -msgid "Failed to generate graph image. Details: %1%" -msgstr "Не удалось сгенерировать изображение графика. Детали: %1%" - -#: gui/main.cpp:687 +#: gui/main.cpp:798 msgid "BOSS: Calculated Load Order" msgstr "BOSS: Рассчитанный порядок загрузки" -#: gui/main.cpp:765 +#: gui/main.cpp:813 +msgid "Recalculating load order..." +msgstr "Пересчет порядка загрузки..." + +#: gui/main.cpp:870 msgid "Failed to set the load order. Details: %1%" msgstr "Не удалось установить порядок загрузки. Детали: %1%" -#: gui/main.cpp:769 +#: gui/main.cpp:880 msgid "" "The load order displayed in the Details tab was not applied as sorting was " "canceled." @@ -543,31 +530,27 @@ msgstr "" "Порядок загрузки, показанный на вкладке Детали не был применен, так как " "сортировка была отменена." -#: gui/main.cpp:778 +#: gui/main.cpp:885 msgid "Failed to calculate the load order. Details: %1%" msgstr "Не удалось рассчитать порядок загрузки. Детали: %1%" -#: gui/main.cpp:819 +#: gui/main.cpp:931 msgid "Error: %1%" msgstr "Ошибка: %1%" -#: gui/main.cpp:839 gui/main.cpp:954 -msgid "BOSS: Report Viewer" -msgstr "BOSS: Средство просмотра отчетов" - -#: gui/main.cpp:872 +#: gui/main.cpp:983 msgid "Error: Masterlist parsing failed. %1%" msgstr "Ошибка: Обработка мастерлиста не удалась. %1%" -#: gui/main.cpp:892 +#: gui/main.cpp:1005 msgid "Error: Userlist parsing failed. %1%" msgstr "Ошибка: Обработка пользовательского списка не удалась. %1%" -#: gui/main.cpp:939 +#: gui/main.cpp:1051 msgid "BOSS: Metadata Editor" msgstr "BOSS: Редактор метаданных" -#: gui/main.cpp:961 +#: gui/main.cpp:1060 msgid "" "This feature is provided so that modders using the Creation Kit may set the " "load order it uses. A side-effect is that any subscribed Steam Workshop mods " @@ -578,153 +561,191 @@ msgstr "" "Обратная сторона этого то, что любые, подписанные в Steam Workshop моды, " "могут быть заново загружены с помощью Steam. Вы желаете продолжить?" -#: gui/main.cpp:961 -msgid "BOSS: Warning" -msgstr "BOSS: Предупреждение" - -#: gui/main.cpp:971 +#: gui/main.cpp:1070 msgid "Error: Failed to get load order. %1%" msgstr "Ошибка: Не удалось получить порядок загрузки. %1%" -#: gui/main.cpp:1008 +#: gui/main.cpp:1107 msgid "Error: Failed to set plugin timestamps. %1%" msgstr "Ошибка: Не удалось присвоить временные метки плагинам. %1%" -#: gui/main.cpp:1015 +#: gui/main.cpp:1114 msgid "Plugins were successfully redated." msgstr "Плагины были успешно редатированы." -#: gui/main.cpp:1016 +#: gui/main.cpp:1115 msgid "BOSS: Plugin Redate" msgstr "BOSS: Редатирование плагинов" -#: gui/main.cpp:1024 -msgid "BOSS: Settings" -msgstr "BOSS: Настройки" +#: gui/misc.cpp:34 +msgid "Type" +msgstr "Тип" -#: gui/main.cpp:1059 gui/main.cpp:1074 -msgid "Error: \"%1%\" cannot be found." -msgstr "Ошибка: \"%1%\" не найден." +#: gui/misc.cpp:35 +msgid "Content" +msgstr "Содержимое" -#: gui/main.cpp:1086 -msgid "" -"A load order optimisation tool for games using the Elder Scrolls Plugin/" -"Master system." -msgstr "" -"Инструмент для оптимизации порядка загрузки, для игр, использующих систему " -"плагин/мастер Elder Scrolls." +#: gui/misc.cpp:37 gui/misc.cpp:180 +msgid "Language" +msgstr "Язык" -#: gui/main.cpp:1110 -msgid "Up" -msgstr "Выше" +#: gui/misc.cpp:116 +msgid "Filename (required):" +msgstr "Имя файла (требуется):" -#: gui/main.cpp:1111 -msgid "Down" -msgstr "Ниже" +#: gui/misc.cpp:119 +msgid "Displayed Name:" +msgstr "Отображаемое имя:" -#: gui/main.cpp:1114 -msgid "Load Order" -msgstr "Порядок загрузки" +#: gui/misc.cpp:122 gui/misc.cpp:206 gui/misc.cpp:362 +msgid "Condition:" +msgstr "Выражение:" -#: gui/main.cpp:1136 -msgid "" -"Please submit any alterations made for reasons other than user preference \n" -"to the BOSS team so that they may include the changes in the masterlist." -msgstr "" -"Пожалуйста, сообщайте команде BOSS о любых изменениях, сделанных вами в " -"порядке загрузки, по любым причинам, кроме \n" -"личных предпочтений, для того, чтобы они могли включить эти изменения в " -"мастерлист." +#: gui/misc.cpp:176 +msgid "Add Content" +msgstr "Добавить содержимое" -#: gui/main.cpp:1181 gui/main.cpp:1226 -msgid "Error: Cannot load \"%1%\" before \"%2%\"." -msgstr "Ошибка: Невозможно загрузить \"%1%\" перед \"%2%\"." +#: gui/misc.cpp:177 +msgid "Edit Content" +msgstr "Править содержимое" -#: gui/settings.cpp:40 +#: gui/misc.cpp:178 +msgid "Remove Content" +msgstr "Удалить содержимое" + +#: gui/misc.cpp:181 +msgid "String" +msgstr "Строка" + +#: gui/misc.cpp:203 gui/settings.cpp:428 +msgid "Type:" +msgstr "Тип:" + +#: gui/misc.cpp:218 gui/settings.cpp:108 +msgid "Language:" +msgstr "Язык:" + +#: gui/misc.cpp:221 +msgid "Content:" +msgstr "Содержимое:" + +#: gui/misc.cpp:311 gui/misc.cpp:326 +msgid "Error: No content row selected." +msgstr "Ошибка: Не выбрана строка с содержимым." + +#: gui/misc.cpp:356 +msgid "Add/Remove:" +msgstr "Добавить/Удалить:" + +#: gui/misc.cpp:359 gui/settings.cpp:425 +msgid "Name (required):" +msgstr "Имя (требуется):" + +#: gui/misc.cpp:424 +msgid "CRC (required):" +msgstr "CRC (требуется):" + +#: gui/misc.cpp:427 +msgid "ITM Count:" +msgstr "Число ITM:" + +#: gui/misc.cpp:430 +msgid "UDR Count:" +msgstr "Число UDR:" + +#: gui/misc.cpp:433 +msgid "Deleted Navmesh Count:" +msgstr "Число удаленных Navmesh-записей:" + +#: gui/misc.cpp:436 +msgid "Cleaning Utility (required):" +msgstr "Утилита для очистки (требуется):" + +#: gui/settings.cpp:41 msgid "None" msgstr "Нет" -#: gui/settings.cpp:41 +#: gui/settings.cpp:42 msgid "Low" msgstr "Низкая" -#: gui/settings.cpp:42 +#: gui/settings.cpp:43 msgid "Medium" msgstr "Средняя" -#: gui/settings.cpp:43 +#: gui/settings.cpp:44 msgid "High" msgstr "Высокая" -#: gui/settings.cpp:47 +#: gui/settings.cpp:48 msgid "Autodetect" msgstr "Автообнаружение" -#: gui/settings.cpp:59 +#: gui/settings.cpp:66 msgid "Add Game" msgstr "Добавить игру" -#: gui/settings.cpp:60 +#: gui/settings.cpp:67 msgid "Edit Game" msgstr "Редактировать игру" -#: gui/settings.cpp:61 +#: gui/settings.cpp:68 msgid "Remove Game" msgstr "Удалить игру" -#: gui/settings.cpp:63 +#: gui/settings.cpp:70 msgid "Update masterlist before sorting." msgstr "Обновить мастерлист перед сортировкой." -#: gui/settings.cpp:64 +#: gui/settings.cpp:71 msgid "View reports externally in default browser." msgstr "Просмотреть отчет во внешнем браузере по умолчанию." -#: gui/settings.cpp:65 -msgid "Generate and display plugin graph images." -msgstr "Сгенерировать и отобразить изображения графиков плагинов" - -#: gui/settings.cpp:68 +#: gui/settings.cpp:74 msgid "Name" msgstr "Имя" -#: gui/settings.cpp:69 +#: gui/settings.cpp:75 msgid "Base Game Type" msgstr "Базовый тип игры" -#: gui/settings.cpp:70 +#: gui/settings.cpp:76 msgid "BOSS Folder Name" msgstr "Имя папки BOSS" -#: gui/settings.cpp:71 +#: gui/settings.cpp:77 msgid "Master File" msgstr "Мастерфайл" -#: gui/settings.cpp:72 -msgid "Online Masterlist URL" -msgstr "URL онлайн-мастерлиста" +#: gui/settings.cpp:78 +msgid "Masterlist Repository URL" +msgstr "URL хранилища мастерлиста" -#: gui/settings.cpp:73 +#: gui/settings.cpp:79 +msgid "Masterlist Repository Branch" +msgstr "Ветка хранилища мастерлиста" + +#: gui/settings.cpp:80 msgid "Install Path" msgstr "Путь установки" -#: gui/settings.cpp:74 +#: gui/settings.cpp:81 msgid "Install Path Registry Key" msgstr "Ключ реестра для пути установки" -#: gui/settings.cpp:98 +#: gui/settings.cpp:105 msgid "Default Game:" msgstr "Игра по умолчанию:" -#: gui/settings.cpp:104 +#: gui/settings.cpp:111 msgid "Debug Verbosity:" msgstr "Детализация отладки:" -#: gui/settings.cpp:126 +#: gui/settings.cpp:130 msgid "Language and game changes will be applied after BOSS is restarted." msgstr "Установки языка и игры будут применены после перезапуска BOSS." -#: gui/settings.cpp:139 +#: gui/settings.cpp:143 msgid "The output is logged to the BOSSDebugLog.txt file." msgstr "Выходной поток записан в файл BOSSDebugLog.txt" @@ -732,7 +753,7 @@ msgstr "Выходной поток записан в файл BOSSDebugLog.txt" msgid "BOSS: Add Game" msgstr "BOSS: Добавить игру" -#: gui/settings.cpp:286 gui/settings.cpp:365 +#: gui/settings.cpp:286 gui/settings.cpp:366 msgid "Error: A path and/or registry key is required. Row will not be added." msgstr "Ошибка: Требуется путь и/или ключ реестра. Строка не будет добавлена." @@ -747,127 +768,131 @@ msgid "" msgstr "" "Ошибка: Игра с этим именем папки уже определена. Строка не будет добавлена." -#: gui/settings.cpp:328 +#: gui/settings.cpp:329 msgid "BOSS: Edit Game" msgstr "BOSS: Править игру" -#: gui/settings.cpp:349 +#: gui/settings.cpp:350 msgid "Error: Name is required. Row will not be added." msgstr "Ошибка: Требуется имя. Строка не будет добавлена." -#: gui/settings.cpp:357 +#: gui/settings.cpp:358 msgid "Error: Folder is required. Row will not be added." msgstr "Ошибка: Требуется папка. Строка не будет добавлена." -#: gui/settings.cpp:428 +#: gui/settings.cpp:431 msgid "BOSS Folder Name (required):" msgstr "BOSS: Имя папки (требуется):" -#: gui/settings.cpp:431 +#: gui/settings.cpp:434 msgid "Master File:" msgstr "Мастерфайл:" -#: gui/settings.cpp:434 -msgid "Masterlist URL:" -msgstr "URL мастерлиста:" - #: gui/settings.cpp:437 +msgid "Masterlist Repository URL:" +msgstr "URL хранилища мастерлиста:" + +#: gui/settings.cpp:440 +msgid "Masterlist Repository Branch:" +msgstr "Ветка хранилища мастерлиста:" + +#: gui/settings.cpp:443 msgid "Install Path:" msgstr "Путь установки:" -#: gui/settings.cpp:440 +#: gui/settings.cpp:446 msgid "Install Path Registry Key:" msgstr "Ключ реестра для пути установки:" -#: backend/generators.h:80 +#: backend/generators.h:56 msgid "Note:" msgstr "Примечание:" -#: backend/generators.h:82 +#: backend/generators.h:58 msgid "Bash Tag Suggestion(s):" msgstr "Bash-теги:" -#: backend/generators.h:84 +#: backend/generators.h:60 msgid "Warning:" msgstr "Предупреждение:" -#: backend/generators.h:86 +#: backend/generators.h:62 msgid "Error:" msgstr "Ошибка:" -#: backend/generators.h:159 +#: backend/generators.h:127 msgid "BOSS Report" msgstr "Отчет BOSS" -#: backend/generators.h:191 backend/generators.h:262 +#: backend/generators.h:153 backend/generators.h:216 msgid "Summary" msgstr "Сводка" -#: backend/generators.h:197 +#: backend/generators.h:159 msgid "Details" msgstr "Детали" -#: backend/generators.h:204 -msgid "Graph" -msgstr "График" - -#: backend/generators.h:211 +#: backend/generators.h:165 msgid "Filters" msgstr "Фильтры" -#: backend/generators.h:275 +#: backend/generators.h:229 msgid "BOSS Version" msgstr "Версия BOSS" -#: backend/generators.h:284 +#: backend/generators.h:238 msgid "Masterlist Version" msgstr "Версия мастерлиста" -#: backend/generators.h:293 +#: backend/generators.h:247 msgid "Masterlist Updating" msgstr "Обновление мастерлиста" -#: backend/generators.h:297 +#: backend/generators.h:251 msgid "Enabled" msgstr "Включено" -#: backend/generators.h:299 +#: backend/generators.h:253 msgid "Disabled" msgstr "Отключено" -#: backend/generators.h:306 -msgid "No change in details since last run." -msgstr "Никаких изменений в деталях с последнего запуска." +#: backend/generators.h:262 +msgid "" +"There have been no changes in the Details tab since BOSS was last run for " +"this game." +msgstr "" +"Никаких изменений во вкладке Детали, со времени последнего запуска BOSS для " +"этой игры." -#: backend/generators.h:316 +#: backend/generators.h:272 msgid "General Messages" msgstr "Сообщения общего назначения" -#: backend/generators.h:326 +#: backend/generators.h:282 msgid "Total Number of Messages" msgstr "Общее число сообщений" -#: backend/generators.h:335 +#: backend/generators.h:291 msgid "Number of Warnings" msgstr "Количество предупреждений" -#: backend/generators.h:344 +#: backend/generators.h:300 msgid "Number of Errors" msgstr "Количество ошибок" -#: backend/generators.h:385 +#: backend/generators.h:341 msgid "Version:" msgstr "Версия:" -#: backend/generators.h:405 +#: backend/generators.h:361 msgid "Add:" msgstr "Добавить:" -#: backend/generators.h:411 +#: backend/generators.h:367 msgid "Remove:" msgstr "Удалить:" -#: backend/generators.h:419 +#: backend/generators.h:375 msgid "" "Contains %1% ITM records, %2% UDR records and %3% deleted navmeshes. Clean " "with %4%." @@ -875,98 +900,166 @@ msgstr "" "Содержит %1% ITM записей, %2% UDR записей и %3% удаленных navmesh-записей. " "Очистить с помощью %1%." -#: backend/generators.h:421 +#: backend/generators.h:377 msgid "Clean with %1%." msgstr "Очистить с помощью %1%." -#: backend/generators.h:425 +#: backend/generators.h:381 msgid "Contains %1% UDR records and %2% deleted navmeshes. Clean with %3%." msgstr "" "Содержит %1% ITM записей и %2% удаленных navmesh-записей. Очистить с помощью " "%1%." -#: backend/generators.h:427 +#: backend/generators.h:383 msgid "Contains %1% deleted navmeshes. Clean with %2%." msgstr "Содержит %1% удаленных navmesh-записей. Очистить с помощью %1%." -#: backend/generators.h:429 +#: backend/generators.h:385 msgid "Contains %1% UDR records. Clean with %2%." msgstr "Содержит %1% UDR записей. Очистить с помощью %1%." -#: backend/generators.h:432 +#: backend/generators.h:388 msgid "Contains %1% ITM records and %2% deleted navmeshes. Clean with %3%." msgstr "" "Содержит %1% ITM записей и %2% удаленных navmesh-записей. Очистить с помощью " "%1%." -#: backend/generators.h:434 +#: backend/generators.h:390 msgid "Contains %1% ITM records. Clean with %2%." msgstr "Содержит %1% ITM записей. Очистить с помощью %1%." -#: backend/generators.h:437 +#: backend/generators.h:393 msgid "Contains %1% ITM records and %2% UDR records. Clean with %3%." msgstr "Содержит %1% ITM записей и %2% UDR записей. Очистить с помощью %1%." -#: backend/generators.h:474 +#: backend/generators.h:429 msgid "The BOSS Report requires Javascript to be enabled in order to function." msgstr "Для работы всех функций отчета BOSS требуется включить JavaScript" -#: backend/generators.h:521 +#: backend/generators.h:456 msgid "Hide Version Numbers" msgstr "Скрыть номера версии" -#: backend/generators.h:530 +#: backend/generators.h:465 msgid "Hide CRCs" msgstr "Скрыть CRC" -#: backend/generators.h:539 +#: backend/generators.h:474 msgid "Hide Bash Tag Suggestions" msgstr "Скрыть Bash-теги" -#: backend/generators.h:547 +#: backend/generators.h:482 msgid "Hide Notes" msgstr "Скрыть примечания" -#: backend/generators.h:555 +#: backend/generators.h:490 msgid "Hide 'Do Not Clean' Messages" msgstr "Скрыть сообщения 'Не чистить'" -#: backend/generators.h:563 +#: backend/generators.h:498 msgid "Hide All Plugin Messages" msgstr "Скрыть все сообщения" -#: backend/generators.h:571 +#: backend/generators.h:506 msgid "Hide Messageless Plugins" -msgstr "Скрыть плагины с сообщениями" +msgstr "Скрыть плагины без сообщений" -#: backend/generators.h:581 +#: backend/generators.h:516 msgid "%1% of %2% plugins hidden." msgstr "%1% из %2% плагинов скрыто." -#: backend/generators.h:589 +#: backend/generators.h:524 msgid "%1% of %2% messages hidden." msgstr "%1% из %2% сообщений скрыто." -#: backend/generators.h:631 -msgid "Could not write BOSS report." -msgstr "Не удалось записать отчет BOSS." - -#: backend/parsers.h:466 backend/parsers.h:549 +#: backend/parsers.h:467 backend/parsers.h:550 msgid "Invalid file path:" msgstr "Неверный путь к файлу:" -#: backend/parsers.h:514 +#: backend/parsers.h:515 msgid "Invalid folder path:" msgstr "Неверный путь к папке:" -#: backend/parsers.h:531 +#: backend/parsers.h:532 msgid "Invalid regex string:" msgstr "Неверная строка regex:" -#: backend/parsers.h:626 +#: backend/parsers.h:627 msgid "Expected \"%1%\" at \"%2%\"." msgstr "Ожидалось \"%1%\" на \"%2%\"." +#: gui/misc.h:35 +msgid "Note" +msgstr "Примечание" + +#: gui/misc.h:36 +msgid "Warning" +msgstr "Предупреждение" + +#: gui/misc.h:37 +msgid "Error" +msgstr "Ошибка" + +#: gui/misc.h:41 +msgid "Add" +msgstr "Добавить" + +#: gui/misc.h:42 +msgid "Remove" +msgstr "Удалить" + +#~ msgid "\"%1%\" is required by \"%2%\" but is missing." +#~ msgstr "\"%1%\" требуется для \"%2%\", но отсутствует." + +#~ msgid "Could not create pipe for process." +#~ msgstr "Невозможно создать канал для процесса." + +#~ msgid "Could not create process." +#~ msgstr "Невозможно создать процесс." + +#~ msgid "Could not get process exit code." +#~ msgstr "Не удалось получить код выхода процесса." + +#~ msgid "Could not read process output." +#~ msgstr "Не удалось прочесть выходной поток процесса." + +#~ msgid "Failed to generate graph image. Details: %1%" +#~ msgstr "Не удалось сгенерировать изображение графика. Детали: %1%" + +#~ msgid "" +#~ "A load order optimisation tool for games using the Elder Scrolls Plugin/" +#~ "Master system." +#~ msgstr "" +#~ "Инструмент для оптимизации порядка загрузки, для игр, использующих " +#~ "систему плагин/мастер Elder Scrolls." + +#~ msgid "Up" +#~ msgstr "Выше" + +#~ msgid "Down" +#~ msgstr "Ниже" + +#~ msgid "Load Order" +#~ msgstr "Порядок загрузки" + +#~ msgid "Error: Cannot load \"%1%\" before \"%2%\"." +#~ msgstr "Ошибка: Невозможно загрузить \"%1%\" перед \"%2%\"." + +#~ msgid "Generate and display plugin graph images." +#~ msgstr "Сгенерировать и отобразить изображения графиков плагинов" + +#~ msgid "Online Masterlist URL" +#~ msgstr "URL онлайн-мастерлиста" + +#~ msgid "Graph" +#~ msgstr "График" + +#~ msgid "No change in details since last run." +#~ msgstr "Никаких изменений в деталях с последнего запуска." + +#~ msgid "Could not write BOSS report." +#~ msgstr "Не удалось записать отчет BOSS." + #~ msgid "Name:" #~ msgstr "Имя:" diff --git a/resources/l10n/template.pot b/resources/l10n/template.pot index e636f1a8..c58907dc 100644 --- a/resources/l10n/template.pot +++ b/resources/l10n/template.pot @@ -2,46 +2,72 @@ msgid "" msgstr "" "Project-Id-Version: BOSS v3.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-26 11:41-0000\n" -"PO-Revision-Date: 2013-10-26 11:41-0000\n" +"POT-Creation-Date: 2014-02-18 19:15-0000\n" +"PO-Revision-Date: 2014-02-18 19:15-0000\n" "Last-Translator: \n" "Language-Team: \n" -"Language: English\n" +"Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.5.7\n" +"X-Generator: Poedit 1.6.4\n" "X-Poedit-KeywordsList: translate:1,1t;translate:1c,2,t\n" "X-Poedit-Basepath: ../../src\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SearchPath-0: backend\n" "X-Poedit-SearchPath-1: gui\n" -#: backend/game.cpp:96 +#: backend/game.cpp:98 msgid "Invalid game ID supplied." msgstr "" -#: backend/game.cpp:147 +#: backend/game.cpp:158 msgid "Game path could not be detected." msgstr "" -#: backend/game.cpp:248 backend/game.cpp:308 backend/game.cpp:363 +#: backend/game.cpp:261 backend/game.cpp:342 backend/game.cpp:418 +msgid "" +"libloadorder failed to create a game handle. Details could not be fetched." +msgstr "" + +#: backend/game.cpp:265 backend/game.cpp:346 backend/game.cpp:422 msgid "libloadorder failed to create a game handle. Details:" msgstr "" -#: backend/game.cpp:260 backend/game.cpp:320 backend/game.cpp:374 +#: backend/game.cpp:280 backend/game.cpp:361 backend/game.cpp:436 +msgid "" +"libloadorder failed to initialise game master file support. Details could " +"not be fetched." +msgstr "" + +#: backend/game.cpp:284 backend/game.cpp:365 backend/game.cpp:440 msgid "libloadorder failed to initialise game master file support. Details:" msgstr "" -#: backend/game.cpp:270 +#: backend/game.cpp:297 +msgid "" +"libloadorder failed to get the active plugins list. Details could not be " +"fetched." +msgstr "" + +#: backend/game.cpp:301 msgid "libloadorder failed to get the active plugins list. Details:" msgstr "" -#: backend/game.cpp:330 backend/game.cpp:396 +#: backend/game.cpp:378 backend/game.cpp:465 +msgid "" +"libloadorder failed to set the load order. Details could not be fetched." +msgstr "" + +#: backend/game.cpp:382 +msgid "libloadorder failed to get the load order. Details:" +msgstr "" + +#: backend/game.cpp:469 msgid "libloadorder failed to set the load order. Details:" msgstr "" -#: backend/game.cpp:415 +#: backend/game.cpp:489 msgid "Could not create BOSS folder for game. Details:" msgstr "" @@ -53,20 +79,8 @@ msgstr "" msgid "Unable to open \"%1%\" for CRC calculation." msgstr "" -#: backend/helpers.cpp:302 -msgid "Could not create pipe for process." -msgstr "" - -#: backend/helpers.cpp:335 -msgid "Could not create process." -msgstr "" - -#: backend/helpers.cpp:346 -msgid "Could not get process exit code." -msgstr "" - -#: backend/helpers.cpp:353 -msgid "Could not read process output." +#: backend/helpers.cpp:259 +msgid "None Specified" msgstr "" #: backend/metadata.cpp:142 @@ -77,642 +91,640 @@ msgstr "" msgid "Failed to parse condition \"%1%\"." msgstr "" +#: backend/metadata.cpp:708 backend/metadata.cpp:719 +msgid "This plugin requires \"%1%\" to be installed, but it is missing." +msgstr "" + +#: backend/metadata.cpp:712 +msgid "This plugin requires \"%1%\" to be active, but it is inactive." +msgstr "" + +#: backend/metadata.cpp:725 +msgid "This plugin is incompatible with \"%1%\", but both are present." +msgstr "" + #: backend/network.cpp:75 msgid "Git operation failed. Error: %1%" msgstr "" -#: backend/network.cpp:338 +#: backend/network.cpp:313 msgid "Masterlist revision" msgstr "" -#: gui/editor.cpp:37 -msgid "Note" +#: backend/network.cpp:313 +msgid "Rolled back to the previous revision." msgstr "" -#: gui/editor.cpp:38 -msgid "Warning" +#: gui/editor.cpp:158 gui/editor.cpp:318 gui/editor.cpp:456 +msgid "" +"Please submit any edits made for reasons other than personal preference to " +"the BOSS team so that they may be included in the masterlist." msgstr "" -#: gui/editor.cpp:39 -msgid "Error" +#: gui/editor.cpp:161 +msgid "Show only conflicting plugins." msgstr "" -#: gui/editor.cpp:43 -msgid "Add" -msgstr "" - -#: gui/editor.cpp:44 -msgid "Remove" -msgstr "" - -#: gui/editor.cpp:48 -msgid "Type" -msgstr "" - -#: gui/editor.cpp:49 -msgid "Content" -msgstr "" - -#: gui/editor.cpp:50 gui/editor.cpp:155 gui/editor.cpp:159 gui/editor.cpp:163 -#: gui/editor.cpp:167 -msgid "Condition" -msgstr "" - -#: gui/editor.cpp:51 gui/editor.cpp:990 -msgid "Language" -msgstr "" - -#: gui/editor.cpp:125 -msgid "Enable User Changes" -msgstr "" - -#: gui/editor.cpp:127 gui/editor.cpp:375 -msgid "Add File" -msgstr "" - -#: gui/editor.cpp:128 gui/editor.cpp:376 -msgid "Edit File" -msgstr "" - -#: gui/editor.cpp:129 gui/editor.cpp:377 -msgid "Remove File" -msgstr "" - -#: gui/editor.cpp:130 -msgid "Save Changes" -msgstr "" - -#: gui/editor.cpp:131 -msgid "Cancel" -msgstr "" - -#: gui/editor.cpp:132 -msgid "Copy Metadata As Text" -msgstr "" - -#: gui/editor.cpp:143 -msgid "Requirements" -msgstr "" - -#: gui/editor.cpp:144 -msgid "Incompatibilities" -msgstr "" - -#: gui/editor.cpp:145 -msgid "Load After" -msgstr "" - -#: gui/editor.cpp:146 -msgid "Messages" -msgstr "" - -#: gui/editor.cpp:147 -msgid "Bash Tags" -msgstr "" - -#: gui/editor.cpp:148 -msgid "Dirty Info" -msgstr "" - -#: gui/editor.cpp:151 -msgid "Plugins" -msgstr "" - -#: gui/editor.cpp:153 gui/editor.cpp:157 gui/editor.cpp:161 -msgid "Filename" -msgstr "" - -#: gui/editor.cpp:154 gui/editor.cpp:158 gui/editor.cpp:162 -msgid "Display Name" -msgstr "" - -#: gui/editor.cpp:165 -msgid "Add/Remove" -msgstr "" - -#: gui/editor.cpp:166 -msgid "Bash Tag" -msgstr "" - -#: gui/editor.cpp:169 -msgid "CRC" -msgstr "" - -#: gui/editor.cpp:170 -msgid "ITM Count" -msgstr "" - -#: gui/editor.cpp:171 -msgid "UDR Count" -msgstr "" - -#: gui/editor.cpp:172 -msgid "Deleted Navmesh Count" -msgstr "" - -#: gui/editor.cpp:173 -msgid "Cleaning Utility" -msgstr "" - -#: gui/editor.cpp:217 -msgid "Priority: " -msgstr "" - -#: gui/editor.cpp:379 -msgid "Add Plugin" -msgstr "" - -#: gui/editor.cpp:380 -msgid "Edit Plugin" -msgstr "" - -#: gui/editor.cpp:381 +#: gui/editor.cpp:167 gui/editor.cpp:832 msgid "Remove Plugin" msgstr "" -#: gui/editor.cpp:383 -msgid "Add Message" +#: gui/editor.cpp:170 +msgid "Plugin" msgstr "" -#: gui/editor.cpp:384 -msgid "Edit Message" +#: gui/editor.cpp:171 +msgid "Priority" msgstr "" -#: gui/editor.cpp:385 -msgid "Remove Message" +#: gui/editor.cpp:173 gui/editor.cpp:510 gui/editor.cpp:514 gui/editor.cpp:518 +msgid "Filename" msgstr "" -#: gui/editor.cpp:387 -msgid "Add Bash Tag" +#: gui/editor.cpp:174 gui/editor.cpp:511 gui/editor.cpp:515 gui/editor.cpp:519 +msgid "Display Name" msgstr "" -#: gui/editor.cpp:388 -msgid "Edit Bash Tag" +#: gui/editor.cpp:175 gui/editor.cpp:512 gui/editor.cpp:516 gui/editor.cpp:520 +#: gui/editor.cpp:524 gui/misc.cpp:36 +msgid "Condition" msgstr "" -#: gui/editor.cpp:389 -msgid "Remove Bash Tag" +#: gui/editor.cpp:203 gui/editor.cpp:581 +msgid "Priority: " msgstr "" -#: gui/editor.cpp:391 -msgid "Add Dirty Info" +#: gui/editor.cpp:207 gui/editor.cpp:502 +msgid "Load After" msgstr "" -#: gui/editor.cpp:392 -msgid "Edit Dirty Info" +#: gui/editor.cpp:481 +msgid "Enable User Changes" msgstr "" -#: gui/editor.cpp:393 -msgid "Remove Dirty Info" +#: gui/editor.cpp:483 gui/editor.cpp:826 +msgid "Add File" msgstr "" -#: gui/editor.cpp:411 -msgid "BOSS: Add File/Plugin" +#: gui/editor.cpp:484 gui/editor.cpp:827 +msgid "Edit File" msgstr "" -#: gui/editor.cpp:433 -msgid "BOSS: Add Message" +#: gui/editor.cpp:485 gui/editor.cpp:828 +msgid "Remove File" msgstr "" -#: gui/editor.cpp:443 -msgid "Error: No content specified. Row will not be added." -msgstr "" - -#: gui/editor.cpp:444 gui/editor.cpp:526 gui/editor.cpp:1122 -#: gui/editor.cpp:1137 gui/main.cpp:164 gui/main.cpp:181 gui/main.cpp:194 -#: gui/main.cpp:273 gui/main.cpp:283 gui/main.cpp:296 gui/main.cpp:304 -#: gui/main.cpp:335 gui/main.cpp:352 gui/main.cpp:820 gui/main.cpp:873 -#: gui/main.cpp:893 gui/main.cpp:972 gui/main.cpp:1009 gui/main.cpp:1040 -#: gui/main.cpp:1060 gui/main.cpp:1075 gui/main.cpp:1182 gui/main.cpp:1227 -#: gui/settings.cpp:287 gui/settings.cpp:299 gui/settings.cpp:307 -#: gui/settings.cpp:350 gui/settings.cpp:358 gui/settings.cpp:366 -msgid "BOSS: Error" -msgstr "" - -#: gui/editor.cpp:454 -msgid "BOSS: Add Tag" -msgstr "" - -#: gui/editor.cpp:468 -msgid "BOSS: Add Dirty Info" +#: gui/editor.cpp:486 +msgid "Save Changes" msgstr "" #: gui/editor.cpp:487 -msgid "BOSS: Edit File/Plugin" +msgid "Cancel" msgstr "" -#: gui/editor.cpp:511 -msgid "BOSS: Edit Message" +#: gui/editor.cpp:500 +msgid "Requirements" msgstr "" -#: gui/editor.cpp:525 -msgid "Error: No content specified. Row will not be edited." +#: gui/editor.cpp:501 +msgid "Incompatibilities" +msgstr "" + +#: gui/editor.cpp:503 +msgid "Messages" +msgstr "" + +#: gui/editor.cpp:504 +msgid "Bash Tags" +msgstr "" + +#: gui/editor.cpp:505 +msgid "Dirty Info" +msgstr "" + +#: gui/editor.cpp:508 +msgid "Plugins" +msgstr "" + +#: gui/editor.cpp:522 +msgid "Add/Remove" +msgstr "" + +#: gui/editor.cpp:523 +msgid "Bash Tag" +msgstr "" + +#: gui/editor.cpp:526 +msgid "CRC" +msgstr "" + +#: gui/editor.cpp:527 +msgid "ITM Count" +msgstr "" + +#: gui/editor.cpp:528 +msgid "UDR Count" +msgstr "" + +#: gui/editor.cpp:529 +msgid "Deleted Navmesh Count" +msgstr "" + +#: gui/editor.cpp:530 +msgid "Cleaning Utility" +msgstr "" + +#: gui/editor.cpp:533 +msgid "Copy Name" +msgstr "" + +#: gui/editor.cpp:534 +msgid "Copy Metadata As Text" msgstr "" #: gui/editor.cpp:535 -msgid "BOSS: Edit Tag" +msgid "Remove All User-Added Metadata" msgstr "" -#: gui/editor.cpp:557 -msgid "BOSS: Edit Dirty Info" +#: gui/editor.cpp:798 +msgid "" +"Are you sure you want to clear all existing user-added metadata from this " +"plugin?" msgstr "" -#: gui/editor.cpp:932 -msgid "Filename (required):" +#: gui/editor.cpp:799 gui/main.cpp:1060 +msgid "BOSS: Warning" msgstr "" -#: gui/editor.cpp:935 -msgid "Displayed Name:" +#: gui/editor.cpp:830 +msgid "Add Plugin" msgstr "" -#: gui/editor.cpp:938 gui/editor.cpp:1016 gui/editor.cpp:1172 -msgid "Condition:" +#: gui/editor.cpp:831 +msgid "Edit Plugin" +msgstr "" + +#: gui/editor.cpp:834 +msgid "Add Message" +msgstr "" + +#: gui/editor.cpp:835 +msgid "Edit Message" +msgstr "" + +#: gui/editor.cpp:836 +msgid "Remove Message" +msgstr "" + +#: gui/editor.cpp:838 +msgid "Add Bash Tag" +msgstr "" + +#: gui/editor.cpp:839 +msgid "Edit Bash Tag" +msgstr "" + +#: gui/editor.cpp:840 +msgid "Remove Bash Tag" +msgstr "" + +#: gui/editor.cpp:842 +msgid "Add Dirty Info" +msgstr "" + +#: gui/editor.cpp:843 +msgid "Edit Dirty Info" +msgstr "" + +#: gui/editor.cpp:844 +msgid "Remove Dirty Info" +msgstr "" + +#: gui/editor.cpp:862 +msgid "BOSS: Add File/Plugin" +msgstr "" + +#: gui/editor.cpp:884 +msgid "BOSS: Add Message" +msgstr "" + +#: gui/editor.cpp:894 +msgid "Error: No content specified. Row will not be added." +msgstr "" + +#: gui/editor.cpp:895 gui/editor.cpp:977 gui/main.cpp:167 gui/main.cpp:184 +#: gui/main.cpp:199 gui/main.cpp:280 gui/main.cpp:290 gui/main.cpp:303 +#: gui/main.cpp:311 gui/main.cpp:342 gui/main.cpp:359 gui/main.cpp:524 +#: gui/main.cpp:545 gui/main.cpp:561 gui/main.cpp:932 gui/main.cpp:984 +#: gui/main.cpp:1006 gui/main.cpp:1071 gui/main.cpp:1108 gui/misc.cpp:312 +#: gui/misc.cpp:327 gui/settings.cpp:287 gui/settings.cpp:299 +#: gui/settings.cpp:307 gui/settings.cpp:351 gui/settings.cpp:359 +#: gui/settings.cpp:367 +msgid "BOSS: Error" +msgstr "" + +#: gui/editor.cpp:905 +msgid "BOSS: Add Tag" +msgstr "" + +#: gui/editor.cpp:919 +msgid "BOSS: Add Dirty Info" +msgstr "" + +#: gui/editor.cpp:938 +msgid "BOSS: Edit File/Plugin" +msgstr "" + +#: gui/editor.cpp:962 +msgid "BOSS: Edit Message" +msgstr "" + +#: gui/editor.cpp:976 +msgid "Error: No content specified. Row will not be edited." msgstr "" #: gui/editor.cpp:986 -msgid "Add Content" +msgid "BOSS: Edit Tag" msgstr "" -#: gui/editor.cpp:987 -msgid "Edit Content" +#: gui/editor.cpp:1008 +msgid "BOSS: Edit Dirty Info" msgstr "" -#: gui/editor.cpp:988 -msgid "Remove Content" -msgstr "" - -#: gui/editor.cpp:991 -msgid "String" -msgstr "" - -#: gui/editor.cpp:1013 gui/settings.cpp:425 -msgid "Type:" -msgstr "" - -#: gui/editor.cpp:1028 gui/settings.cpp:101 -msgid "Language:" -msgstr "" - -#: gui/editor.cpp:1031 -msgid "Content:" -msgstr "" - -#: gui/editor.cpp:1121 gui/editor.cpp:1136 -msgid "Error: No content row selected." -msgstr "" - -#: gui/editor.cpp:1166 -msgid "Add/Remove:" -msgstr "" - -#: gui/editor.cpp:1169 gui/settings.cpp:422 -msgid "Name (required):" -msgstr "" - -#: gui/editor.cpp:1234 -msgid "CRC (required):" -msgstr "" - -#: gui/editor.cpp:1237 -msgid "ITM Count:" -msgstr "" - -#: gui/editor.cpp:1240 -msgid "UDR Count:" -msgstr "" - -#: gui/editor.cpp:1243 -msgid "Deleted Navmesh Count:" -msgstr "" - -#: gui/editor.cpp:1246 -msgid "Cleaning Utility (required):" -msgstr "" - -#: gui/ids.cpp:31 -msgid "None Specified" -msgstr "" - -#: gui/main.cpp:118 +#: gui/main.cpp:119 msgid "Masterlist update failed. Details: %1%" msgstr "" -#: gui/main.cpp:134 +#: gui/main.cpp:137 msgid "Masterlist parsing failed. Details: %1%" msgstr "" -#: gui/main.cpp:142 +#: gui/main.cpp:145 msgid "Unknown" msgstr "" -#: gui/main.cpp:144 +#: gui/main.cpp:147 msgid "No masterlist" msgstr "" -#: gui/main.cpp:163 +#: gui/main.cpp:166 msgid "Error: BOSS is already running. This instance will now quit." msgstr "" -#: gui/main.cpp:180 +#: gui/main.cpp:183 msgid "Error: Could not create local app data BOSS folder." msgstr "" -#: gui/main.cpp:193 +#: gui/main.cpp:198 msgid "Error: Settings parsing failed. %1%" msgstr "" -#: gui/main.cpp:272 +#: gui/main.cpp:279 msgid "Error: Could not apply translation." msgstr "" -#: gui/main.cpp:282 +#: gui/main.cpp:289 msgid "Error: The selected language is not available on this system." msgstr "" -#: gui/main.cpp:295 gui/main.cpp:351 gui/main.cpp:1039 +#: gui/main.cpp:302 gui/main.cpp:358 gui/main.cpp:523 msgid "Error: Game-specific settings could not be initialised. %1%" msgstr "" -#: gui/main.cpp:303 +#: gui/main.cpp:310 msgid "Error: Games' settings parsing failed. %1%" msgstr "" -#: gui/main.cpp:334 +#: gui/main.cpp:341 msgid "Error: None of the supported games were detected." msgstr "" -#: gui/main.cpp:379 +#: gui/main.cpp:386 msgid "Edit Metadata" msgstr "" -#: gui/main.cpp:380 +#: gui/main.cpp:387 msgid "Sort Plugins" msgstr "" -#: gui/main.cpp:381 +#: gui/main.cpp:388 msgid "View Last Report" msgstr "" -#: gui/main.cpp:385 +#: gui/main.cpp:392 msgid "&View Last Report" msgstr "" -#: gui/main.cpp:386 +#: gui/main.cpp:393 msgid "View &Debug Log" msgstr "" -#: gui/main.cpp:387 +#: gui/main.cpp:394 msgid "&Sort Plugins" msgstr "" -#: gui/main.cpp:388 +#: gui/main.cpp:395 msgid "&Redate Plugins" msgstr "" -#: gui/main.cpp:391 +#: gui/main.cpp:398 msgid "&File" msgstr "" -#: gui/main.cpp:393 +#: gui/main.cpp:400 msgid "&Metadata..." msgstr "" -#: gui/main.cpp:394 +#: gui/main.cpp:401 msgid "&Settings..." msgstr "" -#: gui/main.cpp:395 +#: gui/main.cpp:402 msgid "&Edit" msgstr "" -#: gui/main.cpp:407 +#: gui/main.cpp:414 msgid "&Game" msgstr "" -#: gui/main.cpp:412 +#: gui/main.cpp:419 msgid "&Help" msgstr "" -#: gui/main.cpp:496 gui/main.cpp:851 +#: gui/main.cpp:499 gui/main.cpp:948 +msgid "BOSS: Report Viewer" +msgstr "" + +#: gui/main.cpp:507 +msgid "BOSS: Settings" +msgstr "" + +#: gui/main.cpp:544 gui/main.cpp:560 +msgid "Error: \"%1%\" cannot be found." +msgstr "" + +#: gui/main.cpp:572 +msgid "" +"Load order optimisation for Oblivion, Skyrim, Fallout 3 and Fallout: New " +"Vegas." +msgstr "" + +#: gui/main.cpp:603 gui/main.cpp:813 gui/main.cpp:960 msgid "BOSS: Working..." msgstr "" -#: gui/main.cpp:496 gui/main.cpp:851 +#: gui/main.cpp:603 gui/main.cpp:960 msgid "BOSS working..." msgstr "" -#: gui/main.cpp:547 +#: gui/main.cpp:660 msgid "Userlist parsing failed. Details: %1%" msgstr "" -#: gui/main.cpp:584 +#: gui/main.cpp:701 msgid "" "A global message contains a condition that could not be evaluated. Details: " "%1%" msgstr "" -#: gui/main.cpp:615 +#: gui/main.cpp:734 msgid "\"%1%\" contains a condition that could not be evaluated. Details: %2%" msgstr "" -#: gui/main.cpp:627 -msgid "\"%1%\" is incompatible with \"%2%\" and is present." +#: gui/main.cpp:753 +msgid "Building plugin graph..." msgstr "" -#: gui/main.cpp:630 -msgid "\"%1%\" is required by \"%2%\" but is missing." -msgstr "" - -#: gui/main.cpp:670 -msgid "Failed to generate graph image. Details: %1%" -msgstr "" - -#: gui/main.cpp:687 +#: gui/main.cpp:798 msgid "BOSS: Calculated Load Order" msgstr "" -#: gui/main.cpp:765 +#: gui/main.cpp:813 +msgid "Recalculating load order..." +msgstr "" + +#: gui/main.cpp:870 msgid "Failed to set the load order. Details: %1%" msgstr "" -#: gui/main.cpp:769 +#: gui/main.cpp:880 msgid "" "The load order displayed in the Details tab was not applied as sorting was " "canceled." msgstr "" -#: gui/main.cpp:778 +#: gui/main.cpp:885 msgid "Failed to calculate the load order. Details: %1%" msgstr "" -#: gui/main.cpp:819 +#: gui/main.cpp:931 msgid "Error: %1%" msgstr "" -#: gui/main.cpp:839 gui/main.cpp:954 -msgid "BOSS: Report Viewer" -msgstr "" - -#: gui/main.cpp:872 +#: gui/main.cpp:983 msgid "Error: Masterlist parsing failed. %1%" msgstr "" -#: gui/main.cpp:892 +#: gui/main.cpp:1005 msgid "Error: Userlist parsing failed. %1%" msgstr "" -#: gui/main.cpp:939 +#: gui/main.cpp:1051 msgid "BOSS: Metadata Editor" msgstr "" -#: gui/main.cpp:961 +#: gui/main.cpp:1060 msgid "" "This feature is provided so that modders using the Creation Kit may set the " "load order it uses. A side-effect is that any subscribed Steam Workshop mods " "will be re-downloaded by Steam. Do you wish to continue?" msgstr "" -#: gui/main.cpp:961 -msgid "BOSS: Warning" -msgstr "" - -#: gui/main.cpp:971 +#: gui/main.cpp:1070 msgid "Error: Failed to get load order. %1%" msgstr "" -#: gui/main.cpp:1008 +#: gui/main.cpp:1107 msgid "Error: Failed to set plugin timestamps. %1%" msgstr "" -#: gui/main.cpp:1015 +#: gui/main.cpp:1114 msgid "Plugins were successfully redated." msgstr "" -#: gui/main.cpp:1016 +#: gui/main.cpp:1115 msgid "BOSS: Plugin Redate" msgstr "" -#: gui/main.cpp:1024 -msgid "BOSS: Settings" +#: gui/misc.cpp:34 +msgid "Type" msgstr "" -#: gui/main.cpp:1059 gui/main.cpp:1074 -msgid "Error: \"%1%\" cannot be found." +#: gui/misc.cpp:35 +msgid "Content" msgstr "" -#: gui/main.cpp:1086 -msgid "" -"A load order optimisation tool for games using the Elder Scrolls Plugin/" -"Master system." +#: gui/misc.cpp:37 gui/misc.cpp:180 +msgid "Language" msgstr "" -#: gui/main.cpp:1110 -msgid "Up" +#: gui/misc.cpp:116 +msgid "Filename (required):" msgstr "" -#: gui/main.cpp:1111 -msgid "Down" +#: gui/misc.cpp:119 +msgid "Displayed Name:" msgstr "" -#: gui/main.cpp:1114 -msgid "Load Order" +#: gui/misc.cpp:122 gui/misc.cpp:206 gui/misc.cpp:362 +msgid "Condition:" msgstr "" -#: gui/main.cpp:1136 -msgid "" -"Please submit any alterations made for reasons other than user preference \n" -"to the BOSS team so that they may include the changes in the masterlist." +#: gui/misc.cpp:176 +msgid "Add Content" msgstr "" -#: gui/main.cpp:1181 gui/main.cpp:1226 -msgid "Error: Cannot load \"%1%\" before \"%2%\"." +#: gui/misc.cpp:177 +msgid "Edit Content" msgstr "" -#: gui/settings.cpp:40 -msgid "None" +#: gui/misc.cpp:178 +msgid "Remove Content" +msgstr "" + +#: gui/misc.cpp:181 +msgid "String" +msgstr "" + +#: gui/misc.cpp:203 gui/settings.cpp:428 +msgid "Type:" +msgstr "" + +#: gui/misc.cpp:218 gui/settings.cpp:108 +msgid "Language:" +msgstr "" + +#: gui/misc.cpp:221 +msgid "Content:" +msgstr "" + +#: gui/misc.cpp:311 gui/misc.cpp:326 +msgid "Error: No content row selected." +msgstr "" + +#: gui/misc.cpp:356 +msgid "Add/Remove:" +msgstr "" + +#: gui/misc.cpp:359 gui/settings.cpp:425 +msgid "Name (required):" +msgstr "" + +#: gui/misc.cpp:424 +msgid "CRC (required):" +msgstr "" + +#: gui/misc.cpp:427 +msgid "ITM Count:" +msgstr "" + +#: gui/misc.cpp:430 +msgid "UDR Count:" +msgstr "" + +#: gui/misc.cpp:433 +msgid "Deleted Navmesh Count:" +msgstr "" + +#: gui/misc.cpp:436 +msgid "Cleaning Utility (required):" msgstr "" #: gui/settings.cpp:41 -msgid "Low" +msgid "None" msgstr "" #: gui/settings.cpp:42 -msgid "Medium" +msgid "Low" msgstr "" #: gui/settings.cpp:43 +msgid "Medium" +msgstr "" + +#: gui/settings.cpp:44 msgid "High" msgstr "" -#: gui/settings.cpp:47 +#: gui/settings.cpp:48 msgid "Autodetect" msgstr "" -#: gui/settings.cpp:59 +#: gui/settings.cpp:66 msgid "Add Game" msgstr "" -#: gui/settings.cpp:60 +#: gui/settings.cpp:67 msgid "Edit Game" msgstr "" -#: gui/settings.cpp:61 +#: gui/settings.cpp:68 msgid "Remove Game" msgstr "" -#: gui/settings.cpp:63 +#: gui/settings.cpp:70 msgid "Update masterlist before sorting." msgstr "" -#: gui/settings.cpp:64 +#: gui/settings.cpp:71 msgid "View reports externally in default browser." msgstr "" -#: gui/settings.cpp:65 -msgid "Generate and display plugin graph images." -msgstr "" - -#: gui/settings.cpp:68 +#: gui/settings.cpp:74 msgid "Name" msgstr "" -#: gui/settings.cpp:69 +#: gui/settings.cpp:75 msgid "Base Game Type" msgstr "" -#: gui/settings.cpp:70 +#: gui/settings.cpp:76 msgid "BOSS Folder Name" msgstr "" -#: gui/settings.cpp:71 +#: gui/settings.cpp:77 msgid "Master File" msgstr "" -#: gui/settings.cpp:72 -msgid "Online Masterlist URL" +#: gui/settings.cpp:78 +msgid "Masterlist Repository URL" msgstr "" -#: gui/settings.cpp:73 +#: gui/settings.cpp:79 +msgid "Masterlist Repository Branch" +msgstr "" + +#: gui/settings.cpp:80 msgid "Install Path" msgstr "" -#: gui/settings.cpp:74 +#: gui/settings.cpp:81 msgid "Install Path Registry Key" msgstr "" -#: gui/settings.cpp:98 +#: gui/settings.cpp:105 msgid "Default Game:" msgstr "" -#: gui/settings.cpp:104 +#: gui/settings.cpp:111 msgid "Debug Verbosity:" msgstr "" -#: gui/settings.cpp:126 +#: gui/settings.cpp:130 msgid "Language and game changes will be applied after BOSS is restarted." msgstr "" -#: gui/settings.cpp:139 +#: gui/settings.cpp:143 msgid "The output is logged to the BOSSDebugLog.txt file." msgstr "" @@ -720,7 +732,7 @@ msgstr "" msgid "BOSS: Add Game" msgstr "" -#: gui/settings.cpp:286 gui/settings.cpp:365 +#: gui/settings.cpp:286 gui/settings.cpp:366 msgid "Error: A path and/or registry key is required. Row will not be added." msgstr "" @@ -734,216 +746,234 @@ msgid "" "added." msgstr "" -#: gui/settings.cpp:328 +#: gui/settings.cpp:329 msgid "BOSS: Edit Game" msgstr "" -#: gui/settings.cpp:349 +#: gui/settings.cpp:350 msgid "Error: Name is required. Row will not be added." msgstr "" -#: gui/settings.cpp:357 +#: gui/settings.cpp:358 msgid "Error: Folder is required. Row will not be added." msgstr "" -#: gui/settings.cpp:428 +#: gui/settings.cpp:431 msgid "BOSS Folder Name (required):" msgstr "" -#: gui/settings.cpp:431 +#: gui/settings.cpp:434 msgid "Master File:" msgstr "" -#: gui/settings.cpp:434 -msgid "Masterlist URL:" -msgstr "" - #: gui/settings.cpp:437 -msgid "Install Path:" +msgid "Masterlist Repository URL:" msgstr "" #: gui/settings.cpp:440 +msgid "Masterlist Repository Branch:" +msgstr "" + +#: gui/settings.cpp:443 +msgid "Install Path:" +msgstr "" + +#: gui/settings.cpp:446 msgid "Install Path Registry Key:" msgstr "" -#: backend/generators.h:80 +#: backend/generators.h:56 msgid "Note:" msgstr "" -#: backend/generators.h:82 +#: backend/generators.h:58 msgid "Bash Tag Suggestion(s):" msgstr "" -#: backend/generators.h:84 +#: backend/generators.h:60 msgid "Warning:" msgstr "" -#: backend/generators.h:86 +#: backend/generators.h:62 msgid "Error:" msgstr "" -#: backend/generators.h:159 +#: backend/generators.h:127 msgid "BOSS Report" msgstr "" -#: backend/generators.h:191 backend/generators.h:262 +#: backend/generators.h:153 backend/generators.h:216 msgid "Summary" msgstr "" -#: backend/generators.h:197 +#: backend/generators.h:159 msgid "Details" msgstr "" -#: backend/generators.h:204 -msgid "Graph" -msgstr "" - -#: backend/generators.h:211 +#: backend/generators.h:165 msgid "Filters" msgstr "" -#: backend/generators.h:275 +#: backend/generators.h:229 msgid "BOSS Version" msgstr "" -#: backend/generators.h:284 +#: backend/generators.h:238 msgid "Masterlist Version" msgstr "" -#: backend/generators.h:293 +#: backend/generators.h:247 msgid "Masterlist Updating" msgstr "" -#: backend/generators.h:297 +#: backend/generators.h:251 msgid "Enabled" msgstr "" -#: backend/generators.h:299 +#: backend/generators.h:253 msgid "Disabled" msgstr "" -#: backend/generators.h:306 -msgid "No change in details since last run." +#: backend/generators.h:262 +msgid "" +"There have been no changes in the Details tab since BOSS was last run for " +"this game." msgstr "" -#: backend/generators.h:316 +#: backend/generators.h:272 msgid "General Messages" msgstr "" -#: backend/generators.h:326 +#: backend/generators.h:282 msgid "Total Number of Messages" msgstr "" -#: backend/generators.h:335 +#: backend/generators.h:291 msgid "Number of Warnings" msgstr "" -#: backend/generators.h:344 +#: backend/generators.h:300 msgid "Number of Errors" msgstr "" -#: backend/generators.h:385 +#: backend/generators.h:341 msgid "Version:" msgstr "" -#: backend/generators.h:405 +#: backend/generators.h:361 msgid "Add:" msgstr "" -#: backend/generators.h:411 +#: backend/generators.h:367 msgid "Remove:" msgstr "" -#: backend/generators.h:419 +#: backend/generators.h:375 msgid "" "Contains %1% ITM records, %2% UDR records and %3% deleted navmeshes. Clean " "with %4%." msgstr "" -#: backend/generators.h:421 +#: backend/generators.h:377 msgid "Clean with %1%." msgstr "" -#: backend/generators.h:425 +#: backend/generators.h:381 msgid "Contains %1% UDR records and %2% deleted navmeshes. Clean with %3%." msgstr "" -#: backend/generators.h:427 +#: backend/generators.h:383 msgid "Contains %1% deleted navmeshes. Clean with %2%." msgstr "" -#: backend/generators.h:429 +#: backend/generators.h:385 msgid "Contains %1% UDR records. Clean with %2%." msgstr "" -#: backend/generators.h:432 +#: backend/generators.h:388 msgid "Contains %1% ITM records and %2% deleted navmeshes. Clean with %3%." msgstr "" -#: backend/generators.h:434 +#: backend/generators.h:390 msgid "Contains %1% ITM records. Clean with %2%." msgstr "" -#: backend/generators.h:437 +#: backend/generators.h:393 msgid "Contains %1% ITM records and %2% UDR records. Clean with %3%." msgstr "" -#: backend/generators.h:474 +#: backend/generators.h:429 msgid "The BOSS Report requires Javascript to be enabled in order to function." msgstr "" -#: backend/generators.h:521 +#: backend/generators.h:456 msgid "Hide Version Numbers" msgstr "" -#: backend/generators.h:530 +#: backend/generators.h:465 msgid "Hide CRCs" msgstr "" -#: backend/generators.h:539 +#: backend/generators.h:474 msgid "Hide Bash Tag Suggestions" msgstr "" -#: backend/generators.h:547 +#: backend/generators.h:482 msgid "Hide Notes" msgstr "" -#: backend/generators.h:555 +#: backend/generators.h:490 msgid "Hide 'Do Not Clean' Messages" msgstr "" -#: backend/generators.h:563 +#: backend/generators.h:498 msgid "Hide All Plugin Messages" msgstr "" -#: backend/generators.h:571 +#: backend/generators.h:506 msgid "Hide Messageless Plugins" msgstr "" -#: backend/generators.h:581 +#: backend/generators.h:516 msgid "%1% of %2% plugins hidden." msgstr "" -#: backend/generators.h:589 +#: backend/generators.h:524 msgid "%1% of %2% messages hidden." msgstr "" -#: backend/generators.h:631 -msgid "Could not write BOSS report." -msgstr "" - -#: backend/parsers.h:466 backend/parsers.h:549 +#: backend/parsers.h:467 backend/parsers.h:550 msgid "Invalid file path:" msgstr "" -#: backend/parsers.h:514 +#: backend/parsers.h:515 msgid "Invalid folder path:" msgstr "" -#: backend/parsers.h:531 +#: backend/parsers.h:532 msgid "Invalid regex string:" msgstr "" -#: backend/parsers.h:626 +#: backend/parsers.h:627 msgid "Expected \"%1%\" at \"%2%\"." msgstr "" + +#: gui/misc.h:35 +msgid "Note" +msgstr "" + +#: gui/misc.h:36 +msgid "Warning" +msgstr "" + +#: gui/misc.h:37 +msgid "Error" +msgstr "" + +#: gui/misc.h:41 +msgid "Add" +msgstr "" + +#: gui/misc.h:42 +msgid "Remove" +msgstr "" diff --git a/src/backend/generators.h b/src/backend/generators.h index 0c8f524a..a4421443 100644 --- a/src/backend/generators.h +++ b/src/backend/generators.h @@ -91,8 +91,6 @@ namespace boss { a.append_attribute("href").set_value(url.c_str()); a.text().set(label.c_str()); - BOOST_LOG_TRIVIAL(trace) << "FOO"; - //Set string to end of matched section. start = results.suffix().first; } @@ -261,7 +259,7 @@ namespace boss { note.append_attribute("id").set_value("noChanges"); note.text().set(boost::locale::translate("No change in details since last run.").str().c_str()); */ - messages.push_front(boss::Message(boss::g_message_say, "There have been no changes in the Details tab since BOSS was last run for this game.")); + messages.push_front(boss::Message(boss::g_message_say, boost::locale::translate("There have been no changes in the Details tab since BOSS was last run for this game.").str())); } if (!messages.empty()) { diff --git a/src/backend/graph.cpp b/src/backend/graph.cpp index c847fa76..bd7571c0 100644 --- a/src/backend/graph.cpp +++ b/src/backend/graph.cpp @@ -110,10 +110,12 @@ namespace boss { boss::vertex_it vit2 = vit; ++vit2; - for (vit2,vitend; vit2 != vitend; ++vit2) { + while (vit2 != vitend) { - if (graph[*vit].IsMaster() == graph[*vit2].IsMaster()) + if (graph[*vit].IsMaster() == graph[*vit2].IsMaster()) { + ++vit2; continue; + } vertex_t vertex, parentVertex; if (graph[*vit2].IsMaster()) { @@ -130,6 +132,7 @@ namespace boss { boost::add_edge(parentVertex, vertex, graph); } + ++vit2; } BOOST_LOG_TRIVIAL(trace) << "Adding in-edges for masters."; @@ -180,10 +183,12 @@ namespace boss { BOOST_LOG_TRIVIAL(trace) << "Adding priority difference edges to vertex for \"" << graph[*vit].Name() << "\"."; boss::vertex_it vit2 = vit; ++vit2; - for (vit2,vitend; vit2 != vitend; ++vit2) { + while (vit2 != vitend) { BOOST_LOG_TRIVIAL(trace) << "Checking for priority difference between \"" << graph[*vit].Name() << "\" and \"" << graph[*vit2].Name() << "\"."; - if (graph[*vit].Priority() == graph[*vit2].Priority()) + if (graph[*vit].Priority() == graph[*vit2].Priority()) { + ++vit2; continue; + } vertex_t vertex, parentVertex; if (graph[*vit].Priority() < graph[*vit2].Priority()) { @@ -201,6 +206,7 @@ namespace boss { boost::add_edge(parentVertex, vertex, graph); } + ++vit2; } } } @@ -209,25 +215,33 @@ namespace boss { boss::vertex_it vit, vitend; for (boost::tie(vit, vitend) = boost::vertices(graph); vit != vitend; ++vit) { - vertex_t parentVertex; BOOST_LOG_TRIVIAL(trace) << "Adding overlap edges to vertex for \"" << graph[*vit].Name() << "\"."; + if (graph[*vit].NumOverrideFormIDs() == 0) { + continue; + } + boss::vertex_it vit2 = vit; ++vit2; - for (vit2,vitend; vit2 != vitend; ++vit2) { - BOOST_LOG_TRIVIAL(trace) << "Checking for FormID overlap between \"" << graph[*vit].Name() << "\" and \"" << graph[*vit2].Name() << "\"."; - - if (graph[*vit].DoFormIDsOverlap(graph[*vit2])) { - - if (graph[*vit].MustLoadAfter(graph[*vit2]) || graph[*vit2].MustLoadAfter(graph[*vit]) || graph[*vit].Priority() != graph[*vit2].Priority()) - continue; + while (vit2 != vitend) { + BOOST_LOG_TRIVIAL(trace) << "Checking edge validity between \"" << graph[*vit].Name() << "\" and \"" << graph[*vit2].Name() << "\"."; + if (graph[*vit].Priority() == graph[*vit2].Priority() && !graph[*vit].MustLoadAfter(graph[*vit2]) && !graph[*vit2].MustLoadAfter(graph[*vit]) && graph[*vit].DoFormIDsOverlap(graph[*vit2])) { vertex_t vertex, parentVertex; - if (graph[*vit].NumOverrideFormIDs() >= graph[*vit2].NumOverrideFormIDs()) { + if (graph[*vit].NumOverrideFormIDs() > graph[*vit2].NumOverrideFormIDs()) { parentVertex = *vit; vertex = *vit2; - } else { + } + else if (graph[*vit].NumOverrideFormIDs() < graph[*vit2].NumOverrideFormIDs()) { + parentVertex = *vit2; + vertex = *vit; + } + else if (graph[*vit].Name() < graph[*vit2].Name()) { //There needs to be an edge between the two, but direction cannot be decided using overlap size. Just use names. + parentVertex = *vit; + vertex = *vit2; + } + else { parentVertex = *vit2; vertex = *vit; } @@ -240,6 +254,7 @@ namespace boss { boost::add_edge(parentVertex, vertex, graph); } } + ++vit2; } } } diff --git a/src/backend/metadata.cpp b/src/backend/metadata.cpp index 21f85253..5c1af653 100644 --- a/src/backend/metadata.cpp +++ b/src/backend/metadata.cpp @@ -306,7 +306,7 @@ namespace boss { : name(n), enabled(true), priority(0) { // Get data from file contents using libespm. Assumes libespm has already been initialised. - BOOST_LOG_TRIVIAL(trace) << "Opening plugin with libespm..."; + BOOST_LOG_TRIVIAL(trace) << name << ": " << "Opening with libespm..."; boost::filesystem::path filepath = game.DataPath() / name; //In case the plugin is ghosted, but the extension already got trimmed. @@ -325,22 +325,22 @@ namespace boss { //If the name passed ends in '.ghost', that should be trimmed. if (boost::iends_with(name, ".ghost")) { - BOOST_LOG_TRIVIAL(trace) << "Trimming '.ghost' extension."; + BOOST_LOG_TRIVIAL(trace) << name << ": " << "Trimming '.ghost' extension."; name = name.substr(0, name.length() - 6); } - BOOST_LOG_TRIVIAL(trace) << "Checking to see if plugin is a master or not."; + BOOST_LOG_TRIVIAL(trace) << name << ": " << "Checking master flag."; isMaster = file->isMaster(game.espm_settings); - BOOST_LOG_TRIVIAL(trace) << "Getting the plugin's masters."; + BOOST_LOG_TRIVIAL(trace) << name << ": " << "Getting masters."; masters = file->getMasters(); - BOOST_LOG_TRIVIAL(trace) << "Number of masters: " << masters.size(); + BOOST_LOG_TRIVIAL(trace) << name << ": " << "Number of masters: " << masters.size(); crc = file->crc; game.crcCache.insert(pair(n, crc)); - BOOST_LOG_TRIVIAL(trace) << "Getting the plugin's FormIDs."; + BOOST_LOG_TRIVIAL(trace) << name << ": " << "Getting the FormIDs."; vector records = file->getFormIDs(); vector plugins = masters; plugins.push_back(name); @@ -352,7 +352,7 @@ namespace boss { } //Also read Bash Tags applied and version string in description. - BOOST_LOG_TRIVIAL(trace) << "Reading the plugin description."; + BOOST_LOG_TRIVIAL(trace) << name << ": " << "Reading the description."; string text = file->getDescription(); delete file; @@ -361,7 +361,7 @@ namespace boss { begin = text.begin(); end = text.end(); - BOOST_LOG_TRIVIAL(trace) << "Attempting to read the plugin version from its description."; + BOOST_LOG_TRIVIAL(trace) << name << ": " << "Attempting to read the version from the description."; for(int j = 0; j < 7 && version.empty(); j++) { boost::smatch what; while (boost::regex_search(begin, end, what, version_checks[j])) { @@ -377,7 +377,7 @@ namespace boss { } } - BOOST_LOG_TRIVIAL(trace) << "Attempting to extract Bash Tags from the description."; + BOOST_LOG_TRIVIAL(trace) << name << ": " << "Attempting to extract Bash Tags from the description."; size_t pos1 = text.find("{{BASH:"); if (pos1 == string::npos || pos1 + 7 == text.length()) return; @@ -395,7 +395,7 @@ namespace boss { for (int i=0,max=bashTags.size(); i Plugin::CheckInstallValidity(const Game& game) const { - map issues; + std::vector Plugin::CheckInstallValidity(const Game& game) const { + std::vector errorMessages; if (tags.find(Tag("Filter")) == tags.end()) { for (vector::const_iterator it=masters.begin(), endIt=masters.end(); it != endIt; ++it) { - if (!boost::filesystem::exists(game.DataPath() / *it) && !boost::filesystem::exists(game.DataPath() / (*it + ".ghost"))) - issues.insert(pair(*it,false)); + if (!boost::filesystem::exists(game.DataPath() / *it) && !boost::filesystem::exists(game.DataPath() / (*it + ".ghost"))) { + BOOST_LOG_TRIVIAL(error) << "\"" << name << "\" requires \"" << *it << "\", but it is missing."; + errorMessages.push_back((boost::format(boost::locale::translate("This plugin requires \"%1%\" to be installed, but it is missing.")) % *it).str()); + } + else if (!game.IsActive(*it)) { + BOOST_LOG_TRIVIAL(error) << "\"" << name << "\" requires \"" << *it << "\", but it is inactive."; + errorMessages.push_back((boost::format(boost::locale::translate("This plugin requires \"%1%\" to be active, but it is inactive.")) % *it).str()); + } } } for (set::const_iterator it=requirements.begin(), endIt=requirements.end(); it != endIt; ++it) { - if (!boost::filesystem::exists(game.DataPath() / it->Name()) && !(IsPlugin(it->Name()) && boost::filesystem::exists(game.DataPath() / (it->Name() + ".ghost")))) - issues.insert(pair(it->DisplayName(),false)); + if (!boost::filesystem::exists(game.DataPath() / it->Name()) && !(IsPlugin(it->Name()) && boost::filesystem::exists(game.DataPath() / (it->Name() + ".ghost")))) { + BOOST_LOG_TRIVIAL(error) << "\"" << name << "\" requires \"" << it->Name() << "\", but it is missing."; + errorMessages.push_back((boost::format(boost::locale::translate("This plugin requires \"%1%\" to be installed, but it is missing.")) % it->Name()).str()); + } } for (set::const_iterator it=incompatibilities.begin(), endIt=incompatibilities.end(); it != endIt; ++it) { - if (boost::filesystem::exists(game.DataPath() / it->Name()) || (IsPlugin(it->Name()) && boost::filesystem::exists(game.DataPath() / (it->Name() + ".ghost")))) - issues.insert(pair(it->DisplayName(),true)); + if (boost::filesystem::exists(game.DataPath() / it->Name()) || (IsPlugin(it->Name()) && boost::filesystem::exists(game.DataPath() / (it->Name() + ".ghost")))) { + BOOST_LOG_TRIVIAL(error) << "\"" << name << "\" is incompatible with \"" << it->Name() << "\", but both are present."; + errorMessages.push_back((boost::format(boost::locale::translate("This plugin is incompatible with \"%1%\", but both are present.")) % it->Name()).str()); + } } - return issues; + return errorMessages; } bool Plugin::LoadsBSA(const Game& game) const { @@ -741,7 +751,7 @@ namespace boss { } bool alpha_sort(const Plugin& lhs, const Plugin& rhs) { - return boost::ilexicographical_compare(lhs.Name(), rhs.Name()); + return boost::ilexicographical_compare(rhs.Name(), lhs.Name()); } bool master_sort(const Plugin& lhs, const Plugin& rhs) { diff --git a/src/backend/metadata.h b/src/backend/metadata.h index 992476ea..0b968503 100644 --- a/src/backend/metadata.h +++ b/src/backend/metadata.h @@ -210,7 +210,7 @@ namespace boss { bool MustLoadAfter(const Plugin& plugin) const; //Checks masters, reqs and loadAfter. //Validity checks. - std::map CheckInstallValidity(const Game& game) const; //Checks that reqs and masters are all present, and that no incs are present. Returns a map of filenames and whether they are missing (if bool is true, then filename is a req or master, otherwise it's an inc). + std::vector CheckInstallValidity(const Game& game) const; //Checks that reqs and masters are all present, and that no incs are present. Returns a map of filenames and whether they are missing (if bool is true, then filename is a req or master, otherwise it's an inc). private: std::string name; bool enabled; //Default to true. diff --git a/src/gui/editor.cpp b/src/gui/editor.cpp index 95ef6d27..a693befa 100644 --- a/src/gui/editor.cpp +++ b/src/gui/editor.cpp @@ -34,80 +34,435 @@ using namespace std; -wxString Type[3] = { - translate("Note"), - translate("Warning"), - translate("Error") -}; +////////////////////////////// +// TextDropTarget class +////////////////////////////// -wxString State[2] = { - translate("Add"), - translate("Remove") -}; +TextDropTarget::TextDropTarget(wxListView * owner, wxStaticText * name) : targetOwner(owner), targetName(name) {} -MessageList::MessageList(wxWindow * parent, wxWindowID id, const unsigned int language) : wxListView(parent, id, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_VIRTUAL|wxLC_SINGLE_SEL), _language(language) { - InsertColumn(0, translate("Type")); - InsertColumn(1, translate("Content")); - InsertColumn(2, translate("Condition")); - InsertColumn(3, translate("Language")); - - Bind(wxEVT_LIST_DELETE_ITEM, &MessageList::OnDeleteItem, this); - - SetItemCount(0); +bool TextDropTarget::OnDropText(wxCoord x, wxCoord y, const wxString &data) { + if (data == targetName->GetLabelText() || targetOwner->FindItem(-1, data) != wxNOT_FOUND) + return false; + targetOwner->InsertItem(targetOwner->GetItemCount(), data); + targetOwner->SetColumnWidth(0, wxLIST_AUTOSIZE); + return true; } -std::vector MessageList::GetItems() const { - return _messages; +/////////////////////////////////// +// Common Editor Class +/////////////////////////////////// + +CommonEditor::CommonEditor(const std::list& plugins, const boss::Game& game) : _basePlugins(plugins), _game(game) {} + +CommonEditor::CommonEditor(const std::list& plugins, const boss::Game& game, std::list& editedPlugins) : _basePlugins(plugins), _game(game), _editedPlugins(editedPlugins) {} + +boss::Plugin CommonEditor::GetMasterData(const wxString& plugin) const { + BOOST_LOG_TRIVIAL(debug) << "Getting hardcoded and masterlist metadata for plugin: " << plugin.ToUTF8(); + boss::Plugin p; + boss::Plugin p_in(string(plugin.ToUTF8())); + + list::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), p_in); + + if (it != _basePlugins.end()) + p = *it; + + return p; } -void MessageList::SetItems(const std::vector& messages) { - _messages = messages; - SetItemCount(_messages.size()); - RefreshItems(0, _messages.size() - 1); +boss::Plugin CommonEditor::GetUserData(const wxString& plugin) const { + BOOST_LOG_TRIVIAL(debug) << "Getting userlist metadata for plugin: " << plugin.ToUTF8(); + boss::Plugin p(string(plugin.ToUTF8())); + + list::const_iterator it = std::find(_editedPlugins.begin(), _editedPlugins.end(), p); + + if (it != _editedPlugins.end()) + p = *it; + + return p; } -boss::Message MessageList::GetItem(long item) const { - return _messages[item]; -} +void CommonEditor::ApplyEdits(const wxString& plugin, wxListView * wxList) { + BOOST_LOG_TRIVIAL(debug) << "Applying edits to plugin: " << plugin.ToUTF8(); -void MessageList::SetItem(long item, const boss::Message& message) { - _messages[item] = message; - RefreshItem(item); -} + //Get recorded data. + boss::Plugin master(GetMasterData(plugin)); + boss::Plugin edited(GetNewData(plugin)); -void MessageList::AppendItem(const boss::Message& message) { - _messages.push_back(message); - SetItemCount(_messages.size()); - RefreshItem(_messages.size() - 1); -} + boss::Plugin diff = master.DiffMetadata(edited); -void MessageList::OnDeleteItem(wxListEvent& event) { - _messages.erase(_messages.begin() + event.GetIndex()); - SetItemCount(_messages.size()); - RefreshItems(event.GetIndex(), _messages.size() - 1); -} + list::iterator pos = std::find(_editedPlugins.begin(), _editedPlugins.end(), diff); + long i = wxList->FindItem(-1, plugin); -wxString MessageList::OnGetItemText(long item, long column) const { - if (column < 0 || column > 3 || item < 0 || item > _messages.size() - 1) - return wxString(); - - if (column == 0) { - if (_messages[item].Type() == boss::g_message_say) - return Type[0]; - else if (_messages[item].Type() == boss::g_message_warn) - return Type[1]; + if (!diff.HasNameOnly()) { + wxList->SetItemFont(i, wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).Bold()); + if (pos != _editedPlugins.end()) + *pos = diff; else - return Type[2]; - } else if (column == 1) { - return FromUTF8(_messages[item].ChooseContent(_language).Str()); - } else if (column == 2) { - return FromUTF8(_messages[item].Condition()); - } else { - return FromUTF8(boss::Language(_messages[item].ChooseContent(_language).Language()).Name()); + _editedPlugins.push_back(diff); + } + else { + wxList->SetItemFont(i, wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); + if (pos != _editedPlugins.end()) + _editedPlugins.erase(pos); //Prevents unnecessary writes. } } -Editor::Editor(wxWindow *parent, const wxString& title, const std::string userlistPath, const std::vector& basePlugins, std::vector& editedPlugins, const unsigned int language, const boss::Game& game) : wxFrame(parent, wxID_ANY, title), _userlistPath(userlistPath), _basePlugins(basePlugins), _editedPlugins(editedPlugins), _game(game) { +boss::File CommonEditor::RowToFile(wxListView * list, long row) const { + return boss::File( + string(list->GetItemText(row, 0).ToUTF8()), + string(list->GetItemText(row, 1).ToUTF8()), + string(list->GetItemText(row, 2).ToUTF8()) + ); +} + +boss::Tag CommonEditor::RowToTag(wxListView * list, long row) const { + string name = string(list->GetItemText(row, 1).ToUTF8()); + + if (list->GetItemText(row, 0) == State[1]) + return boss::Tag( + name, + false, + string(list->GetItemText(row, 2).ToUTF8()) + ); + else + return boss::Tag( + name, + true, + string(list->GetItemText(row, 2).ToUTF8()) + ); +} + +boss::PluginDirtyInfo CommonEditor::RowToPluginDirtyInfo(wxListView * list, long row) const { + string text(list->GetItemText(row, 0).ToUTF8()); + uint32_t crc = strtoul(text.c_str(), NULL, 16); + return boss::PluginDirtyInfo( + crc, + atoi(string(list->GetItemText(row, 1).ToUTF8()).c_str()), + atoi(string(list->GetItemText(row, 2).ToUTF8()).c_str()), + atoi(string(list->GetItemText(row, 3).ToUTF8()).c_str()), + string(list->GetItemText(row, 4).ToUTF8())); +} + + +/////////////////////////////////// +// Mini Editor Class +/////////////////////////////////// + + +MiniEditor::MiniEditor(wxWindow *parent, const wxString& title, const std::list& plugins, const boss::Game& game) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER), CommonEditor(plugins, game) { + //Initialise editing panel. + editingPanel = new wxPanel(this, wxID_ANY); + + //Initialise controls. + pluginText = new wxStaticText(editingPanel, wxID_ANY, ""); + descText = new wxStaticText(this, wxID_ANY, translate("Please submit any edits made for reasons other than personal preference to the BOSS team so that they may be included in the masterlist.")); + prioritySpin = new wxSpinCtrl(editingPanel, wxID_ANY, "0"); + prioritySpin->SetRange(std::numeric_limits::min(), std::numeric_limits::max()); + filterCheckbox = new wxCheckBox(editingPanel, wxID_ANY, translate("Show only conflicting plugins.")); + + pluginList = new wxListView(this, LIST_Plugins, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_SINGLE_SEL); + loadAfterList = new wxListView(editingPanel, LIST_LoadAfter, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_SINGLE_SEL); + loadAfterList->SetDropTarget(new TextDropTarget(loadAfterList, pluginText)); + + removeBtn = new wxButton(editingPanel, BUTTON_RemoveRow, translate("Remove Plugin")); + + //Set up list columns. + pluginList->AppendColumn(translate("Plugin")); + pluginList->AppendColumn(translate("Priority")); + + loadAfterList->AppendColumn(translate("Filename")); + loadAfterList->AppendColumn(translate("Display Name")); + loadAfterList->AppendColumn(translate("Condition")); + loadAfterList->SetColumnWidth(0, wxLIST_AUTOSIZE_USEHEADER); + loadAfterList->SetColumnWidth(1, 0); //Hide this from the user. + loadAfterList->SetColumnWidth(2, 0); //Hide this from the user. + + //Initialise control states. + removeBtn->Enable(false); + prioritySpin->Enable(false); + filterCheckbox->Enable(false); + + //Make plugin name bold text. + pluginText->SetFont(pluginText->GetFont().Bold()); + + //Set up event handling. + Bind(wxEVT_LIST_ITEM_SELECTED, &MiniEditor::OnPluginSelect, this, LIST_Plugins); + Bind(wxEVT_LIST_BEGIN_DRAG, &MiniEditor::OnDragStart, this, LIST_Plugins); + Bind(wxEVT_LIST_ITEM_SELECTED, &MiniEditor::OnRowSelect, this, LIST_LoadAfter); + Bind(wxEVT_BUTTON, &MiniEditor::OnRemoveRow, this, BUTTON_RemoveRow); + Bind(wxEVT_CHECKBOX, &MiniEditor::OnFilterToggle, this); + Bind(wxEVT_BUTTON, &MiniEditor::OnApply, this, wxID_APPLY); + Bind(wxEVT_SIZE, &MiniEditor::OnResize, this); + + //Set up editing panel layout. + wxBoxSizer * mainBox = new wxBoxSizer(wxVERTICAL); + mainBox->Add(pluginText, 0, wxTOP | wxBOTTOM, 10); + mainBox->Add(filterCheckbox, 0, wxTOP | wxBOTTOM, 10); + + wxBoxSizer * hbox2 = new wxBoxSizer(wxHORIZONTAL); + hbox2->Add(new wxStaticText(editingPanel, wxID_ANY, translate("Priority: ")), 0, wxRIGHT, 5); + hbox2->Add(prioritySpin); + mainBox->Add(hbox2, 0, wxEXPAND | wxBOTTOM, 10); + + wxStaticBoxSizer * staticBox = new wxStaticBoxSizer(wxVERTICAL, editingPanel, translate("Load After")); + staticBox->Add(loadAfterList, 1, wxEXPAND); + staticBox->Add(removeBtn, 0, wxEXPAND | wxALIGN_RIGHT | wxTOP, 5); + mainBox->Add(staticBox, 1, wxEXPAND); + + editingPanel->SetSizerAndFit(mainBox); + editingPanel->Layout(); + + //Set up rest of layout. + wxBoxSizer * bigBox = new wxBoxSizer(wxVERTICAL); + + wxBoxSizer * hBox = new wxBoxSizer(wxHORIZONTAL); + hBox->Add(pluginList, 1, wxEXPAND | wxALL, 10); + hBox->Add(editingPanel, 0, wxEXPAND | wxTOP | wxBOTTOM | wxRIGHT, 10); + bigBox->Add(hBox, 1, wxEXPAND | wxALL, 5); + + bigBox->Add(descText, 0, wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM, 15); + + //Need to add 'Yes' and 'No' buttons. + wxSizer * sizer = CreateSeparatedButtonSizer(wxAPPLY | wxCANCEL); + + //Now add buttons to window sizer. + if (sizer != NULL) + bigBox->Add(sizer, 0, wxEXPAND | wxLEFT | wxBOTTOM | wxRIGHT, 15); + + //Fill pluginList with the contents of basePlugins. + int i = 0; + for (list::const_iterator it = _basePlugins.begin(); it != _basePlugins.end(); ++it) { + pluginList->InsertItem(i, FromUTF8(it->Name())); + pluginList->SetItem(i, 1, FromUTF8(boss::IntToString(it->Priority()))); + if (it->FormIDs().empty()) { + pluginList->SetItemTextColour(i, wxColour(122, 122, 122)); + } + else if (it->LoadsBSA(_game)) { + pluginList->SetItemTextColour(i, wxColour(0, 142, 219)); + } + ++i; + } + pluginList->SetColumnWidth(0, wxLIST_AUTOSIZE); + pluginList->SetColumnWidth(1, 0); + descText->Wrap(pluginList->GetClientSize().GetWidth()); + + SetBackgroundColour(wxColour(255, 255, 255)); + SetIcon(wxIconLocation("BOSS.exe")); + + editingPanel->Hide(); + SetSizerAndFit(bigBox); +} + +void MiniEditor::OnPluginSelect(wxListEvent& event) { + //Create Plugin object for selected plugin. + wxString selectedPlugin = pluginList->GetItemText(event.GetIndex()); + wxString currentPlugin = pluginText->GetLabelText(); + + //Check if the selected plugin is the same as the current plugin. + if (selectedPlugin != currentPlugin) { + BOOST_LOG_TRIVIAL(debug) << "User selected plugin: " << selectedPlugin.ToUTF8(); + + //Apply any current edits. + if (!currentPlugin.empty()) { + ApplyEdits(currentPlugin, pluginList); + //Also update the item's priority value in the plugins list in case it has changed. + pluginList->SetItem(pluginList->FindItem(-1, currentPlugin), 1, FromUTF8(boss::IntToString(prioritySpin->GetValue()))); + } + + //Merge metadata. + boss::Plugin plugin = GetMasterData(selectedPlugin); + plugin.MergeMetadata(GetUserData(selectedPlugin)); + + //Now fill editor fields with new plugin's info and update control states. + BOOST_LOG_TRIVIAL(debug) << "Filling editor fields with plugin info."; + pluginText->SetLabelText(FromUTF8(plugin.Name())); + + prioritySpin->SetValue(plugin.Priority()); + + loadAfterList->DeleteAllItems(); + set files = plugin.LoadAfter(); + int i = 0; + for (set::const_iterator it = files.begin(), endit = files.end(); it != endit; ++it) { + loadAfterList->InsertItem(i, FromUTF8(it->Name())); + ++i; + } + if (loadAfterList->GetItemCount() == 0) + loadAfterList->SetColumnWidth(0, wxLIST_AUTOSIZE_USEHEADER); + else + loadAfterList->SetColumnWidth(0, wxLIST_AUTOSIZE); + + //Set control states. + prioritySpin->Enable(true); + filterCheckbox->Enable(true); + removeBtn->Enable(false); + } + + //Change layout. + if (pluginList->GetColumnWidth(1) == 0) + pluginList->SetColumnWidth(1, wxLIST_AUTOSIZE_USEHEADER); + if (!editingPanel->IsShown()) + editingPanel->Show(); + + //Window may need to be resized. + //Layout() doesn't do anything extra, it automatically gets called by the windows. + //InvalidateBestSize() doesn't do anything useful for the panel or the window. + pluginList->InvalidateBestSize(); //Makes the priority column visible without scrolling. + loadAfterList->InvalidateBestSize(); //Fixes long plugin filenames being cut off. + editingPanel->Fit(); //Fits the editing panel to the pluginText length. + editingPanel->SetMinSize(editingPanel->GetSize()); //Makes sure that the editing panel is not cut off when Fit() is called below. + descText->SetLabel(""); //If this isn't cleared, it'll stop the window resizing properly sometimes. + if (GetBestSize().GetHeight() > GetSize().GetHeight() || GetBestSize().GetWidth() > GetSize().GetWidth()) { + Fit(); + } + else { + descText->SetLabel(translate("Please submit any edits made for reasons other than personal preference to the BOSS team so that they may be included in the masterlist.")); + descText->Wrap(GetClientSize().GetWidth() - 30); + } +} + +void MiniEditor::OnFilterToggle(wxCommandEvent& event) { + //First need to merge the base and edited plugin lists so that the right priority values get displayed. + + list plugins(_basePlugins); + for (list::const_iterator it = _editedPlugins.begin(); it != _editedPlugins.end(); ++it) { + list::iterator pos = std::find(plugins.begin(), plugins.end(), *it); + pos->MergeMetadata(*it); + } + + //Disable list selection. + if (event.IsChecked()) + Unbind(wxEVT_LIST_ITEM_SELECTED, &MiniEditor::OnPluginSelect, this, LIST_Plugins); + else + Bind(wxEVT_LIST_ITEM_SELECTED, &MiniEditor::OnPluginSelect, this, LIST_Plugins); + + pluginList->Freeze(); + if (event.IsChecked()) { + boss::Plugin plugin(string(pluginText->GetLabelText().ToUTF8())); + list::const_iterator pos = std::find(plugins.begin(), plugins.end(), plugin); + + if (pos != plugins.end()) { + pluginList->DeleteAllItems(); + + bool loadsBSA = pos->LoadsBSA(_game); + + int i = 0; + for (list::const_iterator it = plugins.begin(); it != plugins.end(); ++it) { + //Want to filter to show only those the selected plugin can load after validly, and which also either conflict with it, + //or which load a BSA (if the selected plugin loads a BSA). + if (*it == *pos || !it->MustLoadAfter(*pos) && (pos->DoFormIDsOverlap(*it) || (loadsBSA && it->LoadsBSA(_game)))) { + pluginList->InsertItem(i, FromUTF8(it->Name())); + pluginList->SetItem(i, 1, FromUTF8(boss::IntToString(it->Priority()))); + if (it->FormIDs().empty()) { + pluginList->SetItemTextColour(i, wxColour(122, 122, 122)); + } + else if (it->LoadsBSA(_game)) { + pluginList->SetItemTextColour(i, wxColour(0, 142, 219)); + } + if (std::find(_editedPlugins.begin(), _editedPlugins.end(), *it) != _editedPlugins.end()) { + pluginList->SetItemFont(i, wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).Bold()); + } + ++i; + } + } + } + } + else { + pluginList->DeleteAllItems(); + int i = 0; + for (list::const_iterator it = plugins.begin(); it != plugins.end(); ++it) { + pluginList->InsertItem(i, FromUTF8(it->Name())); + pluginList->SetItem(i, 1, FromUTF8(boss::IntToString(it->Priority()))); + if (it->FormIDs().empty()) { + pluginList->SetItemTextColour(i, wxColour(122, 122, 122)); + } + else if (it->LoadsBSA(_game)) { + pluginList->SetItemTextColour(i, wxColour(0, 142, 219)); + } + if (std::find(_editedPlugins.begin(), _editedPlugins.end(), *it) != _editedPlugins.end()) { + pluginList->SetItemFont(i, wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).Bold()); + } + ++i; + } + } + + //Now re-select the current plugin in the list. + pluginList->Select(pluginList->FindItem(-1, pluginText->GetLabelText())); + pluginList->Thaw(); + Refresh(); +} + +void MiniEditor::OnRowSelect(wxListEvent& event) { + boss::File file(string(loadAfterList->GetItemText(event.GetIndex(), 0).ToUTF8())); + boss::Plugin plugin(string(pluginText->GetLabelText().ToUTF8())); + + list::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); + + if (it != _basePlugins.end()) + plugin = *it; + else + BOOST_LOG_TRIVIAL(warning) << "Could not find plugin in base list: " << plugin.Name(); + + set loadAfter = plugin.LoadAfter(); + + if (loadAfter.find(file) == loadAfter.end()) { + BOOST_LOG_TRIVIAL(trace) << "File \"" << file.Name() << "\" was not found in base plugin metadata. Removal enabled."; + removeBtn->Enable(true); + } + else { + BOOST_LOG_TRIVIAL(trace) << "File \"" << file.Name() << "\" was found in base plugin metadata. Removal disabled."; + removeBtn->Enable(false); + } +} + +void MiniEditor::OnRemoveRow(wxCommandEvent& event) { + loadAfterList->DeleteItem(loadAfterList->GetFirstSelected()); + removeBtn->Enable(false); +} + +void MiniEditor::OnDragStart(wxListEvent& event) { + wxTextDataObject data(pluginList->GetItemText(event.GetItem())); + wxDropSource dropSource(pluginList); + dropSource.SetData(data); + wxDragResult result = dropSource.DoDragDrop(); +} + +void MiniEditor::OnApply(wxCommandEvent& event) { + //Apply any current edits. + wxString currentPlugin = pluginText->GetLabelText(); + if (!currentPlugin.empty()) + ApplyEdits(currentPlugin, pluginList); + + EndModal(event.GetId()); +} + +const std::list& MiniEditor::GetEditedPlugins() const { + return _editedPlugins; +} + +boss::Plugin MiniEditor::GetNewData(const wxString& plugin) const { + //Get new data. Because most of it is missing in the MiniEditor, start with the existing data. + boss::Plugin edited(GetMasterData(plugin)); + edited.Priority(prioritySpin->GetValue()); + set files; + for (int i = 0, max = loadAfterList->GetItemCount(); i < max; ++i) { + files.insert(RowToFile(loadAfterList, i)); + } + edited.LoadAfter(files); + + return edited; +} + +void MiniEditor::OnResize(wxSizeEvent& event) { + descText->SetLabel(translate("Please submit any edits made for reasons other than personal preference to the BOSS team so that they may be included in the masterlist.")); + descText->Wrap(GetClientSize().GetWidth()-30); + event.Skip(); +} + +/////////////////////////////////// +// Editor Class +/////////////////////////////////// + +Editor::Editor(wxWindow *parent, const wxString& title, const std::string userlistPath, const std::list& basePlugins, std::list& editedPlugins, const unsigned int language, const boss::Game& game) : wxFrame(parent, wxID_ANY, title), _userlistPath(userlistPath), CommonEditor(basePlugins, game, editedPlugins) { //Initialise child windows. listBook = new wxNotebook(this, BOOK_Lists); @@ -270,12 +625,13 @@ Editor::Editor(wxWindow *parent, const wxString& title, const std::string userli bigBox->Add(mainBox, 2, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 10); //Fill pluginList with the contents of basePlugins. - for (int i=0, max=_basePlugins.size(); i < max; ++i) { - pluginList->InsertItem(i, FromUTF8(_basePlugins[i].Name())); - if (_basePlugins[i].LoadsBSA(_game)) { + int i = 0; + for (list::const_iterator it = _basePlugins.begin(); it != _basePlugins.end(); ++it) { + pluginList->InsertItem(i, FromUTF8(it->Name())); + if (it->LoadsBSA(_game)) { pluginList->SetItemTextColour(i, wxColour(0, 142, 219)); } - if (std::find(_editedPlugins.begin(), _editedPlugins.end(), _basePlugins[i]) != _editedPlugins.end()) { + if (std::find(_editedPlugins.begin(), _editedPlugins.end(), *it) != _editedPlugins.end()) { pluginList->SetItemFont(i, wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).Bold()); } } @@ -299,7 +655,7 @@ void Editor::OnPluginSelect(wxListEvent& event) { //Apply any current edits. if (!currentPlugin.empty()) - ApplyEdits(currentPlugin); + ApplyEdits(currentPlugin, pluginList); //Merge metadata. boss::Plugin plugin = GetMasterData(selectedPlugin); @@ -328,6 +684,10 @@ void Editor::OnPluginSelect(wxListEvent& event) { loadAfterList->SetItem(i, 2, FromUTF8(it->Condition())); ++i; } + if (loadAfterList->GetItemCount() == 0) + loadAfterList->SetColumnWidth(0, wxLIST_AUTOSIZE_USEHEADER); + else + loadAfterList->SetColumnWidth(0, wxLIST_AUTOSIZE); files = plugin.Reqs(); i=0; @@ -337,6 +697,10 @@ void Editor::OnPluginSelect(wxListEvent& event) { reqsList->SetItem(i, 2, FromUTF8(it->Condition())); ++i; } + if (reqsList->GetItemCount() == 0) + reqsList->SetColumnWidth(0, wxLIST_AUTOSIZE_USEHEADER); + else + reqsList->SetColumnWidth(0, wxLIST_AUTOSIZE); files = plugin.Incs(); i=0; @@ -346,6 +710,10 @@ void Editor::OnPluginSelect(wxListEvent& event) { incsList->SetItem(i, 2, FromUTF8(it->Condition())); ++i; } + if (incsList->GetItemCount() == 0) + incsList->SetColumnWidth(0, wxLIST_AUTOSIZE_USEHEADER); + else + incsList->SetColumnWidth(0, wxLIST_AUTOSIZE); list messages = plugin.Messages(); vector vec(messages.begin(), messages.end()); @@ -362,6 +730,10 @@ void Editor::OnPluginSelect(wxListEvent& event) { tagsList->SetItem(i, 2, FromUTF8(it->Condition())); ++i; } + if (tagsList->GetItemCount() == 0) + tagsList->SetColumnWidth(0, wxLIST_AUTOSIZE_USEHEADER); + else + tagsList->SetColumnWidth(0, wxLIST_AUTOSIZE); set dirtyInfo = plugin.DirtyInfo(); i=0; @@ -373,6 +745,10 @@ void Editor::OnPluginSelect(wxListEvent& event) { dirtyList->SetItem(i, 4, FromUTF8(it->CleaningUtility())); ++i; } + if (dirtyList->GetItemCount() == 0) + dirtyList->SetColumnWidth(0, wxLIST_AUTOSIZE_USEHEADER); + else + dirtyList->SetColumnWidth(0, wxLIST_AUTOSIZE); //Set control states. prioritySpin->Enable(true); @@ -381,6 +757,7 @@ void Editor::OnPluginSelect(wxListEvent& event) { editBtn->Enable(false); removeBtn->Enable(false); } + Fit(); } void Editor::OnPluginListRightClick(wxListEvent& event) { @@ -429,7 +806,7 @@ void Editor::OnPluginClearMetadata(wxCommandEvent& event) { //Need to clear what's currently in the editor and what's from the userlist. - vector::const_iterator it = std::find(_editedPlugins.begin(), _editedPlugins.end(), p); + list::const_iterator it = std::find(_editedPlugins.begin(), _editedPlugins.end(), p); //Delete existing userlist entry. if (it != _editedPlugins.end()) @@ -678,7 +1055,7 @@ void Editor::OnRowSelect(wxListEvent& event) { boss::File file = RowToFile(reqsList, event.GetIndex()); boss::Plugin plugin(string(pluginText->GetLabelText().ToUTF8())); - vector::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); + list::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); if (it != _basePlugins.end()) plugin = *it; @@ -702,7 +1079,7 @@ void Editor::OnRowSelect(wxListEvent& event) { boss::File file = RowToFile(incsList, event.GetIndex()); boss::Plugin plugin(string(pluginText->GetLabelText().ToUTF8())); - vector::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); + list::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); if (it != _basePlugins.end()) plugin = *it; @@ -726,7 +1103,7 @@ void Editor::OnRowSelect(wxListEvent& event) { boss::File file = RowToFile(loadAfterList, event.GetIndex()); boss::Plugin plugin(string(pluginText->GetLabelText().ToUTF8())); - vector::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); + list::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); if (it != _basePlugins.end()) plugin = *it; @@ -750,7 +1127,7 @@ void Editor::OnRowSelect(wxListEvent& event) { boss::Message message = messageList->GetItem(event.GetIndex()); boss::Plugin plugin(string(pluginText->GetLabelText().ToUTF8())); - vector::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); + list::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); if (it != _basePlugins.end()) plugin = *it; @@ -774,7 +1151,7 @@ void Editor::OnRowSelect(wxListEvent& event) { boss::Tag tag = RowToTag(tagsList, event.GetIndex()); boss::Plugin plugin(string(pluginText->GetLabelText().ToUTF8())); - vector::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); + list::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); if (it != _basePlugins.end()) plugin = *it; @@ -797,7 +1174,7 @@ void Editor::OnRowSelect(wxListEvent& event) { boss::PluginDirtyInfo dirtyData = RowToPluginDirtyInfo(dirtyList, event.GetIndex()); boss::Plugin plugin(string(pluginText->GetLabelText().ToUTF8())); - vector::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); + list::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), plugin); if (it != _basePlugins.end()) plugin = *it; @@ -825,7 +1202,7 @@ void Editor::OnQuit(wxCommandEvent& event) { //Apply any current edits. wxString currentPlugin = pluginText->GetLabelText(); if (!currentPlugin.empty()) - ApplyEdits(currentPlugin); + ApplyEdits(currentPlugin, pluginList); BOOST_LOG_TRIVIAL(debug) << "Saving metadata edits to userlist."; @@ -844,54 +1221,6 @@ void Editor::OnQuit(wxCommandEvent& event) { Close(); } -void Editor::ApplyEdits(const wxString& plugin) { - BOOST_LOG_TRIVIAL(debug) << "Applying edits to plugin: " << plugin.ToUTF8(); - boss::Plugin master = GetMasterData(plugin); - boss::Plugin edited = GetNewData(plugin); - - boss::Plugin diff = master.DiffMetadata(edited); - - vector::iterator it = std::find(_editedPlugins.begin(), _editedPlugins.end(), diff); - - if (it != _editedPlugins.end()) - *it = diff; - else - _editedPlugins.push_back(diff); - - //Also mark plugin as edited in list. - long i = pluginList->FindItem(-1, plugin); - if (!diff.HasNameOnly()) - pluginList->SetItemFont(i, wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).Bold()); - else - pluginList->SetItemFont(i, wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); - -} - -boss::Plugin Editor::GetMasterData(const wxString& plugin) const { - BOOST_LOG_TRIVIAL(debug) << "Getting hardcoded and masterlist metadata for plugin: " << plugin.ToUTF8(); - boss::Plugin p; - boss::Plugin p_in(string(plugin.ToUTF8())); - - vector::const_iterator it = std::find(_basePlugins.begin(), _basePlugins.end(), p_in); - - if (it != _basePlugins.end()) - p = *it; - - return p; -} - -boss::Plugin Editor::GetUserData(const wxString& plugin) const { - BOOST_LOG_TRIVIAL(debug) << "Getting userlist metadata for plugin: " << plugin.ToUTF8(); - boss::Plugin p(string(plugin.ToUTF8())); - - vector::const_iterator it = std::find(_editedPlugins.begin(), _editedPlugins.end(), p); - - if (it != _editedPlugins.end()) - p = *it; - - return p; -} - boss::Plugin Editor::GetNewData(const wxString& plugin) const { BOOST_LOG_TRIVIAL(debug) << "Getting metadata from editor fields for plugin: " << plugin.ToUTF8(); boss::Plugin p(string(plugin.ToUTF8())); @@ -935,422 +1264,3 @@ boss::Plugin Editor::GetNewData(const wxString& plugin) const { return p; } - -boss::File Editor::RowToFile(wxListView * list, long row) const { - return boss::File( - string(list->GetItemText(row, 0).ToUTF8()), - string(list->GetItemText(row, 1).ToUTF8()), - string(list->GetItemText(row, 2).ToUTF8()) - ); -} - -boss::Tag Editor::RowToTag(wxListView * list, long row) const { - string name = string(list->GetItemText(row, 1).ToUTF8()); - - if (list->GetItemText(row, 0) == State[1]) - return boss::Tag( - name, - false, - string(list->GetItemText(row, 2).ToUTF8()) - ); - else - return boss::Tag( - name, - true, - string(list->GetItemText(row, 2).ToUTF8()) - ); -} - -boss::PluginDirtyInfo Editor::RowToPluginDirtyInfo(wxListView * list, long row) const { - string text(list->GetItemText(row, 0).ToUTF8()); - uint32_t crc = strtoul(text.c_str(), NULL, 16); - return boss::PluginDirtyInfo( - crc, - atoi(string(list->GetItemText(row, 1).ToUTF8()).c_str()), - atoi(string(list->GetItemText(row, 2).ToUTF8()).c_str()), - atoi(string(list->GetItemText(row, 3).ToUTF8()).c_str()), - string(list->GetItemText(row, 4).ToUTF8())); -} - -FileEditDialog::FileEditDialog(wxWindow *parent, const wxString& title) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) { - - _name = new wxTextCtrl(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_EMPTY)); - _display = new wxTextCtrl(this, wxID_ANY); - _condition = new wxTextCtrl(this, wxID_ANY); - - wxSizerFlags leftItem(0); - leftItem.Left(); - - wxSizerFlags rightItem(1); - rightItem.Right().Expand(); - - wxBoxSizer * bigBox = new wxBoxSizer(wxVERTICAL); - - wxFlexGridSizer * GridSizer = new wxFlexGridSizer(2, 5, 5); - GridSizer->AddGrowableCol(1,1); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Filename (required):")), leftItem); - GridSizer->Add(_name, rightItem); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Displayed Name:")), leftItem); - GridSizer->Add(_display, rightItem); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Condition:")), leftItem); - GridSizer->Add(_condition, rightItem); - - bigBox->Add(GridSizer, 0, wxEXPAND|wxALL, 15); - - bigBox->AddSpacer(10); - bigBox->AddStretchSpacer(1); - - //Need to add 'OK' and 'Cancel' buttons. - wxSizer * sizer = CreateSeparatedButtonSizer(wxOK|wxCANCEL); - if (sizer != NULL) - bigBox->Add(sizer, 0, wxEXPAND|wxLEFT|wxBOTTOM|wxRIGHT, 15); - - SetBackgroundColour(wxColour(255,255,255)); - SetIcon(wxIconLocation("BOSS.exe")); - SetSizerAndFit(bigBox); -} - -void FileEditDialog::SetValues(const wxString& name, const wxString& display, const wxString& condition) { - - _name->SetValue(name); - _display->SetValue(display); - _condition->SetValue(condition); -} - -wxString FileEditDialog::GetName() const { - return _name->GetValue(); -} - -wxString FileEditDialog::GetDisplayName() const { - return _display->GetValue(); -} - -wxString FileEditDialog::GetCondition() const { - return _condition->GetValue(); -} - -MessageEditDialog::MessageEditDialog(wxWindow *parent, const wxString& title) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) { - - wxArrayString languages; - vector langs = boss::Language::Names(); - for (size_t i = 0; i < langs.size(); i++) { - languages.Add(FromUTF8(langs[i])); - } - - //Initialise controls. - _type = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 3, Type); - _language = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, languages); - - _condition = new wxTextCtrl(this, wxID_ANY); - _str = new wxTextCtrl(this, wxID_ANY); - - _content = new wxListView(this, LIST_MessageContent, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL); - - addBtn = new wxButton(this, BUTTON_AddContent, translate("Add Content")); - editBtn = new wxButton(this, BUTTON_EditContent, translate("Edit Content")); - removeBtn = new wxButton(this, BUTTON_RemoveContent, translate("Remove Content")); - - _content->InsertColumn(0, translate("Language")); - _content->InsertColumn(1, translate("String")); - - //Set up event handling. - Bind(wxEVT_BUTTON, &MessageEditDialog::OnAdd, this, BUTTON_AddContent); - Bind(wxEVT_BUTTON, &MessageEditDialog::OnEdit, this, BUTTON_EditContent); - Bind(wxEVT_BUTTON, &MessageEditDialog::OnRemove, this, BUTTON_RemoveContent); - Bind(wxEVT_LIST_ITEM_SELECTED, &MessageEditDialog::OnSelect, this, LIST_MessageContent); - - wxSizerFlags leftItem(0); - leftItem.Left(); - - wxSizerFlags rightItem(1); - rightItem.Right(); - - wxSizerFlags wholeItem(0); - wholeItem.Expand().Border(wxLEFT|wxRIGHT|wxBOTTOM, 15); - - wxBoxSizer * bigBox = new wxBoxSizer(wxVERTICAL); - - wxFlexGridSizer * GridSizer = new wxFlexGridSizer(2, 5, 5); - GridSizer->AddGrowableCol(1,1); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Type:")), leftItem); - GridSizer->Add(_type, rightItem); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Condition:")), leftItem); - GridSizer->Add(_condition, rightItem); - - bigBox->AddSpacer(15); - - bigBox->Add(GridSizer, wholeItem); - - bigBox->Add(_content, wholeItem); - - wxFlexGridSizer * GridSizer2 = new wxFlexGridSizer(2, 5, 5); - GridSizer2->AddGrowableCol(1,1); - - GridSizer2->Add(new wxStaticText(this, wxID_ANY, translate("Language:")), leftItem); - GridSizer2->Add(_language, rightItem); - - GridSizer2->Add(new wxStaticText(this, wxID_ANY, translate("Content:")), leftItem); - GridSizer2->Add(_str, rightItem); - - bigBox->Add(GridSizer2, wholeItem); - - wxBoxSizer * hbox = new wxBoxSizer(wxHORIZONTAL); - hbox->Add(addBtn, 0, wxRIGHT, 5); - hbox->Add(editBtn, 0, wxLEFT|wxRIGHT, 5); - hbox->Add(removeBtn, 0, wxLEFT, 5); - bigBox->Add(hbox, 0, wxALIGN_RIGHT|wxLEFT|wxRIGHT, 15); - - bigBox->AddSpacer(10); - bigBox->AddStretchSpacer(1); - - //Need to add 'OK' and 'Cancel' buttons. - wxSizer * sizer = CreateSeparatedButtonSizer(wxOK|wxCANCEL); - if (sizer != NULL) - bigBox->Add(sizer, 0, wxEXPAND|wxLEFT|wxBOTTOM|wxRIGHT, 15); - - //Set defaults. - _type->SetSelection(0); - _language->SetSelection(0); - editBtn->Enable(false); - removeBtn->Enable(false); - - SetBackgroundColour(wxColour(255,255,255)); - SetIcon(wxIconLocation("BOSS.exe")); - SetSizerAndFit(bigBox); -} - -void MessageEditDialog::SetMessage(const boss::Message& message) { - - if (message.Type() == boss::g_message_say) - _type->SetSelection(0); - else if (message.Type() == boss::g_message_warn) - _type->SetSelection(1); - else - _type->SetSelection(2); - - _condition->SetValue(FromUTF8(message.Condition())); - - vector contents = message.Content(); - for (size_t i=0, max=contents.size(); i < max; ++i) { - _content->InsertItem(i, FromUTF8(boss::Language(contents[i].Language()).Name())); - _content->SetItem(i, 1, FromUTF8(contents[i].Str())); - } -} - -boss::Message MessageEditDialog::GetMessage() const { - - unsigned int type; - string condition; - if (_type->GetSelection() == 0) - type = boss::g_message_say; - else if (_type->GetSelection() == 1) - type = boss::g_message_warn; - else - type = boss::g_message_error; - - condition = string(_condition->GetValue().ToUTF8()); - - vector contents; - for (size_t i=0, max=_content->GetItemCount(); i < max; ++i) { - - string str = string(_content->GetItemText(i, 1).ToUTF8()); - unsigned int lang = boss::Language(string(_content->GetItemText(i, 0).ToUTF8())).Code(); - - contents.push_back(boss::MessageContent(str, lang)); - } - - return boss::Message(type, contents, condition); -} - -void MessageEditDialog::OnSelect(wxListEvent& event) { - _language->SetSelection(boss::Language(string(_content->GetItemText(event.GetIndex(), 0).ToUTF8())).Code()); - _str->SetValue(_content->GetItemText(event.GetIndex(), 1)); - editBtn->Enable(true); - removeBtn->Enable(true); -} - -void MessageEditDialog::OnAdd(wxCommandEvent& event) { - long i = _content->GetItemCount(); - _content->InsertItem(i, FromUTF8(boss::Language(_language->GetSelection()).Name())); - _content->SetItem(i, 1, _str->GetValue()); -} - -void MessageEditDialog::OnEdit(wxCommandEvent& event) { - if (_content->GetFirstSelected() == -1) { - BOOST_LOG_TRIVIAL(error) << "Attempting to edit message content, but no content row selected."; - wxMessageBox( - translate("Error: No content row selected."), - translate("BOSS: Error"), - wxOK | wxICON_ERROR, - NULL); - return; - } - long i = _content->GetFirstSelected(); - _content->SetItem(i, 0, FromUTF8(boss::Language(_language->GetSelection()).Name())); - _content->SetItem(i, 1, _str->GetValue()); -} - -void MessageEditDialog::OnRemove(wxCommandEvent& event) { - if (_content->GetFirstSelected() == -1) { - BOOST_LOG_TRIVIAL(error) << "Attempting to remove message content, but no content row selected."; - wxMessageBox( - translate("Error: No content row selected."), - translate("BOSS: Error"), - wxOK | wxICON_ERROR, - NULL); - return; - } - _content->DeleteItem(_content->GetFirstSelected()); - editBtn->Enable(false); - removeBtn->Enable(false); -} - -TagEditDialog::TagEditDialog(wxWindow *parent, const wxString& title) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) { - - //Initialise controls. - _state = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 2, State); - - _name = new wxTextCtrl(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_EMPTY)); - _condition = new wxTextCtrl(this, wxID_ANY); - - wxSizerFlags leftItem(0); - leftItem.Left(); - - wxSizerFlags rightItem(1); - rightItem.Right().Expand(); - - wxBoxSizer * bigBox = new wxBoxSizer(wxVERTICAL); - - wxFlexGridSizer * GridSizer = new wxFlexGridSizer(2, 5, 5); - GridSizer->AddGrowableCol(1,1); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Add/Remove:")), leftItem); - GridSizer->Add(_state, rightItem); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Name (required):")), leftItem); - GridSizer->Add(_name, rightItem); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Condition:")), leftItem); - GridSizer->Add(_condition, rightItem); - - bigBox->Add(GridSizer, 0, wxEXPAND|wxALL, 15); - - bigBox->AddSpacer(10); - bigBox->AddStretchSpacer(1); - - //Need to add 'OK' and 'Cancel' buttons. - wxSizer * sizer = CreateSeparatedButtonSizer(wxOK|wxCANCEL); - if (sizer != NULL) - bigBox->Add(sizer, 0, wxEXPAND|wxLEFT|wxBOTTOM|wxRIGHT, 15); - - //Set defaults. - _state->SetSelection(0); - - SetBackgroundColour(wxColour(255,255,255)); - SetIcon(wxIconLocation("BOSS.exe")); - SetSizerAndFit(bigBox); -} - -void TagEditDialog::SetValues(int state, const wxString& name, const wxString& condition) { - - _state->SetSelection(state); - _name->SetValue(name); - _condition->SetValue(condition); -} - -wxString TagEditDialog::GetState() const { - return State[_state->GetSelection()]; -} - -wxString TagEditDialog::GetName() const { - return _name->GetValue(); -} - -wxString TagEditDialog::GetCondition() const { - return _condition->GetValue(); -} - -DirtInfoEditDialog::DirtInfoEditDialog(wxWindow * parent, const wxString& title) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) { - //Initialise controls. - wxTextValidator val(wxFILTER_EMPTY | wxFILTER_INCLUDE_CHAR_LIST); - val.SetCharIncludes("0123456789ABCDEFabcdef"); - - _itm = new wxSpinCtrl(this, wxID_ANY, "0"); - _udr = new wxSpinCtrl(this, wxID_ANY, "0"); - _nav = new wxSpinCtrl(this, wxID_ANY, "0"); - _crc = new wxTextCtrl(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0, val); - _utility = new wxTextCtrl(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_EMPTY)); - - wxSizerFlags leftItem(0); - leftItem.Left(); - - wxSizerFlags rightItem(1); - rightItem.Right().Expand(); - - wxBoxSizer * bigBox = new wxBoxSizer(wxVERTICAL); - - wxFlexGridSizer * GridSizer = new wxFlexGridSizer(2, 5, 5); - GridSizer->AddGrowableCol(1,1); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("CRC (required):")), leftItem); - GridSizer->Add(_crc, rightItem); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("ITM Count:")), leftItem); - GridSizer->Add(_itm, rightItem); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("UDR Count:")), leftItem); - GridSizer->Add(_udr, rightItem); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Deleted Navmesh Count:")), leftItem); - GridSizer->Add(_nav, rightItem); - - GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Cleaning Utility (required):")), leftItem); - GridSizer->Add(_utility, rightItem); - - bigBox->Add(GridSizer, 0, wxEXPAND|wxALL, 15); - - bigBox->AddSpacer(10); - bigBox->AddStretchSpacer(1); - - //Need to add 'OK' and 'Cancel' buttons. - wxSizer * sizer = CreateSeparatedButtonSizer(wxOK|wxCANCEL); - if (sizer != NULL) - bigBox->Add(sizer, 0, wxEXPAND|wxLEFT|wxBOTTOM|wxRIGHT, 15); - - SetBackgroundColour(wxColour(255,255,255)); - SetIcon(wxIconLocation("BOSS.exe")); - SetSizerAndFit(bigBox); -} - -void DirtInfoEditDialog::SetValues(const wxString& crc, unsigned int itm, unsigned int udr, unsigned int nav, const wxString& utility) { - _crc->SetValue(crc); - _itm->SetValue(itm); - _udr->SetValue(udr); - _nav->SetValue(nav); - _utility->SetValue(utility); -} - -wxString DirtInfoEditDialog::GetCRC() const { - return _crc->GetValue(); -} - -unsigned int DirtInfoEditDialog::GetITMs() const { - return _itm->GetValue(); -} - -unsigned int DirtInfoEditDialog::GetUDRs() const { - return _udr->GetValue(); -} - -unsigned int DirtInfoEditDialog::GetDeletedNavmeshes() const { - return _nav->GetValue(); -} - -wxString DirtInfoEditDialog::GetUtility() const { - return _utility->GetValue(); -} diff --git a/src/gui/editor.h b/src/gui/editor.h index 55f565b2..869095a6 100644 --- a/src/gui/editor.h +++ b/src/gui/editor.h @@ -24,54 +24,104 @@ #define __BOSS_GUI_EDITOR__ #include "ids.h" +#include "misc.h" #include "../backend/metadata.h" #include -#include +#include #include #include #include +#include +#include -class MessageList : public wxListView { +/* Have two versions of the editor: one mini editor that only contains + controls for editing the load order related metadata, and a full editor + that contains controls for editing all the metadata. + + Both editors need to convert between metadata and control data, and to + keep track of what edits have been made. + + Have a immutable plugin list to keep track of non-user-edit metadata, + and a mutable plugin list to keep track of user-edit metadata. When + recording edits, diff the metadata obtained from the control values with + the metadata in the immutable plugin entry to get the new user-edit metadata. + + If a metadata type's corresponding control is not present (ie. in the mini + editor), then use the immutable plugin entry's metadata for that type. +*/ + +class TextDropTarget : public wxTextDropTarget { //Class to override virtual functions. public: - MessageList(wxWindow * parent, wxWindowID id, const unsigned int language); - - void SetItems(const std::vector& messages); - std::vector GetItems() const; - - boss::Message GetItem(long item) const; - void SetItem(long item, const boss::Message& message); - void AppendItem(const boss::Message& message); - - void OnDeleteItem(wxListEvent& event); -protected: - wxString OnGetItemText(long item, long column) const; - + TextDropTarget(wxListView * owner, wxStaticText * name); + virtual bool OnDropText(wxCoord x, wxCoord y, const wxString &data); private: - std::vector _messages; - const unsigned int _language; + wxListView * targetOwner; + wxStaticText * targetName; }; -class Editor : public wxFrame { +class CommonEditor { public: - Editor(wxWindow *parent, const wxString& title, const std::string userlistPath, const std::vector& basePlugins, std::vector& editedPlugins, const unsigned int language, const boss::Game& game); + CommonEditor(const std::list& plugins, const boss::Game& game); + CommonEditor(const std::list& plugins, const boss::Game& game, std::list& editedPlugins); +protected: + const boss::Game& _game; + const std::list _basePlugins; + std::list _editedPlugins; + + boss::Plugin GetMasterData(const wxString& plugin) const; + boss::Plugin GetUserData(const wxString& plugin) const; + virtual boss::Plugin GetNewData(const wxString& plugin) const = 0; + + void ApplyEdits(const wxString& plugin, wxListView * list); + + boss::File RowToFile(wxListView * list, long row) const; + boss::Tag RowToTag(wxListView * list, long row) const; + boss::PluginDirtyInfo RowToPluginDirtyInfo(wxListView * list, long row) const; +}; + +class MiniEditor : public wxDialog, public CommonEditor { +public: + MiniEditor(wxWindow *parent, const wxString& title, const std::list& plugins, const boss::Game& game); + + void OnPluginSelect(wxListEvent& event); + void OnRowSelect(wxListEvent& event); + void OnRemoveRow(wxCommandEvent& event); + void OnFilterToggle(wxCommandEvent& event); + void OnDragStart(wxListEvent& event); + void OnApply(wxCommandEvent& event); + void OnResize(wxSizeEvent& event); + + const std::list& GetEditedPlugins() const; +private: + wxListView * pluginList; + wxPanel * editingPanel; + wxButton * removeBtn; + wxListView * loadAfterList; + wxCheckBox * filterCheckbox; + wxSpinCtrl * prioritySpin; + wxStaticText * pluginText; + wxStaticText * descText; + + boss::Plugin GetNewData(const wxString& plugin) const; +}; + +class Editor : public wxFrame, public CommonEditor { +public: + Editor(wxWindow *parent, const wxString& title, const std::string userlistPath, const std::list& basePlugins, std::list& editedPlugins, const unsigned int language, const boss::Game& game); void OnPluginSelect(wxListEvent& event); void OnPluginListRightClick(wxListEvent& event); void OnPluginCopyName(wxCommandEvent& event); void OnPluginCopyMetadata(wxCommandEvent& event); void OnPluginClearMetadata(wxCommandEvent& event); - void OnEnabledToggle(wxCommandEvent& event); - void OnPriorityChange(wxSpinEvent& event); void OnListBookChange(wxBookCtrlEvent& event); void OnAddRow(wxCommandEvent& event); void OnEditRow(wxCommandEvent& event); void OnRemoveRow(wxCommandEvent& event); - void OnRecalc(wxCommandEvent& event); void OnRowSelect(wxListEvent& event); void OnQuit(wxCommandEvent& event); private: - wxMenu * pluginMenu; wxButton * addBtn; wxButton * editBtn; @@ -91,88 +141,7 @@ private: wxStaticText * pluginText; const std::string _userlistPath; - const std::vector _basePlugins; - const boss::Game& _game; - std::vector _editedPlugins; - std::vector currentMessages; - void ApplyEdits(const wxString& plugin); - - boss::Plugin GetMasterData(const wxString& plugin) const; - boss::Plugin GetUserData(const wxString& plugin) const; boss::Plugin GetNewData(const wxString& plugin) const; - - boss::File RowToFile(wxListView * list, long row) const; - boss::Tag RowToTag(wxListView * list, long row) const; - boss::PluginDirtyInfo RowToPluginDirtyInfo(wxListView * list, long row) const; }; - -class FileEditDialog : public wxDialog { -public: - FileEditDialog(wxWindow *parent, const wxString& title); - - void SetValues(const wxString& name, const wxString& display, const wxString& condition); - wxString GetName() const; - wxString GetDisplayName() const; - wxString GetCondition() const; -private: - wxTextCtrl * _name; - wxTextCtrl * _display; - wxTextCtrl * _condition; -}; - -class MessageEditDialog : public wxDialog { -public: - MessageEditDialog(wxWindow *parent, const wxString& title); - - void SetMessage(const boss::Message& message); - boss::Message GetMessage() const; - - void OnSelect(wxListEvent& event); - void OnAdd(wxCommandEvent& event); - void OnEdit(wxCommandEvent& event); - void OnRemove(wxCommandEvent& event); -private: - wxButton * addBtn; - wxButton * editBtn; - wxButton * removeBtn; - wxChoice * _type; - wxChoice * _language; - wxListView * _content; - wxTextCtrl * _condition; - wxTextCtrl * _str; -}; - -class TagEditDialog : public wxDialog { -public: - TagEditDialog(wxWindow *parent, const wxString& title); - - void SetValues(int state, const wxString& name, const wxString& condition); - wxString GetState() const; - wxString GetName() const; - wxString GetCondition() const; -private: - wxChoice * _state; - wxTextCtrl * _name; - wxTextCtrl * _condition; -}; - -class DirtInfoEditDialog : public wxDialog { -public: - DirtInfoEditDialog(wxWindow * parent, const wxString& title); - - void SetValues(const wxString& crc, unsigned int itm, unsigned int udr, unsigned int nav, const wxString& utility); - wxString GetCRC() const; - wxString GetUtility() const; - unsigned int GetITMs() const; - unsigned int GetUDRs() const; - unsigned int GetDeletedNavmeshes() const; -private: - wxTextCtrl * _crc; - wxSpinCtrl * _itm; - wxSpinCtrl * _udr; - wxSpinCtrl * _nav; - wxTextCtrl * _utility; -}; - #endif diff --git a/src/gui/main.cpp b/src/gui/main.cpp index 1e957dd5..b454ac2d 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -24,6 +24,7 @@ #include "settings.h" #include "editor.h" #include "viewer.h" +#include "misc.h" #include "../backend/globals.h" #include "../backend/metadata.h" @@ -487,6 +488,106 @@ void Launcher::OnClose(wxCloseEvent& event) { Destroy(); } +void Launcher::OnViewLastReport(wxCommandEvent& event) { + if (_settings["View Report Externally"] && _settings["View Report Externally"].as()) { + BOOST_LOG_TRIVIAL(debug) << "Opening report in external application..."; + wxLaunchDefaultBrowser(FromUTF8(ToFileURL(_game.ReportPath().string()))); + } + else { + //Create viewer window. + BOOST_LOG_TRIVIAL(debug) << "Opening viewer window..."; + Viewer *viewer = new Viewer(this, translate("BOSS: Report Viewer"), FromUTF8(ToFileURL(_game.ReportPath().string()))); + viewer->Show(); + } + BOOST_LOG_TRIVIAL(debug) << "Report displayed."; +} + +void Launcher::OnOpenSettings(wxCommandEvent& event) { + BOOST_LOG_TRIVIAL(debug) << "Opening settings window..."; + SettingsFrame *settings = new SettingsFrame(this, translate("BOSS: Settings"), _settings, _games); + settings->ShowModal(); + BOOST_LOG_TRIVIAL(debug) << "Settings window opened."; +} + +void Launcher::OnGameChange(wxCommandEvent& event) { + BOOST_LOG_TRIVIAL(debug) << "Changing current game..."; + _game = _games[event.GetId() - MENU_LowestDynamicGameID]; + try { + _game.Init(); //In case it hasn't already been done. + *find(_games.begin(), _games.end(), _game) = _game; //Sync changes. + BOOST_LOG_TRIVIAL(debug) << "New game is " << _game.Name(); + } + catch (boss::error& e) { + BOOST_LOG_TRIVIAL(error) << "Game-specific settings could not be initialised." << e.what(); + wxMessageBox( + FromUTF8(format(loc::translate("Error: Game-specific settings could not be initialised. %1%")) % e.what()), + translate("BOSS: Error"), + wxOK | wxICON_ERROR, + NULL); + } + SetTitle(FromUTF8("BOSS - " + _game.Name())); + if (_game.Id() == boss::g_game_tes5) + RedatePluginsItem->Enable(true); + else + RedatePluginsItem->Enable(false); +} + +void Launcher::OnHelp(wxCommandEvent& event) { + //Look for file. + BOOST_LOG_TRIVIAL(debug) << "Opening readme at: " << g_path_readme; + if (fs::exists(g_path_readme)) { + wxLaunchDefaultBrowser(FromUTF8(ToFileURL(g_path_readme.string()))); + } + else { //No readme exists, show a pop-up message saying so. + BOOST_LOG_TRIVIAL(error) << "File \"" << g_path_readme.string() << "\" could not be found."; + wxMessageBox( + FromUTF8(format(loc::translate("Error: \"%1%\" cannot be found.")) % g_path_readme.string()), + translate("BOSS: Error"), + wxOK | wxICON_ERROR, + this); + } +} + +void Launcher::OnOpenDebugLog(wxCommandEvent& event) { + //Look for file. + BOOST_LOG_TRIVIAL(debug) << "Opening debug log at: " << g_path_log; + if (fs::exists(g_path_log)) { + wxLaunchDefaultApplication(FromUTF8(g_path_log.string())); + } + else { //No log exists, show a pop-up message saying so. + BOOST_LOG_TRIVIAL(error) << "File \"" << g_path_log.string() << "\" could not be found."; + wxMessageBox( + FromUTF8(format(loc::translate("Error: \"%1%\" cannot be found.")) % g_path_log.string()), + translate("BOSS: Error"), + wxOK | wxICON_ERROR, + this); + } +} + +void Launcher::OnAbout(wxCommandEvent& event) { + BOOST_LOG_TRIVIAL(debug) << "Opening About dialog."; + wxAboutDialogInfo aboutInfo; + aboutInfo.SetName("BOSS"); + aboutInfo.SetVersion(IntToString(g_version_major) + "." + IntToString(g_version_minor) + "." + IntToString(g_version_patch)); + aboutInfo.SetDescription(translate("Load order optimisation for Oblivion, Skyrim, Fallout 3 and Fallout: New Vegas.")); + aboutInfo.SetCopyright("Copyright (C) 2009-2014 BOSS Development Team."); + aboutInfo.SetWebSite("http://boss-developers.github.io"); + aboutInfo.SetLicence("This program is free software: you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation, either version 3 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "This program is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU General Public License\n" + "along with this program. If not, see ."); + aboutInfo.SetIcon(wxIconLocation("BOSS.exe")); + wxAboutBox(aboutInfo); +} + void Launcher::OnSortPlugins(wxCommandEvent& event) { BOOST_LOG_TRIVIAL(debug) << "Beginning sorting process."; @@ -501,6 +602,10 @@ void Launcher::OnSortPlugins(wxCommandEvent& event) { wxProgressDialog *progDia = new wxProgressDialog(translate("BOSS: Working..."),translate("BOSS working..."), 1000, this, wxPD_APP_MODAL|wxPD_AUTO_HIDE|wxPD_ELAPSED_TIME); + /////////////////////////////////////////////////////// + // Load Plugins & Lists + /////////////////////////////////////////////////////// + bool doUpdate = _settings["Update Masterlist"] && _settings["Update Masterlist"].as(); masterlist_updater_parser mup(doUpdate, _game, messages, mlist_plugins, mlist_messages, revision); group.create_thread(mup); @@ -560,6 +665,10 @@ void Launcher::OnSortPlugins(wxCommandEvent& event) { progDia->Pulse(); + /////////////////////////////////////////////////////// + // Merge & Check Metadata + /////////////////////////////////////////////////////// + if (fs::exists(_game.MasterlistPath()) || fs::exists(_game.UserlistPath())) { //Set language. @@ -629,16 +738,10 @@ void Launcher::OnSortPlugins(wxCommandEvent& event) { //Also check install validity. BOOST_LOG_TRIVIAL(trace) << "Checking that the current install is valid according to this plugin's data."; - map issues = graph[*vit].CheckInstallValidity(_game); + vector issues = graph[*vit].CheckInstallValidity(_game); list pluginMessages = graph[*vit].Messages(); - for (map::const_iterator jt=issues.begin(), endJt=issues.end(); jt != endJt; ++jt) { - if (jt->second) { - BOOST_LOG_TRIVIAL(error) << "\"" << jt->first << "\" is incompatible with \"" << graph[*vit].Name() << "\" and is present."; - pluginMessages.push_back(boss::Message(boss::g_message_error, (format(loc::translate("\"%1%\" is incompatible with \"%2%\" and is present.")) % jt->first % graph[*vit].Name()).str())); - } else { - BOOST_LOG_TRIVIAL(error) << "\"" << jt->first << "\" is required by \"" << graph[*vit].Name() << "\" but is missing."; - pluginMessages.push_back(boss::Message(boss::g_message_error, (format(loc::translate("\"%1%\" is required by \"%2%\" but is missing.")) % jt->first % graph[*vit].Name()).str())); - } + for (vector::const_iterator jt = issues.begin(), jtend = issues.end(); jt != jtend; ++jt) { + pluginMessages.push_back(boss::Message(boss::g_message_error, *jt)); } if (!issues.empty()) graph[*vit].Messages(pluginMessages); @@ -647,123 +750,136 @@ void Launcher::OnSortPlugins(wxCommandEvent& event) { } } - progDia->Pulse(); + progDia->Update(800, translate("Building plugin graph...")); - BOOST_LOG_TRIVIAL(debug) << "Building the plugin dependency graph..."; + /////////////////////////////////////////////////////// + // Build Graph Edges & Sort + /////////////////////////////////////////////////////// - //Now add the interactions between plugins to the graph as edges. - BOOST_LOG_TRIVIAL(trace) << "Adding non-overlap edges."; - AddSpecificEdges(graph); + /* Need to loop this section. There are 3 ways to exit the loop: + + 1. Accept the load order at the preview with no changes. + 2. Cancel at the preview. + 3. Cancel making changes. - BOOST_LOG_TRIVIAL(trace) << "Adding priority edges."; - AddPriorityEdges(graph); - - BOOST_LOG_TRIVIAL(trace) << "Adding overlap edges."; - AddOverlapEdges(graph); + Otherwise, the sorting must loop. + + */ //Check for back-edges, then perform a topological sort. try { - BOOST_LOG_TRIVIAL(debug) << "Checking to see if the graph is cyclic."; - boss::CheckForCycles(graph); + bool applyLoadOrder = false; + long ret; + do { + BOOST_LOG_TRIVIAL(debug) << "Building the plugin dependency graph..."; - progDia->Pulse(); + //Now add the interactions between plugins to the graph as edges. + BOOST_LOG_TRIVIAL(trace) << "Adding non-overlap edges."; + AddSpecificEdges(graph); - BOOST_LOG_TRIVIAL(debug) << "Performing a topological sort."; - boss::Sort(graph, plugins); + BOOST_LOG_TRIVIAL(trace) << "Adding priority edges."; + AddPriorityEdges(graph); - progDia->Destroy(); - progDia = NULL; + BOOST_LOG_TRIVIAL(trace) << "Adding overlap edges."; + AddOverlapEdges(graph); - BOOST_LOG_TRIVIAL(debug) << "Displaying load order preview."; - LoadOrderPreview preview(this, translate("BOSS: Calculated Load Order"), plugins, _game); + BOOST_LOG_TRIVIAL(debug) << "Checking to see if the graph is cyclic."; + boss::CheckForCycles(graph); - if (preview.ShowModal() == wxID_OK) { - BOOST_LOG_TRIVIAL(debug) << "Load order accepted."; - list newPluginsList, editedPlugins; - newPluginsList = preview.GetLoadOrder(); + progDia->Pulse(); - BOOST_LOG_TRIVIAL(trace) << "Building list of edited plugins."; - for (list::iterator it=newPluginsList.begin(),endit=newPluginsList.end(); it != endit; ++it) { - list::const_iterator jt = find(plugins.begin(), plugins.end(), *it); + BOOST_LOG_TRIVIAL(debug) << "Performing a topological sort."; + boss::Sort(graph, plugins); - if (jt == plugins.end()) - continue; + progDia->Destroy(); + progDia = NULL; - boss::Plugin diff = it->DiffMetadata(*jt); + BOOST_LOG_TRIVIAL(debug) << "Displaying load order preview."; + MiniEditor editor(this, translate("BOSS: Calculated Load Order"), plugins, _game); - if (!diff.HasNameOnly()) - editedPlugins.push_back(diff); + long ret = editor.ShowModal(); + const std::list edits = editor.GetEditedPlugins(); + + if (ret != wxID_APPLY) { + applyLoadOrder = false; + break; + } + else if (edits.empty()) { + applyLoadOrder = true; + break; } - plugins.swap(newPluginsList); + else { + //Recreate progress dialog. + progDia = new wxProgressDialog(translate("BOSS: Working..."), translate("Recalculating load order..."), 1000, this, wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_ELAPSED_TIME); - if (!editedPlugins.empty()) { + //User accepted edits, now apply them, then loop. + //Apply edits to the graph vertices. + boss::vertex_it vit, vitend; + for (boost::tie(vit, vitend) = boost::vertices(graph); vit != vitend; ++vit) { + std::list::const_iterator pos = std::find(edits.begin(), edits.end(), graph[*vit]); + if (pos != edits.end()) { + BOOST_LOG_TRIVIAL(trace) << "Merging edits down to plugin list data."; + graph[*vit].MergeMetadata(*pos); + } + } + + //Clear all existing edges from the graph. + BOOST_LOG_TRIVIAL(trace) << "Clearing all existing edges from the plugin graph."; + for (boost::tie(vit, vitend) = boost::vertices(graph); vit != vitend; ++vit) { + boost::clear_vertex(*vit, graph); + } + + //Merge edits down to the userlist entries. BOOST_LOG_TRIVIAL(trace) << "Merging down edits to the userlist."; - for (list::const_iterator it=editedPlugins.begin(),endit=editedPlugins.end(); it != endit; ++it) { + for (list::const_iterator it = edits.begin(), endit = edits.end(); it != endit; ++it) { list::iterator jt = find(ulist_plugins.begin(), ulist_plugins.end(), *it); if (jt != ulist_plugins.end()) { jt->MergeMetadata(*it); - } else { + } + else { ulist_plugins.push_back(*it); } } - BOOST_LOG_TRIVIAL(trace) << "Checking that any pre-existing 'load after' entries in the userlist are still valid."; - for (list::iterator it=ulist_plugins.begin(),endit=ulist_plugins.end(); it != endit; ++it) { - //Double-check that the plugin is still loading after any other plugins already in its "load after" metadata. - list::iterator mainPos = find(plugins.begin(), plugins.end(), *it); - - if (mainPos == plugins.end()) - continue; - - size_t mainDist = distance(plugins.begin(), mainPos); - - set loadAfter = it->LoadAfter(); - set::iterator jt = loadAfter.begin(); - while (jt != loadAfter.end()) { - list::iterator filePos = find(plugins.begin(), plugins.end(), *jt); - - size_t fileDist = distance(plugins.begin(), filePos); - - if (fileDist > mainDist) - loadAfter.erase(jt++); - else - ++jt; - } - it->LoadAfter(loadAfter); - } - //Save edits to userlist. BOOST_LOG_TRIVIAL(debug) << "Saving edited userlist."; YAML::Emitter yout; yout.SetIndent(2); yout << YAML::BeginMap - << YAML::Key << "plugins" << YAML::Value << ulist_plugins - << YAML::EndMap; + << YAML::Key << "plugins" << YAML::Value << ulist_plugins + << YAML::EndMap; boss::ofstream uout(_game.UserlistPath()); uout << yout.c_str(); uout.close(); - } - //Now set load order. + //Now loop. + } + } while (true); + + if (applyLoadOrder) { + //User doesn't want to make any changes. Just go straight to applying the load order. BOOST_LOG_TRIVIAL(debug) << "Setting load order."; try { _game.SetLoadOrder(plugins); - } catch (boss::error& e) { + } + catch (boss::error& e) { BOOST_LOG_TRIVIAL(error) << "Failed to set the load order. Details: " << e.what(); messages.push_back(boss::Message(boss::g_message_error, (format(loc::translate("Failed to set the load order. Details: %1%")) % e.what()).str())); } - } else { + BOOST_LOG_TRIVIAL(trace) << "Load order set:"; + for (list::iterator it = plugins.begin(), endIt = plugins.end(); it != endIt; ++it) { + BOOST_LOG_TRIVIAL(trace) << '\t' << it->Name(); + } + } + else { + //User decided to cancel sorting. Just go straight to displaying the report. BOOST_LOG_TRIVIAL(info) << "The load order calculated was not applied as sorting was canceled."; messages.push_back(boss::Message(boss::g_message_warn, loc::translate("The load order displayed in the Details tab was not applied as sorting was canceled."))); } - BOOST_LOG_TRIVIAL(trace) << "Load order set:"; - for (list::iterator it=plugins.begin(), endIt = plugins.end(); it != endIt; ++it) { - BOOST_LOG_TRIVIAL(trace) << '\t' << it->Name(); - } } catch (std::exception& e) { BOOST_LOG_TRIVIAL(error) << "Failed to calculate the load order. Details: " << e.what(); messages.push_back(boss::Message(boss::g_message_error, (format(loc::translate("Failed to calculate the load order. Details: %1%")) % e.what()).str())); @@ -772,6 +888,10 @@ void Launcher::OnSortPlugins(wxCommandEvent& event) { progDia = NULL; } + /////////////////////////////////////////////////////// + // Build & Display Report + /////////////////////////////////////////////////////// + //Read the details section of the previous report, if it exists. string oldDetails; if (fs::exists(_game.ReportPath().string())) { @@ -835,7 +955,7 @@ void Launcher::OnSortPlugins(wxCommandEvent& event) { void Launcher::OnEditMetadata(wxCommandEvent& event) { //Should probably check for masterlist updates before opening metadata editor. - vector installed, mlist_plugins, ulist_plugins; + list installed, mlist_plugins, ulist_plugins; wxProgressDialog *progDia = new wxProgressDialog(translate("BOSS: Working..."),translate("BOSS working..."), 1000, this, wxPD_APP_MODAL|wxPD_AUTO_HIDE|wxPD_ELAPSED_TIME); @@ -866,7 +986,7 @@ void Launcher::OnEditMetadata(wxCommandEvent& event) { this); } if (mlist["plugins"]) - mlist_plugins = mlist["plugins"].as< vector >(); + mlist_plugins = mlist["plugins"].as< list >(); } progDia->Pulse(); @@ -888,26 +1008,25 @@ void Launcher::OnEditMetadata(wxCommandEvent& event) { this); } if (ulist["plugins"]) - ulist_plugins = ulist["plugins"].as< vector >(); + ulist_plugins = ulist["plugins"].as< list >(); } progDia->Pulse(); //Merge the masterlist down into the installed mods list. BOOST_LOG_TRIVIAL(debug) << "Merging the masterlist down into the installed mods list."; - for (vector::const_iterator it=mlist_plugins.begin(), endit=mlist_plugins.end(); it != endit; ++it) { - vector::iterator pos = find(installed.begin(), installed.end(), *it); + for (list::const_iterator it = mlist_plugins.begin(), endit = mlist_plugins.end(); it != endit; ++it) { + list::iterator pos = find(installed.begin(), installed.end(), *it); if (pos != installed.end()) pos->MergeMetadata(*it); } - progDia->Pulse(); //Add empty entries for any userlist entries that aren't installed. - BOOST_LOG_TRIVIAL(debug) << "Padding the userlist to match the plugins in the installed mods list."; - for (vector::const_iterator it=ulist_plugins.begin(), endit=ulist_plugins.end(); it != endit; ++it) { + BOOST_LOG_TRIVIAL(debug) << "Padding the installed mods list to match the plugins in the userlist."; + for (list::const_iterator it = ulist_plugins.begin(), endit = ulist_plugins.end(); it != endit; ++it) { if (find(installed.begin(), installed.end(), *it) == installed.end()) installed.push_back(boss::Plugin(it->Name())); } @@ -916,7 +1035,7 @@ void Launcher::OnEditMetadata(wxCommandEvent& event) { //Sort into alphabetical order. BOOST_LOG_TRIVIAL(debug) << "Sorting plugin list into alphabetical order."; - std::sort(installed.begin(), installed.end(), boss::alpha_sort); + installed.sort(boss::alpha_sort); progDia->Pulse(); @@ -937,19 +1056,6 @@ void Launcher::OnEditMetadata(wxCommandEvent& event) { BOOST_LOG_TRIVIAL(debug) << "Editor window opened."; } -void Launcher::OnViewLastReport(wxCommandEvent& event) { - if (_settings["View Report Externally"] && _settings["View Report Externally"].as()) { - BOOST_LOG_TRIVIAL(debug) << "Opening report in external application..."; - wxLaunchDefaultBrowser(FromUTF8(ToFileURL(_game.ReportPath().string()))); - } else { - //Create viewer window. - BOOST_LOG_TRIVIAL(debug) << "Opening viewer window..."; - Viewer *viewer = new Viewer(this, translate("BOSS: Report Viewer"), FromUTF8(ToFileURL(_game.ReportPath().string()))); - viewer->Show(); - } - BOOST_LOG_TRIVIAL(debug) << "Report displayed."; -} - void Launcher::OnRedatePlugins(wxCommandEvent& event) { wxMessageDialog * dia = new wxMessageDialog(this, translate("This feature is provided so that modders using the Creation Kit may set the load order it uses. A side-effect is that any subscribed Steam Workshop mods will be re-downloaded by Steam. Do you wish to continue?"), translate("BOSS: Warning"), wxYES_NO|wxCANCEL|wxICON_EXCLAMATION); @@ -1011,280 +1117,3 @@ void Launcher::OnRedatePlugins(wxCommandEvent& event) { this); } } - -void Launcher::OnOpenSettings(wxCommandEvent& event) { - BOOST_LOG_TRIVIAL(debug) << "Opening settings window..."; - SettingsFrame *settings = new SettingsFrame(this, translate("BOSS: Settings"), _settings, _games); - settings->ShowModal(); - BOOST_LOG_TRIVIAL(debug) << "Settings window opened."; -} - -void Launcher::OnGameChange(wxCommandEvent& event) { - BOOST_LOG_TRIVIAL(debug) << "Changing current game..."; - _game = _games[event.GetId() - MENU_LowestDynamicGameID]; - try { - _game.Init(); //In case it hasn't already been done. - *find(_games.begin(), _games.end(), _game) = _game; //Sync changes. - BOOST_LOG_TRIVIAL(debug) << "New game is " << _game.Name(); - } catch (boss::error& e) { - BOOST_LOG_TRIVIAL(error) << "Game-specific settings could not be initialised." << e.what(); - wxMessageBox( - FromUTF8(format(loc::translate("Error: Game-specific settings could not be initialised. %1%")) % e.what()), - translate("BOSS: Error"), - wxOK | wxICON_ERROR, - NULL); - } - SetTitle(FromUTF8("BOSS - " + _game.Name())); - if (_game.Id() == boss::g_game_tes5) - RedatePluginsItem->Enable(true); - else - RedatePluginsItem->Enable(false); -} - -void Launcher::OnHelp(wxCommandEvent& event) { - //Look for file. - BOOST_LOG_TRIVIAL(debug) << "Opening readme at: " << g_path_readme; - if (fs::exists(g_path_readme)) { - wxLaunchDefaultBrowser(FromUTF8(ToFileURL(g_path_readme.string()))); - } else { //No readme exists, show a pop-up message saying so. - BOOST_LOG_TRIVIAL(error) << "File \"" << g_path_readme.string() << "\" could not be found."; - wxMessageBox( - FromUTF8(format(loc::translate("Error: \"%1%\" cannot be found.")) % g_path_readme.string()), - translate("BOSS: Error"), - wxOK | wxICON_ERROR, - this); - } -} - -void Launcher::OnOpenDebugLog(wxCommandEvent& event) { - //Look for file. - BOOST_LOG_TRIVIAL(debug) << "Opening debug log at: " << g_path_log; - if (fs::exists(g_path_log)) { - wxLaunchDefaultApplication(FromUTF8(g_path_log.string())); - } else { //No log exists, show a pop-up message saying so. - BOOST_LOG_TRIVIAL(error) << "File \"" << g_path_log.string() << "\" could not be found."; - wxMessageBox( - FromUTF8(format(loc::translate("Error: \"%1%\" cannot be found.")) % g_path_log.string()), - translate("BOSS: Error"), - wxOK | wxICON_ERROR, - this); - } -} - -void Launcher::OnAbout(wxCommandEvent& event) { - BOOST_LOG_TRIVIAL(debug) << "Opening About dialog."; - wxAboutDialogInfo aboutInfo; - aboutInfo.SetName("BOSS"); - aboutInfo.SetVersion(IntToString(g_version_major)+"."+IntToString(g_version_minor)+"."+IntToString(g_version_patch)); - aboutInfo.SetDescription(translate("Load order optimisation for Oblivion, Skyrim, Fallout 3 and Fallout: New Vegas.")); - aboutInfo.SetCopyright("Copyright (C) 2009-2014 BOSS Development Team."); - aboutInfo.SetWebSite("http://boss-developers.github.io"); - aboutInfo.SetLicence("This program is free software: you can redistribute it and/or modify\n" - "it under the terms of the GNU General Public License as published by\n" - "the Free Software Foundation, either version 3 of the License, or\n" - "(at your option) any later version.\n" - "\n" - "This program is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - "GNU General Public License for more details.\n" - "\n" - "You should have received a copy of the GNU General Public License\n" - "along with this program. If not, see ."); - aboutInfo.SetIcon(wxIconLocation("BOSS.exe")); - wxAboutBox(aboutInfo); -} - -LoadOrderPreview::LoadOrderPreview(wxWindow *parent, const wxString title, const std::list& plugins, const boss::Game& game) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER), _plugins(plugins), _game(game) { - - //Init controls. - _loadOrder = new wxListView(this, LIST_LoadOrder, wxDefaultPosition, wxDefaultSize, wxLC_REPORT); - - _moveUp = new wxButton(this, BUTTON_MoveUp, translate("Up")); - _moveDown = new wxButton(this, BUTTON_MoveDown, translate("Down")); - - //Populate list. - _loadOrder->AppendColumn(translate("Load Order")); - size_t i=0; - for (list::const_iterator it=plugins.begin(), endit=plugins.end(); it != endit; ++it, ++i) { - _loadOrder->InsertItem(i, FromUTF8(it->Name())); - if (it->FormIDs().empty()) { - _loadOrder->SetItemTextColour(i, wxColour(122, 122, 122)); - } - else if (it->LoadsBSA(_game)) { - _loadOrder->SetItemTextColour(i, wxColour(0, 142, 219)); - } - } - _loadOrder->SetColumnWidth(0, wxLIST_AUTOSIZE); - - //Set up event handling. - Bind(wxEVT_BUTTON, &LoadOrderPreview::OnMoveUp, this, BUTTON_MoveUp); - Bind(wxEVT_BUTTON, &LoadOrderPreview::OnMoveDown, this, BUTTON_MoveDown); - Bind(wxEVT_LIST_ITEM_SELECTED, &LoadOrderPreview::OnPluginSelect, this, LIST_LoadOrder); - - //Set up layout. - wxBoxSizer * bigBox = new wxBoxSizer(wxVERTICAL); - - bigBox->Add(_loadOrder, 1, wxEXPAND|wxALL, 15); - - wxBoxSizer * hbox = new wxBoxSizer(wxHORIZONTAL); - hbox->Add(_moveUp, 0, wxRIGHT, 5); - hbox->Add(_moveDown, 0, wxLEFT, 5); - bigBox->Add(hbox, 0, wxALIGN_RIGHT|wxBOTTOM|wxRIGHT, 15); - - bigBox->Add(new wxStaticText(this, wxID_ANY, translate("Please submit any alterations made for reasons other than user preference \nto the BOSS team so that they may include the changes in the masterlist.")), 0, wxEXPAND|wxLEFT|wxRIGHT|wxBOTTOM, 15); - - //Need to add 'OK' and 'Cancel' buttons. - wxSizer * sizer = CreateSeparatedButtonSizer(wxOK|wxCANCEL); - - //Now add TabHolder and OK button to window sizer. - if (sizer != NULL) - bigBox->Add(sizer, 0, wxEXPAND|wxLEFT|wxBOTTOM|wxRIGHT, 15); - - //Set initial up/down button states. - _moveUp->Enable(false); - _moveDown->Enable(false); - - //Now set the layout and sizes. - SetBackgroundColour(wxColour(255,255,255)); - SetIcon(wxIconLocation("BOSS.exe")); - SetSizerAndFit(bigBox); -} - -void LoadOrderPreview::OnPluginSelect(wxListEvent& event) { - _moveUp->Enable(true); - _moveDown->Enable(true); -} - -void LoadOrderPreview::OnMoveUp(wxCommandEvent& event) { - BOOST_LOG_TRIVIAL(debug) << "Moving plugin(s) up the load order."; - long selected = _loadOrder->GetFirstSelected(); - - if (selected == 0) - return; - - while (selected != -1) { - wxString selectedText = _loadOrder->GetItemText(selected); - wxString aboveText = _loadOrder->GetItemText(selected - 1); - - BOOST_LOG_TRIVIAL(trace) << "Moving plugin \"" << string(selectedText.ToUTF8()); - - //Check that move is OK. - list::const_iterator selectedPlugin = find(_plugins.begin(), _plugins.end(), boss::Plugin(string(selectedText.ToUTF8()))); - list::const_iterator abovePlugin = find(_plugins.begin(), _plugins.end(), boss::Plugin(string(aboveText.ToUTF8()))); - - if (selectedPlugin != _plugins.end() && abovePlugin != _plugins.end()) { - if (selectedPlugin->MustLoadAfter(*abovePlugin)) { - BOOST_LOG_TRIVIAL(error) << "Cannot load \"" << selectedPlugin->Name() << "\" before \"" << abovePlugin->Name() << "\"."; - wxMessageBox( - FromUTF8(format(loc::translate("Error: Cannot load \"%1%\" before \"%2%\".")) % selectedPlugin->Name() % abovePlugin->Name()), - translate("BOSS: Error"), - wxOK | wxICON_ERROR, - NULL); - selected = _loadOrder->GetNextSelected(selected); - continue; - } - } - - _loadOrder->SetItemText(selected, aboveText); - _loadOrder->SetItemText(selected - 1, selectedText); - - _movedPlugins.insert(string(selectedText.ToUTF8())); - - _loadOrder->Select(selected, false); - _loadOrder->Select(selected - 1, true); - - selected = _loadOrder->GetNextSelected(selected); - } - BOOST_LOG_TRIVIAL(debug) << "Plugin(s) moved up."; -} - -void LoadOrderPreview::OnMoveDown(wxCommandEvent& event) { - BOOST_LOG_TRIVIAL(debug) << "Moving plugin(s) down the load order."; - long i=_loadOrder->GetItemCount() - 1; - - if (_loadOrder->IsSelected(i)) - return; - --i; - - for (i; i > -1; --i) { - if (_loadOrder->IsSelected(i)) { - wxString selectedText = _loadOrder->GetItemText(i); - wxString belowText = _loadOrder->GetItemText(i + 1); - - BOOST_LOG_TRIVIAL(trace) << "Moving plugin \"" << string(selectedText.ToUTF8()); - - //Check that move is OK. - list::const_iterator selectedPlugin = find(_plugins.begin(), _plugins.end(), boss::Plugin(string(selectedText.ToUTF8()))); - list::const_iterator belowPlugin = find(_plugins.begin(), _plugins.end(), boss::Plugin(string(belowText.ToUTF8()))); - - if (selectedPlugin != _plugins.end() && belowPlugin != _plugins.end()) { - if (belowPlugin->MustLoadAfter(*selectedPlugin)) { - BOOST_LOG_TRIVIAL(error) << "Cannot load \"" << belowPlugin->Name() << "\" before \"" << selectedPlugin->Name() << "\"."; - wxMessageBox( - FromUTF8(format(loc::translate("Error: Cannot load \"%1%\" before \"%2%\".")) % belowPlugin->Name() % selectedPlugin->Name()), - translate("BOSS: Error"), - wxOK | wxICON_ERROR, - NULL); - continue; - } - } - - _loadOrder->SetItemText(i, belowText); - _loadOrder->SetItemText(i + 1, selectedText); - - _movedPlugins.insert(string(selectedText.ToUTF8())); - - _loadOrder->Select(i, false); - _loadOrder->Select(i + 1, true); - } - } - BOOST_LOG_TRIVIAL(debug) << "Plugin(s) moved down."; -} - -std::list LoadOrderPreview::GetLoadOrder() const { - BOOST_LOG_TRIVIAL(debug) << "Getting full load order from preview window."; - list plugins; - bool wasMovedUp = false; - for (size_t i=0,max=_loadOrder->GetItemCount(); i < max; ++i) { - string name = string(_loadOrder->GetItemText(i).ToUTF8()); - - list::const_iterator it = find(_plugins.begin(), _plugins.end(), boss::Plugin(name)); - - if (it == _plugins.end()) - continue; - - plugins.push_back(*it); - - if (wasMovedUp) { - BOOST_LOG_TRIVIAL(trace) << "The previous plugin was moved up in the load order, so adding it to the 'load after' set for the current plugin."; - list::const_iterator jt = ----plugins.end(); - set loadAfter = plugins.back().LoadAfter(); - loadAfter.insert(File(jt->Name())); - plugins.back().LoadAfter(loadAfter); - wasMovedUp = false; - } - - if (_movedPlugins.find(name) != _movedPlugins.end()) { - BOOST_LOG_TRIVIAL(trace) << "The current plugin was moved - checking if it was moved up or down."; - //Check if this plugin has been moved earlier or later by comparing distances in the original list and the new one. - size_t newDist = plugins.size() - 1; - size_t oldDist = distance(_plugins.begin(), it); - - if (newDist > oldDist) { - BOOST_LOG_TRIVIAL(trace) << "The current plugin was moved down, add the preceding plugin to the current plugin's 'load after' set."; - //Record the preceding plugin in this plugin's "load after" set. - list::const_iterator jt = ----plugins.end(); - set loadAfter = plugins.back().LoadAfter(); - loadAfter.insert(File(jt->Name())); - plugins.back().LoadAfter(loadAfter); - } else { - BOOST_LOG_TRIVIAL(trace) << "The current plugin was moved up."; - //Record this plugin in the following plugin's "load after" set. - wasMovedUp = true; - } - } - } - - return plugins; -} diff --git a/src/gui/main.h b/src/gui/main.h index f682cdd3..ce6d59a7 100644 --- a/src/gui/main.h +++ b/src/gui/main.h @@ -70,23 +70,4 @@ private: std::vector& _games; }; -class LoadOrderPreview : public wxDialog { -public: - LoadOrderPreview(wxWindow *parent, const wxString title, const std::list& plugins, const boss::Game& game); - - void OnPluginSelect(wxListEvent& event); - void OnMoveUp(wxCommandEvent& event); - void OnMoveDown(wxCommandEvent& event); - - std::list GetLoadOrder() const; -private: - wxListView * _loadOrder; - wxButton * _moveUp; - wxButton * _moveDown; - - const std::list _plugins; - std::set _movedPlugins; - const boss::Game& _game; -}; - #endif diff --git a/src/gui/misc.cpp b/src/gui/misc.cpp new file mode 100644 index 00000000..850a0725 --- /dev/null +++ b/src/gui/misc.cpp @@ -0,0 +1,480 @@ +/* BOSS + +A plugin load order optimiser for games that use the esp/esm plugin system. + +Copyright (C) 2013-2014 WrinklyNinja + +This file is part of BOSS. + +BOSS is free software: you can redistribute +it and/or modify it under the terms of the GNU General Public License +as published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +BOSS is distributed in the hope that it will +be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with BOSS. If not, see +. +*/ + +#include "misc.h" +#include "../backend/helpers.h" + +#include + + + +using namespace std; + +MessageList::MessageList(wxWindow * parent, wxWindowID id, const unsigned int language) : wxListView(parent, id, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_VIRTUAL | wxLC_SINGLE_SEL), _language(language) { + InsertColumn(0, translate("Type")); + InsertColumn(1, translate("Content")); + InsertColumn(2, translate("Condition")); + InsertColumn(3, translate("Language")); + + Bind(wxEVT_LIST_DELETE_ITEM, &MessageList::OnDeleteItem, this); + + SetItemCount(0); +} + +std::vector MessageList::GetItems() const { + return _messages; +} + +void MessageList::SetItems(const std::vector& messages) { + _messages = messages; + SetItemCount(_messages.size()); + RefreshItems(0, _messages.size() - 1); +} + +boss::Message MessageList::GetItem(long item) const { + return _messages[item]; +} + +void MessageList::SetItem(long item, const boss::Message& message) { + _messages[item] = message; + RefreshItem(item); +} + +void MessageList::AppendItem(const boss::Message& message) { + _messages.push_back(message); + SetItemCount(_messages.size()); + RefreshItem(_messages.size() - 1); +} + +void MessageList::OnDeleteItem(wxListEvent& event) { + _messages.erase(_messages.begin() + event.GetIndex()); + SetItemCount(_messages.size()); + RefreshItems(event.GetIndex(), _messages.size() - 1); +} + +wxString MessageList::OnGetItemText(long item, long column) const { + if (column < 0 || column > 3 || item < 0 || item > _messages.size() - 1) + return wxString(); + + if (column == 0) { + if (_messages[item].Type() == boss::g_message_say) + return Type[0]; + else if (_messages[item].Type() == boss::g_message_warn) + return Type[1]; + else + return Type[2]; + } + else if (column == 1) { + return FromUTF8(_messages[item].ChooseContent(_language).Str()); + } + else if (column == 2) { + return FromUTF8(_messages[item].Condition()); + } + else { + return FromUTF8(boss::Language(_messages[item].ChooseContent(_language).Language()).Name()); + } +} + + +FileEditDialog::FileEditDialog(wxWindow *parent, const wxString& title) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) { + + _name = new wxTextCtrl(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_EMPTY)); + _display = new wxTextCtrl(this, wxID_ANY); + _condition = new wxTextCtrl(this, wxID_ANY); + + wxSizerFlags leftItem(0); + leftItem.Left(); + + wxSizerFlags rightItem(1); + rightItem.Right().Expand(); + + wxBoxSizer * bigBox = new wxBoxSizer(wxVERTICAL); + + wxFlexGridSizer * GridSizer = new wxFlexGridSizer(2, 5, 5); + GridSizer->AddGrowableCol(1, 1); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Filename (required):")), leftItem); + GridSizer->Add(_name, rightItem); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Displayed Name:")), leftItem); + GridSizer->Add(_display, rightItem); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Condition:")), leftItem); + GridSizer->Add(_condition, rightItem); + + bigBox->Add(GridSizer, 0, wxEXPAND | wxALL, 15); + + bigBox->AddSpacer(10); + bigBox->AddStretchSpacer(1); + + //Need to add 'OK' and 'Cancel' buttons. + wxSizer * sizer = CreateSeparatedButtonSizer(wxOK | wxCANCEL); + if (sizer != NULL) + bigBox->Add(sizer, 0, wxEXPAND | wxLEFT | wxBOTTOM | wxRIGHT, 15); + + SetBackgroundColour(wxColour(255, 255, 255)); + SetIcon(wxIconLocation("BOSS.exe")); + SetSizerAndFit(bigBox); +} + +void FileEditDialog::SetValues(const wxString& name, const wxString& display, const wxString& condition) { + + _name->SetValue(name); + _display->SetValue(display); + _condition->SetValue(condition); +} + +wxString FileEditDialog::GetName() const { + return _name->GetValue(); +} + +wxString FileEditDialog::GetDisplayName() const { + return _display->GetValue(); +} + +wxString FileEditDialog::GetCondition() const { + return _condition->GetValue(); +} + +MessageEditDialog::MessageEditDialog(wxWindow *parent, const wxString& title) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) { + + wxArrayString languages; + vector langs = boss::Language::Names(); + for (size_t i = 0; i < langs.size(); i++) { + languages.Add(FromUTF8(langs[i])); + } + + //Initialise controls. + _type = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 3, Type); + _language = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, languages); + + _condition = new wxTextCtrl(this, wxID_ANY); + _str = new wxTextCtrl(this, wxID_ANY); + + _content = new wxListView(this, LIST_MessageContent, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_SINGLE_SEL); + + addBtn = new wxButton(this, BUTTON_AddContent, translate("Add Content")); + editBtn = new wxButton(this, BUTTON_EditContent, translate("Edit Content")); + removeBtn = new wxButton(this, BUTTON_RemoveContent, translate("Remove Content")); + + _content->InsertColumn(0, translate("Language")); + _content->InsertColumn(1, translate("String")); + + //Set up event handling. + Bind(wxEVT_BUTTON, &MessageEditDialog::OnAdd, this, BUTTON_AddContent); + Bind(wxEVT_BUTTON, &MessageEditDialog::OnEdit, this, BUTTON_EditContent); + Bind(wxEVT_BUTTON, &MessageEditDialog::OnRemove, this, BUTTON_RemoveContent); + Bind(wxEVT_LIST_ITEM_SELECTED, &MessageEditDialog::OnSelect, this, LIST_MessageContent); + + wxSizerFlags leftItem(0); + leftItem.Left(); + + wxSizerFlags rightItem(1); + rightItem.Right(); + + wxSizerFlags wholeItem(0); + wholeItem.Expand().Border(wxLEFT | wxRIGHT | wxBOTTOM, 15); + + wxBoxSizer * bigBox = new wxBoxSizer(wxVERTICAL); + + wxFlexGridSizer * GridSizer = new wxFlexGridSizer(2, 5, 5); + GridSizer->AddGrowableCol(1, 1); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Type:")), leftItem); + GridSizer->Add(_type, rightItem); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Condition:")), leftItem); + GridSizer->Add(_condition, rightItem); + + bigBox->AddSpacer(15); + + bigBox->Add(GridSizer, wholeItem); + + bigBox->Add(_content, wholeItem); + + wxFlexGridSizer * GridSizer2 = new wxFlexGridSizer(2, 5, 5); + GridSizer2->AddGrowableCol(1, 1); + + GridSizer2->Add(new wxStaticText(this, wxID_ANY, translate("Language:")), leftItem); + GridSizer2->Add(_language, rightItem); + + GridSizer2->Add(new wxStaticText(this, wxID_ANY, translate("Content:")), leftItem); + GridSizer2->Add(_str, rightItem); + + bigBox->Add(GridSizer2, wholeItem); + + wxBoxSizer * hbox = new wxBoxSizer(wxHORIZONTAL); + hbox->Add(addBtn, 0, wxRIGHT, 5); + hbox->Add(editBtn, 0, wxLEFT | wxRIGHT, 5); + hbox->Add(removeBtn, 0, wxLEFT, 5); + bigBox->Add(hbox, 0, wxALIGN_RIGHT | wxLEFT | wxRIGHT, 15); + + bigBox->AddSpacer(10); + bigBox->AddStretchSpacer(1); + + //Need to add 'OK' and 'Cancel' buttons. + wxSizer * sizer = CreateSeparatedButtonSizer(wxOK | wxCANCEL); + if (sizer != NULL) + bigBox->Add(sizer, 0, wxEXPAND | wxLEFT | wxBOTTOM | wxRIGHT, 15); + + //Set defaults. + _type->SetSelection(0); + _language->SetSelection(0); + editBtn->Enable(false); + removeBtn->Enable(false); + + SetBackgroundColour(wxColour(255, 255, 255)); + SetIcon(wxIconLocation("BOSS.exe")); + SetSizerAndFit(bigBox); +} + +void MessageEditDialog::SetMessage(const boss::Message& message) { + + if (message.Type() == boss::g_message_say) + _type->SetSelection(0); + else if (message.Type() == boss::g_message_warn) + _type->SetSelection(1); + else + _type->SetSelection(2); + + _condition->SetValue(FromUTF8(message.Condition())); + + vector contents = message.Content(); + for (size_t i = 0, max = contents.size(); i < max; ++i) { + _content->InsertItem(i, FromUTF8(boss::Language(contents[i].Language()).Name())); + _content->SetItem(i, 1, FromUTF8(contents[i].Str())); + } +} + +boss::Message MessageEditDialog::GetMessage() const { + + unsigned int type; + string condition; + if (_type->GetSelection() == 0) + type = boss::g_message_say; + else if (_type->GetSelection() == 1) + type = boss::g_message_warn; + else + type = boss::g_message_error; + + condition = string(_condition->GetValue().ToUTF8()); + + vector contents; + for (size_t i = 0, max = _content->GetItemCount(); i < max; ++i) { + + string str = string(_content->GetItemText(i, 1).ToUTF8()); + unsigned int lang = boss::Language(string(_content->GetItemText(i, 0).ToUTF8())).Code(); + + contents.push_back(boss::MessageContent(str, lang)); + } + + return boss::Message(type, contents, condition); +} + +void MessageEditDialog::OnSelect(wxListEvent& event) { + _language->SetSelection(boss::Language(string(_content->GetItemText(event.GetIndex(), 0).ToUTF8())).Code()); + _str->SetValue(_content->GetItemText(event.GetIndex(), 1)); + editBtn->Enable(true); + removeBtn->Enable(true); +} + +void MessageEditDialog::OnAdd(wxCommandEvent& event) { + long i = _content->GetItemCount(); + _content->InsertItem(i, FromUTF8(boss::Language(_language->GetSelection()).Name())); + _content->SetItem(i, 1, _str->GetValue()); +} + +void MessageEditDialog::OnEdit(wxCommandEvent& event) { + if (_content->GetFirstSelected() == -1) { + BOOST_LOG_TRIVIAL(error) << "Attempting to edit message content, but no content row selected."; + wxMessageBox( + translate("Error: No content row selected."), + translate("BOSS: Error"), + wxOK | wxICON_ERROR, + NULL); + return; + } + long i = _content->GetFirstSelected(); + _content->SetItem(i, 0, FromUTF8(boss::Language(_language->GetSelection()).Name())); + _content->SetItem(i, 1, _str->GetValue()); +} + +void MessageEditDialog::OnRemove(wxCommandEvent& event) { + if (_content->GetFirstSelected() == -1) { + BOOST_LOG_TRIVIAL(error) << "Attempting to remove message content, but no content row selected."; + wxMessageBox( + translate("Error: No content row selected."), + translate("BOSS: Error"), + wxOK | wxICON_ERROR, + NULL); + return; + } + _content->DeleteItem(_content->GetFirstSelected()); + editBtn->Enable(false); + removeBtn->Enable(false); +} + +TagEditDialog::TagEditDialog(wxWindow *parent, const wxString& title) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) { + + //Initialise controls. + _state = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 2, State); + + _name = new wxTextCtrl(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_EMPTY)); + _condition = new wxTextCtrl(this, wxID_ANY); + + wxSizerFlags leftItem(0); + leftItem.Left(); + + wxSizerFlags rightItem(1); + rightItem.Right().Expand(); + + wxBoxSizer * bigBox = new wxBoxSizer(wxVERTICAL); + + wxFlexGridSizer * GridSizer = new wxFlexGridSizer(2, 5, 5); + GridSizer->AddGrowableCol(1, 1); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Add/Remove:")), leftItem); + GridSizer->Add(_state, rightItem); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Name (required):")), leftItem); + GridSizer->Add(_name, rightItem); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Condition:")), leftItem); + GridSizer->Add(_condition, rightItem); + + bigBox->Add(GridSizer, 0, wxEXPAND | wxALL, 15); + + bigBox->AddSpacer(10); + bigBox->AddStretchSpacer(1); + + //Need to add 'OK' and 'Cancel' buttons. + wxSizer * sizer = CreateSeparatedButtonSizer(wxOK | wxCANCEL); + if (sizer != NULL) + bigBox->Add(sizer, 0, wxEXPAND | wxLEFT | wxBOTTOM | wxRIGHT, 15); + + //Set defaults. + _state->SetSelection(0); + + SetBackgroundColour(wxColour(255, 255, 255)); + SetIcon(wxIconLocation("BOSS.exe")); + SetSizerAndFit(bigBox); +} + +void TagEditDialog::SetValues(int state, const wxString& name, const wxString& condition) { + + _state->SetSelection(state); + _name->SetValue(name); + _condition->SetValue(condition); +} + +wxString TagEditDialog::GetState() const { + return State[_state->GetSelection()]; +} + +wxString TagEditDialog::GetName() const { + return _name->GetValue(); +} + +wxString TagEditDialog::GetCondition() const { + return _condition->GetValue(); +} + +DirtInfoEditDialog::DirtInfoEditDialog(wxWindow * parent, const wxString& title) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) { + //Initialise controls. + wxTextValidator val(wxFILTER_EMPTY | wxFILTER_INCLUDE_CHAR_LIST); + val.SetCharIncludes("0123456789ABCDEFabcdef"); + + _itm = new wxSpinCtrl(this, wxID_ANY, "0"); + _udr = new wxSpinCtrl(this, wxID_ANY, "0"); + _nav = new wxSpinCtrl(this, wxID_ANY, "0"); + _crc = new wxTextCtrl(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0, val); + _utility = new wxTextCtrl(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_EMPTY)); + + wxSizerFlags leftItem(0); + leftItem.Left(); + + wxSizerFlags rightItem(1); + rightItem.Right().Expand(); + + wxBoxSizer * bigBox = new wxBoxSizer(wxVERTICAL); + + wxFlexGridSizer * GridSizer = new wxFlexGridSizer(2, 5, 5); + GridSizer->AddGrowableCol(1, 1); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("CRC (required):")), leftItem); + GridSizer->Add(_crc, rightItem); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("ITM Count:")), leftItem); + GridSizer->Add(_itm, rightItem); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("UDR Count:")), leftItem); + GridSizer->Add(_udr, rightItem); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Deleted Navmesh Count:")), leftItem); + GridSizer->Add(_nav, rightItem); + + GridSizer->Add(new wxStaticText(this, wxID_ANY, translate("Cleaning Utility (required):")), leftItem); + GridSizer->Add(_utility, rightItem); + + bigBox->Add(GridSizer, 0, wxEXPAND | wxALL, 15); + + bigBox->AddSpacer(10); + bigBox->AddStretchSpacer(1); + + //Need to add 'OK' and 'Cancel' buttons. + wxSizer * sizer = CreateSeparatedButtonSizer(wxOK | wxCANCEL); + if (sizer != NULL) + bigBox->Add(sizer, 0, wxEXPAND | wxLEFT | wxBOTTOM | wxRIGHT, 15); + + SetBackgroundColour(wxColour(255, 255, 255)); + SetIcon(wxIconLocation("BOSS.exe")); + SetSizerAndFit(bigBox); +} + +void DirtInfoEditDialog::SetValues(const wxString& crc, unsigned int itm, unsigned int udr, unsigned int nav, const wxString& utility) { + _crc->SetValue(crc); + _itm->SetValue(itm); + _udr->SetValue(udr); + _nav->SetValue(nav); + _utility->SetValue(utility); +} + +wxString DirtInfoEditDialog::GetCRC() const { + return _crc->GetValue(); +} + +unsigned int DirtInfoEditDialog::GetITMs() const { + return _itm->GetValue(); +} + +unsigned int DirtInfoEditDialog::GetUDRs() const { + return _udr->GetValue(); +} + +unsigned int DirtInfoEditDialog::GetDeletedNavmeshes() const { + return _nav->GetValue(); +} + +wxString DirtInfoEditDialog::GetUtility() const { + return _utility->GetValue(); +} \ No newline at end of file diff --git a/src/gui/misc.h b/src/gui/misc.h new file mode 100644 index 00000000..ad537d24 --- /dev/null +++ b/src/gui/misc.h @@ -0,0 +1,132 @@ +/* BOSS + +A plugin load order optimiser for games that use the esp/esm plugin system. + +Copyright (C) 2013-2014 WrinklyNinja + +This file is part of BOSS. + +BOSS is free software: you can redistribute +it and/or modify it under the terms of the GNU General Public License +as published by the Free Software Foundation, either version 3 of +the License, or (at your option) any later version. + +BOSS is distributed in the hope that it will +be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with BOSS. If not, see +. +*/ +#ifndef __BOSS_GUI_MISC__ +#define __BOSS_GUI_MISC__ + +#include "ids.h" +#include "../backend/metadata.h" + +#include +#include +#include +#include + +const wxString Type[3] = { + translate("Note"), + translate("Warning"), + translate("Error") +}; + +const wxString State[2] = { + translate("Add"), + translate("Remove") +}; + +class MessageList : public wxListView { +public: + MessageList(wxWindow * parent, wxWindowID id, const unsigned int language); + + void SetItems(const std::vector& messages); + std::vector GetItems() const; + + boss::Message GetItem(long item) const; + void SetItem(long item, const boss::Message& message); + void AppendItem(const boss::Message& message); + + void OnDeleteItem(wxListEvent& event); +protected: + wxString OnGetItemText(long item, long column) const; + +private: + std::vector _messages; + const unsigned int _language; +}; + +class FileEditDialog : public wxDialog { +public: + FileEditDialog(wxWindow *parent, const wxString& title); + + void SetValues(const wxString& name, const wxString& display, const wxString& condition); + wxString GetName() const; + wxString GetDisplayName() const; + wxString GetCondition() const; +private: + wxTextCtrl * _name; + wxTextCtrl * _display; + wxTextCtrl * _condition; +}; + +class MessageEditDialog : public wxDialog { +public: + MessageEditDialog(wxWindow *parent, const wxString& title); + + void SetMessage(const boss::Message& message); + boss::Message GetMessage() const; + + void OnSelect(wxListEvent& event); + void OnAdd(wxCommandEvent& event); + void OnEdit(wxCommandEvent& event); + void OnRemove(wxCommandEvent& event); +private: + wxButton * addBtn; + wxButton * editBtn; + wxButton * removeBtn; + wxChoice * _type; + wxChoice * _language; + wxListView * _content; + wxTextCtrl * _condition; + wxTextCtrl * _str; +}; + +class TagEditDialog : public wxDialog { +public: + TagEditDialog(wxWindow *parent, const wxString& title); + + void SetValues(int state, const wxString& name, const wxString& condition); + wxString GetState() const; + wxString GetName() const; + wxString GetCondition() const; +private: + wxChoice * _state; + wxTextCtrl * _name; + wxTextCtrl * _condition; +}; + +class DirtInfoEditDialog : public wxDialog { +public: + DirtInfoEditDialog(wxWindow * parent, const wxString& title); + + void SetValues(const wxString& crc, unsigned int itm, unsigned int udr, unsigned int nav, const wxString& utility); + wxString GetCRC() const; + wxString GetUtility() const; + unsigned int GetITMs() const; + unsigned int GetUDRs() const; + unsigned int GetDeletedNavmeshes() const; +private: + wxTextCtrl * _crc; + wxSpinCtrl * _itm; + wxSpinCtrl * _udr; + wxSpinCtrl * _nav; + wxTextCtrl * _utility; +}; +#endif \ No newline at end of file diff --git a/src/installer.nsi b/src/installer.nsi index f76d1f89..87e1c366 100644 --- a/src/installer.nsi +++ b/src/installer.nsi @@ -4,6 +4,7 @@ ;Include NSIS files. !include "MUI2.nsh" + !include "x64.nsh" !include "LogicLib.nsh" !include "nsDialogs.nsh" @@ -223,17 +224,17 @@ FunctionEnd ;-------------------------------- ;Polish (POLSKI) Strings - VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "BOSS" - VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "BOSS Development Team" - VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© 2009-2014 BOSS Development Team" - VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Instalator dla BOSS 3.0.0" - VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "3.0.0" + VIAddVersionKey /LANG=${LANG_POLISH} "ProductName" "BOSS" + VIAddVersionKey /LANG=${LANG_POLISH} "CompanyName" "BOSS Development Team" + VIAddVersionKey /LANG=${LANG_POLISH} "LegalCopyright" "© 2009-2014 BOSS Development Team" + VIAddVersionKey /LANG=${LANG_POLISH} "FileDescription" "Instalator dla BOSS 3.0.0" + VIAddVersionKey /LANG=${LANG_POLISH} "FileVersion" "3.0.0" - LangString TEXT_MESSAGEBOX ${LANG_ENGLISH} "BOSS jest już zainstalowany i musi zostać odinstalowany przed instalowaniem tej wersji. $\n$\nClick `OK` aby odinstalować lub `Cancel` aby anulować aktualizację." - LangString TEXT_RUN ${LANG_ENGLISH}" Uruchom BOSS" - LangString TEXT_SHOWREADME ${LANG_ENGLISH} "Czytaj Readme" - LangString TEXT_MAIN ${LANG_ENGLISH} "Wszystkie pliki BOSS bez ustawień i plików użytkownika." - LangString TEXT_USERFILES ${LANG_ENGLISH} "Wszystkie pliki BOSS oraz ustawienia użytkownika ." + LangString TEXT_MESSAGEBOX ${LANG_POLISH} "BOSS jest już zainstalowany i musi zostać odinstalowany przed instalowaniem tej wersji. $\n$\nClick `OK` aby odinstalować lub `Cancel` aby anulować aktualizację." + LangString TEXT_RUN ${LANG_POLISH} " Uruchom BOSS" + LangString TEXT_SHOWREADME ${LANG_POLISH} "Czytaj Readme" + LangString TEXT_MAIN ${LANG_POLISH} "Wszystkie pliki BOSS bez ustawień i plików użytkownika." + LangString TEXT_USERFILES ${LANG_POLISH} "Wszystkie pliki BOSS oraz ustawienia użytkownika ." ;-------------------------------- ;Initialisations @@ -382,6 +383,54 @@ FunctionEnd WriteUninstaller "$INSTDIR\Uninstall.exe" SectionEnd + + Section "Microsoft Visual C++ 2013 SP1 Redist" + ; Thanks to the pcsx2 installer for providing this! + + ; Detection made easy: Unlike previous redists, VC2013 now generates a platform + ; independent key for checking availability. + ; HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0\VC\Runtimes\x86 for x64 Windows + ; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\12.0\VC\Runtimes\x86 for x86 Windows + + ; Download from: + ; http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe + + ClearErrors + + ${If} ${RunningX64} + ReadRegDword $R0 HKLM "SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0\VC\Runtimes\x86" "Installed" + ${Else} + ReadRegDword $R0 HKLM "SOFTWARE\Microsoft\VisualStudio\12.0\VC\Runtimes\x86" "Installed" + ${EndIf} + + IfErrors 0 +2 + DetailPrint "Visual C++ 2013 Redistributable registry key was not found; assumed to be uninstalled." + StrCmp $R0 "1" 0 +3 + DetailPrint "Visual C++ 2013 Redistributable is already installed; skipping!" + Goto done + + ; Use bundled VC redist, more important that the install doesn't fail than it gets whatever is the latest update. + SetOutPath "$TEMP" + File "..\build\vcredist_x86.exe" + + ;DetailPrint "Downloading Visual C++ 2013 Redistributable Setup..." + ;DetailPrint "Contacting Microsoft.com..." + ;NSISdl::download /TIMEOUT=15000 "http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe" "vcredist_x86.exe" + + ;Pop $R0 ;Get the return value + ;StrCmp $R0 "success" OnSuccess + ;DetailPrint "Could not contact Microsoft.com, or the file has been (re)moved!" + ;Goto done + + ;OnSuccess: + DetailPrint "Running Visual C++ 2013 Redistributable Setup..." + ExecWait '"$TEMP\vcredist_x86.exe" /qb' + DetailPrint "Finished Visual C++ 2013 SP1 Redistributable Setup" + + Delete "$TEMP\vcredist_x86.exe" + + done: + SectionEnd ;-------------------------------- ;Uninstaller Section