Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/batch-add-geotags.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/batch-add-geotags.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/batch-convert-raw.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/batch-convert-raw.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/denoise.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/denoise.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/edit-geotags.png and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/edit-geotags.png differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/edit-metadata.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/edit-metadata.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/edit-metadata.png and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/edit-metadata.png differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/geotag-groups2.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/geotag-groups2.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/geotag-groups.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/geotag-groups.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/mashup4.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/mashup4.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/search-images2.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/search-images2.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/search-images.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/search-images.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/search-images-metadata.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/search-images-metadata.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/select-area-finish.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/select-area-finish.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/select-hairy.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/select-hairy.jpg differ Binary files /tmp/tmpmBx1V6/_MM7s4OtBa/fotoxx-16.06/data/images/user-options.jpg and /tmp/tmpmBx1V6/MbJHLEmVaY/fotoxx-16.07/data/images/user-options.jpg differ diff -Nru fotoxx-16.06/data/metadata_short_list fotoxx-16.07/data/metadata_short_list --- fotoxx-16.06/data/metadata_short_list 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/data/metadata_short_list 2016-07-01 10:19:38.000000000 +0000 @@ -24,10 +24,8 @@ Comment User Comment Description -City -State -Country Location +Country GPS Latitude GPS Longitude Creator diff -Nru fotoxx-16.06/data/quickstart-en.html fotoxx-16.07/data/quickstart-en.html --- fotoxx-16.06/data/quickstart-en.html 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/data/quickstart-en.html 2016-07-01 10:19:38.000000000 +0000 @@ -3,6 +3,8 @@ + + quickstart @@ -35,7 +37,7 @@ View Modes - These three buttons select the viewing mode    

- +
@@ -53,10 +55,9 @@ - - + @@ -64,7 +65,7 @@
Menus
-
World Maps: View a map (world, -continent, country, city), click on a marked location to view a gallery -of photos from that location. Requires optional package fotoxx-maps.
+
OSM Maps: View a world map, zoom in or out to any scale, click on a marked location to view a gallery +of photos from that location. Requires good internet connection.
+
- @@ -107,7 +105,7 @@ @@ -129,14 +127,13 @@ - @@ -149,7 +146,8 @@ +completed edit. Middle click: see all past edits, view image at selected edit stage.
+ diff -Nru fotoxx-16.06/data/tags_defined fotoxx-16.07/data/tags_defined --- fotoxx-16.06/data/tags_defined 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/data/tags_defined 2016-07-01 10:19:38.000000000 +0000 @@ -1,4 +1,4 @@ people: Mary, John, relatives, -places: Yellowstone, NY City, +places: Yellowstone, NY City, Italy, things: monument, building, garden, events: Danube cruise, 2012 Italy, diff -Nru fotoxx-16.06/data/tags_defined~ fotoxx-16.07/data/tags_defined~ --- fotoxx-16.06/data/tags_defined~ 1970-01-01 00:00:00.000000000 +0000 +++ fotoxx-16.07/data/tags_defined~ 2016-07-01 10:19:38.000000000 +0000 @@ -0,0 +1,4 @@ +people: Mary, John, relatives, +places: Yellowstone, NY City, +things: monument, building, garden, +events: Danube cruise, 2012 Italy, diff -Nru fotoxx-16.06/data/userguide-en.html fotoxx-16.07/data/userguide-en.html --- fotoxx-16.06/data/userguide-en.html 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/data/userguide-en.html 2016-07-01 10:19:38.000000000 +0000 @@ -10,13 +10,20 @@ + + + + + + + Fotoxx User Guide

@@ -90,15 +91,12 @@

Metadata: Edit image -captions, + Metadata: Edit captions, comments, ratings, tags (keywords), geotags (locations) ...
Search -images using these criteria, file and directory names, dates, or any -image -data.
+images using these criteria, file and directory names, dates, or any metadata.
Areas: Select image areas to edit -separately. Copy and paste selections within or across images.
+separately. Copy and paste within or across images.

Bend: fix -perspective, straighten curves, flatten book page, various types of +perspective, straighten curves, various types of warping ...

Effects: posterize, -convert to drawing or painting, emboss, tiles, dots, cartoon, vignette + Effects: posterize, make a drawing or painting, emboss, tiles, dots, cartoon, vignette ...
Undo / Redo: Left / right click for before / after view, within an edit or for each -completed edit for the current image file.
+v.16.07 @@ -240,9 +247,9 @@ limitations -
Fotoxx User Guide  -v.16.06  best window size ==>


+  +
 
+  

Fotoxx Overview
@@ -360,9 +367,10 @@ slow zoom in or out.
  +  Image printing and printer color calibration tool.
-  +  Comprehensive user guide and help popups.


+  +  Comprehensive user guide and help popups.
  +
  +


Fotoxx Usage
@@ -1629,9 +1637,8 @@ longitude). This is done in a standards-compliant manner so that data can be shared with other image management applications. Options for how to organize a large image collection can be found -in the topic Organizing Images.


+in the topic Organizing Images.
   
 
+  
 

File View Menus

@@ -1705,10 +1712,11 @@ Icon library: Icons for many image edit functions can be found here:
  /usr/share/fotoxx/icons/edit-funcs -
+
  - 

+
  +

 

File Menu (File @@ -1882,7 +1890,7 @@
Set Desktop Wallpaper (File View > File > Set Desktop Wallpaper)
-This is a duplicate of the same function in Gallery View (link).
+This is a duplicate of the same function in Gallery View (link).
 
 
  
@@ -2028,7 +2036,7 @@ There are several alternatives for organizing a large image collection so that it can be easily searched. It would be good to review these before choosing an organization system.


 
View Metadata (short) (File View > Metadata > View Metadata (short))
@@ -2097,7 +2105,7 @@ Geotags -Edit Geotags function, 3 +Edit Metadata function, 3 search image functions @@ -2113,7 +2121,7 @@ - 

 
Show Captions on Image (File View > Metadata > Show Captions on Image)
@@ -2126,11 +2134,12 @@ characters. To see up to 1000 characters, use the View Metadata function. If Show Captions switched ON, captions and comments are also displayed during a Slide -Show.

+Show.
 
 
Tags -Overview 
+Overview
+The Edit Metadata function (below) is used to add tags to an image. Read this overview first.
+
Image files can have identification or classification tags (keywords, labels) assigned to them. These can be used to search a large image collection for those images having desired tags. @@ -2223,20 +2232,67 @@ for tags, you can type desired tag names or pick them from the list of available tags. Available tags matching the first few letters you type are shown, and you can pick from this list. You cannot -search for a tag that does not exist in your images.

+enter a search tag that does not exist in your images.
 
+ 
+ +Geotags Overview
+
The Edit Metadata function (below) is used to add geotags to an image. Read this overview first.
+
+ +Modern cameras can record the location of each photo, using an +internal GPS receiver. Latitude, longitude, city or location, and country are +recorded in the EXIF metadata of the image JPEG or RAW file. The Edit Metadata function also allows location +data to be entered or revised for any image. The Fotoxx Search Images function can find images by +location, including an optional range: e.g. find all photos taken +within 30 km of London. Locations may also be specified by clicking +on a map. There are two functions that can find all images from a +specified location or region: Images by +Geotag: find all images for a country, a country and location, or a +country, location and date range. Images by Map Location: click on a +map to show all images within a range of the clicked +location.
+ + 
 
Edit Metadata (File View -> Metadata > Edit Metadata)
-
-
-The menu Metadata > Edit Metadata is used to edit the most +> Metadata > Edit Metadata)
+The Edit Metadata function is used to add metadata to an image.
+Please read Tags Overview and Geotags Overview (above) before using Edit Metadata.
+

+
+
+
+
+
+descriptive information, free text
+
+
+image location data
+
+
+
+
+current image tags - click to remove
+recent tags list for convenience - click to add
+enter a few characters to get a list of
+matching tags - click to add
+
+
+
+
+
+tags to choose from - click to add
+
+Edit Metadata is used to edit the most frequently used metadata: image date and time, rating, caption, -comments, and tags. The dialog initially shows existing data for +comments, location data, and tags. The dialog initially shows existing data for the current image. After making additions or changes, press [Apply] -to update the image file. There is no file versioning for metadata -changes unless you do this yourself by saving a new version and -then modifying the metadata.
+to update the image file. There is no automatic file versioning for metadata +changes, but if you want a new version, use File Save > New Version before starting Edit Metadata.
+
+The dialog shows the metadata for the current image in File View, or +for a clicked thumbnail in Gallery View. The dialog updates itself when +a new image is opened or new thumbnail is clicked.

Existing tags are shown in Image Tags. Available tags are shown in the Defined @@ -2272,17 +2328,15 @@ can include a time using the format hh:mm[.ss]. You may enter an optional Stars rating for the image. The dialog remains open if you navigate to a -new image, and the data is updated from that image. The [Apply] +new image, and the data is updated from that image.
+
+The [Apply] button writes the data to the image file and to the metadata index file used for searching images.
-
-The button [Prev] can be used to load all available data from the +The [Prev] button can be used to load all available data from the previous image viewed or edited. This can be used to speed-up the processing of a group of images sharing much of the same data.
-
-The button [Manage Tags] starts the Manage Tags dialog shown immediately below.
-The button [Geotags] starts the Edit Geotags dialog shown below.

Manage Tags
+The [Manage Tags] button starts the Manage Tags dialog.
 
Manage Tags Dialog

This dialog starts from the button [manage tags] in the Edit Metadata dialog. You can also assign categories to tags to help organize them and locate them @@ -2305,7 +2359,126 @@
Use the [orphan tags] button to list tags that are defined but not assigned to any images. These may be deleted if no use is -planned.
+planned.

+Adding Geotags
+The Edit Metadata dialog shows the location data for the current image, +if +any. For an +image with missing or incorrect location data, enter a location name +(city, park, museum ...) and use the [Find] button to either complete +the data in the +dialog, or get a list of matching locations to choose from (e.g. +London, United Kingdom and London, Canada). The list of locations comes +from your image files, so a location will not be known until it is +assigned to an image for the first time. Partial +matches are +found, so you can usually enter a leading substring, e.g. "hono" +for Honolulu. Use the [Apply] button to enter the data into the +EXIF metadata for the current image, and also into the metadata +index file for later searching by location. Use the [Prev] button +to fill the dialog data with the last +location used. If the [Find] button does not find a location (it is not +present in any other image), you can use the [Web] button to find +the location data from an internet web service (MapQuest +Open for now, but this could change). The location data is +completed and returned into the dialog. These names are not +standardized in format or language, so check the returned +data for reasonableness and change the spelling and capitalization +if needed. The [Apply] button will add the location data to the +image, and this location will be available for future use by using +the [Find] button. If the [Web] button fails, you can find +the location using an internet service, and enter the location data +into the dialog. Pressing [apply] will add the data to the current +image and make the location available for future use.
+ + +
+ + +Here are two web sites to look-up a location / country (there are many +others):
+ + +   +http://www.worldatlas.com/aatlas/findlatlong.htm
+ + + +   http://brainoff.com/geocoder/ +
+ + + +
+ + +Blank the latitude and longitude if you want to save only the location +and / or country name in the image file. If the latititude / +longitude data is changed from the values returned by [Find], these +values are saved and will be used from now on for new entries for +this location. Previous images with the same location are not revised. You +can use Images by +Geotag to find all images for a location, and +Batch Add Geotags to change the latitude / longitude for all of +them.
+ + +
+Note: Non-English locales: If a comma is used for a decimal point +in latitude / longitude, this is accepted but converted to a period +internally. The web service returns periods.
+ + +
+ + +Note: If a location is saved without latitude / longitude, there will +be no "red dot" to mark the location on a map, and finding photos for +this location by clicking on a map will not work (Images by Map +Location). The other method to find photos by location, Images by Geotag, will still work.
+
+Note: The EXIF keyword "city" is used to mean any location name: city, +park, museum, lake, etc. Fotoxx uses the term "location" to avoid +confusion (e.g. city = Yellowstone Park). When retrieving or saving +metadata, either term may be used. Internally, "location" is converted +into "city" for metadata storage or retrieval.
+ + +
+ + +If you change to one of the map views and click on a location, this location will be inserted into the Edit Metadata dialog.
+ +
+You can use Batch Add Geotags (see below) +to quickly add location data to many image files at once.
+ + + 
+ + + + + + + + +
Summary:
+  +  Enter (or change) a location name (possibly abbreviated) +in the dialog.
+  +  Use [find] to find the location and auto-fill country, +latitude, longitude.
+  +  If there are multiple matches, choose from the +list.
+  +  If there are too many matches, add more letters or +supply the country and try again.
+  +  If there are zero matches (not found), try the [Web] +button (country is required).
+  +  If still not found, add more letters to the location.
+  +  If still not found, use one of the above web +services and input the data manually.
+  +  Use [apply] to update the image file and make the +location available for future use.
 
 
Edit Any Metadata (File @@ -2320,7 +2493,7 @@ You may enter the key name in lower case and with or without spaces between the words, e.g. "Bits per Sample" and "bitspersample" will both work. To see all present keys and data, use View Metadata (long).


 
Delete Metadata (File View > Metadata > Delete Metadata)
@@ -2357,7 +2530,7 @@ only those tags will be shown in the list of defined tags. If your tags list is huge, this can reduce the list to a manageable size for pointing and clicking.
-


Batch Rename Tags (File View > Metadata > Batch Rename Tags)
@@ -2393,8 +2566,7 @@ which you can edit to add other keys to the list. The [Full List] button provides information on how to get a list of all available -key names.

+key names.
   
 
Batch Report Metadata (File View > Metadata > Batch Report Metadata)
@@ -2414,157 +2586,40 @@ can be left or deleted). When [proceed] is pressed, all selected files are searched for all the selected metadata items. A tabular report is produced in the text file  /home/<user>/.fotoxx/metadata_report  -and displayed in your standard text editor.

- 
-Geotags Overview
-Modern cameras can record the location of each photo, using an -internal GPS receiver. Latitude, longitude, city and country are -recorded in the EXIF metadata of the image JPEG or RAW file. The -Fotoxx Edit Geotags function (immediately below) allows location -data to be entered or revised for any image. The Fotoxx Search Images function can find images by -location, including an optional range: e.g. find all photos taken -within 30 km of London>. Locations may also be specified by clicking -on a map. There are two functions that can find all images from a -specified location or region: Images by -Geotag: find all images for a country, a country and city, or a -country, city and date range. Images by Map Location: click on a -map to show all images within a range of the clicked -location.

- 
-Edit Geotags (File View -> Metadata > Edit Metadata, [Geotags] button)
-
-The dialog displays the location data for the current image, if -any. The live display is updated when a new image is opened. For an -image with missing or incorrect location data, enter a city name -and use the [Find] button to either complete the data in the -dialog, or get a list of matching cities to choose from (e.g. -London, United Kingdom and London, Canada). Partial matches are -found, so you can usually enter a leading substring, e.g. "hono" -for Honolulu. Use the [Apply] button to enter the data into the -EXIF metadata for the current image, and also into the metadata -index file for later searching by location. If the data is revised -in the dialog (spelling of city / country, or revision of latitude -/ longitude), this will take precedence for future city searches. -Use the [Prev] button to fill the dialog data with the last -location used. If the [Find] button does not find a city (it is not -present in any other image), you can use the [Web] button to find -the city and location data from an internet web service (MapQuest -Open for now, but this could change). The location data is -completed and returned into the dialog. These names are not -standardized in format or language, so check the returned -data for reasonableness and change the spelling and capitalization -if needed. The [Apply] button will add the location data to the -image, and this location will be available for future use by using -the [Find] button. If the [Web] button fails, you can manually find -the city in the internet and enter the location data into the Edit -Geotags dialog. Pressing [apply] will add the data to the current -image and make the location available for future use.
-
-Here are two web sites to look-up a city / country (there are many -others):
-   -http://www.worldatlas.com/aatlas/findlatlong.htm
- -   http://brainoff.com/geocoder/ -
- -
-Blank the latitude and longitude if you want to save only the city -and / or country name in the image file. If the latititude / -longitude data is changed from the values returned by [Find], these -values are saved and will be used from now on for new entries for -this city. Previous images with the same city are not revised. You -can use Images by -Geotag to find all images for a city, and -Batch Add Geotags to change the latitude / longitude for all of -them.
-
-Note: If the location name is not a city (e.g. Yellowstone Park), -simply use this name for the City input.
-
-Note: Non-English locales: If a comma is used for a decimal point -in latitude / longitude, this is accepted but converted to a period -internally. The web service returns periods.
-
-Note: If a city is saved without latitude / longitude, there will -be no "red dot" to mark the city on a map, and finding photos for -this city by clicking on a map will not work (Images by Map -Location). The other method to find photos by city, Images by Geotag, will still work.
-
-If you change to one of the map views and click on a location, this location will be inserted into the dialog.

-For a series of photos made in the same location, you can quickly -add location data. After getting the location data for the first -image, use the [Next] button to open the next image, then the Edit -Geotags [Prev] button to fetch the previous location data, then the -[Apply] button to save into the current image file. If there are -many photos, you can use Batch Add Geotags (see below) -to quickly update all of them.

- - - - - - -
Summary:
-  +  Open an image file and select the Edit Geotags menu.
-  +  Enter (or change) a city name (possibly abbreviated) -in the dialog.
-  +  Use [find] to find the city and auto-fill country, -latitude, longitude.
-  +  If there are multiple matches, choose from the -list.
-  +  If there are too many matches, add more letters or -supply the country and try again.
-  +  If there are zero matches (not found), try the [Web] -button (country is required).
-  +  If still not found, add more letters to the -city.
-  +  If still not found, use one of the above web -services and input the data manually.
-  +  Use [apply] to update the image file and make the -location available for future use.
-  +  Open the next image (use the [prev/next] button if -appropriate).
-  +  Use the [prev] and [apply] buttons to add the same -location data again, if wanted.
-  
+and displayed in your standard text editor.
  
 
Batch Add Geotags (File View > Metadata > Batch Add Geotags)
-
+
With this function, you can select many images and add the same location data to all of them. Use the [select files] button to select the image files from a gallery window (link). -Then get the location data as described above in Edit Geotags, using the buttons [Find] [Web] and [Prev], or one of the map views. Press [proceed] -to start the update process. Use this function also to correct city -/ country spellings or latitude / longitude data, or to fix -inconsistencies.
-
+Then get the location data as described above in Edit Metadata, using the buttons [Find] [Web] and [Prev], or one of the map views. Press [proceed] +to start the update process. Use this function also to fix inconsistencies in location spellings or latitude / longitude data.

 
Images by Geotag (report) (File View > Metadata > Images by Geotag)
-
-This is a fast way to find all photos made in a given country or -city and country. In the dialog, select the desired level of -grouping: by country, by country and city, by country and city and +
+
+This is a fast way to find all photos made at a given location. In the dialog, select the desired level of +grouping: by country, by country and location, or by country and location and date. In the last case, you can select a date range for grouping of images having nearby dates. A number N will group images with dates that are N days or less apart from other images in the group (i.e. gaps are <= N days).
-
A popup window shows all cities +
A popup window (geotag groups) +shows all locations found in the image geotags, and the -dates of photos taken in those cities. The count of photos taken is -also shown. In the above example, 9 photos are from Grossglockner -starting Oct. 19, 2005. Click on a line in the window to get a +dates of photos taken in those locations. The count of photos taken is +also shown. In the above example, 30 photos are from Canberra made in +November 2004. Click on a line in the window to get a thumbnail gallery of those images, and from there you can click on -any image to view or edit. Note that this method uses only city and +any image to view or edit. Note that this method uses only location and country to find the images. Earth coordinates are not used. If you have -images with missing or inconsistent earth coordinates for a given city -(or location), use this function to get all of them, and then use Batch Add Geotags to make the earth coodinats consistent.
+images with missing or inconsistent earth coordinates for a +given location, use this function to get all of them, and then use +Batch Add Geotags to make the earth coodinats consistent.
  

Search Images (report) @@ -2574,28 +2629,48 @@ it possible to search thousands of images per second. The index contains a subset of the EXIF and IPTC metadata in the image files. Some of this data is automatic, created by the camera. Other data, -such as tags and star ratings, can be added by the user.
-
-An example search: find all images dated 2006 or later, rated with -4 stars or more, having tag "buildings" and geotag "Dresden". The -output report for this search is shown here:
-
+such as tags and star ratings, can be added by the user.
+
+There are two report formats: a gallery of thumbnails showing all +images that match the search criteria, or a metadata report which +combines thumbnails with metadata text. Here is an example of the +metadata report format:
+


 
-Search Images -Dialogs
-
+Search Images +Dialogs
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The main dialog is on the left. If the button "search other metadata" -is used, the dialog on the left appears. This can be used to select +is used, the dialog on the right appears. This can be used to select metadata that is not available in the main -dialog.
+dialog. Details are given below.

In the main dialog, select which images to search, either all (the entire image database) or current set, meaning the -images in the current gallery list (can be a directory, album, or -the results of a prior image search). Then choose what to do with +images in the current gallery list, which can be a directory, album, or +the results of a prior image search. Then choose what to do with the matching images found: new set means replace the current set with the images found, add means add them to the current set (gallery), and remove means remove them from @@ -2608,7 +2683,7 @@ criteria. The metadata report has both thumbnail images and a list of metadata items beside each thumbnail. These are some standard items (date, rating, tags, geotags, captions, comments) and any -items you added in the metadata selection dialog.
+items you added in the optional search metadata dialog.

Enter your search criteria. Select desired tags, dates, star ratings, text (comments, captions), file or directory names, and location names. @@ -2674,30 +2749,75 @@ captions of all images, and matching images are selected. Substrings will also match.

-To search locations, enter one or more city or country names in the search locations +To search locations, enter one or more location or country names in the search locations field. Only image files with geotags matching one of the entered -locations will be selected. Both city and country names can be used.
+locations will be selected.

The radio buttons all and any apply to tags, text, and file names. You can select images having ALL the entered strings, or ANY of the entered strings. Example: if the search file field contains [egypt cairo] and any is selected, then image files with either of these names within the directory or file name would be selected.
+
+If +you wish to find missing data, you can enter "null" as a match value. "null" is available in the defined tags list.
+
Search Metadata Dialog
You may use this dialog to search for "extra" metadata items not present in the main dialog. The items available for any given image -file can be shown using View Metadata (long). These +file can be shown using View Metadata (long). +These include camera make and model, exposure time, F-number, ISO, metering mode, focal length, shooting mode, etc. etc. You can enter shortcut names like "exposuretime" instead of "Exposure Time". You may also enter match criteria, if wanted, so that only the images with matching metadata are reported. For example, if you enter "model" with the match value "DMC-FZ28" (a Panasonic camera) then -only the images taken with this camera will be reported. You can -also enter multiple match values for one key, separated by -blanks. If you wish to find missing data, you can enter "null" as a search value.
-
+only the images taken with this camera will be reported.
+
+The matching logic can be selected for each metadata key:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
match method
+
match value(s)
+
matches
+
one or more metadata text values to be selected, separated by commas
+
contains
+
as above, but any metadata containing these text values will be selected
+
number =
+
a single numeric value - equal metadata values will be selected
+
number =>
+
a single numeric value - equal or greater metadata values will be selected
+
number <=
+
a single numeric value - less or equal metadata values will be selected
+
+
Performance
If no extra metadata to report is entered, then many thousands of images per second are searched and reported (assuming a strong PC). @@ -2707,16 +2827,13 @@ metadata index. For good performance, always use dates, file names, etc. to maximize the use of the metadata index and minimize the number of image files that must be read.
-
-Missing Metadata
-You can find images with missing metadata by using "null" as a search -value. "null" for tags is available in the defined tags list.

There is a separate topic, image organization options, which explains the options for using directory and file names and metadata for image searching.
  
-   

+  
 

Area Menu (File @@ -2760,8 +2877,7 @@ can be exited and re-started later to modify an existing area or start a new one.

-Line Drawing -Color
+Line Color
The color used for the mouse selection circle and the area outline can be changed at any time by clicking one of the color buttons. This allows you to maintain good contrast during pixel selection, @@ -3019,26 +3135,23 @@ outlines and resume editing the area.

Finish
-
-When -you are finished selecting the enclosed spaces, use the [Finish] +

+An area is not +effective for edits until it is successfully finished. The finish +process finds all the areas enclosed by your drawn outlines. When +you are finished outlining areas, use the [Finish] button to complete the process. A popup dialog will ask you to -click the mouse inside each enclosed space in sequence. The enclosed -spaces are temporarily colored so you can verify that the final result -is what you intended. Press [Done] when all selected areas have been -clicked and filled-in.
-When an enclosed area is clicked, all pixels within the enclosed space are mapped and saved. The enclosed space is temporarily -colored so you can see exactly what part of the image is being -selected. The dialog will show the status of the search, "success" -or "outline has a gap". If there is a gap in the outline, an -attempt is made to show where the gap is: you will see a line -coming out of the colored space to meet the edge of an imaginary -rectangle enclosing the space. You may be able to follow this line -back to the gap, but if the area is convoluted finding the gap can -be difficult. Each use of [finish] will produce a different picture -that may lead you to the gap. Carefully inspect the outline of the -area, close the hole, and use [Finish] again. An area is not -effective for edits until it is successfully finished. Any enclosed +click the mouse inside each enclosed area in sequence. The enclosed +areas are temporarily colored so you can verify that the final result +is what you intended. Press [keep] when all selected areas have been +clicked and correctly colored. Press [Undo] if a colored area does not +match your intention - the original area outline is restored. If the outline of an enclosed area has a gap, the +pixel selection and coloring process will "leak out" and areas outside +the enclosure will be colored. In this case, press [Undo] to go back to +the original outline. Find the gap in the outline and close it, +then try [Finish] again. See the function Find Area Gap below for a fast method to find gaps.
+
+Any enclosed area can be selected, even those not explicitly outlined - if you have a donut with a hole, you can select the donut, the hole, or both.
@@ -3049,17 +3162,12 @@ areas selected with one of the line drawing methods are mapped only when you click inside them.

-If you select any of the four extend to corner options, the -area outline is automatically extended to the corner from drawn -lines that meet the image edges. This avoids the work of drawing -the area outline along the image edges to the corner. Example: to -select the sky, draw the boundary line between sky and ground, -meeting the left and right edges of the image. Then select the -upper left and right corners in the Finish dialog. The entire sky -area will be selected, without having to outline the rest of the -sky.
-
-Disable / +If you draw a line from one image side to another, you can click on +either side of the line to make an area of all pixels on that side of +the line. Example: draw a horizontal line on the boundary between sky +and land. Click above the line to select sky, below the line to select +land.
+
Disable / Enable
Disable the current area and keep the data so that it can be re-activated later. This allows you to alternate edits within a @@ -3074,6 +3182,81 @@
Unselect
Discard the current area permanently.

+
+Find Area Gap (File View > Areas > Find Gap)
+If an area outline was created by freehand drawing using multiple +strokes, it is easy to leave small gaps in the outline that are not +visible below 400% zoom. An attempt to finish such an area will fail +because the mapping of the interior pixels will leak out through the +gap and cover large areas not intended as part of the area. If the Finish +functioin fails, use this function to find the gap. Click somewhere on +the outline of the failed area. The outline will be re-drawn in one +direction from the clicked position, until an "end pixel" is found. +This is where the gap is. The function will stop for 2 seconds so you +can see where it stopped drawing, and then the entire area outline will +display again. If you click again near the same position, the outline +will be re-drawn in the opposite direction, again stopping where an +"end pixel" is found. Use the freehand draw tool to close the gap, then +test again to see if the full outline can be drawn without stopping. +This function can be used in parallel with the Select Area function.
 
+
+ +Select Hairy (File View > Areas > Select Hairy)
+ + 
+Selecting a Hairy Boundary
+ +The circle shows the mouse position and radius.
+ +
+The hair has been selected.
+The background has been made transparent.
+ +
This is an area selection function for complex boundary +cases like hair +or bushy plants, where selection by color may not work well, and +freehand draw would need too much effort. The objective is to make the +background transparent and leave the foreground opaque, or partly +transparent where thin structures fade into the background.
+
+Follow these steps:
+ +
    +
  • Choose a window background color (User Options) +that contrasts with the complex area to be selected. In the example +above, a white background was chosen to contrast with the darker hair.
    +
  • Select the entire area to be copied, including the complex boundary areas.
    +
  • Set a suitable mouse radius for painting over the boundary areas.
    +
  • Set initial match levels. 40% and 80% are good starting points.
  • Choose Select.
    +
  • +
  • Click on an area representative of the colors to be selected, but +away from the irregular edge. About 200 pixels will be sampled from the +clicked position. These are used to determine which colors will be selected.
    +
  • +
  • Left-drag over the boundary area. Unselected pixels are converted +to the window background color, allowing you to see more clearly which pixels are +being selected.
  • +
  • Choose Deselect.
  • +
  • Click on a background area. A narrow set of colors are chosen that will be made transparent.
  • +
  • Left drag over the boundary area. Matching background colors are made transparent.
    +
  • +
  • Adjust match level and click on different colors to get the +right balance between selected and unselected pixels. These settings +can be changed as needed for different parts of the selection.
  • +
  • If the background color varies, click on each background color +and drag to make it transparent. The area affected will be smaller or +larger for match level set higher or lower, respectively.
    +
  • +
  • Use right drag to unselect (restore original image), left drag to re-select.
  • When done, save the completed area with the Copy button (for subsequent Paste Area) or the Save button (for subsequent Open Area File).
    +
  • To paste the area into another position or image, use the menu Paste Area or Open Area File.
    +
  • +
If the contrast between foreground and background is poor, this +process can be difficult and patience will be required to get good +results (good discrimination between foreground and background).
+
+When the area is pasted into the target image, +the paste dialog can be used to further blend the edges if needed.
 
 
Area Show / Hide (File View @@ -3123,8 +3306,7 @@ Area Open and Save (File View > Areas > Open Area File, Save Area File) 
-A selected area can be saved to an image file using the menu Select -> Save Area File. You are asked to supply a file name. A PNG +A selected area can be saved to an image file using the menu Save Area File. You are asked to supply a file name. A PNG file is created. The PNG file has an alpha channel (a 4th 'color') for transparency information. The image is a rectangle enclosing the selected area. Selected pixels are opaque, and others are @@ -3132,15 +3314,16 @@ /home/<user>/.fotoxx/saved_areas  by default, but you can save them anywhere.

-Use the menu Select > Open Area File to paste a saved area onto +Use the menu Open Area File to paste a saved area onto the current image file. The background image will show through the transparent parts of the pasted area. Click and drag to position the area. The dialog controls can be used to resize, rotate, and change the brightness of the pasted area. The edge blend control allows you to blend the area edges into the background image if -wanted.


+wanted.
  


+  

Edit Menu (File @@ -3774,9 +3957,9 @@ /home/<user>/.fotoxx/plugins  which you can modify with a text editor if desired. This is the only way to change the sequence of the menu entries. Be careful not to screw up the -format.


+format.
  +
 
+  
 

Repair Menu @@ -3844,7 +4027,7 @@  
Denoise Image (File View > Repair > Denoise)
-
+
This function reduces the noise in photos taken under poor lighting conditions, making uniform surfaces appear speckled. It also works for scanned prints, as in the example here. Multiple methods are @@ -3874,18 +4057,12 @@ reduce noise. More information can be found in the technical notes.

Here is a short technical description of each method:
- 
- +
+ - - - - - + +limit.
+Outlyers are flattened slightly.
+ - - - - - +
 Flatten -1The highest and lowest -pixel values within a radius are moderated slightly.
 Flatten -2 Flatten
+
Pixels are compared to the mean and sigma of pixels within a radius.
Those outside one sigma are moved slightly back toward the @@ -3900,25 +4077,21 @@
 Top Hat Detect outliers by -comparison with a band of pixels at a distance.
+comparison with surrounding pixels at a distance.
The distance is increased in steps from 1 pixel to the radius -limit.
 WaveletsImage brightness (with -noise) over distance is converted into a series of wave functions -that nearly sum to brightness and represent an approximation with +RGB brightness (with +noise) is converted into a series of wave functions +that
+nearly sum to brightness and represent an approximation with less noise.
- Threshold 
Uses the threshold value to -distinguish pixel noise from image features, and an algorithm to -adjust initial pixel classifications based on neighboring pixel -classifications.

@@ -4422,8 +4595,9 @@ paper sheet or blank wall that is underexposed to come out gray. This image can be used to find both bright and dark stuck pixels.



  +

 

Bend Menu (File @@ -4601,8 +4775,10 @@ the [done] button. This function works best when the selected area(s) are small in comparison to the entire image. The pixel rows and columns that intersect the selected areas are not changed. Other areas are -compressed as the image is pulled inward.

+compressed as the image is pulled inward.
  +


 

Effects Menu @@ -4987,8 +5163,9 @@ Tilt-Shift Effect: You can do this by selecting a horizontal rectangular area to remain sharp.



  +

 

Combine Menu @@ -5557,8 +5734,9 @@ select any step to go back to
  + use the escape key to abandon the list without making any selection



  +

 

Tools Menu @@ -5629,7 +5807,7 @@ Options)
Various user preferences and settings are collected in this dialog.
-They are also saved in the file +They are also saved in the file  /home/<user>/.fotoxx/parameters.

 
@@ -5665,6 +5843,13 @@ The menu style: icons only or both text and icons.
+ +  Window background
+
+ The background color for the main window containint the current image.
+This is the color outside image margins when image width and height do not fit the window.
+
+  Gallery Sort
@@ -5714,7 +5899,7 @@ startup).
- Edit curve node
+ Curve node
  capture distance
The minimum node separation for edit curves. Also the mouse capture threshold when a node is @@ -5751,13 +5936,7 @@ the image, shift the image right to maximize left margin for dialogs.
- - RAW -command -The command used to convert -camera RAW files to tiff-16. This can be changed if you need.
-See the man page for dcraw for more details.
- +  RAW file types @@ -6106,7 +6285,8 @@ since the last time shown here
    MB: total allocated memory at this time in megabytes


  +
 
 

@@ -6161,7 +6341,8 @@ About
This displays a short message about the Fotoxx version number, license, credits, and contact address.
-  
+  
  +
 
 

@@ -6188,7 +6369,7 @@ Albums)

An album is an arbitrary sequence of images that is manually assembled from existing images. This is one method to make groups -of associated images. An image album is simply a list of the member +of associated images. An album is simply a list of its member image files. The image files themselves are not copied or changed. A given image file can be a member of multiple albums, or may be present more than once within an album. Albums can be used to group @@ -6200,8 +6381,7 @@ gallery works like any other: you can scroll through the gallery, step through the images with the [Prev/Next] button, or edit the images. Keep in mind that editing an image in an album will edit -the unique image file, so any other way to view this image will -show the same image.
+the underlying image file, so any other way to view this image will show the same changes.
 
Image Cache
@@ -6333,14 +6513,23 @@ gallery. After closing this dialog, the gallery reverts to the chosen album. Right-click an album thumbnail and select one of the Paste menus to insert the selected images. You can also choose -another album and insert the images if you did not clear the +another album and insert the same images if you did not clear the cache.
  • Remove images from an album: Right-click each thumbnail, then select the Remove menu.
  • Move images within an album: Use the Cut or Copy menu and the Paste menu to move multiple images. To move one image at a time within a single album, you can use mouse drag and drop.
  • -TIP
    +Using two parallel Fotoxx sessions
    +Adding many images to an album can be made faster and easier by using +two Fotoxx sessions. Session1 serves as a source of images, while +session2 keeps the album open to receive images from session 1. In +session 1, navigate to the galleries having source images, right click +desired thumbnails and choose "Copy to image cache". In session 2, +right click between the thumbnail where the cached images will be +inserted and choose "Paste image cache here (clear)".
    +
    +
    TIP

    If image files are renamed or moved using Batch Convert, and if deletion of the original image files was also specified, then all albums containing any of the input files are updated to reflect the @@ -6772,16 +6961,15 @@ [Proceed]
     
     
    -Batch RAW (DCraw) -(Gallery View > Batch > -DCraw)
    -Batch RAW (Raw Therapee) -(Gallery View > Batch > Raw +Batch RAW +(Gallery View > Batch > Batch RAW)
    +Batch Raw Therapee +(Gallery View > Batch > Batch Raw Therapee)
    -
    +
    These functions convert selected RAW image files to JPEG, PNG-8, -PNG-16, TIFF-8 or TIFF-16 format, using the program DCraw or Raw -Therapee. The PNG and TIFF formats have either 8 or 16 bits per +PNG-16, TIFF-8 or TIFF-16 format, using the library program libraw or the application program Raw +Therapee. The PNG and TIFF formats have either 8 or 16 bits per color. RAW files generally have 10-12 bits per color, and noise beyond that. Therefore use a 16-bit format to keep all of the data available from a RAW file. The difference between 8- and 16-bit @@ -6795,19 +6983,11 @@ Choose one of the downsize options if wanted, and set the auto sharpen parameters if wanted. See the Sharpen function for an explanation of these parameters.
    -
    -The remaining parameter options (white balance etc.) apply only to -DCraw - they are not shown if Raw Therapee is used, because -parameter settings for batch operation are not available (defaults -are used). The default settings for DCraw generally work well and -you probably will not need to change them. The parameters for DCraw -are documented in the man page ($ man dcraw).
    -
    -The image files are converted one at a time and displayed in the +
    The image files are converted one at a time and displayed in the main window. Depending on the number of files, this can take a long time (a strong PC does about 40 files per minute for most RAW file types and TIFF-16 output). PNG-16 produces much smaller files than -TIFF-16 because the files are compressed (with no data loss). This +TIFF-16 because the files are compressed (with no quality loss). This also needs more time to do the compression work.
      
     
    @@ -7148,7 +7328,8 @@ - 
     
    + 
     

     
    Organizing Images for Efficient Searching 
    @@ -7257,7 +7438,7 @@ date range and location without you having to enter any data for each image. You can leave it at this, or add some of the above extras if you accept the extra effort required. My experience so -far with city / country via GPS is that the names are chaotic and +far with location / country via GPS is that the names are chaotic and you may want to sanitize them (upper/lower case, with/without states or other political subdivisions, mixed languages, etc.). You can fix the mess with a little effort: search for the location you @@ -7395,7 +7576,8 @@  
    -  


     
    Translations 
     
    @@ -7489,16 +7671,34 @@ convert to HTML and supply the images. If you make a new or revised translation, please send it to me  [contact]  so it can be included in future releases.



     

     
    Recent Changes
    This section is provided to help you quickly review the changes without reading the whole manual.
    Fotoxx version numbers correspond to year and month of release.

    -v.16.06 (this release)
    +
    +v.16.07 (this release)
    +
      +
    • Search Images: more flexibility for specifying metadata select criteria.
      +
    • +
    • Select Area: the Finish function was simplified and the Find Gap function was added.
      +
    • +
    • Select Hairy: a new function to select objects with complex boundaries.
      +
    • + +
    • User Options: an option was added to set the window background color.
      +
    • +
    • Manage Albums: a new capability was added to use two parallel Fotoxx sessions.
      +
    • + + + +
    + +v.16.06
    • Right-click popup menus for File and Gallery views now include Show on OSM Map.
      @@ -7813,8 +8013,9 @@
    • Magnify function: the user interface was made more flexible.
    -   

    +   
      +

      
    Technical Notes 
    @@ -7852,8 +8053,7 @@ constants).
    -geotag -cities   +geotag locations   20,000 different cities / locations for geotagged images (compile time constant).
    @@ -7968,21 +8168,10 @@ (v. 8.60 or later) read and write image metadata (tags, comments, etc.) 
    + + - dcraw - req.
    -open RAW images, batch -convert RAW to tiff, jpeg, or png - - - ufraw - opt. -open a RAW file for editing -using own GUI - - - - rawtherapee
    + Raw Therapee
     opt.
    open a RAW file for editing using own GUI
    @@ -8013,7 +8202,7 @@  hugin
     opt. PT Panorama function uses -Panorama Tools (usually packaged with Hugin)
    +Panorama Tools (normally packaged with Hugin)
    @@ -8511,7 +8700,7 @@ marked "index" can be searched very fast, others more slowly. Items not listed here are searchable but not indexed.
     
    - +
    - @@ -8688,7 +8877,7 @@ +in 2013 and with location = "Freising" (90 images)
    @@ -8784,7 +8973,7 @@ (unsharp mask, kuwahara method), embossing.
     
    Acknowledgements
    -The libraries and programs libtiff, libpng, liblcms, dcraw and +The libraries and programs libtiff, libpng, liblcms, libraw and exiftool have helped Fotoxx evolve much faster than otherwise possible. Of course this also applies to GTK, the GNU tools and libraries, and the entire GNU / Linux ecosystem. Thanks to those @@ -8796,4 +8985,5 @@ + \ No newline at end of file diff -Nru fotoxx-16.06/data/userguide-en.html~ fotoxx-16.07/data/userguide-en.html~ --- fotoxx-16.06/data/userguide-en.html~ 1970-01-01 00:00:00.000000000 +0000 +++ fotoxx-16.07/data/userguide-en.html~ 2016-07-01 10:19:38.000000000 +0000 @@ -0,0 +1,8799 @@ + + + + + + + + + + + + + +Fotoxx User Guide +
     Metadata section and @@ -8578,7 +8767,7 @@
     EXIF  City, Country city and country from + city/location and country from camera GPS, or entered by user   yes
     Find all images dated -in 2013 and with city = "Freising" (90 images)
     < 1 sec.
    + + + + + + +
    Fotoxx User Guide  +v.16.06 best +window size ==>

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    General

    Fotoxx +Overviewdescription, prerequisites, +license, downloads, capabilities
    Fotoxx +Usage
    initialization, navigation, menus, +general procedures


    File View +Menus
    menus visible in File View +mode
    Favorites Menu
    a user-configurable popup +menu
    File +Menuopen, save, rename, trash, delete, +print
    File Save +Menu
    save file as new version, new file +name, or replace original
    Prev/Next +Button
    index to the previous or next +image file in current gallery
    Metadata +Menuedit tags, geotags, ratings, +captions ... search images
    Area +Menuselect image areas for separate +editing, copy, paste ...
    Edit +Menutrim/crop, rotate, retouch, color, +tone mapping, add text ...
    Repair +Menusharpen, blur, denoise, red-eye, +paint, clone ...
    Bend +Menubend/warp, straighten, fix +perspective, flatten book page
    Effects +Menumake drawing, painting, embossing, +cartoon, add arty effects
    Combine +MenuHDR, HDF, stack, panorama, mashup +(montage)
    Tools +Menuimage index, user options, batch +functions, utilities
    Help +Menuquick start, user guide, +translations guide, change log ...


    Gallery View +Menus
    menus visible in Gallery View +mode
    Sync Gallery Button
    set gallery to directory of +current image file
    Albums +Menucreate and edit named collections, +slide show
    Bookmarks +Button
    jump to bookmarked gallery +position, edit bookmarks
    Gallery Zoom Buttons
    increase or decrease thumbnail +size
    Gallery Sort Button
    sort gallery by file name or date, +ascending or descending
    Gallery Scroll Buttons
    scroll up or down in pages, got to +gallery top or end
    Batch +Menu
    batch tools for file conversion, +metadata updates, RAW import ...
    Help +Menuduplicate of the help menu listed +above


    World Map +View Menus
    menus visible in World Map View +mode
    Choose +Map Button
    choose among available +maps
    Search +Radius Button
    set radius for retrieving images +from a map position
    Search +Images Buttons
    image search by location or any +metadata


    Other Topics

    Organizing Imagesoptimize image organization for +searching and viewing
    Translations
    instructions for translating the +user interface and user manual
    Recent +Changesrecent functional and user guide +changes
    Technical Notestechnical methods and +limitations


    +
    +Fotoxx +Overview
    +
    +Description
    +Fotoxx is a Linux application for editing photos and managing a +large image collection. The goal of Fotoxx is to meet the needs of +serious photographers while remaining fast and easy to use. Fotoxx +is standards compliant and does nothing to compromise use of other +photo apps. Fotoxx has a rich set of editing, repair, and special +effects functions. Image adjustments are displayed instandly in a +full-size image, allowing interactive optimization. Fotoxx has a +rich set of functions to organize and index a large image +collection so that finding desired images is easy and +fast.

    +Hardware +Requirements
    +Fotoxx works best on a strong PC: 3 GHz multi-core CPU, 8 GB RAM. +Multiple processor cores are used for compute intensive functions. +A weaker PC will generally work, but may be slow for some functions +and unable to edit large images. A monitor smaller than about 1800 +x 1200 may feel confining for some functions. The monitor should +have accurate color (most do not).

    +Software +Requirements
    +Most recent releases of popular Linux distributions will work +(Debian, Ubuntu, Fedora, Suse, Arch ...). This should be 64-bit +Linux. 32-bit may work, but not with very large images. Fotoxx +Debian packages are built and tested using Ubuntu. A source tarball +and make file is provided to build Fotoxx for Linux flavors that +use other package formats or have incompatible libraries.

    +License and +Warranty
    +Fotoxx is licensed under the GNU General Public License +v3. Fotoxx is free to use, modify, and share with others. +Fotoxx is not warranted for any purpose, but if you find a bug, I +will try to fix it.

    +Origin and Contact
    +Fotoxx origniates from the author's web site: kornelix.net.
    +If you have questions, suggestions, or a bug to report, you may +contact me.

    +Downloads
    +Latest source code for building ($ make) is available at kornelix.net.
    +Latest installable package (.deb) is available at kornelix.net.
    +Fotoxx packages are available on many web sites and Linux distros. +Some of these are quite +old and should be avoided. It is better to use the above +links.
    +
    +Updates
    +Fotoxx is updated periodically with new or improved capabilities +and bug fixes.
    +To be notified of new releases, subscribe to the blog kornelix.blogspot.com (1-2 per +month).
    +
    +Optional Package +fotoxx-maps
    +This is a set of geographic maps covering the world. They display +image locations as red dots that can be clicked to display a +corresponding image gallery. Modern cameras with GPS receivers +automatically add geotags (earth coordinates) to photos, and these +are used by Fotoxx to locate images on a map. Geotags can also be +added to images individually or with a batch utility. You can add +maps of your own at any scale, and your images will populate new +maps automatically. A source tarball and .deb package are available +as described above. If you have a fast and reliable internet +connection, you may not need this optional package. Maps are obtained +as needed from the OpenStreetMap internet service.
    + 
    Translations
    +Translations of the user interface are complete for German, +Spanish, Catalan, Italian, Portuguese.
    +Partial translations are available for Dutch, French, and Russian.
    +If you can help with translations, review the topic Translations.

    +Fotoxx +Capabilities
    +  +  Thumbnail browser / navigator with variable size +thumbnails and list view.
    +  +  Camera RAW file conversion with retention of 16 bits +per color.
    +  +  Internal processing in 24 bits per color (float), +image file output in 8 or 16 bits.
    +  +  A comprehensive set of image edit, retouch and +repair functions: brightness,
    +       color, contrast, tone mapping, +trim/crop, resize, rotate, sharpen, de-noise,
    +       paint, clone, red eyes, add +text, bend/warp, HDR, panorama, artistic effects ...
    +  +  Select image areas or objects, edit separately from +background, copy and paste.
    +  +  Rapid visual feedback using the full image or a +selected zoom-in area.
    +  +  Metadata editing and reporting (tags, dates, +captions, geotags, any metadata ... )
    +  +  Batch editing: record a series of edits on one +image, execute on many images.
    +  +  Batch tools for file renaming, resizing, converting, +adding and revising metadata.
    +  +  Search images using any metadata or directory / file +names or substrings.
    +  +  Generate table of image locations and date ranges, +click to search and view.
    +  +  Find images by clicking on a marked map. Add your +own maps at any scale.
    +  +  Create albums (arbitrary set of images). Arrange +sequence by drag and drop.
    +  +  Mashup: arrange images and text in an arbitrary +layout (montage).
    +  +  Slide show: use various animated transitions and +slow zoom in or out.
    +  +  Image printing and printer color calibration +tool.
    +  +  Comprehensive user guide and help popups.


    +
    +Fotoxx +Usage

    +Quick Start
    +This 1-page document is +shown when Fotoxx is started the first time.
    +It is also available via the menu  Help > Quick +Start.

    +User Guide (this +document)
    +Fotoxx is easy to use but unconventional. To avoid +confusion, please read the first few pages of this guide. The rest +can be used for reference as needed. The user guide is available in +the menu Help > User Guide. When using Fotoxx, press the F1 key at any +time to view information for the current or last used menu +function.

    +Fotoxx uses the term directory, and this is the +equivalent of folder in Windows land. The +terms file and +image and +image file mean a +single file of type JPEG, PNG, TIFF, RAW, etc. containing a single +image (photo or illustration).

    +Installation
    +To install Fotoxx, try the appropriate package first: packages. This may work with one click.
    +If not, you must install from source code. This is not difficult. +Instructions are here: tarballs

    +Initialization
    +Fotoxx needs to know where all your image files are located +(directory and file names) and the imbedded metadata (dates, tags +(keywords), geotags, captions, comments, ratings). This data is +indexed for fast searching. Fotoxx also creates thumbnail image +files so that the gallery windows (thumbnail pages) will work fast. +Fotoxx does not modify or copy your image files - it only reads +them to make the index and thumbnails. These add roughly 1% to the +file space required for your images.

    +When Fotoxx starts the first time, you are asked to supply two +items for the initial file indexing process:
    +
    +
    +
    +
    +
    +
    top image directories (one or more)
    +
    +
    +
    +
    +
    +
    +
    +
    thumbnails directory
    +
    +Top image +Directories are those containing your image files, e.g. +/home/<user>/Pictures  +or similar. Subdirectories underneath your top directories are +automatically included, to any depth. Use the [select] button to +locate and add your top image directories, one or more. Other files +may be mixed with your image files.
    +
    +Thumbnails is the +directory where thumbnail files will be placed. These are generally +less than 1% as large as typical photo files (10K bytes compared to +megabytes). You can use the supplied default or choose another +location. Indexing will be faster if this is on a separate physical disk from the image files.
    +
    +If you have many thousands of images, the file index function may +need significant time. A strong PC (3 GHz, 7200 rpm disk) will +process about 1700 images per minute, or about 3100 for a solid-state disk. Some PCs will be much slower. +When you add new image files to your collection, the next Fotoxx +startup will index only the new images, at the same speed. If there are no new image files, startup should +be fast (about 1 second on a strong PC hosting 10,000 image files). +For more details, see Index Image Files.

    + 
    +Window Views and +Menus 
    +

    +Use these buttons (window top left) to switch among the three +viewing modes:
    +
    +Each view has a row of menu buttons on the left side. These are +top-level menus. When clicked, available menu functions are shown +in a drop-down list. Hover the mouse over a menu to see popup text +with a brief description.

    +File View (key F)
    +  +  Zoom an image in / out with the left / right mouse +buttons or mouse wheel.
    +  +  Pan and scroll a zoomed image using a mouse +left-drag.
    +  +  Use the menus to edit the image and perform utility +functions.
    +  +  The window title bar shows the current image file +and directory path.
    +  +  The top panel above the image shows image and edit +status information.
    +  
    +Gallery View (key G)
    +  +  Use the menus to navigate within the gallery, change +the thumbnail size, etc.
    +  +  Click on the directory buttons at the top to go up +to higher directories.
    +  +  Lower directories appear as folder thumbnails in the +gallery. Click to go there.
    +  +  The [TOP] button shows a drop-down list of all top +directories. Click to go there.
    +  +  Click a gallery thumbnail: show the clicked image at +full window size (File View).
    +  
    +World Map View (key W)
    +  +  Available only if the optional fotoxx-maps package +is installed.
    +  +  The initial map is a very large world map (136 +megapixels).
    +  +  Click anywhere to enlarge that map area to full +size.
    +  +  Left-drag to pan and scroll the enlarged map.
    +  +  Right-click to collaps the map to fit in the +window.
    +  +  If your image files contain geotags, the map will +have corresponding red dots
    +       (geotags come from the camera GPS +sensor or can be entered manually).
    +  +  Click on a red dot to get a gallery view of the +corresponding images.
    +  +  You can choose among many supplied maps, and add +your own maps.

    +OSM Map View (key M)
    +  +  Uses OpenStreetMap - view any place on earth at any scale.
    +  +  Red dots mark images with geotags (as described above).
    +  +  Click on a red dot to get a gallery view of the +corresponding images.
    +  +  No extra packages or setups required - works out of the box.
    +  +  Needs a fast and reliable internet connection for good response time.
    +
    +The paragraphs below provide more detail about each of the viewing +modes.

    + 
    +File View
    +The current image file is shown, filling the entire window. Click +the arrow button on the left or right side to move to the previous +or next image in the gallery. The current image file is a key +concept in Fotoxx. This is the file that most of the menu functions +will operate on. Other buttons in this view show popup menus which +are used to modify the image or perform utility functions.
    +
    +current view = image file view
    +
    +change to gallery view
    +
    +change to world map view
    +
    +change to OSM map view
    + 
    +
    favorites - custom popup menu
    +
    +open, rename, print, delete, trash ...
    +
    +save, save as new version or new file
    +
    +open previous or next image file (left or right mouse click)
    +
    +edit tags, captions, ratings, geotags ... search images
    +
    +select areas for separate edit, copy, paste
    +
    +trim, rotate, resize, brightness, color, contrast, add text ...
    +
    +sharpen, denoise, red eyes, fix color, paint/clone
    +
    +fix perspective, bend, warp image ...
    +
    +special effects, arty transforms
    +
    +HDR, HDF, stack, panorama, mashup (montage)
    +
    +undo or redo edit steps (left or right mouse button)
    +
    +index images, user settings, define KB shortcuts, magnify ...
    +
    help, user guide, change log, edit translations ...
    +
    +  +
    +Mouse Actions for Image File +View
    +To zoom the image in the main window, left-click a position on the +image. The image will grow with each click and the clicked position +will move to the center. A right-click will restore the image to +fit within the window. To pan or scroll a zoomed image, left-drag +the mouse across the image. The image can move with the mouse or in +the opposite direction (like scroll bars), depending on a user +setting (menu Tools > User Setings). The movement may be 1:1 +with the mouse, or may be magnified for faster movement. The mouse +wheel may also be used to zoom the image in or out. The middle +mouse button (wheel) will make a zoomed image re-center at the +mouse position.

    +  
    +Gallery View
    +All image files in the current directory are shown as thumbnails. +You can scroll through the thumbnails and navigate to other +directories. The arrow buttons allow scrolling forward or back by +rows or pages. You can also scroll with the mouse wheel or scroll +bar. Use the zoom buttons to change the thumbnail size. Clicking on +a thumbnail will change to file view and display the image full +size. This image is now the "current image". Pressing the gallery +button in file view will show the gallery view, with the current +image scrolled to the top row. The directory path is shown at the +top of the gallery window, with one button per directory level. +Click one of the buttons to go to that directory. Its +subdirectories will be shown as folder thumbnails. Click one of +them to go to that directory. Click the [Top] button to choose +another top image directory (if more than one), the root directory +( / ) your home directory (/home/<user>), a gallery of the +most recently viewed images, or a gallery of the newest images +added to your collection.
    + 
    +change to image file view
    +
    +current view = gallery view
    +
    +change to world map view
    +
    +change to OSM map view
    +   
    +
    favorites - custom popup menu
    +
    +set gallery (directory) from current image file
    +
    +manage albums, slide show, desktop background
    +
    +edit bookmarks, go to a bookmark
    +
    +larger thumbnails
    +
    +smaller thumbnails
    +
    +sort gallery images by file name or date
    +
    +go up to gallery top
    +
    +go down to gallery end
    +
    +go up one page
    +
    +go down one page
    +
    +slow motion gallery scroll
    +
    +batch utilities - move/convert images and RAW files
    +
    +help, user guide, change log, edit translations ...
    +

    +There are several types of galleries:
    +  +  Directory: all the image files in a single directory +(folder)
    +  +  Search results: images found by the search function, +in various directories
    +  +  Images in an Album: these may be located in various +directories
    +  +  Recent Files: the most recently viewed or edited +images
    +  +  Newest Files: the images most recently added to the +image collection
    +  
    +The gallery window title bar will show the directory name (path), +the album name, or Search +Results or Recent +Files or Newest +Files. If the gallery corresponds to a directory, buttons +for navigating to parent directories are shown in the panel. The +other gallery types have only the buttons for Album (select an +album) and TOP (go to another directory).

    +The [Sync Gallery] button (shortcut key S) +can be used to reset the gallery to the directory of the current +image file. For example, if the current gallery is the result of an +image search function, it may contain images from multiple +directories. If you click on a thumbnail, this becomes the current +file which is shown full-size in file view. If you return to +gallery view and press the Sync Gallery button, the gallery changes to the +directory of the current file.

    +A gallery thumbnail has a right-click menu with some +commonly used functions. One of these is Popup Image, which creates +a popup window with a larger image that can be rapidly zoomed to +any size with the mouse wheel. Many popup windows can be open at +once. This is useful for comparing multiple photos of the same +subject. If the popup image is zoomed down to a small size, it +disappears. Popup Image has a keyboard shortcut: Shift + left mouse +click. F11 can be used to expand the popup to full-screen and back. +Escape can be used to close the popup.

    +If the current gallery is not a directory gallery (e.g. Recent +Files), you can navigate to a directory by using the [TOP] button +in the navigation bar above the thumbnails.

    +The [Sort] button is used to sort the thumbnails by file name, file +modification date, or photo date (from EXIF data). The displayed +date is photo date unless the sort is by file date. Ascending or +descending order can be chosen.
    +  
    + 
    +World Map View
    +Initially a world map is displayed. A left click on any area will +expand that area to a much larger size, and a right click will +return to the whole map view. The mouse wheel also works. Red dots +are shown where there are images with a corresponding geotag +location (from a camera GPS receiver or entered manually into the +image EXIF data). The red dots can be clicked to show a gallery +view of the corresponding images.
    +  
    +change to image file view
    +
    +change to gallery view
    +
    +current view = world map
    +
    +change to OSM map view
    + 
    +
    choose from available maps (Europe, USA, Germany ...)
    +
    +set map click location image search range
    +
    +find images by geotag (location)
    +
    +search images by directory/file name, tags, date, location ...
    +

    +The Choose Map +menu offers a selection of large-scale continental and country maps, and you +can also install other maps (countries, cities, parks, etc.). These +all work the same way. Search Range allows you to set +a search distance for matching image locations when a red dot is +clicked. Images with geotags within the range are selected.
    +

    +The initial maps are provided in a separate package: fotoxx-maps. +Fotoxx-maps is large - almost 100 MB of maps are provided. You can +also add your own maps, explained in the topic Images by Map Location.
     
    +
    +OSM Map View
    +
    This view is similar to the above world map view. The +functionality is generally superior, but it depends on having a fast +and reliable internet connection. The OpenStreetMap internet service is +used. Initially a world map is displayed. Use the mouse wheel (or +double-click) to zoom-in to any location. Shift the map center using +mouse drag. The entire world is represented and can be viewed at any +scale. Red dots +are shown where there are images with a corresponding geotag +location. The red dots can be clicked to show a gallery +view of the corresponding images. Geotags in image files (EXIF +metadata) come from a camera GPS receiver or can be entered manually +into the +image EXIF data.
    + 
    +change to image file view
    + +
    + +change to gallery view
    + +
    + +change to world map view
    + +
    + +current view = OSM map
    + + 
    + +find images by geotag (location)
    + +
    + +search images by directory/file name, tags, date, location ...
    +If your internet connection is slow or unreliable, it may be best to +use the previous World Map method. This is also the only way to make a +custom map.

    +
    +General Image Editing +Procedures
    +The image in file view mode (the current image) can be modified +with the edit functions in the menus Edit, Repair, Bend, +Effects, Combine. These functions modify the current image in +memory and as seen in the window. You can use these functions in +any order, and the changes are accumulated. When finished editing, +use [Save] to save the modified image back to the same file, save +to a new file version (e.g. filename.v01.jpg), or input a new file +name and / or directory. Image edit dialogs have sliders, spin +buttons, or editable curves that immediately update the image. The +reaction time depends on the size of the image, the complexity of +the function and the speed of your PC. This is typically less than +second for most edit functions if using a strong PC.
      +
    +Click the undo/redo +button on the left or right side to undo or redo the +currently active edit function. After an image has had one or more +edits applied and is still the current image, the undo/redo button +can be used to go back to prior edit steps or forward to the last +edit step. The middle mouse button raises a popup list of all edits +done to the current image, and you can select any step to go back +to. The image can then be re-edited from this step.
      +
    +Edit Workflow

    +You can minimize the time needed to process many images if you +understand the following:
    +
      +
    • Choosing a new edit function will automatically complete a +prior active edit.
      +The new edit starts with the end result of the prior edit, and an +undo / redo position is created.
    • +
    • Opening a new image file during an edit function will +automatically cancel the edit.
      +The edit function is restarted with the new image.
    • +
    • The [Save] button can be used during an active edit to save the +current image status.
      +The edit function restarts automatically, and an undo / redo +position is created.
    • +
    • Some frequently used functions have a [Prev] button which +recalls previous settings,
      +making it easier to process multiple photos needing the same or +similar adjustments.
    • +
    +Example Workflow +for the initial rotate and trim (crop) of a new batch of +photos.
    +You can process one photo every few seconds (+ think +time).
    +  1.  Copy files from the camera memory card to a +directory.
    +  2.  Open the first file.
    +  3.  Menu > Edit > Trim/Rotate.
    +Repeat steps 4-7 for each image. The Trim/Rotate dialog remains +open.
    +  4.  Level the image if needed (drag the right +edge).
    +  5.  Trim the image by dragging the trim borders to +suit.
    +  6.  Press [Save] and choose "new version".
    +  7.  Press [Next] to start the next file. Press [Next] +again to skip over.
    +
    +Simple Workflow
    +Most of the time you can just edit the JPEG file that comes out of +the camera. Use the following more complex procedure only if you +see "color bands" or "posterization" after editing the image, an +indication that JPEG 8-bit color is limiting the image quality.

    +Complex Workflow
    +To edit with deep color (more than 8 bits), you can start with RAW +files from your camera. There are three options for processing RAW +files:
    +
      +
    • Open a RAW file directly with Fotoxx: use the [Open] button or +click the gallery thumbnail. The RAW file may now be edited +normally. Save the edited image file as type TIFF or PNG with 8- or +16-bit color, or JPEG with 8-bit color. You cannot save the edited +image as a RAW file type. Opening a RAW file may need several +seconds, especially on a weak PC, and saving a RAW file as TIFF or +PNG is slower than JPEG.
    • +
    • Open the RAW file with one of the File > Open RAW menus, or +right-click the gallery thumbnail and use one of the popup menus. +These are interfaces to specialized RAW editors (currently UFraw +and Raw Therapee). Saving the file creates a TIFF-16 file in Fotoxx +which may be further processed.
    • +
    • Use one of the Tools > Batch RAW menus. You can select many +RAW files and convert all of them to type TIFF or PNG with 8- or +16-bit color, or JPEG with 8-bit color. You may then select and +edit these files with Fotoxx.
    • +
    +RAW files may have more color depth than 8 bits, especially if the +camera is new and very expensive. Conversion into a PNG or TIFF +file with 16-bit color will preserve the additional color depth +available in the RAW file. The higher color depth reduces the risk +of visible color bands or speckles when retouch functions are used +that can radically shift the brightness distribution. When finished +editing, convert the final file to JPEG (quality level 70 or +greater) to reduce the file size to 10% or less. Note that editing +in deep color is more important than having deep color in the final +image. You will not be able to see any difference between a 16-bit +TIFF / PNG file and a JPEG made from that same file. To preserve +the possibility of re-editing the image later, keep the RAW file, +which is smaller than the TIFF or PNG file.

    +Edit Dialog Mouse +Ownership
    +Some dialogs use the mouse to reference or alter the image in the +main window. There may be more than one such dialog active at the +same time. The mouse is also used to zoom and scroll the image, and +you may need to do this while using a dialog. Therefore it is +important to understand who owns the mouse (which dialog, or main +window) and how to change the ownership: +
      +
    • The mouse is owned by the dialog that was last clicked or used. +Mouse clicks and drags on the image are inputs to this dialog and +DO NOT zoom or scroll the image.
    • +
    • If you hold the CTRL key down while clicking or dragging the +mouse, the image will zoom or pan / scroll, and active dialogs are +not affected.
    • +
    • The mouse wheel can always be used to zoom-in on any part of +the image.
    • +
    +Edit Dialog buttons mostly +work as follows:
    +    [Proceed] - proceed with lengthy task based on +dialog inputs.
    +    [Apply] - apply settings from dialog to image, +leave dialog active.
    +    [Done] - same as [Apply], but the dialog is +closed.
    +    [Cancel] - discard image changes and close the +dialog.

    + 
    +Curve Editing
    +
    +Some image edit functions use editable curves. You can manipulate +the curves to change some property of the image depending on some +other property. The example here shows a brightness curve, whereby +you can change brightness depending on brightness (e.g. brighten +dark image areas without changing bright areas). Generally, the +X-axis of the curve represents the input property (brightness in +this example) and the Y-axis the output property (also brightness). +The curves can be moved (pulled) with the mouse. "Up" increases the +effect and "down" decreases the effect. An anchor point (black dot) +is added to the curve wherever it is pulled, and this point remains +fixed for subsequent pulls: the curve will continue to go through +this point as other parts of the curve are pulled. Anchor points +can also be dragged. Delete an anchor point by right-clicking +it. 

    + 
    +Batch Editing
    +There are some batch functions in the gallery view Tools menu to +speed some common tasks.
    +You can select any number of image files (link) and execute the batch function for +all of them.
    +
    +Batch functions can be used for the following tasks:
    +
      +
    • Rename files (using a base name and sequence number)
    • +
    • Convert file types (e.g. png to jpeg)
    • +
    • Find and upright photos made with the camera turned 90 degrees
      +
    • +
    • Resize files (e.g. reduce for web upload or e-mail)
    • +
    • Copy or move files to another location
    • +
    • Convert RAW files to tiff, png, or jpeg
    • +
    • Add / change / remove tags or geotags
    • +
    • Delete files or move them to Trash
    • +
    • Script Files: perform multiple +edits on one image, save as a script file
      +which can then be applied to any number of images in batch +mode.
    • +

    + 
    +Selecting Image Files from an +Image Gallery Window
    +This procedure is used for all functions that operate on multiple +image files (batch add or delete tags, batch convert images, batch +RAW convert, manage albums, others). It is explained once here, and +this topic is linked from each of the functions using this +procedure.
    +
    +The dialog box is used to select image files. Behind it is a +gallery window for the current directory, album, or search results. +To select an image, click its thumbnail and the image file will be +added to the list in the dialog. Other options are shown below. You +can navigate the gallery window to other directories by clicking on +the directory names at the top or clicking on thumbnails +represending subdirectories. You can choose images from any gallery +in any order. The list of image files can also be manipulated to +change the sequence or remove images added by mistake. Click on a +file in the list to show its thumbnail in the dialog and also set +the current list position. The next image file added will be +inserted at this position. If the [delete] button is pressed, the +current list position will be deleted, and if the [insert] button +is pressed, the last deleted image file will be inserted at the +current position. The last 100 images deleted are saved and can be +re-inserted anywhere: each use of the [insert] button removes one +image from the saved list and inserts it at the current position. +To move images to a new position in the list: click the image file +(its thumbnail will be shown), click [delete]. Repeat to delete +more images. Click an image file to set the insert position, then +click [insert]. The first deleted image will be inserted before the +selected image. Repeat to insert more images from the deleted list. +The file list in the dialog can also be edited directly: you can +use cut and paste to get the sequence you wish, but be careful to +always cut and paste entire lines (files). The [add_all] button +will add all the image files in the current image gallery. After +using Search Images to establish a set of images, the gallery +window will contain this set. You can select individual images from +the gallery, or use [add all] and then delete unwanted images. A +single image may also be added multiple times to the +list.

    +Thumbnail click +rules:
    +  +  left click: add the image at the current list +position.
    +  +  right click: remove the image from the list, if +present.
    +  +  Shift + left click: add all images from the last +image added up to the clicked image.

    +
    +Menu Shortcuts

    +The Fotoxx menus are large. You may need time to get used to them +and remember where the functions are located. There are three +shortcut methods available for frequently used functions:
    +
      +
    • Right-click the main window or gallery window thumbnail.
      +A popup menu appears with some commonly used menu +functions.
    • +
    • Keyboard shortcuts - these are documented in a table below.
      +You can also add your own shortcuts for menu functions you +choose.
    • +
    • Favorites menu - a graphic popup menu with your custom +contents. You can add text and / or icons that link to any menu +functions you choose. You can arrange these as you wish in a layout +window. You can leave this window open and access any of these +functions with a single mouse click.
    • +
    +
    +Right-Click Popup Menus

    +These menus appear when the image view window or a gallery +thumbnail is right-clicked with the mouse. These are the most +frequently used functions and are available as popup menus for +convenience. Most of these are also contained in one of the +left-side main menus for image view and gallery view, as shown +above.
    + 
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     File View popup +menu
    right click on current +image in File View mode to get the following menu
     View +Metadata
    Show short form metadata +report
     Edit +Metadata
    Edit key metadata items: photo date/time, +rating, tags, captions, comments, geotags
     Edit Any Metadata
    +
    Edit any metadata item
    +
    + Rename
    Change the file +name
     Copy/Move to +Location
    Copy or move the image file to +another location
     Copy to Image +Cache
    Add the image file to the +file cache for later pasting into an album
     Copy to +Clipboard
    Copy the image file to the +clipboard (for other apps to paste)
    + Upright
    Upright the image that is +turned 90 degrees
    + Trim/Rotate
    Trim (crop) the image, +level the image or turn 90 degrees
    + Resize
    Resize (rescale) the image +width and height
     Voodoo 1 and Voodoo 2
    Limited automatic image +enhancement, two varieties
     Retouch +Combo
    Adjust brightness, color, +contrast, saturation, black point, white balance
     Edit Brightness
    Adjust the brightness +distribution (flatten, broaden, change black and white +points)
     Zonal +Flatten
    Enhance contrast and +brighten shadows, especially image areas with low +contrast
     Tone +Mapping
    Enhance contrast and +apparent brightness range by increasing brightness +gradients
     Select +Area
    Select an image object or +area for separate editing
     Show on OSM Map
    +
    Go to OSM map view, zoom-in to image location (if earth coordinates present)
    +
     Delete/Trash
    Delete the image file or move it to +the wastebasket

    +

    +
     Gallery View popup +menu
    right click on thumbnail +image to get the following menu
     Popup +Image
    Show image in a larger +window - resizable, movable, persistent until +canceled.
    +Zoom in/out using the mouse wheel. When zoomed small it +disappears.
    +Shift + left mouse click on a thumbnail: shortcut for Popup +Image.
     View +Metadata
    Show short form metadata +report
     Edit +MetadataEdit key metadata items: photo date/time, +rating, tags, captions, comments, geotags
     Edit Any MetadataEdit any metadata item
    + Rename
    Change the file +name
    + Upright
    Upright the image that is +turned 90 degrees
     Copy/Move to +Location
    +
    Copy or move the image file to +another location
     Copy to Image +Cache
    Add the image file to the +file cache for later pasting into an album
     Copy to +Clipboard
    Copy the image file to the +clipboard (for other apps to paste)
     UprightUpright the image that is +turned 90 degrees
     Show on OSM MapGo to OSM map view, zoom-in to image location (if earth coordinates present)
     Delete/TrashDelete the image file or move it to +the wastebasket
    +   
    +
    +Keyboard Shortcuts

    +Keyboard shortcuts are available for some functions. The notation +"Alt+G" means press and hold the Alt key, then press the G key. +Many of these can be changed, and new shortcuts can be added (see +KB-shortcuts function).
    +  
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    General

     F / G / W / M  +keysChange view mode: image +File, Gallery, World map, OSM map
    +
     F1 function +keyDisplay user guide for +current or prior function
     F10 function +keyToggle main window to +full-screen and back. Menu and top panel remain.
     F11 function +key
    Same as F10, but without +menu and top panel. Useful for image viewing.


    Image +File View

     left / right arrow +keysPrevious / next image +(see note)
     + or =  /  +- keysZoom image bigger / smaller +(zoom amount adjustable in User Options)
     ZToggle: zoom image to 100% +/ fit image in window
     S
    Sync Gallery to current +image file
     XMagnify Image
     POpen Previous File (or +toggle between last two files)
     UUndo current edit, or undo +one edit step in the current image
     Shift+URedo current edit, or redo +one edit step in the current image
     NRename Image +File
     KView and edit keyboard +shortcuts
     Alt+GGrid Lines on / off +(toggle)
     TTrim/Rotate +Image
     VSave the current file as a +new version
     RRetouch Combo
     Escape +keyExit a dialog, exit Slide +Show mode
     Space +BarPause / resume a running +slide show


    Gallery +View

     Home / End +keysmove to first / last page +of image gallery
     Page Up / Down +keysmove to previous / next +page of image gallery
     up / down arrow +keysmove up / down by one row +of image gallery
     left / right arrow +keysmove to previous / next +page of image gallery
     + or =  /  +-  keysbigger / smaller thumbnail +size
     Escape +keyexit a +dialog
     Shift+Left +Click
    click thumbnail - show +large popup image

    +Mouse Functions + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     left +clickZoom-in: magnify image, +center at click position
     right +clickIf image is currently +zoomed: restore to window size. If not, popup menu with common +functions.
     mouse +wheelZoom in and out depending +on wheel direction
     left drag on imagePan / scroll zoomed image, same direction or magnified +opposite direction (like scroll bars)
     right drag on +galleryScroll down or up by +dragging to the top or bottom edge, faster as mouse approaches the +edge.
     mouse + Ctrl +key
    Mouse acts on main window +instead of an active dialog, e.g. Select Area.

    +
    +Command Line Parameters +(long and short forms) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     file or directory +path

    initial image file or +directory (gallery) to open
     -album "album +name"
     -a
    initial album (gallery) to +open
     -ver -v
    output release version and +exit
    + -recent
     -r
    show a gallery of recently +seen image files, most recent at the top
    + -new 
     -n
    show a gallery of the +newest image files (from Index Image Files)
    + -prev  -p
    show the last file viewed +in the previous session
    + -blank
     -b
    show a blank +window
     -lang +lc_RC
     -l
    language code (+ opt. +region code) to use for GUI (de, de_AT)
     -menu "func +name" -m
    startup menu function - +Fotoxx will start with this function active.
    + -noindex

    disable image indexing (see +below for bad implications).
     -cycledesktop +...

    use fotoxx to rotate +desktop background image (see cycle +desktop)

    +-noindex option
    +This command line parameter can be used at Fotoxx startup to +disable the normal metadata index update. The startup will be +faster, especially if your image library is large (100,000 files) +or your computer is slow. All image search functions and map +functions will be disabled, since results could be wrong if the +metadata index no longer matches actual image metadata. These +functions will work again after a normal fotoxx startup is made and +the metadata index is updated for any new or modified image files. +Use this option only if you need to quickly look at a few images +and do not intend editing or searching. Gallery pages may also be +quite slow if they contain many image files that are new or were +modified since the last index update. This is because thumbnail +files must be created as needed. Indexing is always required for an +initial Fotoxx installation, but may be suppressed +thereafter.


    +Top Panel Status +Information
    +The top panel has information about the current image file and its +status:
    +CPU 123%  MB 1234  2345x1234x8  3.45MB  +56%  edits: 3  blocked  area active  dialog +open + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     CPU 123%current Fotoxx CPU load for +all threads and processor cores
     MB +1234
    total free memory, +including the file cache (which can be reallocated to +apps)
    + 2345x1234x8
    image width x height x +depth (bits per color)
     3.45Mimage file size (updated +when a modified image is saved)
     56%zoom status, image % +size
     edits: 33 edits have been made and +can be reversed with the [undo] button
    + blocked
    some menu functions are +blocked until the current function is completed
     area +active  a select area is present +and enabled - edits are confined within the area
     dialog +opena dialog for user input is +open and waiting
     busy +[::::         +]
    some long running functions +show this simple progress bar

     
    +Managing a Large Image +Collection
    +You can use Fotoxx to manage a huge image collection and still be +able to quickly find the images you want. Some effort by the user +to organize the images is required. Search methods include +directory and file names (or partial names), image dates, image +ratings, tags (labels for persons, places, objects, events ...), +captions and comments, and geotags (location names and latitude / +longitude). This is done in a standards-compliant manner so that +data can be shared with other image management applications. +Options for how to organize a large image collection can be found +in the topic Organizing Images.


    + 
    +
    +File View Menus

    +The following are the menus and buttons seen in the +File View mode.


     
    +
    +Favorites (File View > +Favorites)
    +
    +This is a graphic popup menu which you can populate with your +frequently used functions and arrange them on the window using the +mouse. An initial popup window (left image) is supplied. Right +click an empty space on the window to define a new menu entry. +Right click an existing entry to modify it. Use the resulting +dialog (right image) to define or change the menu entry. The +example above has mostly text menu entries, but the example 'warp' +entry was given an icon.

    + + + + + + + + + + + + + + + + + + + + + + + +
     menu +texttext for the popup menu - +optional if a menu icon is used
     menu +functhe Fotoxx function to use +- the exact menu name
     menu +iconmenu icon - +/directory.../filename.png - optional if a menu text is +used
     icon +sizeif an icon is used, its +size can be 24x24 to 64x64 pixels
     close +windowcheckbox: option to close +the popup window when this menu is selected
    +
    +Left drag a menu entry to move it somewhere else on the popup +window. The popup window can be resized to fit the contained menu +entries. Left click a menu entry to select the menu. If "close +window" was checked, the popup window will close. All menu settings +and icon files are saved in a configuration file whenever the popup +window is closed. The configuration file and saved icons are +located in the directory:
    +   +/home/<user>/.fotoxx/favorites.
    +You can use either the English menu names or their translations for +your locale. The menu names must exactly match the Fotoxx menus, +but case is not significant. The menu text may include "\n" to +represent a newline character.
    +
    +Icon library: Icons for many image edit functions can be found +here:
    /usr/share/fotoxx/icons/edit-funcs +
    + + 

    + 
    +
    +File Menu (File +View > File)
     
    + 
    +New Window (File View > +File > New Window)
    +Start a new instance of Fotoxx in a new window, slightly offset for +visibility. This is useful to compare images or to work with more +than one image at a time. Both windows can be used to edit images. +The new window will initially have an unmodified version of the +current image file. If the same image file is edited in both +windows, the final result is the file saved last.


    +Sync Gallery (File View +> File > Sync Gallery)
    +This duplicates the functionality of the Sync Gallery button in the gallery view +menu.
    +The S-key is also a +shortcut for this.
    +
    + 
    +Recently Seen Images (File +View > File > Recently Seen Images)
    +The 100 most recently seen image files (viewed or edited) are shown +in a gallery, from which you can select a file to open.

    + 
    +Newest Images (File View +> File > Newest Images)
    +The 1000 most recently added or modified image files are shown in a +gallery, from which you can select files to view or edit. You are +given a choice of using the EXIF photo date or the file +modification date to determine the newest images. If the EXIF date +is chosen, image files having no EXIF date are ignored.

    + 
    +Open Image File (File View +> File > Open Image File)
    +This function starts a standard file open dialog, allowing you to +select an image file or navigate to another directory and select an +image file. The selected file is opened in the Fotoxx main window +where you can view or edit the image file using the menus and +buttons. The main window title bar always shows the file name and +directory of the current image file. Drag and drop can also be used +to open a file: drag an image file from Nautilus (or other source) +to the Fotoxx window, and Fotoxx will open the file. If text is +dragged from gedit (or other program with drag sourcing), Fotoxx +will assume the text is a filespec and try to open it. Thus you can +make a list of filespecs in a text file and use this list with +Fotoxx. Effectively, you can use Nautilus or text files to navigate +images as an alternative to the Fotoxx navigation system.

    +Camera RAW files can also be opened. This may need a few seconds +depending on file size and processor speed.  You can proceed +to edit the RAW file like any other image file. RAW files are also +included in thumbnail galleries, as long as a .jpeg thumbnail image +can be extracted from the RAW file (normally true). When saving a +RAW file, you must specify a type TIFF or PNG (8- or 16-bit color), +or JPEG (8-bit).

    + 
    +Open Previous File (File +View > File > Open Previous File) (Key P)
    +Go back to the previously opened image file, also if this is in a +different directory. This differs from the button [Prev/Next] which +goes to the previous or next image file in the current gallery +(directory, search results, album). This function retains the +current image zoom size and position, which is ideal for rapidly +comparing two edited versions of the same image. Zoom-in on the +area to compare, and use this function to switch back and forth +between the two images.

    + 
    +Open RAW File (ufraw) (File +View > File > Open RAW (ufraw))
    +Open RAW File (rawtherapee) +(File View > File > Open RAW (Raw Therapee))
    +
    +Select and open a RAW camera file using either Ufraw or +RawTherapee.
    +You can make adjustments to the RAW file such as color temperature, +white balance, brightness, color, noise, etc. from the program GUI. +When the file is saved, a TIFF file is created with 16-bit color +depth. This file is now opened in Fotoxx and can be further edited, +saved as JPEG, etc. The RAW file type (file extension) must be +included in the list of known RAW file types in Tools > +User +Options.
    +
    +Raw Therapee does not allow the location and type of the output +file to be determined from a calling program, therefore you must +save the output file where Fotoxx can find it - in the same +directory as the RAW file. The file type must be TIFF (.tif) with a +color depth of 16 bits.

    + 
    +New Blank Image (File View +> File > New Blank Image)
    +Create a blank image with specified pixel dimensions and color. +This can be used as a background for cutouts taken from other +images (via Select Area) and annotation text (via Add Text). Input a +file name, choose a background color, and set the desired pixel +dimensions. See also the Mashup function.

    +
    +Rename Image File (File +View > File > Rename Image File) (key N) 
    +
    +This function can automate the process of renaming a series of +image files using a root name (e.g. an event or place name) and a +sequence number. Open the first image file in the series, input a +new name, and press the [apply] button. Use the [next] button to +move to the next file if wanted. You can use the same name again by +pressing the [previous name] button and then add a suffix or +sequence number. Press the [add 1] button to increment the sequence +number. A file version number (.vNN) in the previous file name is +not copied, and if the file being renamed has a version number, it +will be retained.

    +
    +Copy/Move Image File (File +View > File > Copy/Move to Location)
    +
    +The current file (file view), or the file of a clicked gallery +thumbnail (gallery view), is copied to the given location. This +location can be entered directly or chosen by a file open dialog if the +[browse] button is used. Select the copy option to copy the file and leave the source file in place, creating a duplicate. Select the move option to move the file from the original location to the new location.
    +  
    + 
    +Delete/Trash Image File (File View +> File > Delete/Trash Image File)
    +
    The +current file (file view), or the file of a clicked gallery thumbnail +(gallery view), is deleted or moved to trash, depending on the option +selected. Fotoxx uses the Linux desktop standard for trash. If this +works, +trashed image files go into the standard trash location and can be +recovered later if wanted. Otherwise, Fotoxx puts trashed images +into a desktop directory named "fotoxx-trash". You can delete it or +move it to your Linux-specific trash. If both standard and desktop +trash do not work, you must trash the files outside of Fotoxx.
       
     
    +Print Image File (File View +> File > Print Image)
    +
    +
    +The print menu brings up a standard Page Setup dialog where you can +select a printer, a paper size (letter, A4, etc.), and orientation +(portrait or landscape). After using the [apply] button, another +dialog starts for entering paper margins and an image scale. The +margins can be used to shrink the image or shift it on the page. +Image scale can be set in the range 5-100%, where 100% means print +the maximum size image that fits within the margins. Smaller values +will shrink the image proportionally. The actual print size (image +width and height in centimeters) is updated in the dialog as +margins and scale are changed, and this can be used to reach a +desired printed image size. After the margins dialog, a Print +dialog starts for the actual printing. This includes paper type and +qality inputs, and a preview of the printed layout which can be +accepted or rejected.
    +
    +Print Calibrated Image +(File View > File > Print Calibrated Image)
    +This function works like Print Image File described above, but +before printing you are asked to supply a calibration file name +which is used to adjust image colors prior to printing. The purpose +is to compensate for color distortions caused by the printer. See +the topic calibrate_printer for +details on how to create a calibration file.
    +
    +Set Desktop Wallpaper (File +View > File > Set Desktop Wallpaper)
    +This is a duplicate of the same function in Gallery View (link).
    +

    +  
    +
    +Save to Disk (File View +> Save)
    +
    +
    +
    +In the first dialog, select one of the three options: new version, +new file name, or replace file.

    +New Version: Save +the current image file with a new version number. File names with +version numbers are formatted "filename.vNN.ext" where NN is a +version number 01 to 99.  The 4 characters .vNN are inserted +between the file name and extension. If the file name has no +versions, version .v01 will be created. If file versions are +already present on disk, then the next higher version number is +used. If the file is a JPEG file, the default quality is used (this +value can be set in User Options). A keyboard shortcut can be +assigned to this function if desired (default is "V"). 

    +New File: The 2nd +dialog shown above will open to save the current image file to a +selected file, which can be the original file, another existing +file, or a new file. An edited image file can be saved in formats +JPEG, PNG and TIFF. JPEG is normally the best option, since these +are compressed to reduce space. You can choose a JPEG quality value +in the range 1-100. Lower values give smaller files and less image +quality. Values above 70 are generally hard to distinguish from 100 +(highest quality, largest file size). PNG files are compressed +without any loss of quality and are larger than JPEG files of the +highest quality. TIFF files are uncompressed and larger than JPEG +or PNG. TIFF and PNG files may be saved with 8 or 16 bits per +color. The 16-bit formats only makes sense for files converted from +a RAW format having more than 8 bits per color. It is rare that the +difference between 8 and 16 bits per color can be seen with the +eye. However, an image with higher bits has more latitude when the +brightness level or distribution is altered with a program like +Fotoxx. PNG-16 files are smaller than TIFF-16 but slower to save +due to the compression process. Saving a file as TIFF or PNG can be +quite slow for a large image and a slow computer. If an image has +transparency information (e.g. a Bend function creates a +non-rectangular image shape with transparent peripheral areas), you +should save the image as a PNG file if you want the transparent +areas to be preserved for some later operation. If you use JPEG, +these areas will be black and opaque. JPEG does not support +transparency.

    +If make current is +checked, the saved file (new file name) will become the current +file. The source file (old file name) remains unchanged. If not +checked, the file is saved with the new name, but the current file +remains the source file (old name). In either case, the edit +history is retained (i.e. Undo and Redo will still work).

    +Replace: Save the +current image file back to itself. If a JPEG file, the default +quality is used (this value can be set in User +Options).

    +File sizes for a 15-megapixel image are roughly as follows +(depending on image detail).
    +The jpeg numbers are the quality value given when the file is saved +to disk.
    + + + + + + + + + + + + + + + + + + + + + + + +
    tiff-16tiff-8png-16png-8jpeg-100jpeg-90jpeg-80jpeg-70
    112 MB38 MB78 MB21 MB8 MB2 MB1 MB0.7 MB

    +The default JPEG quality is used unless you change the value in the +New File dialog. The default value can be set in User Options +(initially 90). You will not be able to see a difference between a +file saved with quality 90 and one with 100, but the difference in +file space is huge. The Technical Notes section describes potential +loss of image quality from repeated open, edit and save of JPEG +images. At the default quality of 90 this issue can be generally +ignored.

    +
    +
    +Previous / Next Image +Button (File View > Prev/Next)
    +Keyboard left and right arrow +keys
    +Click with the left or right mouse button to open the previous or +next image file in the current gallery. If the current image has +unsaved edits, you are warned and given the option to cancel this +function. If you proceed, the edits are lost. You must save an +edited image before moving to another image. The keyboard left and +right arrow keys have the same function.

    +Previous / Next Image +Search
    If you attempt to go beyond the first or last +image in the current gallery (directory), a popup message informs +you. If you try again to move in the same direction, the last image +file in the next preceding gallery (directory), or the first image +file in the next following gallery, will be opened. If there is no +preceding or following gallery, or if it has no image files, then +nothing is done other than a popup notification. Note that only the +next preceding or following directory in the parent directory of +the current directory (gallery) is searched. There is no extended +search into further directories or subdirectories. If the current +gallery is not a directory (e.g. the Newest Images gallery), then +there is no preceding or following gallery.



    +
    +
    +Metadata Menu +(File View > Metadata)

    +Metadata means text data that is stored inside an image file. +Digital cameras create some data automatically, such as date and +time, technical data about the camera and photo parameters, and +location data (if the camera has a GPS receiver). Other data can be +added by the user, such as captions, comments, ratings, and tags +(keywords that can be used to search images, e.g. persons, places, +things, events).
    +
    +There are several alternatives for organizing a large image +collection so that it can be easily searched. It would be good to +review these before choosing an organization system.

    + 
    +View Metadata (short) (File +View > Metadata > View Metadata (short))
    +View Metadata (long) (File +View > Metadata > View Metadata (long))
    +
    +
    +The View Metadata functions will display available metadata for the +current image file. EXIF metadata contains the date and time of a +photo, shutter speed, focal length, pixel dimensions, etc. Digital +cameras store this data inside the image. IPTC metadata contains +tags (from Fotoxx, Photoshop ...) and captions (frequently found in +published images). If an image is edited and then saved, the +metadata is updated and stored with the new image. The View +Metadata short report outputs the most commonly needed data, +including the photo date and time, user-assigned tags and star +rating, comments, caption, and a history of Fotoxx edit functions +that have been applied to the image. The long report reports all +metadata available.
    +
    +The [Extras] button on the short report opens a text editor where +you can add extra items to the short report. The example above +shows three extra items. Any item you see in the long report can be +added to the short report. Simply add the items to the text, one +per line, and then save the modified text file.
    +The text file is here:  /home/<user>/.fotoxx/metadata-view-extra +
    + +
    +Fotoxx uses the following EXIF / IPTC data items:
    + 
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Key +NameFotoxx +Usage
    Date / Time +OriginalEdit Metadata function - +image date
    KeywordsEdit Metadata function - +image tags
    RatingEdit Metadata function - +image stars
    User CommentsEdit Metadata +function
    +Caption-AbstractEdit Metadata +function
    GeotagsEdit Geotags function, 3 +search image functions
    Image +History
    History of Fotoxx edits +applied to the image
    any keyEdit Any Metadata, Delete +Metadata

    + 
    +Show Captions on Image +(File View > Metadata > Show Captions on Image)
    +Show the metadata items IPTC Caption and EXIF User Comments at the +top of each image displayed. This menu is a toggle switch - the +display of captions and comments is set on and off alternatively. +If neither is available, nothing is displayed. If only one is +available, it is displayed. If both are available, they are +displayed on two lines. The lengths are truncated at 200 +characters. To see up to 1000 characters, use the View Metadata function. If Show Captions +switched ON, captions and comments are also displayed during a +Slide +Show.

    + 
    +Tags +Overview 
    +Image files can have identification or classification tags +(keywords, labels) assigned to them. These can be used to search a +large image collection for those images having desired tags. +Typical tags: the main subject of a photo, the associated event, +the location, the persons or things contained, etc. Tags reside +inside the image metadata (IPTC:keywords). Tags are normally one +word, but a short phrase with imbedded blanks or other delimiters +can be used. Commas and semicolons are recognized internally as +delimiters (separators) between tags, and therefore cannot be used +within a tag. A compound tag like arizona scenery is allowed, +but you should use two tags instead for more flexibility: you can +search for images having either tag or both tags.
    +
    +Regardless of the physical organization of your images (directory +and file names), tags can be used to create other organizations. +All images having a desired tag or tags can be found quickly and +displayed in an image gallery window, where you can further review +the images and choose those for viewing, editing, or changing their +tags. If you have used directory and file names in a meaningful +way, you can search for images using these names as well as tags. +You can also search images by date, rating, location, and other +metadata items. These need not be duplicated in tags. See Search Images below.
    +
    +Managed Tag +System
    +This is appropriate if you are starting from near nothing and you +are able to plan your tag system before adding tags to your images. +In this system, you create a limited number of tag categories (e.g. +people, places, things, events, holidays, art ...). You then plan +the tags or types of tags that will go into each category. Tags are +created and assigned to a category as needed during the process of +tagging images. An image is tagged by pointing and clicking on the +list of available tags, which is organized by category and +alphabetically within category. If a new tag is needed, it is +created before it can be assigned to an image. The total number of +tags should be less than about 500, to keep the list small enough +for rapid visual location of tags to click on. Searching images by +tags is also done by pointing and clicking on the list of available +tags.

    +managed tag system +advantages
    ++ prevent inconsistent tag names (e.g. landscape, scenery)
    ++ prevent alternate spellings and typos (e.g. susan, susy, scenery, +scenrey)
    ++ prevent tags that logically include other tags (e.g. landscape, +lake)
    +    (this can be planned and deliberate, but should +not happen by accident)
    ++ searching is reliable because tags do not have the above +errors

    +A large tag list (over 500) slows down the process of tagging +images due to the time needed to visually find the tag in the long +list (possibly in a scrolled window). This problem is reduced +somewhat because a few most recently used tags are shown separately +in the edit dialog, where they can be easily seen and chosen. Since +a series of photos made at the same time will likely share many +tags, adding tags to such a series is made easier and faster.

    +If tags are broadly defined and fewer in number, search results for +tags will be larger, but using the search results (image gallery +window) to find a smaller subset of images can be quite fast. +Physical file organization is preserved: image files located +together in their directories will also appear together in search +results.

    +Images downloaded from the internet often contain tags. These of +course have no organization and are collectively chaotic. If you +use a managed tag system, it is best to review such images and +clean up the tags to conform with your system, or delete them. +Whatever tags are present will be automatically added under the +category "nocatg". If you notice strange tags in your tag list, use +Search Images by tag to find the images needing tag deletion or +renaming.

    +Random Tag System
    +You may prefer to invent tags as needed with no particular system +in mind. Or you may already have thousands of tags, making a +conversion to a managed tag system difficult (but not impossible, +given a function to mass convert tag names). In this case, you can +simply type tags into your images, creating new tags as needed. +There is still a limited capability to keep tags organized: +existing tags matching the characters you input are shown as soon +as there are only a few possible matches. Example: you type "lan" +and a list of existing matching tags is shown: landscape, +landscapes, Langley ...  If one of these is your intention, +you click on it to select the tag. If not, you keep on typing and +eventually press Enter to create a new tag. When searching images +for tags, you can type desired tag names or pick them from the list +of available tags. Available tags matching the first few letters +you type are shown, and you can pick from this list. You cannot +search for a tag that does not exist in your images.

    + 
    +Edit Metadata (File View +> Metadata > Edit Metadata)
    +
    +
    +The menu Metadata > Edit Metadata is used to edit the most +frequently used metadata: image date and time, rating, caption, +comments, and tags. The dialog initially shows existing data for +the current image. After making additions or changes, press [Apply] +to update the image file. There is no file versioning for metadata +changes unless you do this yourself by saving a new version and +then modifying the metadata.
    +
    +Existing tags are shown in Image Tags. Available tags are +shown in the Defined +Tags window below. One of these tags can be added to the +image by clicking it. A tag can be deleted from the image by +clicking it in Image +Tags. Tags recently added are shown in Recent Tags. This is a +convenience to make adding tags to a new batch of images easier, +assuming that many of the same tags will be used repeatedly. Point +and click the same way.
    +
    +If the list of defined tags is long, it may be easier to type the +desired tag into Enter +New Tag. Existing tags matching what you have typed so far +will appear in Matching +Tags, and you can point and click one of these to add the +tag to the image. If the input tag is new, press Enter when the tag +is complete. It will be added to the image and to the list of +defined tags under the category "nocatg".
    +
    +If you are using tag categories, you can select a category, and +only those tags will be shown in the list of defined tags. If your +tags list is huge, this can reduce the list to a manageable size +for pointing and clicking.
    +
    +The date of the image, if available, is shown as Image Date. This may be +entered if missing, or changed. You can enter a full date in the +format yyyy-mm-dd or a shorter format yyyy or yyyy-mm. A missing +month / day is logically equivalent to 01/01 when used as a low +limit for searching, or 12/31 when used as a high limit. The [Prev] +button fills-in the date from the previous data entered. This is to +allow easy dating of a series of images. If time is important, you +can include a time using the format hh:mm[.ss]. You may enter an +optional Stars +rating for the image. The dialog remains open if you navigate to a +new image, and the data is updated from that image. The [Apply] +button writes the data to the image file and to the metadata index +file used for searching images.
    +
    +The button [Prev] can be used to load all available data from the +previous image viewed or edited. This can be used to speed-up the +processing of a group of images sharing much of the same data.
    +
    +The button [Manage Tags] starts the Manage Tags dialog shown immediately below.
    +The button [Geotags] starts the Edit Geotags dialog shown below.

    Manage Tags
    +
    This dialog starts from the +button [manage tags] in the Edit Metadata dialog. You can also +assign categories to tags to help organize them and locate them +more quickly when adding tags to images. They are optional and they +play no role in tag searching: only the tag is stored in an image, +not its category. Typical categories are people, places, things, +events, scenery, buildings, art, etc. To add a new tag with a new +category, enter the category and the tag, then click [create]. The +category can be left blank and the tag will be assigned to +"nocatg". To assign a tag to a different category, click a category +(bold text) or enter a new one, click the tag, and press [create]. +The tag will move from the old to the new category. To delete a +tag, click the tag and press [delete]. Tags used in images but not +assigned to a category will appear under "nocatg".
    +
    +Note: a newly created tag is appended to the end of the tag list +for its category. The next time fotoxx is started, all categories +and their tag lists are sorted alphabetically, except that "nocatg" +is always last.
    +
    +Use the [orphan tags] button to list tags that are defined but not +assigned to any images. These may be deleted if no use is +planned.

    + 
    +Edit Any Metadata (File +View > Metadata > Edit Any Metadata)
    +
    +This is a dialog for editing any metadata for the current image +file. The most likely metadata key names are listed. Click one of +these to retrieve the current key value. Change the value if wanted +and press [Save]. The metadata is updated. To edit a key name not in +the list, enter the key name and press keyboard "enter" to retrieve the +present value, if any. Then enter or change the value and press [Save]. +You may enter the key name in lower case and with or without spaces +between the words, e.g. "Bits per Sample" and "bitspersample" will +both work. To see all present keys and data, use View Metadata (long).

    + 
    +Delete Metadata (File View +> Metadata > Delete Metadata)
    +Specify the key name to delete, or select All. The metadata is deleted. +Use All to clean +an image of any identifying information that might be in there. +Some keys are not deletable, e.g. File Name.
    +  
    + 
    +Batch Add / Remove Tags +(File View > Metadata > Batch Add/Remove Tags)
    +
    When adding tags to a large +number of images having many of the same tags (i.e. the same event +or subject), use this function to speed up the process. In the +dialog, use the [select files] button to open a gallery window with +thumbnail images from which you can select the image files +(link). After selecting files, specify tags +to add to the images by clicking tags in the Defined Tags list. If you need +to create new tags, use the [manage tags] button as described +above. When done specifying image files and tags, press [proceed] +to add the tags to the image files.
    +
    +Removing tags works much the same way: select the image files and +the tags to remove. You can add and remove at the same time if the +images to process are the same ones. To replace tags, specify the +new names in the add tags list and the old names in the remove tags +list. To get a list of images having specific tags (which you want +to remove or replace), use the Search +Images function to find the images, then start this function +and use the [select files] button to add all the image files that +you just found, or select any subset.

    +If you are using tag categories, you can select a category, and +only those tags will be shown in the list of defined tags. If your +tags list is huge, this can reduce the list to a manageable size +for pointing and clicking.
    +
    +
    +Batch Rename Tags (File +View > Metadata > Batch Rename Tags)
    +With this function, you can rename any number of tags and apply +these changes to your entire image collecton. Prepare a text file +with a list of tag names and their replacements. Each line has a +pair of names separated with a comma (old tag name, new tag name). +When the function is started, you will be asked to open this file. +The list of tag names is output to a popup scrolling window, +followed by a list of images that have any of the tag names to be +revised. Inspect this list carefully. If OK, press [proceed]. The +update rate is around 500/minute on a strong computer. The next +time Fotoxx is started, the image index function will update all +thumbnails for the same images, because the file modification date +has changed.

    + 
    +Batch Add/Change Metadata +(File View > Metadata > Batch Add/Change Metadata)
    +
    +This function can revise metadata for multiple image files. You can +add new metadata, revise existing metadata, and delete metadata. +Use the [select files] button to open a gallery window with +thumbnail images from which you can select the image files to be +processed (link). Enter metadata +key names and values to be assigned, or leave the value blank to +delete this key. Press [apply]. You will get a confirmation message +and you can proceed or cancel at this time. A list of commonly used +key names is provided on the left. Click one of these to insert it +into the first empty key name field in the dialog. This list comes +from the file
    +    /home/<user>/.fotoxx/metadata_short_list
    + +which you can edit to add other keys to the list. The [Full List] +button provides information on how to get a list of all available +key names.

    + 
    +Batch Report Metadata (File +View > Metadata > Batch Report Metadata)
    +
    +This function can report any metadata for any number of images. The +output is a text file which is displayed in the default text editor +for your system (e.g. Gedit for a Gnome desktop). You can use the +search features of the text editor to find images matching desired +metadata, or you can use the text file as input to other programs. +Use the [select files] button to open a gallery window with +thumbnail images from which you can select the image files to be +processed (link). You can navigate +through any number of galleries and select any number of image +files in each. The [edit] button opens a text editor (above right) +where you can specify up to 20 metadata items to be reported. The +above example shows seven items (the top line is a comment which +can be left or deleted). When [proceed] is pressed, all selected +files are searched for all the selected metadata items. A tabular +report is produced in the text file  /home/<user>/.fotoxx/metadata_report  +and displayed in your standard text editor.

    + 
    +Geotags Overview
    +Modern cameras can record the location of each photo, using an +internal GPS receiver. Latitude, longitude, city and country are +recorded in the EXIF metadata of the image JPEG or RAW file. The +Fotoxx Edit Geotags function (immediately below) allows location +data to be entered or revised for any image. The Fotoxx Search Images function can find images by +location, including an optional range: e.g. find all photos taken +within 30 km of London>. Locations may also be specified by clicking +on a map. There are two functions that can find all images from a +specified location or region: Images by +Geotag: find all images for a country, a country and city, or a +country, city and date range. Images by Map Location: click on a +map to show all images within a range of the clicked +location.

    + 
    +Edit Geotags (File View +> Metadata > Edit Metadata, [Geotags] button)
    +
    +The dialog displays the location data for the current image, if +any. The live display is updated when a new image is opened. For an +image with missing or incorrect location data, enter a city name +and use the [Find] button to either complete the data in the +dialog, or get a list of matching cities to choose from (e.g. +London, United Kingdom and London, Canada). Partial matches are +found, so you can usually enter a leading substring, e.g. "hono" +for Honolulu. Use the [Apply] button to enter the data into the +EXIF metadata for the current image, and also into the metadata +index file for later searching by location. If the data is revised +in the dialog (spelling of city / country, or revision of latitude +/ longitude), this will take precedence for future city searches. +Use the [Prev] button to fill the dialog data with the last +location used. If the [Find] button does not find a city (it is not +present in any other image), you can use the [Web] button to find +the city and location data from an internet web service (MapQuest +Open for now, but this could change). The location data is +completed and returned into the dialog. These names are not +standardized in format or language, so check the returned +data for reasonableness and change the spelling and capitalization +if needed. The [Apply] button will add the location data to the +image, and this location will be available for future use by using +the [Find] button. If the [Web] button fails, you can manually find +the city in the internet and enter the location data into the Edit +Geotags dialog. Pressing [apply] will add the data to the current +image and make the location available for future use.
    +
    +Here are two web sites to look-up a city / country (there are many +others):
    +   +http://www.worldatlas.com/aatlas/findlatlong.htm
    + +   http://brainoff.com/geocoder/ +
    + +
    +Blank the latitude and longitude if you want to save only the city +and / or country name in the image file. If the latititude / +longitude data is changed from the values returned by [Find], these +values are saved and will be used from now on for new entries for +this city. Previous images with the same city are not revised. You +can use Images by +Geotag to find all images for a city, and +Batch Add Geotags to change the latitude / longitude for all of +them.
    +
    +Note: If the location name is not a city (e.g. Yellowstone Park), +simply use this name for the City input.
    +
    +Note: Non-English locales: If a comma is used for a decimal point +in latitude / longitude, this is accepted but converted to a period +internally. The web service returns periods.
    +
    +Note: If a city is saved without latitude / longitude, there will +be no "red dot" to mark the city on a map, and finding photos for +this city by clicking on a map will not work (Images by Map +Location). The other method to find photos by city, Images by Geotag, will still work.
    +
    +If you change to one of the map views and click on a location, this location will be inserted into the dialog.

    +For a series of photos made in the same location, you can quickly +add location data. After getting the location data for the first +image, use the [Next] button to open the next image, then the Edit +Geotags [Prev] button to fetch the previous location data, then the +[Apply] button to save into the current image file. If there are +many photos, you can use Batch Add Geotags (see below) +to quickly update all of them.

    + + + + + + +
    Summary:
    +  +  Open an image file and select the Edit Geotags menu.
    +  +  Enter (or change) a city name (possibly abbreviated) +in the dialog.
    +  +  Use [find] to find the city and auto-fill country, +latitude, longitude.
    +  +  If there are multiple matches, choose from the +list.
    +  +  If there are too many matches, add more letters or +supply the country and try again.
    +  +  If there are zero matches (not found), try the [Web] +button (country is required).
    +  +  If still not found, add more letters to the +city.
    +  +  If still not found, use one of the above web +services and input the data manually.
    +  +  Use [apply] to update the image file and make the +location available for future use.
    +  +  Open the next image (use the [prev/next] button if +appropriate).
    +  +  Use the [prev] and [apply] buttons to add the same +location data again, if wanted.
    +  
    + 
    +Batch Add Geotags (File +View > Metadata > Batch Add Geotags)
    +
    +With this function, you can select many images and add the same +location data to all of them. Use the [select files] button to +select the image files from a gallery window (link). +Then get the location data as described above in Edit Geotags, using the buttons [Find] [Web] and [Prev], or one of the map views. Press [proceed] +to start the update process. Use this function also to correct city +/ country spellings or latitude / longitude data, or to fix +inconsistencies.
    +
    + 
    +Images by Geotag (report) +(File View > Metadata > Images by Geotag)
    +
    +This is a fast way to find all photos made in a given country or +city and country. In the dialog, select the desired level of +grouping: by country, by country and city, by country and city and +date. In the last case, you can select a date range for grouping of +images having nearby dates. A number N will group images with dates +that are N days or less apart from other images in the group (i.e. +gaps are <= N days).
    +
    A popup window shows all cities +found in the image geotags, and the +dates of photos taken in those cities. The count of photos taken is +also shown. In the above example, 9 photos are from Grossglockner +starting Oct. 19, 2005. Click on a line in the window to get a +thumbnail gallery of those images, and from there you can click on +any image to view or edit. Note that this method uses only city and +country to find the images. Earth coordinates are not used. If you have +images with missing or inconsistent earth coordinates for a given city +(or location), use this function to get all of them, and then use Batch Add Geotags to make the earth coodinats consistent.
    +  
    +
    +Search Images (report) +(File View > Metadata > Search Images)
    +Use the Search Images function to find images having any desired +metadata. A metadata index file is used for searching, which makes +it possible to search thousands of images per second. The index +contains a subset of the EXIF and IPTC metadata in the image files. +Some of this data is automatic, created by the camera. Other data, +such as tags and star ratings, can be added by the user.
    +
    +An example search: find all images dated 2006 or later, rated with +4 stars or more, having tag "buildings" and geotag "Dresden". The +output report for this search is shown here:
    +
    +
    +

    +Search Images +Dialogs
    +
    +The main dialog is on the left. If the button "search other metadata" +is used, the dialog on the left appears. This can be used to select +metadata that is not available in the main +dialog.
    +
    +In the main dialog, select which images to search, either +all (the entire +image database) or current set, meaning the +images in the current gallery list (can be a directory, album, or +the results of a prior image search). Then choose what to do with +the matching images found: new set means replace the +current set with the images found, add means add them to the +current set (gallery), and remove means remove them from +the current set. To remove images, you must search the current +set.
    +
    +Select the desired report +type. The gallery report is a page of thumbnail images, as +long as needed to hold all the images that match the search +criteria. The metadata report has both thumbnail images and a list +of metadata items beside each thumbnail. These are some standard +items (date, rating, tags, geotags, captions, comments) and any +items you added in the metadata selection dialog.
    +
    +Enter your search criteria. Select desired tags, dates, star +ratings, text (comments, captions), file or directory names, and location names. +More details about these are below.
    +
    +Press the [proceed] button to perform the search. Matching images +are displayed in gallery view mode. Choose images to view or edit +by clicking the thumbnails. Navigate this set of searched images +using the navigation buttons in the gallery view window, or the +[Prev/Next] button in the file view window. You can save the +searched images as a permanent album, which can be further edited +to add or remove images (see Manage Albums).
    +
    +Available tags are shown in Defined Tags and can be chosen +with point and click. If the list of defined tags is long, it may be easier to type the +desired tag into Enter +Search Tag. Existing tags matching what you have typed so +far will appear in Matching Tags, and you can +point and click one of these to add the tag to the search list. If +you type a tag with no match (it does not exist in any image), the +list of matching tags will be empty.
    +
    +If you are using tag categories, you can select a category, and +only those tags will be shown in the list of defined tags. If your +tags list is huge, this can reduce the list to a manageable size +for pointing and clicking.
    +
    +A date range may +be entered to restrict the search to images within the date range. +The format is yyyymmdd. Images are selected which have a date on or +after the first date, if present, and on or before the second date, +if present. Missing month/day default to 01/01 for the low date +limit and to 12/31 for the high date limit. Times may optionally be +specified using the format yyyymmddhhmm. Missing times default to +00:00 and 23:59. 
    +
    +A pair of star +ratings may be entered to restrict the results to images +having a star rating within the given range. A missing low value +implies no stars, and a missing high value means the highest +rating, 5 stars.
    +
    +If last version +only is checked, image files with multiple versions will be +filtered to include only the last version of each file. This +depends on the Fotoxx version naming convention: The original file +name is normally filename.ext, and edited versions are +filename.v01.ext, filename.v02.ext, etc. If no versions are +present, the original file is selected. Otherwise, the last +available version is selected. If this convention is not followed, +then this option will do nothing.
    +
    +Image directory and file names may also be searched. In the field +search files, +enter any number of names used for your image directories and file +names, separated by blanks. An input of [ egypt cairo ] would +match all image directory or file names containing either of these +strings. Substrings will also match.

    +Image comments and captions may also be searched. Enter the words +to search for in the dialog search text field, separated +by blanks. These will be matched to every word in the comments and +captions of all images, and matching images are selected. +Substrings will also match.
    +
    +To search locations, enter one or more city or country names in the search locations +field. Only image files with geotags matching one of the entered +locations will be selected. Both city and country names can be used.
    +
    The radio buttons all and any apply to tags, text, and +file names. You can select images having ALL the entered strings, +or ANY of the entered strings. Example: if the search file field +contains [egypt cairo] and any is selected, then image +files with either of these names within the directory or file name +would be selected.
    +
    Search Metadata +Dialog
    +You may use this dialog to search for "extra" metadata items not +present in the main dialog. The items available for any given image +file can be shown using View Metadata (long). These +include camera make and model, exposure time, F-number, ISO, +metering mode, focal length, shooting mode, etc. etc. You can enter +shortcut names like "exposuretime" instead of "Exposure Time". You +may also enter match criteria, if wanted, so that only the images +with matching metadata are reported. For example, if you enter +"model" with the match value "DMC-FZ28" (a Panasonic camera) then +only the images taken with this camera will be reported. You can +also enter multiple match values for one key, separated by +blanks. If you wish to find missing data, you can enter "null" as a search value.
    +
    +Performance
    +If no extra metadata to report is entered, then many thousands of +images per second are searched and reported (assuming a strong PC). +If extra metadata is entered, the search performance slows to +something like 90 images per second. This is because the image +files are being read to extract the metadata not included in the +metadata index. For good performance, always use dates, file names, +etc. to maximize the use of the metadata index and minimize the +number of image files that must be read.
    +
    +Missing Metadata
    +You can find images with missing metadata by using "null" as a search +value. "null" for tags is available in the defined tags list.
    +
    +There is a separate topic, image organization options, which +explains the options for using directory and file names and +metadata for image searching.
    +  
    +   
    + 
    +
    +Area Menu (File +View > Areas)

    + 
    +Overview 
    +Edit functions normally apply to the entire image, but it is +possible to edit part of an image (an "area") and leave the rest +unchanged. If an image area has been selected, then most edit +functions will work only within this area. Some functions ignore a +selected area. An area may be selected before starting an edit +function, or while an edit function is active. The selected area is +immediately active, prior edits are retained, and future edits will +apply only within the area. If another edit function is started, +the selected area remains active, so it is possible to carry out a +series of edits on one area.
    +
    +"Layers" in Photoshop and Gimp are "areas" in Fotoxx. Instead of +selecting something from the image, making a separate layer from +the selection, performing edit functions on the layer and finally +merging the layers, you select something in the image and perform +edit functions on the selection, with WYSIWYG feedback during the +edit. Areas can also be saved to a file, opened and pasted into +other images, and edited there.

    + 
    +Select Area (File View > +Areas > Select)
    +
    +Area dialog is +started with the menu Areas > Select. Select one of the 8 +methods (explained below). Each method selects image areas in a +different way. You can change methods at any time, and the selected +areas are accumulated. An outline of the selected image area(s) is +shown as you add or remove areas from the selection. The [Finish] +button is used to make the area ready for subsequent image edits +within the area. The [Hide] button removes the area outline, giving +you better visibility of image edits and area edge blending. Use +the [Show] button to show the area outline. The select area dialog +can be exited and re-started later to modify an existing area or +start a new one.
    +
    +Line Drawing +Color
    +The color used for the mouse selection circle and the area outline +can be changed at any time by clicking one of the color buttons. +This allows you to maintain good contrast during pixel selection, +regardless of the brightness or color.
    +
    +Methods
    +The following methods are used to enclose one or more image spaces +that will belong to the final area. These methods may be used in +any sequence to define spaces that are either joined or detached. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Rectangle Drag the mouse to +enclose a rectangular area.
    + Ellipse Drag the mouse to +enclose an elliptical area.
    + Freehand Draw   Drag and click the +mouse to draw lines that outline an enclosed space.
    + Follow Edge  Click or drag along +the edge of an image object to draw lines that follow the +edge.
     Replace Drag the mouse near +an area edge-line to move the edge to the mouse.
    + Select area
    + within mouse   
     Left / right drag to +select / unselect all pixels within the mouse circle.
    + Selection is independent of color.
    + Select one matching
    + color within mouse
     Click on the image to +select a color. Left / right drag to select / unselect pixels
    + inside the mouse circle that match the selected color within +"match level".
    + Select all matching
    + colors within mouse
     Left / right drag to +select / unselect pixels surrounding the mouse that match
    + the color of any pixels inside the mouse circle, within +"match level".
     Controls for +mouse
    + selection methods
     "mouse radius" sets +the size of a selection circle around the mouse pointer.
    + "match level" sets the color match (0-100%) required for +pixel selection.
    +
    +The following paragraphs explain the details of each +method.
    +
    +Rectangle
    + +Drag the mouse from one corner to the opposite corner of the +desired rectangular area to select. A rectangle is drawn to enclose +the area. Right-click to delete and start over. Repeat the process +to select more rectangular areas.
    +
    +Ellipse
    +This works the same as rectangle selection, except that the area +enclosed is an ellipse.
    +
    +Freehand +Draw
    +Drag the mouse (left button down) to draw a freehand (curvy) line, +or left-click to connect a straight line from the last point drawn +to the point clicked. Continue around the target area until it is +surrounded with connected curves and lines. Right click to remove +previous lines (mistakes). A right click will remove the previous +clicked or dragged line, up to 50 pixels. Right click repeatedly to +remove more. A new clicked line will always connect to the end of +the previous line. A new dragged line will connect to the previous +line if it is started close to the end of that line. If it is +started elsewhere, a disconnected line will be drawn. You can start +a new drag from far away and draw back to meet the previous line. +If a clicked line connects to an undesired point (i.e. you don't +want to connect to the last line drawn), right click to erase it +and then use drag to start a new sequence of lines. A right-button +drag can be used to erase small segments: right-drag closely along +a line to erase it, then left-drag to re-draw the line. At the end, +an area must be fully enclosed, with no gaps. Lines that overlap a +little at the ends are OK. Gaps can be difficult to find and +correct, so work at 100% image size or greater and be careful. A +series of lines automatically connected with left clicks will not +leave gaps, but deviation from this sequence is likely to create +gaps. To reduce the possibility of gaps, use deliberate overlaps +when manually connecting lines.
    +
    +Follow +Edge
    +High-contrast pixels (likely object edges) between the last point +drawn and a newly clicked position are found and connected. This is +effective for clear edges that are not too irregular. Fuzzy and +ragged edges may not work well and freehand draw will be needed if +high precision is necessary. The rules for connecting lines are the +same as explained above. Dragging the mouse instead of clicking +works like freehand draw.
    +
    +Replace
    +Drag the mouse near and along an existing area edge-line. The line +will be erased and redrawn at the mouse pointer. This is a faster +way to make a small adjustment in an existing line.
    +
    +Select area within +mouse
    +Left click or drag will select the pixels enclosed by the mouse +circle. A right click will unselect the last selection (repeat to +unselect more). A right drag will unselect the enclosed +pixels.
    +
    +Select one matching color +within mouse
    +Click on the image to select a color. The color is shown on the +color button. You can also use the button to set a color directly. +Left / right drag to select / unselect pixels within the mouse +circle that match the selected color within match level. Adjust the match +level down / up to match more / fewer pixels.
    +
    +Select all matching +colors within mouse
    +Left / right drag to select / unselect pixels inside the mouse +circle. Pixels beyond the mouse circle are also included if they +meet these conditions: 1) their color matches any color inside the +mouse circle, within the current match level. 2) they are +within search +range of the mouse pointer. This is a factor of mouse +radius, e.g. if mouse radius is 20 and search range is 3, then the +search range is 60 pixels from the mouse pointer. Drag the mouse +over new areas you want to include. Watch the selected area expand +into areas with colors matching those inside the mouse circle. If +you go too far, right click to remove the last selection. Repeat if +needed to remove more previous selections. Reduce the radius or +increase the match level to gain finer control - the selection will +expand more slowly and stay closer to the mouse circle. A small +radius and high match level can be used to follow along an edge and +select pixels up to the edge with good precision. Change to a +larger radius and / or lower match level to select larger areas +after the fine work is complete. Right drag acts as an unselect: +pixels inside the mouse circle and matching pixels within the +search range are unselected. If a selection goes too far, it is +often easy to correct this by unselecting from outside the selected +area. You may need some practice to get a feeling for this and be +able to work efficiently.
    +
    +Mouse Radius and Match +Level
    +These two controls apply only to the select within mouse methods +described above. Mouse +radius defines the size of a circle around the mouse +pointer. Pixels within the circle are selected, or they provide a +set of colors for matching and selecting pixels outside the circle. +Match level +defines a degree of match (0-100%) to select pixels based on their +color and brightness. 0 means anything matches, and 100 means a +perfect match is required.
      +
    Summary + + + + + + + + + + + + + + + +
      +left dragselect pixels inside mouse +circle and those with matching colors within search +range
      +right clickundo +previous selection, repeat to unselect more
      +right dragunselect pixels inside +mouse circle and those with matching colors within search +range
      +
    +Blend +Width
    +Edits made within an area can be blended with the surrounding image +over a distance called blend width. At the edge of +the selected area, the image is the original (unedited) image. At a +distance of blend +width from any edge inside the area, the image is the edited +image. For distances in-between, the pixels are a mix of original +and edited pixels with a gradual transition. Use the Blend Width control to set the +blend width for the current or subsequent edit functions. Zero +blend width gives a hard edge to the area edit. Increasing blend +width makes the edges of the edit more gradual and harder to +distinguish from the original image. Changing the value for the +first time after editing an area will cause the edge distance to be +calculated for each pixel in the area. This is normally fast (a few +seconds), but it may take minutes if the area is large and has a +complex geometry (a very long edge). Whenever an area is re-edited +or inverted, the edge calculation is discarded and must be repeated +if blending is wanted. If the edge of a selected area is within 4 +pixels of the image edge, it is no longer considered an edge for +blending. If a selected area includes a portion of the image edge, +and you do not want blending along this edge (the normal case), be +sure the edge of the area is within 4 pixels of the image +edge.
    +
    +Edge +Creep
    +An area that has been finished can be expanded or contracted in +1-pixel steps. The area remains finished, but blend width is no longer valid +and must be repeated if needed. This can be helpful to reduce edge +effects when an area selected by matching colors is edited in a way +that changes its brightness. Selection by color may leave a narrow +band of underselected or overselected pixels along an edge where +color has become mixed with background. Expanding or contracting +the area a pixel or two can produce a cleaner looking +edge.
    +
    +Show / +Hide
    +Use [Hide] to hide the area outlines. This is useful when editing +the image / area, to better see the effects of the edit without +interference from the area outlines. Use [Show] to show the +outlines and resume editing the area.
    +
    +Finish
    +
    +When +you are finished selecting the enclosed spaces, use the [Finish] +button to complete the process. A popup dialog will ask you to +click the mouse inside each enclosed space in sequence. The enclosed +spaces are temporarily colored so you can verify that the final result +is what you intended. Press [Done] when all selected areas have been +clicked and filled-in.
    +When an enclosed area is clicked, all pixels within the enclosed space are mapped and saved. The enclosed space is temporarily +colored so you can see exactly what part of the image is being +selected. The dialog will show the status of the search, "success" +or "outline has a gap". If there is a gap in the outline, an +attempt is made to show where the gap is: you will see a line +coming out of the colored space to meet the edge of an imaginary +rectangle enclosing the space. You may be able to follow this line +back to the gap, but if the area is convoluted finding the gap can +be difficult. Each use of [finish] will produce a different picture +that may lead you to the gap. Carefully inspect the outline of the +area, close the hole, and use [Finish] again. An area is not +effective for edits until it is successfully finished. Any enclosed +area can be selected, even those not explicitly outlined - if you +have a donut with a hole, you can select the donut, the hole, or +both.
    +
    +Areas selected using one of the select within mouse methods +are automatically finished whenever you click inside any enclosed +area. These areas are mapped during the selection process, whereas +areas selected with one of the line drawing methods are +mapped only when you click inside them.
    +
    +If you select any of the four extend to corner options, the +area outline is automatically extended to the corner from drawn +lines that meet the image edges. This avoids the work of drawing +the area outline along the image edges to the corner. Example: to +select the sky, draw the boundary line between sky and ground, +meeting the left and right edges of the image. Then select the +upper left and right corners in the Finish dialog. The entire sky +area will be selected, without having to outline the rest of the +sky.
    +
    +Disable / +Enable
    +Disable the current area and keep the data so that it can be +re-activated later. This allows you to alternate edits within a +selected area and edits for the entire image.
    +
    +Invert
    +This function inverts an existing area: the entire image is +selected except for the existing area. Using the function two times +returns the original selected area. Inverting a selected area +invalidates the edge calculation which will be repeated if edge +blending is selected.
    +
    +Unselect
    +Discard the current area permanently.

    + 
    +Area Show / Hide (File View +> Areas > Show, Hide)
    +Show or hide the outline of the current area. Hiding the area is +useful when the area is being modified with one of the edit +functions. This makes it easier to judge the effects of the edit. +These are also available as buttons in the Select Area +dialog.

    + 
    +Area Enable / Disable (File +View > Areas > Enable, Disable)
    +Disable the current area and keep the data so that it can be +re-activated later (Enable menu). This allows you to alternate +edits within a selected area and edits for the entire image. These +are also available as buttons in the Select Area dialog.

    + 
    +Area Invert (File View > +Areas > Invert)
    +Invert an existing area: the entire image is selected except for +the existing area. Using the function two times returns the +original selected area. Inverting a selected area invalidates the +edge calculation which must be repeated if edge blending is +desired. This is also available as a button in the Select Area +dialog.

    + 
    +Area Unselect (File View +> Areas > Unselect)
    +Permanently discard the current area. This is also available as a +button in the Select Area dialog.

    +
    +Area Copy and Paste (File +View > Areas > Copy Area, Paste Area)
    +A selected area can be saved to a cache file using the menu Select +> Copy Area. This area can be pasted into the same or another +image using Select > Paste Area. Click and drag to position the +area. The dialog controls can be used to resize, rotate, and change +the brightness of the pasted area. The edge blend control allows +you to blend the area edges into the background image if +wanted.

    +
    +Area Open and Save (File +View > Areas > Open Area File, Save Area +File) 
    +A selected area can be saved to an image file using the menu Select +> Save Area File. You are asked to supply a file name. A PNG +file is created. The PNG file has an alpha channel (a 4th 'color') +for transparency information. The image is a rectangle enclosing +the selected area. Selected pixels are opaque, and others are +transparent. These files reside in  +/home/<user>/.fotoxx/saved_areas  by default, but you +can save them anywhere.
    +
    +Use the menu Select > Open Area File to paste a saved area onto +the current image file. The background image will show through the +transparent parts of the pasted area. Click and drag to position +the area. The dialog controls can be used to resize, rotate, and +change the brightness of the pasted area. The edge blend control +allows you to blend the area edges into the background image if +wanted.


    + 
    +
    +Edit Menu (File +View > Edit)

    + 
    +Trim (Crop) and Rotate +Image (File View > Edit > Trim/Rotate) (key +T) 
    +
    +This function is used to remove unwanted image margins and / or +rotate to upright or level the image.
    +
    +When the dialog opens, a selection rectangle is placed +over the image. The areas outside this rectangle are darkened and +represent the parts of the image that will be removed. Drag any +corner of the rectangle to move that corner. The dialog box shows +the current width / height ratio of the selection rectangle. If the +box lock ratio is checked, then moving one corner of the rectangle +will also move the opposite corner to keep the same ratio. You can +also drag from the middle of the rectangle to shift the whole +rectangle without changing its dimensions. You can use the width +and height spin buttons to adjust the pixel dimensions (or type-in +new values), and the selection rectangle will adjust to these.
    +
    +You can use the keyboard arrow keys to move a corner of the +selection rectangle in 1-pixel steps. The last corner moved with +the mouse is the one that is moved with the keyboard.
    +
    +The [Max] button resets the trim rectangle to the full image size +(useful if you want only to rotate the image). The [Invert] button +will invert the width / height ratio (e.g. 2.0 to 0.5). The [Prev] +button retrieves the width and height values last used for a +previous image (useful for setting multiple images to the same +size, e.g. to fit a monitor or beamer).
    +
    +The [Auto] button will automatically set the trim rectangle to omit +black margins left over from composite and warp functions. These +functions leave black margins where images did not overlay or were +bent away from the edge. [Auto] tries to find a maximum rectangle +that does not overlap any of the black margin areas. This may or +may not be the desired margins, so you can keep them or move them +with the mouse before committing with the [Done] button.
    +
    +The six ratio +buttons allow you to choose a preset width / height ratio. +You can change the ratio button names and the corresponding ratios +with the button [customize] which starts a new dialog shown on the +right. Enter desired button labels in the first row, and +corresponding width / height ratios in the second row (the default +names are the same as the ratios, except for "gold"). The [gold] +button uses the golden ratio, about 1.62:1. You do not have to keep +it.
    +
    +To level a tilted image, use the mouse to drag the right edge up or +down until the image looks level. Use the 90º and 180º buttons to +upright an image made with the camera turned. The degrees control +can be used to set any angle, -180 to +180 degrees. No resolution +is lost with 90 degree rotation. For other angles, the loss of +resolution is about 1/2 pixel. The level button can automatically +level the image if the camera used provides the needed information +(EXIF roll angle).
    +
    +The auto-trim +option automatically cuts off the edges (making them perfectly +horizontal and vertical) when an image is rotated a small amount to +make it level.
    +
    +A left-click on +the image will add vertical and horizontal guide lines to help with +image leveling. Use right-click to remove +them.

    + 
    +Upright (File View > +Edit > Upright)
    +
    +This dialog is a faster way to upright an image that is turned 90 +or 180 degrees.
    +The Upright button will take the correct action automatically if +the image EXIF data is correct (normally yes). This function is +available in the right-click popup menus for the main image window +and gallery thumbnails.
    +  
    + 
    +Voodoo 1 (File View > +Edit > Voodoo 1)
    +This is a fast automatic image enhancement with limited capability. +This is sometimes effective and "good enough" for rapidly +processing many photos. There is no dialog - the modification is +simply done when the menu is selected. Reject the change with the +[undo] button if desired. The modification consists of a slight +flattening of the brightness distribution, an expansion of the +brightness range if less than the full range is used, and a slight +increase in the color saturation, more for darker areas of the +image than brighter areas. The effect is sometimes minimal or even +negative.
    + 
    +Voodoo 2
    (File View > Edit > Voodoo 2)
    +This is an alternative automatic enhancement, using the zonal flatten method described +below.
    +  
    + 
    +Retouch Combo (File View +> Edit > Retouch Combo) (key R) 
    +This function handles all aspects of adjusting image brightness and +color: overall brightness and contrast, brightness curves (overall +and per color), color saturation, color temperature, white balance +and black level.
    + 

    +brightness curves, overall and by RGB color
    +x-axis is initial brightness, y-axis is revised +brightness

    +This example shows a reduction of brightness for
    +darker image areas, and an increase for brighter areas.


    +
    +
    +
    +
    +Use the sliders for brightness and contrast to optimize
    +the image. This may be adequate for most photos.
    +To fine tune brightness and contrast, edit the curves
    +using the mouse.
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    amplifier
    increases or decreases the +effect of the brightness edit curves
    brightness
    moves the entire curve up +or down
    contrast
    moves the curve lower and +upper parts in opposite directions
    low color / +high
    increases or decreases +color saturation
    warmer / +cooler
    adjusts color temperature +(reddish <--> blueish)
    dark +areas / bright
    apply color changes to +darker / all / brighter image areas
    brightness +distribution
    show a brightness +distribution graph in the curve edit window
    click for white +balance
    enables the mouse to click +on a black point or gray / white point
    Settings +File
    dialog settings can be +saved in a file and loaded later for use with other +images
    +
    +After making initial adjustments using the sliders, you can fine +tune brightness and contrast by editing the curves with the mouse +to change which parts of the image have increased or decreased +brightness or contrast. The ALL curve adjusts all colors, and the +RGB curves adjust individual colors. Use ALL first, then make +revisions using RGB.
    +
    +Dark - Bright +image areas
    +This modifies the operation of the color adjustments to affect +primarily darker or brighter image areas. Leave in the middle to +adjust all areas equally.
    +
    +Brightness +Distribution
    +If checked, a brightness distribution graph is drawn inside the +curve edit window. The graph is live and changes as the dialog +controls are changed. The edit curve overlays the graph and may +still be edited.

    +Click for white balance +or black level
    +If checked, mouse clicks on the image are used to set a black point +and / or white balance (otherwise clicks on the image will zoom the +image as usual). If you click on a fairly bright gray or white spot +on the image, this will be used as a white balance set point, and +the image RGB colors will be shifted to make this spot pure gray or +white. This is the easiest way to correct a photo with an overall +color tint because of bad lighting. You can use the warmer-cooler slider after +clicking, and this correction will be added to the prior result. If +you click on a very dark spot on the image, this will be used as a +black set point, and the image RGB colors will be shifted to make +this spot black. This is one way to reduce fogginess in a photo, or +make the background sky look black instead of gray in an astronomy +photo. The All +curve base node will be shifted to the right to reflect the new +black point.
    +
    +Settings File
    +Load button - load all dialog settings (including the curves) from +a file chosen by the user
    +Save button - save all dialog settings to a file chosen by the +user
    +This can help speed up processing when the same or similar settings +can be used for multiple photos made under the same conditions.
    +
    +Buttons
    +Reset - set all controls back to a neutral position - image is also +reset
    +Prev - set all controls to the values used for the previous +image
    +Done - finish the edit, close the dialog, save the control +settings
    +Cancel - cancel the edit, reset the image, close the +dialog
    +
    +You can use the [Prev] button when processing a series of images +made under the same lighting and therefore needing the same or +nearly the same adjustments.
    +  
    + 
    Edit Brightness +Distribution (File View > Edit > Edit Brightness)
    +
    +With this function you can directly alter the shape of the +brightness distribution. Move the sliders and watch the image to +find the optimum settings.
    +
    +Cutoff: If the +distribution is low or zero at the dark or bright end, you can +stretch the distribution to make it extend more into the dark or +bright end, or both.
    +
    +Flatten
    : This is a fast and easy way to compensate for a +common limitation in photos: the brightness range is inadequate, or +areas of the image have nearly the same brightness and details are +lost. Pixel brightness is redistributed so that each brightness +level is more equally represented. Technically, the brightness +distribution is made more uniform (flatter). You can flatten any or +all three ranges of brightness.
    +
    +Stretch: The +selected low / mid / high brightness region is broadened, which +necessarily squeezes adjacent areas. For example, if you broaden +the low brightness region, darker areas of the image will have more +contrast at the expense of mid- and high brightness +areas.
    +  
    +
    +Zonal Flatten (File View +> Edit > Zonal Flatten)
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +Zonal Flatten enhances visible detail in areas having poor +contrast. It is similar to Flatten, described above, but +is more effective for an image already having a wide overall +brightness distribution. The revised brightness for a pixel is +based on the brightness distribution for nearby zones. A larger +zones value calculates new pixel values from closer areas. Flatten +controls the strength of the effect, and deband moderates darker or +brighter image areas. This function can amplify noise in uniform +areas like sky. If the deband control is insufficient, use Select Area and Denoise. Alternatively, use Select Area +beforehand to select sky (or other areas to omit) and then invert +the selection prior to using Zonal Flatten.

    +Technical +Explanation (optional)
    +The image is divided into area zones according to the input zone +count. Each pixel is adjusted based on the 9 closest zones, the 3x3 +zones surrounding the zone of the pixel. More zones means smaller +and closer zones. The brightness of a pixel is compared to the +brightness distributions of the nearby zones, and the brightness is +adjusted up or down in the direction that would flatten the +distribution if the pixel were really a member of the nearby +distributions. The influence of the 9 zones are weighted based on +their distance from the pixel being calculated. The influence of +the leftmost zones goes to zero for a pixel on the right edge of +its zone. The same is true for the topmost zones, etc. This +prevents abrupt transitions that could be visible. The nature of +human vision hides the radical alterations in pixel brightness, +since the eye also judges the brightness of a spot based on its +surroundings. A larger number of zones will make each pixel +brightness adjustment depend on areas closer to the pixel.

    + 
    +Tone Mapping (File View +> Edit > Tone Mapping)
    +
    +Tone mapping increases the apparent brightness range of an image by +increasing local contrast. It is especially useful to improve HDR +images, but can also be applied to any image. Tone Mapping +increases the contrast between nearby pixels without increasing the +overall contrast. It relies on the nature of human vision: contrast +within a small angle is perceived more strongly than contrast over +a large angle. Tone mapping can bring out subtle details (low +contrast) that would otherwise be hard to notice. Other methods can +also be used: Retouch Combo can +increase the contrast for a selected brightness range (at the +expense of others). Flattening the +brightness distribution can spread the available contrast +(brightness range) more evenly. These methods operate globally: all +pixels of a given brightness are processed the same. Tone mapping +processes pixels relative to surrounding pixels, and is more +effective at enhancing detail and the perceived brightness +range. 
    +
    +In the dialog, the graphic curve determines how much local contrast +is increased depending on initial local contrast. The left end of +the x-axis corresponds to low-contrast pixels and the right end +high-contrast pixels. Raise the left side of the curve to increase +the contrast of low-contrast pixels (but this will also enhance +low-level noise). The Amplify slider below the curve +regulates the internal algorithmic calculation, from no contrast +amplification on the left to full amplification on the right. If +moved too far to the right, the image may show ugly artifacts, so +push it back until these disappear. The curve can be dragged with +the mouse and its effect on the image will show up in a second or +so (depending on image size and CPU speed). The Amplify slider also +needs time to show up in the image. If more contrast is wanted, +raise the curve. If uniform areas (e.g. sky) become mottled, pull +the left end of the curve down to reduce amplification for +low-contrast pixels. In some cases it will be best to select +different areas of the image and process them separately, e.g. more +conservative for sky, more aggressive for textured surfaces like +stone walls and vegitation.
      +
    + 
    +Resize Image (File View +> Edit > Resize)
    +(also called rescale) 
    +
    +This function resizes the image to a new pixel width and height. +You can input the new dimensions directly or choose a percent +change. Buttons are present for setting the new size to a simple +ratio of the original size. Using one of these will minimize loss +of resolution. The [Prev] button recalls the previous size, a +convenience if multiple images are being set to the same size. If +the lock ratio box is checked, the current width / height ratio +will be preserved if either width or height is changed. The change +is made immediately, but the image will look the same unless it +becomes smaller than the window. The image file size in the top +panel is not updated until the modified image is saved.
    +   
    +  
    +Flip Image (File View > +Edit > Flip) 
    +Choose either horizontal or vertical flip from the dialog. The +image is reversed (mirrored) vertically or horizontally. Repeating +the flip restores the original image. Doing both a horizontal and +vertical flip is the same as a 180 degree rotation.
       
    + 
    +Add Text to Image (File +View > Edit > Add Text)
    +
    +This function writes text directly on the image. Enter the text +into the dialog. Multiple lines can be used. After entering the +text, left-click the mouse where you want the text on the image. +Click or drag to move the text elsewhere. Right click to remove the +text. Use the [Font] button to select a different font. Use the +[Size] control to increase or decrease the text size. Use the +[Angle] control to change the slant angle of the text. The other +controls allow you to provide a background color around the text, a +text outline color, and a shadow effect. You can select the color +and transparency for all of these. The width control adjusts the +width of outlines and shadows. The shadow angle control sets the +slant angle of the shadow.
    +
    +You can initialize the text from any available metadata in the +image file. Enter the metadata key (e.g. "user +comments") and press [Fetch]. Case and embedded blanks do not +matter, so you can abbreviate key names, e.g. "usercomments" +instead of "User Comments".
    +
    +The [Open] and [Save] buttons start a file chooser dialog with +which you can load or save all text data from or to a file. All the +items in the dialog are loaded or saved, so you can keep a +collection of often-used text strings and settings.

    +The buttons at the bottom work as follows:
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Clear
    Clear the text and metadata +fields to blank.
    Replace
    Image with added text +replaces (overwrites) the current image file
    +Version
    Image with added text is +saved as a new file version
    Next
    Open the next sequential +image file and place the same text at the same +position.
    Apply
    Complete the edit and start +over. A new text string can now be added to the +image.
    Done
    Complete the edit and exit +the dialog. The edited image file must be explicitly +saved.
    Cancel
    Abandon the edit. Previous +use of [Apply] is not reversed.

    +To add the same text to a series of images: prepare and position +the text, press [Replace] or [+Version], then [Next], then +[Replace] or [+Version], then [Next] ...

    +Making a Watermark: Use a text transparency of 70% or more and a +background transparency of 100%. The text should be faint but +readable. To add a "relief" effect, use Select Area to put a box around the text and +Embossing to give the text an appearance +of depth.    
    +
    +
    +
    + 
    +Add Lines / Arrows to Image +(File View > Edit > Add Lines)
    +
    +This function writew lines or arrows directly on the image. Enter a +line length and width into the dialog, and select an arrow head if +wanted. Left-click the mouse where you want to place it on the +image. Drag the ends of the line/arrow to position it on the image. +Right click to remove it. The dialog controls allow you to provide +a background color, an outline color, and a shadow effect. You can +select the color and transparency for all of these. The +width control +adjusts the width of outlines and shadows. The shadow angle control sets the +slant angle of the shadow. The [apply] button makes the current +line / arrow permanent, so you can start a new one without leaving +the dialog. 

    + 
    +Paint Edits (File View > +Edit > Paint Edits) 
    +
    +Use this function in combination with some other edit function. +Start an edit function and leave the controls in a neutral +position. Then start Paint Edits. Specify a mouse radius and power factors for the mouse +center and radius edge. The mouse pointer will be surrounded by a +circle with the specified radius. When the mouse is dragged over an +area of the image, the current retouch function is applied within +the circle. The strength of the function is regulated by the power +factors. Typically you will use a high value at the center and zero +at the edge, meaning that the strength of the edit will be maximum +at the center, changing gradually to zero at the edge of the +circle. As you drag the mouse over the same area repeatedly, the +edits are slowly accumulated. For example, if the edit function is +Retouch Combo, and the brightness curve is moved upward (brighten), +then the image will slowly brighten in the area where the mouse is +dragged. This is called dodge and burn in some image +editors.
    +
    +Use the [undo] and [redo] buttons to monitor the change, which may +be hard to notice at first. Set the center power to 100 to make +faster changes (with less fine control). Use a left-button drag to +weaken the edit or ultimately erase it. When done using one edit +function in one or more image areas, use the [done] button on the +edit dialog to complete the edit. Use the [reset area] button on +the Paint Edits dialog to erase the active area that is now left +over from the mouse dragging. If you leave this area active and +start a new edit function, the results may be strange (the new +function applies immediately to previously painted +areas).
    +
    +A suggested approach is: (1) start an edit function and leave the +controls in a neutral position, (2) start the Paint Edits dialog, +(3) drag the mouse over the desired areas and watch the effect, (4) +adjust the edit function controls, (5) alternate between the +previous two steps. (6) Exit from the edit function, then from +Paint Edits.
    +
    +This method to "paint" edits incrementally can improve selected +areas of an image quickly and easily. It works with the following +edit functions: Retouch Combo, Zonal Flatten, Tone Mapping, +Sharpen, Denoise, Adjust HSL, Color Depth. Others may be added in +the future.
    +  
    +  
    +Leverage Edits (File View +> Edit > Leverage Edits)
    +
    +It is sometimes effective to apply an edit function "leveraged" by +some image attribute, e.g. apply noise reduction to darker areas of +the image while leaving brighter areas alone. To do this, use +Leverage Edits. Choose brightness or contrast as the lever. This +may be for a single RGB color or for all colors. The editable graph +controls how subsequent edits are applied to the image. The x-axis +is the selected lever, from minimum to maximum value. The y-axis +value governs how strongly an edit function affects a pixel having +the value on the x-axis. Example: apply tone mapping primarily to +dark pixels: Start Tone Mapping, then start start Leverage Edits +and drag the curve so that high values are on the left (dark +pixels) and low values are in the middle and on the right (bright +pixels). You can edit the leverage curve or the tone mapping curve +while watching the resulting image.
    +
    +This function can be used with the same list of edit functions +listed in the Paint Edits topic above.

    + 
    +Plugins (File View > +Edit > Plugins)
    +
    +The Plugins menu is on the left. The top entry Edit Plugins leads to the +dialog on the right. In this dialog you can define menu names and +associated commands for using other image edit programs within +Fotoxx. These menus are added to the Plugins menu. The example +shown is a menu named "auto-gamma" which starts the command +"mogrify -auto-gamma %s" (an ImageMagick function). The "%s" is a +placeholder where Fotoxx will insert the name of a temporary copy +of the current file in Fotoxx. The called edit program must process +the file and replace it with the edited version. Normally this is +done by using the program's File > Save menu. Afterwards, you +can use the Fotoxx [Undo] and [Redo] buttons to check the results, +perform additional edits with Fotoxx, or use [Save] to save the +edited image. The image passed by Fotoxx to the external program is +a TIFF file with 16 bits per color. Most programs can read this +file but may use only 8 bits. When finished using the external +program, save the image back to itself using the File > Save +menu, and then exit the program. Fotoxx will pick up the revised +file and use it as though the edit had been done in Fotoxx. Note +that in Gimp you must use the File > Export menu to save the +image back to the original input file (File > Save produces an +.xcf file).
    +
    +To add a new plugin, input a menu name and the corresponding +command in the Edit Plugins dialog and press the [Add] button. +Wherever %s is placed in the command, the file to process will be +inserted. Some commands may expect an input and output file to be +specified. In this case supply %s in both positions (the output +file replaces the input file). You may omit %s if the command does +not edit an image file. A warning is given, which you can ignore if +this is really your intention.
    +
    +To modify an existing plugin, select the menu name from the +drop-down list. The corresponding command will be shown. Modify the +command and press [Add]. You can remove a plugin by selecting it +and then pressing the [Remove] button.
    +
    +A few examples are provided in the initial Fotoxx installation:
    + + + + + + + + + + + + + + + + + + + +
    +Menu Name
    +command line
    +Gimp
    gimp +%s
    +auto-gamma
    +mogrify -auto-gamma %s
    +
    +Gthumb
    gthumb +%s
    +
    +The plugin menu is saved in the file  +/home/<user>/.fotoxx/plugins  which you can modify with +a text editor if desired. This is the only way to change the +sequence of the menu entries. Be careful not to screw up the +format.


    + 
    +
    +Repair Menu +(File View > Repair)


    + 
    +Sharpen Image (File View +> Repair > Sharpen)
    +
    +This function has four methods to sharpen a blurry image.
    +
    +Unsharp mask
    : a fast and effective method also found in other image editing apps.
    +A technical description can be found via Google.
    +
    +Gradient
    : steepens brightness transition areas directly, +somewhat like tone-mapping.
    +
    +Kuwahara
    : small neighborhoods of pixels above, below, left +and right of a pixel are compared to each-other. The pixel is given +the mean color of the neighborhood with the smallest variance in +brightness. This forces pixels on a blurry edge to move to one side +of the edge or the other. Edges are made very sharp, but details +can be lost.
    +
    +Median diff: pixel +brightness is compared to the median of pixels within radius. The +brightness is revised up or down for pixels above or below the +neighborhood median. The magnitude of the revision is proportional to +the brightness difference and the input values dark and light. +The effect is similar to unsharp mask, but the "halo" side-effect is +greatly reduced. This method is much slower than the others, especially +if a large radius is used. This is because pixel brightness values must +be sorted in order to find the median value.
    +
    +The radius value +limits the distance over which pixels around an edge are changed. +It should be small for images that are slightly fuzzy and larger +for poorer images. Amount controls the strength +of the modification. Threshold suppresses changes +to low-contrast pixels: a higher values reduces the amplification +of low-level irregularities (image noise, uneven skin tones, +etc.).
    +
    +Choose the method, set the parameters, press [apply] and wait a few +seconds to see the result. Make changes and repeat the process +until satisfied. You can go back and forth among the methods to +compare which is best for a given image. Use Select Area to +operate on different parts of an image with different methods and +parameters.

    + 
    +Blur image (File View > +Repair > Blur)
    +This function can be used to blur or un-sharpen an image. Each +pixel is mixed with neighboring pixels to reduce the differences, +making edges fuzzy. Enter a value for blur radius and press [apply] +to see the results. A small value mixes each pixel with its nearest +neighbors and larger values mix more distant pixels. The +contribution from each pixel decreases with distance, so the +nearest pixels have the greatest contribution. This function is +useful to smooth mottled skin tones. You can use select area to limit the blur to a face or part +of a face.
    +  
    + 
    +Denoise Image (File View +> Repair > Denoise)
    +
    +This function reduces the noise in photos taken under poor lighting +conditions, making uniform surfaces appear speckled. It also works +for scanned prints, as in the example here. Multiple methods are +provided because the best method varies with image noise +characteristics. Mixing methods (using one and then another) is +often helpful. Choose the method, set the radius or threshold +parameter, and press [apply]. Each new [apply] uses the modified +image from the previous [apply], so each use will have increasing +impact. With a large image, some methods may be slow. To save time, +select +a small area and experiment with the different methods and settings +until you make a decision, then apply the chosen method to the +entire image.
    +
    +The dark areas +slider can be used to restrict the process to darker image areas, +which are most prone to noise. If left at the right end, all areas +are processed. Move it back to the left to process increasingly +darker areas only.
    +
    +The [measure] button starts a dialog to measure the actual noise +level. Click on the image to show the RGB noise levels in the area +of the mouse. This must be a featureless area so that noise is the +only variation present. A dark gray sky is a good source, or a +badly out-of-focus area. To measure camera sensor noise, use a RAW +image. A JPEG image has already been processed inside the camera to +reduce noise. More information can be found in the technical notes.
    +
    +Here is a short technical description of each method:
    + 
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Flatten +1The highest and lowest +pixel values within a radius are moderated slightly.
     Flatten +2Pixels are compared to the +mean and sigma of pixels within a radius.
    +Those outside one sigma are moved slightly back toward the +mean.
    + MedianPixels are set to the +median value of their neighbors within a radius.
     Top HatDetect outliers by +comparison with a band of pixels at a distance.
    +The distance is increased in steps from 1 pixel to the radius +limit.
     WaveletsImage brightness (with +noise) over distance is converted into a series of wave functions +that nearly sum to brightness and represent an approximation with +less noise.
    + Threshold 
    Uses the threshold value to +distinguish pixel noise from image features, and an algorithm to +adjust initial pixel classifications based on neighboring pixel +classifications.
    +
    +The wavelets algorithm was adapted from code found in a Gimp +plug-in.
    +The initial version was written by Dave Coffin for the program +Dcraw
    +  
    + 
    +Smart Erase (File View > +Repair > Smart Erase)
    +
    +This function can be used to erase small objects that can spoil a +good photo, such as power lines, trash on the ground, a sign, etc. +The unwanted object is replaced with pixels taken from the +surrounding area. This is sometimes very effective (side-effects +almost invisible), and sometimes not. It works best for small or +narrow objects in the photo. Radius controls the size of a +circle around the mouse pointer, defining the area to select and +erase. Drag the mouse to enclose all or part of the object to be +removed. Left-drag selects and right-drag un-selects. Press [Erase] +to erase the selected area, replacing the pixels with the nearest +pixels from outside the selection. If the selection was not precise +enough, use [Undo], adjust the selected area, and [Erase] again. +Repeated selections and erasures will accumulate until you use +[New_Area] to start a new selection. The prior erased areas are now +fixed and [Undo] will only work for the current selection. As with +all edit functions, the main menu buttons [Undo] and [Redo] can be +used to review all changes. It is likely best to work with an image +zoomed to 200% or more. The Blur control adds blur to the +replacement pixels. This can reduce visible side-effects, since the +replacement pixels may be sharper or have more contrast than the +surroundings. Change the Blur setting and repeat the [Erase] +button. A blur of 0.5 or 1 pixel is usually effective. The [show] +and [hide] buttons can be used to show the outline of the current +selection or hide it to better judge the results after +erasing.

    + 
    +Red Eyes (File View > +Repair > Red Eyes)
    +This function reduces the red-eye effect from electronic flash +photos. Two methods are provided. The first is faster but may not +handle difficult cases. The second method is more robust but also +needs more time and care. To use the first function, left-click on +a red-eye one or more times until satisfied. If the darkened area +is too small or off-center, do a right-click to undo the change and +then left-click more precisely on the center of the red-eye. If a +red-eye cannot be fixed correctly, right-click to undo the change +and then use the second method. The second method can better handle +difficult cases where the red-eye is only slightly red and the +color difference with the eyelids is too little for the automatic +algorithm to distinguish. Place the cursor over the center of the +red eye. Hold the left mouse button and drag the cursor down and to +the right. A dotted ellipse will appear enclosing the red eye. +Repeat if needed to get the red eye centered in the ellipse +(roughly). Note that the shape of the ellipse depends on the +direction of the drag, which can allow more precise enclosure of +only the red-eye. Left-click inside the ellipse repeatedly while +watching the red eye darken, and stop when it is dark enough. If +you go too far, the eyelids may start to darken. Right-click to +undo and repeat if necessary.

    + 
    +Paint / Clone (File View +> Repair > Paint/Clone)
    +
    +This function changes individual pixels by painting them with the +mouse.
    +If a select area is enabled, the +painting is confined within the area.
    +
    +Paint +Color
    +This button allows you to pick a color, and shows the current +color. You can also shift + left-click on the image to choose a +color from the image. The paintbrush radius control sets +a circle around the mouse pointer which shows the area being +painted or erased. Left drag on the image to paint with the current +color. Right drag over a previously painted area to erase +(gradually undo the painting). The transparency controls +determine how intensely the color is applied (or erased) at the +center and edges of the circle. Zero transparency applies the full +color immediately whereas a high transparency (90+) allows you to +gradually change the color using multiple drags (analogous to spray +painting from a distance). Erase also works this way: use zero +transparency to immediately erase, and high transparency to erase +gradually.
    +
    +NOTE: zoom the image to 100% or more when using a small brush. If +the mouse steps are larger than the image pixels and a small brush +is being used, some pixels may be skipped by the mouse and cannot +be painted.
    +
    +Copy From Image +(clone)
    +Instead of one fixed color for all pixels within the paintbrush +radius, pixels are taken from somewhere else in the image. Shift + +left click on the image to select the source area, then drag on the +area to paint. The source area is painted over the dragged area. +The transparency controls work as described above. This method can +be used to erase an unwanted object, replacing it with background +taken from elsewhere.
    +
    +The [undo-last] button reverses the last paint or erase operation, +and this can be repeated to remove many recent edits. Each new mouse +drag +operation is a unit of work that can be separately reversed. The memory +for undo is limited, so this may stop working after reversing several +operations. [undo all] will put the image back in its initial condition.
    +
    +If you de-select the gradual paint option, painting +and erasing will be sudden instead of gradual. If you are painting +within a select area with edge blending, +the painted changes will be zero at the edges and 100% for pixels +beyond the blend width from the edges. This works better if +gradual paint is +not selected.
    +
    +If paint over transparent +areas is selected, painting over transparent areas will +reduce or eliminate the transparency, depending on the mouse +transparency controls and the gradual paint setting. If this +option is not selected, image transparency is not changed, and +painted pixels keep their original transparency values (only the +opaque part of the image is painted).

    + 
    +Paint Transparency (File +View > Repair > Paint Transparency)

    +Paint transparent or semi-transparent areas on an image. Such areas +are useful in the Fotoxx Mashup function, where images or +background underneath a transparent area can show through. Other +image editors (e.g. Gimp) can also use transparent areas.
    +
    +The paintbrush +radius control sets a circle around the mouse pointer which +shows the area being transformed. Left drag on the image to +increase the transparency, right drag to decrease. If gradual paint is checked, the +strength controls +determine how rapidly the transparency changes at the center and +edges of the circle. If gradual paint is not checked, transparency +is set to 100% (left drag) or 0% (right drag) for the entire area +covered by the mouse circle.
    +
    +If a Select Area is active, only the +selected areas are affected.
    +
    +An image file having transparency information must be saved as a +TIF or PNG file. JPEG files do not support transparency.

    +
    +Add Transparency (File View +> Repair > Add Transparency)
    +
    +Add transparency to an image based on brightness or a chosen color. +Areas of the image with greater brightness, or greater match with +the chosen color, will become more transparent. The reverse will +happen if Invert +Match is checked. Click on the image to set the color to +match. You can match based on any combination of hue, saturation, +and lightness. Match +Level selects the degree of match required for maximum +transparency. At the minimum setting (left end), the entire image +will be transparent. The Transparency slider regulates +the amount of transparency applied (zero at the minimum setting). +Threshold sets a +match level below which the transparency is zero.
    +  
    + 
    +Color Mode (File View > +Repair > Color Mode)
    +Use this function to make a black and white or color negative, or +convert a negative image into a positive image, or convert to sepia +coloring (a modified black / white conversion for an aged photo +effect).
    +
    +Select one of the four buttons:
    +    black / white positive - convert a color image to +black and white
    +    black / white negative - convert to black and +white and reverse brightness
    +    color positive - do nothing at all, or undo one +of the others
    +    color negative - replace each RGB color with its +compliment
    +    sepia - convert to a modified black and white +for an aged photo effect
    +
    +Color negative: Each RGB color is replaced with the maximum value - +the color value. For example, if the RGB colors (% of maximum) are +20/40/60, then the negative color is 80/60/40. Doing this twice +brings back the original colors. This produces complimentary colors +as follows: red becomes cyan, green becomes magenta, and blue +becomes yellow.
    +
    +Sepia: This is like a conversion to black and white, but a shade of +brown called sepia is added to the shades of gray. This makes a +photo look like a very old photo from the early days of +photography. Many cameras and photo edit programs have this +feature.

    + 
    +Shift Colors (File View +> Repair > Shift Colors)
    +
    +This function can be used to correct colors or convert an image +into false colors. Choose any of the three RGB colors and move the +slider left or right from the center. One of the two other colors +will be substituted in a graduated manner. For example, you can +gradually substitute green or blue for the color red. The +All slider shifts +all colors together. Do this first to find a first optimum, then +shift the RGB colors individually.

    +
    +Color Saturation (File View +> Repair > Color Saturation
    +There is one slider control to adjust color intensity or saturation +from zero (black and white image) to 100%.
    +Retouch Combo also includes an adjustment for color +intensity.
    +  
    + 
    +Adjust RGB / CMY (File View +> Repair > Adjust RGB/CMY)
    +
    +This function is used to change overall brightness and contrast, or +that of selected colors. The settings are retained within and +across Fotoxx sessions, so this function can be used to process +multiple photos made under the same lighting conditions and needing +the same (or nearly) adjustments. Use the [reset] button to restore +all inputs to neutral values.
    +  
    + + + + + + + + + + + + + + + + + + + +
    + Brightness Increase or decrease +overall image brightness
    +Red - +Cyan  etc.
     Increase or decrease +the brightness of one color
    + and change complimentary color in the opposite +direction
    + Contrast
     Increase or decrease +the overall image contrast
     Red, +etc.
     Increase or decrease +the contrast of individual RGB colors
    +   
    + 
    +Adjust HSL
    (File View > Repair > Adjust HSL)
    +
    Change a selected range of colors +in an image using an HSL color chooser (Hue, Saturation, +Lightness). This function can be used to fix color problems, e.g. a +false color cast in the entire image or in certain colors, or an +overexposed sky (too white). If you are not familiar with the HSL +color model, I suggest you read the Wikipedia article about +this.
    +
    +Begin by selecting a target image color to match and +adjust, using shift+click on the image. This color will be the +center of a range of colors that will be selected for adjustment. +This range can be very narrow or wide, depending on other dialog +settings. Select what color attributes will be matched using the +checkboxes for hue, +saturation, and lightness. Each of these will narrow the +range of selected colors. If none are checked, all colors are +selected. Match +Level can be used to further widen the range of selected +colors. 100% means only closely matching colors are changed.
    +
    +The Output Color controls are used to set the new output color which +will replace the selected input colors. The resulting color will be a +mix of the original color and the new color. The new color part is +determined by the Adjustment +slider which can be +set from 0 to 100%. Use the HSL checkboxes to determing which HSL +components of input color are replaced with the corresponding HSL +components of the output color. Use the sliders for output color HSL to adjust the new color. The output color is shown in the smaller +box on the left, which is updated as you move the sliders.
    +
    +Move the sliders and watch the live image updates to optimize the +result.
    +
    +Hint:
    begin by matching on hue and saturation, and replacing +only hue - this means that the output color saturation and lightness +will be copied from the original image colors, and only the hue will be +replaced.
    +
    +This function (like most others) can be used with Select Area to restrict the change to selected +image areas.

    + 
    +Ramp Brightness (File View +> Repair > Ramp Brightness)
    +
    +
    +This example shows brightening of the
    +upper right image quadrant.
    +
    +
    +
    +This function varies the brightness across an image, with the +direction and magnitude of the brightness slope determined by +editable curves. You can use this to compensate for uneven lighting +or vignetting (darker image corners). The function dialog displays +two editable curves, horizontal and vertical. The horizontal curve +adjusts brightness horizontally, and the vertical curve adjusts +brightness vertically. Move the curves in the directions labeled +"+" and "-" to increase or decrease the image brightness in the +corresponding image area. To remove vignetting in the image +corners, move both ends of both curves in the "+" direction while +fixing the middle areas or even moving them in the "-" direction. +To brighten the upper right corner, move the right end of the +horizontal curve and the upper end of the vertical curve in the "+" +direction, as in the example above.
    +
    +If used with select area, the scales +refer to the enclosing rectangle of the area instead of the whole +image. Thus you can select an area of an image and apply a +brightness ramp across the area. If the button All is selected (default) then +all colors are adjusted equally (i.e. brightness is adjusted). If +one of the colors is selected, the image is adjusted for that color +only, and the All curve is ignored. Any or all three RGB colors may +be adjusted in this manner. You can use this to remove a +color-caste that varies across an image or image area.

    + 
    +Ramp Color (File View > +Repair > Ramp Color)
    +
    +This function can be used to make complex color corrections, +whereby different parts of the image need different corrections. +Select up to 9 control points on the image by clicking them with +the mouse. The points are added to the list in the dialog window, +with the most recent point at the top. The points are labeled A-I +in the list and on the image window. The current RGB values are +shown (or EV or OD units if selected). Change the RGB / EV / OD +values in the dialog, and the image will be changed to match. Each +pixel in the image is influenced by all the control points in the +dialog, with the closer control points having more influence than +those farther away. The slider Blend determines how widely the +control points spread their influence. If delta is checked, the +values shown are the deltas (differences) from the original +image.
    +
    +
    +Match Colors (File View +> Repair > Match Colors)
    +
    +
    +This function matches the colors in one image to those in another. +A small spot, determined from a mouse click, is sampled from each +image. The spot on the 2nd image will be made to have the same +average color (RGB values) as the spot from the 1st image. The +factors used to make the RGB values the same are then applied to +all the pixels in the 2nd image. The most common use is to remove a +color-cast from an image by marking a spot on the image that should +have a given color which was taken from another image. 
    +
    +Procedure: The dialog lists 5 steps to take in sequence. (1) Set a +radius for the spot sample. The mouse cursor will have a circle of +this radius which is the spot area that will be sampled. (2) Open +the 1st image (press the [open] button for a file open dialog). If +the current image is already the one you want, this step can be +skipped. (3) Click on the image to take a color sample from the +spot area enclosed by the mouse circle. You can change the radius +and click again if wanted. (4) Open the 2nd image by pressing the +[open] button. (5) Click on the image at the spot you want to match +the spot color from the 1st image. The image colors will change +within a second or two. You can change the radius and click on +another spot if wanted, and the colors will change accordingly. +Click the dialog [done] or [cancel] button to finish.

    + 
    +Color Profile (File View +> Repair > Color Profile)
    +Use this function to change from the normal sRGB color profile to +some other RGB color profile. If you have images with Adobe RGB +color, you can change them to sRGB for display on a monitor using +sRGB (normally the case). You may need to install ICC color +profiles. In Ubuntu, the package names are icc-profiles and icc-profiles-free.
    +  
    + 
    +Remove Dust (File View > +Repair > Remove Dust)
    +
    +Images made from dusty scanned slides can have many small dark +spots - shadows of the dust on the slides. Historical photos from +the internet often have a similar problem. This function can be +used to remove the majority of such spots. Move the three sliders +until the maximum number of dust spots are painted red, then press +the [erase] button to erase them. Press [red] to bring back the red +view, then you can adjust the sliders again and press [erase]. The +"spot size limit" slider limits the size of the spots that will be +erased. The "max. brightness" slider sets a threshold for ignoring +spots that are not dark enough. The "min. contrast" slider screens +out spots having low contrast with their surroundings. This process +is usually a compromise. If the settings are not optimal, small +features like tree leaves can be erased, or large spots may be left +in place. Different parts of the image may need different settings, +e.g. sky can be treated more aggressively than a building wall. You +can simply use Erase Dust multiple times with different settings as +needed to get all the dust spots. Or you can use select area to process the image in sections. If +some spots are persistent, you can treat them manually with +Smart Erase: set a small mouse radius +and click on each spot to remove it. Spots from fibers (long and +thin) are usually not removed automatically, but Smart Erase can be +effective here.

    +
    +Anti-Alias (File View > +Repair > Anti-Alias)
    +
    +This function can reduce pixelation (aka "jaggies" or "stair +steps") in a low-resolution image. Press the [apply] button to make +the change, then [done]. The result is sharper than using the Blur +function. It may be useful to apply sharpening afterwards.
    +
    +Note: this tool is +only effective for pixelation with single-pixel "steps". If the +image has been resized larger (steps are larger than 1 pixel) the +algorithm does not work. It thinks the steps are legitimate because +they are big. Pixelation in photos normally occurs only when a +photo has been reduced and then enlarged. Pixelation is not a +problem with normal photography - lens blur is usually larger than +the pixel size.

    + 
    +Color Fringes (File View +> Repair > Color Fringes)
    +
    +This function is used to reduce chromatic abberation. Look +carefully at the left photo, taken from inside a church. It has +color fringes that were mostly eliminated in the processed image to +the right (these images are 400% size and not very sharp). Color +fringes can appear along high-contrast edges, especially in the +outer image areas where lens distortions are usually greatest. To +get rid of them, zoom the image to a maximum size and center on an +area with color fringes. Move the slider controls slowly while +watching the image, and leave them where the color fringes are +minimized. To speed up the response time, select a small area first, optimize the color +fringes in this area, then remove the area before pressing [done] +so that the entire image will get the final corrections. The +corrections are scaled so that the maximum correction is at the +image edges and the correction at the center is zero.

    + 
    +Stuck Pixels (File View +> Repair > Stuck Pixels)
    +
    +Camera sensors may have defects causing isolated pixels to be +always bright or always dark. This may be one RGB color or all of +them. I have seen a case where a group of 3x3 pixels was always too +red. This function can find such pixels in an image and repair them +by substituting neighboring pixels.
    +
    +Select the defect sizes to search for: 1 pixel, 4 pixels in a 2x2 +block, or 9 pixels in a 3x3 block. The defects found are surrounded +by small circles which you can toggle between write, black and red. +Zoom-in to inspect these and determine if they are real defects. +Use the contrast control to precisely select the defects. If set +too low, small high-contrast spots in the image may be erroneously +selected. If set too high, real defects may be missed. Use the +[apply] button to erase the defects in the current image. You can +apply the function many times using different settings if +needed.
    +
    +The currently shown (encircled) defective pixels can be saved to a +file by using the [save] button. This file can be used later to fix +the defects in any image made by the same camera: use the [open] +button, select the saved defects file, then use the [apply] button +to fix the current image. Using a saved defects file from one image +to fix the defects in another image will only work if the two +images have never been trimmed, or if exactly the same trim was +applied to both images. This is necessary because the defective +pixels in the two images must have the same locations. If more than +one contrast setting or pixel group selection is needed to +accurately find all the defects in one image, you can save the +respective defect files and combine them manually into one file. +Use any text editor for this.
    +
    +I suggest you make a test images to find defects: Make a photo of a +paper sheet or blank wall that is underexposed to come out gray. +This image can be used to find both bright and dark stuck +pixels.


    + 
    +
    +Bend Menu (File +View > Bend)

    + 
    +Unbend Image (File View +> Bend > Unbend)
    +
    +Panoramas of nearby subjects (typically buildings or interior +rooms) may show straight lines that are curved, or buildings that +are slanted. Bending of the images was necessary in the panorama +process in order for the images to fit together. The Unbend function +can be used afterwards to +straighten the panorama image if needed. Vertical and horizontal dotted +lines are +drawn over the image, showing the unbend axes. Click or drag the +mouse near the end of a line to move it. If values in the four input +controls are changed, the image is warped in the manner indicated by +the corresponding four icons. +Increase or decrease the values and repeat until satisfied. Move +the axes to change the centers of warping.
    +
    +See +also Warp Image for another method of +correcting image curving and perspective.

    + 
    +Fix Perspective (File View +> Bend > Fix Perspective)
    +
    +This function can be used to straighten a photo made from an offset +angle. The image on the left is the original photo, taken from +below and left of center to reduce reflections. The image on the +right is the straightened version. This function can also be used +to straighten a building photographed from below or from the +side.
    +
    +Click on the four corners of the tetragon shape that you want to +make into a rectangle (in the above case, the four corners of the +painting or frame), then select [Apply]. Use [Reset] to go back and +try again if needed. The clicked corners are marked with tiny +squares enclosing small letters A, B, C, D. The upper left corner +of the tiny square precisely marks the corner position. Clicking +near a marked corner will move it to the new position. After the +4th corner is marked, a new click replaces the closest mark. The +[Trim] button will automatically trim the image at the selected +corners, but adjustments can still be made before the final trim. +The trim and straighten can be undone in sequence. You can use the +keyboard arrow keys to move the corner markers in 1-pixel steps. +The arrow keys work on the last corner selected or moved with the +mouse.

    + 
    +Warp Image +(distort)
    +

    + 
    +Warp area (File View > +Bend > Warp area)
    +This function can be used to make distortions within an image. You +can select an image area and drag the mouse to stretch this area +with respect to the rest of the image. The image is like rubber. If +the mouse drag begins within the selected area, then the area is +warped within its current boundaries - the movement is maximum at +the mouse pointer and declines to zero at the edges of the selected +area. If the mouse drag begins outside the selected area, the area +edges near the mouse can be pulled out beyond the original area +boundary. Many mouse drags of different lengths and directions can +be combined to achieve the desired results. When finished, you can +select another area and do some more warping, or select [done] to +exit the function. The method used limits loss of resolution from +repeated warps: for each warp step, the total movement of each +pixel is accumulated and the original image is warped to the latest +pixel positions. The pixels are interpolated to reduce jaggies and +improve sharpness.

    + 
    +Warp curved (File View > +Bend > Warp curved)
    +This function is useful to correct perspective problems (see also +Unbend). Drag the image from any position, +using the mouse. The entire image will be pulled or pushed in the +direction of the mouse, but areas near the mouse are moved more +than more distant areas. You can straighten curved lines or +deliberately curve the image. The control warp span determines the +radius of warping around the mouse. 1.0 means the full image is +warped, and smaller values confine the warp to smaller areas around +the mouse.

    + 
    +Warp linear (File View > +Bend > Warp linear)
    +This function is useful to correct perspective problems (see also +Unbend). Drag the image from any position, +using the mouse. This function works over a broader area than the +curved warp and causes less image curvature. To minimize the +addition of curvature, pull only on the image corners.

    + 
    +Warp affine (File View > +Bend > Warp affine)
    +This function can be used to warp an image in interesting ways. +Drag the image from a corner or edge using the mouse. The changes +are purely linear so straight lines remain straight. This transform +is called "affine". Technical details can be found with +Google.

    + 
    +Flatten Book +Page (File View > Bend > Flatten Book +Page)
    +
    +This function can flatten a photographed page from a book. If the +book is thick, the pages bend downward at the binding, and the +photographed text is squeezed together. This function straightens +the the page and unsqueezes the text.

    +Photo +Procedure
    +First, make the photo as good as possible to minimize the needed +corrections. The page curvature can be reduced by holding the book +half-opened. Place the camera over the center of the page, so that +the top and bottom edge curves look roughly equal. Use lots of +illumination to increase the depth of field, to insure the +curved-down part of the page remains in sharp focus. Two persons +working together can photograph 1-2 pages per minute.

    +Fotoxx +Procedure
    +First, trim the image, keeping all of the page but little more. +Rotate the page if needed. Use Fix +Perspective to make the page more rectangular if needed. Start +the Flatten function. Click the mouse along the top edge, creating +visible dots at the clicked points. After 4+ points are available, +a curved line is drawn through the points. Add more points and drag +the points as needed to make the line conform closely to the page +edge. Repeat for the bottom edge. Press [flatten] to flatten the +page. The edges should now be straight (or straight enough). The +text near the binding is still squeezed together. Unsqueeze the +text by pulling the top and bottom sliders. The text is +spread out in a way that is proportional the the slope of the top +and bottom page edges, so the area near the binding is stretched +the most. The [undo] button restores the unmodified image and the +edited dots, which can now be adjusted.

    +
    +Spherical Projection (File +View > Bend > Spherical Projection)
    + 
    +Make a spherical projection of an image. Drag the mouse on the +image to change the center of the projection (defaults to +midpoint). The flatten control modifies the +projection gradually from a sphere (left) to a flat image (right). +The magnify +control magnifies the resulting image up to 2x. If you want the +margins to be transparent, be sure to save the file as .png instead +of .jpg (JPEG files do not support transparency).

    +
    +Selective Rescale (File +View > Bend > Selective Rescale)
    +
    +
    +
    +This function rescales an image to a smaller size, leaving selected +areas unchanged. The goal is to increase the relative size of the area +of interest. The image above was reduced, but the boat in the +foreground was left unchanged. Image reduction may be in width or +height or both. First, select the areas that are to be preserved using Select Area. +Press the [proceed] button. The selected area is erased and the mouse +cursor changes into a drag cursor. Pull the image inward from the upper left corner. +This operation may be repeated as needed until you are satisfied. Press +the [done] button. This function works best when the selected area(s) +are small in comparison to the entire image. The pixel rows and columns +that intersect the selected areas are not changed. Other areas are +compressed as the image is pulled inward.

    + 
    +
    +Effects Menu +(File View > Effects)

    +  
    +Color Depth (File View > +Effects > Color Depth)
    +This function changes the normal 16 bits per RGB color (red, green, +blue) to any value between 1 and 16 bits per color. At 8 bits per +color, there are 16.8 million total color combinations. At 4 bits +per color there are only 4096 total colors. Use 1-4 bits for an +interesting "poster" effect.

    + 
    +Pencil Sketch (File View +> Effects > Sketch)
    +
    +This function transforms a photo into something like a pencil +sketch. Dark pixels are aggregated into fewer pixels, leaving +vacated areas brighter. Contrast can also be used as a +proxy for dark pixels. Threshold can be used to +filter the input image by brightness. Clip Level is used to filter +the output to further reduce isolated or marginally dark pixels. +Choose colors for foreground and background. Two algorithms are +provided. Results may look more interesting with one or the other. +Reducing the size of the input image may also give more interesting +results.

    +
    +Cartoon (File View > +Effects > Cartoon)
    +
    +Transform a photo into a cartoon-like drawing. Black lines are +drawn over the "edges" of objects in the image, wherever the +brightness or color changes abruptly. Line Threshold sets the +sensitivity for edge detection and line drawing, causing more lines +(lower threshold) or fewer lines to be drawn. Line Width makes the lines +thicker or thinner. Blur +Radius controls a blur function which can make the lines +look more curvy or less jagged. Kuwahara Depth controls a +sharpen function which can strengthen the image edges.
    +
    +This function can be quite slow to react if the image is large and +if the blur and kuwahara controls are set to high values (10+ +seconds to respond). It works faster and better on smaller images, +around 2 megapixels or less. I suggest you start with small values +(2-3) for kuwahara and blur, then adjust line threshold to optimize +the density of the drawn lines. Now change kuwahara and blur in +small steps and re-adjust line threshold. If you are working with a +large image, I suggest you select a +small but important area within the image so that optimization can +proceed faster. Then delete the area and do the entire image. You +may be close to optimum already.
    +
    +Other edit functions, applied before or after Cartoon, may enhance +the effect. These include color saturation, tone mapping, color +depth, texture, and warp curved. Paint/Clone is useful to remove +minor flaws manually. Shadows in the image are a particular +problem, since they cause lines to be drawn where normally not +wanted.
    +  
    + 
    +Line Drawing (File View +> Effects > Line Drawing)
    +
    +This function transforms a photo into a line drawing showing +outlines of objects within the image. Edges (sharp transitions in +brightness or color) in the image are brightened, and the rest of +the image is darkened.
    +
    +There are three sliding controls. Threshold: how bright an edge +must be in order to get enhanced, from "show no edges" at the low +end to "show all edges" (even faint ones) at the high end. +Width: width of +the enhanced edges, from 1-pixel to about 5 pixels. Brightness: brightness of the +image itself, from dark (show only the outlines) to full +brightness. The black/white checkbox converts +the image from color to black and white, and the negative checkbox makes a +negative image (colors are replaced with their compliments).

    + 
    +Color Drawing (File View +> Effects > Color Drawing)
    +
    +This function transforms a photo into a solid color image that +looks like an illustration. The Threshold slider separates the +image into brighter and darker areas, with the boundary set at a +brightness level determined by the slider. The other two sliders +regulate the brightness of these two areas. At the settings shown +here (Dark Areas pushed left, Bright Areas pushed right), the +darker areas are black and the brighter areas as as bright as +possible with intense coloration. If the sliders are moved to the +opposite sides, the original image is restored. Move the sliders +until the image is optimized.
    +
    +This function can be used to clean up a smudgy blackboard or +whiteboard image by separating the writing cleanly from the +background (if the background smudges are weaker than the writing). +It may help to apply Sharpen to the image beforehand, to increase +the contrast of the writing. Use the unsharp mask method with a +large radius.

    + 
    +Graduated Blur (File View +> Effects > Graduated Blur)
    +
    +
    +
    +This is another function to blur an image, but it works +differently. In the dialog, you specify a contrast limit and a +blur radius. Only +pixels with less contrast than the given limit are blurred, and the +blur radius ranges from 1 to the given value for pixels with a +corresponding contrast ranging from the given limit to zero. In +short: low contrast pixels are blurred more than high contrast +pixels. This can be used, for example, to smooth skin tones without +blurring hair or reducing the sparkel in the eyes. Taken to +extremes, it produces a "cartoon" effect, especially when used in +combination with other retouch and effects functions.

    + 
    +Embossing (File View > +Effects > Embossing)
    +
    +
    +
    +This function transforms a photo into a simulated relief or +embossed image. The radius setting determines the +feature size or level of detail. The depth setting determines how +deep the features go into the surface. The upper 60% of this image +was embossed.

    + 
    +Tiles (File View > +Effects > Tiles)
    +This function transforms a photo into an array of large monocolor +tiles. You can control the tile size and the thickness of the gap +between tiles. This is also called "pixelate" or "pixelize". Use +Select Area to confine the transform to +a limited area, such as a face.

    + 
    +Dots (File View > +Effects > Dots)
    +
    +
    +
    +This function transforms a photo into a array of dots, like a comic +book picture or Roy Lichtenstein painting. The only control is +dot size. Also +experiment with using color saturation, color depth, or other +functions before and after using Dots.

    + 
    +Painting (File View > +Effects > Painting)
    +This function transform a photo into something looking more like a +painting. It reduces the number of colors, maps each contiguous +pixel area having the same color, and then consolidates smaller +areas into adjacent larger areas having the best color +match.
    +
    +color depth sets +the number of colors to use: 1 = 8 colors, 2 = 64 colors ... 5 = +32768 colors.
    +patch area goal +sets a lower limit for areas that will have their own color: areas +smaller than this number of pixels will be absorbed into an +adjacent area with the nearest color match.
    +req. color match +sets the minimum color match required for a smaller area to be +consolidated into an adjacent larger area: 0 = don't care (maximum +consolidation), 100 = perfect match required (no +consolidation).
    +borders determines +whether the colored areas will be delineated with a thin black +border, like irregular tiles in a mosaic. After using this +function, using the Embossing function can add interesting texture +to the image.

    + 
    +Vignette (File View > +Effects > Vignette)
    +This function is used to correct the darkening sometimes seen +around a photo's periphery, because less light reaches the edges +compared to the center.It can also be used to highlight or colorize +an object or area within an image.
    +
    +
    +Click or drag the mouse on the image to change the vignette center, +which is initially at the center of the image.
    +
    +Select Brightness +to change the brightness of the image in a radial pattern: Adjust +the left or right end of the curve to change the brightness of the +center and edges of the image respectively. You can give a dark +surround to a portrait face, or you can fix an image with darkened +corners. The curve middle level corresponds to no change. Use lower +values to darken and higher values to brighten. The example above +gradually darkens the periphery of the image while leaving a broad +central area unchanged.
    +
    +Select Color to +add a chosen color to the image in a radial pattern. Curve values +of zero represent no change, and higher values add the chosen color +to the image. The highest value corresponds to 100% color. Use this +function to add a color surround to an image, e.g. surround a face +with a gradually increasing color.

    + 
    +Texture (File View > +Effects > Texture)
    + +
    +This function adds a textured surface to an image or selected areas +within an image. Radius determines the texture pattern size. +Strength determines the intensity of the pattern, from almost +invisible to dominant.

    + 
    +Pattern (File View > +Effects > Pattern)
    +
    Add a +background pattern to an image. A small image file (pattern file) +is used to cover the current image by duplicating the file, like a +tiled wall. This file can be a real pattern (e.g. an image of +canvas cloth, a brick wall, a repeating geometry ...), or any other +kind of image. The pattern is made semi-transparent, so that the +base image appears to be printed over the pattern, or the pattern +over the image. Many pattern files can be found using a Google +search for "pattern image". Download some of these and trim them if +needed to a size around 200-500 pixels. For convenience, add these +to the supplied pattern files in /home/<user>/.fotoxx/patterns. +
    + +
    +Use the [Browse] button to select a pattern file. The selected +pattern will be tiled to cover the base image. The pattern is +partly transparent so that the base image shows through. Use +Zoom to grow or +shrink the pattern size. There are two methods to mix the pattern +with the base image. The pattern opacity can be set 0-100%. The +base image is used to fill the unused opacity - e.g. if the opacity +is set to 30%, then the final image will be 30% pattern and 70% +base image. Contrast is used to modify the +base image brightness using the pattern brightness as a template. +The two parameters can both be used and mixed in any +ratio.
    +
    +Width and +Height are +initially set to the size of the pattern file. You can adjust these +smaller, which will cause less of the pattern to be used for +duplication. If the pattern file contains an image that repeats at +fixed intervals both horizontally and vertically, the [Calculate] +button can be used to set width and height to match. The result +will be a continuous pattern without any edge effects.
    +
    +If the pattern is irregular and edge effects appear where the +duplicated patterns are joined, you may be able to improve this. +Use Width and +Height to revise +which part of the pattern image is used. The two Overlap values determine how +much the duplicated patterns overlap at the edges, horizontally and +vertically. Add some overlap to mask edge effects.
    +
    +Select +Area can be used to apply a pattern to part of an image, or +different patterns to different parts. After applying a pattern to +an image, it might be interesting to use Embossing or +Tone +Mapping to add a 3-D effect to the pattern.
    +
    +Useful pattern files in LibreOffice: +/usr/lib/libreoffice/share/gallery/www-back
    + + 
    + 
    +Mosaic (File View > +Effects > Mosaic)
    +Create a mosaic image using tiles made from all your +images.
    +
    +
    +Specify the tile size in pixels (e.g. 36 x 24) and press [Tiles]. +Tiles will be created from all of your images (actually the +thumbnail images are used since their small size makes the process +run much faster). This may take some time (speed is over 10K images +/ min. on a strong PC). If you change the tile dimensions, press +[Tiles] again to regenerate the tiles. This may work much faster +since the images have been cached in memory by the OS. The +generated tiles are saved to a file and loaded again the next time +the Mosaic function is used. Regenerate the tiles only when new +images have been added to your collection or if you change the tile +size.
    +
    +After the tiles are created, press [Image] to convert the current +image into a mosaic using these tiles. This takes only a few +seconds. You can process additional images without regenerating the +tiles. Tiles are chosen by matching the average tile color to the +average image color at the tile position. If thousands of images +are available and if the range of colors is good enough, the mosaic +will turn out quite good. Use the mouse wheel (or CTRL+left click) +to zoom-in on any part of the image to see the tile +images.
    +
    +The Tile blending +slider will cause the image to be blended with the tiles, making it +look better if the tiles are a bad color match. If the blending is +less than about 50%, the tiles remain almost as clear as before +(the eye compensates the false tint).
    +
    +After a mosaic is created, you can click on any tile to get a +larger popup image. This is the full image for the tile, so you can +drag the window as large as you like and it will remain sharp. A +mosaic image can be saved like any other edited image, but if a +saved mosaic is opened, clicking the tiles for a bigger image will +not work. Regenerating the mosaic is quite fast, so do this if you +want the popups to work.

    + 
    +Custom Kernel (File View +> Effects > Custom Kernel)
    +
    +Apply a custom convolution kernel to an image (a small matrix +useful for blurring, sharpening, embossing, edge-detection, and +more). The underlying technology is explained in Wikipedia. +Input a kernel +size, a divisor, and fill-in the table +values. The values can be saved into a file and retrieved later by +using the [Load] and [Save] buttons. [Reset] restores the original +status. [Apply] applies the kernel to the image, and can be +repeated for multiple applications.

    +
    +Make Waves (File View > +Effects > Make Waves)
    +
    +This function distorts an image into a wave pattern, as if it were +being viewed through turbulent water. The dialog allows you to +change the mean horizontal and vertical wavelengh, amplitude and +variance. The "perspective" input allows the wavelengths to +gradually lengthen from top to bottom. Like most effects, this +function also works within a seleced area.

    +
    +Directed Blur (File View +> Effects > Directed Blur)
    +
    +Pull a location on the image using the mouse. The area around the +mouse will move with the mouse and become blurred in this +direction, a "1-dimensional" blur. Blur span can be used to +broaden or narrow the size of the area being blurred. Intensity determines the +strength of the blur, from barely visible to completely +blurred.

    +
    +Blur Background (File View +> Effects > Tilt-Shift)
    +
    +Blur the background image while leaving the foreground sharp. The +foreground is defined by using Select +Area to select one or more areas that are to remain sharp. If +there is no selected area to begin with, the select area dialog is +started automatically. After selecting the foreground areas, invert +the selection so that the background is now selected (use the +[invert] button in the Select Area dialog). This area is the one +that will be blurred. There are two blur methods available: +Constant blur uses +a constant blur radius for all areas blurred. Increase blur with distance +uses the minimum blur radius for pixels adjacent to the foreground +(i.e. on the edge of the background area), and the maximum blur +radius for pixels at the maximum distance away from the foreground. +This requires that the edge-distance for all background pixels be +calculated, which can take considerable time for a large image. +This is done automatically if required. Various settings for blur +radius can then be tried without recalculating the edge +distances.
    +
    + + +Tilt-Shift Effect: You can do this by selecting a +horizontal rectangular area to remain sharp.


    +  
    +
    +Combine Menu +(File View > Combine)

    + 
    +High Dynamic Range (File +View > Combine > High Dynamic Range) (HDR)  
    +Combine (overlay) multiple images of the same subject with +different exposure levels. The combined image can show improved +visibility of detail in both the darker and brighter areas, in +effect using pixels from the brighter images for the darker areas, +and from the darker images for the brighter areas. Many digital +cameras do exposure bracketing: take multiple shots in quick +succession with different exposure levels. You can combine such +images to make a better one. If the camera is adjusted manually +between shots, take care to keep it level and aim at the same +distant point. Some misalignment of the input images can be +tolerated. If things move between shots, ghosting cannot be +avoided.
    +
    +Select the HDR menu function and select up to 9 images, which +must all have nearly the same pixel dimensions. The images are +aligned and combined automatically. This needs 10 seconds to a +minute or more per image, depending on image size and CPU speed. +When done, the combined image is shown, along with a dialog for +manual adjustments. The contributions from the input images are +hown as a series of editable curves. The horizontal scale +represents pixel brightness, from dark to bright. Each curve +represents an image which contributes to the pixels. The image +contribution at a given brightness level is proportional to the +height of its curve at that level. The initial curve for the +brightest image will be high on the left and low on the right, +meaning a high contribution to dark pixels and a low contribution +to bright pixels. The darkest image will be low on the left and +high on the right, and the remaining images will be in-between. The +curves can be edited by dragging them with the mouse. The +corresponding image contributions are changed accordingly, and you +can see the results in quasi-real-time in the output image. In +general, the brightest image should have a higher contribution to +the darker pixels, and the darkest image a higher contribution to +the brighter pixels. You will likely need practice to become +effective at working the curves. A faster and easier alternative +may work as well: after the images are combined, ignore the curves +and exit from HDR. Use various edit functions to refine the image: +Brightness Distribution, Retouch Combo, and Tone Mapping. Select +Area can be used to enclose any area in the image which needs more +brightness, color, or local contrast, so you can apply different +methods and parameters to different areas.

    + 
    +High Depth of Field (File +View > Combine > High Depth of Field) (HDF)
    +Combine (overlay) multiple photos of the same subject with +different focus settings from close to distant. Different parts of +the subject are in sharp focus in each image. Combine the images so +that all parts of the subject are sharp. This technique is most +useful for extreme close-ups.
    +
    +Making the photos: choose a point for the center of the image. Aim +the camera at a near object and depress the shutter button 1/2 way +to set the focus on this object. Hold the button at the 1/2 +position, aim the camera at the chosen center, and snap the photo. +Now choose a farther object and do the same. Repeat with increasing +focus distance. Hopefully each part of the subject is sharp in at +least one photo. The camera position should be very nearly the same +for all photos, which can be a challenge when the subject is very +close. Camera movement can cause scaling and parallax problems +(close objects shifted against distant objects). Such problems may +be fixable later in Fotoxx, but this may require considerable time. +It is better to avoid the problems.

    +Processing the photos: in Fotoxx, choose the HDF menu function +and select up to 9 images. The images will now be aligned as well +as possible. This needs 10 seconds to a minute or more per image, +depending on image size and CPU speed. The output image is an even +mix of the aligned input images. A small amount of camera movement +between the photos is compensated, but this is limited, and +parallax shifts are not compensated at all. When the alignment is +complete, a dialog opens. You can select any input image and +"paint" with the mouse on any area of the output image. This +converts the original image mix to the single selected image for +the area being painted. For each area or object in the image, +choose an input image that is sharp in that area. The radius of the paintbrush can +set larger or smaller, so you can paint large areas quickly and +control fine detail when needed. If you have overlapping near and +far objects, time and patience will be needed to make all of them +sharp. Misalignments can be corrected by selecting the warp option in the dialog. The +underlying images can then be dragged and warped with the mouse, +and the composite output image is changed accordingly. The warp is +limited to the area around the mouse. When a painted area is +dragged, the corresponding image is automatically selected and +dragged, while areas painted with other images remain fixed. Areas +that have not been painted cannot be dragged. Move around to +different areas and make incremental drags until all areas are +aligned. 
    +
    +Suggested +Workflow: Using paint mode, choose each image +in sequence and paint all areas that look sharp in that image. Any +boundaries that are not well-aligned will show up clearly as shifts +in the edges of objects in the image. Some of these can be made +unimportant by changing the image used for painting (if more than +one image is sharp enough). Using warp mode, make fine +adjustments as needed to eliminate visible shifts.

    + 
    +Stack / Paint (File View +> Combine > Stack/Paint)
    +Combine (overlay) multiple photos of the same subject taken at +different times. Remove tourists and cars that come and go between +shots by painting them away with the mouse.
    +
    +Making the photos: +Aim the camera at the same distant point and take multiple photos +as tourists or cars move in front of the subject. Try to get at +least one photo with each part of the subject not obscured by the +moving objects.
    +Processing the +photos: In Fotoxx, choose the Stack / Paint menu function +and select up to 9 images. The images will now be aligned as well +as possible. This needs 10 seconds to a minute or more per image, +depending on image size and CPU speed. The output image is an even +mix of the aligned input images. When the alignment is complete, a +dialog opens. You can select any input image and "paint" with the +mouse on any area of the output image. This converts the original +image mix to the single selected image for the area being painted. +For each area in the image, choose an input image that is free from +the moving objects. The radius of the paintbrush can +set larger or smaller, so you can paint large areas quickly and +control fine detail when needed.

    + 
    +Stack / Noise (File View +> Combine > Stack/Noise)
    +
    This +function combines 2-9 images (photos) of the same subject. The +photos should be nearly the same, except for small offsets caused +by a hand-held camera. If the photos were made with a very high ISO +setting (low light conditions), the pixels will have considerable +noise. By making many photos and averaging them, the noise can be +mostly eliminated.

    +Making the photos: +Choose a point for the center of the image. Take several photos +using the same center and being careful not to shift or rotate the +camera too much. The more photos the better. Up to nine can be used +with Fotoxx, but you can take more in order to have some to discard +if they are not sharp, a common problem with low light conditions +and long exposure times.

    +In Fotoxx, chose the Stack / Noise function and select up to nine +images. They will be combined automatically and shown, and then a +dialog will open. The initial output image is a combination of all +the selected input images, averaged together. This means that the +RGB values for each output pixel are the average of the RGB values +for the corresponding input pixels. A few alternative tools can be +used to possibly reduce the remaining noise a little more. The +use median button +will change the output pixels from an average of the input pixels +to the median of the input pixels (1-3 middle RGB values are +averaged, depending on the number of images). This may or may not +be better, so switch back and forth to compare (the screen update +may need several seconds). The checkboxes for omit low pixel and +omit high pixel +will cause the lowest and highest RGB input values to be discarded +before the average is calculated. This may help to get noise spikes +removed from the mix. This has no effect if the median method is +selected.

    +  
    +Panorama Image (File View +> Combine > Panorama)
    +
    +This function stitches 2-4 images together to make a wide-angle +image or panorama. The images must overlap by 15% or more, so that +the program can find where they match and join them together. Start +by selecting 2-4 image files. The images are initially joined and +shown with a small transparent overlap. A pre-align dialog (above) +asks you to drag the images into rough alignment. Drag the images +into the correct left to right order. The image to drag may overlap +other images. To be clear about which image is being dragged, drag +from near the center of the image. After the images are in the +correct order, align each image to its left neighbor. It works best +to proceed from left to right. Move an image horizontally and +vertically into rough alignment with its neighbor to the left, then +rotate the image if needed by dragging the bottom edge left or +right - the image pivots around the mid-point of its overlap with +the image to the left. The fastest method is to align the overlap +middle region first, then rotate the right image if needed to bring +the upper and lower overlap regions into alignment. Extreme +accuracy is not needed. Use the [resize] button to get a bigger +combined image after moving them closer together. The images should +be correctly curved and fit together well. If they do not, then the +lens mm parameter +(focal length, 35mm equivalent) needs adjustment. The curvature of +the images changes as lens mm is adjusted. The +initial value is obtained from the EXIF data if available, and this +is normally good enough. You can measure and set lens mm manually using the +[search] button described below. If the images have no curvature +(e.g. scanned images), use the no curve checkbox to set the +lens mm effectively to infinity.
    +
    +If an image was trimmed so that the greater dimension (width or +height) was reduced, then the EXIF focal length is no longer valid, +and the EXIF initial value may not work well. A section of an image +taken from the middle has an effective focal length greater than +the original. Increase the lens mm parameter until the +images fit together reasonably well, or use the [search] button to +make a more precise determination (described below).
    +
    +The no auto warp +checkbox is normally unchecked. Its purpose is described below.
    +
    +The manual align +checkbox will use the manual pre-alignment as the final alignment. +This is for images that have no clear features to match and align +the images automatically.
    +
    +Press [proceed] when pre-alignment is finished, and the program +will do fine alignment and join the images. Internally, the images +are shifted and rotated and the degree of match is evaluated. This +is done with increasing image sizes until the best match is found. +This may need a minute or more for a weak PC working with large +images. You can speed up the process greatly if you reduce the +input images to 1/2 size. Do this also if the process fails for +lack of memory. Panoramas with 4 large images can require 2+ GB of +memory during processing.
    +
    +When fine alignment is complete, the combined image is displayed. +The dialog shown here is started, for fine adjustment of brightness +and color match. You may see a sharp border between images if the +images do not have the same brightness and color balance. The [auto +color] button can be used to perform an automatic color match, +which is often satisfactory by itself. Use this button multiple +times to get improved matching at the expense of greater color +shifts that could add a false color tint. Restore the original +image colors with [file color]. The image selected with the Select +Image radio buttons is the starting image for the auto color +matching. Reset using [file color] and select a different starting +image to see results that may be slightly different. The brightness +and RGB color controls allow you to make additional changes to +better match the images. Select one of the images with the radio +buttons, change the values for brightness and color, and press the +[apply] button to see the results. Use [auto color] to match the +other images to the one changed. Use [file color] to restore the +original values from the input images. The blend width input +governs how the images are blended together: at the image joints, +the color balance is gradually shifted over this many pixels, to +mask imbalances that cannot be fully corrected. The default is 1 +pixel, which makes any brightness or color differences look +obvious.
    +
    +When done, you can use unbend, warp, trim/rotate and other +functions for final adjustments.

    +Vertical Panorama (File +View > Combine > Vertical Panorama)
    +This function works the same as horizontal panorama, except that +the images are arranged vertically. To change the order of the +images, drag them from near their centers. To rotate an image, drag +the right edge up or down. It works best to align from the top +down.

    +Panorama Notes
    + 
    +
    + +Scanned images can +be combined if there is enough overlap. Check "no curve" since +there is no curvature.

    +Auto Warping
    +The images are slightly warped in various directions during +alignment to find the best match. This is to compensate for shifts +in camera horizon or rotation, causing image distortions that +reduce the quality of fit. If the overlap area of two images +includes a large object that moved in or out between the two +photos, the alignment process may go crazy trying to match the +images, resulting in alignment that is very poor. By selecting +no auto warp you +may be able to get the alignment to succeed or have only a small +error. Another option is to select manual align.

    +Mouse Warp
    +If the images do not align perfectly, you may be able to improve +the alignment by using the mouse to push the images into alignment. +In the final dialog, select mouse warp, select which one +of the images with the radio buttons, and then drag the mouse +carefully along the edge of the image where it should align with +its neighbor, and move the image into alignment. The image is moved +locally around the mouse while more distant parts stay fixed. +Parallax shifting will require a compromise, since it is generally +not possible to keep both foreground and background in +alignment.

    +Setting lens mm +Automatically
    +The [search] button in the panorama pre-alignment dialog initiates +an automated search for optimum lens mm. Use a suitable image pair: +the subject is 50+ meters away, the images have a low horizon +difference and little relative rotation, and there is plenty of +high-contrast detail in the overlap area. Input your nominal lens +focal length for lens_mm. After doing a decent +pre-align, press the [search] button and wait a while for the +results. Do this a second time and observe the change. If lens mm +remains consistent, you can use it for your panoramas. The search +function steps through a range of values for lens_mm and the image +alignment offsets for x, y, and theta. It searches for the lens +value that give the best alignment results for the given images. +The process needs a minute or more, but you only need to do this +once to characterize a given camera lens and focal length (zoom +setting). Use the [save] button in the 1st dialog to put the focal +length back into the image EXIF data.

    +Setting lens mm +Manually
    +Make a panorama image of a brick wall (or any wall with lots of +detail). The wall should be 5+ meters away. Take two photos with +about 40% overlap. Within the panorama pre-align process, adjust +lens_mm until +overlapping bricks coincide. When making the two images, be sure to +turn the camera on a vertical axis through the lens, minimizing +lateral movement and rotation in other axes - otherwise your lens +mm may not be optimal. The result should roughly correspond to the +nominal focal length of your lens (35mm equivalent). It may be off +somewhat (my 27mm lens works best with a lens_mm setting of +29-30mm). I speculate that this is because wide-angle camera lenses +are not ideal lenses (pinhole equivalent). Most panoramas will +still work well even if the lens_mm setting is off by 10%.

    +Color Matching +Problems
    +If the images in a panorama have a large brightness difference in +the overlap areas, the automatic color matching may not work well +enough. The most common problem is false sky colors. You may be +able to improve this by brightening or darkening an input image to +more closely match its neighbors in the overlap areas. Sky can be +easy to fix by selecting the false areas and copying sky from +elsewhere in the image (see Paint / +Clone). It seems to work better if you brighten the darker +image instead of darkening the brighter one. You can do this in the +final dialog as described above, or you can do this before starting +the panorama.

    +Panorama +Limitations
    +Panoramas including nearby objects can be tricky: when the photos +are made, be careful to turn the camera on an axis through the +lens, with minimum lateral movement, otherwise the images may align +poorly because foreground objects are shifted against the +background (parallax). This is not an issue when the subject is 50+ +meters away, since a small lateral movement has little impact on +the image. Keep the camera level to avoid a large vertical shift +(horizon shift), which can cause image distortions that may not be +fully corrected. Avoid rotating the camera for the same reason.

    +PT Panorama (File View > +Combine > PT Panorama)
    +The Panorama Tools utilities (via the Hugin package) have been +integrated into Fotoxx under the menu PT Panorama. The user +interface is very simple: specify the input images in any order and +proceed. Everything else is automatic. After a minute or so the +finished panorama is shown and is now the current file in Fotoxx. +The file name is <first input file name>-PT.tif. This is an +8-bit TIF file and is very large. You can save the file as JPEG and +delete the original TIF to save space. Panorama Tools usually does +a fine job, but I have noticed minor alignment errors in some +cases, usually too small to notice. It may be possible to eliminate +these by using the full features of Hugin directly instead of the +automated script used in Fotoxx. They may also be fixed using +Mashup - see the related paragraph in Mashup, below.

    +
    +Mashup (File View > +Combine > Mashup)
    +
    +
    +Arrange multiple images and text in a layout (photo montage). +Images can be added, resized, rotated and moved around by dragging +with the mouse. Images can be made entirely or partly transparent +in selected areas. Text can be added, moved, resized and rotated. +Text attributes can be specified: font, size, color, outline, +shadow, transparency.  Lines and arrows can be added. The +example here shows some of the possibilities.

    +
    +In the first Mashup dialog, choose a background or layout image +where other images will be placed. Choose an existing image or +create a new monotone image with a specified size and color. You +may also open a previously saved mashup project and continue +editing.

    +
    +The 2nd Mashup dialog is a choice: edit images, edit text, edit +lines and arrows, rescale to a larger size, save the completed +composite image (Done) or abandon the image (Cancel). The first +three choices lead to dialogs to perform the respective edits. Each +of these return to this dialog when done, so you can add or modify +images, text, and lines / arrows in any sequence.
    +Rescale is explained below.

    +
    +Use this dialog to select and place images on the layout and revise +their appearance: size, rotation, position, and transparency. An +image may be partly or wholly transparent, overall or within +specified areas. This means that the background image or an +overlapped image can show through the transparent areas. The Add +button leads to a gallery file selection dialog (link). +Selected images are placed on the layout. After the images are +added, click on any image to select it for modifications.  +Drag the image from the middle to reposition the image in the +layout. Drag the lower right corner to resize the image. Use the +dialog controls to adjust the image. The dialog controls operate on +the last image added, clicked or dragged. The Next button will +cycle through the images one at a time, flashing the selected +image. This can be used when overlapped images make it difficult to +select the desired image by clicking it. Scale resizes the image. +Angle rotates the image. The Stacking Order buttons raise or lower +an image relative to other images - this determines which of two +overlapping image will be on top. Base Transparency is used to make +an entire image partly transparent. The [paint] button is used to +make any part of an image partly or fully transparent, using the +Paint dialog below. The [warp] button is used to bend or warp an +image, using the Warp dialog below. The black margins checkbox can +be used to remove black margins left by other edit functions, e.g. +bend or warp. These will be made transparent. The Margins controls +can be used to increase edge margins. The Hard margins cut +off  image edges. The Blend margins make the edges partly +transparent to blend them into the background or overlapped +images.

    +
    +"Paint" more or less transparency for selected image areas. Click +on an image to select it. The mouse will have a circle around it to +show the range of action. Use radius to adjust the size of the +circle. Left-drag the mouse over the image to make it transparent +in the areas covered by the circle. Right-drag to make it opaque. +If Gradual is checked, transparency changes are made slowly as the +mouse is dragged. Specify a power value for the mouse center and +edges to make the changes faster or slower.

    +
    +Click this dialog to insure it is active, and click on an image to +select it. Drag the image with the mouse - the image will warp or +stretch locally in the direction of the mouse (like sheet rubber). +The area of warping is roughly given by warp span, which is a +fraction of the image size. Each drag is a step that adds to +previous steps. Recent steps can be reversed with [undo last], and +the unbent image can be restored with [undo all].

    +
    +The Edit Text dialog is used for placing text on the layout. Enter +some text and press Add. You are asked to click on the layout where +the text will be added. Drag it into position, then use the dialog +controls to set font, size, color, angle, background color, outline +size and color, shadow size and color, and transparencies for each +of these. Drag the text to a new position at any time. Click on any +existing text to show its properties in the dialog and revise them. +Click on a text and press Delete to remove it. When done editing, +press Done to return to the 2nd Mashup dialog.

    +
    +The Edit Line / Arrow dialog is used for placing lines or arrows on +the layout. It works very much like adding text. Enter a length and +width and press Add. You are asked to click on the layout where the +line will be added. A line is placed on the layout, or an arrow if +one of the Arrow head options is checked. Drag the line / arrow to +the desired position. Adjust length, width, angle and attributes +(background, outline, shadow) using the dialog. You can also drag +either end of the line/arrow to reposition that end while leaving +the other end fixed.
    +
    +You can use the mouse to move and resize objects in the layout:
    +  +  click the object to select it - it flashes to +confirm the selection.
    +  +  drag from the approximate center to reposition the +object.
    +  +  drag the image or text lower right corner to +resize.
    +  +  for a line/arrow, drag either end to move that end +only.
    +
    +The keyboard arrow keys can also be used to move the currently +selected object in 1-pixel steps.
    +
    +You can also add images saved by Select +Area. In the Edit Images dialog, press [Add] to start the file +selection dialog. Use the [Top] button in the gallery window, +select HOME, then select .fotoxx/saved_areas. Open any of the .png +images found there. The original area outline is used, and edge +blending works from these edges.

    +Mashup project +files
    +You can save a project and open it later to continue editing. +However, the project file will open successfully only if the layout +image and all the overlay images are still available in their +original locations. The Mashup project is rebuilt using these +images and some saved metadata that is in the project file: image +and text locations, scales, transparency, etc.
    +  
    +Mashup Rescale
    +Working with a very large layout (over 20 megapixels) can be quite +slow, especially if the PC is not very strong. Dragging a large +overlay image can be slow and jerky. You can work much faster if +you use a smaller layout to build the project, and then make it +larger after you are finished. There is no loss of resolution in +the final image, since the overlay images and text are regenerated +from the inputs (e.g. an image that was scaled to 0.2x in the +initial layout is rescaled to 0.6x if the layout is magnified by +3x). The original full size image file is used for this rescale. +The Rescale button allows you to magnify the project by 2x, 3x or +4x (4x, 9x or 16x by area). There is also a reset option to restore the +original smaller project size. With this method, you can work with +a 10 megapixel layout and resize it up to 160 megapixels when done. +The larger layout can still be worked on directly afterwards, but +it will be much slower.

    +PT Panorama +Fix
    +Mashup can be used to fix minor alignment offsets from PT Panorama. +After running PT Panorama, start Mashup (in the same Fotoxx +session), and create a flat layout image with a good size for +editing (e.g. 3000 pixels wide). Start the dialog to add images to +the layout. Navigate to the directory /tmp/fotoxx-xxx/ where you +will find the images left by PT Panorama. They have been color +matched and warped to fit together. Add these images to the layout. +Check the box to make the black margins transparent. Resize them to +fill the layout (all must have the same scale) and move them around +to fit together. Zoom the window larger for precise algnment and +align the images as well as possible. Small misalignments will +persist if the images do not fit perfectly. There may also be +brightness or color mismatches at the image edges, but these can be +fixed later. Start the Warp Images dialog. Drag the mouse in small +steps over a misaligned area to move an image into alignment with +its neighbor. Use a small span (e.g. 0.1) to insure that correcting +one misalignment does not create others elsewhere. Several cycles +of dragging the images in several locations may be needed, but with +patience you can make the alignments perfect. If there are visible +brightness or color mismatches at image edges, blend these together +using the margin blend controls. This should be done only after the +alignment has been perfected - otherwise this will cause blurring +where the images do not align, making alignment corrections harder +to see and control. Lastly, rescale the layout to a larger size if +wanted. This does not lose resolution, since the input images are +rescaled and the warps are rescaled and re-applied.
    +

    +
    +Undo/Redo Button (File View +> Undo/Redo)
    +If an edit function is active and the image has been changed:
    +  + left mouse click will undo the current edit
    +  + right mouse click will redo the edit
    +This allows you to rapidly compare the "before" and "after" images +for the current edit function.

    +If no edit function is active, but one or more edit functions were +done to the current image:
    +  + left mouse click will undo one edit step per click
    +  + right mouse click will redo one edit step per click
    +  + if combined with the A-key, undo/redo ALL edits (compare +original and final images)
    +  + middle mouse click pops-up a list of all edit steps - +select any step to go back to
    +  + use the escape key to abandon the list without making any +selection


    + 
    +
    +Tools Menu +(File View > Tools)

    + 
    +Index Image Files +(File View > Tools > Index Image +Files)
    +
    +The Index Image Files function runs whenever Fotoxx is started. +This function will create missing thumbnails, replace outdated +ones, and refresh the metadata index using current data from your +image files. This may need significant time if you have many +thousands of new images. A strong PC can process about 1700 image +files per minute, but some PCs will be much slower. "Strong PC" +means a 3 GHz multi-core CPU and a 7200 rpm disk. If there are no +new image files, indexing completes quickly and Fotoxx startup time is +fast (under one second on a strong PC hosting 10000 image files). If you have an +SSD disk, the indexing speed increases to about 3100 per minute.
    +
    +Image files modified or moved within Fotoxx are taken care of +automatically. The Index function is only needed when new image +files are created from outside Fotoxx (e.g. a new batch of photos +is added into the directories used by Fotoxx), or if files are +moved or renamed from outside Fotoxx.
    +
    +Index Image Files starts automatically at Fotoxx startup. It can +also be started manually from the Tools menu. Unless there are +hundreds of new images to process, this will be done in a few +seconds.
    +
    +Enter your top image +directories (e.g. /home/<user>/Pictures). Enter the +directory paths directly in the window, or use the [browse] button +to locate and add directories. These directories and any +subdirectories containing images will be processed. It does not +matter if other files are mixed with the images. The simplest way +is to use /home/<user> as the only top directory, but it is +better to separate the image files from the hundreds of thousands +of other files that may be under /home/<user>. Delete an +entry by clicking the corresponding X.
    +
    +Enter the thumbnails +directory +where thumbnail files will be stored. Use the +supplied default or set your own location. The directory name must +end with .../thumbnails, and this will be added to your selection +if needed. The directory is created if not already +present. Indexing will run faster if this is on a separate physical +disk from the image files. Thumbnail files need typically 1% as much +space as your image files (10 KB instead of 1-2 MB for a typical JPEG +image file).
    +
    +If you have used directory or file names to classify your images, +you can make immediate use of these in the Search Images function. +If you have saved dates, captions, tags, geotags, titles, or +ratings in your image metadata (using Photoshop or other apps), +these will also be searchable. After the images have been indexed, +searching them by any of these criteria is almost +instantaneous. Any other items in the image metadata can also be +searched, but at a slower speed. See Search Images +for details.

    + 
    +User Options +(File View > Tools > User +Options)
    +Various user preferences and settings are collected in this +dialog.
    +They are also saved in the file +/home/<user>/.fotoxx/parameters.
    +
    + 
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Startup Display Determines the initial +window content when Fotoxx is started.
    +Recent Files: the most recently viewed or edited image files +(gallery display).
    +Newest Files: image files most recently added to the Fotoxx +database (gallery).
    +Previous Gallery: the directory of the last image viewed +(gallery).
    +Previous Image: show the last image viewed.
    +Blank Window: start with no current image and the top image +directory in the gallery.
    +Directory Gallery: the given image directory.
    +Image File: the given image file.
    + Browse
    Opens a dialog to browse +for the starting directory or image file (last 2 options +above).
    + Menu StyleThe menu style: icons only +or both text and icons.
     Gallery +Sort
    The default sort order for +gallery pages: file name (alphabetic), file mod date, or photo date +(EXIF)
     Dialog +font
    The font name and size to +use in all menus and dialogs (Bold, Italic, etc. are +ignored).
    + Image Pan/Scroll
    + (zoomed image)
    Drag: image moves with the +dragged mouse.
    +Scroll: image moves against the dragged mouse (like invisible +scroll bars).
    +Magnified: movement is magnified: multiple drags for large movement +are not needed.
    + Zooms for 2x
    Choose 1, 2, or 3 zooms for +each 2x increase in image size.
     JPEG +qualityThe default quality value +when saving an image as a jpeg file type.
     Thumbnail +size
    The pixel size for gallery +thumbnail width/height: 128 | 256 | 512 (default 256). 512 is a bit +slower but better for a large monitor or one with a high DPI +resolution, or when viewing large galleries. If this is changed, +you need to delete your thumbnail files so that the file index +process will rebuild them with the new size (next Fotoxx +startup).
     Edit curve node
    +  capture distance
    The minimum node separation +for edit curves. Also the mouse capture threshold when a node is +clicked or dragged. The default is 5% of scale, allowing up to 20 +nodes in a curve. If you use a touchpad instead of a mouse, set +this value higher to compensate for lower positioning accuracy. +Flexibility for extreme curve bending will be +less.
     Map marker size
    +
    The size of the red dots marking image locations on maps.
    +
    + hidden directories 
    Show hidden directories in +gallery view. If not checked, these are not +displayed.
    + prev/next version
    Show only the last versions +of image files when using the prev/next button or KB +keys.
     shift image +right
    If the window is wider than +the image, shift the image right to maximize left margin for +dialogs.
     RAW +commandThe command used to convert +camera RAW files to tiff-16. This can be changed if you need.
    +See the man page for dcraw for more details.
     RAW file +typesThe RAW file types +recognized. If your camera uses something else, add it to the list +and this may work.
    +You can also shorten the list to those file types you actually +use.
    +  
    +
    +Keyboard Shortcuts +(File View > Tools > Keyboard +Shortcuts) (key K) 
    +
    +This function is used to view or change custom keyboard shortcuts. +The currently assigned shortcuts are shown in the first window. If +you press the [Edit] button, the second dialog is shown, where you +can add and change keyboard shortcuts. Enter a new shortcut using +the keyboard. You can use the keys A-Z, 0-9, F2-F9, and most of the +symbols (# $ & ^ < etc.). You can combine a key with Ctrl, +Alt or Shift: Press and hold Ctrl, Alt or Shift, then press the +key, then release both. Select one of the available menu +assignments from the drop-down list. To remove a shortcut, select +it and press [Delete]. Press [Done] when you are finished. If you +press [Cancel] or [x] all changes will be discarded.

    +  
    +Brightness +Distribution Graph (File View > Tools > +Brightness Graph)
    +
    +
    +This function opens a small window that shows a brightness +distribution graph of the current image in the main window, or the +currently selected area of the image. This graph updates +immediately for new images or as edit functions change the image. +There are four graphs in four colors: red, green, blue graphs are +for the respective colors. The black graph is for overall +brightness. Use the buttons [Red] [Green] [Blue] and [White] to +select the colors to show. White means all colors added +together.
    +  
    + 
    +Grid Lines +(File View > Tools > Grid Lines) +(key Alt+G) 
    +
    +This function adds or removes horizontal and vertical lines across +the image. The lines are useful when an image must be rotated for +horizon alignment, or when an image is unbent or warped to +straighten walls or other objects in the image. The settings for x- +and y-spacing control the spacing (pixels) between the lines. If +the controls for x- and y-count are NOT zero, then the x- and +y-spacing values are ignored and the number of lines will be set to +these counts. Example: set x- and y-count to 2 lines each in order +to divide the image into thirds horizontally and vertically. The x- +and y-enable checkboxes can be used to enable and disable the +vertical and horizontal lines separately. The keyboard shortcut +Alt+G can be used to toggle the grid lines on and off (this +shortcut can be changed). If an image is printed with grid +lines enabled, the grid lines are also printed. The x- and y-offset +controls can be used to shift the grid lines to intersect a desired +point in the image.
    +
    +Several edit functions have a button [grid] which starts this same +dialog. The resulting grid line settings are specific to that +function only, and will be restored whenever that function is in +use.
    +  
    + 
    +Line Color +(File View > Tools > Line Color) +Change Color of Foreground Lines
    +Some functions draw lines over the image (Trim/Rotate, Area +Outlines, others). You can change the color of these lines to +maximize contrast against the background image. The small dialog +can be left open while editing, to conviently switch among the +available colors (black, white, red, green).

    + 
    +Show RGB (File +View > Tools > Show RGB)
    +
    +When a point on the image is clicked, the RGB values are shown in a +dialog window. The last 9 clicked points are displayed. The values +have the format xxx.dd, where xxx is the upper 8 bits of the color +value and .dd is the lower 8 bits. The range is 0.00 to 255.99. The +lower 8 bits are zero unless the image is being edited or the image +is a 16-bit TIFF or PNG file. EV (exposure value) is an alternative +unit, useful for precise color adjustment. EV is zero for +mid-brightness (128). The outputs are updated immediately if the +image is being edited. The last nine points clicked are shown. The +points are labeled on the image corresponding to the letters A-I in +the dialog window. If "delta" is checked and the image is being +edited, then the changes are shown instead of the absolute values. +If no edit is active, "delta" does nothing.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RGB01248163264128256
      EVnan-7-6-5-4-3-2-101
    +  
    +
    +Magnify Image +(File View > Tools > Magnify Image) +(key X)
    +
    +This function magnifies the image in an area around the mouse +pointer. Left-drag the mouse around the image to magnify different +areas, analogous to viewing a printed image through a magnifying +glass. Use the dialog to adjust the radius of the area and the +amount of magnification. A mouse click will end the magnify, and a +new mouse drag will start it again. Use the X-key shortcut to start +or end the Magnify function.

    + 
    +Dark / Bright Pixels +(File View > Tools > Dark/Bright +Pixels)
    +This function is used to highlight the darkest and brightest pixels +in an image. Adjust the two sliders to set the brightness +thresholds, which are initially 0 for dark pixels and 255 for +bright pixels. Pixels with a brightness less than the dark +threshold or greater than the bright threshold are highlighted on +the image. The image responds quickly to changes in the sliders. +You can use this function in parallel with edit functions to +control edit results.

    +
    +Monitor Color +(File View > Tools > Monitor +Color)
    +
    +Eight color bands are written across the screen with brightness +from zero (black) to 100%. You can use this to adjust the +brightness of your monitor. The left end of each stripe should be +as black as possible, but you should start to see some color within +a few mm from the left edge. If the completely black portion is +wider than this, adjust the monitor. There are 255 brightness steps +from black to 100% (8 bits per color). The steps are too small to +distinguish with the eye. This evaluation should be done in a +darkened room (with little external light falling on the +monitor).

    +
    +Monitor Gamma +(File View > Tools > Monitor +Gamma)
    +
    +Gamma determines how RGB brightness values (0-255) are converted +into brightness on the monitor. The standard value is 2.2 and this +should normally be used for image editing. Adjust the dialog slider +until the middle band has the same brightness as the upper and +lower bands at scale location 2.2. Be far enough from the monitor +that you cannot see the fine lines in the chart. The chart only +works at 100% size, so do not zoom the chart. The command line +utility "xgamma" is required (normally present).
    +
    +The chart image originates from Norman Koren. The linked web site has more +information about this chart.
    +The chart here in the User Guide has been reduced
    +  
    + 
    +Change Language
    (File View > Tools > +Change Lanuguage)
    +This function allows you to change the GUI to one of the available +languages. If your language is not available or has missing +translations, consider making a translation. See menu Help > +Translations.
    +  
    + 
    +Missing Translations +(File View > Tools > Missing +Translations)
    +This function lists all missing translations to a popup window. +Translations left as English are not reported, since this is often +deliberate, e.g. words like "font" or "icon".

    + 
    +Printer Color Calibration +(File View > Tools > Calibrate +Printer)
    +This utility may be able to improve the color accuracy of printed +images.
    +
    +How It Works
    +A chart of known colors is printed on the target printer. Some of +the printed colors will be slightly wrong due to printer +imperfections. This printed page is scanned into a file, and the +colors in this file are compared to the original colors that were +sent to the printer. Any differences are errors that are now known. +When an image file is printed, these errors are subtracted from the +image colors before printing. The printer adds the errors back, +leaving a result that is theoretically correct. Practice may be +otherwise. My own result was a modest improvement, detailed +below.

    +Hopeful +Assumptions
    +
      +
    • Your scanner produces accurate colors. Scanners are generally +more accurate than printers.
    • +
    • The printer color errors are small enough that negating them +before printing will cancel
      +most of the error. This is less likely if the errors are +large.
    • +
    • The limited set of colors in the chart (1728) can be used to +calculate all other colors.
      +(each color adjustment is interpolated from the nearby colors in +the chart).
    • +
    +Perform the following steps in sequence, as listed by the dialog +window. Each step has instructions to perform the step. All files +normally reside in the directory /home/<user>/.fotoxx/printer_color/.
    + +
      +
    1. Generate and print the color chart file (printchart.png) on the +printer to be calibrated.
      +Use a large paper size (A4 or US Letter), vertical paper +orientation, no margins.
    2. +
    3. Scan the printed chart into a PNG file. Use 300 dpi or more to +make a large file.
    4. +
    5. Edit the PNG image to trim off margins left by the scanner. +Save the edited image
      +as <chosen-name>.png. Use a name indicating the printer +settings and type of paper.
    6. +
    7. Process the edited chart file to create a color map file +<chosen-name>.dat.
      +Use a name indicating the printer settings and type of paper +used.
    8. +
    9. Print a color-adjusted image. You are asked for the color map +file created in step 4.
    10. +
    +Once you have made the color map file, you can print any image +using step 5 only.
    +There is also a File menu function to do step 5 only: Print Calibrated.
    +
    +Precautions For Best +Results
    +
      +
    • Use a large paper size for printing the chart (A4 or US Letter) +to make the color tiles as big as possible.
    • +
    • Clean the scanner glass before scanning the color chart. Dust +spots or smudges will falsify the colors.
    • +
    • Scan with a high DPI setting (300+) to make a large chart file. +This will make the next step more accurate.
    • +
    • Scanners can skew a scanned image into a slightly +non-rectangular form. If this happens, you will notice it when +trying to trim off the margins: the fat green margin lines will not +align perfectly with the trim rectangle, even after slightly +rotating the image for best fit. If this happens, use Fix Perspective to square +the image first, then trim the margins.
    • +
    • When editing the scanned chart image, be sure the darkest row +is at the top. Trim off the margins surrounding the color tiles. +Use the fat green margin line surrounding the color tiles as a +guide: cut off this line exactly, leaving only the tiles. Work with +2x magnification while adjusting the trim rectangle. Accurate +trimming is critical. The tile positions are calculated from the +final image dimensions, assuming 35 equal columns and 50 equal +rows. If some edge tiles are cut short, or if margins are left, +then the calculated tile positions will be offset, and the measured +colors will be wrong. A small error of 1-2 pixels is tolerated, +because the outer 20% of each tile is not used to read the tile +color. You can use the keyboard arrow keys to make 1-pixel +movements in the trim rectangle. The last corner pulled with the +mouse is the corner that the arrow keys will move.
    • +
    • If you notice any black or white spots in the scanned chart +image (from dust), fix them with Paint/Clone.
    • +
    • The output color map file can be used only for the paper, ink, +and printer settings used for the calibration. Any other +combination needs its own calibration and color map file. Use the +name of the color map file to include more information, e.g. +cmyk-glossypaper.dat.
    • +
    +Results (my Canon +printer)
    +  +  
    + + + + + + +
    A standard +color chart was scanned and printed on photo paper. The left print +had no adjustments. The right print was adjusted. This image has +all three charts in one photo. The printer did a fairly good job by +itself, but the adjusted print is slightly better. Some colors are +more accurate. Others are little changed.

    +

    +You may be able to find a real ICC color profile +for your printer and its proprietary inks and photo paper. Using +this would most likely produce better results. Check the +installation CD supplied with your printer, and also the +manufacturer's web site. There are also professional services to +generate an ICC color profile. The procedure is similar to the one +described above: you print a color chart supplied by the service, +send the printed paper back to them (along with some money), and +receive an ICC profile, a file which you can install. Perform a web +search for "icc profile service".

    + 
    +Resources (File +View > Tools > Resources)
    +This is a diagnostic tool to monitor resources, especially memory +leaks.
    +The following data is output to the log file (or terminal +window):
    +    process time: CPU time used, since the last time +shown here
    +    zdialog counts: total dialogs in memory and +those still active (visible)
    +    zmalloc counts: memory allocations and releases +since the last time shown here
    +    MB: total allocated memory at this time in +megabytes


    + 
    +
    +Help Menu (File +View > Help  and  Gallery View > Help)

    +Quick +Guide
    +This is a 1-page introductory document with Fotoxx +essentials.
    +
    +User Guide  (key +F1)
    +The user guide (this document) is displayed (created using the +WYSIWYG HTML editor Kompozer).
    +
    +User Guide +Changes
    +This is a summary of recent changes in the User Guide. The intent +is to enable you to survey the changes without reading the whole +document.
    +
    +Edit Functions +Summary
    +A one-page "quick reference" summary of the image edit functions is +displayed.
    +
    +README
    +Displays the README file distributed with Fotoxx, which may contain +new information about installation or dependencies. When you +install a new release of Fotoxx, you should look at README and the +Change Log to check if there is anything special you need to be +aware of.
    +
    +Change +Log
    +Displays the change log file distributed with Fotoxx, containing +details about functional changes, additions, or bug fixes for the +current and previous releases.
    +
    +Translations
    +Displays a short text file which explains how to make a new +translation or change an existing one.
    +
    +Home +Page
    +Shows the Fotoxx home page from the Internet. Look here for program +updates (the page named "recent changes"). This page is published +via RSS and you can subscribe to get timely notification of +changes.
    +
    +About
    +This displays a short message about the Fotoxx version number, +license, credits, and contact address.
    +  

    + 
    +
    +Gallery View Menus 

     

    +Image Management in Fotoxx
    + 
    A gallery of thumbnails can represent a file directory, the output of an image search +function, one of the built-in galleries (recent files, newest files), +or an album (an ordered list of files with a user-given name). Batch Convert +can accept files selected from any gallery and output converted files +into a directory. The image cache is a holding area for user-selected +files that can be later added to an album. Manage Albums (below) can +create new albums from a gallery or the image cache, or select images +from galleries and add them to the image cache.

    +
    +
    +Albums Menu +(Gallery View > Albums)
    +   
    + 
    +Manage Albums +(Gallery View > Albums > Manage +Albums)
    +An album is an arbitrary sequence of images that is manually +assembled from existing images. This is one method to make groups +of associated images. An image album is simply a list of the member +image files. The image files themselves are not copied or changed. +A given image file can be a member of multiple albums, or may be +present more than once within an album. Albums can be used to group +images with some shared attributes, such as photos from a vacation +trip, photos of a given person taken at different times or events, +a "best photos" collection, etc. You can add and remove images in +an album and rearrange the order of the images. Once an album is +made, you can call it up by name and it becomes a gallery. This +gallery works like any other: you can scroll through the gallery, +step through the images with the [Prev/Next] button, or edit the +images. Keep in mind that editing an image in an album will edit +the unique image file, so any other way to view this image will +show the same image.

    +Image +Cache
    +This is an intermediate storage area used to hold selected images +for later insertion into an album. In general, you select image +files from gallery windows and add them to the cache, then you make +a new album with images from the cache, or you add the cached +images to an existing album at a chosen position within the +album.
    +  
    + + + + + + +
    Manage Albums Dialog
    +New: Start a +new album or replace an existing one. The dialog shown immediately +below is started.
    +Choose: Choose an +album to view or edit. The gallery window will show its current +images. Use the thumbnail popup menu (below) to add or remove +images.
    +Images: Add images +to the image cache using the standard dialog for selecting images +from gallery windows (link). Select image files in any order +from any gallery. You can also use Search +Images to create a gallery for selecting images, or choose an +album gallery. Selected images are added to the image cache. The +cached images can now be added to an album using the popup menu +(below).
    +Clear: Discard all +images in the image cache.
    +Delete: Select an +album to delete. Image files are not deleted.

    +New Album +dialog
    +Specify an +album name, or use the [browse] button to select an existing album +to be replaced. Select one of the three options. Option 1 creates +the album with no images. Option 2 fills the album from cached +images, if any. Option 3 creates the album from the current +gallery. This may be a directory, the output of an image search, or +an album.
    +  
    +Right-click Popup +Menu
    +
    + 
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Copy to Image +Cache
    Add the clicked image to +the image cache.
    Cut to Image +Cache
    Remove the image from the +album and add it to the image cache.
    Copy to +Clipboard
    Copy the image to the +clipboard (for other apps to paste).
    Paste +Image Cache Here (keep) 
    Insert all cached images at +the clicked position. Click roughly between two thumbnails where +the images will be inserted.
    Paste +Image Cache Here (clear) 
    Same as above, but the +cache is cleared.
    Paste Current Image File +Here
    Inserts the current image +file at the clicked position.
    Remove from +Album
    Remove the clicked image +from the album
    Popup +Image
    Pop-up a large resizeable +window for the image. Replace previous popup +window.
    View +Metadata
    Metadata short report for +clicked image file.
    +  
    +Drag and Drop
    +You can rearrange images within an album by dragging thumbnails +with the mouse. Drag the thumbnail until the mouse cursor changes +to a small image of the thumbnail. Continue dragging this image to +the position where it should be inserted, and release the mouse +button. Position the mouse roughly between the images where the +dragged image is to be inserted. If the drag approaches the top or +bottom edge of the window, the gallery will scroll to bring more +images into view.
    +
    +Summary
    +
      +
    • Make a new album: Use the [New] button and provide a +name.
    • +
    • Add images to an existing album: Use the [Choose] button and +select an album. Use the [Images] button to select images from any +gallery. After closing this dialog, the gallery reverts to the +chosen album. Right-click an album thumbnail and select one of the +Paste menus to insert the selected images. You can also choose +another album and insert the images if you did not clear the +cache.
    • +
    • Remove images from an album: Right-click each thumbnail, then +select the Remove menu.
    • +
    • Move images within an album: Use the Cut or Copy menu and the +Paste menu to move multiple images. To move one image at a time +within a single album, you can use mouse drag and drop.
    • +
    TIP
    +If image files are renamed or moved using Batch Convert, and if +deletion of the original image files was also specified, then all +albums containing any of the input files are updated to reflect the +new names and locations. Therefore, don't just rename directories if +they contain images in albums, or manually move image files among +directories. Instead, use Batch Convert to move the image files to the +new directory, then delete the old directory if it is left empty.
       +
    + 
    +Slide Show +(Gallery View > Albums > Slide +Show)
    +With this function you can show a pre-selected sequence of images +in full-screen mode.
    +There are three dialogs used to define and customize a slide +show.
    +
    +Use the Manage Albums function to assemble the images +for a slide show as an album with an assigned name. This allows you +to collect images from anywhere in your image database and order +them as desired. In the slide show dialog, press [Select] and +choose an album from the list provided. Press the Proceed button to +start the slide show with the first image (or the current image, if +a member of the slide show album). Use the escape key or F11 to +exit the slide show and return to the dialog.
    +
    +The spacebar can +be used to pause and resume between slides. The B-key can be used to blank the +screen and pause the show. Press again to restore the current +image, or press the spacebar to resume with the next image. You can +use the left and right arrow keys to go back and +forth within the sequence of images. You can interrupt the slide +show by pressing the ESC +key for a gallery view. Click on a thumbnail image, and this +will be the next image to show. This allows you to skip around more +easily than stopping and starting the show each time. The +M-key can be used +(whenever the slide show is paused) to start the magnify function +to view selected parts of the image at higher size. The +N-key can be used +to bypass the normal image display time and go immediately to the +next image. The arrow keys bypass the animated transition to show +the previous or next image immediately. The N-key keeps the normal +transition and shows the next image. Press KB Shortcuts for a popup list +of all the keyboard functions.
    +
    +Dialog Controls:
    +Seconds: The +standard time each image is shown.
    +This time can be extended for selected images in the Images Preferences dialog +(below).
    +Clip Limit: Images +are scaled to fit the window. If the image and window aspect ratios +are different, this will create black margins above and below or +left and right of the image. You can optionally make the images +expand to fill these margins and cut off the opposite sides of the +image (e.g. if the margins are on the left and right, the image is +expanded to fill these margins and cut off the top and bottom +equally). You control how much of this is allowed with the Clip +Limit, which is the percent difference in aspect ratios above which +expansion and clipping will not be done. Zero means no clipping is +done, 10% means that images with 10% or less difference in aspect +ratio will be expanded and clipped.
    +Music File: An +optional music file or playlist that will start when the slide show +is started.
    +Full Screen: If +checked, images are shown full-screen without menu, title bar, +etc.
    +Auto-replay: if +checked, the slide show will start over after reaching the end.
    +
    +Press [transitions] to start a dialog to select and customize the +transitions between images. These include instant replacement, +fade-out / fade-in, and many animated methods of image replacement +(e.g. the new image expands from the center to replace the old +image). Select the transitions to be used and whether they are used +randomly or in sequence. The slowdown parameters can be used to +slow transitions that may operate too fast on some PCs (some may be +too slow on slow PCs, but this cannot be helped). The preference +parameters specify a relative preference which will influence how +frequently the transition type is used when a random sequence is +selected.
    +
    +The buttons [load] and [save] allow you to save transition settings +in a file and load them later. These files are independent of the +slide show files. A slide show will default to the transition +settings last used for that slide show, but you can always override +these by using the [load] button to load some other +settings.
    +
    +Press [image files] to start a dialog for image preferences. These +are optional. An image is selected for customizing by clicking its +thumbnail (press the [gallery] button or G-key to show thumbnails). +The dialog is filled-in with default settings or the previous +settings for this image. Enter revisions and press [done], or click +on the next image to be customized. If Play Tone is selected, a tone +is played when the image appears during the slide show. The +Show Caption / Show +Comments times determine how long the image caption and +comments will be shown above the image. After this time they +disappear. Captions and comments are edited with Edit Metadata. The Wait times determine how long +the image will wait before and after the optional zoom, until +moving on to the next image. These are always used, even if there +is no zoom. Zoom +type selects zoom-in (image approaches) or zoom-out (image +recedes). Zoom +size controls how much the image will be zoomed and +Steps determines +how many steps are made during the zoom. 1.0 means no zoom, and 3.0 +is the maximum zoom (image is 3x larger). Use at least 300 steps +for a smooth zoom, and more than this if you want it to zoom more +slowly. To set the center of the zoom, press the [Zoom Center] button first, +then click on the thumbnail image at the desired zoom center. +Transition is used +to select a transition type to be used from this image to the next +image. If transition type "next" is selected, then the normal +transition sequence is used, as specified in the Transitions +dialog.

    +Sequence of slide show events for each image:
    +  +  play the tone if specified
    +  +  show the caption and comments for the specified +times (may be zero)
    +  +  wait for the first interval (may be zero)
    +  +  perform the zoom (if the zoom size is > 1)
    +  +  wait for the 2nd interval (may be zero)
    +  +  wait for the standard interval specified in the +Slide Show dialog
    +  +  do the transition to the next image

    + 
    +Set Desktop Wallpaper +(Gallery View > Albums > Set Desktop +Wallpaper)
    +The desktop wallpaper image is set from the current Fotoxx image +file. No inputs are required.
    +Note: this +function works only for the Gnome window manager (including +Ubuntu).
    +Other window managers will not work.

    + 
    +Cycle Desktop +Wallpaper (Gallery View > Albums > +Cycle Desktop Wallpaper) (Gnome only)
    +The desktop wallpaper image is changed at regular intervals, using +a Fotoxx album as the list of images to show. Fotoxx runs in the +background without a window or GUI interface. It has no effect on +normal interactive use of Fotoxx.
    +
    +How to cycle the desktop +wallpaper:
    + 
    +  o  Create an alternative name for the fotoxx executable +(e.g. fotoxx-wallpaper):
    +        $ sudo link /usr/bin/fotoxx +/usr/bin/fotoxx-wallpaper 
    +  o  Start  fotoxx-wallpaper, passing the album name +and the time interval in seconds:
    +        $ nohup fotoxx-wallpaper +-cycledesktop albumName seconds >/dev/null &
    +  o  To stop the background process:  $ pkill fotoxx-wallpaper
    +
    +Seconds must be at least 10 and there is no upper limit. The nohup +command runs the command detached from the terminal, so that the +terminal can be closed without killing the process. The character +'&' is added after a command to make it run in the background +without blocking the terminal or shell script from which it was +started.

    +To start the process after a new logon, put the following command +into your startup list:  
    +    fotoxx-wallpaper -cycledesktop +albumName 3600 &
    +This example changes the desktop wallpaper image every hour.
    +To change the wallpaper only for each new login, use a huge time +value.

    +Note: this +function works only for Gnome and Ubuntu.

    +
    +Bookmarks  +(Gallery View > Bookmarks)
    +
    +
    +Assign names ("bookmarks") to chosen gallery locations (directory +and image file), keep in a list, and use the list to select a name +and go instantly to the associated gallery position. There are two +parts: an edit dialog to build the list of bookmarks, and a [GoTo] +button in the gallery view to show the bookmarks and select a +location to go to. To assign new bookmarks, press the [GoTo] button +and then select [Edit Bookmarks] in the dialog that follows. The +Edit Bookmarks dialog is started. Click on a gallery thumbnail to +add this location to the bookmark list. The assigned bookmark name +will default to the file name. This name appears in an edit field +where you can assign a better name. If you select an existing +bookmark with a mouse click, its name is shown in the input field. +You can change the name or press [delete] to remove the bookmark. +New bookmarks are inserted at the last bookmark location selected. +To go to a bookmark, press the [GoTo] button. The list of bookmarks +is shown. Click on an entry to go there.

    + +  
    +Gallery View +Buttons 
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Sync Gallery. Replace the current +gallery (recent files, search results ...) with the directory of +the current image file: the image shown in the File View window. +Click on any thumbnail in the gallery to set the current image from +that thumbnail, then select the Sync Gallery menu (button) to set +the directory and generate a new gallery from that directory.
    Zoom-in / zoom-out. Increase or +decreast the gallery thumbnail size.
    +If decreased to zero, the gallery becomes a simple list of file +names.
    Sort the gallery thumbnails in an +alternative sequence. You can sort by file name (default), Photo +date/time (from EXIF data), or file modification date/time (file +creation or last modification date/time). The sequence may be +ascending or descending.

    Jump to the beginning or end of +the gallery.
    Scroll back (up) or forward (down) +by one gallery page.
    Slow scroll the gallery. Can be +used to visually scan for a desired image file.
    +Press the button again to stop the scroll, or press any other +button.



    +  
    + 
    +Batch Menu +(Gallery View > Batch)
    +  
    + 
    +Batch Convert Files +(Gallery View > Batch > Batch +Convert)
    +This function is used to rename, convert, resize, upright and move +multiple image files at once. An overlay image can also be added at +a selected position (e.g. a title, credit line or copyright +notice).
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Select +Files
    Select files to convert +from a gallery window (link).
    New Name
    Optional new name with # +characters to be replaced with sequence numbers.
    Sequence +Numbers
    Starting sequence number +and adder for each output file.
    New +Location
    Optional new directory +location for the converted files.
    new +file type
    File type for converted +images, or "no change".
    max. +width, height
    Output images will fit +within these dimensions (ratio is not changed).
    delete +originals
    Delete the input files +after successful conversion.
    copy +metadata
    Copy all EXIF and IPTC +metadata to the output files.
    upright
    If an image is rotated +90 degrees, upright it (status known from EXIF).
    sharpen
    Sharpen output images using +the two supplied parameters
    Overlay +Image
    Add an overlay image at a +selected position in the output images. See below.
    Make constant +size
    Make the visual overlay +size independent of image dimensions. See Below
    +
    +If New Name +contains the string "[oldname]", this is replaced with the original +file name.
    +Either "[oldname]" or # characters must be present to insure output +file names are unique.
    +If New Location is +missing or unchanged, delete originals is +ignored.
    +If an output file already exists, the input file is not +converted.
    +For an explanation of the sharpen parameters, see the Sharpen function.
    +
    +Overlay Image
    +A small overlay image can be added at a selected position in all +the output images. Use the Open button to select the +image file. The overlay image will be scaled to Width percent of the output +image width. The position is selected by clicking one of the +Position buttons. +If Make constant +size is checked, the visual size of the overlay image will +be made constant for the selected screen or window dimensions. +Without this, a "tall" image that displays with left and right +margins would have a visually smaller overlay.
    +
    +An overlay image can be used to add a title, credit line or +copyright to the converted output images. Prepare the overlay image +as follows: Use New Blank Image to +create a base image to hold the text. The scale does not matter, so +make it larger than needed, say 1000 pixels wide. Use Paint Transparency to paint the entire base +image transparent. Use Add Text to put the +desired text on the base image, using the font, color, and other +attributes as desired. Scale the text to fill most of the base +image. The text is visible and the base image (background) is +transparent. Use Trim to remove excess +margins if needed. Save the final image; a convenient location +is  ~/.fotoxx/saved_areas, but +any directory can be used. This image is now ready to use as an +overlay image for Batch Convert.
    +
    +Albums
    +If image files are renamed or moved using Batch Convert, and if +deletion of the original image files was also specified, then all +albums containing any of the input files are updated to reflect the +new names and locations.
    +
    +Upload Photos to a +Website
    +Most photo websites have the ability to upload multiple image files +from a single directory, using only a web browser. Use the above +Fotoxx function to select, resize, and export image files to the +desktop or any other directory. From there, use the photo website's +native browser interface to upload the image files.
    +
    +Preserving File +Sequence
    +If you use a leading sequence number, the input file sequence will +be preserved at the output location. Thus you can select image +files in any order, or use an album with ordered images, and +preserve this sequence in the output.

    + 
    +Batch Upright +(Gallery View > Batch > Batch +Upright)
    +
    This function works like Batch +Convert Files but only does the upright function. It uprights image +files rotated 90 degrees. It depends on EXIF data to know if a file +is rotated. It is much faster than Batch Convert Files. You can +simply select all candidate files and let it find the ones that are +rotated. The search speed is about 3000 image files per minute on a +strong PC. There are two options to specify the files to search. +Select Files leads +to a gallery file selection dialog (link). Survey all files will check +all image files in your database and upright those that are +rotated.
    +  
    + 
    +Batch Delete/Trash +(Gallery View > Batch > +Delete/Trash)
    +
    +Select files from a gallery (link).
    +Select the option to delete or move to trash.
    +[Proceed]

    +  
    +Batch RAW (DCraw) +(Gallery View > Batch > +DCraw)
    +Batch RAW (Raw Therapee) +(Gallery View > Batch > Raw +Therapee)
    +
    +These functions convert selected RAW image files to JPEG, PNG-8, +PNG-16, TIFF-8 or TIFF-16 format, using the program DCraw or Raw +Therapee. The PNG and TIFF formats have either 8 or 16 bits per +color. RAW files generally have 10-12 bits per color, and noise +beyond that. Therefore use a 16-bit format to keep all of the data +available from a RAW file. The difference between 8- and 16-bit +color is rarely visible, but a higher color depth provides a +greater margin for retouch functions that can radically shift the +brightness distribution, causing a problem known as "banding" or +"posterization".
    +
    +Use the [Select Files] button to choose one or more RAW image files +from a gallery window (link). Choose one of the output formats. +Choose one of the downsize options if wanted, and set the auto +sharpen parameters if wanted. See the Sharpen function for an explanation of these +parameters.
    +
    +The remaining parameter options (white balance etc.) apply only to +DCraw - they are not shown if Raw Therapee is used, because +parameter settings for batch operation are not available (defaults +are used). The default settings for DCraw generally work well and +you probably will not need to change them. The parameters for DCraw +are documented in the man page ($ man dcraw).
    +
    +The image files are converted one at a time and displayed in the +main window. Depending on the number of files, this can take a long +time (a strong PC does about 40 files per minute for most RAW file +types and TIFF-16 output). PNG-16 produces much smaller files than +TIFF-16 because the files are compressed (with no data loss). This +also needs more time to do the compression work.
    +  
    + 
    +Script Files +(Gallery View > Batch > Script +Files)
    +
    Script files allow you to define a +set of edits once, and carry them out on as many image files as you +wish. This can be useful when many photos of the same subject were +made under the same lighting. You can choose one photo and edit it +to perfection, recording every function used and adjustment made in +the dialogs and curves. Then you can apply these edits to the +entire batch of photos. Certainly this will not be as good as +editing each photo individually, but it is much faster, and you can +always go back and make additional adjustments after viewing the +results.
    +
    +Press [start] to begin a new script file. You will be asked to +assign a file name for the script. The script dialog now exits. Now +choose an image file and perform your edits. After each edit +function is done, a message appears to confirm its addition to the +script. All the dialog inputs and curve edits are now saved in the +script file. After the last edit, open the script menu again and +choose [close] to complete the script.
    +
    +To execute a script, open the script menu and choose [run]. You +will be asked to select a script file to execute and a set of image +files to process with the script. When you complete the image file +selections, the script starts up and processes all the image files +in sequence. You can watch the action as the images fly past. All +modified images are saved as new versions, so the original files +are not lost. Those you decide you no longer need can be quickly +removed using the Batch +Delete/Trash function.
    +
    +If RAW files are processed, the corresponding outputs are TIF-16 +files.
    +
    +Not all edit functions are scriptable. Some edit functions use +mouse drags on the image, e.g. Trim/Rotate and all warping +functions. These are not scriptable. If you try to use one of these +while building the script, you are told this is not possible.
    +
    +The following functions are currently scriptable. Others are +possible but have not been converted for scripting. If there is a +need for some function not included, contact me.
    + 
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Retouch ComboBrightness/Contrast/Color +adjustments
    Adjust Brightness +Dist.Reshape the brightness +distribution
    Zonal FlattenEnhance dark areas with low +contrast
    Tone MappingEnhance local contrast +where weak
    ResizeSpecify width/height or +ratio (e.g. 1/2)
    Voodoo1Automatic +enhance
    Voodoo2Automatic +enhance
    Sharpen
    Sharpen fuzzy +edges
    BlurBlur image
    Denoise
    Reduce image +noise
    Shift ColorsTune colors
    Adjust RGB/CMYTune colors
    Brightness +RampVary brightness across the +image
    Color ModeChange B&W/color or +positive/negative

    +
    +Burn Images to DVD / BRD +(Gallery View > Batch > Burn Images to +DVD/BRD)
    +
    Select any number of +image files and copy ("burn") them to a DVD or BlueRay optical +disc.
    +
      +
    1. Insert a blank disc and wait for the initial clatter to finish. +A message may appear asking you what to do with the blank disc, or +a program may start which the window manager thinks you want to +run. Dismiss this window or program.
    2. +
    3. Start the Fotoxx Burn function after step 1 is +complete.
    4. +
    5. The Select +Files button starts a dialog for selecting the image files +to be copied (link).
      +Select any image files, but stay within the capacity of the disc +(DVD 4.7 GB, BRD 25 GB).
    6. +
    7. Select a DVD/BRD disc drive to use from the drop-down list +(even if there is only one).
    8. +
    9. Press the Start button. The list of +selected image files is sent to growisofs.
      + +This is an optical disc recording utility used by K3b, Brasero, and +others.
    10. +
    11. Progress is shown in a popup window, along with any growisofs +error messages.
      +The job will fail right away if the selected files do not fit on +the selected disc.
    12. +
    +The resulting disc is frozen. Leftover space cannot be used later +to add more images.

    +
    +Find Duplicate Images +(Gallery View > Batch > Find Duplicate +Images)
    +
    +This function is used to find duplicated image files anywhere +within your image database. A duplicate image file can be an image +file that exactly duplicates another image file, or an image file +that "almost" duplicates another. For the sake of speed, thumbnail +images are compared in memory. Hence it is possible that identical +thumbnails are found for which the main images have some minor +(likely invisible) differences that do not show up in the +thumbnails. An image copy that was reduced to 1/2 size is likely be +classified as a duplicate. The thumbnail size can be set from 32 to +256 pixels (max. width or height). A larger size reduces the +probability of false positives. The thumbnail size greatly affects +the amount of main memory required - e.g. for 100K images, size 32 +needs 220 MB, whereas size 64 needs 880 MB. The memory required is +roughly size x size x 0.75 x 3 x (image count). Two parameters are +used to set the sensitivity for detection of identical or nearly +identical images: pixel difference is the RGB value difference +below which pixels are considered equal. Set to 1 to detect any +pixel difference. pixel count is the number of different pixels +below which two images are classified as duplicates. Example: if +pixel difference = 3 and pixel count = 100, then images are +classified as duplicates if fewer than 100 pixels are different by +less than 3. The output is a gallery view, showing each set of +duplicate images. Screening 8K images needs about 16 seconds on a +strong PC.

    +
    +Create a File of Image +Files  (Gallery View > Batch > Create +File of Image Files)
    +
    +This function is used to create a file containing a list of image +files. These are fully qualified file names, one per line in the +text output file. This has no use inside Fotoxx. If you need to +select images to feed into a shell script or another program, this +is the way. The Select +Files button starts a dialog for selecting the image files +(link). Use the Browse button to select or define the +output file.
    +  

    +Batch and search functions in +the Metadata menu +are duplicated here in the Batch menu.
    +  


    + 
    +
    +World Maps View and OSM Map View Menus

    +Two methods are available for showing image locations on maps. The +World Map method uses locally stored map files which can be downloaded +as explained below. The OSM Map method uses the internet service OpenStreetMap +to provide maps from any location at any scale. The OSM method offers +superior functionality, but depends on having a fast and reliable +internet connection. The World Map option allows you to install custom +maps and use them like any other map.
    +  

    +Images by Map Location - Overview
    +
    World Map Method

    +If the separate package +fotoxx-maps is installed, a set of geographic maps is available for +Fotoxx. These are a world map and maps of each continent. Click the +menu bar World Maps button to change to map view mode. A world map +is shown at first. Click on any area to get a much larger view of +that area. The map image can then be panned and scrolled to any +other area by dragging the mouse. Map locations having +corresponding geotagged images are marked with red dots. Click on a +red dot to get a gallery of images from that location. The window +changes to the gallery view and the gallery appears. Press the maps +button and click a new location for a new gallery report. When in +map mode, a Map Functions menu is available with two functions: +Choose Map allows you to choose any available map. You can install +maps of your own (e.g. country, city, park ...). Instructions are +below. All maps will show red dots where there are corresponding +geotagged images. Map Search Range allows you to set a search +distance when a map location is clicked. Images within this radius +will be included in the gallery report. The range is 0.1 to 100 km, +and the default is 10 km. Red Dots within 0.1 km of each-other are +consolidated at one red dot.
    +
    +Map Navigation: +zoom and pan / scroll for a map is slightly different from image +files:
    +  +  mouse wheel forward: zoom the map to full size, +centered on the mouse position
    +  +  mouse wheel backward: shrink the map to fit within +the window
    +  +  left click on a red dot: show gallery of images +geotagged for that marked location
    +  +  left click NOT on a red dot: zoom the map to full +size, centered on the clicked position
    +  +  right click: shrink the map to fit within the +window
    +  +  keyboard Z key: alternate between full size and +shrink to fit
    +  +  mouse drag: the zoomed map image pans and scrolls +like other images
    +
    +Installing Custom Map +Files
    +Obtain the map from any suitable source, e.g. Google Maps or Open +Street Map. You need to get the map as a graphic image, a JPEG or +PNG file. (Open Street Map offers a download tool, but I have not +been able to make it work.) Screen capture works. You can use the +Fotoxx Mashup tool to stitch many maps together to make a big map +(e.g. 100 megapixels). These work well with Fotoxx pan and zoom. +You can also use a scanner to capture one or more paper maps and +accurately stitch them together with Mashup.
    +
    +To install a map, put the map file into the directory /home/<user>/.fotoxx/user_maps. +In this directory you will also need a text file: maps_index. Each map +requires a line in this file which specifies the map file name and +the latitude-longitude range of the map. Here is an example +maps_index file:
    + + + + + + +
       Hamburg.jpg,  +53.455,  53.553,   9.906,  10.067
    +   Houston.jpg,  29.479,  30.053, -95.786, +-94.905
    +The entries are +map file name, low and high latitude, low and high longitude. All +values are degrees, separated by commas. Spacing does not matter. +Fotoxx assumes a Mercator projection, but this is not significant +for maps covering less than 100 km (e.g. city maps).
    +
    +If you make a custom map, getting accurate latitude and longitude +values for the map edges can be tricky. Use the Open Street Map +"export" option to view maps with an overlay rectangle labeled with +latitude and longitude. Adjust the rectangle to match a corner of a +map you have created and record the latitude and longitude values. +You need accurate latitude and longitude data for the upper left +and lower right corners of the completed map. The precision should +be suitable for the scale of the map. 1 degree of latitude corresponds to about 110 km on the earth's surface. 0.001 +degree corresponds to 110 meters.

    +OSM Map Method
    +This works out of the box - no downloads or setups are needed, and +locations for any of your images with geotags will show on the map as +red dots. Use the mouse wheel or double-clicks to zoom-in on any +location. Drag the map to change the center. Click on a red dot to get +a gallery view of the images at this location.
     

    +  
    +World Map View and OSM Map View Buttons
    +
    The first two buttons relate only to the World Map method.
    + + + + + + + + + + + + + + + + + + + +

    Map selection: choose a map from a list of +available maps. Users may +add their own maps (nation, city, national park, etc.).

    Map search radius: set the radius (km) for images +retrieved by clicking a location on a map. Images located within +this radius of the clicked location will be retrieved and shown as +a gallery of thumbnails. Click thumbnails to show images +full-size.

    Start the function Images by Geotag (in the metadata +menu).
    +Search for images by country, city/location, and date +range.

    Start the function Search Images (in the metadata menu).
    +General image search using any metadata.
    + 
     
    + 
    +Organizing Images for +Efficient Searching 
    +
    +Relevant links: Edit Metadata, +Edit Geotags, Batch Add/Remove Tags, Batch Rename Tags, Batch Add GeotagsBatch Convert, Search +Images, Images by Geotag, +Images by Map Location, Index Image Files, Magage Albums, Slide +Show.

    +The goal is to find all images for given criteria, e.g. photos of a +given person at a given place and time range, all photos of a given +person, photos from a specified location or event, etc. There are +several ways to organize an image collection to accomplish this, +with advantages and disadvantages you need to understand. These +methods may be used in any combination. Keep in mind that if you +also want to user other programs for searching images, you need to +pay attention to which methods are compatible. The methods listed +here (except for albums) are standards compliant and will work with +other programs that support the same methods.

    +Fotoxx can search using the following image attributes: photo date, +rating (stars), tags (keywords), geotags (location names and earth +coordinates), file directories and names, and text appearing in +captions or comments. In addition, any metadata can be searched, +although not nearly as fast as the items listed, which are +duplicated in a special index file for fast searching (a strong +computer can search over 10,000 images per second). + 

    +The following is an overview of the options and +tradeoffs.

    +Physical +Organization
    +Directory and file names can be used as a basic organization that +will enable you to find images even if more effective organizations +(tags, albums, captions) are not used. The highest physical +organization should be by time, because this will naturally group +photos together that were made for an event, travel location, etc. +I suggest using one subdirectory per year named 2001, 2002, etc. +This will also prevent any one subdirectory from getting too big. +Optionally, image files may be further organized in time sequence +by using MM.DD as the start of the file name. The rest of the name +can be a topic or event, and a sequence number.
    +    Example:  /images/2011/08.20 Spitzbergen +23.jpg
    +This very basic organization allows Fotoxx to find files by +searching file names. In the above example, a search for +"spitzbergen" or even "spitz" will produce all the images of +Spitzbergen. The Batch Convert function lets you rename a whole +batch of photos taken on one day at one location or event by +selecting the files and then specifying a template name like "08.20 +Spitzbergen #". The sequence numbers are automatic, replacing +#.

    +Captions and +Comments
    +A simple method of organization is to use captions and comments. +These are arbitrary text strings that can be added to a series of +images in rapid sequence: Start Edit Metadata, open an image, input +some text, press [apply], press [next], input some text ...  +Captions and comments are two separate inputs but treated logically +the same. They are searchable: words appearing in captions and +comments can be searched. You can specify persons, location, topic, +etc. for each image and then find them again quickly. You can +combine word searches with other criteria such as dates and file +names.

    +Tags
    +The most powerful tool is tags, but this is also the most demanding +of organizational care. You can go through your images sequentially +and add tags by clicking on a list of defined tags. New tags can be +defined as needed. Images can have many tags, and can be searched +using AND / OR combinations of tags, also in combination with other +criteria. Tagging is generally fast, needing a few seconds per +image. Fotoxx has two methods of adding tags, a "managed" system +and a "random" system. In the managed system, you define tag +category names and the tags within each category. When adding tags +to images, you can point and click from a list of tags organized by +category and alphabetically within category. This list should be +small enough (<500?) to be practical for visually locating tags +to click on. In the random system, you simply create tags as needed +while you tag your images, following no particular system and +without categories. After you have entered the first few characers +of a tag, existing tags that match these characters are shown in a +pick-list you can click to complete adding the tag. If there is no +match, a new tag is created. In either case, recently used tags are +shown in a list that can be clicked. Photos made at the same time +will normally be tagged in sequence, and will also share many of +the same tags. The recent tags list helps to speed the tagging +process. Use Batch Add/Remove Tags to add the same tags to a bunch +of images. Note that images downloaded from the Internet may have +many tags adhering to no system. You will need to clean these out +or redo them (if not, these tags will clutter your list of defined +tags).

    +Geotags
    +Use geotags to assign a city or location and country to your +images, and optionally latitude / longitude. This enables all +images for a location to be quickly found (or those near a location +if latitude / longitude is used). If you use a camera with a GPS +receiver and automatic geotagging, then geotags are in the image +EXIF data and location searching is available automatically. Since +image dates are also automatic (in EXIF), images can be searched by +date range and location without you having to enter any data for +each image. You can leave it at this, or add some of the above +extras if you accept the extra effort required. My experience so +far with city / country via GPS is that the names are chaotic and +you may want to sanitize them (upper/lower case, with/without +states or other political subdivisions, mixed languages, etc.). You +can fix the mess with a little effort: search for the location you +want to change (e.g. MUENCHEN), then process the resulting images +with the Batch Add +Geotags function to change the location (e.g. +Munich).

    +Albums
    +Another method of organization is to use Albums. Choose a name for +each album and assign any desired images to the album by clicking +thumbnails in gallery pages. The images are not duplicated: the +album is simply an ordered list of file names. This method is +independent of tags, captions, file names, etc. Albums can be +selected by name and viewed as a gallery of thumbnails. These can +be rearranged via thumbnail drag and drop. The images can then be +viewed sequentially using keyboard arrow keys, randomly by clicking +thumbnails, or as a slide show with animated transitions between +images.

    +Summary
    +The following table summarizes the options. Keep in mind that +searching by date works with any of these methods, and you can +combine the methods any way you wish, e.g. "directory and file +names" together with "captions and comments".

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Method and Example
     Advantages
     Disadvantages
    +Directory and File +Names
    +e.g. image files like this:
    +  /images/2012/Rome-12.jpg
    + simple and easy to +use
    ++ fast implementation: batch move and
    +    rename files with added sequence numbers
    ++ gallery overview at each level of hierarchy
    ++ easy to navigate up / down hierarchy levels
    + no overview of available +search terms
    ++ long file names required for multiple search
    +    categories (date, place, persons, events +...)
    ++ risk of inconsistent names, unreliable search
    Captions and Comments
    +e.g. caption or comment like this:
    +   2012 Italy Rome Forum
    + simple and easy to +use
    ++ flexible search using multiple categories
    ++ moderately fast implementation:
    +    think + write time, per image
    + no overview of available +search terms
    ++ may end up with thousands of categories
    ++ risk of inconsistent names, unreliable search
    Managed Tags
    ++ e.g. rome, Italy, Susan
    + Point and +click in a tag list
    +    to add tags to images
    + Tags +have categories for faster
    +    visual location in the tag list

    + good overview of +available tags to click
    +    (organized by persons, places, events ...)
    ++ easy creation of new tags
    ++ no inconsistent or redundant tags, no typos
    ++ therefore searching more reliable
    + requires careful planning +of tags
    ++ slow to find and click tags if >500 tags
    ++ hard to revise tag naming system
    +    (batch add / delete / rename is available)
    +
    Random Tags
    ++ tags with no organizing system
    +
    + no planning needed
    ++ creating and entering tags is faster
    +    (point and click or type-in tags)
    ++ legacy tags can be kept unchanged
    + inconsistent tags +(scenery, landscape)
    ++ redundant tags (Susan, Susi, Susy)
    ++ tags with typos (scenery, scenrey)
    ++ poor overview of existing tags
    ++ therefore searching less reliable
    +Geotags
    +e.g. location data like this:
    +   Rome Italy 41.89 N 12.48 E
    + cameras with GPS store +data automatically
    ++ manually add locations (few seconds per image)
    +    (or batch add location to many images)
    ++ search location by clicking on a map image
    ++ search location and date-range by clicking
    +    on a report of available locations / +dates
    + useful only for searching +by location
    ++ chaotic location naming by cameras
    +    (revise using search and batch update)
    Albums
    +e.g. album names like this:
    +  + best scenery
    +  + Italy 2012
    + make ad hoc albums using +any criteria
    ++ images can be in multiple albums
    +    or multiple times within one album
    + time to locate and add +images to an album
    +    (find and click gallery thumbnails)
    ++ images not searchable by other categories
    ++ not usable by other applications

    +  
    + 
    +Translations 

    +Translation files for Fotoxx are found here:  /usr/share/fotoxx/locales/translate-xx.po.gz +
    + +The file may or may not be compressed (.gz ending). xx is a +standard 2-character language code (e.g. de for German) or a +combination language and region code (e.g. de_AT for Austrian German). This code normally corresponds to the +locale of the computer, as shown by the command echo $LANG. If +there is no installed translation file for xx, you can use the +dummy translation file for en (English) as a template. Replace +the translations of english to english with english to +new-language, and save the new file with the right xx code. The +translation files are protected and cannot be edited unless you +have root privileges. It is better to copy a translation file to a +more convenient location for editing, and save the edited file in +the standard location when ready to test. Translation files are +available for use immediately - no conversion to a binary format is +needed since the text files are processed directly by Fotoxx. +However, it is advisable to go through the standard GNU translation +process to find possible errors. This is explained below.
    +
    +Translation files are commonly called ".po files" and have the file +type ".po" (or ".po.gz" if compressed).
    +A typical translation in a .po file looks like this:
    +  msgid "The file +name is: \n %s"
    +  msgstr "Der +Dateiname ist: \n %s"
    +
    +"msgid" is an English text for translation. "msgstr" is the +translation (German in this case). The special codes "%s" and "\n" +are for inserted text and formatting. A file name will be inserted +at "%s", and "\n" starts a new line. In the example above, the +displayed file name will start on a new line. In the translation +(msgstr line), these codes must match the English codes (msgid +line) in both type and sequence.
    +
    +A missing translation looks like this:
    +  msgid "The file +name is: %s \n"
    +  msgstr +""
    +
    +Revising an existing +translation
    +
      +
    1. Edit  translate-xx.po  to add +or update translations for language "xx".
    2. +
    3. Replace the original file in /usr/share/fotoxx/locales/
    4. +
    5. Option: compile the .po file to check for errors: 
      + $ msgfmt -v +--check-format -o /dev/null translate-xx.po
    6. +
    7. Run Fotoxx and check how the translations look. If the computer +locale is not "xx", start fotoxx in language "xx" with the +command:  $ fotoxx +-l xx
    8. +
    9. Send the modified .po file to me  [contact]  +so it can be included in Fotoxx release packages.
    10. +
    +Step 3 is optional. The usual binary translation files (.mo) that +are output by msgfmt are not needed by +Fotoxx. The translation source files (.po) are read directly by +fotoxx, and changes made to a .po file are effective the next time +Fotoxx is started. Step 3 is useful to find errors (e.g. missing or +non-matching format codes, quote marks, etc.).
    +
    +Whenever fotoxx is started from a terminal, missing translations +are listed in the terminal window. There is also a function for +this: Tools > Missing Translations lists missing translations in +a popup window.

    +Problems with long +translations
    +English can be terse compared to other languages (e.g. "undo" is +"Rückgängig machen" in German), and this can cause a confusing +appearance in the GUI layouts. Therefore try to make dialog labels +and buttons short, and look closely at the resulting GUI +layout.

    +User Guide +translation
    +The English user guide is normally found here:
    +  +/usr/share/fotoxx/data/
    +The file is a text HTML file, which may be edited with any HTML +editor. This is a large document, so expect a week or more of work +to translate it. In order to reduce the work, you can use a simple +text editor and supply text without images - in this case I will +convert to HTML and supply the images. If you make a new or revised +translation, please send it to me  [contact]  +so it can be included in future releases.


    +  
    +Recent +Changes
    +This section is provided to help you quickly review the changes +without reading the whole manual.
    +Fotoxx version numbers correspond to year and month of release.

    +v.16.06 (this release)
    +
      + +
    • Right-click popup menus for File and Gallery views now include Show on OSM Map.
      +The view is changed to OSM map, centered on the current image or clicked thumbnail.
      +
    • +
    • Edit Any Metadata: editing metadata keys that are not in the pick list was made easier.
    • +
    • Edit Metadata and Edit Geotags were combined for ease of use.
      +
    • +
    • Adjust HSL: functionality improved and user guide changed accordingly.
      +
    • +
    • Paint/Clone: functionality improved and user guide changed accordingly.
      +
    • +
    • The functions Delete and Trash were combined and work better from gallery view.
      +
    • +
    • The functions Copy and Move were combined and work better from gallery view.
      +
    • +
    • Unbend was made more intuitive by the use of images in the dialog box.
      +
    • +
    • Search Images: search for matching locations was simplified.
    • +
    • Search Images: search for missing data (location, tags ...) is easier.
      +
    • + + + + + + +
    + +v.16.05
    +
      +
    • A new and better method for mapping image locations was added: OSM map view.
    • +
    • Bend > Selective Rescale: new image warping function.
    • +
    • The KB shortcut key for Magnify Image is now X instead of M.
      +(M was taken for OSM map view).
      +
    • + + +
    + + +v.16.04
    +
      +
    • A new method, median difference, was added to Sharpen Image.
      +
    • +
    +v.16.03
    +
      +
    • Effects > Blur Background: +new function for background blurring and "Tilt-Shift" +effect.
    • +
    • Edit Metadata: process a series of +images faster with a button to recall previous data.
    • +
    • Add Transparency: add +transparency proportional to brightness or selected color.
    • +
    • Calibrate Printer: the color +chart and the procedure were improved. You must perform
      +the calibration again if you want to print with calibrated colors +(my apologies for this).
    • +
    +v.16.02
    +
      +
    • Burn Images to CD/DVD/BRD: the burn +utility and user procedure was changed.
    • +
    • Paint/Clone: the capability to paint +over transparent image areas was added.
    • +
    • Effects > Cartoon: new function to +convert a photo into a cartoon-like drawing.
    • +
    • Function key changes: F10 toggles +full screen mode with menus, F11 without menus.
    • +
    • Batch Convert: overlay image size +can be made constant regardless of image dimensions.
    • +
    • Image File List: new function: make a +file of selected image files (for shell scripts, other apps).
    • +
    • Prev/Next button and KB arrow keys can +optionally jump to preceding or following gallery.
    • +
    • Print Image: There is a bug GTK 3.16 +that rotates the margins in landscape mode:
      + + + + + + + + + + + + + + + + + +
       dialog +input:
       top
       bottom + left     
      + right
       adjusted +margin:
      + right   
       left
       top
      + bottom
      +Portrait mode works normally. Earlier releases of GTK work +normally.
    • +
    • Command line: An album can be +opened initially from the command line.
    • +
    +v.16.01
    +
      +
    • Rename File: file version numbers +are handled more logically.
    • +
    • Slide Show:
    • +
    • +  + user interface improvement - button to set an image zoom +center.
    • +
    • +  + N-key to index to the next image immediately.
      +  + [load] and [save] buttons in the transitions dialog.
      +  + [KB functions] button to show available keyboard +functions.
    • +
    • Panorama: manual alignment option for +images without clear common features.
    • +
    • Batch Convert: add overlay image +to output image files (e.g. for credit line).
    • +
    • Paint Transparency: minor addition +- button to make entire image transparent.
    • +
    • Search Images: explanation for +case-sensitive string matching was added.
    • +
    • Color Saturation: new function +to adjust color saturation.
    • +
    • Edit Any Metadata: UI +improvements for ease of use.
    • +
    • Batch Add/Change Metadata: +UI improvements for ease of use.
    • +
    • User Options: new options for +default gallery sort and to enable or disable image
      +right-shift to minimize overlap of edit dialogs and image being +edited.
    • +
    +v.15.12
    + +v.15.11
    +
      +
    • Pattern: topic was revised for extended +functionality (contrast parameter).
    • +
    • Adjust_HSL: topic was revised for +extended functionality (target color selection).
    • +
    • Batch Convert: topic was revised +for extended functionality (preserving input file names).
    • +
    • Spherical Projection: new function to +make a spherical projection of an image.
    • +
    +v.15.10
    + +v.15.09
    +
      +
    • Area Copy and Paste: this +function was restored after being removed in 15.08. Save Area File +and Open Area File can be used to do the same thing, but this +method is faster and easier in the common case where an area is +copied and pasted and does not need to be saved in a file for later +usage.
    • +
    • User Options: the font and size +used in menus and dialogs can be set by the user.
    • +
    • Calibrate Printer:  new +tool to improve the color accuracy of printed images.
    • +
    +v.15.08
    + +v.15.07
    +
      +
    • The Fotoxx UI had significant revisions and this user guide was +revised accordingly.
    • +
    • Effects > Pencil Sketch: you +can now choose the foreground and background colors.
    • +
    • Batch Delete/Trash: new +function for batch trashing or deletion of image files.
    • +
    • Select Area dialog - buttons added +to change line color more easily.
    • +
    • Gallery Navigation was simplified +with clickable button per directory level.
    • +
    • User Options interface has minor +improvements.
    • +
    • Undo/Redo button: middle click pops-up +a list of edit steps you can go back to.
    • +
    • Batch Upright: new option to check +the entire image database to fix rotated images.
    • +
    • Edit Metadata and Search Images: revised to better support +thousands of unorganized tags.
    • +
    • Batch Rename Tags: new +function to rename any number of tags and apply to all +images.
    • +
    +v.15.06
    + +v.15.05
    +
      +
    • Denoise Image: New function to +measure and reduce noise with minimal loss of details.
    • +
    • Newest Images: Select EXIF date or +file modification date to determine the newest image files.
    • +
    • Cycle Desktop Image: New function +to cycle the Desktop background image using a Fotoxx +album.
    • +
    +v.15.04
    +
      +
    • Zonal Flatten: New Edit function +to enhance detail in image areas with poor contrast.
    • +
    • Directed Blur: New Effects +function to blur an area in a single direction.
    • +
    • Plugins: Support added for commands that +do not edit an image file.
    • +
    • Voodoo Enhance: a second method was added +based on Zonal Flatten.
    • +
    • User Options: an option was added +to show or hide hidden directories in gallery view.
    • +
    +v.15.03
    +
      +
    • Rotate 90 was renamed to Upright and the +funtionality was extended.
    • +
    • "Named Collections" are now called "Albums". Menus, dialogs and the user guide +were revised.
      +The directory .../.fotoxx/collections  is renamed to  +.../albums (nothing is lost).
    • +
    • Mashup has extensive changes for +controlling overlay image transparency and warping.
    • +
    +v.15.02
    +
      +
    • The startup parameter -nosync was changed to the more correct +-noindex. 
      +See the technical notes section below for command line +parameters. 
    • +
    • A multi-row panorama capability was +added using the Panorama Tools utilities.
    • +
    • User Options has a new parameter: +Thumbnail size.
    • +
    • Slide Show has added flexibility for +showing image captions and comments.
    • +
    +v.15.01
    +
      +
    • The Plugins menu was moved from the left +panel into the Edit menu, to conserve space.
    • +
    • Adding and revising plugin functions was made easier.
    • +
    • Denoise: explanation was added for the +new dark areas functionality.
    • +
    • Gallery popup image: new +functionality with F11 and Escape keys.
    • +
    • Magnify function: the user interface was +made more flexible.
    • +
    +   

    +   
    +Technical +Notes 
    +
    +Fotoxx +Limitations
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    image +files
    Fotoxx has been tested with +156K image files and performace was good on a strong PC. 500K image +files should be practical on a strong PC, but startup time may be +20+ seconds.
    image sizeThe max. supported image +width or height is 20,000 pixels (compile time constant).
    +The maximum image size is 4 GB (about 240 megapixels).
    +Images edited in memory have 4 float numbers (16 bytes) per pixel +(RGB + alpha).
    image edits99 edits for undo / redo +and file version numbering (filename.v01 to +filename.v99).
    image tags
    10,000 tags, 200,000 chars. +for all tags, 1000 chars. for one image (compile time +constants).
    geotag +cities  20,000 different cities / +locations for geotagged images (compile time +constant).
    gallery size
    +practical limit
    +for good performance
    Approx. 10,000 files in a +directory or generated gallery (image search operation). The limit +is the memory required for an internal thumbnail cache that enables +gallery scrolling to work fast. A PC with more main memory can +handle more. If the largest thumbnail size is used (512 pixels), +the practical limit is reduced.
    +Memory = (thumbnail size) x (thumbnail size) x 3 x 0.8 x (thumbnail +count).
    +10,000 thumbnails of size 256 pixels requires about 1.6 GB of main +memory.

    +Running out of +memory
    +Fotoxx can require a huge amount of main memory to edit a large +image. A 20 megapixel image requires 640 megabytes for the simplest +edits, and more for complex edits. Images in memory are not +compressed and each RGB pixel is represented by three +floating-point numbers and a transparency value (16 bytes total). +HDR, Panorama and other composite functions hold all images in +memory during alignment and post-process tuning. If you push the +memory limits on a small PC, the Linux OS may kill the Fotoxx +process without warning and with no message (this is to keep the +operating system itself from failing). What you see is that the +Fotoxx window simply vanishes. Fotoxx monitors the amount of memory +available in the top panel above the image window, and gives +a  warning if memory is running low, but this is sometimes too +late to avoid being killed.
    +
    +Running out of disk +space
    +During a series of image edits, each edit step is saved on disk, +and the before / after results can be viewed with the Undo/Redo +button. These images use floating point numbers for color values +and are not compressed. A 20 megapixel image makes a 320 MB file. +If there are 10 edit steps in the undo / redo stack, the required +disk space is 3.2 GB. If disk space runs out during an edit +session, the program terminates with a message. To avoid this, be +sure there is plenty of disk space wherever your /tmp/ directory +resides. When you open a new image or quit Fotoxx, the disk space +is recovered. If Fotoxx crashes, the space is recovered the next +time fotoxx is started or when the computer is rebooted.

    +Packages required for Fotoxx +source build
    +See the README file for instructions on compiling Fotoxx from +source.
    + + + + + + + + + + + + + + + + + + + + + + + +
     g++GNU C++ compiler and C +libraries
    + libgtk3.0-dev Gnome GTK3 / GDK3 / Pixbuf +/ etc. function libraries
    + libtiff5-devtiff library development +files
    + libpng12-devpng library development +files
    + liblcms2-devLittle CMS development +files
    +Note: package +naming and contents vary by Linux distro (the usual chaos). The +above names are valid for Debian-based distros (including Ubuntu). +For other distros the names are different. Good luck.

    +Additional programs required or +optional for Fotoxx
    +Fotoxx uses the following programs which are installed +separately:
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + xdg-utils req.
    open text or html files +with user's preferred application
     exiftool req.
    (v. 8.60 or later) read and +write image metadata (tags, comments, etc.) 
     dcraw req.
    open RAW images, batch +convert RAW to tiff, jpeg, or png
     ufraw opt.open a RAW file for editing +using own GUI
    + rawtherapee
     opt.
    open a RAW file for editing +using own GUI
    + growisofs opt.burn a CD or DVD with +selected images
     xgamma opt.
    used for the Monitor Gamma +function (adjust monitor gamma)
    + fotoxx-maps
     opt.
    set of geographic maps to +show image locations and report images by mouse +click
    + hugin
     opt.PT Panorama function uses +Panorama Tools (usually packaged with Hugin)

    +zappcrash - backtrace +dumps
    +If Fotoxx has a fatal error, it attempts to intercept the error and +produce a backtrace dump which appears in a popup window. Please +send this information to me so I can fix the error (contact me). A +description of what you did immediately before the crash would also +be helpful.

    +Preview Mode
    +Some edit functions use a reduced image size for a faster +interactive response time. This is shown on the top panel as +"(reduced)". When +[done] is pressed, the full-size image is then processed. This is +why [done] sometimes takes noticeable time. A monitor-size image (2 +megapixels) is 7 times faster to process than a 14 megapixel image +(typical digital camera). This method is used whenever the preview +edits can be applied to the full-size image without visible impact +(e.g. Trim/Rotate, Bend functions, brightness and color related +functions). It cannot be used for some functions (e.g. sharpen, +tone mapping) because the results for a small image cannot be +converted for a larger image.

    +File Size
    +The file size shown on the top panel while an image is being edited +is the original (unedited) file size. The file size for an edited +image is not known until the image is saved on disk. In memory the +size is (pixels x 16). A 10 megapixel image uses 160 megabytes in +memory and typically < 2 megabytes on disk (high quality JPEG). +When the edited image is saved, the correct file size is updated on +the top panel.

    +Ubuntu Unity +Launcher
    +The following launcher will have a right-click dropdown menu with +three different startup options: blank window, last image viewed, +and a gallery of recent images. Save the following text as a file +named fotoxx.desktop, make it executable, and drag the file to the +Unity left side launcher list.
    + 
    +  [Desktop Entry]
    +  Name=fotoxx
    +  GenericName=Photo Editor
    +  Comment=Edit photos and manage collections
    +  Categories=Photography;
    +  Type=Application
    +  Terminal=false
    +  +MimeType=image/bmp;image/gif;image/tiff;image/jpeg;image/png; +
    + +  Exec=/usr/bin/fotoxx
    +  Icon=/usr/share/fotoxx/icons/fotoxx.png
    +  X-Ayatana-Desktop-Shortcuts=blank window;last image;recent +images

    +  [blank window Shortcut Group]
    +  Name=blank window
    +  Exec=fotoxx -blank
    +  TargetEnvironment=Unity

    +  [last image Shortcut Group]
    +  Name=last image
    +  Exec=fotoxx -prev
    +  TargetEnvironment=Unity

    +  [recent images Shortcut Group]
    +  Name=recent images
    +  Exec=fotoxx -recent
    +  TargetEnvironment=Unity
      +

    +Custom Icons

    +Fotoxx icons are contained in /usr/share/fotoxx/icons. You can change these if wanted.

    +File Types Supported
    +Fotoxx uses libraries to support reading and writing of image +files: the GDK pixbuf library, libpng and libtiff. The file types +that can be read and written include JPG / JPEG, PNG, and TIF / +TIFF. Three RGB colors with 8 bits per color are supported for all +types. PNG and TIFF also support 16 bits per color. Fewer than 8 +bits per color and grayscale images are partly supported, and are +converted to RGB internally.
    +
    +Index Files
    +These can be found in the directory +/home/<user>/.fotoxx/image_index/
    +The files named "index_001", "index_002", etc. contain the image +file pathnames and those metadata items that are indexed for fast +searching (dates, ratings, tags, caption, comments, geotags). The +file "top_directories" contains a list of the top image +directories. These are searched for new image files whenever Fotoxx +starts up. The last entry is the thumbnails directory.
    +
    +Color Depth
    +8-bit color (256 brightness levels), as supported by JPEG files, is +the norm for image files and is generally adequate. A difference of +one brightness step (0.4% of the entire range) cannot be seen. A +greater color depth than 8 bits can be useful if some part of the +brightness range within an image has been greatly expanded using +retouch or repair functions. This expansion can lead to visible +"banding" or "posterization". If the RAW image is edited instead of +the JPEG (and if the RAW image really has more than 8 bits of +noise-free color), this problem can be reduced, even if the edited +image is converted back to JPEG for final storage. Only the most +expensive cameras produce RAW image files with more than 8 bits of +noise-free color at normal light levels (status 2015).
    +
    +The image below changes gradually from black to white. The color +depth is 6 bits and the number of brightness levels is 64. Note +that the brightness steps are barely visible.
    + 

    +Noise Measurement
    +The noise measurement tool (part of the menu Repair > Denoise) +measures image noise. When used on a RAW image, it measures camera +sensor noise. To work properly, the image spot being measured must +be in an absolutely uniform image area, otherwise variations in +subject brightness will be measured instead of image noise. The +measured spot should ideally be a mid-gray tone. A bright area may +have little or no noise because the camera pixels are saturated. +The measured noise value applies only for the ISO exposure level +used. Higher ISO levels have more noise. You may be surprised at +the typically high noise levels in RAW images. Cameras filter out +this noise when making the JPEG image. Very expensive cameras with +full-size sensors may still have noise levels exceeding 0.5 on the +scale 0-255 (i.e. noise in the 9th bit) even for normal ISO values +around 100.
    +
    +Measurement method

    +An area of radius 10 pixels around the clicked position is sampled. +The RGB brightness levels reported (0-255) are the averages for +this area. Within this area, every pixel is measured and compared +with the mean of the surrounding 5x5 block of pixels. The RGB noise +levels reported are the average differences. If the sampled area +has a small gradient in brightness, the measurement is not +sensitive to this. This is because the central pixel in a 5x5 block +will naturally have the average RGB values of the surrounding +pixels (if noise is zero). The image being measured is actually a +16-bit TIF image made from the RAW, preserving up to 16 bits of +data if this much is available from the RAW image.

    +Alignment Algorithm (HDR, +HDF, Stack, Panorama)
    +Relatively few high-contrast or "edge" pixels are selected to +control alignment in HDR, HDF, Stack and Panorama. The actual +pixels used are shown in red during the alignment process, which is +also more entertaining. Each image in succession is systematically +warped various small amounts and the fit with other images is +tested. This is done because two photos made with slightly +different horizons or rotations will not fit perfectly with simple +translation and rotation. Also the cylindrical image projection +used for panoramas is only an approximation of what the camera lens +actually does.
    +
    +Tone Mapping +Algorithm
    +The method used by Fotoxx is home-made. It is not as effective as +Fattal in some cases, but close.
    +However, it is fast and simple.
    +
    +Alpha Channels
    +Images having alpha channels (transparency information) can be +edited, and the alpha channel is preserved if the image is saved as +a PNG file. JPEG files do not support alpha channels.
    +
    +Image Deterioration From Repeated +Editing
    +If you save an edited image file and then use this file later to +perform additional edits, pixel resolution may be lost. It is +better if you do all edits when the image files are first +processed, to minimize image deterioration (or go back to the +originals if you still have them). Any function that changes image +size or shape will reduce resolution about 1/2 pixel. These are the +resize, rotate, bend / warp, and all the composite functions. +Rotating 90 degrees does not affect resolution. When downsizing an +image, using the ratios 1/2, 1/3, 1/4 will give the least loss of +resolution. Functions that change brightness, color or contrast do +not affect resolution.

    +JPEG Compression
    +If a JPEG file from a digital camera is saved with Fotoxx, you will +likely notice a large reduction in file size, even if a high JPEG +quality level is used. This is because Fotoxx can afford to invest +more processing power in the compression. A camera CPU is not very +fast and must save the photos quickly to be ready for the next +photo, so the processing time available for compression is limited. +The CPU of a PC is typically much faster and has more time, so the +compression level is higher. The smaller file size does not mean +that the quality is less.
    +
    +Image Deterioration From Repeated +Saving of JPEG files
    +Reading a compressed JPEG image and saving it again can lead to +loss of detail and increased image artifacts. The effect seems to +be negligible if JPEG "quality" is set to a high value when the +image is saved. The image below was saved 10 times using quality=90 +(Fotoxx default), each time opening and saving the previous image. +Differences can be found if you look hard enough. The images are 2x +size and the insets are 5x.
    +
    +EXIF Errors
    +Cameras (esp. older ones) do not always produce structurally +correct EXIF data, and the program exiftool (used by Fotoxx to +manipulate EXIF data) may produce error messages. I have been able +to fix these cases by saving the image file on top of itself, which +will replace the EXIF data with whatever exiftool was able to read +correctly. If desired data gets lost, you can restore it using the +Edit Any Metadata +function.
    +
    +Newline characters in user +Comments and Captions
    +When editing metadata Comments or Captions, if you need to align +text in columns, you can use the [enter] key to force new lines. +These are converted into the string "\n" before being stored in +image EXIF / IPTC data, since newline characters are not allowed +(exiftool converts them into periods). If the text is viewed or +edited again, the "\n" strings are converted back to new lines, so +that the original text alignments are restored. This is not standard, so don't +expect the text to remain aligned if viewed in Photoshop, etc. If +this is a requirement, then do not use the enter key to make new +lines when entering long text - just let the text overflow to the +next line by itself. In this case, column alignment is not +possible.
    +
    +Installed Files
    +Foloxx installs files in the following locations.
    +Repackaging by distros could put them somewhere else, e.g. /opt... +instead of /usr...
    + + + + + + + + + + + + + + + +
    + /usr/bin/fotoxxthe executable program +file
    + /usr/share/fotoxx/*user guide, translation.po +files, icons, default data, etc.
    + /usr/share/doc/fotoxxchange log, man page, +README and other documentation +files.   
    +
    +Installed Files - optional fotoxx-maps package
    + + + + + + + + + + + +
    + /usr/share/fotoxx-maps/*
    geographic maps data files +(112 MB) 
    + /usr/share/doc/fotoxx-maps/*
    change log, man page, +README   
    +
    +Local Files
    +The following files reside in  /home/<user>/.fotoxx/
    +These are preserved when a new release of Fotoxx is installed.
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     /albumsimage albums from Manage +Albums function
    + /custom_kernelsaved custom kernel data +files
    + /edit_scripts
    saved edit script files +(for batch editing)
    + /favoritessaved data for +user-configuration of favorites menu
    + /image_indextext files containing +searchable metadata for all image files
     /mashupsaved mashup project +files
    + /patterns
    saved background +patterns
    + /printer_color
    saved printer color +calibration files
    + /retouch_combosaved settings for the +Retouch Combo function
    + /saved_areas"cutout" files saved from +the Select Area > Save dialog
    + /saved_curvescurve data saved from +Retouch curve edit dialogs
    + /slideshowsuser preferences from Slide +Show function
    + /slideshow_trans
    saved slide show transition +parameters
    + /thumbnailsthumbnail files (default +location, user can change this)
    + /user_maps
    custom map files made by +the user
    + /write_textimage text overlays saved +from Add Text function
    + bookmarksbookmark names and image +file locations
    + KB-shortcutsuser-defined or modified +keyboard shortcuts
     logfileFotoxx outputs that may be +relevant for diagnosing problems
    + metadata_report
    Batch Report Metadata +output report - tabular text file
    + metadata_report_items
    list of metadata items +reported by Batch Report Metadata
    + metadata_short_list
    metadata key names for +Batch Add / Change Metadata
    + metadata_view_extra
    extra items for the +metadata short report, added by the user
    + mosaic_tiles
    binary file, compressed +tiles from the Mosaic function
    + pagesetupsaves page setup data for +print function
    + parameterssetup parameters that are +saved across Fotoxx sessions
     pluginssaves the plugins menu +contents
    + printsettingssaves print settings data +for print function
    + recent_filesa list of the last 100 +files opened by Fotoxx, saved when Fotoxx exits
    + search_resultslist of the last image +files found with Search Images
    + stuck-pixels
    data saved from the Fix +Stuck Pixels function
    + tags_defineda list of all categories +and tags currently used in all images
    + zappcrash
    if Fotoxx crashes, a +traceback dump is deposited here
    + zdialog_inputssaved dialog data for +dialogs that recall prior inputs
    + zdialog_positionssaved dialog window +positions (relative to main window)

    +Metadata used by +Fotoxx
    +The following metadata items (stored inside the image files) are +used by Fotoxx. These items and any other metadata can be viewed or +edited using Fotoxx or other programs. Images can be searched using +these items or any other metadata as selection criteria. Those +marked "index" can be searched very fast, others more slowly. Items +not listed here are searchable but not indexed.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Metadata section and +name Usage Indexed
     IPTC  +Keywords tags entered by +user  yes
     IPTC  +Rating "star" rating entered +by user  yes
     EXIF  +ImageSize pixel width and +height, 1234x2345
      yes
     EXIF  +DateTimeOriginal date / time photo was +made, or entered by user  yes
     EXIF  +ImageHistory history of image +edits
      no
     EXIF  +UserComment comment text entered +by user  yes
     IPTC  +Caption-Abstract caption or abstract +text entered by user  yes
     EXIF  +FocalLengthIn35mmFormat camera focal length +used, 35mm equivalent  no
     EXIF  City, +Country city and country from +camera GPS, or entered by user  yes
     EXIF  +GPSLatitude, GPSLongitude earth coordinates +from camera GPS, or entered by user  yes
     EXIF +RollAngle
     camera slant angle, +can be used to level an image
      no

    +Dialog Window +Positioning
    +For commonly used dialogs, Fotoxx saves the dialog window position +(relative to the main window) and tries to restore the same +position the next time the dialog is started. This works, mostly. +Sometimes the window manager ignores this request and places the +dialog somewhere else.

    +Fotoxx Benchmarks
    +Conditions: Fotoxx 16.04, Ubuntu 15.10, Intel Core i5 2.7 +GHz (4 cores, no hyperthreads)
    +   
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Benchmark +Description
     Time
     Initial index, 9215 image files, 5400 rpm disk
    +
     6.5 min.
    +
     Initial index, 9215 image files, 7200 rpm disk
    +
     5.3 min.
    +
     Initial index, 9215 image files, 10000 rpm disk
    +
     4.8 min.
    +
     Initial index, 9215 image files, SSD (solid state disk)
    +
     3.0 min.
    +

    +

    +
     Following benchmarks used 7200 rpm disk
    +

    +
     Startup +after reboot, no new image files
     < 1 +sec.
     Startup with 100 new image files to index
     6 +secs.
     Find all images with +tag "Rosi" (253 images)
     < 1 +sec.
     Find all images with +"Rosi" in file name (111 images)
     < 1 +sec.
     Find all images dated +Jan 1 - May 30, 2013 (255 images)
     < 1 +sec.
     Find all images dated +in 2013 and with city = "Freising" (90 images)
     < 1 +sec.
     Find all images dated +in 2013 with EXIF "make" = "panasonic" (342 +images)
     3.8 +secs.
     Click on world map, +France / Esterel (5 images)
     < 1 +sec.
     List all locations +having images with geotags (6714 images)
     < 1 +sec.
     Click on location +Germany / Dresden (113 images)
     < 1 +sec.

    +

    +
     Following benchmarks used 221368 image files and 7200 rpm disk
    +

    +
     Initial index of +221368 image files
     130 +min.
     Startup after +reboot, no new image files
     4.4 +sec.
     Subsequent startup, no new image files
     2.8 +sec.
     Search 221358 image +files for tag "Rosi" (7368 images found)
     1.6 +sec.
     Click on world map, +Monument Valley (720 images found)
     1.2 +sec.
     
    +Source Code

    +The C++ source code is heavily commented in the hope that others +can understand and use the code for their own projects. If you have +a technical question about how something works, or a better idea to +pass along, you may contact +me.

    +Questions, Problems, +Bugs
    +If you have a question or a problem, you may contact me. If you +send me any images that work poorly, I can use these to try to +improve Fotoxx. If there is a traceback dump (zappcrash window), +please send this to me. Please explain how to produce the error if +you can.

    +Technical Reference +Book
    +I used the book "Introduction to Image Processing and Analysis" by +Russ and Russ, CRC Press. It is clear and concise. The following +algorithms were adapted from this book: flatten brightness +distribution, noise reduction (median smoothing, top hat), sharpen +(unsharp mask, kuwahara method), embossing.

    +Acknowledgements
    +The libraries and programs libtiff, libpng, liblcms, dcraw and +exiftool have helped Fotoxx evolve much faster than otherwise +possible. Of course this also applies to GTK, the GNU tools and +libraries, and the entire GNU / Linux ecosystem. Thanks to those +who have donated their work for translations, their ideas for +development and their time for testing. Special thanks to the +following: Dick, Jill, Jamps, Andre, Doriano, Curley, Jan, Rosi. +Translation credits are in Help > About.
      +
    + + + + \ No newline at end of file diff -Nru fotoxx-16.06/debian/changelog fotoxx-16.07/debian/changelog --- fotoxx-16.06/debian/changelog 2016-06-02 13:15:37.000000000 +0000 +++ fotoxx-16.07/debian/changelog 2016-07-03 10:56:32.000000000 +0000 @@ -1,3 +1,19 @@ +fotoxx (16.07-1dhor~wily) wily; urgency=medium + + * Libraw is used in place of Dcraw. Dcraw is no longer required for Fotoxx. + * Search Images: there is more flexibility to search for metadata matching + one or more values, one or more substrings, or a range of numeric values. + * The denoise method "flatten" was made faster and more effective. + * New: Select Area Copy: select a hairy or ragged edge with fine control. + * New: Select Area Find Gap: find the gap in a hand-drawn area outline. + * Manage Albums: copy and paste from any gallery into an Album gallery using + parallel Fotoxx sessions (makes album construction and editing easier). + * New user option: set the main window background color. + * Bugfix: crash when saving a select area at image bottom edge to a file. + + + -- Dariusz Duma Sun, 03 Jul 2016 12:45:08 +0200 + fotoxx (16.06-1dhor~wily) wily; urgency=medium * Many popup tips were added to dialogs to improve ease of use. diff -Nru fotoxx-16.06/debian/control fotoxx-16.07/debian/control --- fotoxx-16.06/debian/control 2016-05-02 11:17:22.000000000 +0000 +++ fotoxx-16.07/debian/control 2016-07-03 10:44:40.000000000 +0000 @@ -9,7 +9,8 @@ xdg-utils, libimage-exiftool-perl, liblcms2-dev, - libchamplain-gtk-0.12-dev + libchamplain-gtk-0.12-dev, + libraw-dev Standards-Version: 3.9.3 Homepage: http://kornelix.squarespace.com/downloads/ @@ -19,7 +20,7 @@ ${misc:Depends}, libimage-exiftool-perl, fotoxx-common (= ${source:Version}) -Recommends: ufraw-batch,ufraw,dcraw,xgd-open,libtiff,xdg-utils,libimage-exiftool-perl +Recommends: ufraw-batch,ufraw,xgd-open,libtiff,xdg-utils,libimage-exiftool-perl Suggests: brasero Description: easy-to-use digital photo editor Fotoxx is a program for improving digital photos. It allows you to navigate diff -Nru fotoxx-16.06/debian-control fotoxx-16.07/debian-control --- fotoxx-16.06/debian-control 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/debian-control 2016-07-01 10:19:38.000000000 +0000 @@ -1,5 +1,5 @@ Package: fotoxx -Version: 16.06 +Version: 16.07 Architecture: amd64 Section: graphics Installed-Size: 8948 @@ -7,13 +7,23 @@ Maintainer: Mike Cornelison Priority: optional Homepage: http://kornelix.net -Depends: libc6, binutils, xdg-utils, xdg-user-dirs, libimage-exiftool-perl, dcraw, gnome-maps +Depends: libc6, binutils, xdg-utils, libimage-exiftool-perl, gnome-maps Description: Edit photos and manage a large collection. - Includes thumbnail browser/navigator, RAW file conversion, a comprehensive - set of edit functions working in 24-bit color, edit selected image objects - or areas independently from background, area copy/paste within and across - images, file versioning, batch operations, scriptable batch editing, HDR, - HDF, panorama, image stacking, photomontage, albums (alternate views), - slide show with animated transitions and zoom, metadata edit and report, - image search using any metadata and/or directory/file names, geographic - maps with clickable markers to show images at location. + + thumbnail browser and navigator + + RAW file open and edit, batch conversion + + internal processing in 24-bit color (float) + + output in 8 or 16-bit color depth + + extensive set of functions for edit, repair, and special effects + + undo and redo any prior edit stage + + file versioning - save multiple edit stages + + edit image objects or areas separately from background + + copy and paste area sekections within and across images + + batch operations and scriptable batch editing + + composite functions - HDR, HDF, panorama, stack, montage + + albums (alternate views) with drag and drop arrangement + + slide show with animated transitions and pan/zoom + + metadata edit and report (tags, captions, ratings, geocodes ...) + + image search based on any metadata and/or directory/file names + + zoom world map in/out, click marker to show corresponding images + + diff -Nru fotoxx-16.06/doc/changelog fotoxx-16.07/doc/changelog --- fotoxx-16.06/doc/changelog 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/doc/changelog 2016-07-01 10:19:38.000000000 +0000 @@ -1,6 +1,21 @@ Fotoxx Change Log http://www.kornelix.net ================= +2016 Jul 01 v.16.07 ++ Libraw is used in place of Dcraw. Dcraw is no longer required for Fotoxx. ++ Search Images: there is more flexibility to search for metadata matching + one or more values, one or more substrings, or a range of numeric values. ++ The denoise method "flatten" was made faster and more effective. ++ New: Select Area Copy: select a hairy or ragged edge with fine control. ++ New: Select Area Find Gap: find the gap in a hand-drawn area outline. ++ Manage Albums: copy and paste from any gallery into an Album gallery using + parallel Fotoxx sessions (makes album construction and editing easier). ++ New user option: set the main window background color. ++ Bugfix: crash when saving a select area at image bottom edge to a file. + +2016 Jun 08 v.16.06.1 ++ Translation updates for Spanish and Catalan. + 2016 Jun 01 v.16.06 + Many popup tips were added to dialogs to improve ease of use. + Edit Metadata and Edit Geotags were integrated for better ease of use. diff -Nru fotoxx-16.06/doc/changelog~ fotoxx-16.07/doc/changelog~ --- fotoxx-16.06/doc/changelog~ 1970-01-01 00:00:00.000000000 +0000 +++ fotoxx-16.07/doc/changelog~ 2016-07-01 10:19:38.000000000 +0000 @@ -0,0 +1,262 @@ +Fotoxx Change Log http://www.kornelix.net +================= + +2016 Jun 01 v.16.06 ++ Many popup tips were added to dialogs to improve ease of use. ++ Edit Metadata and Edit Geotags were integrated for better ease of use. ++ Edit Any Metadata: easier to edit items not included in the pick-list. ++ Adjust HSL: improved output quality, more precise user control of output. ++ Image Search: finding images with no data (e.g. no tags) was simplified. ++ Image Search: search for images from specific locations was simplified. ++ Several functions were made easier to process multiple image files in gallery + view mode: View and Edit Metadata, Rename, Copy/Move, Delete/Trash, Upright. ++ New in image and thumbnail popup menus: jump to image map location. ++ Paint/Clone: undo memory for oldest edits is recovered as needed for new edits. ++ Unbend: made easier to use by including icons in the dialog box. ++ Cartoon: small improvement in algorithm, small speedup. ++ Bugfix: Favorites > Previous Image: crash if initiated from Gallery View. ++ Bugfix: Map search range was increasingly inaccurate for higher latitudes. ++ Bugfix: Custom favorites menu can lose icons if an entry is deleted. ++ Bugfix: Slide Show: custom image settings (zoom target, transition type) + were sometimes lost if underlying album was edited or rearranged. + +2016 Apr 20 v.16.05.1 ++ Portuguese language updated. ++ Bugfix: crash if Trim/Rotate initiated from the image popup menu. + +2016 Apr 19 v.16.05 ++ A new image location map was implemented using OpenStreetMap. This has + superior functionality, but depends on having a fast and reliable internet + connection. The old method (using large local map files) can still be used + and may be preferable for custom maps. ++ New: Selective Rescale: scale image down, leaving selected areas unchanged. + This can be used to increase the relative size of the area of interest. ++ Gallery top panel has more information about current album or search view. ++ Font and map marker sizes are adjustable for monitor size and DPI. ++ Bugfix: no warning was given when a gallery thumbnail was opened and the + previous file had unsaved modifications which were silently discarded. ++ Bugfix: minor memory leak in Manage Albums. + +2016 Apr 13 v.16.04.1 ++ Bugfix: saving an otherwise unmodified file as a new type (e.g. .tif to .jpg) + could produce a duplicate of the input file with the wrong file type + (e.g. a .tif file with a .jpg extension). + +2016 Apr 01 v.16.04 ++ Initial file indexing was made faster by running metadata extraction and + thumbnail creation in parallel. Speedup: 11% for 7200 rpm disk, 60% for SSD. ++ New image sharpen method: median difference: like unsharp mask, less halos. ++ New slide show transitions: spiral, french door. ++ Bugfix: crash in panorama "flatten" function if image is too large. ++ Bugfix: failure of Add Lines function in rare cases (arcsin(1.000000x)). ++ Workaround: If an image file that is used in albums is renamed or moved, the + album image goes missing. There is no way to fix this, but now a report of + the missing files is shown before they are purged from the album. If files + are renamed or moved using Batch Convert, then albums are correctly updated. + +2016 Mar 01 v.16.03 ++ New: Blur Background: select one or more areas (foreground) that remain sharp + while the remaining areas (background) are blurred, optionally in proportion + to distance from foreground. Also useful for the classic Tilt-Shift effect. ++ New: Add Transparency: based on brightness, a chosen color, or the inverse. ++ Edit Metadata: Editing a series of images that need some of the same metadata + was made faster and easier with a button to recall previous data. ++ The image size limit for most edit functions was doubled to 250 megapixels + (not realistic for computers having less than 16 GB main memory). ++ Select Area: area edge distance calculation was made 2-3x faster. ++ Select Area: copy/paste retains both transparency and edge distance data. ++ Calibrate Printer Colors: the chart and the procedure were revised, and this + means you have to perform the calibration again (my apologies for this). ++ Bugfix: Mashup: warping overlay images no longer leaves black margins where + an image was pulled inward from the edge. + +2016 Feb 05 v.16.02.1 ++ Translation updates for Portuguese. ++ Bugfix: Resize: locking width/height ratio did not always work. ++ Bugfix: Slide Show startup sometimes failed. ++ Bugfix: If an album contains the same image file two or more times, stepping + sequentially through the images loops from the Nth instance back to the first. + +2016 Feb 01 v.16.02 ++ New Effects > Cartoon: convert a photo into a cartoon-like drawing. ++ Add Text and Add Lines now work better with images having transparent areas. ++ Paint/Clone: optionally paint over transparent areas, instantly or gradually. ++ Brasero was replaced by growisofs for writing image files to DVD/BlueRay disc. + (growisofs underlies Brasero, K3b, and most other disc burning utilities). ++ Edit Any Metadata: UI improvement to better handle long text strings. ++ Batch Change Metadata: UI improvement to better handle long text strings. ++ New batch function: select image files by clicking thumbnails, output a file + with a list of the selected files. Useful to feed shell scripts or other apps. ++ Function key changes: F10 for full screen with menu and panel, F11 without. ++ Batch Convert: overlay images (e.g. credit lines) can be sized for a constant + screen display size, regardless of image size or aspect ratio. ++ When viewing images sequentially using the [prev/next] button or keyboard + arrow keys, adjacent directories can be spanned without user navigation. ++ An album can be opened from the command line: $ fotoxx -album ++ Bugfix: Retouch Combo: reset button did not reset everything. ++ Bugfix: Panorama: "file color" button caused image misalignment or crash. + +2016 Jan 06 v.16.01.1 ++ Bugfix: Search Image by tags: uppercase/lowercase failure. ++ Translation updates for Spanish, Catalan, Italian, Portuguese. + +2016 Jan 01 v.16.01 ++ Edit Any Metadata and Batch Add/Change Metadata: faster/easier UI: mouse + point and click to select metadata items from a list of most likely items. ++ Panorama: a manual alignment option was added for images with no clear + features in the overlap area that can be used for auto-alignment. ++ Batch Convert: add an overlay image to output images (e.g. a credit line). ++ Slide Show: minor changes to improve user interface (see User Guide). ++ Image right-shift is now a user option with no more back-and-forth motion. ++ Search Images: new option for text data matching: case-sensitive or not. ++ New user option: default gallery sort: file name, file mod date, photo date. ++ A new function for color saturation was added (separate from Retouch Combo). ++ Bugfix: Search Images for metadata was including some non-matching images. ++ Bugifx: possible crash in Select Area if 'extend to corner' is active. + +2015 Dec 20 v.15.12.1 ++ Bugfix: Retouch Combo: GUI lockup in Linux Mint 17.3 (Ubuntu not affected). + +2015 Dec 01 v.15.12 ++ Adjust HSL menu: better control of the color range to select and adjust. ++ Fix Perspective: new option to automatically trim using the corner markers. ++ Trim/Rotate: new option: level a slanted image via EXIF RollAngle if present. ++ Keyboard Shortcuts: list all existing shortcuts in a popup window. + A button is available to start a dialog to add or revise shortcuts. ++ Metadata short report: user can specify extra items to include in the report. ++ New: Metadata batch report - list selected metadata for selected image files. ++ File Save - New File Version: this function can now have a keyboard shortcut. ++ Maps: red-dot locations are consolidated only for separations < 100 meters. + Previously location names were used, but this is sometimes too broad. ++ Maps: custom user maps are now separated from standard maps. + This prevents losing them if the fotoxx-maps package is re-installed. ++ TIFF files are now saved without compression. The file size may be slightly + greater or less, but the processing time is reduced 90%. ++ Slide Show: new transition: image turns like a book page to reveal next image. ++ Bugfix: the Upright function would not step to the next image. ++ Bugfix: PT Panorama was broken due to an interface change in Panorama Tools. ++ Bugfix: possible crash when leveling an image by dragging the image edge. ++ Bugfix: possible crash if a select area is abandoned with nothing selected. + +2015 Nov 08 v.15.11.1 ++ Bugfix: Rename failed to automatically open the next following file. ++ Translation updates: Spanish, Catalan, Portuguese, Italian. + +2015 Nov 01 v.15.11 ++ Folders in gallery pages show contained sub-folder and image file counts. ++ Pattern: pattern can imprint target image without changing image colors. ++ Adjust HSL: the amount of color change is proportional to the match with + a selected target color, and this match range is adjustable. ++ Batch Convert: more flexibility in the formatting of output file names. ++ New: Spherical image projection with variable radius of curvature. ++ Trim/Rotate: if an image is leveled using mouse drag, the trim rectangle + is automatically maximized, removing the need to do this manually. ++ If an edit dialog is started and left/right image margins are present, + the image is pushed to the right side so the dialog can be positioned + over the expanded left margin and menu panel, to cover less image area. + This position is saved and restored the next time the dialog is used. ++ Saving to file type .bmp was removed, since all metadata is lost. ++ A new transition type was added to Slide Show: collapsing sphere. ++ Six other minor improvements and bug fixes. + +2015 Oct 09 v.15.10 ++ New: Batch Scripts: Perform a series of image edits while recording all + menu and dialog inputs into a script file. Execute the script file to + apply the same edits to multiple images selected from gallery pages. ++ Calibrate Printer: improved for slightly more accurate colors. ++ Edit curves: The capture distance for mouse selection of nodes to drag + is adjustable (increase default value to make touch pads easier to use). ++ Batch Add/Change Metadata: a pick-list for commonly used tags was added. ++ Geographic maps: mouse distance to trigger a popup location name was + made independent of map scale (10 pixels instead of 10 km). ++ Bugfix: gallery file selection: clicking on a file name in the list of + selected files was sometimes inaccurate and selected the wrong file. ++ Bugfix: setting geotags by clicking on map locations did not allow an + initial location to be revised by clicking somewhere else. + +2015 Sep 03 v.15.09.2 ++ Bugfix: infinite loop when saving RAW file to JPG/TIF/PNG. ++ Bugfix: Open of TIF file with 8 bits/color showed 0 or 16 in top panel. + +2015 Sep 01 v.15.09 ++ Program code was revised for latest GTK API breakage (Ubuntu 15.10). ++ The font size used in menus and dialogs can now be set by the user. ++ Panorama: about 20% faster (3 x 7 megapixels, 2 GHz CPU --> 18 secs). ++ Paint Transparency: response lag with large images was eliminated. ++ Area Copy and Paste was reinstated (easier than file save and open). ++ Use of alpha channel for vacated margins extended to all bend functions. ++ New: Calibrate Printer: tool to improve image print color accuracy. ++ Bugfix: crash in Flatten Book Page while marking page edges. ++ Bugfix: Slide Show fails if translated transition names contain blanks. ++ Bugfux: Leverage Edit: use of contrast as edit lever was broken. ++ Seven other minor improvements and fixes. + +2015 Aug 01 v.15.08 ++ The brightness distribution for an image can be reshaped by using slider + controls and watching the image and/or graph. The distribution can be + clipped at either end, or stretched or flattened in different zones. ++ Editing and searching image tags have an additional tool to deal with a + huge list of defined tags. The tag pick-list can be all tags, or only + those for a category chosen from a category pick-list. ++ Select Area: open/save area cutout as PNG file with transparency data. ++ Image edits: image transparency data is now utilized and retained. ++ Paint Transparency: new: paint [semi-] transparent areas on an image. ++ Mashup: transparency data in overlay images is utilized and editable. ++ New batch tool: add/change/delete any metadata for selected image files. ++ Add Text: quickly add same text at same position to multiple image files. ++ Gallery thumbnail memory cache is self-limiting to 1 GB main memory. ++ Several small improvements in the user interface and error messages. ++ Bugfix: gallery sort by file modification date used incorrect date/time. ++ Bugfix: possible crash in leverage edits if edit function cancelled. ++ Bugfix: Select Area: draw/replace area edge did not work properly for + areas selected by mouse painting or areas previously finished. + +2015 Jul 01 v.15.07 ++ Menus were reorganized. User Guide was revised to match. ++ User Guide was audited and many minor errors were corrected. ++ Index Image Files: user interface and messages were rationalized. ++ Undo/Redo button: middle mouse button produces a popup list of edits + done to the current image. Go back to any done or undone edit step. ++ Edit Metadata and Search Images: working with thousands of unorganized + image tags was made much more practical: type-in tags or use pick-list. ++ New batch tool: convert tags for all image files using a from-to list. ++ New batch tool: select images (click thumbnails) to trash or delete. ++ New batch tool: find and upright all image files rotated 90 degrees. ++ Gallery navigation panel: parent directories are buttons instead of text. ++ Effects > Pencil Sketch: set any desired foreground or background color. ++ RAW image noise measure was improved (gives slightly lower values). ++ Select Area: new buttons to quickly change line color while drawing. ++ Slide Show: zoom-out from a chosen image spot (compliment of zoom-in). ++ New user option: start session with last gallery now works for albums. ++ 4 minor bug fixes and 10 user interface improvements. + +2015 Jun 01 v.15.06 ++ New: HSL Color: change the color of selected image areas using an HSL + color chooser. Blend with original image to preserve existing variation. ++ Threshold Denoise algorithm was improved. ++ Cycle Desktop (background image): Runs in the background. Add to the + startup list to get a new desktop image each logon or time period. ++ New: Set Desktop Image: Set the desktop background image from Fotoxx. ++ New slide show transition: Image falls over to reveal the next image. ++ Mashup: UI improved for adding text and lines/arrows to a layout. ++ Trim/Rotate now includes an [auto] button to remove the black image + margins left by composite or warp functions. Auto-Trim menu is gone. ++ KB shortcuts includes a button to report all the standard shortcuts. ++ Multiple UI and help text improvements. ++ Three minor bug fixes. + +2015 May 01 v.15.05 ++ New: Smart Denoise: measure noise and use the result to reduce noise + with minimal loss of subtle detail. Also measure camera sensor noise. ++ The function Newest Images was revised to show a gallery of the newest + 1000 files, based on either EXIF photo date or file modification date. ++ Zonal Flatten: algorithm improvement and stronger deband controls. ++ New: Cycle Background: cycle desktop background image via Fotoxx album. ++ Bugfix: possible crash in some edit functions if [done] button pressed + very quickly after adjusting a dialog control or edit curve. ++ Bugfix: Edit Metadata: tags with special characters were sometimes + getting split into two tags. ++ Bugfix: Color Mode: color negative: it was sometimes possible to + create invalid RGB colors which affected later color functions. + + diff -Nru fotoxx-16.06/doc/README-en fotoxx-16.07/doc/README-en --- fotoxx-16.06/doc/README-en 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/doc/README-en 2016-07-01 10:19:38.000000000 +0000 @@ -7,10 +7,10 @@ libpng-*-dev png-8/16 image files liblcms-*-dev color spaces (sRGB/Adobe-RGB) libchamplain-gtk-*-dev geomapping library + libraw RAW file conversion library At run time the following packages are also needed: exiftool read/write metadata (EXIF etc.) - dcraw convert camera RAW files to TIFF xdg-utils LSB standard Linux utilities binutils GNU binary utilities diff -Nru fotoxx-16.06/f.albums.cc fotoxx-16.07/f.albums.cc --- fotoxx-16.06/f.albums.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.albums.cc 2016-07-01 10:19:38.000000000 +0000 @@ -40,8 +40,9 @@ conv_albums convert albums when files are moved m_copyto_cache copy clicked file or current file to the file cache file_addtocache add image file to file cache - file_removefromcache get image file from cache - file_clearcache clear image file cache + clear_filecache clear image file cache + load_filecache load file cache from disk file + save_filecache save file cache to disk file m_slideshow display album images in sequence with artsy transitions m_setdesktop set desktop wallpaper image from Fotoxx current image m_cycledesktop cycle desktop wallpaper images from a Fotoxx album @@ -61,15 +62,16 @@ { char *current_album = 0; // album file name char *filez; - zdialog *zdalbum = 0; + zdialog *zdmanagealbums = 0; GdkDisplay *display; PIXBUF *pixbuf; GdkCursor *cursor; GdkWindow *Ggdkwin; int dragNth; char albums_copy[200]; - char **filecache; // cache for moving image files around - int Nfilecache; // count of image files in cache + char **filecache = 0; // cache for moving image files around + int Nfilecache = 0; // count of image files in cache + char cachebuff[XFCC]; // disk cache IO buffer }; void album_new(); // start a new album @@ -77,6 +79,10 @@ void album_cuttocache(int posn, int addcache); // remove from album, add to image cache void album_pastecache(int posn, int clear); // paste image cache into current album +void clear_filecache(); // clear image file cache +void load_filecache(); // load image file cache from disk +void save_filecache(); // save image file cache to disk + void m_manage_albums(GtkWidget *, cchar *) { @@ -89,7 +95,7 @@ cchar *popupmess2 = ZTX("Drag album thumbnail to new position."); F1_help_topic = "manage_albums"; - if (zdalbum) return; // already active + if (zdmanagealbums) return; // already active if (checkpend("all")) return; // check nothing pending Fblock = 1; @@ -116,6 +122,7 @@ ***/ zdialog *zd = zdialog_new(ZTX("Manage Albums"),Mwin,Bdone,null); + zdmanagealbums = zd; zdialog_add_widget(zd,"hbox","hb1","dialog",0,"space=3"); zdialog_add_widget(zd,"vbox","vb1","hb1",0,"homog|space=5"); @@ -142,9 +149,7 @@ zdialog_add_widget(zd,"hbox","hbpopup2","dialog"); zdialog_add_widget(zd,"label","labpopup2","hbpopup2",popupmess2,"space=5"); - zdialog_run(zd,manage_albums_dialog_event,"save"); - - zdalbum = zd; + zdialog_run(zd,manage_albums_dialog_event,"save"); // run dialog return; } @@ -160,13 +165,13 @@ cchar *ncacheFormat = ZTX("Image cache has %d images"); cchar *dumpmess = ZTX("cache added to empty album"); char *cfile, ncachetext[60]; - + if (strmatch(event,"enter")) zd->zstat = 1; // [done] if (strmatch(event,"escape")) zd->zstat = 1; // escape = done 15.07 if (zd->zstat) { // [done] or [x] zdialog_free(zd); - zdalbum = 0; + zdmanagealbums = 0; Fblock = 0; return 1; } @@ -195,7 +200,7 @@ if (current_album) { album_show(); // restore album gallery - if (navi::nfiles == 0) { // album is empty + if (navi::Nfiles == 0) { // album is empty album_pastecache(0,1); // insert cache into album album_show(); zmessageACK(Mwin,dumpmess); @@ -206,7 +211,7 @@ } if (strmatch(event,"clear")) // clear image cache - file_clearcache(); + clear_filecache(); if (strmatch(event,"delete")) // choose album to delete { @@ -231,6 +236,7 @@ zfree(cfile); } + load_filecache(); // get image file cache from disk 16.07 snprintf(ncachetext,60,ncacheFormat,Nfilecache); // update cache count 15.11 zdialog_stuff(zd,"labNcache",ncachetext); @@ -247,6 +253,7 @@ int album_new_dialog_event(zdialog *zd, cchar *event); char cachelab[100]; + load_filecache(); // load image file cache from disk 16.07 snprintf(cachelab,100,ZTX("fill from image cache (%d images)"),Nfilecache); /*** @@ -342,7 +349,7 @@ if (Fgallery) // fill album from gallery { - if (navi::nimages == 0) { + if (navi::Nimages == 0) { zmessageACK(Mwin,ZTX("gallery is empty")); return 1; } @@ -353,7 +360,7 @@ return 1; } - for (Nth = 0; Nth < navi::nfiles; Nth++) // add gallery images to album file + for (Nth = 0; Nth < navi::Nfiles; Nth++) // add gallery images to album file { pp = gallery(0,"find",Nth); if (! pp) break; @@ -387,12 +394,13 @@ selfiles = gallery_getfiles(filecache); // get cached files + new files if any if (! selfiles) return; // nothing selected - file_clearcache(); // replace file cache + clear_filecache(); // replace file cache filecache = selfiles; for (ii = 0; selfiles[ii]; ii++); // count entries Nfilecache = ii; + save_filecache(); // update file cache file 16.07 return; } @@ -402,7 +410,7 @@ using namespace albums; int ii; - char *pp, cachebuff[XFCC]; + char *pp; FILE *fidr, *fidw; if (! current_album) return; @@ -449,10 +457,12 @@ using namespace albums; int ii, jj; - char *pp, cachebuff[XFCC]; + char *pp; FILE *fidr, *fidw; if (! current_album) return; + + load_filecache(); // load image cache from disk 16.07 if (Nfilecache == 0) return; snprintf(albums_copy,199,"%s/albums_copy",get_zuserdir()); // albums copy file @@ -485,7 +495,7 @@ fclose(fidw); rename(albums_copy,current_album); // replace album file with copy - if (clear) file_clearcache(); + if (clear) clear_filecache(); return; } @@ -495,7 +505,7 @@ using namespace albums; int ii; - char *pp, cachebuff[XFCC]; + char *pp; FILE *fidr, *fidw; if (! current_album) return; @@ -594,7 +604,7 @@ using namespace albums; int ii, pos1, pos2; - char *pp, buff[XFCC]; + char *pp; FILE *fidr, *fidw; if (! current_album) return; @@ -634,7 +644,7 @@ for (ii = 0; ; ii++) // loop album member files { - pp = fgets_trim(buff,XFCC,fidr); // album member file + pp = fgets_trim(cachebuff,XFCC,fidr); // album member file if (! pp) break; if (ii == pos1) continue; // skip file position to move from @@ -781,8 +791,7 @@ GtkWidget *popwin = 0; FTYPE ftype; - char *pp, cachebuff[XFCC]; - char *albumname, poptitle[100]; + char *pp, *albumname, poptitle[100]; FILE *fidr, *fidw; if (! current_album) return; @@ -850,7 +859,7 @@ // inputs: a list of old filespecs and corresponding new filespecs. // used by batch_convert(). -void conv_albums(char **oldfiles, char **newfiles, int Nfiles) +void conv_albums(char **oldfiles, char **newfiles, int nfiles) { char *pp, *albumnames[999]; char buffr[XFCC], buffw[XFCC]; @@ -888,10 +897,10 @@ while ((pp = fgets_trim(buffr,XFCC,fidr))) // read all album recs = image files { - for (jj = 0; jj < Nfiles; jj++) // list of renamed/moved files + for (jj = 0; jj < nfiles; jj++) // list of renamed/moved files if (strmatch(buffr,oldfiles[jj])) break; // includes this file? - if (jj == Nfiles) strcpy(buffw,buffr); // no, copy old filespec + if (jj == nfiles) strcpy(buffw,buffr); // no, copy old filespec else strcpy(buffw,newfiles[jj]); // yes, copy corresp. new filespec jj = fprintf(fidw,"%s\n",buffw); // write to output file @@ -899,9 +908,10 @@ } err = fclose(fidr); + if (err) goto error; err = fclose(fidw); - fidr = fidw = 0; if (err) goto error; + fidr = fidw = 0; err = rename(tempfile,albumfile); // replace album with temp file *tempfile = 0; if (err) goto error; @@ -956,6 +966,8 @@ int cc, cc1, cc2; char **newcache; + load_filecache(); // load image file cache from disk 16.07 + cc = sizeof(char *); cc1 = Nfilecache * cc; // current cache size cc2 = cc1 + cc; // new cache size, 1 more @@ -968,56 +980,98 @@ filecache = newcache; // new bigger cache filecache[Nfilecache] = zstrdup(file); // add new image file at the end - Nfilecache++; + + save_filecache(); // update imae file cache file 16.07 return Nfilecache; } -// return first image file in cache and remove from cache -// file is subject for zfree() -// returns 0 if cache empty +// clear the image file cache -char * file_removefromcache() +void clear_filecache() // 16.07 { using namespace albums; - int cc, cc1, cc2; - char **newcache; - char *file; + if (! Nfilecache) return; + for (int ii = 0; ii < Nfilecache; ii++) // bugfix 16.05 + zfree(filecache[ii]); + zfree(filecache); + filecache = 0; + Nfilecache = 0; + save_filecache(); // update imae file cache file 16.07 + return; +} - if (! Nfilecache) return 0; // cache empty - file = zstrdup(filecache[0]); // get file to return - cc = sizeof(char *); - cc1 = Nfilecache * cc; // current cache size - cc2 = cc1 - cc; // new cache size, 1 less +// load image file cache from disk - if (cc2) { - newcache = (char **) zmalloc(cc2); // new cache, 1 less file than before - memcpy(newcache,filecache+cc,cc2); // copy old cache - 1st file to new cache - zfree(filecache); // and free old cache - filecache = newcache; +void load_filecache() // 16.07 +{ + using namespace albums; + + FILE *fid; + char *pp; + int ii, cc; + + if (Nfilecache) { + for (int ii = 0; ii < Nfilecache; ii++) // clear memory file cache + zfree(filecache[ii]); + zfree(filecache); + } + filecache = 0; + Nfilecache = 0; + + fid = fopen(filecachefile,"r"); // open image cache file + if (! fid) return; + + ii = 0; + while ((pp = fgets_trim(cachebuff,XFCC,fid))) ii++; // count files in image cache + fclose(fid); + if (! ii) return; + + cc = ii * sizeof(char *); // allocate memory + filecache = (char **) zmalloc(cc); + + fid = fopen(filecachefile,"r"); // open image cache file + if (! fid) zappcrash(strerror(errno)); + + ii = 0; + while ((pp = fgets_trim(cachebuff,XFCC,fid))) { // read all recs = image files + filecache[ii] = zstrdup(pp); // add to file cache in memory + ii++; } - else filecache = 0; + fclose(fid); + Nfilecache = ii; - Nfilecache--; - return file; + if (zdmanagealbums) zdialog_send_event(zdmanagealbums,"focus"); // update image cache count 16.07 + return; } -// clear the image file cache +// save image file cache to disk -void file_clearcache() +void save_filecache() // 16.07 { using namespace albums; - if (! Nfilecache) return; - for (int ii = 0; ii < Nfilecache; ii++) // bugfix 16.05 - zfree(filecache[ii]); - zfree(filecache); - filecache = 0; - Nfilecache = 0; + FILE *fid; + int ii, jj = 0; + + fid = fopen(filecachefile,"w"); // open image cache file + if (! fid) { + zmessageACK(Mwin,strerror(errno)); + return; + } + + for (ii = 0; ii < Nfilecache; ii++) { + jj = fprintf(fid,"%s\n",filecache[ii]); // write to output file + if (jj < 0) break; + } + fclose(fid); + if (jj < 0) zmessageACK(Mwin,strerror(errno)); + + if (zdmanagealbums) zdialog_send_event(zdmanagealbums,"focus"); // update image cache count 16.07 return; } @@ -1086,6 +1140,7 @@ int ss_Flast = -1; // last file shown int ss_blank = 0; // flag, user pressed B key (blank screen) cairo_t *ss_cr; // cairo context +int ss_nwt; // threads for transition funcs 16.07 #define SSNF 21 // slide show transition types #define SSMAXI 2000 // max. no. slide show images @@ -1178,6 +1233,8 @@ F1_help_topic = "slide_show"; if (checkpend("all")) return; // check nothing pending + + ss_nwt = NWT - 1; // transition func threads 16.07 /*** ________________________________________________________ @@ -2239,8 +2296,19 @@ int zoomtype; ii = ss_Fcurrent; // current image file in album + + if (strmatch(ss_state,"end")) { // end of image list 16.07 + if (ss_replay) { + ii = ss_Fcurrent = 0; // if auto replay, back to first image + ss_state = "show"; + } + else { + ii = ss_Fcurrent = ss_Flast; // else stay on last image shown + zmessage_post(Mwin,3,"That's all, folks!"); + } + } - if (ss_escape) { // end slide show mode + if (ss_escape || strmatch(ss_state,"end")) { // end slide show mode 16.07 if (ss_pxbold) g_object_unref(ss_pxbold); // free memory if (ss_pxbnew) g_object_unref(ss_pxbnew); ss_pxbold = ss_pxbnew = 0; @@ -2249,10 +2317,10 @@ ss_fullscreen = 0; Fslideshow = 0; // reset flags Fblowup = 0; - ss_escape = 0; file = ss_imagetab[ii].imagefile; // last file shown --> current file 15.04 f_open(file); - m_slideshow(0,0); // return to slide show dialog + if (ss_escape) m_slideshow(0,0); // return to slide show dialog + ss_escape = 0; return 0; // stops the timer } @@ -2360,13 +2428,13 @@ if (! ss_fullscreen) // if not full screen mode, 16.01 gtk_window_set_title(MWIN,ss_newfile); // put filename in window title bar - if (strstr("arrow",ss_state)) { // show immediately + if (strmatch("arrow",ss_state)) { // show immediately ss_instant(); ss_state = "pause"; return 1; } - if (strstr("shownow",ss_state)) { // show immediately 16.01 + if (strmatch("shownow",ss_state)) { // show immediately 16.01 ss_state = "instant"; return 1; } @@ -2421,13 +2489,8 @@ if (get_seconds() < ss_timer) return 1; // wait for my time ss_Flast = ss_Fcurrent; ss_Fcurrent++; - - if (ss_Fcurrent == ss_Nfiles) { - ss_Fcurrent = 0; - if (! ss_replay) ss_escape = 1; - } - - ss_state = "show"; + if (ss_Fcurrent < ss_Nfiles) ss_state = "show"; + else ss_state = "end"; // last image file shown 16.07 return 1; } @@ -3639,12 +3702,12 @@ memset(pixels3,0,ss_hh * rsmix); - for (ii = 0; ii < NWT; ii++) { // start worker threads + for (ii = 0; ii < ss_nwt; ii++) { // start worker threads tbusy[ii] = 1; start_detached_thread(ss_rotate_thread1,&Nval[ii]); } - for (ii = 0; ii < NWT; ii++) + for (ii = 0; ii < ss_nwt; ii++) while(tbusy[ii]) zsleep(0.001); ss_cr = gdk_cairo_create(gdkwin); // create and destroy each paint 15.02 @@ -3673,12 +3736,12 @@ memset(pixels3,0,ss_hh * rsmix); - for (ii = 0; ii < NWT; ii++) { // start worker threads + for (ii = 0; ii < ss_nwt; ii++) { // start worker threads tbusy[ii] = 1; start_detached_thread(ss_rotate_thread2,&Nval[ii]); } - for (ii = 0; ii < NWT; ii++) + for (ii = 0; ii < ss_nwt; ii++) while(tbusy[ii]) zsleep(0.001); ss_cr = gdk_cairo_create(gdkwin); @@ -3701,7 +3764,7 @@ uint8 *pix1, *pix3; float Rx, Ry; - for (px = cx1 + index; px < cx2; px += NWT) + for (px = cx1 + index; px < cx2; px += ss_nwt) { Rx = 1.0 * (px - cx1) / (cx2 - cx1); ylo = cy1 + Rx * (cy2 - cy1); @@ -3733,7 +3796,7 @@ uint8 *pix2, *pix3; float Rx, Ry; - for (px = cx2 + index; px < cx1; px += NWT) + for (px = cx2 + index; px < cx1; px += ss_nwt) { Rx = 1.0 * (px - cx2) / (cx1 - cx2); ylo = cy2 + Rx * (cy1 - cy2); @@ -3797,12 +3860,12 @@ cx2 = ss_ww - cx1; cy2 = cy1; - for (ii = 0; ii < NWT; ii++) { // start worker threads + for (ii = 0; ii < ss_nwt; ii++) { // start worker threads tbusy[ii] = 1; // make combined image start_detached_thread(ss_fallover_thread,&Nval[ii]); } - for (ii = 0; ii < NWT; ii++) // wait for completion + for (ii = 0; ii < ss_nwt; ii++) // wait for completion while(tbusy[ii]) zsleep(0.01); ss_cr = gdk_cairo_create(gdkwin); // create and destroy each paint @@ -3826,7 +3889,7 @@ float R; uint8 *pix1, *pix3; - for (py = index; py < ss_hh; py += NWT) // py = 0 ... ss_hh + for (py = index; py < ss_hh; py += ss_nwt) // py = 0 ... ss_hh { px = 0; // px = 0 ... ss_ww, new image npix = ss_ww; @@ -3921,12 +3984,12 @@ pxbnew = gdk_pixbuf_copy(ss_pxbnew); // new image at full size pixels3 = gdk_pixbuf_get_pixels(pxbnew); - for (int ii = 0; ii < NWT; ii++) { // start worker threads + for (int ii = 0; ii < ss_nwt; ii++) { // start worker threads tbusy[ii] = 1; // make combined image start_detached_thread(ss_spheroid_thread,&Nval[ii]); } - for (int ii = 0; ii < NWT; ii++) // wait for completion + for (int ii = 0; ii < ss_nwt; ii++) // wait for completion while(tbusy[ii]) zsleep(0.001); ss_cr = gdk_cairo_create(gdkwin); @@ -3969,7 +4032,7 @@ else s2mem[ii] = D / PI * asinf(T) / s1; } - for (py3 = index; py3 < ss_hh; py3 += NWT) // loop output pixels + for (py3 = index; py3 < ss_hh; py3 += ss_nwt) // loop output pixels for (px3 = 0; px3 < ss_ww; px3++) { /*** @@ -4130,12 +4193,12 @@ pixels1 = gdk_pixbuf_get_pixels(ss_pxbold); // old image pixels3 = gdk_pixbuf_get_pixels(ss_pxbmix); - for (int ii = 0; ii < NWT; ii++) { // start worker threads + for (int ii = 0; ii < ss_nwt; ii++) { // start worker threads tbusy[ii] = 1; // make combined image start_detached_thread(ss_frenchdoor_thread,&Nval[ii]); } - for (int ii = 0; ii < NWT; ii++) // wait for completion + for (int ii = 0; ii < ss_nwt; ii++) // wait for completion while(tbusy[ii]) { zmainloop(10); } ss_cr = gdk_cairo_create(gdkwin); @@ -4179,7 +4242,7 @@ int px1, py1, px3, py3, px3L = -1; float F; - for (px1 = index; px1 < ww2; px1 += NWT) // 0 >> ww2 + for (px1 = index; px1 < ww2; px1 += ss_nwt) // 0 >> ww2 { px3 = (1 - R) * px1; // 0 >> ww2 - X if (px3 == px3L) continue; @@ -4195,7 +4258,7 @@ } } - for (px1 = ww2 + index; px1 < ss_ww; px1 += NWT) // ww2 >> ss_ww + for (px1 = ww2 + index; px1 < ss_ww; px1 += ss_nwt) // ww2 >> ss_ww { px3 = R * ss_ww + (1 - R) * px1; // ww2 + X >> ss_ww if (px3 == px3L) continue; @@ -4488,7 +4551,7 @@ namespace cycledesktop_names { - VOL int Nfiles = 0; // file count + VOL int nfiles = 0; // file count char **filelist = 0; // file list from album } @@ -4526,23 +4589,23 @@ if (! file) break; ftype = image_file_type(file); // screen out deleted files if (ftype != IMAGE) continue; - Nfiles++; // count the files + nfiles++; // count the files } fclose(fid); - if (! Nfiles) { + if (! nfiles) { printz("empty album \n"); exit(1); } - filelist = (char **) zmalloc(Nfiles * sizeof(char *)); + filelist = (char **) zmalloc(nfiles * sizeof(char *)); fid = fopen(albumfile,"r"); // open album file again ii = 0; - while (ii < Nfiles) { // read all image file names + while (ii < nfiles) { // read all image file names file = fgets_trim(buff,XFCC,fid); if (! file) break; ftype = image_file_type(file); // screen out deleted files @@ -4553,7 +4616,7 @@ fclose(fid); - if (ii != Nfiles) zappcrash("ii: %d Nfiles: %d",ii,Nfiles); + if (ii != nfiles) zappcrash("ii: %d nfiles: %d",ii,nfiles); if (! cycledesktop_album || ! strmatch(album,cycledesktop_album)) // new album cycledesktop_index = 0; // reset file index @@ -4581,7 +4644,7 @@ int err; load_params(); // load parameters - if (cycledesktop_index >= Nfiles) cycledesktop_index = 0; // last image file, back to first + if (cycledesktop_index >= nfiles) cycledesktop_index = 0; // last image file, back to first file = filelist[cycledesktop_index]; // next image file: /.../filename.jpg cycledesktop_index++; // update index save_params(); // save parameters diff -Nru fotoxx-16.06/f.area.cc fotoxx-16.07/f.area.cc --- fotoxx-16.06/f.area.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.area.cc 2016-07-01 10:19:38.000000000 +0000 @@ -42,6 +42,8 @@ m_select select area dialog sa_finish finish selected areas sa_unfinish unfinish selected areas + m_select_find_gap find a gap in an area outline // 16.07 + m_select_hairy hairy edge select function // 16.07 m_select_show show area outlines m_select_hide hide area outlines m_select_enable enable area @@ -57,10 +59,9 @@ sa_unselect delete area callable function sa_edgecalc calculate area edge distances sa_edgecreep adjust area edges +-1 pixel - m_select_copy copy area for later paste - m_select_paste paste area into image m_select_save save area to PNG file with alpha channel m_select_open open PNG file and make a select area + m_select_paste paste area into image select_paste paste area in memory onto image *********************************************************************************/ @@ -1250,9 +1251,6 @@ rad2 = rx * rx + ry * ry; if (rad2 > srange2) continue; - ///if (select && sa_firewall && sa_pixmap[ii] && rad2 > mrad2) // aleady selected, firewall on, 16.06 - /// continue; // and outside mouse radius - pix1 = PXBpix(Fpxb,npx,npy); // pixel at mouse for (kk = 0; kk < Ntab; kk++) { // compare pixel RGB to mouse colors @@ -1356,60 +1354,69 @@ void sa_finish() // overhauled { void sa_finish_mousefunc(); - int sa_finish_dialog_event(zdialog *, cchar *event); - cchar *fmess = ZTX("Click one time inside each enclosed area \n" // 16.06 - "(possible gaps in the outline will be found). \n" - "Press [Done] when finished. Press F1 for help."); + cchar *fmess = ZTX("Click one time inside each enclosed area. \n" + "Possible gaps in the outline will be found. \n" + "Press F1 for help."); GtkWidget *pwin = zdialog_widget(zdsela,"dialog"); - int cc; + int zstat, cc; if (! sa_stat) return; // no area? if (! sa_validate()) return; // invalid for current image if (sa_mode == mode_image) return; // a whole image area sa_map_pixels(); // find edge pixels - if (! sa_Npixel) return; sa_finish_auto(); // auto-finish mouse-selected areas - sa_show(1); - cc = (sa_maxx-sa_minx) * (sa_maxy-sa_miny); // allocate stack memory + cc = Fpxb->ww * Fpxb->hh; if (sa_stackdirec) zfree(sa_stackdirec); sa_stackdirec = (char *) zmalloc(cc); if (sa_stackii) zfree(sa_stackii); - sa_stackii = (int *) zmalloc(cc * 4); + sa_stackii = (int *) zmalloc(cc * sizeof(int)); sa_maxstack = cc; - sa_fincancel = sa_finOK = sa_finhole = 0; // count areas OK and with holes + sa_fincancel = 0; + sa_Nstack = 0; - sa_finzd = zdialog_new(ZTX("finish area"),pwin,Bdone,Bcancel,null); // dialog for user to click inside + sa_finzd = zdialog_new(ZTX("finish area"),pwin,Bkeep,Bundo,null); // dialog for user to click inside zdialog_add_widget(sa_finzd,"hbox","hbmess","dialog",0,"space=3"); // each enclosed area zdialog_add_widget(sa_finzd,"label","fmess","hbmess",fmess,"space=5"); - zdialog_add_widget(sa_finzd,"hbox","hbcor","dialog"); - zdialog_add_widget(sa_finzd,"vbox","vbcor1","hbcor",0,"space=5"); - zdialog_add_widget(sa_finzd,"vbox","vbcor2","hbcor",0,"space=5"); - zdialog_add_widget(sa_finzd,"vbox","vbcor3","hbcor",0,"space=5"); - zdialog_add_widget(sa_finzd,"label","labcor","vbcor1",ZTX("extend to corner:"),"space=10"); - zdialog_add_widget(sa_finzd,"check","NWcorner","vbcor2"); - zdialog_add_widget(sa_finzd,"check","SWcorner","vbcor2"); - zdialog_add_widget(sa_finzd,"check","NEcorner","vbcor3"); - zdialog_add_widget(sa_finzd,"check","SEcorner","vbcor3"); - - zdialog_add_widget(sa_finzd,"hbox","hbstat","dialog"); - zdialog_add_widget(sa_finzd,"label","labstat","hbstat","status:","space=5"); - zdialog_add_widget(sa_finzd,"label","statmess","hbstat",0); - takeMouse(sa_finish_mousefunc,dragcursor); // connect mouse function - zdialog_run(sa_finzd,sa_finish_dialog_event,"parent"); // run dialog, parallel - zdialog_wait(sa_finzd); - zdialog_free(sa_finzd); // free dialog + zdialog_run(sa_finzd,0,"parent"); // run dialog, wait for completion + zstat = zdialog_wait(sa_finzd); + zdialog_free(sa_finzd); + sa_finzd = 0; + + freeMouse(); // disconnect mouse + if (! sa_stat) return; // area gone? + if (zstat != 1) sa_fincancel = 1; // user cancel + + while (sa_Nstack) zmainloop(); // wait for pixel search to complete + + if (sa_fincancel) { // user cancel + sa_unfinish(); // unmap interior pixels, set edit mode + return; + } + + sa_map_pixels(); // count pixels, map interior pixels + + if (sa_Npixel < 10) { // ignore tiny area + zmessageACK(Mwin,ZTX("found %d pixels"),sa_Npixel); + return; + } + + sa_stat = 3; // area is finished + areanumber++; // next sequential number + sa_calced = sa_blend = 0; // edge calculation is missing + if (zdsela) zdialog_stuff(zdsela,"blendwidth",0); + Fpaint2(); return; } @@ -1418,15 +1425,16 @@ void sa_finish_mousefunc() // overhauled { - void * sa_finish_thread(void *); + void sa_finish_mappix(); - int ii, px, py, crflag = 0; - int npaint; + int ii, px, py; + int npaint, crflag = 0; if (! LMclick) return; LMclick = 0; if (! sa_stat) return; // area gone? + if (sa_Nstack) return; // prior search still busy 16.07 ii = Fpxb->ww * Myclick + Mxclick; // seed pixel from mouse click if (sa_pixmap[ii] == 1) return; // ignore if edge pixel @@ -1435,15 +1443,7 @@ sa_stackdirec[0] = 'a'; // direction = ahead sa_Nstack = 1; // stack count - zdialog_stuff(sa_finzd,"statmess",ZTX("searching")); - - start_detached_thread(sa_finish_thread,0); // start pixel search thread - while (sa_Nstack) zsleep(0.1); // wait for completion - - if (sa_fincancel) { // user cancel - sa_finhole = sa_finOK = 0; - return; - } + sa_finish_mappix(); // do pixel search if (! mwcr) { mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already @@ -1465,22 +1465,13 @@ mwcr = 0; } - if (sa_finhole) { // this area has a hole - zdialog_stuff(sa_finzd,"statmess",ZTX("outline has a gap")); - sa_show(1); // improve visibility - } - else { - zdialog_stuff(sa_finzd,"statmess",ZTX("success")); // all pixels found and mapped - sa_finOK++; - } - return; } -// thread function to map all pixels found within defined edge pixels. +// function to map all pixels found within defined edge pixels. -void * sa_finish_thread(void *) // thread function +void sa_finish_mappix() // 16.07 { int px, py, ii, jj, kk; int ppx, ppy, npx, npy; @@ -1488,8 +1479,6 @@ while (sa_Nstack) // find all pixels outside enclosed area(s) { - if (sa_fincancel) break; // user cancel - kk = sa_Nstack - 1; // get last pixel in stack ii = sa_stackii[kk]; direc = sa_stackdirec[kk]; @@ -1497,12 +1486,6 @@ py = ii / Fpxb->ww; // reconstruct px, py px = ii - Fpxb->ww * py; - if (px < sa_minx || px >= sa_maxx || py < sa_miny || py >= sa_maxy) - { - sa_finhole++; // ran off the edge, seed pixel was - break; // not inside area or area has a hole - } - if (direc == 'x') { // no neighbors left to check sa_Nstack--; continue; @@ -1559,72 +1542,7 @@ } sa_Nstack = 0; // thread is done - return 0; -} - - -// dialog event and completion callback function - -int sa_finish_dialog_event(zdialog *zd, cchar *event) -{ - int ii, cc, zstat; - - if (strmatch(event,"escape")) zd->zstat = 2; // escape = cancel 15.07 - - if (strmatch(event,"NWcorner")) // automatic extend to selected corners - sa_pixmap[0] = 1; // removed 16.01 - - if (strmatch(event,"NEcorner")) { - ii = Fpxb->ww - 1; - sa_pixmap[ii] = 1; - } - - if (strmatch(event,"SEcorner")) { - ii = Fpxb->ww * (Fpxb->hh - 1); - sa_pixmap[ii] = 1; - } - - if (strmatch(event,"SWcorner")) { - ii = Fpxb->ww * Fpxb->hh - 1; - sa_pixmap[ii] = 1; - } - - if (strstr(event,"corner")) { - sa_map_pixels(); // find edge pixels - cc = (sa_maxx-sa_minx) * (sa_maxy-sa_miny); // re-allocate stack memory bugfix 16.01 - if (sa_stackdirec) zfree(sa_stackdirec); // for expanded area - sa_stackdirec = (char *) zmalloc(cc); - if (sa_stackii) zfree(sa_stackii); - sa_stackii = (int *) zmalloc(cc * 4); - sa_maxstack = cc; - } - - zstat = zd->zstat; // wait for completion - if (! zstat) return 0; - - if (zstat != 1) sa_fincancel = 1; // kill thread function - freeMouse(); // disconnect mouse - - if (! sa_stat) return 0; // area gone? - - if (sa_fincancel || sa_finOK == 0 || sa_finhole) { // user cancel or pixel search failure - sa_unfinish(); // unmap interior pixels, set edit mode - return 0; - } - - sa_map_pixels(); // count pixels, map interior pixels - - if (sa_Npixel < 10) { - zmessageACK(Mwin,ZTX("found %d pixels"),sa_Npixel); - return 0; - } - - sa_stat = 3; // area is finished - areanumber++; // next sequential number - sa_calced = sa_blend = 0; // edge calculation is missing - if (zdsela) zdialog_stuff(zdsela,"blendwidth",0); - Fpaint2(); - return 0; + return; } @@ -1643,6 +1561,7 @@ if (sa_Npixel < 10) { zmessageACK(Mwin,ZTX("found %d pixels"),sa_Npixel); + sa_unselect(); // 16.07 return; } @@ -1738,6 +1657,518 @@ } +// Find the edge pixels surrounding the clicked pixel location. +// Trace around the edge outline to see if there is a gap. + +void m_select_find_gap(GtkWidget *, cchar *menu) // 16.07 +{ + int sa_find_gap_dialogfunc(zdialog *zd, cchar *event); + void sa_find_gap_mousefunc(); + + cchar *fmess = ZTX("Click one time inside each enclosed area. \n" + "Possible gaps in the outline will be found. \n" + "Press F1 for help."); + int cc; + zdialog *zd; + + F1_help_topic = "find_area_gap"; + + if (! sa_stat) return; // no area? + if (! sa_validate()) return; // invalid for current image + if (sa_mode == mode_image) return; // a whole image area + + if (sa_finzd) zdialog_destroy(sa_finzd); // terminate finish dialog + + sa_map_pixels(); // find edge pixels + if (! sa_Npixel) return; + + sa_show(1); + + cc = Fpxb->ww * Fpxb->hh; + if (sa_stackii) zfree(sa_stackii); + sa_stackii = (int *) zmalloc(cc * sizeof(int)); + sa_Nstack = 0; + sa_maxstack = cc; + + zd = zdialog_new(ZTX("find outline gap"),Mwin,BOK,null); // dialog for user to click inside + zdialog_add_widget(zd,"hbox","hbmess","dialog",0,"space=3"); // each enclosed area + zdialog_add_widget(zd,"label","fmess","hbmess",fmess,"space=5"); + + zdialog_run(zd,sa_find_gap_dialogfunc,"save"); // run dialog + takeMouse(sa_find_gap_mousefunc,dragcursor); // connect mouse function + return; +} + + +// dialog event and completion function + +int sa_find_gap_dialogfunc(zdialog *zd, cchar *event) +{ + void sa_find_gap_mousefunc(); + + if (strmatch(event,"focus")) + takeMouse(sa_find_gap_mousefunc,dragcursor); // connect mouse function + + if (! zd->zstat) return 1; // wait for completion + zdialog_free(zd); + freeMouse(); // disconnect mouse + zfree(sa_stackii); // free memory + sa_stackii = 0; + return 1; +} + + +// mouse function - search area outline surrounding mouse click position + +void sa_find_gap_mousefunc() // 16.07 +{ + int rad, ii, jj, kk, nn, np1, np2, npx; + float angle; + int ww, hh, cc; + int mx, my, px, py, rx, ry; + int crflag = 0; + char *pixmark = 0; + static int flip = 0; + + if (! LMclick) return; // no left mouse click data + LMclick = 0; + + sa_map_pixels(); // find edge pixels + if (! sa_Npixel) return; + + ww = Fpxb->ww; // image size + hh = Fpxb->hh; + cc = ww * hh; + + mx = Mxclick; // mouse click position + my = Myclick; + + if (mx == 0 || mx >= ww) return; // reject if image edge + if (my == 0 || my >= hh) return; + + nn = np1 = np2 = 0; + + for (rad = 1; rad < 100; rad++) // loop radius = 1 - 100 pixels + for (angle = 0; angle < 2*PI; angle += 0.9/rad) // loop angle = 0 - 360 degrees + { + px = mx + rad * cosf(angle); // search for nearest edge pixel + py = my + rad * sinf(angle); + ii = py * ww + px; + if (sa_pixmap[ii] != 1) continue; + + nn = np1 = np2 = 0; // test if edge pixel has exactly + for (ry = -1; ry <= +1; ry++) // two neighbor edge pixels + for (rx = -1; rx <= +1; rx++) + { + if (ry == 0 && rx == 0) continue; // skip self + jj = ii + ww * ry + rx; + if (sa_pixmap[jj] == 1) { // neighbor is an edge pixel + if (++nn > 2) break; // > 2 edge neighbors, reject + if (! np1) np1 = jj; // edge neighbor 1 + else if (! np2) np2 = jj; // edge neighbor 2 + } + } + if (nn == 2) break; // found suitable edge pixel + } + + if (nn != 2) { // no edge pixel with 2 neighbor + zmessage_post(Mwin,3,ZTX("cannot find area outline")); // edge pixels was found + return; + } + + sa_show(0); // hide area + Fpaintnow(); + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + pixmark = (char *) zmalloc(cc); // create pixel mark map + memset(pixmark,0,cc); // clear all pixel marks + + pixmark[ii] = 1; // mark edge pixel + draw_pixel(px,py); // draw pixel + + flip = 1 - flip; // alternate direction of search + if (flip) { + npx = np1; // np1 <--> np2 + np1 = np2; + np2 = npx; + } + + sa_stackii[0] = np1; // put neighbor 1 pixel into stack + sa_Nstack = 1; // stack count + + while (sa_Nstack) + { + kk = --sa_Nstack; // pull pixel from stack + ii = sa_stackii[kk]; + if (ii == np2) break; // = neighbor 2 pixel, no outline gap + + pixmark[ii] = 1; // mark pixel + py = ii / ww; + px = ii - ww * py; + + draw_pixel(px,py); // draw pixel + zsleep(0.0003); + zmainloop(); + + for (ry = -1; ry <= +1; ry++) // find unmarked edge neighbor pixels + for (rx = -1; rx <= +1; rx++) + { + if (py+ry < 0 || py+ry > hh-1) continue; // off the image edge + if (px+rx < 0 || px+rx > ww-1) continue; + + jj = ii + ww * ry + rx; + if (pixmark[jj]) continue; // pixel already marked + + if (sa_pixmap[jj] == 1) { // neighbor is an unmarked edge pixel + kk = sa_Nstack++; + sa_stackii[kk] = jj; + } + } + } + + if (pixmark) zfree(pixmark); // free memory + + if (crflag) { + cairo_destroy(mwcr); // free cairo context + mwcr = 0; + } + + if (ii == np2) { // success, no gap + sa_show(1); // show area + return; + } + + poptext_mouse(ZTX("outline has a gap"),0,0,0,3); // outline has a gap + zsleep(2); // leave gap end showing for a moment + sa_show(1); + return; +} + + +/********************************************************************************/ + +// Hairy Edge selection function. +// Set transparencies for hairy edge pixels based on color matching +// with a set of selected pixels well within the hairy edge. + +namespace select_hairy +{ + int ww, hh, pcc; + int selectlevel = 50; + int deselectlevel = 40; + int mouseradius = 100; + int selectradius = 8; // area of selected pixels for matching + float matchRGB[400][3]; // OK for select radius up to 10 + int Nmatch; + int Fselect; +} + + +// menu function + +void m_select_hairy(GtkWidget *, cchar *) // 16.07 +{ + using namespace select_hairy; + + int select_hairy_dialog_event(zdialog *zd, cchar *event); + void select_hairy_mousefunc(); + + cchar *title = ZTX("Select Hairy Edge"); + cchar *helptext = ZTX("Click on colors to match. \n" + "Drag along edge to select. \n" + "Adjust match level as needed. \n" + "Copy or Save area when done."); + zdialog *zd; + + F1_help_topic = "select_hairy"; + + if (CEF) edit_done(0); // if edit active, complete it + + if (! sa_stat) { // no selected area + zmessageACK(Mwin,ZTX("select the area first")); + return; + } + + if (sa_stat < 3) { + zmessageACK(Mwin,ZTX("the area is not finished")); + return; + } + + if (! E0pxm) { // get poss. 16-bit image + paintlock(1); // block window updates + E0pxm = PXM_load(curr_file,1); + paintlock(0); // unblock window updates + if (! E0pxm) return; + } + + PXM_addalpha(E0pxm); // add an alpha channel if req. + + if (E1pxm) PXM_free(E1pxm); // make reference copy of original + E1pxm = PXM_copy(E0pxm); + + Fpaint2(); + + ww = E0pxm->ww; + hh = E0pxm->hh; + pcc = 4 * sizeof(float); + +/*** + ________________________________ + | Select Hairy Edge | + | | + | Click on colors to match. | + | Drag along edge to select. | + | Adjust match level as needed. | + | Copy or Save area when done. | + | | + | Mouse Radius [____|-+] | + | | + | Match Level | + | (o) select =========[]====== | + | (o) deselect =======[]======== | + | | + | [copy] [save] [cancel] | + |________________________________| + +***/ + + zd = zdialog_new(title,Mwin,Bcopy,Bsave,Bcancel,null); + + zdialog_add_widget(zd,"label","labhelp","dialog",helptext,"space=3"); + zdialog_add_widget(zd,"hbox","hbradius","dialog",0,"space=5"); + zdialog_add_widget(zd,"label","labradius","hbradius",ZTX("Mouse Radius"),"space=3"); + zdialog_add_widget(zd,"spin","mouseradius","hbradius","10|300|1|100","space=3"); + zdialog_add_widget(zd,"hbox","hbsel","dialog",0,"space=5"); + zdialog_add_widget(zd,"vbox","vbsel","hbsel",0,"space=3|homog"); + zdialog_add_widget(zd,"vbox","vblev","hbsel",0,"space=3|homog|expand"); + zdialog_add_widget(zd,"label","lablevel","vbsel",ZTX("Match Level")); + zdialog_add_widget(zd,"radio","select","vbsel",ZTX("select")); + zdialog_add_widget(zd,"radio","deselect","vbsel",ZTX("deselect")); + zdialog_add_widget(zd,"label","space","vblev"); + zdialog_add_widget(zd,"hscale","selectlevel","vblev","0|255|1|50"); + zdialog_add_widget(zd,"hscale","deselectlevel","vblev","0|255|1|40"); + + zdialog_restore_inputs(zd); + zdialog_resize(zd,300,0); + zdialog_run(zd,select_hairy_dialog_event,"save"); + + zdialog_fetch(zd,"selectlevel",selectlevel); + zdialog_fetch(zd,"deselectlevel",deselectlevel); + zdialog_fetch(zd,"mouseradius",mouseradius); + zdialog_stuff(zd,"select",1); + zdialog_stuff(zd,"deselect",0); + Fselect = 1; + + takeMouse(select_hairy_mousefunc,dragcursor); + + return; +} + + +// dialog event and completion function + +int select_hairy_dialog_event(zdialog *zd, cchar *event) +{ + using namespace select_hairy; + + void select_hairy_mousefunc(); + + if (! curr_file) zd->zstat = 3; // image went away + if (sa_stat < 3) zd->zstat = 3; // area gone + + if (strmatch(event,"cancel")) zd->zstat = 3; // from f_open() + if (strmatch(event,"escape")) zd->zstat = 3; // escape = cancel + + if (strmatch(event,"focus")) + takeMouse(select_hairy_mousefunc,dragcursor); + + if (zd->zstat) // done or cancel + { + if (zd->zstat == 1) // copy area + m_select_save(null,"copy"); + if (zd->zstat == 2) // save area to file + m_select_save(null,"save"); + + paintlock(1); + PXM_free(E0pxm); + E0pxm = E1pxm; // refresh image, remove transparency + E1pxm = 0; + paintlock(0); + Fpaint2(); + + zdialog_free(zd); // kill dialog + freeMouse(); // disconnect mouse + return 1; + } + + zdialog_fetch(zd,"mouseradius",mouseradius); // get dialog inputs + zdialog_fetch(zd,"selectlevel",selectlevel); + zdialog_fetch(zd,"deselectlevel",deselectlevel); + zdialog_fetch(zd,"select",Fselect); + + return 1; +} + + +// mouse function + +void select_hairy_mousefunc() +{ + using namespace select_hairy; + int select_hairy_ucomp(cchar *, cchar*); + + int ii, bestii, rx, ry, px, py; + int mrad = mouseradius; + int srad = selectradius; + float *pixel, pixmatch, bestmatch; + float fselectlevel = 0.00392 * selectlevel; // scale to range 0.0 - 1.0 + float fdeselectlevel = 0.00392 * deselectlevel; + + if (LMclick) // left click - get pixels to match + { + if (Fselect) srad = selectradius; // select - larger group of pixels + else srad = selectradius / 2; // deselect = smaller group + + Nmatch = 0; + for (ry = -srad; ry <= srad; ry++) // loop pixels within selection radius + for (rx = -srad; rx <= srad; rx++) + { + if (rx * rx + ry * ry > srad * srad) continue; // outside radius + px = Mxclick + rx; + py = Myclick + ry; + if (px < 0 || px > ww-1) continue; // off the image edge + if (py < 0 || py > hh-1) continue; + pixel = PXMpix(E1pxm,px,py); + matchRGB[Nmatch][0] = pixel[0]; + matchRGB[Nmatch][1] = pixel[1]; + matchRGB[Nmatch][2] = pixel[2]; + Nmatch++; // pixel count + } + } + + if (Mxdrag || Mydrag) // drag is underway + { + if (Mbutton == 1) // left drag, set pixel transparencies + { + for (ry = -mrad; ry <= mrad; ry++) + for (rx = -mrad; rx <= mrad; rx++) + { + if (rx * rx + ry * ry > mrad * mrad) continue; + px = Mxdrag + rx; + py = Mydrag + ry; + if (px < 0 || px > ww-1) continue; // outside image edge + if (py < 0 || py > hh-1) continue; + ii = py * ww + px; + if (! sa_pixmap[ii]) continue; // outside area + + pixel = PXMpix(E1pxm,px,py); + bestmatch = -1; + bestii = 0; + + for (ii = 0; ii < Nmatch; ii++) { + pixmatch = RGBMATCH(pixel[0], pixel[1], pixel[2], + matchRGB[ii][0], matchRGB[ii][1], matchRGB[ii][2]); + if (pixmatch > bestmatch) { + bestmatch = pixmatch; + bestii = ii; + } + } + + pixel = PXMpix(E0pxm,px,py); + + if (Fselect) // select foreground + { + if (bestmatch < fselectlevel) pixel[3] = 0; // < select match level, make transparent + else { + pixmatch = (bestmatch - fselectlevel) / (1 - fselectlevel); // opacity ramps with match level + ///pixel[3] = 255 * pow(pixmatch,0.4); + pixel[3] = 255 * sqrtf(pixmatch); + ii = bestii; + pixel[0] = matchRGB[ii][0]; + pixel[1] = matchRGB[ii][1]; + pixel[2] = matchRGB[ii][2]; + } + } + else // select background + if (bestmatch > fdeselectlevel) pixel[3] = 0; // > deselect match level, make transparent + } + } + + if (Mbutton == 3) // right drag, restore pixels + { + for (ry = -mrad; ry <= mrad; ry++) + for (rx = -mrad; rx <= mrad; rx++) + { + if (rx * rx + ry * ry > mrad * mrad) continue; + px = Mxdrag + rx; + py = Mydrag + ry; + if (px < 0 || px > ww-1) continue; // outside image edge + if (py < 0 || py > hh-1) continue; + ii = py * ww + px; + if (! sa_pixmap[ii]) continue; // outside area + memcpy(PXMpix(E0pxm,px,py),PXMpix(E1pxm,px,py),pcc); + } + } + + Fpaint0(Mxdrag-mrad,Mydrag-mrad,2*mrad+1,2*mrad+1); // update drawing window + } + + draw_mousecircle(Mxposn,Myposn,mouseradius,0); // refresh mouse circle + + LMclick = RMclick = Mxdrag = Mydrag = 0; + return; +} + + +/*** + + float red, green, blue; + float RGBmean[3]; + + red = blue = green = 0; + for (ii = 0; ii < Nmatch; ii++) { // compute mean RGB of match pixels + red += matchRGB[ii][0]; + green += matchRGB[ii][1]; + blue += matchRGB[ii][2]; + } + + RGBmean[0] = red / Nmatch; + RGBmean[1] = green / Nmatch; + RGBmean[2] = blue / Nmatch; + + int recl = 3 * sizeof(float); // sort match pixels in order from + HeapSort((char *) matchRGB,recl,Nmatch,select_hairy_ucomp); // closest match to mean to farthest + Nmatch = 0.8 * Nmatch; // discard 20% least matching pixels + + +// compare two RGBmatch pixels with mean RGB +// return [ +1 | 0 | -1 ] if pix1 matches [ less | equal | more ] than pix2 + +int select_hairy_ucomp(cchar *pix1, cchar *pix2) +{ + using namespace select_hairy; + + float *rgb1, *rgb2, match1, match2; + + rgb1 = (float *) pix1; + rgb2 = (float *) pix2; + match1 = RGBMATCH(rgb1[0],rgb1[1],rgb1[2],RGBmean[0],RGBmean[1],RGBmean[2]); + match2 = RGBMATCH(rgb2[0],rgb2[1],rgb2[2],RGBmean[0],RGBmean[1],RGBmean[2]); + if (match1 < match2) return +1; + if (match1 > match2) return -1; + return 0; +} + +***/ + + +/********************************************************************************/ + // menu function for show, hide, enable, disable, invert, unselect // (also implemented as buttons in select area dialog) @@ -2325,7 +2756,7 @@ sa_map_pixels(); // remap edge and interior pixels - void sa_finish_auto(); // finish area again + sa_finish_auto(); // finish area again sa_show(1); sa_calced = 0; // invalidate prior edge calc. @@ -2359,18 +2790,30 @@ } -// copy the current select area for later paste +// Save a select area in memory to a disk PNG file. +// For menu "Copy Area" use default file: ~/.fotoxx/saved_areas/copied_area.png +// For menu "Save Area File" use file name from user input. -void m_select_copy(GtkWidget *, cchar *) // 15.09 +void m_select_save(GtkWidget *, cchar *menu) // consolidate 2 menus 16.07 { using namespace sa_diskfile; int ii, px1, py1, px2, py2, dist; int nc, pcc; float *pix1, *pix2; + char *pp, *file; char filename[100]; - F1_help_topic = "area_copy_paste"; + if (strmatch(menu,ZTX("Copy Area")) || strmatch(menu,"copy")) + F1_help_topic = "area_copy_paste"; + + else if (strmatch(menu,ZTX("Save Area File")) || strmatch(menu,"save")) + F1_help_topic = "area_open_save"; + + else { + zmessageACK(Mwin,"menu name bug: %s",menu); + return; + } if (! sa_stat) return; // no selected area if (sa_mode == mode_image) return; // a whole image area @@ -2392,7 +2835,7 @@ PXM_free(sacp_pxm); // free prior if any PXM_free(sacpR_pxm); - sacp_ww = sa_maxx - sa_minx; // new area image PXM 16.02 + sacp_ww = sa_maxx - sa_minx; // new area image PXM bugfix 16.07 sacp_hh = sa_maxy - sa_miny; sacp_pxm = PXM_make(sacp_ww,sacp_hh,4); // alpha channel 16.03 @@ -2407,44 +2850,59 @@ ii = py1 * Fpxb->ww + px1; dist = sa_pixmap[ii]; // 0/1/2+ = outside/edge/inside 16.03 if (dist == 0) pix2[3] = 0; // outside pixel, transparent - else if (nc < 4) pix2[3] = 255; // inside, opaque if no E0 alpha + else if (nc < 4) pix2[3] = 255; // inside, opaque if alpha added } - snprintf(filename,100,"%s/copied_area.png",saved_areas_dirk); - PXM_PNG_save(sacp_pxm,filename,16); + if (strmatch(menu,ZTX("Copy Area")) || strmatch(menu,"copy")) { + snprintf(filename,100,"%s/copied_area.png",saved_areas_dirk); // save to default PNG file 16.07 + PXM_PNG_save(sacp_pxm,filename,16); + return; + } + + pp = zgetfile(ZTX("save area as a PNG file"),MWIN,"save",saved_areas_dirk); // get file name from user 16.07 + if (! pp) return; + file = zstrdup(pp,8); + zfree(pp); + pp = strrchr(file,'/'); + pp = strcasestr(pp,".png"); + if (! pp) strcat(file,".png"); + PXM_PNG_save(sacp_pxm,file,16); // use PNG-16 file + zfree(file); return; } -// paste the area last copied on to the current image +// Read a select area from a disk PNG file. -void m_select_paste(GtkWidget *, cchar *) // 15.09 +void m_select_open(GtkWidget *, cchar *) // 15.08 { using namespace sa_diskfile; void select_paste(GtkWidget *, cchar *); PXM *pxmtemp; - char filename[100]; + char *file; float *pix1, *pix2; int px, py, nc, pcc; - F1_help_topic = "area_copy_paste"; + F1_help_topic = "area_open_save"; PXM_free(sacp_pxm); // free prior if any PXM_free(sacpR_pxm); - snprintf(filename,100,"%s/copied_area.png",saved_areas_dirk); + file = zgetfile(ZTX("load area from a file"),MWIN,"file",saved_areas_dirk); + if (! file) return; - pxmtemp = ANY_PXM_load(filename); // load image file + pxmtemp = ANY_PXM_load(file); // load image file + zfree(file); if (! pxmtemp) { if (*file_errmess) zmessageACK(Mwin,file_errmess); return; } - nc = pxmtemp->nc; // 16.03 - pcc = nc * sizeof(float); + nc = pxmtemp->nc; + pcc = nc * sizeof(float); // 3 or 4 channels, RGB or RGBA sacp_ww = pxmtemp->ww; // image dimensiona sacp_hh = pxmtemp->hh; @@ -2465,101 +2923,35 @@ } -// Save a select area to a disk PNG file. - -void m_select_save(GtkWidget *, cchar *) // 15.08 -{ - using namespace sa_diskfile; - - int ii, px1, py1, px2, py2, dist; - int nc, pcc; - float *pix1, *pix2; - char *pp, *file; - - F1_help_topic = "area_open_save"; - - if (! sa_stat) return; // no selected area - if (sa_mode == mode_image) return; // a whole image area - if (sa_stat < 3) { - zmessageACK(Mwin,ZTX("the area is not finished")); - return; - } - - if (! E0pxm) { // get poss. 16-bit image - paintlock(1); // block window updates 16.02 - E0pxm = PXM_load(curr_file,1); - paintlock(0); // unblock window updates 16.02 - if (! E0pxm) return; - } - - nc = E0pxm->nc; // 16.03 - pcc = nc * sizeof(float); - - PXM_free(sacp_pxm); // free prior if any - PXM_free(sacpR_pxm); - - sacp_ww = sa_maxx - sa_minx + 1; // new area image PXM - sacp_hh = sa_maxy - sa_miny + 1; - sacp_pxm = PXM_make(sacp_ww,sacp_hh,4); // alpha channel 16.03 - - for (py2 = 0; py2 < sacp_hh; py2++) - for (px2 = 0; px2 < sacp_ww; px2++) - { - px1 = px2 + sa_minx; - py1 = py2 + sa_miny; - pix1 = PXMpix(E0pxm,px1,py1); // copy area pixels into area PXM - pix2 = PXMpix(sacp_pxm,px2,py2); - memcpy(pix2,pix1,pcc); // copy RGB(A) data - ii = py1 * Fpxb->ww + px1; - dist = sa_pixmap[ii]; // 0/1/2+ = outside/edge/inside 16.03 - if (dist == 0) pix2[3] = 0; // outside pixel, transparent - else if (nc < 4) pix2[3] = 255; // inside, opaque if alpha added - } - - pp = zgetfile(ZTX("save area as a PNG file"),MWIN,"save",saved_areas_dirk); - if (! pp) return; - file = zstrdup(pp,8); - zfree(pp); - pp = strrchr(file,'/'); - pp = strcasestr(pp,".png"); - if (! pp) strcat(file,".png"); - PXM_PNG_save(sacp_pxm,file,16); - zfree(file); - - return; -} - - -// Read a select area from a disk PNG file. +// paste the area last copied on to the current image +// uses the default file from "copy area" menu (above) -void m_select_open(GtkWidget *, cchar *) // 15.08 +void m_select_paste(GtkWidget *, cchar *) // 15.09 { using namespace sa_diskfile; void select_paste(GtkWidget *, cchar *); PXM *pxmtemp; - char *file; + char filename[100]; float *pix1, *pix2; int px, py, nc, pcc; - F1_help_topic = "area_open_save"; + F1_help_topic = "area_copy_paste"; PXM_free(sacp_pxm); // free prior if any PXM_free(sacpR_pxm); - file = zgetfile(ZTX("load area from a file"),MWIN,"file",saved_areas_dirk); - if (! file) return; + snprintf(filename,100,"%s/copied_area.png",saved_areas_dirk); - pxmtemp = ANY_PXM_load(file); // load image file - zfree(file); + pxmtemp = ANY_PXM_load(filename); // load image file if (! pxmtemp) { if (*file_errmess) zmessageACK(Mwin,file_errmess); return; } - nc = pxmtemp->nc; - pcc = nc * sizeof(float); // 3 or 4 channels, RGB or RGBA + nc = pxmtemp->nc; // 16.03 + pcc = nc * sizeof(float); sacp_ww = pxmtemp->ww; // image dimensiona sacp_hh = pxmtemp->hh; @@ -2590,7 +2982,7 @@ void select_paste_image(); int select_paste_dialog_event(zdialog *, cchar *event); void select_paste_mousefunc(); - + cchar *dragmess = ZTX("position with mouse click/drag"); if (! sacp_pxm) return; // nothing to paste @@ -2631,6 +3023,12 @@ sacp_orgx = sacp_orgy = 0; // initial position select_paste_image(); // paste area image + if (! sa_Npixel) { // failed 16.07 + edit_cancel(0); // cancel edit, restore image + PXM_free(sacpR_pxm); // free memory + return; + } + CEF->zd = zdialog_new(ZTX("Paste Image"),Mwin,Bdone,Bcancel,null); zdialog_add_widget(CEF->zd,"hbox","hb0","dialog",0,"space=3"); zdialog_add_widget(CEF->zd,"label","lab1","hb0",dragmess,"space=5"); @@ -2696,13 +3094,13 @@ if (zd->zstat != 1 || ! sacp_porg) { // cancel paste edit_cancel(0); // cancel edit, restore image sa_unselect(); + PXM_free(sacpR_pxm); // free memory return 1; } if (sacp_needcalc) sa_edgecalc(); // update edge distance data 16.03 sacp_needcalc = 0; sa_show(1); - edit_done(0); // commit the edit (pasted image) PXM_free(sacpR_pxm); // free memory return 1; @@ -2880,6 +3278,7 @@ sacp_porg = 1; select_paste_makearea(); // 16.03 + if (! sa_Npixel) return; // 16.07 CEF->Fmods++; // image is modified CEF->Fsaved = 0; diff -Nru fotoxx-16.06/f.batch.cc fotoxx-16.07/f.batch.cc --- fotoxx-16.06/f.batch.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.batch.cc 2016-07-01 10:19:38.000000000 +0000 @@ -27,7 +27,7 @@ batch_sharp_func callable sharpen function m_batch_upright find rotated files and upright them m_batch_deltrash delete or trash selected files - m_batch_dcraw convert RAW files using DCraw + m_batch_raw convert RAW files using libraw // 16.07 m_batch_rawtherapee convert RAW files using Raw Therapee m_scriptfiles script files for batch editing m_burn burn images to DVD/Blue-Ray disc @@ -515,7 +515,7 @@ conv_albums(oldfiles,newfiles,Noldnew); } - write_popup_text("write","COMPLETED"); + write_popup_text("write",Bcompleted); if (navi::gallerytype == GDIR) // update gallery file list 15.03 gallery(0,"init"); @@ -1018,7 +1018,7 @@ } } - write_popup_text("write","COMPLETED"); + write_popup_text("write",Bcompleted); if (navi::gallerytype == GDIR) // refresh gallery 15.03 gallery(0,"init"); @@ -1197,7 +1197,7 @@ image_thumbnail_delete(file); // delete thumbnail, file and cache 15.12 } - write_popup_text("write","COMPLETED"); + write_popup_text("write",Bcompleted); cleanup: @@ -1276,14 +1276,13 @@ /********************************************************************************/ -// convert multiple RAW files to tiff, jpeg, or png using DCraw +// convert multiple RAW files to tiff, jpeg, or png using libraw -namespace batch_dcraw +namespace batch_raw { char location[400]; char **filelist; int filecount; - char dcraw_command[100] = ""; cchar *filetype; int bpc; float resize; @@ -1292,15 +1291,15 @@ }; -void m_batch_dcraw(GtkWidget *, cchar *menu) +void m_batch_raw(GtkWidget *, cchar *menu) // 16.07 { - using namespace batch_dcraw; + using namespace batch_raw; - int batch_dcraw_dialog_event(zdialog *zd, cchar *event); + int batch_raw_dialog_event(zdialog *zd, cchar *event); zdialog *zd; - cchar *title = ZTX("Batch Convert RAW Files (DCraw)"); - char *tiffile, *infile, *outfile, *pp; + cchar *title = ZTX("Batch Convert RAW Files"); + char *infile, *outfile, *pp; int zstat, ii, err; FTYPE ftype; int cc, ww2, hh2; @@ -1308,31 +1307,19 @@ F1_help_topic = "batch_raw"; - if (! Fdcraw) { - zmessageACK(Mwin,ZTX("DCraw not installed")); - return; - } - if (checkpend("all")) return; // check nothing pending Fblock = 1; /*** _____________________________________________________________________________ - | [x] [-] [_] Batch Convert RAW Files (DCraw) | + | [x] [-] [_] Batch Convert RAW Files | | | | [Select Files] N files selected | | output location [________________________________________________] [Browse] | | output file type (o) JPEG (o) PNG-8 (o) PNG-16 (o) TIFF-8 (o) TIFF-16 | | resize (o) 1.0 (o) 3/4 (o) 2/3 (o) 1/2 (o) 1/3 | | [x] Sharpen amount [___] threshold [___] | - | --------------------------------------------------------------------------- | - | white balance (o) camera (o) fixed (o) calculated | - | interpolation (o) bilinear (o) VNG (o) PPG (o) AHD | - | color space (o) raw (o) sRGB (o) Adobe (o) wide (o) Kodak (o) XYZ | - | gamma curve (o) default (o) sRGB (o) linear | - | [ dcraw -T -6 -w -q 0 -o 1 -g 2.222 4.5 ] [defaults] | - | | - | [proceed] [cancel] | + | [proceed] [cancel] | dcraw parameters removed 16.07 |_____________________________________________________________________________| ***/ @@ -1374,61 +1361,20 @@ zdialog_add_widget(zd,"label","labthresh","hbsharp",ZTX("threshold"),"space=3"); zdialog_add_widget(zd,"spin","thresh","hbsharp","0|100|1|20"); - zdialog_add_widget(zd,"hsep","hsep1","dialog",0,"space=5"); - - zdialog_add_widget(zd,"hbox","hbvb","dialog"); - zdialog_add_widget(zd,"vbox","vb1","hbvb",0,"space=5|homog"); - zdialog_add_widget(zd,"vbox","vb2","hbvb",0,"homog"); - - zdialog_add_widget(zd,"label","labwbal","vb1",ZTX("white balance")); - zdialog_add_widget(zd,"label","labinterp","vb1",ZTX("interpolation")); - zdialog_add_widget(zd,"label","labcolor","vb1",ZTX("color space")); - zdialog_add_widget(zd,"label","labgamma","vb1",ZTX("gamma curve")); - - zdialog_add_widget(zd,"hbox","hb3","vb2"); - zdialog_add_widget(zd,"radio","-w","hb3",ZTX("camera"),"space=3"); - zdialog_add_widget(zd,"radio","-W","hb3",ZTX("fixed"),"space=3"); - zdialog_add_widget(zd,"radio","-a","hb3",ZTX("calculated"),"space=3"); - - zdialog_add_widget(zd,"hbox","hb4","vb2"); - zdialog_add_widget(zd,"radio","-q 0","hb4","bilinear","space=3"); - zdialog_add_widget(zd,"radio","-q 1","hb4","VNG","space=3"); - zdialog_add_widget(zd,"radio","-q 2","hb4","PPG","space=3"); - zdialog_add_widget(zd,"radio","-q 3","hb4","AHD","space=3"); - - zdialog_add_widget(zd,"hbox","hb5","vb2"); - zdialog_add_widget(zd,"radio","-o 0","hb5","raw","space=3"); - zdialog_add_widget(zd,"radio","-o 1","hb5","sRGB","space=3"); - zdialog_add_widget(zd,"radio","-o 2","hb5","Adobe","space=3"); - zdialog_add_widget(zd,"radio","-o 3","hb5","Wide","space=3"); - zdialog_add_widget(zd,"radio","-o 4","hb5","Kodak","space=3"); - zdialog_add_widget(zd,"radio","-o 5","hb5","XYZ","space=3"); - - zdialog_add_widget(zd,"hbox","hb6","vb2"); - zdialog_add_widget(zd,"radio","-g 2.222 4.5","hb6",ZTX("default"),"space=3"); - zdialog_add_widget(zd,"radio","-g 2.4 12.92","hb6","sRGB","space=3"); - zdialog_add_widget(zd,"radio","-g 1.0 1.0","hb6","linear","space=3"); - - zdialog_add_widget(zd,"hbox","hb7","dialog",0,"space=3"); - zdialog_add_widget(zd,"entry","dcraw_command","hb7",0,"space=5|expand"); - zdialog_add_widget(zd,"button","defaults","hb7",ZTX("defaults"),"space=5"); - filelist = 0; // set no files selected filecount = 0; *location = 0; zdialog_stuff(zd,"JPEG",1); // compensate GTK bug - batch_dcraw_dialog_event(zd,"defaults"); // set defaults + batch_raw_dialog_event(zd,"defaults"); // set defaults zdialog_restore_inputs(zd); // get prior inputs if any - zdialog_run(zd,batch_dcraw_dialog_event,"save"); // run dialog + zdialog_run(zd,batch_raw_dialog_event,"save"); // run dialog zstat = zdialog_wait(zd); // wait for completion zdialog_free(zd); if (zstat != 1) goto cleanup; if (! filecount) goto cleanup; - printz("dcraw command: %s \n",dcraw_command); - m_viewmode(0,"F"); gallery_monitor("stop"); // stop tracking gallery updates @@ -1449,25 +1395,10 @@ write_popup_text("write"," *** unknown RAW file type"); continue; } - - err = shell_ack("%s \"%s\" ",dcraw_command,rawfile); // convert filename.raw to filename.tif - if (err) { - write_popup_text("write"," *** raw conversion failed"); // conversion failed - write_popup_text("write",wstrerror(err)); - continue; - } - - tiffile = raw_to_tiff(rawfile); // converted file - - pxm1 = PXM_load(tiffile,0); // load tiff-16 output file - if (! pxm1) { - strcat(tiffile,"f"); // look for both .tif and .tiff - pxm1 = PXM_load(tiffile,0); // load tiff-16 output file - } + pxm1 = RAW_PXM_load(rawfile); // make PXM image from RAW file 16.07 if (! pxm1) { - write_popup_text("write"," *** no dcraw .tif output"); - zfree(tiffile); + write_popup_text("write"," *** raw conversion failed"); // conversion failed continue; } @@ -1481,7 +1412,6 @@ if (! pxm1) { write_popup_text("write"," *** resize failed"); - zfree(tiffile); continue; } } @@ -1489,7 +1419,7 @@ if (Fsharpen) // sharpen if wanted batch_sharp_func(pxm1,amount,thresh); - outfile = zstrdup(tiffile); // have filename.tif, 16 bits/color + outfile = zstrdup(rawfile); // construct output file name 16.07 pp = strrchr(outfile,'.'); // make *.tif or *.jpg or *.png 16.02 if (pp) strcpy(pp+1,filetype); @@ -1504,14 +1434,10 @@ if (err) { write_popup_text("write"," *** file type conversion failed"); - zfree(tiffile); zfree(outfile); continue; } - if (! strmatch(outfile,tiffile)) // if conversion was made, - remove(tiffile); // delete tiff-16 file - exif_copy(rawfile,outfile,0,0,0); // copy metadata from RAW file if (*location && ! samedirk(location,outfile)) { @@ -1532,10 +1458,9 @@ write_popup_text("write",outfile); // write output file to log window zfree(outfile); - zfree(tiffile); } - write_popup_text("write","COMPLETED"); + write_popup_text("write",Bcompleted); gallery(curr_dirk,"init"); // update gallery file list 15.03 gallery_monitor("start"); // resume tracking gallery updates @@ -1558,60 +1483,15 @@ // dialog event and completion callback function -int batch_dcraw_dialog_event(zdialog *zd, cchar *event) +int batch_raw_dialog_event(zdialog *zd, cchar *event) { - using namespace batch_dcraw; + using namespace batch_raw; - int ii, Fupdate = 0, err, cc; + int ii, err, cc; char countmess[50], *ploc; - static cchar *wbal = 0, *intp = 0, *color = 0, *gamma = 0; if (strmatch(event,"escape")) zd->zstat = 2; // escape = cancel 15.07 - if (! wbal) { // get current options if not already - wbal = "-w"; - zdialog_fetch(zd,"-W",ii); - if (ii) wbal = "-W"; - zdialog_fetch(zd,"-a",ii); - if (ii) wbal = "-a"; - Fupdate++; - } - - if (! intp) { - intp = "-q 0"; - zdialog_fetch(zd,"-q 1",ii); - if (ii) intp = "-q 1"; - zdialog_fetch(zd,"-q 2",ii); - if (ii) intp = "-q 2"; - zdialog_fetch(zd,"-q 3",ii); - if (ii) intp = "-q 3"; - Fupdate++; - } - - if (! color) { - color = "-o 1"; - zdialog_fetch(zd,"-o 0",ii); - if (ii) color = "-o 0"; - zdialog_fetch(zd,"-o 2",ii); - if (ii) color = "-o 2"; - zdialog_fetch(zd,"-o 3",ii); - if (ii) color = "-o 3"; - zdialog_fetch(zd,"-o 4",ii); - if (ii) color = "-o 4"; - zdialog_fetch(zd,"-o 5",ii); - if (ii) color = "-o 5"; - Fupdate++; - } - - if (! gamma) { - gamma = "-g 2.222 4.5"; - zdialog_fetch(zd,"-g 2.4 12.92",ii); - if (ii) gamma = "-g 2.4 12.92"; - zdialog_fetch(zd,"-g 1.0 1.0",ii); - if (ii) gamma = "-g 1.0 1.0"; - Fupdate++; - } - if (strmatch(event,"files")) // select images to convert { if (filecount) { // free prior list @@ -1645,79 +1525,6 @@ zfree(ploc); } - if (strmatch(event,"defaults")) // default all parameters - { - zdialog_stuff(zd,"JPEG",0); - zdialog_stuff(zd,"PNG-8",0); - zdialog_stuff(zd,"PNG-16",0); - zdialog_stuff(zd,"TIFF-8",0); - zdialog_stuff(zd,"TIFF-16",1); // output = TIFF-16 - - zdialog_stuff(zd,"-w",1); // color balance = camera value - zdialog_stuff(zd,"-W",0); - zdialog_stuff(zd,"-a",0); - wbal = "-w"; - - zdialog_stuff(zd,"-q 0",1); // interpolation = bilinear - zdialog_stuff(zd,"-q 1",0); - zdialog_stuff(zd,"-q 2",0); - zdialog_stuff(zd,"-q 3",0); - intp = "-q 0"; - - zdialog_stuff(zd,"-o 0",0); - zdialog_stuff(zd,"-o 1",1); // color space = sRGB - zdialog_stuff(zd,"-o 2",0); - zdialog_stuff(zd,"-o 3",0); - zdialog_stuff(zd,"-o 4",0); - zdialog_stuff(zd,"-o 5",0); - color = "-o 1"; - - zdialog_stuff(zd,"-g 2.222 4.5",1); // gamma = default - zdialog_stuff(zd,"-g 2.4 12.92",0); - zdialog_stuff(zd,"-g 1.0 1.0",0); - gamma = "-g 2.222 4.5"; - - Fupdate++; - } - - if (strstr("-w -W -a",event)) { // event is one of: -w -W -a - zdialog_fetch(zd,event,ii); - if (ii) { - wbal = event; - Fupdate++; - } - } - - if (strstr(event,"-q")) { // event is: -q N - zdialog_fetch(zd,event,ii); - if (ii) { - intp = event; - Fupdate++; - } - } - - if (strstr(event,"-o")) { // event is: -o N - zdialog_fetch(zd,event,ii); - if (ii) { - color = event; - Fupdate++; - } - } - - if (strstr(event,"-g")) { // event is: -g N1 N2 - zdialog_fetch(zd,event,ii); - if (ii) { - gamma = event; - Fupdate++; - } - } - - if (Fupdate || ! *dcraw_command) // initialize or update dcraw command - { - snprintf(dcraw_command,100,"dcraw -T -6 %s %s %s %s",wbal,intp,color,gamma); - zdialog_stuff(zd,"dcraw_command",dcraw_command); - } - if (zd->zstat != 1) return 0; // wait for [proceed] zd->zstat = 0; // keep dialog active until inputs OK @@ -1982,7 +1789,7 @@ zfree(tiffile); } - write_popup_text("write","COMPLETED"); + write_popup_text("write",Bcompleted); gallery(curr_dirk,"init"); // update gallery file list 15.03 gallery_monitor("start"); // resume tracking gallery updates @@ -2934,7 +2741,7 @@ fprintf(fid,"%s\n",infiles[ii]); fclose(fid); - zmessageACK(Mwin,ZTX("COMPLETED")); + zmessageACK(Mwin,Bcompleted); return; } diff -Nru fotoxx-16.06/f.effects.cc fotoxx-16.07/f.effects.cc --- fotoxx-16.06/f.effects.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.effects.cc 2016-07-01 10:19:38.000000000 +0000 @@ -5711,14 +5711,10 @@ return 1; } - if (strmatch(event,"conrad")) { - zdialog_stuff(zd,"conrad",1); - zdialog_stuff(zd,"incrad",0); - } - - if (strmatch(event,"incrad")) { - zdialog_stuff(zd,"incrad",1); + if (strstr("conrad incrad",event)) { // 16.07 zdialog_stuff(zd,"conrad",0); + zdialog_stuff(zd,"incrad",0); + zdialog_stuff(zd,event,1); } zdialog_fetch(zd,"conrad",conrad); diff -Nru fotoxx-16.06/f.file.cc fotoxx-16.07/f.file.cc --- fotoxx-16.06/f.file.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.file.cc 2016-07-01 10:19:38.000000000 +0000 @@ -30,7 +30,6 @@ m_open open image file menu function m_open_drag open drag/drop image file m_previous open the previously opened image file - m_ufraw open a camera RAW file using the Ufraw program m_rawtherapee open a camera RAW file using the RawTherapee program f_open open and display an image file f_open_saved open the last image file saved @@ -335,79 +334,6 @@ /********************************************************************************/ -// menu function: open a camera RAW file and edit with the ufraw GUI -// opens 'clicked_file' if present or 'rawfile' if not - -void m_ufraw(GtkWidget *, cchar *menu) -{ - char *pp; - char *tiffile; - int err; - STATB statb; - - cchar *ufrawcommand = "ufraw --exposure=auto --interpolation=bilinear" - " --out-type=tiff --out-depth=16 --overwrite" - " --output=\"%s\" \"%s\""; - - F1_help_topic = "open_raw_file"; - - if (! Fufraw) { - zmessageACK(Mwin,ZTX("UFraw not installed")); - return; - } - - if (checkpend("busy block mods")) return; // 15.11 - - if (rawfile) zfree(rawfile); - - if (clicked_file) { - rawfile = clicked_file; - clicked_file = 0; - } - - if (! rawfile) { - pp = curr_file; // directory for file open dialog - if (! pp) pp = curr_dirk; - rawfile = zgetfile(ZTX("Open RAW file (ufraw)"),MWIN,"file",pp); // dialog to get RAW filespec - if (! rawfile) return; - } - - if (image_file_type(rawfile) != RAW) { - zmessageACK(Mwin,ZTX("RAW type not registered in User Settings")); - zfree(rawfile); - rawfile = 0; - return; - } - - zmainloop(); // 16.02 - tiffile = raw_to_tiff(rawfile); - shell_quiet(ufrawcommand,tiffile,rawfile); // start ufraw command, convert to tiff - - zfree(rawfile); - rawfile = 0; - - err = stat(tiffile,&statb); - if (err) { - zfree(tiffile); - printz("ufraw produced no tif-16 file\n"); - return; - } - - err = f_open(tiffile,0,0,1); // open tiff file - if (err) { - zfree(tiffile); - return; - } - - update_image_index(tiffile); // update index rec. 15.03 - zfree(tiffile); - - return; -} - - -/********************************************************************************/ - // menu function: open a camera RAW file and edit with the Raw Therapee GUI // opens 'clicked_file' if present or 'rawfile' if not @@ -690,7 +616,7 @@ if (! curr_file) return; - file = gallery_getnext(next,Flastversion,0); + file = gallery_getnext(next,Flastversion); if (! file) return; if (strmatch(file,curr_file)) { @@ -1117,7 +1043,6 @@ // copy or move an image file to a new location char *copymove_file = 0; -char *copymove_loc = 0; // menu function @@ -1449,18 +1374,13 @@ int delete_trash_dialog_event(zdialog *zd, cchar *event) { - int err = 0, yn = 0, nn, Nth, gstat; - char *file, dtdirk[200], trashdir[200]; + int err = 0, yn = 0, Nth, gstat, ftype; + char *file; GError *gerror = 0; GFile *gfile = 0; STATB statb; - static int trashworks = 1, desktopworks = 1; // assume OK until found otherwise - FILE *fid; - cchar *errmess1 = ZTX("GTK g_file_trash() function failed. \n" - "Desktop trash folder will be used."); - - cchar *errmess2 = ZTX("Cannot create desktop trash folder: %s"); + cchar *trashmess = ZTX("GTK g_file_trash() function failed"); if (strmatch(event,"escape")) goto KILL; // escape = cancel @@ -1479,7 +1399,8 @@ goto KILL; } - if (image_file_type(delete_trash_file) != IMAGE) { // must be regular image file + ftype = image_file_type(delete_trash_file); + if (ftype != IMAGE && ftype != RAW) { // must be image or RAW file zmessageACK(Mwin,ZTX("not a known image file")); goto KILL; } @@ -1503,7 +1424,6 @@ if (zd->zstat == 1) goto DELETE; // [delete] button if (zd->zstat == 2) goto TRASH; // [trash] button - DELETE: err = remove(delete_trash_file); // delete file @@ -1511,64 +1431,15 @@ zmessageACK(Mwin,ZTX("delete failed: \n %s"),strerror(errno)); goto KILL; - TRASH: - if (trashworks) // try Linux standard trash - { - gfile = g_file_new_for_path(delete_trash_file); - gstat = g_file_trash(gfile,0,&gerror); // move file to trash - g_object_unref(gfile); - if (! gstat) { - printf("%s\n",gerror->message); - zmessageACK(Mwin,errmess1); - trashworks = 0; - } - } - - if (! trashworks && desktopworks) - { - fid = popen("xdg-user-dir DESKTOP","r"); // get desktop for user locale - if (! fid) { - zmessageACK(Mwin,errmess2,strerror(errno)); - desktopworks = 0; - } - else { - nn = fscanf(fid,"%s",dtdirk); - pclose(fid); - if (nn != 1) { - zmessageACK(Mwin,errmess2,strerror(errno)); - desktopworks = 0; - } - } - - if (desktopworks) { - snprintf(trashdir,200,"%s/fotoxx-trash",dtdirk); // check if trash directory exists - err = stat(trashdir,&statb); - if (! S_ISDIR(statb.st_mode)) { - err = mkdir(trashdir,0750); // create if not already - if (err) { - zmessageACK(Mwin,errmess2,strerror(errno)); - desktopworks = 0; - } - } - } - - if (desktopworks) - { - err = shell_ack("cp \"%s\" \"%s\" ",delete_trash_file,trashdir); // copy image file to desktop trash - if (err) desktopworks = 0; - else { - err = remove(delete_trash_file); // remove original file - if (err) { - zmessageACK(Mwin,ZTX("error: %s"),strerror(errno)); // cannot delete file - goto KILL; - } - } - } - } - - if (! trashworks && ! desktopworks) goto KILL; + gfile = g_file_new_for_path(delete_trash_file); + gstat = g_file_trash(gfile,0,&gerror); // move file to trash + g_object_unref(gfile); + if (gstat) goto BOTH; + zmessageACK(Mwin,trashmess); + if (gerror) printz("%s\n",gerror->message); + goto KILL; BOTH: @@ -2467,20 +2338,18 @@ // open previous or next file in current gallery list // index is -1 or +1 -void x_prev_next(int index) // jump gallery logic added 16.02 +void x_prev_next(int index) // overhauled 16.07 { - char *pfile; - int err, Nth; - static int xbusy = 0; - static int jumpgallery = 0; + using namespace navi; + + char *pp, *newfile = 0, *newgallery = 0; + int err, Nth = 0; + static int xbusy = 0; + static int jumpgallery = 0; static zdialog *zd = 0; - cchar *endmess1 = ZTX("Start of gallery, next: preceding gallery."); - cchar *endmess2 = ZTX("End of gallery, next: following gallery."); - cchar *endmess3 = ZTX("The next preceding gallery does not exist or contains no images. \n" - "(No subdirectories and no further directories are searched)."); - cchar *endmess4 = ZTX("The next following gallery does not exist or contains no images. \n" - "(No subdirectories and no further directories are searched)."); + cchar *endmess1 = ZTX("Start of gallery, preceding gallery: %s"); + cchar *endmess2 = ZTX("End of gallery, following gallery: %s"); F1_help_topic = "prev_next"; @@ -2495,29 +2364,50 @@ if (xbusy) return; // avoid "function busy" xbusy = 1; - pfile = gallery_getnext(index,Flastversion,jumpgallery); // get prev/next file (last version) + newfile = gallery_getnext(index,Flastversion); // get prev/next file (last version) + if (newfile) { + Nth = curr_file_posn + index; // albums can have repeat files + err = f_open(newfile,Nth,0,1,0); // open image or RAW file + if (! err) f_preload(index); // preload next image + goto returnx; + } - if (! pfile) { - if (jumpgallery) { - if (index == -1) zd = zmessage_post(Mwin,3,endmess3); // 2nd try, no prev/next gallery - if (index == +1) zd = zmessage_post(Mwin,3,endmess4); + if (jumpgallery) { // jump to prev/next gallery + jumpgallery = 0; + newgallery = prev_next_gallery(index); + if (! newgallery) goto returnx; + gallery(newgallery,"init"); // load gallery + if (Nfiles - Ndirs == 0) { + m_viewmode(0,"G"); + gallery(0,"paint"); goto returnx; } - if (index == -1) zd = zmessage_post(Mwin,3,endmess1); // prepare to jump to next gallery - if (index == +1) zd = zmessage_post(Mwin,3,endmess2); // if user tries prev/next again - jumpgallery = 1; + if (index == +1) Nth = Ndirs; // get first or last image file + if (index == -1) Nth = Nfiles - 1; + newfile = gallery(0,"find",Nth); + err = f_open(newfile,Nth,0,1,0); // open image or RAW file + if (! err) f_preload(index); // preload next image goto returnx; } - - Nth = curr_file_posn + index; // bugfix, albums with repeat files 16.02.1 - jumpgallery = 0; - err = f_open(pfile,Nth,0,1,0); // open image or RAW file - zfree(pfile); - if (! err) f_preload(index); // preload next image + + newgallery = prev_next_gallery(index); // check for prev/next gallery + if (newgallery) { + pp = strrchr(newgallery,'/'); + if (pp) pp++; + if (index == -1) zd = zmessage_post(Mwin,3,endmess1,pp,0); // prepare jump to prev/next gallery + if (index == +1) zd = zmessage_post(Mwin,3,endmess2,pp,0); // if user tries prev/next again + jumpgallery = 1; + } + else { + if (index == -1) zd = zmessage_post(Mwin,3,endmess1,"(null)",0); // no prev/next gallery + if (index == +1) zd = zmessage_post(Mwin,3,endmess2,"(null)",0); + } returnx: + if (newfile) zfree(newfile); + if (newgallery) zfree(newgallery); Fpaint2(); - xbusy = 0; // 15.05 + xbusy = 0; return; } @@ -2582,7 +2472,7 @@ if (strmatch(menu,ZTX("About"))) zmessageACK(Mwin," %s " __DATE__ "\n %s\n %s\n %s\n %s\n %s\n", - Frelease,Flicense,Fhomepage,Fsoftware,Fcontact,Ftranslators); + Frelease,Flicense,Fhomepage,Fcontact,Fsoftware,Ftranslators); // 16.07 if (strmatch(menu,ZTX("Help"))) // menu button showz_userguide(F1_help_topic); // show topic if there, or page 1 @@ -3845,55 +3735,244 @@ RAW file read functions (there are no write functions) *********************************************************************************/ -// Load PXB (pixbuf, 8 bit color) from RAW file using DCraw program -// f_load_bpc is set to 16 +// RAW file to PXB pixmap (pixbuf, 8-bit color) -PXB * RAW_PXB_load(cchar *rawfile) +PXB * RAW_PXB_load(cchar *rawfile) // use libraw 16.07 { - PXB *pxb; - int handle, err; - char *pp, rawcommand[200]; + libraw_data_t *librawdata = 0; + libraw_processed_image_t *RGBimage = 0; - strcpy(rawcommand,DCrawcommand); // change default DCraw command to - pp = strstr(rawcommand,"-6 "); // output tif-8 instead of tif-16 - if (pp) strcpy(pp, DCrawcommand + (pp+3-rawcommand)); - - handle = shell_asynch("%s -c \"%s\" >temp.tif",rawcommand,rawfile); // convert RAW to tif-8 file - - while (true) { - err = shell_asynch_status(handle); - if (err != -1) break; - zsleep(0.01); - zmainloop(); + PXB *pxb = 0; + int err, ww, hh, nc, rs, bpc, row, col; + uint8 *rgbpixels, *pix1; + uint16 *rgbpixelsx, *pix1x; + uint8 *pxbpixels, *pix2; + + librawdata = libraw_init(0); + + err = libraw_open_file(librawdata,rawfile); + if (err) goto libraw_err1; + + err = libraw_unpack(librawdata); + if (err) goto libraw_err1; + + librawdata->params.use_camera_wb = 1; // camera white balance + librawdata->params.output_color = 1; // sRGB + librawdata->params.output_bps = 8; + librawdata->params.output_tiff = 0; + librawdata->params.user_qual = 0; // bilinear interpolation + + err = libraw_dcraw_process(librawdata); + if (err) goto libraw_err1; + + RGBimage = libraw_dcraw_make_mem_image(librawdata,&err); + if (! RGBimage) goto libraw_err2; + if (RGBimage->type != LIBRAW_IMAGE_BITMAP) goto libraw_err2; + + ww = RGBimage->width; + hh = RGBimage->height; + nc = RGBimage->colors; // 1 or 3 color channels + bpc = RGBimage->bits; // 8 or 16 bits/color + rgbpixels = RGBimage->data; + rgbpixelsx = (uint16 *) rgbpixels; + + if (nc != 1 && nc != 3) goto libraw_err3; + if (bpc != 8 && bpc != 16) goto libraw_err3; + + pxb = PXB_make(ww,hh,0); + rs = pxb->rs; + pxbpixels = pxb->pixels; + + if (nc == 3 && bpc == 8) + { + for (row = 0; row < hh; row++) + for (col = 0; col < ww; col++) + { + pix1 = rgbpixels + row * ww * 3 + col * 3; + pix2 = pxbpixels + row * rs + col * 3; + pix2[0] = pix1[0]; + pix2[1] = pix1[1]; + pix2[2] = pix1[2]; + } + } + + else if (nc == 1 && bpc == 8) + { + for (row = 0; row < hh; row++) + for (col = 0; col < ww; col++) + { + pix1 = rgbpixels + row * ww + col; + pix2 = pxbpixels + row * rs + col * 3; + memset(pix2,pix1[0],3); + } } - pxb = TIFF_PXB_load("temp.tif"); // load the tiff file - f_load_bpc = 16; // RAW file bpc - remove("temp.tif"); // delete the tiff file + else if (nc == 3 && bpc == 16) + { + for (row = 0; row < hh; row++) + for (col = 0; col < ww; col++) + { + pix1x = rgbpixelsx + row * ww * 3 + col * 3; + pix2 = pxbpixels + row * rs + col * 3; + pix2[0] = pix1x[0] >> 8; + pix2[1] = pix1x[1] >> 8; + pix2[2] = pix1x[2] >> 8; + } + } + + else if (nc == 1 && bpc == 16) + { + for (row = 0; row < hh; row++) + for (col = 0; col < ww; col++) + { + pix1x = rgbpixelsx + row * ww + col; + pix2 = pxbpixels + row * rs + col * 3; + pix2[0] = pix2[1] = pix2[2] = pix1x[0] >> 8; + } + } + + libraw_dcraw_clear_mem(RGBimage); + libraw_close(librawdata); + f_load_bpc = bpc; return pxb; + +libraw_err1: + zmessageACK(Mwin,"libraw error %d",err); + goto cleanup; + +libraw_err2: + zmessageACK(Mwin,"libraw failure"); + goto cleanup; + +libraw_err3: + zmessageACK(Mwin,"image is not 8 or 16 bits and 1 or 3 colors"); + goto cleanup; + +cleanup: + if (pxb) PXB_free(pxb); + if (RGBimage) libraw_dcraw_clear_mem(RGBimage); + if (librawdata) libraw_close(librawdata); + return 0; } -// Load PXM (float color) from RAW file using DCraw program -// f_load_bpc is set to 16 +// RAW file to PXM pixmap (float color) -PXM * RAW_PXM_load(cchar *rawfile) +PXM * RAW_PXM_load(cchar *rawfile) // use libraw 16.07 { - PXM *pxm; - int handle, err; + libraw_data_t *librawdata = 0; + libraw_processed_image_t *RGBimage = 0; + + PXM *pxm = 0; + int err, ww, hh, nc, bpc, row, col; + uint8 *rgbpixels, *pix1; + uint16 *rgbpixelsx, *pix1x; + float *pxmpixels, *pix2; + + librawdata = libraw_init(0); + + err = libraw_open_file(librawdata,rawfile); + if (err) goto libraw_err1; + + err = libraw_unpack(librawdata); + if (err) goto libraw_err1; + + librawdata->params.use_camera_wb = 1; // camera white balance + librawdata->params.output_color = 1; // sRGB + librawdata->params.output_bps = 16; + librawdata->params.output_tiff = 0; + librawdata->params.user_qual = 0; // bilinear interpolation + + err = libraw_dcraw_process(librawdata); + if (err) goto libraw_err1; - handle = shell_asynch("%s -c \"%s\" >temp.tif",DCrawcommand,rawfile); // convert RAW to tiff-16 file - while (true) { - err = shell_asynch_status(handle); - if (err != -1) break; - zsleep(0.01); - zmainloop(); + RGBimage = libraw_dcraw_make_mem_image(librawdata,&err); + if (! RGBimage) goto libraw_err2; + if (RGBimage->type != LIBRAW_IMAGE_BITMAP) goto libraw_err2; + + ww = RGBimage->width; + hh = RGBimage->height; + nc = RGBimage->colors; // 1 or 3 color channels + bpc = RGBimage->bits; // 8 or 16 bits/color + rgbpixels = RGBimage->data; + rgbpixelsx = (uint16 *) rgbpixels; + + if (nc != 1 && nc != 3) goto libraw_err3; + if (bpc != 8 && bpc != 16) goto libraw_err3; + + pxm = PXM_make(ww,hh,3); + pxmpixels = pxm->pixels; + + if (nc == 3 && bpc == 8) + { + for (row = 0; row < hh; row++) + for (col = 0; col < ww; col++) + { + pix1 = rgbpixels + row * ww * 3 + col * 3; + pix2 = pxmpixels + row * ww * 3 + col * 3; + pix2[0] = pix1[0]; + pix2[1] = pix1[1]; + pix2[2] = pix1[2]; + } } - pxm = TIFF_PXM_load("temp.tif"); // load the tiff file - remove("temp.tif"); // delete the tiff file - f_load_bpc = 16; + else if (nc == 1 && bpc == 8) + { + for (row = 0; row < hh; row++) + for (col = 0; col < ww; col++) + { + pix1 = rgbpixels + row * ww + col; + pix2 = pxmpixels + row * ww * 3 + col * 3; + pix2[0] = pix2[1] = pix2[2] = pix1[0]; + } + } + + else if (nc == 3 && bpc == 16) + { + for (row = 0; row < hh; row++) + for (col = 0; col < ww; col++) + { + pix1x = rgbpixelsx + row * ww * 3 + col * 3; + pix2 = pxmpixels + row * ww * 3 + col * 3; + pix2[0] = 0.0039 * pix1x[0]; // 0 - 65535 >> 0.0 - 255.6 + pix2[1] = 0.0039 * pix1x[1]; + pix2[2] = 0.0039 * pix1x[2]; + } + } + + else if (nc == 1 && bpc == 16) + { + for (row = 0; row < hh; row++) + for (col = 0; col < ww; col++) + { + pix1x = rgbpixelsx + row * ww + col; + pix2 = pxmpixels + row * ww * 3 + col * 3; + pix2[0] = pix2[1] = pix2[2] = 0.0039 * pix1x[0]; + } + } + + libraw_dcraw_clear_mem(RGBimage); + libraw_close(librawdata); + f_load_bpc = bpc; return pxm; + +libraw_err1: + zmessageACK(Mwin,"libraw error %d",err); + goto cleanup; + +libraw_err2: + zmessageACK(Mwin,"libraw failure"); + goto cleanup; + +libraw_err3: + zmessageACK(Mwin,"image is not 8 or 16 bits and 1 or 3 colors"); + goto cleanup; + +cleanup: + if (pxm) PXM_free(pxm); + if (RGBimage) libraw_dcraw_clear_mem(RGBimage); + if (librawdata) libraw_close(librawdata); + return 0; } diff -Nru fotoxx-16.06/f.gallery.cc fotoxx-16.07/f.gallery.cc --- fotoxx-16.06/f.gallery.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.gallery.cc 2016-07-01 10:19:38.000000000 +0000 @@ -74,9 +74,9 @@ GtkWidget *gallerylabel = 0; // gallery label (album name ...) int galleryseq = 1; // 1/2 = ascending/descending int gallerypainted = 0; // gallery is finished painting - int nfiles = 0; // gallery file count (incl. subdirks) - int ndirs = 0; // gallery subdirectory count 16.02 - int nimages = 0; // gallery image file count + int Nfiles = 0; // gallery file count (incl. subdirks) + int Ndirs = 0; // gallery subdirectory count 16.02 + int Nimages = 0; // gallery image file count char **mdlist = 0; // corresp. metadata list int mdrows = 0; // text rows in metadata list int xwinW = 1000, xwinH = 700; // gallery window initial size @@ -243,14 +243,14 @@ if (! filez) return 0; if (glist) { - for (ii = 0; ii < nfiles; ii++) // free prior gallery list + for (ii = 0; ii < Nfiles; ii++) // free prior gallery list zfree(glist[ii].file); zfree(glist); glist = 0; } if (mdlist) { // clear prior metadata if any - for (ii = 0; ii < nfiles; ii++) + for (ii = 0; ii < Nfiles; ii++) if (mdlist[ii]) zfree(mdlist[ii]); zfree(mdlist); mdlist = 0; @@ -259,7 +259,7 @@ cc = maximages * sizeof(glist_t); glist = (glist_t *) zmalloc(cc); // gallery file list - nfiles = ndirs = nimages = 0; // no files + Nfiles = Ndirs = Nimages = 0; // no files fposn = 0; if (galleryname && filez != galleryname) // don't destroy input @@ -300,7 +300,7 @@ continue; } - if (nfiles == maximages) { + if (Nfiles == maximages) { zmessageACK(Mwin,Btoomanyfiles,maximages); break; } @@ -312,23 +312,23 @@ pp = strrchr(file,'/'); // suppress hidden directories 15.04 if (pp && pp[1] == '.') continue; } - glist[nfiles].file = file; // add to file list - glist[nfiles].file[0] = '!'; // if directory, make it sort first - glist[nfiles].fdate[0] = 0; // no file date - glist[nfiles].pdate[0] = 0; // no photo date - nfiles++; - ndirs++; // 16.02 + glist[Nfiles].file = file; // add to file list + glist[Nfiles].file[0] = '!'; // if directory, make it sort first + glist[Nfiles].fdate[0] = 0; // no file date + glist[Nfiles].pdate[0] = 0; // no photo date + Nfiles++; + Ndirs++; // 16.02 } else if (ftype == IMAGE || ftype == RAW) { // supported image or RAW file err = stat(file,&statbuf); if (err) continue; - glist[nfiles].file = file; // add to file list + glist[Nfiles].file = file; // add to file list err = get_sxrec_min(file,fdate,pdate,size); // file date, photo date, size - strcpy(glist[nfiles].fdate,fdate); - strcpy(glist[nfiles].pdate,pdate); - nfiles++; - nimages++; + strcpy(glist[Nfiles].fdate,fdate); + strcpy(glist[Nfiles].pdate,pdate); + Nfiles++; + Nimages++; } else { @@ -339,11 +339,11 @@ zfree(findname); - if (nfiles > 1) // sort the glist records - HeapSort((char *) glist, sizeof(glist_t), nfiles, gallery_comp); + if (Nfiles > 1) // sort the glist records + HeapSort((char *) glist, sizeof(glist_t), Nfiles, gallery_comp); gallery_monitor("start"); // monitor gallery file changes - curr_file_count = nimages; // gallery image file count + curr_file_count = Nimages; // gallery image file count return 0; } @@ -363,12 +363,12 @@ if (! pp) break; err = stat(pp,&statbuf); // check file exists if (err) continue; - glist[nfiles].file = zstrdup(pp); // add to file list + glist[Nfiles].file = zstrdup(pp); // add to file list get_sxrec_min(pp,fdate,pdate,size); // file date, photo date, size - strcpy(glist[nfiles].fdate,fdate); - strcpy(glist[nfiles].pdate,pdate); - nfiles++; - if (nfiles == maximages) { + strcpy(glist[Nfiles].fdate,fdate); + strcpy(glist[Nfiles].pdate,pdate); + Nfiles++; + if (Nfiles == maximages) { zmessageACK(Mwin,Btoomanyfiles,maximages); break; } @@ -377,8 +377,8 @@ fclose(fid); zfree(file); - nimages = nfiles; - curr_file_count = nimages; // gallery image file count + Nimages = Nfiles; + curr_file_count = Nimages; // gallery image file count if (curr_file) { Nth = gallery_position(curr_file,0); // current file in the new gallery? @@ -390,8 +390,8 @@ if (strmatch(action,"sort")) // sort the file list from init { - if (nfiles < 2) return 0; - HeapSort((char *) glist, sizeof(glist_t), nfiles, gallery_comp); // sort the glist records + if (Nfiles < 2) return 0; + HeapSort((char *) glist, sizeof(glist_t), Nfiles, gallery_comp); // sort the glist records return 0; } @@ -400,37 +400,37 @@ if (gallerytype == METADATA) return 0; // metadata report fposn = Nth; // file position from caller if (fposn < 0) fposn = 0; // limit to allowed range - if (fposn > nfiles) fposn = nfiles; + if (fposn > Nfiles) fposn = Nfiles; - if (nfiles == maximages-1) { // no room + if (Nfiles == maximages-1) { // no room zmessageACK(Mwin,Btoomanyfiles,maximages); return 0; } - for (ii = nfiles; ii > fposn; ii--) // create hole in list + for (ii = Nfiles; ii > fposn; ii--) // create hole in list glist[ii] = glist[ii-1]; glist[fposn].file = zstrdup(filez); // put new file in hole get_sxrec_min(filez,fdate,pdate,size); // file date, photo date, size - strcpy(glist[nfiles].fdate,fdate); - strcpy(glist[nfiles].pdate,pdate); - nfiles++; - nimages++; // bugfix + strcpy(glist[Nfiles].fdate,fdate); + strcpy(glist[Nfiles].pdate,pdate); + Nfiles++; + Nimages++; // bugfix } if (strmatch(action,"delete")) // delete file from list { fposn = Nth; // file position from caller must be OK - if (fposn < 0 || fposn > nfiles-1) return 0; - nfiles--; - if (*glist[fposn].file == '!') ndirs--; // reduce directory count 16.02 - else nimages--; // reduce image file count + if (fposn < 0 || fposn > Nfiles-1) return 0; + Nfiles--; + if (*glist[fposn].file == '!') Ndirs--; // reduce directory count 16.02 + else Nimages--; // reduce image file count zfree(glist[fposn].file); // remove glist record - for (ii = fposn; ii < nfiles; ii++) // close the hole + for (ii = fposn; ii < Nfiles; ii++) // close the hole glist[ii] = glist[ii+1]; // gcc bug workaround removed 16.01 if (mdlist) { if (mdlist[fposn]) zfree(mdlist[fposn]); // delete corresp. metadata - for (ii = fposn; ii < nfiles; ii++) // close the hole + for (ii = fposn; ii < Nfiles; ii++) // close the hole mdlist[ii] = mdlist[ii+1]; // gcc bug workaround removed 16.01 } } @@ -438,7 +438,7 @@ if (strmatch(action,"find")) // return Nth file in gallery { fposn = Nth; // file position from caller must be OK - if (fposn < 0 || fposn > nfiles-1) return 0; + if (fposn < 0 || fposn > Nfiles-1) return 0; file2 = zstrdup(glist[fposn].file); // get Nth file file2[0] = '/'; // restore initial '/' err = stat(file2,&statbuf); @@ -448,7 +448,7 @@ if (strmatch(action,"get1st")) // return 1st image file in gallery { - for (Nth = 0; Nth < nfiles; Nth++) + for (Nth = 0; Nth < Nfiles; Nth++) { if (glist[Nth].file[0] == '!') continue; // subdirectory file2 = zstrdup(glist[Nth].file); // get Nth file @@ -553,7 +553,7 @@ xcols = int(0.1 + 1.0 * xwinW / thumbW); // (almost) fit in window if (xrows < 1) xrows = 1; if (xcols < 1) xcols = 1; - nrows = (nfiles+xcols-1) / xcols; // thumbnail rows, 1 or more + nrows = (Nfiles+xcols-1) / xcols; // thumbnail rows, 1 or more if (nrows < 1) nrows = 1; drwingW = xcols * thumbW + margin + 10; // layout size for entire gallery @@ -589,7 +589,7 @@ for (col = 0; col < xcols; col++) // draw all columns in row { ii = row * xcols + col; // next file - if (ii >= nfiles) goto endloops; // exit 2 nested loops + if (ii >= Nfiles) goto endloops; // exit 2 nested loops p0 = *glist[ii].file; // replace possible '!' with '/' *glist[ii].file = '/'; @@ -698,7 +698,7 @@ xrows = int(0.1 + 1.0 * xwinH / thumbH); // get thumbnail rows fitting in window if (xrows < 1) xrows = 1; xcols = 1; // force cols = 1 - nrows = nfiles; // thumbnail rows + nrows = Nfiles; // thumbnail rows drwingW = xwinW; // layout size for entire file list if (drwingW < 800) drwingW = 800; @@ -738,7 +738,7 @@ for (col = 0; col < xcols; col++) { ii = row * xcols + col; // next file - if (ii >= nfiles) goto endloops; // exit 2 nested loops + if (ii >= Nfiles) goto endloops; // exit 2 nested loops p0 = *glist[ii].file; // replace possible ! with / *glist[ii].file = '/'; @@ -941,8 +941,8 @@ { F1_help_topic = "sync_gallery"; // 15.07 if (! curr_file) return; - m_viewmode(0,"G"); gallery(curr_file,"init"); + m_viewmode(0,"G"); gallery(curr_file,"paint"); return; } @@ -1354,7 +1354,7 @@ char *filez; STATB statb; - if (! nfiles) return; // empty gallery + if (! Nfiles) return; // empty gallery if (! gallerypainted) return; // not initialized eventB = (GdkEventButton *) event; @@ -1383,11 +1383,11 @@ else poswidth = posheight = 0; if (! xcols) return; - nrows = 1 + (nfiles-1) / xcols; // total thumbnail rows, 1 or more + nrows = 1 + (Nfiles-1) / xcols; // total thumbnail rows, 1 or more if (col < 0 || col >= xcols) return; // mouse not on a thumbnail if (row < 0 || row >= nrows) return; Nth = xcols * row + col; // mouse at this thumbnail (image file) - if (Nth >= nfiles) return; + if (Nth >= Nfiles) return; if (evtype == GDK_MOTION_NOTIFY) { if (! Bdown) return; @@ -1567,16 +1567,16 @@ if (FGWM != 'G') return; if (gallerytype == GDIR) - snprintf(title,200,"DIRECTORY %s %d files",galleryname,nfiles); + snprintf(title,200,"DIRECTORY %s %d files",galleryname,Nfiles); else if (gallerytype == SEARCH || gallerytype == METADATA) - snprintf(title,200,"SEARCH RESULTS %d files",nimages); + snprintf(title,200,"SEARCH RESULTS %d files",Nimages); else if (gallerytype == ALBUM) { pp = strrchr(navi::galleryname,'/'); if (! pp) pp = navi::galleryname; else pp++; - snprintf(title,200,"ALBUM %s %d files",pp,nimages); + snprintf(title,200,"ALBUM %s %d files",pp,Nimages); } else if (gallerytype == RECENT) @@ -1595,18 +1595,15 @@ // Return previous or next image file from curr_file in the gallery file list. // If lastver is set, only the last edit version is returned. // (gallery must be sorted by file name (version sequence)). -// if jumpgallery is set, last/first file from prev/next gallery can be returned. // Returns null if no previous/next file found. // returned file is subject for zfree(). -char * gallery_getnext(int index, int lastver, int jumpgallery) // overhauled 16.02 +char * gallery_getnext(int index, int lastver) // overhauled 16.07 { - using namespace navi; - char * get_rootname(char *file); - int prev_next_gallery(int index); + char * prev_next_gallery(int index); - int Nth, err; + int Nth; char *rootname1 = 0, *rootname2 = 0; // file names without .vNN and .ext char *file = 0, *filever = 0; @@ -1617,13 +1614,9 @@ while (true) { Nth += 1; - if (Nth >= nfiles) { // no more files this gallery + if (Nth >= Nfiles) { // no more files this gallery if (filever) break; // return last file version - if (! jumpgallery) goto retnull; // no jump to next gallery - err = prev_next_gallery(+1); // get next gallery - if (err) goto retnull; - if (nimages == 0) goto retnull; - Nth = ndirs; // first file + goto retnull; // no more files } if (file) zfree(file); file = gallery(0,"find",Nth); // get next file @@ -1642,6 +1635,7 @@ filever = file; // save last file with same rootname file = 0; } + if (file) zfree(file); file = filever; goto retfile; @@ -1653,16 +1647,7 @@ while (true) { Nth -= 1; - if (Nth < ndirs) { // no more files this gallery - if (! jumpgallery) goto retnull; // no jump to previous gallery - err = prev_next_gallery(-1); // get previous gallery - if (err) goto retnull; - if (nimages == 0) goto retnull; - Nth = nfiles - 1; // last file - if (file) zfree(file); - file = gallery(0,"find",Nth); // return last file - goto retfile; - } + if (Nth < Ndirs) goto retnull; // no more files if (file) zfree(file); file = gallery(0,"find",Nth); // get previous file if (! file) goto retnull; @@ -1700,17 +1685,16 @@ } -// load the previous or next gallery from the current gallery -// previous/next defined by subdirectory sequence in parent directory +// Find the previous or next gallery from the current gallery. +// (previous/next defined by subdirectory sequence in parent directory) +// returned gallery is subject for zfree(). -int prev_next_gallery(int index) // 16.02 +char * prev_next_gallery(int index) // overhauled 16.07 { - using namespace navi; - - int nn, Nth, err = 0; + int nn, Nth; char *parentdir = 0, *olddir = 0, *newdir = 0, *file = 0; - if (gallerytype != GDIR) goto errret; + if (gallerytype != GDIR) goto errret; // gallery not a physical directory olddir = zstrdup(galleryname); // olddir = current gallery / directory if (! olddir) goto errret; @@ -1722,41 +1706,30 @@ parentdir[nn] = 0; gallery(parentdir,"init"); // gallery = parent - for (Nth = 0; Nth < ndirs; Nth++) { // find olddir in parent + for (Nth = 0; Nth < Ndirs; Nth++) { // find olddir in parent if (file) zfree(file); file = gallery(0,"find",Nth); if (! file) goto errret; if (strmatch(file,olddir)) break; } + + Nth += index; // previous or next directory + if (Nth < 0 || Nth >= Ndirs) goto errret; + newdir = gallery(0,"find",Nth); + if (newdir) goto okret; - if (Nth == ndirs) goto errret; // not found (?) +errret: + if (newdir) zfree(newdir); + newdir = 0; - if (index == 1) { // newdir = directory after olddir - Nth += 1; - if (Nth >= ndirs) goto errret; // none, olddir is last - newdir = gallery(0,"find",Nth); - if (! newdir) goto errret; - gallery(newdir,"init"); // gallery = newdir - if (nimages) goto okret; - } - - if (index == -1) { // newdir = directory before olddir - Nth -= 1; - if (Nth < 0) goto errret; // none, olddir is first - newdir = gallery(0,"find",Nth); - if (! newdir) goto errret; - gallery(newdir,"init"); // gallery = newdir - if (nimages) goto okret; - } - - errret: err = 1; - gallery(olddir,"init"); // restore old directory - okret: +okret: + if (olddir) { + gallery(olddir,"init"); // restore old directory + zfree(olddir); + } if (parentdir) zfree(parentdir); - if (olddir) zfree(olddir); - if (newdir) zfree(newdir); if (file) zfree(file); - return err; + return newdir; } @@ -1769,18 +1742,18 @@ { int ii; - if (! nfiles) return -1; + if (! Nfiles) return -1; if (! file) return -1; - if (Nth >= 0 && Nth < nfiles) ii = Nth; + if (Nth >= 0 && Nth < Nfiles) ii = Nth; else ii = 0; if (strmatch(file+1,glist[ii].file+1)) return ii; // file[0] may be ! - for (ii = 0; ii < nfiles; ii++) + for (ii = 0; ii < Nfiles; ii++) if (strmatch(file+1,glist[ii].file+1)) break; - if (ii < nfiles) return ii; + if (ii < Nfiles) return ii; return -1; } @@ -2184,60 +2157,29 @@ // Make a thumbnail pixbuf from a supported RAW file type -PIXBUF * get_thumbnail_pixbuf_raw(char *rawfile, int size) // 15.04 +PIXBUF * get_thumbnail_pixbuf_raw(char *rawfile, int size) // 16.07 { - int err; - STATB statb; - GError *gerror = 0; PIXBUF *thumbpxb = 0; PXB *rawpxb; - char *pp, *thumbfile = 0, *thumbfile2 = 0; - - err = shell_quiet("dcraw -e \"%s\" ",rawfile); // extract thumbnail from RAW file - if (err) goto useraw; // output is rawfile.thumb.xxx - - thumbfile = zstrdup(rawfile,12); - pp = strrchr(thumbfile,'.'); - if (! pp) pp = thumbfile + strlen(thumbfile); + int ww1, hh1, ww2, hh2; - strcpy(pp,".thumb.jpg"); // try rawfile.thumb.jpg - err = stat(thumbfile,&statb); - if (! err) { - thumbpxb = gdk_pixbuf_new_from_file_at_size(thumbfile,size,size,&gerror); - if (! thumbpxb) goto useraw; - goto fini; - } - - strcpy(pp,".thumb.ppm"); // try rawfile.thumb.ppm - err = stat(thumbfile,&statb); - if (err) goto useraw; - - thumbfile2 = zstrdup(thumbfile); // convert .ppm to .jpg - pp = strrchr(thumbfile2,'.'); - strcpy(pp,".jpg"); - err = shell_quiet("pnmtojpeg \"%s\" >\"%s\" ",thumbfile,thumbfile2); - if (err) goto useraw; - thumbpxb = gdk_pixbuf_new_from_file_at_size(thumbfile2,size,size,&gerror); - if (! thumbpxb) goto useraw; - goto fini; - -useraw: // use RAW image to make thumbnail rawpxb = RAW_PXB_load(rawfile); - if (! rawpxb) goto fini; - thumbpxb = gdk_pixbuf_scale_simple(rawpxb->pixbuf,size,size,BILINEAR); - PXB_free(rawpxb); + if (! rawpxb) return 0; -fini: - if (thumbfile) { - remove(thumbfile); - zfree(thumbfile); - } + ww1 = rawpxb->ww; + hh1 = rawpxb->hh; - if (thumbfile2) { - remove(thumbfile2); - zfree(thumbfile2); + if (ww1 > hh1) { + ww2 = size; + hh2 = ww2 * hh1 / ww1; } - + else { + hh2 = size; + ww2 = hh2 * ww1 / hh1; + } + + thumbpxb = gdk_pixbuf_scale_simple(rawpxb->pixbuf,ww2,hh2,BILINEAR); + PXB_free(rawpxb); return thumbpxb; } diff -Nru fotoxx-16.06/f.image.cc fotoxx-16.07/f.image.cc --- fotoxx-16.06/f.image.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.image.cc 2016-07-01 10:19:38.000000000 +0000 @@ -1135,6 +1135,7 @@ int ww1, hh1, ww2, hh2, rs1, rs2, nc1, nc2; uint8 *pixels1, *pixels2; int busy[max_threads]; + int nwt; } PIXBUF * pixbuf_rescale_fast(PIXBUF *pixbuf1, int ww, int hh) // 15.02 @@ -1146,6 +1147,8 @@ PIXBUF *pixbuf2; uint8 *pix2; + nwt = NWT - 1; // threads to use 16.07 + pixbuf2 = gdk_pixbuf_new(GDKRGB,0,8,ww,hh); if (! pixbuf2) { zmessageACK(Mwin,"memory allocation failure"); @@ -1164,12 +1167,12 @@ nc2 = gdk_pixbuf_get_n_channels(pixbuf2); // 15.08 pixels2 = gdk_pixbuf_get_pixels(pixbuf2); - for (int ii = 0; ii < NWT; ii++) { // start working threads + for (int ii = 0; ii < nwt; ii++) { // start working threads busy[ii] = 1; start_detached_thread(pixbuf_rescale_fast_thread,&Nval[ii]); } - for (int ii = 0; ii < NWT; ii++) // wait for all done + for (int ii = 0; ii < nwt; ii++) // wait for all done while (busy[ii]) zsleep(0.001); for (int py2 = 0; py2 < hh2; py2++) { // set last column of pixels black @@ -1196,7 +1199,7 @@ fww = 1.0 * ww1 / ww2; fhh = 1.0 * hh1 / hh2; - for (py2 = index; py2 < hh2-1; py2 += NWT) // loop output pixel rows + for (py2 = index; py2 < hh2-1; py2 += nwt) // loop output pixel rows for (px2 = 0; px2 < ww2-1; px2++) // loop output pixel cols { fx1 = px2 * fww; // real position in input image diff -Nru fotoxx-16.06/f.mashup.cc fotoxx-16.07/f.mashup.cc --- fotoxx-16.06/f.mashup.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.mashup.cc 2016-07-01 10:19:38.000000000 +0000 @@ -2431,14 +2431,14 @@ | | | Text File: [Open] [Save] | | | - | [Add] [Delete] [Done] | + | [clear] [Add] [Delete] [Done] | |_____________________________________________________| ***/ if (! strmatch(focus,"text")) select("",-1); // nothing selected - zdtext = zdialog_new(ZTX("Edit Text"),Mwin,Badd,Bdelete,Bdone,null); + zdtext = zdialog_new(ZTX("Edit Text"),Mwin,Bclear,Badd,Bdelete,Bdone,null); zdialog *zd = zdtext; zdialog_add_widget(zd,"label","intro","dialog",intro,"space=3"); @@ -2527,13 +2527,20 @@ if (zd->zstat) { - if (zd->zstat == 1) { // add + if (zd->zstat == 1) { // clear 16.07 + zd->zstat = 0; + zdialog_stuff(zd,"text",""); + focus = ""; + return 1; + } + + if (zd->zstat == 2) { // add zd->zstat = 0; add_text(); // zdialog inputs >> new text image return 1; } - if (zd->zstat == 2) { // delete + if (zd->zstat == 3) { // delete zd->zstat = 0; if (! strmatch(focus,"text")) return 1; ii = focusii; diff -Nru fotoxx-16.06/f.meta.cc fotoxx-16.07/f.meta.cc --- fotoxx-16.06/f.meta.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.meta.cc 2016-07-01 10:19:38.000000000 +0000 @@ -57,8 +57,8 @@ delete_image_index delete index record for deleted image file m_batch_geotags add given geotag to selected set of images - geotags_choosecity get possible location matches for partial input, choose one - web_geocode use web geocoding service to map location to earth coordinates + geotags_chooseloc get possible location matches for partial input, choose one + web_geocode web service to map location to earth coordinates init_geolocs load geolocations table from image index file get_geolocs get earth coordinates for a city or location put_geolocs put new location data in geolocations table @@ -128,7 +128,7 @@ void deftags_stuff(zdialog *zd, cchar *catg); // tags_deftags[] >> zd widget deftags void defcats_stuff(zdialog *zd); // defined categories >> " widget defcats -int geotags_choosecity(char *location[2], char *coord[2]); // choose one city from multiple options +int geotags_chooseloc(char *location[2], char *coord[2]); // choose location from multiple options cchar * web_geocode(char *location[2], char *coord[2]); // find earth coordinates via web service int init_geolocs(); // load geolocs table from index file int get_geolocs(char *location[2], char *coord[2], char *matches[20][2]); // get earth coordinates from location @@ -143,7 +143,7 @@ char meta_tags[tagFcc]; // tags for current image file char meta_comments[exif_maxcc]; // image comments expanded char meta_caption[exif_maxcc]; // image caption - char meta_city[100], meta_country[100]; // geolocs: city, country + char meta_location[100], meta_country[100]; // geolocs: city/location, country char meta_lati[20], meta_longi[20]; // geolocs: earth coordinates (-123.4567) char p_meta_pdate[16]; // previous file metadata 16.03 @@ -151,7 +151,7 @@ char p_meta_tags[tagFcc]; char p_meta_comments[exif_maxcc]; char p_meta_caption[exif_maxcc]; - char p_meta_city[100], p_meta_country[100]; + char p_meta_location[100], p_meta_country[100]; char p_meta_lati[20], p_meta_longi[20]; char *tags_deftags[maxtagcats]; // defined tags: catg: tag1, ... tagN, @@ -160,7 +160,7 @@ char keyname[40], keydata[exif_maxcc]; struct geolocs_t { // geolocations table, memory DB - char *city, *country; // maps locations <-> earth coordinates + char *location, *country; // maps locations <-> earth coordinates char *lati, *longi; float flati, flongi; }; @@ -582,7 +582,7 @@ | Caption [___________________________________________] | | Comments [__________________________________________] | | - - - - - - - - - - - - - - - - - - - - - - - - - - - | - | city [_____________] country [____________] | + | location [_____________] country [____________] | // 16.07 | latitude [__________] longitude [__________] | | [Find] [Web] [Clear] Geocoding service by MapQuest | | - - - - - - - - - - - - - - - - - - - - - - - - - - - | @@ -654,10 +654,10 @@ zdialog_add_widget(zd,"hsep","sep","dialog",0,"space=3"); - // city [_____________] country [____________] + // location [_____________] country [____________] zdialog_add_widget(zd,"hbox","hbcc","dialog",0,"space=3"); - zdialog_add_widget(zd,"label","labcity","hbcc",ZTX("city"),"space=5"); - zdialog_add_widget(zd,"entry","city","hbcc",0,"expand"); + zdialog_add_widget(zd,"label","labloc","hbcc",ZTX("location"),"space=5"); + zdialog_add_widget(zd,"entry","location","hbcc",0,"expand"); zdialog_add_widget(zd,"label","space","hbcc",0,"space=5"); zdialog_add_widget(zd,"label","labcountry","hbcc",ZTX("country"),"space=5"); zdialog_add_widget(zd,"entry","country","hbcc",0,"expand"); @@ -761,7 +761,7 @@ repl_1str(meta_comments,cctext,"\\n","\n"); zdialog_stuff(zd,"comments",cctext); - zdialog_stuff(zd,"city",meta_city); // retain "null" 16.06 + zdialog_stuff(zd,"location",meta_location); // retain "null" 16.07 zdialog_stuff(zd,"country",meta_country); zdialog_stuff(zd,"lati",meta_lati); zdialog_stuff(zd,"longi",meta_longi); @@ -885,7 +885,7 @@ int Nmatch, err, gstat; char *location[2], *coord[2], *matches[20][2]; - char city[100], country[100]; + char locatn[100], country[100]; char lati[20], longi[20], *pp; float fcoord[2]; @@ -910,7 +910,7 @@ return 1; } - if (strstr("city country lati longi",event)) { // dialog inputs changed + if (strstr("location country lati longi",event)) { // dialog inputs changed Fmetamod++; return 1; } @@ -922,21 +922,21 @@ if (strmatch(event,"geofind")) // [find] search location data { - zdialog_fetch(zd,"city",city,99); // get city [country] from dialog + zdialog_fetch(zd,"location",locatn,99); // get city/location [country] from dialog zdialog_fetch(zd,"country",country,99); - city[0] = toupper(city[0]); // capitalize 16.06 + locatn[0] = toupper(locatn[0]); // capitalize 16.06 country[0] = toupper(country[0]); - zdialog_stuff(zd,"city",city); + zdialog_stuff(zd,"location",locatn); zdialog_stuff(zd,"country",country); - location[0] = city; + location[0] = locatn; location[1] = country; Nmatch = get_geolocs(location,coord,matches); // find in geolocs[*] table if (Nmatch == 0) // no matches - zmessageACK(Mwin,ZTX("city not found")); + zmessageACK(Mwin,ZTX("location not found")); else if (Nmatch == 1) { // one match - zdialog_stuff(zd,"city",matches[0][0]); // stuff matching city data into dialog + zdialog_stuff(zd,"location",matches[0][0]); // stuff matching location data into dialog zdialog_stuff(zd,"country",matches[0][1]); zdialog_stuff(zd,"lati",coord[0]); zdialog_stuff(zd,"longi",coord[1]); @@ -944,9 +944,9 @@ } else { // multiple matching cities - gstat = geotags_choosecity(location,coord); // ask user to choose one + gstat = geotags_chooseloc(location,coord); // ask user to choose one if (gstat == 1) { // response is available - zdialog_stuff(zd,"city",location[0]); // stuff matching city data into dialog + zdialog_stuff(zd,"location",location[0]); // stuff matching location data into dialog zdialog_stuff(zd,"country",location[1]); zdialog_stuff(zd,"lati",coord[0]); zdialog_stuff(zd,"longi",coord[1]); @@ -959,14 +959,14 @@ if (strmatch(event,"geoweb")) // [web] search location data { - zdialog_fetch(zd,"city",city,99); // get city [country] from dialog + zdialog_fetch(zd,"location",locatn,99); // get location [country] from dialog zdialog_fetch(zd,"country",country,99); - city[0] = toupper(city[0]); // capitalize 16.06 + locatn[0] = toupper(locatn[0]); // capitalize 16.06 country[0] = toupper(country[0]); - zdialog_stuff(zd,"city",city); + zdialog_stuff(zd,"location",locatn); zdialog_stuff(zd,"country",country); - location[0] = city; + location[0] = locatn; location[1] = country; coord[0] = lati; coord[1] = longi; @@ -974,7 +974,7 @@ errmess = web_geocode(location,coord); // look-up in web service if (errmess) zmessageACK(Mwin,errmess); // fail else { - zdialog_stuff(zd,"city",location[0]); // success, return all data + zdialog_stuff(zd,"location",location[0]); // success, return all data zdialog_stuff(zd,"country",location[1]); // (location may have been completed) zdialog_stuff(zd,"lati",coord[0]); zdialog_stuff(zd,"longi",coord[1]); @@ -986,7 +986,7 @@ if (strmatch(event,"geoclear")) // [clear] location data { - zdialog_stuff(zd,"city",""); // erase dialog fields + zdialog_stuff(zd,"location",""); // erase dialog fields zdialog_stuff(zd,"country",""); zdialog_stuff(zd,"lati",""); zdialog_stuff(zd,"longi",""); @@ -1110,8 +1110,6 @@ if (! zd->zstat) return 1; // wait for completion - m_viewmode(0,"F"); // back to F view - if (zd->zstat == 1) { // [manage tags] zd->zstat = 0; // keep dialog active zdialog_show(zd,0); // hide parent dialog @@ -1135,7 +1133,7 @@ else zdialog_stuff(zd,RN,0); } - zdialog_stuff(zd,"city",p_meta_city); // get last-used geotags 16.06 + zdialog_stuff(zd,"location",p_meta_location); // get last-used geotags 16.06 zdialog_stuff(zd,"country",p_meta_country); zdialog_stuff(zd,"lati",p_meta_lati); zdialog_stuff(zd,"longi",p_meta_longi); @@ -1191,7 +1189,7 @@ zdialog_fetch(zd,"comments",cctext,exif_maxcc); // get new comments repl_1str(cctext,meta_comments,"\n","\\n"); // replace newlines with "\n" - zdialog_fetch(zd,"city",city,99); // get city [country] from dialog + zdialog_fetch(zd,"location",locatn,99); // get location [country] from dialog zdialog_fetch(zd,"country",country,99); zdialog_fetch(zd,"lati",lati,20); // and latitude, longitude zdialog_fetch(zd,"longi",longi,20); @@ -1201,7 +1199,7 @@ pp = strchr(longi,','); if (pp) *pp = '.'; - location[0] = city; + location[0] = locatn; location[1] = country; coord[0] = lati; coord[1] = longi; @@ -1216,7 +1214,7 @@ } } - strncpy0(meta_city,city,99); // save geotags in image file EXIF 16.06 + strncpy0(meta_location,locatn,99); // save geotags in image file EXIF 16.06 strncpy0(meta_country,country,99); // and in search-index file strncpy0(meta_lati,lati,12); strncpy0(meta_longi,longi,12); @@ -1406,7 +1404,7 @@ zdialog_add_widget(zd,"hbox","hb1","dialog",0,"expand"); zdialog_add_widget(zd,"vbox","vb1","hb1",0,"expand|space=3"); - zdialog_add_widget(zd,"label","lab1","vb1",ZTX("click to select"),"size=25"); // 16.02 + zdialog_add_widget(zd,"label","lab1","vb1",ZTX("click to select"),"size=25"); zdialog_add_widget(zd,"scrwin","scroll","vb1",0,"expand"); zdialog_add_widget(zd,"text","mtext","scroll",0,"expand"); zdialog_add_widget(zd,"vbox","vb2","hb1",0,"expand|space=3"); @@ -1787,7 +1785,7 @@ save_filemeta(file); // save tag changes } - write_popup_text("write","COMPLETED"); + write_popup_text("write",Bcompleted); for (ii = 0; filelist[ii]; ii++) zfree(filelist[ii]); @@ -2073,7 +2071,7 @@ save_filemeta(file); // save tag changes } - write_popup_text("write","COMPLETED"); + write_popup_text("write",Bcompleted); cleanup: // free resources @@ -2150,7 +2148,7 @@ zdialog_add_widget(zd,"vbox","vb1","hb1"); zdialog_add_widget(zd,"vbox","vb2","hb1",0,"expand|space=5"); - zdialog_add_widget(zd,"label","lab1","vb1",ZTX("click to select"),"size=25"); // 16.02 + zdialog_add_widget(zd,"label","lab1","vb1",ZTX("click to select"),"size=25"); zdialog_add_widget(zd,"scrwin","scroll","vb1",0,"expand"); zdialog_add_widget(zd,"text","mtext","scroll",0,"expand"); @@ -2266,7 +2264,7 @@ if (zdexifview) meta_view(0); // update exif view if active } - write_popup_text("write","COMPLETED"); + write_popup_text("write",Bcompleted); cleanup: @@ -3349,7 +3347,7 @@ // image file EXIF/IPTC data >> memory data: // meta_pdate, meta_rating, meta_tags, meta_comments, meta_caption, -// meta_city, meta_country, meta_lati, meta_longi +// meta_location, meta_country, meta_lati, meta_longi void load_filemeta(cchar *file) { @@ -3363,21 +3361,21 @@ char *ppv[10], *imagedate, *imagekeywords, *imagestars, *imagesize; char *imagecomms, *imagecapt; - char *imagecity, *imagecountry, *imagelati, *imagelongi; + char *imageloc, *imagecountry, *imagelati, *imagelongi; strncpy0(p_meta_pdate,meta_pdate,16); // save for use by edit_metadata 16.06 strncpy0(p_meta_rating,meta_rating,4); // [Prev] button strncpy0(p_meta_tags,meta_tags,tagFcc); strncpy0(p_meta_caption,meta_caption,exif_maxcc); strncpy0(p_meta_comments,meta_comments,exif_maxcc); - strncpy0(p_meta_city,meta_city,100); + strncpy0(p_meta_location,meta_location,100); strncpy0(p_meta_country,meta_country,100); strncpy0(p_meta_lati,meta_lati,20); strncpy0(p_meta_longi,meta_longi,20); *meta_tags = *meta_pdate = *meta_comments = *meta_caption = 0; strcpy(meta_rating,"0"); - *meta_city = *meta_country = *meta_lati = *meta_longi = 0; + *meta_location = *meta_country = *meta_lati = *meta_longi = 0; exif_get(file,exifkeys,ppv,10); // get metadata from image file imagedate = ppv[0]; @@ -3386,7 +3384,7 @@ imagesize = ppv[3]; imagecomms = ppv[4]; imagecapt = ppv[5]; - imagecity = ppv[6]; + imageloc = ppv[6]; imagecountry = ppv[7]; imagelati = ppv[8]; imagelongi = ppv[9]; @@ -3436,11 +3434,11 @@ zfree(imagecapt); } - if (imagecity) { // geotags - strncpy0(meta_city,imagecity,99); - zfree(imagecity); + if (imageloc) { // geotags + strncpy0(meta_location,imageloc,99); + zfree(imageloc); } - else strcpy(meta_city,"null"); // replace missing data with "null" + else strcpy(meta_location,"null"); // replace missing data with "null" if (imagecountry) { strncpy0(meta_country,imagecountry,99); @@ -3487,9 +3485,9 @@ exifdata[4] = meta_comments; exifdata[5] = meta_caption; - if (*meta_city < ' ' || strmatch(meta_city,"null")) // geotags 16.06 + if (*meta_location < ' ' || strmatch(meta_location,"null")) // geotags 16.06 exifdata[6] = ""; - else exifdata[6] = meta_city; // if "null" erase EXIF + else exifdata[6] = meta_location; // if "null" erase EXIF if (*meta_country < ' ' || strmatch(meta_country,"null")) exifdata[7] = ""; @@ -3550,12 +3548,12 @@ if (*meta_comments) // user comments sxrec.comms = meta_comments; - if (*meta_city <= ' ') strcpy(meta_city,"null"); // geotags 16.06 + if (*meta_location <= ' ') strcpy(meta_location,"null"); // geotags 16.06 if (*meta_country <= ' ') strcpy(meta_country,"null"); - if (*meta_lati <= ' ') strcpy(meta_lati,"null"); // "null" for city/country is searchable + if (*meta_lati <= ' ') strcpy(meta_lati,"null"); // "null" for location/country is searchable if (*meta_longi <= ' ') strcpy(meta_longi,"null"); - snprintf(gtags,200,"%s^ %s^ %s^ %s",meta_city, meta_country, + snprintf(gtags,200,"%s^ %s^ %s^ %s",meta_location, meta_country, meta_lati, meta_longi); sxrec.gtags = gtags; @@ -3589,7 +3587,7 @@ zdialog *zd; int ii, err; char *location[2], *coord[2]; - char city[100], country[100]; + char locatn[100], country[100]; char lati[20], longi[20], *pp; cchar *mapquest1 = "Geocoding web service courtesy of"; cchar *mapquest2 = "http://www.mapquest.com"; @@ -3603,7 +3601,7 @@ Batch Add Geotags [select files] NN files selected - city [______________] country [______________] + location [______________] country [______________] latitude [_______] longitude [_______] [find] [web] [proceed] [cancel] @@ -3615,8 +3613,8 @@ zdialog_add_widget(zd,"button","files","hb1",Bselectfiles,"space=10"); zdialog_add_widget(zd,"label","labcount","hb1",Bnofileselected,"space=10"); zdialog_add_widget(zd,"hbox","hb2","dialog",0,"space=3"); - zdialog_add_widget(zd,"label","labcity","hb2",ZTX("city"),"space=5"); - zdialog_add_widget(zd,"entry","city","hb2",0,"expand"); + zdialog_add_widget(zd,"label","labloc","hb2",ZTX("location"),"space=5"); + zdialog_add_widget(zd,"entry","location","hb2",0,"expand"); // 16.07 zdialog_add_widget(zd,"label","space","hb2",0,"space=5"); zdialog_add_widget(zd,"label","labcountry","hb2",ZTX("country"),"space=5"); zdialog_add_widget(zd,"entry","country","hb2",0,"expand"); @@ -3642,7 +3640,7 @@ if (zd->zstat != 3) goto cleanup; // status not [proceed] if (! batch_geotags_filecount) goto cleanup; // no files selected - zdialog_fetch(zd,"city",city,99); // get city [country] from dialog + zdialog_fetch(zd,"location",locatn,99); // get city/location [country] from dialog zdialog_fetch(zd,"country",country,99); zdialog_fetch(zd,"lati",lati,20); // and latitude, longitude zdialog_fetch(zd,"longi",longi,20); @@ -3652,7 +3650,7 @@ pp = strchr(longi,','); if (pp) *pp = '.'; - location[0] = city; + location[0] = locatn; location[1] = country; coord[0] = lati; coord[1] = longi; @@ -3676,7 +3674,7 @@ err = f_open(file,0,0,0); if (err) continue; - strncpy0(meta_city,location[0],99); // save geotags in image file EXIF 16.06 + strncpy0(meta_location,location[0],99); // save geotags in image file EXIF 16.06 strncpy0(meta_country,location[1],99); // and in search-index file strncpy0(meta_lati,coord[0],12); strncpy0(meta_longi,coord[1],12); @@ -3689,7 +3687,7 @@ write_popup_text("write",file); // report progress } - write_popup_text("write","COMPLETED"); + write_popup_text("write",Bcompleted); Fblock = 0; @@ -3716,7 +3714,7 @@ char **flist = batch_geotags_filelist; char countmess[50]; char *location[2], *coord[2], *matches[20][2]; - char city[100], country[100]; + char locatn[100], country[100]; char lati[20], longi[20], *pp; cchar *errmess; float fcoord[2]; @@ -3751,14 +3749,14 @@ zstat = zd->zstat; zd->zstat = 0; // keep dialog active - zdialog_fetch(zd,"city",city,99); // get city [country] from dialog + zdialog_fetch(zd,"location",locatn,99); // get location [country] from dialog zdialog_fetch(zd,"country",country,99); zdialog_fetch(zd,"lati",lati,20); // and latitude, longitude zdialog_fetch(zd,"longi",longi,20); - city[0] = toupper(city[0]); // capitalize 16.06 + locatn[0] = toupper(locatn[0]); // capitalize 16.06 country[0] = toupper(country[0]); - zdialog_stuff(zd,"city",city); + zdialog_stuff(zd,"location",locatn); zdialog_stuff(zd,"country",country); pp = strchr(lati,','); // replace comma decimal point 16.06 @@ -3766,7 +3764,7 @@ pp = strchr(longi,','); if (pp) *pp = '.'; - location[0] = city; + location[0] = locatn; location[1] = country; coord[0] = lati; coord[1] = longi; @@ -3775,19 +3773,19 @@ { Nmatch = get_geolocs(location,coord,matches); // find in geolocs[*] table if (Nmatch == 0) // no matches - zmessageACK(Mwin,ZTX("city not found")); + zmessageACK(Mwin,ZTX("location not found")); else if (Nmatch == 1) { // one match - zdialog_stuff(zd,"city",matches[0][0]); // stuff matching city data into dialog + zdialog_stuff(zd,"location",matches[0][0]); // stuff matching location data into dialog zdialog_stuff(zd,"country",matches[0][1]); zdialog_stuff(zd,"lati",coord[0]); zdialog_stuff(zd,"longi",coord[1]); } else { // multiple matching cities - zstat = geotags_choosecity(location,coord); // ask user to choose one + zstat = geotags_chooseloc(location,coord); // ask user to choose one if (zstat == 1) { // response is available - zdialog_stuff(zd,"city",location[0]); // stuff matching city data into dialog + zdialog_stuff(zd,"location",location[0]); // stuff matching location data into dialog zdialog_stuff(zd,"country",location[1]); zdialog_stuff(zd,"lati",coord[0]); zdialog_stuff(zd,"longi",coord[1]); @@ -3801,7 +3799,7 @@ if (errmess) zmessageACK(Mwin,errmess); // fail else { - zdialog_stuff(zd,"city",location[0]); // success, return all data + zdialog_stuff(zd,"location",location[0]); // success, return all data zdialog_stuff(zd,"country",location[1]); // (location may have been completed) zdialog_stuff(zd,"lati",coord[0]); zdialog_stuff(zd,"longi",coord[1]); @@ -3819,7 +3817,7 @@ if (! batch_geotags_filecount) goto nofiles; - if (*city <= ' ' || *country <= ' ' || *lati <= ' ' || *longi <= ' ') // 16.06 + if (*locatn <= ' ' || *country <= ' ' || *lati <= ' ' || *longi <= ' ') // 16.06 { yn = zmessageYN(Mwin,ZTX("data is incomplete \n proceed?")); if (! yn) return 1; @@ -3844,24 +3842,24 @@ /********************************************************************************/ -// dialog to choose one city from multiple options -// location[2] is input city and optional country -// (may be substrings, may have multiple matches in city geotags data) -// location[2] is output unique city and country after user choice +// dialog to choose one location from multiple options +// location[2] is input location and optional country +// (may be substrings, may have multiple matches in location geotags data) +// location[2] is output unique location and country after user choice // coord[2] is output latitude, longitude char *geotags_chosenlocation[2]; char *geotags_chosencoord[2]; -int geotags_choosecity(char *location[2], char *coord[2]) +int geotags_chooseloc(char *location[2], char *coord[2]) { - int geotags_choosecity_event(zdialog *zd, cchar *event); + int geotags_chooseloc_event(zdialog *zd, cchar *event); char *matches[20][2], text[200]; int Nmatch, ii, zstat; zdialog *zd; - Nmatch = get_geolocs(location,coord,matches); // get matching city geotags data + Nmatch = get_geolocs(location,coord,matches); // get matching location geotags data if (Nmatch == 0) return 0; // no match @@ -3871,7 +3869,7 @@ return 1; } - zd = zdialog_new(ZTX("choose city"),Mwin,BOK,Bcancel,null); // multiple matches, start dialog + zd = zdialog_new(ZTX("choose location"),Mwin,BOK,Bcancel,null); // multiple matches, start dialog zdialog_add_widget(zd,"comboE","cities","dialog",0,"space=5"); for (ii = 0; ii < Nmatch; ii++) { // list matching cities to choose from snprintf(text,200,"%s | %s",matches[ii][0],matches[ii][1]); @@ -3879,7 +3877,7 @@ } zdialog_resize(zd,300,100); - zdialog_run(zd,geotags_choosecity_event); // run dialog, wait for completion + zdialog_run(zd,geotags_chooseloc_event); // run dialog, wait for completion zstat = zdialog_wait(zd); zdialog_free(zd); @@ -3895,12 +3893,12 @@ } -// dialog event function - get chosen city/country from multiple choices +// dialog event function - get chosen location/country from multiple choices -int geotags_choosecity_event(zdialog *zd, cchar *event) +int geotags_chooseloc_event(zdialog *zd, cchar *event) { char text[200]; - static char city[100], country[100]; + static char locatn[100], country[100]; char *location[2], *coord[2]; char *matches[20][2]; cchar *pp; @@ -3919,15 +3917,15 @@ zdialog_fetch(zd,"cities",text,200); pp = strField(text,'|',1); - if (pp) strncpy0(city,pp,99); + if (pp) strncpy0(locatn,pp,99); pp = strField(text,'|',2); if (pp) strncpy0(country,pp,99); - strTrim2(city); + strTrim2(locatn); strTrim2(country); - location[0] = city; + location[0] = locatn; location[1] = country; - nn = get_geolocs(location,coord,matches); // find in city geotags data + nn = get_geolocs(location,coord,matches); // find in location geotags data if (nn) { geotags_chosenlocation[0] = location[0]; // use 1st match if > 1 geotags_chosenlocation[1] = location[1]; @@ -3946,7 +3944,7 @@ /********************************************************************************/ -// Convert a city [country] to earth coordinates using the +// Convert a location [country] to earth coordinates using the // MapQuest geocoding service. // (incomplete names may be completed with a bad guess) @@ -3959,7 +3957,7 @@ float flati, flongi; FILE *fid; cchar *notfound = ZTX("not found"); - cchar *badinputs = ZTX("city and country required"); + cchar *badinputs = ZTX("location and country required"); cchar *query = "http://open.mapquestapi.com/geocoding/v1/address?" "&key=Fmjtd%7Cluub2qa72d%2C20%3Do5-9u700a" "&maxResults=1" @@ -4019,11 +4017,11 @@ int init_glocs_comp(cchar *rec1, cchar *rec2); char *gtags, *pp; - char city[100], country[100]; + char locatn[100], country[100]; char lati[20], longi[20]; float flati, flongi; double time0, time1; - int err, ftf, cc, ii, jj, Nimages; + int err, ftf, cc, ii, jj, nimages; sxrec_t sxrec; if (Ngeolocs) return Ngeolocs; // already done @@ -4036,7 +4034,7 @@ // populate geolocs[] from search-index file (= image EXIF data) - Nimages = 0; + nimages = 0; ftf = 1; while (true) @@ -4051,17 +4049,17 @@ err = read_sxrec_seq(sxrec,ftf); // read image index recs. if (err) break; - Nimages++; // image count + nimages++; // image count gtags = sxrec.gtags; - strcpy(city,"null"); + strcpy(locatn,"null"); strcpy(country,"null"); strcpy(lati,"null"); strcpy(longi,"null"); flati = flongi = 0; - pp = (char *) strField(gtags,'^',1); // city name or "null" - if (pp) strncpy0(city,pp,99); + pp = (char *) strField(gtags,'^',1); // location name or "null" + if (pp) strncpy0(locatn,pp,99); pp = (char *) strField(gtags,'^',2); // country if (pp) strncpy0(country,pp,99); pp = (char *) strField(gtags,'^',3); // latitude @@ -4089,15 +4087,13 @@ } if (Ngeolocs) { - ii = Ngeolocs - 1; // eliminate (frequent) duplicates 16.05 - if (strmatch(city,geolocs[ii].city) && // same city and country - strmatch(country,geolocs[ii].country) && - fabsf(flati - geolocs[ii].flati) < 0.00001 && // within 1m of each-other 16.05 - fabsf(flongi - geolocs[ii].flongi) < 0.00001) continue; + ii = Ngeolocs - 1; // eliminate (frequent) duplicates 16.07 + if (strmatch(locatn,geolocs[ii].location) && // same location and country + strmatch(country,geolocs[ii].country)) continue; } ii = Ngeolocs++; // fill next entry in table - geolocs[ii].city = zstrdup(city); + geolocs[ii].location = zstrdup(locatn); geolocs[ii].country = zstrdup(country); geolocs[ii].lati = zstrdup(lati); geolocs[ii].longi = zstrdup(longi); @@ -4108,15 +4104,13 @@ cc = sizeof(geolocs_t); HeapSort((char *) geolocs, cc, Ngeolocs, init_glocs_comp); // sort - for (ii = 0, jj = 1; jj < Ngeolocs; jj++) // eliminate duplicates 15.12 + for (ii = 0, jj = 1; jj < Ngeolocs; jj++) // eliminate duplicates { - if ((strmatch(geolocs[jj].city,geolocs[ii].city)) && - (strmatch(geolocs[jj].country,geolocs[ii].country)) && - (strmatch(geolocs[jj].lati,geolocs[ii].lati)) && - (strmatch(geolocs[jj].longi,geolocs[ii].longi))) + if ((strmatch(geolocs[jj].location,geolocs[ii].location)) && // use location/country names only 16.07 + (strmatch(geolocs[jj].country,geolocs[ii].country))) { zfree(geolocs[jj].country); // free redundant entries - zfree(geolocs[jj].city); + zfree(geolocs[jj].location); zfree(geolocs[jj].lati); zfree(geolocs[jj].longi); } @@ -4129,15 +4123,15 @@ time1 = get_seconds() - time0; Ngeolocs = ii + 1; - printz("%d images, %d locations %.3f secs. \n",Nimages,Ngeolocs,time1); // 16.06 - zmessage_post(Mwin,3,"%d images, %d locations \n",Nimages,Ngeolocs); + printz("%d images, %d locations %.3f secs. \n",nimages,Ngeolocs,time1); // 16.06 + zmessage_post(Mwin,3,"%d images, %d locations \n",nimages,Ngeolocs); Ffuncbusy = 0; return Ngeolocs; } -// Compare 2 geolocs records by country, city, latitude, longitude +// Compare 2 geolocs records by country, location, latitude, longitude // return <0 0 >0 for rec1 < == > rec2. int init_glocs_comp(cchar *rec1, cchar *rec2) // 15.12 @@ -4151,7 +4145,7 @@ ii = strcmp(r1->country,r2->country); if (ii) return ii; - ii = strcmp(r1->city,r2->city); + ii = strcmp(r1->location,r2->location); if (ii) return ii; if (strmatch(r1->lati,"null")) { // sort missing lat/long last 16.06 @@ -4173,42 +4167,35 @@ /********************************************************************************/ -// get earth coordinates data for a city [ country ] -// inputs: location[0] = city +// get earth coordinates data for a location [ country ] +// inputs: location[0] = city/location // location[1] = country (opt) // outputs: coord[2] = latitude -90 to +90, longitude -180 to +180 -// matches[20][2] up to 20 matching city/country locations -// returns: no. matches for input city [ country ] +// matches[20][2] up to 20 matching location/country locations +// returns: no. matches for input location [ country ] // (max. 20) // -// use null or "" for missing city or country input (no NULL pointer) -// coordinates are returned for the first match only, if any +// use "null" or "" for missing location or country input (no NULL pointer) +// coordinates are not returned if there are more than one matches // int get_geolocs(char *location[2], char *coord[2], char *matches[20][2]) { - int cc, ii, jj, Nmatch; - int fcity = 0, fcountry = 0; + int cc, ii, Nmatch; + int flocation = 0, fcountry = 0; coord[0] = coord[1] = (char *) "null"; // initz. "null" (immutable) 16.06 - if (*location[0] > ' ' && ! strmatch(location[0],"null")) fcity = 1; // one of these must be present 16.06 + if (*location[0] > ' ' && ! strmatch(location[0],"null")) flocation = 1; // one of these must be present 16.06 if (*location[1] > ' ' && ! strmatch(location[1],"null")) fcountry = 1; - if (! fcity && ! fcountry) return 0; + if (! flocation && ! fcountry) return 0; - for (ii = Nmatch = 0; ii < Ngeolocs; ii++) // search for exact city [ country ] + for (ii = Nmatch = 0; ii < Ngeolocs; ii++) // search for exact location [ country ] { - if (fcity && ! strmatchcase(location[0],geolocs[ii].city)) continue; + if (flocation && ! strmatchcase(location[0],geolocs[ii].location)) continue; if (fcountry && ! strmatchcase(location[1],geolocs[ii].country)) continue; - for (jj = 0; jj < Nmatch; jj++) { // look for duplicate match - if (strmatch(geolocs[ii].city,matches[jj][0])) - if (strmatch(geolocs[ii].country,matches[jj][1])) break; - } - - if (jj < Nmatch) continue; // duplicate - - matches[Nmatch][0] = geolocs[ii].city; // save match + matches[Nmatch][0] = geolocs[ii].location; // save match matches[Nmatch][1] = geolocs[ii].country; Nmatch++; @@ -4220,23 +4207,24 @@ if (Nmatch == 20) break; // no more than 20 matches are reported } - if (Nmatch > 1) coord[0] = coord[1] = null; // multiple matches, no coordinates - + if (Nmatch > 1) coord[0] = coord[1] = (char *) "null"; // multiple matches, no coordinates 16.07 if (Nmatch) return Nmatch; // 1 or more matches found - for (ii = Nmatch = 0; ii < Ngeolocs; ii++) // search for partial city [ country ] + for (ii = Nmatch = 0; ii < Ngeolocs; ii++) // search for partial location [ country ] { - if (strmatch(geolocs[ii].city,"null")) continue; + if (strmatch(geolocs[ii].location,"null")) continue; - if (fcity) { + if (flocation) { cc = strlen(location[0]); - if (! strmatchcaseN(location[0],geolocs[ii].city,cc)) continue; + if (! strmatchcaseN(location[0],geolocs[ii].location,cc)) continue; } + if (fcountry) { cc = strlen(location[1]); if (! strmatchcaseN(location[1],geolocs[ii].country,cc)) continue; } - matches[Nmatch][0] = geolocs[ii].city; + + matches[Nmatch][0] = geolocs[ii].location; matches[Nmatch][1] = geolocs[ii].country; Nmatch++; @@ -4249,7 +4237,6 @@ } if (Nmatch > 1) coord[0] = coord[1] = (char *) "null"; // multiple matches, no coordinates 16.06 - return Nmatch; } @@ -4258,7 +4245,7 @@ // Update geolocations table geolocs[*] // -// location[2] = city and country +// location[2] = city/location and country // coord[2] = latitude and longitude // return value: 0 OK, no geotag revision (incomplete data) // 1 OK, no geotag revision (matches existing data) @@ -4287,23 +4274,21 @@ snprintf(acoord[1],20,"%.4f",flongi); } - if (! strmatch(location[0],"null")) // unless null, - *location[0] = toupper(*location[0]); // force capitalization - if (! strmatch(location[1],"null")) - *location[1] = toupper(*location[1]); - if (*location[0] <= ' ' || strmatch(location[0],"null")) return 0; // quit here if location not complete if (*location[1] <= ' ' || strmatch(location[1],"null")) return 0; - for (ii = 0; ii < Ngeolocs; ii++) { // search geotags for city, country - if (! strmatchcase(location[0],geolocs[ii].city)) continue; // (case-insensitive compare) + *location[0] = toupper(*location[0]); // force capitalization 16.07 + *location[1] = toupper(*location[1]); + + for (ii = 0; ii < Ngeolocs; ii++) { // search geotags for location, country + if (! strmatchcase(location[0],geolocs[ii].location)) continue; // (case-insensitive compare) if (strmatchcase(location[1],geolocs[ii].country)) break; // BANG unknown 2016.04.19 } if (ii < Ngeolocs) { // found, check for revised lat/long if (! strmatch(geolocs[ii].lati,acoord[0])) Fchange = 1; if (! strmatch(geolocs[ii].longi,acoord[1])) Fchange = 1; - if (! strmatch(geolocs[ii].city,location[0])) Fchange = 1; // or revised capitalization + if (! strmatch(geolocs[ii].location,location[0])) Fchange = 1; // or revised capitalization if (! strmatch(geolocs[ii].country,location[1])) Fchange = 1; } else Fnew = 1; // new location @@ -4312,8 +4297,8 @@ if (Fchange) { - zfree(geolocs[ii].city); // change geotag data in memory - geolocs[ii].city = zstrdup(location[0]); // (to be used subsequently) + zfree(geolocs[ii].location); // change geotag data in memory + geolocs[ii].location = zstrdup(location[0]); // (to be used subsequently) zfree(geolocs[ii].country); geolocs[ii].country = zstrdup(location[1]); // presence in image EXIF will make zfree(geolocs[ii].lati); // this the preferred version @@ -4336,7 +4321,7 @@ Ngeolocs++; ii = 0; - geolocs[ii].city = zstrdup(location[0]); // new geotag is now first + geolocs[ii].location = zstrdup(location[0]); // new geotag is now first geolocs[ii].country = zstrdup(location[1]); // (find again faster) geolocs[ii].lati = zstrdup(acoord[0]); geolocs[ii].longi = zstrdup(acoord[1]); @@ -4790,17 +4775,17 @@ /********************************************************************************/ // Respond to mouse movement and left clicks on geomap image. -// Set longitude and latitude, and city and country. +// Set longitude and latitude, and location and country. // Show images near clicked location. void geomap_mousefunc() { int err, mx, my, px, py, ii, minii; - char *city, *country; + char *locatn, *country; float flati, flongi, glati, glongi; float dist, mindist; float mscale = Cstate->mscale; - static char *pcity = 0; + static char *ploc = 0; char text[20]; if (checkpend("edit busy block")) return; // check nothing pending 15.10 @@ -4819,7 +4804,7 @@ dist = mindist = 999999; minii = 0; - for (ii = 0; ii < Ngeolocs; ii++) // find nearest city/country + for (ii = 0; ii < Ngeolocs; ii++) // find nearest location/country { glati = geolocs[ii].flati; dist = (flati - glati) * (flati - glati); @@ -4834,13 +4819,13 @@ ii = minii; glati = geolocs[ii].flati; // closest known place glongi = geolocs[ii].flongi; - city = geolocs[ii].city; + locatn = geolocs[ii].location; country = geolocs[ii].country; err = geomap_position(glati,glongi,px,py); // corresp. map image position dist = sqrtf((px-mx) * (px-mx) + (py-my) * (py-my)); dist = dist * mscale; // (mouse - map) in pixels - if (dist > 10) city = country = 0; // > capture distance + if (dist > 10) locatn = country = 0; // > capture distance if (LMclick) // left mouse click { @@ -4848,14 +4833,14 @@ poptext_window(0,0,0,0,0,0); // remove popup if (zd_mapgeotags) { - zdialog_stuff(zd_mapgeotags,"city",city); // stuff calling dialog + zdialog_stuff(zd_mapgeotags,"location",locatn); // stuff calling dialog zdialog_stuff(zd_mapgeotags,"country",country); zdialog_stuff(zd_mapgeotags,"lati",flati); zdialog_stuff(zd_mapgeotags,"longi",flongi); zdialog_send_event(zd_mapgeotags,"geomap"); // activate calling dialog } - else if (city) + else if (locatn) find_geomap_images(flati,flongi,geomap_range); // show images in range of location 16.06 else { @@ -4864,16 +4849,16 @@ } } - else if (city) { // mouse movement, no click - if (! pcity || ! strmatch(city,pcity)) { - poptext_window(city,MWIN,Mwxposn,Mwyposn,0.1,1); // popup the city name at mouse - pcity = city; + else if (locatn) { // mouse movement, no click + if (! ploc || ! strmatch(locatn,ploc)) { + poptext_window(locatn,MWIN,Mwxposn,Mwyposn,0.1,1); // popup the city/location name at mouse + ploc = locatn; } } - else if (pcity) { + else if (ploc) { poptext_window(0,0,0,0,0,0); // remove popup - pcity = 0; + ploc = 0; } return; @@ -5138,10 +5123,10 @@ int mx, my, px, py; int ii, minii; int capturedist = (map_dotsize + 2) / 2; // mouse - marker capture distance - char *city, *country; + char *locatn, *country; float flati, flongi, glati, glongi; float dist, mindist; - static char *pcity = 0; + static char *ploc = 0; char text[20]; if (! mapview) return; // OSM map not available @@ -5155,7 +5140,7 @@ dist = mindist = 999999; minii = 0; - for (ii = 0; ii < Ngeolocs; ii++) // find nearest city/country + for (ii = 0; ii < Ngeolocs; ii++) // find nearest location/country { glati = geolocs[ii].flati; dist = (flati - glati) * (flati - glati); @@ -5170,27 +5155,27 @@ ii = minii; glati = geolocs[ii].flati; // closest known place glongi = geolocs[ii].flongi; - city = geolocs[ii].city; + locatn = geolocs[ii].location; country = geolocs[ii].country; px = champlain_view_longitude_to_x(mapview,glongi); // corresp. map location py = champlain_view_latitude_to_y(mapview,glati); dist = sqrtf((px-mx) * (px-mx) + (py-my) * (py-my)); // distance in pixels - if (dist > capturedist) city = country = 0; // > capture distance + if (dist > capturedist) locatn = country = 0; // > capture distance if (event->type == GDK_BUTTON_RELEASE) { poptext_window(0,0,0,0,0,0); // remove popup if (zd_mapgeotags) { - zdialog_stuff(zd_mapgeotags,"city",city); // stuff calling dialog + zdialog_stuff(zd_mapgeotags,"location",locatn); // stuff calling dialog zdialog_stuff(zd_mapgeotags,"country",country); zdialog_stuff(zd_mapgeotags,"lati",flati); zdialog_stuff(zd_mapgeotags,"longi",flongi); zdialog_send_event(zd_mapgeotags,"geomap"); // activate calling dialog } - else if (event->button == 1 && city) // left click on marker + else if (event->button == 1 && locatn) // left click on marker find_OSM_images(flati,flongi); // show images for location else if (event->button == 3) { // right click @@ -5199,16 +5184,16 @@ } } - else if (city) { // mouse movement - if (! pcity || ! strmatch(city,pcity)) { - poptext_window(city,MWIN,mx,my,0.1,1); // popup the city name at mouse - pcity = city; + else if (locatn) { // mouse movement + if (! ploc || ! strmatch(locatn,ploc)) { + poptext_window(locatn,MWIN,mx,my,0.1,1); // popup the location name at mouse + ploc = locatn; } } - else if (pcity) { + else if (ploc) { poptext_window(0,0,0,0,0,0); // remove popup - pcity = 0; + ploc = 0; } return; @@ -5321,15 +5306,17 @@ int Frepgallery, Frepmeta; int Nsearchkeys = 0; - char *searchkeys[5]; // search metadata keys and match data - char *searchkeydata[5]; - char searchkeyx[8], searchkeydatax[8]; + char *searchkeys[5]; // metadata keys to search + char *searchvalues[5]; // data values to search for + char matchtype[5]; // match type: string match or number < = > } using namespace search_images; -void m_search_images(GtkWidget *, cchar *) // overhauled +// menu function + +void m_search_images(GtkWidget *, cchar *) { void search_searchtags_clickfunc(GtkWidget *widget, int line, int pos); void search_matchtags_clickfunc(GtkWidget *widget, int line, int pos); @@ -5904,7 +5891,7 @@ fid = fopen(searchresults_file,"w"); // open output file if (! fid) goto filerror; - for (ii = 0; ii < navi::nfiles; ii++) // scan current gallery + for (ii = 0; ii < navi::Nfiles; ii++) // scan current gallery { file = gallery(0,"find",ii); if (! file) break; @@ -5948,7 +5935,7 @@ fid = fopen(searchresults_file,"w"); // open output file if (! fid) goto filerror; - for (ii = 0; ii < navi::nfiles; ii++) // scan current gallery + for (ii = 0; ii < navi::Nfiles; ii++) // scan current gallery { zmainloop(20); // keep GTK alive @@ -5991,7 +5978,7 @@ fid = fopen(searchresults_file,"w"); // open output file if (! fid) goto filerror; - for (ii = 0; ii < navi::nfiles; ii++) // scan current gallery + for (ii = 0; ii < navi::Nfiles; ii++) // scan current gallery { zmainloop(20); // keep GTK alive @@ -6189,7 +6176,7 @@ if (ppf) Nmatch++; else Nnomatch++; } - + if (Nmatch == 0) return 0; // no match to any word if (Falltext && Nnomatch) return 0; // no match to all words } @@ -6200,12 +6187,12 @@ for (iis = 1; ; iis++) // step thru search locations { - pps = strField(searchLocations," ",iis); + pps = strField(searchLocations,',',iis); // comma delimiter 16.07 if (! pps) break; if (*pps == ' ') continue; for (iif = 1; iif <= 2; iif++) // step thru file geotags - { // (city, country) + { // (location, country) ppf = strField(sxrec.gtags,'^',iif); if (! ppf) break; if (*ppf == ' ') continue; @@ -6230,14 +6217,15 @@ // dialog to get metadata search criteria -int searchimages_metadata_dialog(zdialog *zdp) +int searchimages_metadata_dialog(zdialog *zdp) // overhauled 16.07 { int searchimages_metadata_dialog_event(zdialog *zd, cchar *event); cchar *metamess = ZTX("These items are always reported: \n" "date, stars, tags, caption, comment"); zdialog *zd; - int zstat; + int ii, zstat; + char matchx[8] = "matchx"; /*** Search and Report Metadata @@ -6246,23 +6234,24 @@ date, stars, tags, caption, comment Additional Items for Report - Keyword Match Criteria - [__________] [__________________] - [__________] [__________________] - [__________] [__________________] - [__________] [__________________] - [__________] [__________________] + Keyword Match Criteria + [__________] [ matches ] [__________________] + [__________] [ contains ] [__________________] + [__________] [ equal ] [__________________] + [__________] [ less ] [__________________] + [__________] [ greater ] [__________________] [clear] [apply] [cancel] ***/ zd = zdialog_new("Search and Report Metadata",Mwin,Bclear,Bapply,Bcancel,null); - zdialog_add_widget(zd,"label","labmeta","dialog",metamess,"space=3"); + zdialog_add_widget(zd,"label","labmeta","dialog",metamess,"space=5"); zdialog_add_widget(zd,"label","labopts","dialog",ZTX("Additional Items for Report")); zdialog_add_widget(zd,"hbox","hb1","dialog"); - zdialog_add_widget(zd,"vbox","vb1","hb1",0,"space=5"); - zdialog_add_widget(zd,"vbox","vb2","hb1",0,"space=5|expand"); + zdialog_add_widget(zd,"vbox","vb1","hb1",0,"space=5|homog"); + zdialog_add_widget(zd,"vbox","vb2","hb1",0,"space=5|homog"); + zdialog_add_widget(zd,"vbox","vb3","hb1",0,"space=5|homog|expand"); zdialog_add_widget(zd,"label","lab1","vb1",ZTX("Keyword")); zdialog_add_widget(zd,"entry","key0","vb1"); @@ -6271,27 +6260,40 @@ zdialog_add_widget(zd,"entry","key3","vb1"); zdialog_add_widget(zd,"entry","key4","vb1"); - zdialog_add_widget(zd,"label","lab2","vb2",ZTX("Match Criteria")); - zdialog_add_widget(zd,"entry","match0","vb2",0,"expand"); - zdialog_add_widget(zd,"entry","match1","vb2",0,"expand"); - zdialog_add_widget(zd,"entry","match2","vb2",0,"expand"); - zdialog_add_widget(zd,"entry","match3","vb2",0,"expand"); - zdialog_add_widget(zd,"entry","match4","vb2",0,"expand"); - - strcpy(searchkeyx,"keyx"); - strcpy(searchkeydatax,"matchx"); + zdialog_add_widget(zd,"label","lab2","vb2"); + zdialog_add_widget(zd,"combo","match0","vb2"); + zdialog_add_widget(zd,"combo","match1","vb2"); + zdialog_add_widget(zd,"combo","match2","vb2"); + zdialog_add_widget(zd,"combo","match3","vb2"); + zdialog_add_widget(zd,"combo","match4","vb2"); + + zdialog_add_widget(zd,"label","lab3","vb3",ZTX("Match Criteria")); + zdialog_add_widget(zd,"entry","value0","vb3",0,"expand"); + zdialog_add_widget(zd,"entry","value1","vb3",0,"expand"); + zdialog_add_widget(zd,"entry","value2","vb3",0,"expand"); + zdialog_add_widget(zd,"entry","value3","vb3",0,"expand"); + zdialog_add_widget(zd,"entry","value4","vb3",0,"expand"); if (! searchkeys[0]) // first call initialization { - for (int ii = 0; ii < 5; ii++) { + for (ii = 0; ii < 5; ii++) { searchkeys[ii] = (char *) zmalloc(40); - searchkeydata[ii] = (char *) zmalloc(100); - *searchkeys[ii] = *searchkeydata[ii] = 0; + searchvalues[ii] = (char *) zmalloc(100); + *searchkeys[ii] = *searchvalues[ii] = 0; } } - + + for (ii = 0; ii < 5; ii++) { + matchx[5] = '0' + ii; + zdialog_cb_app(zd,matchx,"matches"); + zdialog_cb_app(zd,matchx,"contains"); + zdialog_cb_app(zd,matchx,"number ="); + zdialog_cb_app(zd,matchx,"number =>"); + zdialog_cb_app(zd,matchx,"number <="); + } + zdialog_show(zdp,0); // hide parent dialog - zdialog_resize(zd,400,300); + zdialog_resize(zd,600,0); zdialog_restore_inputs(zd); // preload prior user inputs zdialog_run(zd,searchimages_metadata_dialog_event); // run dialog zstat = zdialog_wait(zd); // wait for completion @@ -6305,25 +6307,30 @@ // dialog event and completion callback function -int searchimages_metadata_dialog_event(zdialog *zd, cchar *event) +int searchimages_metadata_dialog_event(zdialog *zd, cchar *event) // overhauled 16.07 { - int ii, jj; - char keyx[8] = "keyx", matchx[8] = "matchx"; + int ii, jj, err; + float fnum; + char keyx[8] = "keyx", valuex[8] = "valuex", matchx[8] = "matchx"; + char temp[100]; + if (strmatch(event,"enter")) zd->zstat = 2; // [apply] - if (strmatch(event,"escape")) zd->zstat = 3; // escape = cancel 15.07 - + if (strmatch(event,"escape")) zd->zstat = 3; // escape = cancel + if (! zd->zstat) return 1; // wait for completion if (zd->zstat == 1) { for (ii = 0; ii < 5; ii++) { // clear keyx[3] = '0' + ii; + valuex[5] = '0' + ii; matchx[5] = '0' + ii; zdialog_stuff(zd,keyx,""); - zdialog_stuff(zd,matchx,""); + zdialog_stuff(zd,valuex,""); + zdialog_stuff(zd,matchx,"matches"); zd->zstat = 0; // keep dialog active } - return 0; + return 1; } if (zd->zstat != 2) { @@ -6333,22 +6340,42 @@ Nsearchkeys = 0; // apply - for (ii = jj = 0; ii < 5; ii++) // get metadata keys + for (ii = jj = 0; ii < 5; ii++) { - searchkeyx[3] = '0' + ii; - zdialog_fetch(zd,searchkeyx,searchkeys[ii],40); + keyx[3] = '0' + ii; // get search key + zdialog_fetch(zd,keyx,searchkeys[ii],40); strCompress(searchkeys[ii]); // remove all blanks from key names if (*searchkeys[ii] <= ' ') continue; memmove(searchkeys[jj],searchkeys[ii],40); // repack blank keys - searchkeydatax[5] = '0' + ii; - zdialog_fetch(zd,searchkeydatax,searchkeydata[ii],100); // get corresp. match value if any - strTrim2(searchkeydata[jj],searchkeydata[ii]); // trim leading and trailing blanks - if (ii > jj) *searchkeys[ii] = *searchkeydata[ii] = 0; + + valuex[5] = '0' + ii; + zdialog_fetch(zd,valuex,searchvalues[ii],100); // get corresp. match value + strTrim2(searchvalues[jj],searchvalues[ii]); // trim leading and trailing blanks + + matchx[5] = '0' + ii; + zdialog_fetch(zd,matchx,temp,20); // get corresp. match type + if (strmatch(temp,"matches")) matchtype[jj] = 'm'; + if (strmatch(temp,"contains")) matchtype[jj] = 'c'; + if (strmatch(temp,"number =")) matchtype[jj] = '='; + if (strmatch(temp,"number =>")) matchtype[jj] = '>'; + if (strmatch(temp,"number <=")) matchtype[jj] = '<'; + + if (strstr(temp,"number")) { // check numeric values + err = convSF(searchvalues[jj],fnum); + if (err) { + snprintf(temp,100,ZTX("bad number: %s"),searchvalues[jj]); + zmessageACK(Mwin,temp); + zd->zstat = 0; + return 1; + } + } + + if (ii > jj) *searchkeys[ii] = *searchvalues[ii] = 0; jj++; } - + Nsearchkeys = jj; // keys found, no blanks - + if (Nsearchkeys) zd->zstat = 1; // keys were entered else zd->zstat = 2; // no keys were entered @@ -6357,28 +6384,54 @@ // Test image metadata against metadata select criteria. -// Substrings also match, which is not always what is wanted. FIXME +// Substrings also match, which is not always what is wanted. // e.g. search ISO = 100 will match metadata = 100 or 1000 -int searchimages_metadata_select(char *file) +int searchimages_metadata_select(char *file) // overhauled 16.07 { char *kvals[5]; int ii, nth; cchar *pps, *ppf; + float fkey, fval; exif_get(file,(cchar **) searchkeys,kvals,Nsearchkeys); // get the image metadata for (ii = 0; ii < Nsearchkeys; ii++) { // loop all metadata search keys - if (*searchkeydata[ii] > ' ') { // key match value(s) are present + if (*searchvalues[ii] > ' ') { // key match value(s) are present if (kvals[ii]) { // key values present in metadata for (nth = 1; ; nth++) { // loop all match values - pps = strField(searchkeydata[ii],' ',nth); // get each match value + pps = strField(searchvalues[ii],',',nth); // comma delimiter if (! pps) return 0; // no more, no match found - ppf = strcasestr(kvals[ii],pps); // match not case sensitive 16.06 - if (ppf) break; // found match + + if (matchtype[ii] == 'm') // key matches any value + if (strmatchcase(kvals[ii],pps)) break; // match not case sensitive + + if (matchtype[ii] == 'c') { // key contains any value + ppf = strcasestr(kvals[ii],pps); // match not case sensitive + if (ppf) break; // found match + } + + if (matchtype[ii] == '=') { // numeric key equals any value + fkey = atof(kvals[ii]); + fval = atof(pps); + if (fkey == fval) break; // found match + } + + if (matchtype[ii] == '>') { // numeric key >= one value + fkey = atof(kvals[ii]); + fval = atof(pps); + if (fkey >= fval) break; // found match + } + + if (matchtype[ii] == '<') { // numeric key <= one value + fkey = atof(kvals[ii]); + fval = atof(pps); + if (fkey <= fval) break; // found match + } } } - else if (strmatch(searchkeydata[ii],"null")) break; // found match for empty metadata 16.06 + + else if (strmatch(searchvalues[ii],"null")) break; // found match for empty metadata 16.06 else return 0; // no match found } } @@ -6394,8 +6447,7 @@ { using namespace navi; - cchar *keys1[7] = { exif_date_key, iptc_rating_key, - iptc_keywords_key, + cchar *keys1[7] = { exif_date_key, iptc_rating_key, iptc_keywords_key, exif_city_key, exif_country_key, iptc_caption_key, exif_comment_key }; cchar *keys[20]; @@ -6404,8 +6456,8 @@ int Nkeys, ii, jj, cc; if (! mdlist) { - cc = nfiles * sizeof(char *); // allocate metadata list - mdlist = (char **) zmalloc(cc); // nfiles = curr. gallery files + cc = Nfiles * sizeof(char *); // allocate metadata list + mdlist = (char **) zmalloc(cc); // Nfiles = curr. gallery files memset(mdlist,0,cc); // mdlist = corresp. metadata list } // (zfree() in image_navigate) @@ -6416,12 +6468,12 @@ keys[ii+7] = searchkeys[ii]; Nkeys = 7 + Nsearchkeys; // total keys to extract - mdrows = Nkeys - 1; // report rows (city/country 1 row) + mdrows = Nkeys - 1; // report rows (location/country 1 row) - Fbusy_goal = nfiles; + Fbusy_goal = Nfiles; Fbusy_done = 0; - for (ii = 0; ii < nfiles; ii++) // loop image gallery files + for (ii = 0; ii < Nfiles; ii++) // loop image gallery files { zmainloop(20); // keep GTK alive @@ -6430,7 +6482,7 @@ exif_get(file,keys,kvals,Nkeys); // get the metadata - snprintf(text2,200,"%s %s",kvals[3],kvals[4]); // combine city and country + snprintf(text2,200,"%s %s",kvals[3],kvals[4]); // combine location and country if (kvals[3]) zfree(kvals[3]); if (kvals[4]) zfree(kvals[4]); kvals[3] = zstrdup(text2); @@ -6440,7 +6492,10 @@ { if (jj == 4) continue; // skip country if (jj == 0 && kvals[0]) kvals[0][4] = kvals[0][7] = '-'; // conv. yyyy:mm:dd to yyyy-mm-dd - snprintf(text2,200,"key: %s value: %s \n",keys[jj], kvals[jj]); + if (jj == 3) + snprintf(text2,200,"Location: %s \n",kvals[jj]); // replace "city" with "location" 16.07 + else + snprintf(text2,200,"%s: %s \n",keys[jj], kvals[jj]); strcpy(text1+cc,text2); cc += strlen(text2); } @@ -6468,7 +6523,7 @@ // Click on a group to get a thumbnail gallery of all images in the group. struct grec_t { // image geotags data - char *city, *country; // group location + char *location, *country; // group location char pdate[12]; // nominal group date, yyyymmdd int lodate, hidate; // range, days since 0 CE int count; // images in group @@ -6491,8 +6546,8 @@ zdialog *zd; int zstat, ftf, err, cc, cc1, cc2; - int iix, iig, newgroup; - char country[100], city[100], buff[300], pdate[12]; + int ww, iix, iig, newgroup; + char country[100], locatn[100], buff[300], pdate[12]; cchar *pp; sxrec_t sxrec; GtkWidget *textwin; @@ -6509,8 +6564,8 @@ Report Geotag Groups (o) Group by country - (o) Group by country/city - (o) Group by country/city/date + (o) Group by country/location + (o) Group by country/location/date Combine within [ xx |-|+] days [proceed] [cancel] @@ -6518,8 +6573,8 @@ zd = zdialog_new(ZTX("Report Geotag Groups"),Mwin,Bproceed,Bcancel,null); zdialog_add_widget(zd,"radio","country","dialog",ZTX("Group by country")); - zdialog_add_widget(zd,"radio","city","dialog",ZTX("Group by country/city")); - zdialog_add_widget(zd,"radio","date","dialog",ZTX("Group by country/city/date")); + zdialog_add_widget(zd,"radio","location","dialog",ZTX("Group by country/location")); + zdialog_add_widget(zd,"radio","date","dialog",ZTX("Group by country/location/date")); zdialog_add_widget(zd,"hbox","hbr","dialog"); zdialog_add_widget(zd,"label","space","hbr",0,"space=10"); zdialog_add_widget(zd,"label","labr1","hbr",ZTX("Combine within"),"space=10"); @@ -6527,7 +6582,7 @@ zdialog_add_widget(zd,"label","labr2","hbr",ZTX("days"),"space=10"); zdialog_stuff(zd,"country",0); - zdialog_stuff(zd,"city",1); + zdialog_stuff(zd,"location",1); zdialog_stuff(zd,"date",0); zdialog_resize(zd,300,0); @@ -6540,17 +6595,17 @@ zdialog_fetch(zd,"country",iix); if (iix) ggroups_groupby = 1; // group by country - zdialog_fetch(zd,"city",iix); - if (iix) ggroups_groupby = 2; // group by country/city + zdialog_fetch(zd,"location",iix); + if (iix) ggroups_groupby = 2; // group by country/location zdialog_fetch(zd,"date",iix); - if (iix) ggroups_groupby = 3; // group by country/city/date (range) + if (iix) ggroups_groupby = 3; // group by country/location/date (range) zdialog_fetch(zd,"range",ggroups_daterange); zdialog_free(zd); if (Ngrec) { // free prior memory for (iix = 0; iix < Ngrec; iix++) { - if (grec[iix].city) zfree(grec[iix].city); + if (grec[iix].location) zfree(grec[iix].location); if (grec[iix].country) zfree(grec[iix].country); } zfree(grec); @@ -6570,9 +6625,9 @@ iix = Ngrec; - pp = strField(sxrec.gtags,'^',1); // get city - if (pp) grec[iix].city = zstrdup(pp); - else grec[iix].city = zstrdup("null"); + pp = strField(sxrec.gtags,'^',1); // get location + if (pp) grec[iix].location = zstrdup(pp); + else grec[iix].location = zstrdup("null"); pp = strField(sxrec.gtags,'^',2); // country if (pp) grec[iix].country = zstrdup(pp); @@ -6599,7 +6654,7 @@ return; } - if (Ngrec > 1) // sort index by country/city/date + if (Ngrec > 1) // sort index by country/location/date HeapSort((char *) grec, sizeof(grec_t), Ngrec, ggroups_comp); iig = 0; // 1st group from grec[0] @@ -6612,8 +6667,8 @@ if (! strmatch(grec[iix].country,grec[iig].country)) newgroup = 1; // new country >> new group - if (ggroups_groupby >= 2) - if (! strmatch(grec[iix].city,grec[iig].city)) newgroup = 1; // new city >> new group if group by city + if (ggroups_groupby >= 2) // new location >> new group + if (! strmatch(grec[iix].location,grec[iig].location)) newgroup = 1; // if group by location if (ggroups_groupby >= 3) if (grec[iix].lodate - grec[iig].hidate > ggroups_daterange) // new date >> new group if group by date @@ -6624,15 +6679,15 @@ iig++; // new group if (iix > iig) { grec[iig] = grec[iix]; // copy and pack down - grec[iix].city = grec[iix].country = 0; // no zfree() + grec[iix].location = grec[iix].country = 0; // no zfree() } grec[iig].count = 1; // group count = 1 } else { - zfree(grec[iix].city); // same group + zfree(grec[iix].location); // same group zfree(grec[iix].country); // free memory - grec[iix].city = grec[iix].country = 0; + grec[iix].location = grec[iix].country = 0; grec[iig].hidate = grec[iix].lodate; // expand group date range grec[iig].count++; // increment group count } @@ -6640,7 +6695,11 @@ Ngrec = iig + 1; // unique groups count - textwin = write_popup_text("open",ZTX("geotag groups"),620,400,Mwin); // write groups to popup window + if (ggroups_groupby == 1) ww = 350; // group by country 16.07 + if (ggroups_groupby == 2) ww = 600; // group by country/location + if (ggroups_groupby == 3) ww = 650; // group by country/location/date (range) + + textwin = write_popup_text("open",ZTX("geotag groups"),ww,400,Mwin); // write groups to popup window if (ggroups_groupby == 1) // group by country { @@ -6656,34 +6715,34 @@ } } - if (ggroups_groupby == 2) // group by country/city + if (ggroups_groupby == 2) // group by country/location { - snprintf(buff,300,"%-30s %-30s %5s ","Country","City","Count"); + snprintf(buff,300,"%-30s %-30s %5s ","Country","location","Count"); write_popup_text("writebold",buff); for (iig = 0; iig < Ngrec; iig++) { utf8substring(country,grec[iig].country,0,30); cc1 = 30 + strlen(country) - utf8len(country); - utf8substring(city,grec[iig].city,0,30); - cc2 = 30 + strlen(city) - utf8len(city); + utf8substring(locatn,grec[iig].location,0,30); + cc2 = 30 + strlen(locatn) - utf8len(locatn); snprintf(buff,300,"%-*s %-*s %5d ", - cc1,country,cc2,city,grec[iig].count); + cc1,country,cc2,locatn,grec[iig].count); write_popup_text("write",buff); } } - if (ggroups_groupby == 3) // group by country/city/date (range) + if (ggroups_groupby == 3) // group by country/location/date (range) { - snprintf(buff,300,"%-30s %-30s %-10s %5s ","Country","City","Date","Count"); + snprintf(buff,300,"%-26s %-26s %-10s %5s ","Country","location","Date","Count"); write_popup_text("writebold",buff); for (iig = 0; iig < Ngrec; iig++) { - utf8substring(country,grec[iig].country,0,30); // get graphic cc for UTF-8 names - cc1 = 30 + strlen(country) - utf8len(country); - utf8substring(city,grec[iig].city,0,30); - cc2 = 30 + strlen(city) - utf8len(city); + utf8substring(country,grec[iig].country,0,26); // get graphic cc for UTF-8 names + cc1 = 26 + strlen(country) - utf8len(country); + utf8substring(locatn,grec[iig].location,0,26); + cc2 = 26 + strlen(locatn) - utf8len(locatn); strncpy(pdate,grec[iig].pdate,8); // date, yyyymmdd if (! strmatch(pdate,"null")) { @@ -6693,8 +6752,8 @@ pdate[10] = 0; } - snprintf(buff,300,"%-*s %-*s %-10s %5d ", - cc1,country,cc2,city,pdate,grec[iig].count); + snprintf(buff,300,"%-*s %-*s %-10s %6d ", + cc1,country,cc2,locatn,pdate,grec[iig].count); write_popup_text("write",buff); } } @@ -6726,9 +6785,9 @@ ii = strcmp(country1,country2); if (ii) return ii; - char * city1 = ((grec_t *) rec1)->city; // compare cities - char * city2 = ((grec_t *) rec2)->city; - ii = strcmp(city1,city2); + char * loc1 = ((grec_t *) rec1)->location; // compare cities + char * loc2 = ((grec_t *) rec2)->location; + ii = strcmp(loc1,loc2); if (ii) return ii; int date1 = ((grec_t *) rec1)->lodate; // compare dates @@ -6780,13 +6839,13 @@ // Receive clicks on report window and generate gallery of images -// matching the selected country/city/date +// matching the selected country/location/date void ggroups_click(GtkWidget *widget, int line, int pos) { int iix, ftf, err, lodate, hidate, datex; cchar *pp; - char city[100], country[100]; + char locatn[100], country[100]; FILE *fid; sxrec_t sxrec; @@ -6797,8 +6856,8 @@ iix = line - 1; // clicked grec[iix] if (iix < 0 || iix > Ngrec-1) return; - strncpy0(country,grec[iix].country,99); // selected country/city/date range - strncpy0(city,grec[iix].city,99); + strncpy0(country,grec[iix].country,99); // selected country/location/date range + strncpy0(locatn,grec[iix].location,99); lodate = grec[iix].lodate; hidate = grec[iix].hidate; @@ -6820,7 +6879,7 @@ if (ggroups_groupby >= 2) { pp = strField(sxrec.gtags,'^',1); if (! pp) pp = "null"; - if (! strmatch(pp,city)) goto freemem; // no city match + if (! strmatch(pp,locatn)) goto freemem; // no location match } if (ggroups_groupby == 3) { @@ -6869,7 +6928,8 @@ char *pp; char *inputs[30], *outputs[99]; int cc, ii, jj, err; - + uint ucc; + if (nkeys < 1 || nkeys > 20) zappcrash("exif_get nkeys: %d",nkeys); cc = nkeys * sizeof(char *); // clear outputs @@ -6887,6 +6947,8 @@ inputs[jj] = (char *) zmalloc(cc+2); inputs[jj][0] = '-'; strcpy(inputs[jj]+1,keys[ii]); + if (strmatchcase(keys[ii],"location")) // make "location" = "city" 16.07 + strcpy(inputs[jj]+1,"city"); jj++; } @@ -6906,10 +6968,15 @@ for (jj = 0; jj < nkeys; jj++) { - uint cc = strlen(keys[jj]); // look for matching input keyname - if (! strmatchcaseN(pp,keys[jj],cc)) continue; - if (strlen(pp) > cc+2) // if not empty, - kdata[jj] = zstrdup(pp+cc+2); // return keyvalue alone + if (strmatchcase(keys[jj],"location")) { // "location" comes back "city" 16.07 + if (! strmatchcaseN(pp,"city",4)) continue; + if (strlen(pp) > 6) kdata[jj] = zstrdup(pp+6); + } + else { + ucc = strlen(keys[jj]); // look for matching input keyname + if (! strmatchcaseN(pp,keys[jj],ucc)) continue; + if (strlen(pp) > ucc+2) kdata[jj] = zstrdup(pp+ucc+2); + } } zfree(pp); @@ -6944,8 +7011,16 @@ cc = strlen(keys[ii]) + strlen(kdata[ii]) + 3; inputs[jj] = (char *) zmalloc(cc); inputs[jj][0] = '-'; // -keyname=value - strcpy(inputs[jj]+1,keys[ii]); - cc = strlen(keys[ii]); + + if (strmatchcase(keys[ii],"location")) { // make "location" = "city" 16.07 + strcpy(inputs[jj]+1,"city"); + cc = 4; + } + else { + strcpy(inputs[jj]+1,keys[ii]); + cc = strlen(keys[ii]); + } + inputs[jj][cc+1] = '='; strcpy(inputs[jj]+cc+2,kdata[ii]); jj++; diff -Nru fotoxx-16.06/fotoxx-16.06.cc fotoxx-16.07/fotoxx-16.06.cc --- fotoxx-16.06/fotoxx-16.06.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/fotoxx-16.06.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,4515 +0,0 @@ -/******************************************************************************** - - Fotoxx edit photos and manage collections - - Copyright 2007-2016 Michael Cornelison - Source URL: http://kornelix.net - Contact: kornelix@posteo.de - - This program 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. - - This program 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 this program. If not, see http://www.gnu.org/licenses/. - -********************************************************************************* - - main main program, set up defaults - initzfunc initializations, carry out command line options - - delete_event response function for main window delete event - destroy_event response function for main window destroy event - state_event response function for main window fullscreen state change - - gtimefunc periodic function - update_Fpanel update status parameters on F window top panel - - paintlock block window updates from main thread or created thread - Fpaint main / drawing window refresh (draw signal response function) - Fpaintnow immediate Fpaint, not callable from threads - Fpaint2 queue Fpaint, callable from threads - Fpaint3 update drawing window section from updated E3 section - Fpaint4 update drawing window section (direct write) - - mouse_event mouse event response function - mouse_convert convert mouse/window space to image space - m_zoom main window zoom in/out function - KBstate send KB key from dialog to main window - KBpress KB key press event function - KBrelease KB key release event function - win_fullscreen set main window full screen status - win_unfullscreen restore main window to former size - set_mwin_title update the main window title bar - - draw_pixel draw one overlay pixel using image space - erase_pixel erase one pixel - draw_line draw overlay line in image space - erase_line erase line - draw_toplines draw or redraw a set of overlay lines - draw_gridlines draw grid lines over image - add_toptext add to set of overlay text strings - draw_toptext draw set of overlay text strings - erase_toptext remove text from set of overlay text strings - draw_text draw text on window in image space - add_topcircle add a circle to set of overlay circles - draw_topcircles draw the set of overlay circles in window space - erase_topcircles erase the set of overlay circles - draw_mousecircle draw a circle around pointer in image space - draw_mousecircle2 2nd instance for paint/clone tracking circle - draw_mousearc draw an ellipse around pointer in image space - - splcurve_init set up a spline curve drawing area - splcurve_adjust mouse event function to manipulate curve nodes - splcurve_addnode add an anchor point to a curve - splcurve_draw draw curve through nodes - splcurve_generate generate x/y table of values from curve - splcurve_yval get curve y-value for given x-value - splcurve_load load curve data from a saved file - splcurve_save save curve data to a file - - edit_setup start an image edit function - CEF_invalid diagnostic - edit_cancel cancle image edit - edit_done finish image edit - edit_fullsize convert preview to full size edit - edit_undo undo current edit (reset) - edit_redo redo current edit - edit_reset reset all edit changes - edit_load_widgets load zdialog widgets and curves from a file - edit_save_widgets save last-used widgets (for [done] buttons) - edit_load_prev_widgets load last-used widgets (for [prev] buttons) - edit_save_last_widgets save last-used widgets (for [prev] buttons) - - m_undo_redo undo/redo depending on mouse button - undo_redo_choice popup menu response function - m_undo restore previous edit in undo/redo stack - m_redo restore next edit in undo/redo stack - undo_all undo all edits for image - redo_all redo all edits for image - save_undo save image in the undo stack - load_undo load image from the undo stack - checkpend check status: edit mods busy block any quiet - takeMouse set mouse event function and special cursor - freeMouse remove mouse event function, set normal cursor - - start_thread start thread running - signal_thread signal thread that work is pending - wait_thread_idle wait for pending work complete - wrapup_thread wait for thread exit or command thread exit - thread_idle_loop wait for pending work, exit if commanded - thread_exit exit thread unconditionally - start_wthread start a working thread per SMP processor - exit_wthread exit a working thread - wait_wthreads wait for all working threads to exit - - save_params save parameters when fotoxx exits - load_params load parameters at fotoxx startup - free_resources free resources for the current image file - sigdiff compare 2 floats with margin of significance - -*********************************************************************************/ - -#define EX // disable extern declarations -#include "fotoxx.h" // (variables in fotoxx.h are defined) - -/********************************************************************************/ - - -// fotoxx main program - -using namespace zfuncs; - -int main(int argc, char *argv[]) -{ - char lang[8] = ""; - int Fclone=0, cloxx=0, cloyy=0, cloww=0, clohh=0; - int err; - STATB statb; - - if (argc > 1 && strmatchV(argv[1],"-ver","-v",0)) { - printz(Frelease "\n"); // print version and exit - return 0; - } - - if (gtk_clutter_init(&argc,&argv) != CLUTTER_INIT_SUCCESS) return 1; // init. gtk and clutter (OSM) 16.05 - - zinitapp("fotoxx"); // initz. app directories - err = chdir(get_zuserdir()); // set to /home//.fotoxx - - // initialize externals to default values - // (saved parameters will override these) - - strcpy(zfuncs::zappname,Frelease); // app name and version - Ffirsttime = 1; // first time startup (params override) - Prelease = zstrdup("unknown"); // prev. fotoxx release (params override) - mwgeom[0] = mwgeom[1] = 100; // default main window geometry - mwgeom[2] = 1200; mwgeom[3] = 800; - *paneltext = 0; // no status bar text - trimsize[0] = 1600; // default initial image trim size - trimsize[1] = 1000; - trimbuttons[0] = zstrdup("5:4"); trimratios[0] = zstrdup("5:4"); // default trim ratio buttons - trimbuttons[1] = zstrdup("4:3"); trimratios[1] = zstrdup("4:3"); - trimbuttons[2] = zstrdup("8:5"); trimratios[2] = zstrdup("8:5"); - trimbuttons[3] = zstrdup("16:9"); trimratios[3] = zstrdup("16:9"); - trimbuttons[4] = zstrdup("2:1"); trimratios[4] = zstrdup("2:1"); - trimbuttons[5] = zstrdup("gold"); trimratios[5] = zstrdup("1.62:1"); - editresize[0] = 1600; // default initial resize size - editresize[1] = 1200; - currgrid = 0; // default initial grid settings - gridsettings[0][GON] = 0; // grid off - gridsettings[0][GX] = gridsettings[0][GY] = 1; // x/y grid lines enabled - gridsettings[0][GXS] = gridsettings[0][GYS] = 200; // x/y spacing - gridsettings[0][GXC] = gridsettings[0][GYC] = 5; // x/y count - menu_style = zstrdup("icons"); // default menu style (icons) - gallerysort = 1; // default gallery sort (alphabetic) 16.01 - dialog_font = zstrdup("Sans 11"); // default dialog font 16.05 - iconsize = 36; // default icon size - splcurve_minx = 5; // default curve node separation % 15.10 - startdisplay = zstrdup("prevI"); // start with previous image - Fdragopt = 1; // image drag with mouse 15.02 - zoomcount = 2; // zooms to reach 2x image size - zoomratio = sqrtf(2); // corresp. zoom ratio - map_dotsize = 8; // map dot size, mouse capture dist 16.05 - curr_file = curr_dirk = 0; // no curr. file or directory 15.11 - thumbdirk = 0; // no thumbnail directory - thumbfilesize = 256; // thumbnail files, default pixels 15.02 - startmenu = 0; // start with menu function - startalbum = 0; // start with album gallery - initial_file = 0; // start with image file or directory - jpeg_def_quality = 90; // default .jpeg save quality - jpeg_1x_quality = 90; // default for 1-time jpeg quality - lens_mm = 35; // pano lens parameter - colormapfile = zstrdup("undefined"); // printer calibration color map 15.10 - DCrawcommand = zstrdup("dcraw -T -6 -w -q 0 -o 1"); // default RAW to tiff command using DCraw - RAWfiletypes = zstrdup(".arw .crw .cr2 .dng .erf .iiq .mef .mos " // some of the known RAW file types - ".mpo .nef .nrw .orf .pef .ptx .raw " // (case is not significant here) - ".rw2 .rwl .srf .srw .sr2 "); - imagefiletypes = zstrdup(".jpg .jpeg .png .tif .tiff .bmp .ico " // supported image file types - ".gif .svg .xpm .tga "); - - BLACK[0] = BLACK[1] = BLACK[2] = 0; // define RGB colors - WHITE[0] = WHITE[1] = WHITE[2] = 255; - RED[0] = 255; RED[1] = RED[2] = 0; - GREEN[1] = 255; GREEN[0] = GREEN[2] = 0; - BLUE[2] = 255; BLUE[0] = BLUE[1] = 0; - LINE_COLOR = RED; // initial foreground drawing color - - BGcolor.red = BGcolor.green = BGcolor.blue = 0.2; // main window background color 15.09 - BGcolor.alpha = 1; - - for (int ii = 0; ii < 100; ii++) Nval[ii] = ii; // static integer values 0-99 - - // file and directory names in user directory /home//.fotoxx/* - - snprintf(index_dirk,199,"%s/image_index",get_zuserdir()); // image index directory - snprintf(tags_defined_file,199,"%s/tags_defined",get_zuserdir()); // defined tags file - snprintf(recentfiles_file,199,"%s/recent_files",get_zuserdir()); // recent files file (index func) - snprintf(saved_areas_dirk,199,"%s/saved_areas",get_zuserdir()); // saved areas directory - snprintf(albums_dirk,199,"%s/albums",get_zuserdir()); // albums directory - snprintf(saved_curves_dirk,199,"%s/saved_curves",get_zuserdir()); // saved curves directory - snprintf(writetext_dirk,199,"%s/write_text",get_zuserdir()); // write_text directory - snprintf(favorites_dirk,199,"%s/favorites",get_zuserdir()); // favorites directory - snprintf(mashup_dirk,199,"%s/mashup",get_zuserdir()); // mashup projects directory - locale_filespec("data","quickstart.html",quickstart_file); // quickstart html file - snprintf(slideshow_dirk,199,"%s/slideshows",get_zuserdir()); // slide show directory - snprintf(slideshow_trans_dirk,199,"%s/slideshow_trans",get_zuserdir()); // slide show directory - snprintf(pattern_dirk,199,"%s/patterns",get_zuserdir()); // pattern files directory - snprintf(retouch_combo_dirk,199,"%s/retouch_combo",get_zuserdir()); // retouch combo settings directory - snprintf(custom_kernel_dirk,199,"%s/custom_kernel",get_zuserdir()); // custom kernel files directory - snprintf(printer_color_dirk,199,"%s/printer_color",get_zuserdir()); // printer calibration directory 15.10 - snprintf(edit_scripts_dirk,199,"%s/edit_scripts",get_zuserdir()); // edit script files directory 15.10 - snprintf(searchresults_file,199,"%s/search_results",get_zuserdir()); // output of image search function - snprintf(maps_dirk,199,"/usr/share/fotoxx-maps/data"); // map files in fotoxx-maps package - snprintf(user_maps_dirk,199,"%s/user_maps",get_zuserdir()); // map files made by user 15.12 - - - err = stat(index_dirk,&statb); // create missing directories - if (err) mkdir(index_dirk,0750); - err = stat(saved_areas_dirk,&statb); - if (err) mkdir(saved_areas_dirk,0750); - err = stat(albums_dirk,&statb); - if (err) mkdir(albums_dirk,0750); - err = stat(saved_curves_dirk,&statb); - if (err) mkdir(saved_curves_dirk,0750); - err = stat(writetext_dirk,&statb); - if (err) mkdir(writetext_dirk,0750); - err = stat(mashup_dirk,&statb); - if (err) mkdir(mashup_dirk,0750); - err = stat(slideshow_dirk,&statb); - if (err) mkdir(slideshow_dirk,0750); - err = stat(slideshow_trans_dirk,&statb); - if (err) mkdir(slideshow_trans_dirk,0750); - err = stat(printer_color_dirk,&statb); - if (err) mkdir(printer_color_dirk,0750); - err = stat(edit_scripts_dirk,&statb); - if (err) mkdir(edit_scripts_dirk,0750); - err = stat(maps_dirk,&statb); - if (err) mkdir(maps_dirk,0750); - err = stat(user_maps_dirk,&statb); - if (err) mkdir(user_maps_dirk,0750); - - // following are initialized in initzfunc() below: - // pattern_dirk retouch_combo_dirk custom_kernel_dirk favorites_dirk - - load_params(); // restore parameters from last session - - for (int ii = 1; ii < argc; ii++) // command line parameters - { - char *pp = argv[ii]; - - if (strmatchV(pp,"-debug","-d",0)) // -d -debug - Fdebug = 1; - else if (strmatchV(pp,"-lang","-l",0) && argc > ii+1) // -l -lang lc_RC language/region code - strncpy0(lang,argv[++ii],7); - else if (strmatchV(pp,"-clone","-c",0) && argc > ii+4) { // -c -clone clone new instance - Fclone = 1; - cloxx = atoi(argv[ii+1]); // window position and size - cloyy = atoi(argv[ii+2]); // passed from parent instance - cloww = atoi(argv[ii+3]); - clohh = atoi(argv[ii+4]); - ii += 4; - } - else if (strmatchV(pp,"-recent","-r",0)) // -r -recent recent files gallery - Frecent = 1; - else if (strmatchV(pp,"-new","-n",0)) // -n -new new added files gallery - Fnew = 1; - else if (strmatchV(pp,"-prev","-p",0)) // -p -prev open previous file - Fprev = 1; - else if (strmatchV(pp,"-blank","-b",0)) // -b -blank start with blank window - Fblank = 1; - else if (strmatch(pp,"-noindex")) // -noindex no index update 15.02 - Fnoindex = 1; - else if (strmatchV(pp,"-menu","-m",0) && argc > ii+1) // -m -menu func start with menu func - startmenu = zstrdup(argv[++ii]); - else if (strmatchV(pp,"-album","-a",0) && argc > ii+1) // -a -album start with album 16.02 - startalbum = zstrdup(argv[++ii]); - else if (strmatch(pp,"-cycledesktop") && argc > ii+2) { // -cycledesktop album seconds 15.06 - run_cycledesktop(argv[ii+1],argv[ii+2]); // run in background without GUI - gtk_main(); - return 0; - } - else initial_file = zstrdup(pp); // must be initial file or directory - } - - ZTXinit(lang); // setup locale and translations - setlocale(LC_NUMERIC,"en_US.UTF-8"); // stop comma decimal points - - build_widgets(); // build window widgets and menus - - arrowcursor = gdk_cursor_new_for_display(display,GDK_TOP_LEFT_ARROW); // cursor for selection - dragcursor = gdk_cursor_new_for_display(display,GDK_CROSSHAIR); // cursor for dragging - drawcursor = gdk_cursor_new_for_display(display,GDK_PENCIL); // cursor for drawing lines - blankcursor = gdk_cursor_new_for_display(display,GDK_BLANK_CURSOR); // invisible cursor - - if (! zfuncs::screen || ! zfuncs::mouse) { - zpopup_message(0,"GTK/GDK failure to find hardware"); // 15.09 - m_quit(0,0); - exit(1); - } - - m_viewmode(0,"F"); // set F mode initially - - if (Fclone) { // clone: open new window - gtk_window_move(MWIN,cloxx+10,cloyy+10); // slightly offset from old window - gtk_window_resize(MWIN,cloww,clohh); - } - else { - gtk_window_move(MWIN,mwgeom[0],mwgeom[1]); // main window geometry - gtk_window_resize(MWIN,mwgeom[2],mwgeom[3]); // defaults or last session params - } - - g_timeout_add(100,initzfunc,0); // initz. call from gtk_main() - gtk_main(); // start processing window events - return 0; -} - - -/********************************************************************************/ - -// Initial function called from gtk_main() at startup. -// This function MUST return 0. - -int initzfunc(void *) -{ - int Fexiftool = 0, Fxdgopen = 0; - int ii, err, npid, contx; - int Fdirk = 0; - FTYPE ftype; - char *pp, *pp2; - char procfile[20], buff[200]; - char KBshortsU[200], KBshortsI[200]; - char tonefile[200], badnews[200]; - char metalistfile[200], albumfile[200]; - double freememory, cachememory; - float exifver = 0; - FILE *fid; - STATB statb; - - printz(Frelease "\n"); // print Fotoxx release version - - int v1 = gtk_get_major_version(); // get GTK release version - int v2 = gtk_get_minor_version(); - int v3 = gtk_get_micro_version(); - printz("GTK version: %d.%02d.%02d \n",v1,v2,v3); - - // check that necessary programs are installed - - fid = popen("exiftool -ver","r"); // check exiftool version - if (fid) { - ii = fscanf(fid,"%s",buff); - pclose(fid); // bugfix: accept period or comma - convSF(buff,exifver); - printz("exiftool version: %.2f \n",exifver); - if (exifver >= 8.60) Fexiftool = 1; - } - - err = shell_quiet("which xdg-open"); // check for xdg-open - if (! err) Fxdgopen = 1; - err = shell_quiet("which dcraw"); // check for DCraw - if (! err) Fdcraw = 1; - err = shell_quiet("which ufraw"); // check for UFraw - if (! err) Fufraw = 1; - err = shell_quiet("which rawtherapee"); // check for Raw Therapee - if (! err) Frawtherapee = 1; - err = shell_quiet("which growisofs"); // check for growisofs 16.02 - if (! err) Fgrowisofs = 1; - - err = shell_quiet("which hugin"); // check for pano tools (hugin versions) - if (! err) { - PTtools = 1; - err = shell_quiet("which hugin_executor"); // 2015 release - if (! err) PTtools = 2; - } - - if (Fexiftool + Fxdgopen < 2) { // check mandatory dependencies - strcpy(badnews,ZTX("Please install missing programs:")); - if (! Fexiftool) strcat(badnews,"\n exiftool 8.6 or later"); // refuse to start if any are missing - if (! Fxdgopen) strcat(badnews,"\n xdg-utils"); - if (! Fdcraw) strcat(badnews,"\n DCraw"); - zmessageACK(Mwin,badnews); - m_quit(0,0); - } - - if (! Fufraw) printz("UFraw not installed \n"); // optional - if (! Frawtherapee) printz("Raw Therapee not installed \n"); - if (! Fgrowisofs) printz("growisofs not installed \n"); - if (! PTtools) printz("Panorama Tools (Hugin) not installed \n"); - - // check for first time Fotoxx install or new release install - - if (Ffirsttime) { // new fotoxx install - showz_html(quickstart_file); - Prelease = zstrdup(Frelease); - } - - if (! Ffirsttime && ! strmatch(Prelease,Frelease)) { // Fotoxx release change - zmessageACK(Mwin,"fotoxx new release %s",Frelease); - Prelease = zstrdup(Frelease); - showz_textfile("doc","changelog"); - } - - Ffirsttime = 0; // reset first time flag - - // delete fotoxx tempdir files if owner process is no longer running - - contx = 0; - while ((pp = command_output(contx,"find /tmp/fotoxx-*",0))) { - pp2 = strchr(pp,'-'); - if (! pp2) continue; - npid = atoi(pp2+1); // pid of fotoxx owner process - snprintf(procfile,20,"/proc/%d",npid); - err = stat(procfile,&statb); - if (! err) continue; // pid is active, keep - shell_quiet("rm -R -f -v %s",pp); // delete - } - - // set up temp directory /tmp/fotoxx-nnnnnn-XXXXXX - - snprintf(tempdir,100,"/tmp/fotoxx-%06d-XXXXXX",getpid()); // use PID + random chars. - pp = mkdtemp(tempdir); - if (! pp) { - zmessageACK(Mwin,"%s \n %s",tempdir,strerror(errno)); - exit(1); - } - strncpy0(tempdir,pp,100); - printz("tempdir: %s \n",tempdir); - - // file name template for undo/redo files - - snprintf(URS_filename,100,"%s/undo_nn",tempdir); // /tmp/fotoxx-nnnnnn/undo_nn - - // check free memory and suggest image size limits - - parseprocfile("/proc/meminfo","MemFree:",&freememory,0); // get amount of free memory - parseprocfile("/proc/meminfo","Cached:",&cachememory,0); - freememory = (freememory + cachememory) / 1024; // megabytes - printz("free memory: %.0f MB \n",freememory); - printz("image size limits for good performance: \n"); - printz(" view: %.0f megapixels \n",(freememory-100)/6); // F + preview, 3 bytes/pixel each - printz(" edit: %.0f megapixels \n",(freememory-100)/54); // + E0/E1/E3/ER, 12 bytes/pixel each - - // update KB shortcuts if needed - - err = locale_filespec("user","KB-shortcuts",KBshortsU); // user KB shortcuts - if (err) { // not found - locale_filespec("data","KB-shortcuts",KBshortsI); - shell_quiet("cp %s %s",KBshortsI,KBshortsU); // copy installed KB shortcuts - printz("keyboard shortcuts installed \n"); - } - KBshortcuts_load(); // load KB shortcuts from file - - // copy default data files to user directories if not already - - err = stat(pattern_dirk,&statb); // pattern files - if (err) { - printz("copy default pattern files \n"); - mkdir(pattern_dirk,0750); - shell_quiet("cp -n %s/patterns/* %s",get_zdatadir(),pattern_dirk); - } - - err = stat(retouch_combo_dirk,&statb); // retouch combo settings - if (err) { - printz("copy default retouch_combo files \n"); - mkdir(retouch_combo_dirk,0750); - shell_quiet("cp -n %s/retouch_combo/* %s",get_zdatadir(),retouch_combo_dirk); - } - - err = stat(custom_kernel_dirk,&statb); // custom convolution kernels - if (err) { - printz("copy default custom_kernel files \n"); - mkdir(custom_kernel_dirk,0750); - shell_quiet("cp -n %s/custom_kernel/* %s",get_zdatadir(),custom_kernel_dirk); - } - - err = stat(favorites_dirk,&statb); // favorites menu - if (err) { - printz("copy default favorites menu \n"); - mkdir(favorites_dirk,0750); - shell_quiet("cp -n %s/favorites/* %s",get_zdatadir(),favorites_dirk); - } - - err = stat(tags_defined_file,&statb); // tags_defined file - if (err) { - printz("create default tags_defined file \n"); - shell_quiet("cp %s/tags_defined %s",get_zdatadir(),tags_defined_file); - } - - snprintf(tonefile,200,"%s/slideshow-tone.oga",slideshow_dirk); // default slide show pause tone - err = stat(tonefile,&statb); - if (err) shell_quiet("cp %s/slideshow-tone.oga %s",get_zdatadir(),tonefile); - - snprintf(metalistfile,200,"%s/metadata_short_list",get_zuserdir()); // metadata keys short list 15.10 - err = stat(metalistfile,&statb); - if (err) shell_quiet("cp %s/metadata_short_list %s",get_zdatadir(),metalistfile); - - // miscellaneous - - screen = gtk_window_get_screen(MWIN); // get monitor pixel dimensions - screenww = gdk_screen_get_width(screen); - screenhh = gdk_screen_get_height(screen); - printz("screen width: %d height: %d \n",screenww,screenhh); - - NWT = get_nprocs(); // get SMP CPU count - if (NWT <= 0) NWT = 2; - if (NWT > max_threads) NWT = max_threads; // compile time limit - printz("using %d threads \n",NWT); - - zdialog_inputs("load"); // load saved dialog inputs - zdialog_positions("load"); // load saved dialog positions - - exif_server(0,0,0); // kill orphan exiftool process - - // create or update image index file - // cannot continue until completed OK - - index_rebuild(0); // quits if cannot complete - printz("RAW file types found: %s \n",myRAWtypes); // list RAW types found - - // set current file and gallery from command line if present - - if (topdirks[0]) curr_dirk = zstrdup(topdirks[0]); // default 1st top image directory 15.11 - else curr_dirk = zstrdup(getenv("HOME")); - - if (startalbum) { // 16.02 - snprintf(albumfile,200,"%s/albums/%s",get_zuserdir(),startalbum); - err = stat(albumfile,&statb); - if (err) { - printz("invalid album file: %s \n",albumfile); - startalbum = 0; - } - } - - if (initial_file) { // from command line - pp = realpath(initial_file,0); // prepend directory if needed - if (pp) { - zfree(initial_file); - initial_file = zstrdup(pp); - free(pp); // not zfree(), bugfix 15.05 - } - else { - printz("invalid file: %s \n",initial_file); // invalid file path - zfree(initial_file); - initial_file = 0; - } - } - - if (initial_file) { - ftype = image_file_type(initial_file); - if (ftype == FNF) { // non-existent file - printz("invalid file: %s \n",initial_file); - zfree(initial_file); - initial_file = 0; - } - else if (ftype == FDIR) { // is a directory - if (curr_dirk) zfree(curr_dirk); - curr_dirk = initial_file; - initial_file = 0; - Fdirk = 1; - } - else { - if (curr_dirk) zfree(curr_dirk); - curr_dirk = zstrdup(initial_file); // set current directory from file - pp = strrchr(curr_dirk,'/'); - if (pp) *pp = 0; - } - } - - if (startalbum) { // open initial album gallery 16.02 - navi::gallerytype = ALBUM; - gallery(albumfile,"initF"); - m_viewmode(0,"G"); - } - - else if (initial_file) // open initial image file - f_open(initial_file); - - else if (Fdirk) { // open initial directory gallery - gallery(curr_dirk,"init"); - m_viewmode(0,"G"); - gallery(0,"paint",0); - } - - else if (Fprev) { // start with previous file - if (last_curr_file && *last_curr_file == '/') // 15.07 - f_open(last_curr_file); - } - - else if (Frecent) // start with recent files gallery - m_recentfiles(0,0); - - else if (Fnew) // start with newest files gallery - m_newfiles(0,"file"); // by file mod date - - else if (Fblank) { // blank window, no gallery 15.07 - curr_file = curr_dirk = 0; - navi::galleryname = 0; - navi::gallerytype = NONE; - set_mwin_title(); - } - - // if no command line option, get startup display from user options - - else if (strmatch(startdisplay,"recent")) // start with recent files gallery - m_recentfiles(0,0); - - else if (strmatch(startdisplay,"newest")) // start with newest files gallery 15.07 - m_newfiles(0,"file"); // by file mode date - - else if (strmatch(startdisplay,"prevG")) { // start with previous gallery 15.07 - if (last_gallerytype != NONE) { - navi::gallerytype = last_gallerytype; - if (last_gallerytype == GDIR) - gallery(last_galleryname,"init"); - else gallery(last_galleryname,"initF"); - m_viewmode(0,"G"); - gallery(0,"paint",0); - } - } - - else if (strmatch(startdisplay,"prevI")) { // start with previous image file - if (last_curr_file && *last_curr_file == '/') - f_open(last_curr_file); - } - - else if (strmatch(startdisplay,"dirk")) { // start with given directory - if (startdirk && *startdirk == '/') { - if (curr_dirk) zfree(curr_dirk); - curr_dirk = zstrdup(startdirk); - navi::thumbsize = 128; - gallery(curr_dirk,"init",0); - m_viewmode(0,"G"); - gallery(0,"paint",0); - } - } - - else if (strmatch(startdisplay,"file")) // start with given image file - f_open(startfile); - - if (startmenu) { // startup menu on command line - printz("start menu: %s \n",startmenu); - for (ii = 0; ii < Nmenus; ii++) { // convert menu name to menu function - if (! menutab[ii].menu) continue; // separator, null menu 15.12 - if (strmatchcase(startmenu,ZTX(menutab[ii].menu))) break; - } - if (ii < Nmenus) menutab[ii].func(0,menutab[ii].arg); // call the menu function - } - - save_params(); // save parameters now 15.07 - - g_timeout_add(20,gtimefunc,0); // start periodic function (20 ms) 16.02 - - return 0; // don't come back -} - - -/********************************************************************************/ - -// functions for main window event signals - -int delete_event() // main window closed -{ - int yn; - - printz("main window delete event \n"); - if (checkpend("mods")) return 1; // allow user bailout - if (zfuncs::zdialog_busy) { - yn = zmessageYN(Mwin,ZTX("Kill active dialog?")); // allow user bailout - if (! yn) return 1; - } - quitxx(); - return 0; -} - -int destroy_event() // main window destroyed -{ - printz("main window destroy event \n"); - quitxx(); - return 0; -} - -int state_event(GtkWidget *, GdkEvent *event) // main window state changed -{ - int state = ((GdkEventWindowState *) event)->new_window_state; // track window fullscreen status - if (state & GDK_WINDOW_STATE_FULLSCREEN) Ffullscreen = 1; - else Ffullscreen = 0; - return 0; -} - - -/********************************************************************************/ - -// Periodic function (20 milliseconds) - -int gtimefunc(void *) -{ - static int domore = 0; - - if (Fshutdown) return 0; // shutdown underway - - if (Fpaintlock && gdkwin) { // thread request to freeze 16.02 - gdk_window_freeze_updates(gdkwin); // window updates - zadd_locked(Fpaintlock,-1); - } - - if (Fpaintunlock && gdkwin) { // thread request to thaw 16.02 - gdk_window_thaw_updates(gdkwin); // window updates - zadd_locked(Fpaintunlock,-1); - } - - if (Fpaintrequest && Cdrawin) // 16.02 - gtk_widget_queue_draw(Cdrawin); - - if (zd_thread && zd_thread_event) { // send dialog event from thread - if (! CEF || CEF->thread_status < 2) { - zdialog_send_event(zd_thread,zd_thread_event); // only if thread done or not busy 16.01 - zd_thread_event = 0; - } - } - - if (--domore > 0) return 1; // do rest every 200 milliseconds 15.05 - domore = 10; - - update_Fpanel(); // update top panel information - return 1; -} - - -/********************************************************************************/ - -// update F window top panel with current status information -// called from timer function - -void update_Fpanel() -{ - static double time1 = 0, time2, cpu1 = 0, cpu2, cpuload; - char text1[300], text2[100]; - static char ptext1[300] = ""; - int ww, hh, scale, bpc; - static int ftf = 1; - double file_MB = 1.0 / MEGA * curr_file_size; - static cchar *reduced, *areaactive, *dialogopen; - static cchar *blocked, *modified; - - if (! Fpanelshow) return; // panel currently hidden 16.02 - - if (ftf) { - ftf = 0; - reduced = ZTX("(reduced)"); - areaactive = ZTX("area active"); - dialogopen = ZTX("dialog open"); - blocked = ZTX("blocked"); - modified = "mod"; - } - - if (Fslideshow) return; // 16.01 - if (FGWM == 'G') goto update_busy; - if (FGWM != 'F') return; - - *text1 = *text2 = 0; - - if (! time1) { - time1 = get_seconds(); - cpu1 = jobtime(); - } - - time2 = get_seconds(); // compute process cpu load % - if (time2 - time1 > 1.0) { // at 1 second intervals - cpu2 = jobtime(); - cpuload = 100.0 * (cpu2 - cpu1) / (time2 - time1); - time1 = time2; - cpu1 = cpu2; - } - - parseprocfile("/proc/meminfo","MemFree:",&freemem,0); // get amount of free memory - freemem /= 1024; // megabytes 15.12 - - snprintf(text1,300,"CPU %03.0f%c MB %.0f",cpuload,'%',freemem); // CPU 023% MB 2345 - - if (curr_file && Fpxb) - { - if (E3pxm) { - ww = E3pxm->ww; - hh = E3pxm->hh; - } - else { - ww = Fpxb->ww; - hh = Fpxb->hh; - } - - bpc = curr_file_bpc; - - snprintf(text2,100," %dx%dx%d",ww,hh,bpc); // 2345x1234x16 (preview) 1.56MB 45% - strncatv(text1,300,text2,0); - if (CEF && CEF->Fpreview) strncatv(text1,300," ",reduced,0); - snprintf(text2,100," %.2fM",file_MB); - strncatv(text1,300,text2,0); - scale = Mscale * 100 + 0.5; - snprintf(text2,100," %d%c",scale,'%'); - strncatv(text1,300,text2,0); - - if (URS_pos) { // edit undo/redo stack depth - snprintf(text2,100," %s: %d",ZTX("edits"),URS_pos); - strncatv(text1,300,text2,0); - } - - if (Fmetamod) strncatv(text1,300," ","metadata",0); - } - - else if (Fpxb) { // 15.03 - snprintf(text2,100," %dx%d",Fpxb->ww,Fpxb->hh); - strncatv(text1,300,text2,0); - } - - if (sa_stat == 3) strncatv(text1,300," ",areaactive,0); - if (zfuncs::zdialog_busy) strncatv(text1,300," ",dialogopen,0); - - if (Fblock) strncatv(text1,300," ",blocked,0); // "blocked" - if (CEF && CEF->Fmods) strncatv(text1,300," ",modified,0); // "mod" - if (*paneltext) strncatv(text1,300," ",paneltext,0); // application text - - if (! strmatch(text1,ptext1)) { // if text changed, update panel bar - gtk_label_set_label(GTK_LABEL(Fpanlab),text1); - gtk_widget_show_all(Fpanel); - strcpy(ptext1,text1); - } - -// Show BUSY label if Ffuncbusy or Fthreadbusy active. // overhauled 16.01 -// Show progress bar if Fbusy_goal > 0. -// added to top panel: BUSY |||||||||||..........| - -update_busy: - - static GtkWidget *busylabel = 0, *donelabel = 0; - static cchar *busytext = " BUSY"; - static char donetext[] = "|::::::::::::::::::::|"; - GtkWidget *FGpanel; - int Nbars = 0, pbcc = 34; - - if (FGWM == 'F') FGpanel = Fpanel; // 16.01 - else if (FGWM == 'G') FGpanel = Gpanel; - else return; - - if (Ffuncbusy | Fthreadbusy) { - if (! busylabel) { - busylabel = gtk_label_new(null); - gtk_label_set_markup(GTK_LABEL(busylabel),busytext); - gtk_box_pack_start(GTK_BOX(FGpanel),busylabel,0,0,5); - } - } - else { - if (busylabel) gtk_widget_destroy(busylabel); - busylabel = 0; - } - - if (Fbusy_done > 0 && Fbusy_done < Fbusy_goal) { - Nbars = 20.0 * Fbusy_done / Fbusy_goal + 0.5; // N = 0-20 - if (Nbars > 20) Nbars = 20; - memset(donetext+pbcc,':',Nbars); // [ N bars + 20-N blanks ] - memset(donetext+pbcc+Nbars,' ',20-Nbars); - if (! donelabel) { - donelabel = gtk_label_new(""); - gtk_box_pack_start(GTK_BOX(FGpanel),donelabel,0,0,0); - } - gtk_label_set_markup(GTK_LABEL(donelabel),donetext); - } - else { - if (donelabel) gtk_widget_destroy(donelabel); - donelabel = 0; - } - - gtk_widget_show_all(FGpanel); - - return; -} - - -// block image updated by created threads during painting by main thread -// block main thread window updates during changes to image data by created threads -// lock = 1: block updates lock = 0: unblock - -void paintlock(int lock) // 16.02 -{ - static int freezecount = 0; - int nn; - - if (! gdkwin) return; - - if (pthread_equal(pthread_self(),zfuncs::tid_main)) { // main thread caller - if (lock) { - gdk_window_freeze_updates(gdkwin); // freeze window updates - nn = zadd_locked(freezecount,+1); // increment freeze counter - if (nn <= 0) zappcrash("paintlock() freezecount: %d",freezecount); - } - else { - gdk_window_thaw_updates(gdkwin); // thaw window updates - nn = zadd_locked(freezecount,-1); // decrement freeze counter - if (nn < 0) zappcrash("paintlock() freezecount: %d",freezecount); - } - } - - else { // created thread caller - if (lock) { - zadd_locked(Fpaintlock,+1); // set flag for gtimefunc() - while (zadd_locked(Fpaintlock,0)) zsleep(0.01); // wait for freeze done - nn = zadd_locked(freezecount,+1); // increment freeze counter - if (nn <= 0) zappcrash("paintlock() freezecount: %d",freezecount); - } - else { - zadd_locked(Fpaintunlock,+1); // set flag for gtimefunc() - while (zadd_locked(Fpaintunlock,0)) zsleep(0.01); // wait for thaw done - nn = zadd_locked(freezecount,-1); // decrement freeze counter - if (nn < 0) zappcrash("paintlock() freezecount: %d",freezecount); - } - } - - return; -} - - -/********************************************************************************/ - -// GTK3 "draw" function for F and W mode drawing windows. -// Paint window when created, exposed, resized, or image modified (edited). -// Update window image if scale change or window size change. -// Otherwise do only the draw function (triggered from GTK). -// Draw the image section currently within the visible window. -// May NOT be called from threads. See Fpaint2() for threads. - -int Fpaint(GtkWidget *Cdrawin, cairo_t *cr) -{ - PIXBUF *pixbuf; - PXB *pxb1; - static int pdww = 0, pdhh = 0; // prior window size - float wscale, hscale; - int fww, fhh; // current image size at 1x - int mww, mhh; // scaled image size - int morgx, morgy; - int dorgx, dorgy; - int centerx, centery; - int refresh = 0; - int mousex, mousey; // mouse position after zoom - float magx, magy; // mouse drag, magnification ratios - uint8 *pixels, *pix; - int rs, px, py; - - if (Fshutdown) return 1; // shutdown underway - - if (! Cdrawin || ! gdkwin || ! Cstate || ! Cstate->fpxb) { // no image 15.10 - Fpaintrequest = 0; - return 1; - } - - Dww = gdk_window_get_width(gdkwin); // (new) drawing window size - Dhh = gdk_window_get_height(gdkwin); - if (Dww < 20 || Dhh < 20) return 1; // too small - - if (Dww != pdww || Dhh != pdhh) { // window size changed - refresh = 1; // image refresh needed - pdww = Dww; - pdhh = Dhh; - } - - if (Fpaintrequest) { // window image changed 15.09 - Fpaintrequest = 0; // window updated as of NOW 15.09 - refresh = 1; // image refresh needed - if (FGWM == 'F' && (E0pxm || E3pxm)) { // insure window F and E0 or E3 - if (E3pxm) pxb1 = PXM_PXB_copy(E3pxm); // update fpxb from E0/E3 image - else pxb1 = PXM_PXB_copy(E0pxm); // or use already edited image - PXB_free(Cstate->fpxb); - Cstate->fpxb = pxb1; - } - } - - centerx = (Cstate->morgx + 0.5 * dww) / Cstate->mscale; // center of window, image space - centery = (Cstate->morgy + 0.5 * dhh) / Cstate->mscale; // (before window or scale change) - - fww = Cstate->fpxb->ww; // 1x image size - fhh = Cstate->fpxb->hh; - - if (Cstate->fzoom == 0) { // scale to fit window - wscale = 1.0 * Dww / fww; - hscale = 1.0 * Dhh / fhh; - if (wscale < hscale) Cstate->mscale = wscale; // use greatest ww/hh ratio - else Cstate->mscale = hscale; - if (fww <= Dww && fhh <= Dhh && ! Fblowup) Cstate->mscale = 1.0; // small image 1x unless Fblowup - zoomx = zoomy = 0; // no zoom target - } - else Cstate->mscale = Cstate->fzoom; // scale to fzoom level - - mww = fww * Cstate->mscale; // scaled image size for window - mhh = fhh * Cstate->mscale; - - dww = Dww; // image fitting inside drawing window - if (dww > mww) dww = mww; // image < window size - dhh = Dhh; - if (dhh > mhh) dhh = mhh; - - if (Cstate->mscale != Cstate->pscale) { // scale changed - Cstate->morgx = Cstate->mscale * centerx - 0.5 * dww; // change origin to keep same center - Cstate->morgy = Cstate->mscale * centery - 0.5 * dhh; // (subject to later rules) - Cstate->pscale = Cstate->mscale; // remember scale - refresh = 1; // image refresh needed - } - - if (! Cstate->mpxb) refresh++; // need to make mpxb - - if (refresh) { // image refresh needed - if (Cstate->mpxb) PXB_free(Cstate->mpxb); - if (Cstate->mscale == 1) Cstate->mpxb = PXB_copy(Cstate->fpxb); // fast 1x image - else Cstate->mpxb = PXB_rescale(Cstate->fpxb,mww,mhh); // rescaled image - } - - if ((Mxdrag || Mydrag)) { // pan/scroll via mouse drag - zoomx = zoomy = 0; // no zoom target - magx = 1.0 * (mww - dww) / dww; - magy = 1.0 * (mhh - dhh) / dhh; // needed magnification of mouse movement - if (magx < 1) magx = 1; // retain a minimum speed - if (magy < 1) magy = 1; - - if (Fdragopt == 1) { - Cstate->morgx -= round(Mwdragx); // same direction - Cstate->morgy -= round(Mwdragy); - } - if (Fdragopt == 2) { - Cstate->morgx += round(Mwdragx); // opposite direction - Cstate->morgy += round(Mwdragy); - } - if (Fdragopt == 3) { - Cstate->morgx -= round(Mwdragx * magx); // same direction, magnified - Cstate->morgy -= round(Mwdragy * magy); - } - if (Fdragopt == 4) { - Cstate->morgx += round(Mwdragx * magx); // opposite direction, magnified - Cstate->morgy += round(Mwdragy * magy); - } - } - - if (dww < Dww) Cstate->dorgx = 0.5 * (Dww - dww); // if scaled image < window, - else Cstate->dorgx = 0; // center image in window - if (dhh < Dhh) Cstate->dorgy = 0.5 * (Dhh - dhh); - else Cstate->dorgy = 0; - - if (Fshiftright && dww < Dww-1) Cstate->dorgx = Dww-1 - dww; // shift image to right margin 16.01 - - if (zoomx || zoomy) { // requested zoom center - Cstate->morgx = Cstate->mscale * zoomx - 0.5 * dww; // corresp. window position within image - Cstate->morgy = Cstate->mscale * zoomy - 0.5 * dhh; - } - - if (Cstate->morgx < 0) Cstate->morgx = 0; // maximize image within window - if (Cstate->morgy < 0) Cstate->morgy = 0; // (no unused margins) - if (Cstate->morgx + dww > mww) Cstate->morgx = mww - dww; - if (Cstate->morgy + dhh > mhh) Cstate->morgy = mhh - dhh; - - if (zoomx || zoomy) { // zoom target - mousex = zoomx * Cstate->mscale - Cstate->morgx + Cstate->dorgx; - mousey = zoomy * Cstate->mscale - Cstate->morgy + Cstate->dorgy; // mouse pointer follows target - move_pointer(Cdrawin,mousex,mousey); - zoomx = zoomy = 0; // reset zoom target - } - - if (zddarkbrite) darkbrite_paint(); // update dark/bright pixels - - gdk_cairo_set_source_rgba(cr,&BGcolor); // paint background color 15.09 - cairo_paint(cr); - - morgx = Cstate->morgx; // window position in (larger) image - morgy = Cstate->morgy; - dorgx = Cstate->dorgx; - dorgy = Cstate->dorgy; - - if (refresh) { // renew background image 16.01 - if (BGpixbuf) g_object_unref(BGpixbuf); - BGpixbuf = gdk_pixbuf_new(GDKRGB,0,8,dww,dhh); - pixels = gdk_pixbuf_get_pixels(BGpixbuf); - rs = gdk_pixbuf_get_rowstride(BGpixbuf); - - for (py = 0; py < dhh; py++) - for (px = 0; px < dww; px++) - { - pix = pixels + py * rs + px * 3; - if (py % 10 < 2 && px % 10 < 2) - memset(pix,150,3); - else memset(pix,50,3); - } - } - - gdk_cairo_set_source_pixbuf(cr,BGpixbuf,dorgx,dorgy); // paint background image 16.01 - cairo_paint(cr); - - pixbuf = Cstate->mpxb->pixbuf; // get image section within window - pixbuf = gdk_pixbuf_new_subpixbuf(pixbuf,morgx,morgy,dww,dhh); - gdk_cairo_set_source_pixbuf(cr,pixbuf,dorgx,dorgy); // paint section - cairo_paint(cr); - g_object_unref(pixbuf); - - mwcr = cr; // cairo context for draw funcs below - cairo_set_line_width(mwcr,1); - - if (Cstate == &Fstate) { // view mode is image - if (Ntoplines) draw_toplines(1); // draw line overlays - if (gridsettings[currgrid][GON]) draw_gridlines(); // draw grid lines - if (Ntoptext) draw_toptext(); // draw text strings - if (Ntopcircles) draw_topcircles(); // draw circles - if (Fshowarea) sa_show(1); // draw select area outline - if (refresh && zdbrdist) m_show_brdist(0,0); // update brightness dist. moved 15.12.1 - } - - if (Cstate == &Wstate) // view mode is world maps - geomap_paint_dots(); // 15.01 - - mwcr = 0; // cairo context invalid - return 1; -} - - -/********************************************************************************/ - -// Repaint modified image synchrounously. -// May NOT be called from threads. - -void Fpaintnow() -{ - if (! Cdrawin || ! gdkwin || ! Cstate || ! Cstate->fpxb) { // no image 15.10 - printf("Fpaintnow(), no image \n"); - return; - } - - Fpaintrequest = 1; // request repaint of changed image 15.09 - gtk_widget_queue_draw(Cdrawin); - while (Fpaintrequest) { - zsleep(0.001); - zmainloop(); - } - - return; -} - - -// Cause (modified) output image to get repainted soon. -// Fpaint() will be called by gtimefunc() next timer cycle. -// MAY be called from threads. - -void Fpaint2() -{ - Fpaintrequest = 1; // request repaint of changed image 15.09 - return; -} - - -// Update a section of fpxb and mpxb from an updated section of E3pxm, -// then update the corresponding section of the drawing window. -// This avoids a full image refresh, E3pxm > fpxb > mpxb > drawing window. -// px3, py3, ww3, hh3: modified section within E3pxm to be propagated. -// May NOT be called from threads. - -void Fpaint3(int px3, int py3, int ww3, int hh3) -{ - PXM_PXB_update(E3pxm,Fpxb,px3,py3,ww3,hh3); // E3pxm > Fpxb, both 1x scale - PXB_PXB_update(Fpxb,Mpxb,px3,py3,ww3,hh3); // Fpxb > Mpxb, scaled up or down - Fpaint4(px3,py3,ww3,hh3); // update drawing window from Mpxb - return; -} - - -// Repaint a section of the Mpxb image in the visible window. -// px3, py3, ww3, hh3: area to be repainted (in 1x image space). -// May NOT be called from threads. -// Writes directly on the window (cairo pixbuf paint). - -void Fpaint4(int px3, int py3, int ww3, int hh3) -{ - PIXBUF *pixbuf, *bgpixbuf; - int px1, py1, px2, py2; - int ww1, hh1, ww2, hh2; - int crflag = 0; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - px2 = Mscale * px3 - 2; // 1x image space to mpxb space - py2 = Mscale * py3 - 2; // (expanded) - ww2 = Mscale * ww3 + 2 / Mscale + 4; - hh2 = Mscale * hh3 + 2 / Mscale + 4; - - if (px2 + ww2 > Mpxb->ww) ww2 = Mpxb->ww - px2; // avoid overshoot - if (py2 + hh2 > Mpxb->hh) hh2 = Mpxb->hh - py2; - - if (px2 < Morgx) { // reduce to currently visible window - ww2 = ww2 - (Morgx - px2); - px2 = Morgx; - } - - if (py2 < Morgy) { - hh2 = hh2 - (Morgy - py2); - py2 = Morgy; - } - - if (ww2 <= 0 || hh2 <= 0) return; // completely outside visible window - - paintlock(1); // 16.03 - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - crflag = 1; - } - - pixbuf = gdk_pixbuf_new_subpixbuf(Mpxb->pixbuf,px2,py2,ww2,hh2); // Mpxb area to paint 15.08 - - px1 = px2 - Morgx; // corresp. position in background image - py1 = py2 - Morgy; - - px2 = px2 - Morgx + Dorgx; // corresp. position in drawing window - py2 = py2 - Morgy + Dorgy; - - if (Mpxb->nc > 3) { // alpha channel present 16.01 - ww1 = ww2; // draw background image to area - hh1 = hh2; - if (px1 + ww1 > dww) ww1 = dww - px1; - if (py1 + hh1 > dhh) hh1 = dhh - py1; - bgpixbuf = gdk_pixbuf_new_subpixbuf(BGpixbuf,px1,py1,ww1,hh1); - gdk_cairo_set_source_pixbuf(mwcr,bgpixbuf,px2,py2); - cairo_paint(mwcr); - g_object_unref(bgpixbuf); - } - - gdk_cairo_set_source_pixbuf(mwcr,pixbuf,px2,py2); // draw area to window - cairo_paint(mwcr); - - g_object_unref(pixbuf); - - if (Fshowarea) { - px3 = (px2 - Dorgx + Morgx) / Mscale; // back to image scale, expanded - py3 = (py2 - Dorgy + Morgy) / Mscale; - ww3 = ww2 / Mscale + 2; - hh3 = hh2 / Mscale + 2; - sa_show_rect(px3,py3,ww3,hh3); // refresh select area outline - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - paintlock(0); // 16.03 - return; -} - - -/********************************************************************************/ - -// F/W view window mouse event function - capture buttons and drag movements - -void mouse_event(GtkWidget *widget, GdkEventButton *event, void *) -{ - void mouse_convert(int xpos1, int ypos1, int &xpos2, int &ypos2); - - int button, time, type, scroll; - static int bdtime = 0, butime = 0; - static int mdragx0, mdragy0; - static int busy = 0; - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - type = event->type; - button = event->button; // button, 1/2/3 = left/center/right - time = event->time; - Mwxposn = event->x; // mouse position in window - Mwyposn = event->y; - mouse_convert(Mwxposn,Mwyposn,Mxposn,Myposn); // convert to image space - - scroll = ((GdkEventScroll *) event)->direction; // scroll wheel event - - KBcontrolkey = KBshiftkey = KBaltkey = 0; - if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; - if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; - if (event->state & GDK_MOD1_MASK) KBaltkey = 1; - - if (type == GDK_SCROLL) { // scroll wheel = zoom - zoomx = Mxposn; // zoom center = mouse position - zoomy = Myposn; - if (scroll == GDK_SCROLL_UP) m_zoom(0,"in"); - if (scroll == GDK_SCROLL_DOWN) m_zoom(0,"out"); - return; - } - - if (type == GDK_BUTTON_PRESS) { // button down - Mdrag++; // possible drag start - bdtime = time; // time of button down - Mbutton = button; - mdragx0 = Mwxposn; // window position at button down - mdragy0 = Mwyposn; - Mxdown = Mxposn; // image position at button down - Mydown = Myposn; - Mxdrag = Mydrag = 0; - } - - if (type == GDK_MOTION_NOTIFY && Mdrag) { // drag underway - Mwdragx = Mwxposn - mdragx0; // drag increment, window space - Mwdragy = Mwyposn - mdragy0; - mdragx0 = Mwxposn; // new drag origin = current position - mdragy0 = Mwyposn; - Mxdrag = Mxposn; // drag position, image space - Mydrag = Myposn; - } - - if (type == GDK_BUTTON_RELEASE) { // button up - Mxclick = Myclick = 0; // reset click status - butime = time; // time of button up - if (butime - bdtime < 400) { // less than 0.4 secs down - if (Mxposn == Mxdown && Myposn == Mydown) { // and not moving - if (Mbutton == 1) LMclick++; // left mouse click - if (Mbutton == 3) RMclick++; // right mouse click - Mxclick = Mxdown; // click = button down position - Myclick = Mydown; - if (button == 2) { // center button click - zoomx = Mxposn; // re-center at mouse (Doriano) - zoomy = Myposn; - gtk_widget_queue_draw(Cdrawin); - } - } - } - Mxdown = Mydown = Mxdrag = Mydrag = Mdrag = Mbutton = 0; // forget buttons and drag - } - - Fmousemain = 1; // mouse acts on main window - if (Mcapture) Fmousemain = 0; // curr. function handles mouse - if (mouseCBfunc) Fmousemain = 0; // mouse owned by callback function - if (KBcontrolkey) Fmousemain = 1; // mouse acts on main window - - if (mouseCBfunc && ! Fmousemain) { // pass to callback function - if (! busy) { - busy = 1; // stop re-entrance 15.12 - (* mouseCBfunc)(); - busy = 0; - Fmousemain = 1; // click/drag params are processed here - } // unless reset by callback func. - } - - if (FGWM == 'W') geomap_mousefunc(); // geomap mouse function - - if (! Fmousemain) return; // curr. function handles mouse - - if (LMclick) { // left click = zoom request - LMclick = 0; - zoomx = Mxclick; // zoom center = mouse - zoomy = Myclick; - m_zoom(0,"in"); - } - - if (RMclick) { // right click - RMclick = 0; - if (Cstate->fzoom) { // if zoomed image, reset to fit window - zoomx = zoomy = 0; - m_zoom(0,"fit"); - } - else if (curr_file && FGWM == 'F') - image_Rclick_popup(); // image right-click popup menu - } - - if (Mxdrag || Mydrag) // drag = scroll by mouse - gtk_widget_queue_draw(Cdrawin); - - return; -} - - -// convert mouse position from window space to image space - -void mouse_convert(int xpos1, int ypos1, int &xpos2, int &ypos2) -{ - xpos2 = (xpos1 - Cstate->dorgx + Cstate->morgx) / Cstate->mscale + 0.5; - ypos2 = (ypos1 - Cstate->dorgy + Cstate->morgy) / Cstate->mscale + 0.5; - - if (xpos2 < 0) xpos2 = 0; // if outside image put at edge - if (ypos2 < 0) ypos2 = 0; - - if (E3pxm) { - if (xpos2 >= E3pxm->ww) xpos2 = E3pxm->ww-1; - if (ypos2 >= E3pxm->hh) ypos2 = E3pxm->hh-1; - } - else { - if (xpos2 >= Cstate->fpxb->ww) xpos2 = Cstate->fpxb->ww-1; - if (ypos2 >= Cstate->fpxb->hh) ypos2 = Cstate->fpxb->hh-1; - } - - return; -} - - -/********************************************************************************/ - -// set new image zoom level or magnification -// zoom: "in" zoom-in in steps -// "out" zoom-out in steps -// "fit" zoom to fit window -// "100" toggle 100% and fit window - -void m_zoom(GtkWidget *, cchar *zoom) -{ - int fww, fhh; - float scalew, scaleh, fitscale, fzoom2, zratio = 1; - float Rzoom, pixels; - - zthreadcrash(); - - if (! Cstate || ! Cstate->fpxb) return; - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - Rzoom = Cstate->fzoom; // current zoom ratio - - if (E3pxm) { - fww = E3pxm->ww; // 1x image size - fhh = E3pxm->hh; - } - else { - fww = Cstate->fpxb->ww; - fhh = Cstate->fpxb->hh; - } - - if (fww > Dww || fhh > Dhh) { // get window fit scale - scalew = 1.0 * Dww / fww; - scaleh = 1.0 * Dhh / fhh; - if (scalew < scaleh) fitscale = scalew; - else fitscale = scaleh; // window/image, < 1.0 - } - else fitscale = 1.0; // if image < window use 100% - - if (strmatch(zoom,"Zoom+")) zoom = "in"; // menu button: + = zoom in - if (strmatch(zoom,"Zoom-")) zoom = "fit"; // - = fit window - - if (strmatch(zoom,"fit")) Cstate->fzoom = 0; // zoom to fit window - - if (strmatch(zoom,"100")) { - if (Cstate->fzoom != 0) Cstate->fzoom = 0; // toggle 100% and fit window - else Cstate->fzoom = 1; - } - - if (strstr("in out",zoom)) // caller: zoom in or out - { - if (! Cstate->fzoom) Cstate->fzoom = fitscale; // current zoom scale - for (fzoom2 = 0.125; fzoom2 < 4.0; fzoom2 *= zoomratio) // find nearest natural ratio - if (Cstate->fzoom < fzoom2 * sqrt(zoomratio)) break; - if (strmatch(zoom,"in")) zratio = zoomratio; // zoom in, make image larger - if (strmatch(zoom,"out")) zratio = 1.0 / zoomratio; // zoom out, make image smaller - Cstate->fzoom = fzoom2 * zratio; - - if (Cstate->fzoom > 0.124 && Cstate->fzoom < 0.126) // hit these ratios exactly - Cstate->fzoom = 0.125; - if (Cstate->fzoom > 0.24 && Cstate->fzoom < 0.26) - Cstate->fzoom = 0.25; - if (Cstate->fzoom > 0.49 && Cstate->fzoom < 0.51) - Cstate->fzoom = 0.50; - if (Cstate->fzoom > 0.99 && Cstate->fzoom < 1.01) - Cstate->fzoom = 1.00; - if (Cstate->fzoom > 1.99 && Cstate->fzoom < 2.01) - Cstate->fzoom = 2.00; - if (Cstate->fzoom > 3.99) Cstate->fzoom = 4.0; // max. allowed zoom - if (Cstate->fzoom < fitscale) Cstate->fzoom = 0; // image < window - } - - if (FGWM == 'W') { // optimize for geomaps - if (strmatch(zoom,"in") && Cstate->fzoom < 1.0) - Cstate->fzoom = 1.0; // zoom to 100% directly - if (strmatch(zoom,"out")) Cstate->fzoom = 0.0; // zoom out = fit window directly - if (Cstate->fzoom == 1.0 && Rzoom == 1.0) { - gtk_widget_queue_draw(Cdrawin); // if already, move mouse pointer only - return; - } - } - - if (Cstate->fzoom > 1.0) { // limit image in window to 1 gigabyte - pixels = Cstate->fzoom * fww * Cstate->fzoom * fhh; // (333 megapixels x 3 bytes/pixel) - if (pixels > 333 * MEGA) { // if size is at maximum, - Cstate->fzoom = Rzoom; // move mouse pointer only - gtk_widget_queue_draw(Cdrawin); - return; - } - } - - if (! Cstate->fzoom) zoomx = zoomy = 0; // no requested zoom center - Fpaint2(); // refresh window - return; -} - - -/********************************************************************************/ - -// function for dialogs to call to send KB keys for processing by main app - -void KBstate(GdkEventKey *event, int state) -{ - if (state) KBpress(0,event,0); - else KBrelease(0,event,0); - return; -} - - -// keyboard event functions -// GDK key symbols: /usr/include/gtk-3.0/gdk/gdkkeysyms.h - -namespace trimrotate { void KBfunc(int key); } // keyboard functions called from here -namespace perspective { void KBfunc(int key); } -namespace mashup { void KBfunc(int key); } - -int KBpress(GtkWidget *win, GdkEventKey *event, void *) // prevent propagation of key-press -{ // events to menu buttons - KBkey = event->keyval; - - KBcontrolkey = KBshiftkey = KBaltkey = 0; - if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; - if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; - if (event->state & GDK_MOD1_MASK) KBaltkey = 1; - - return 1; -} - -int KBrelease(GtkWidget *win, GdkEventKey *event, void *) // some key was released -{ - int ii, jj, cc; - char matchkey[20]; - - KBcontrolkey = KBshiftkey = KBaltkey = 0; - if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; - if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; - if (event->state & GDK_MOD1_MASK) KBaltkey = 1; - - KBkey = event->keyval; - - if (! KBcontrolkey && ! KBshiftkey && ! KBaltkey) { // f/g/w/m keys set corresp. window mode - if (KBkey == GDK_KEY_f) { m_viewmode(0,"F"); goto KBend; } // Ctrl/Alt + f/g/w/m usable for shortcuts - if (KBkey == GDK_KEY_g) { m_viewmode(0,"G"); goto KBend; } - if (KBkey == GDK_KEY_w) { m_viewmode(0,"W"); goto KBend; } - if (KBkey == GDK_KEY_m) { m_viewmode(0,"M"); goto KBend; } // OSM 16.05 - } - - if (KBcapture) return 1; // let current function handle it - - if (KBcontrolkey + KBshiftkey + KBaltkey) goto KBcustom; // combinations are always custom 15.06 - -// reserved shortcuts (not user configurable) - - if (KBkey == GDK_KEY_F1) { // F1 >> user guide - showz_userguide(F1_help_topic); // show topic if there, or page 1 - goto KBend; - } - - if (KBkey == GDK_KEY_F10) { // F10: fullscreen toggle with menu 16.02 - if (Fslideshow) { - ss_escape = 1; // quit slideshow if active - goto KBend; - } - if (! Ffullscreen) win_fullscreen(0); // toggle full-screen mode and back - else win_unfullscreen(); - goto KBend; - } - - if (KBkey == GDK_KEY_F11) { // F11: fullscreen toggle no menu 16.02 - if (Fslideshow) { - ss_escape = 1; // quit slideshow if active - goto KBend; - } - if (! Ffullscreen) win_fullscreen(1); // toggle full-screen mode and back - else win_unfullscreen(); - goto KBend; - } - - if (KBkey == GDK_KEY_Escape) { // ESC key - if (Fslideshow) ss_escape = 1; // quit slideshow if active 16.01 - else if (Ffullscreen) win_unfullscreen(); // exit full screen mode - goto KBend; - } - - if (KBkey == GDK_KEY_s) // 's' shortcut for Sync Gallery 15.02 - navi::menufuncx(0,"Sync Gallery"); // 15.12 - - if (FGWM == 'G') { // window mode = G - navi::KBrelease(win,event,0); // pass to gallery KB function - goto KBend; // (keys below not for gallery) - } - - if (KBkey == GDK_KEY_z) { // 'z' key - if (! KBcontrolkey) m_zoom(0,"100"); // if no CTRL, toggle zoom 1x - goto KBend; - } - - if (FGWM == 'W') goto KBend; // window mode = W, no other KB events - - if (KBkey == GDK_KEY_plus) m_zoom(0,"in"); // + key >> zoom in - if (KBkey == GDK_KEY_minus) m_zoom(0,"fit"); // - key >> fit to window - if (KBkey == GDK_KEY_equal) m_zoom(0,"in"); // = key: same as + - if (KBkey == GDK_KEY_KP_Add) m_zoom(0,"in"); // keypad + - if (KBkey == GDK_KEY_KP_Subtract) m_zoom(0,"fit"); // keypad - - - if (Fslideshow) { // slide show mode - if (KBkey == GDK_KEY_Left) ss_Larrow = 1; // arrow keys = prev/next image - if (KBkey == GDK_KEY_Right) ss_Rarrow = 1; - if (KBkey == GDK_KEY_space) ss_spacebar = 1; // spacebar = pause/resume - if (KBkey == GDK_KEY_b) ss_Bkey = 1; // B = blank screen + pause - if (KBkey == GDK_KEY_x) ss_Xkey = 1; // X = shortcut for Magnify - if (KBkey == GDK_KEY_n) ss_Nkey = 1; // N = do transition + next image 16.01 - goto KBend; - } - - if (Fmashup) { // mashup active, pass KB key - mashup::KBfunc(KBkey); - goto KBend; - } - - if (CEF && CEF->menufunc == m_trimrotate) { // trim_rotate active, pass KB key - trimrotate::KBfunc(KBkey); - goto KBend; - } - - if (CEF && CEF->menufunc == m_perspective) { // perspective active, pass KB key - perspective::KBfunc(KBkey); - goto KBend; - } - - if (KBkey == GDK_KEY_Left) m_prev(0,0); // arrow keys = prev/next image - if (KBkey == GDK_KEY_Right) m_next(0,0); - if (KBkey == GDK_KEY_Page_Up) m_prev(0,0); // page up/down = prev/next image - if (KBkey == GDK_KEY_Page_Down) m_next(0,0); - if (KBkey == GDK_KEY_Delete) m_delete_trash(0,0); // delete >> trash 16.06 - if (KBkey == GDK_KEY_x) m_magnify(0,0); // 'x' Magnify 16.05 - -// look for custom shortcut keys in shortcut table - -KBcustom: - - if (KBkey >= GDK_KEY_F1 && KBkey <= GDK_KEY_F9) { // input key is F1 to F9 - ii = KBkey - GDK_KEY_F1; - strcpy(matchkey,"F1"); - matchkey[1] += ii; - } - - else if (KBkey > 255) goto KBend; // not a single letter or digit - - else { - *matchkey = 0; // build input key combination - if (KBcontrolkey) strcat(matchkey,"Ctrl+"); // [Ctrl+] [Alt+] [Shift+] key - if (KBaltkey) strcat(matchkey,"Alt+"); - if (KBshiftkey) strcat(matchkey,"Shift+"); - cc = strlen(matchkey); - matchkey[cc] = KBkey; - matchkey[cc+1] = 0; - } - - for (ii = 0; ii < Nshortcuts; ii++) // convert key combination to menu name - if (strmatchcase(matchkey,shortcutkey[ii])) break; - - if (ii < Nshortcuts) { // convert menu name to menu function - for (jj = 0; jj < Nmenus; jj++) { - if (! menutab[jj].menu) continue; // ignore separator - if (strmatchcase(shortcutmenu[ii],ZTX(menutab[jj].menu))) break; - } - - if (jj < Nmenus) menutab[jj].func(0,menutab[jj].arg); // call the menu function - } - -KBend: - KBkey = 0; - return 1; -} - - -/********************************************************************************/ - -// set the main window to fullscreen status -// (with no menu or panel) - -void win_fullscreen(int hidemenu) -{ - zthreadcrash(); - - if (FGWM == 'F' && hidemenu) { // if F window, hide menu and panel - gtk_widget_hide(Fmenu); - gtk_widget_hide(Fpanel); - Fpanelshow = 0; // 16.02 - } - - gtk_window_fullscreen(MWIN); - while (! Ffullscreen) zmainloop(); // 15.09 - return; -} - - -// restore window to former size and restore menu etc. - -void win_unfullscreen() -{ - zthreadcrash(); - - gtk_window_unfullscreen(MWIN); // restore old window size - gtk_widget_show(Fmenu); - gtk_widget_show(Fpanel); - Fpanelshow = 1; // 16.02 - while (Ffullscreen) zmainloop(); // 16.01 - return; -} - - -/********************************************************************************/ - -// update information in main window title bar - -namespace meta_names { - extern char meta_pdate[16]; // image (photo) date, yyyymmddhhmmss -} - - -void set_mwin_title() -{ - GTYPE gtype; - int cc, fposn, nfiles, nimages; - char *pp, titlebar[250]; - char pdate[12], ptime[12], pdatetime[20]; - char fname[100], gname[100], fdirk[100]; - - zthreadcrash(); - - if (! curr_file || *curr_file != '/') { - gtk_window_set_title(MWIN,Frelease); - return; - } - - pp = (char *) strrchr(curr_file,'/'); - strncpy0(fname,pp+1,99); // file name - cc = pp - curr_file; - if (cc < 99) strncpy0(fdirk,curr_file,cc+2); // get dirk/path/ if short enough - else { - strncpy(fdirk,curr_file,96); // or use /dirk/path... - strcpy(fdirk+95,"..."); - } - - nfiles = navi::nfiles; // total gallery files (incl. directories) - nimages = navi::nimages; // total image files - - fposn = gallery_position(curr_file,curr_file_posn); // curr. file in curr. gallery? - if (fposn >= 0) { - curr_file_posn = fposn; - fposn = fposn + 1 - nfiles + nimages; // position among images, 1-based - } - - if (*meta_names::meta_pdate) { - metadate_pdate(meta_names::meta_pdate,pdate,ptime); // get formatted date and time 15.03 - strncpy0(pdatetime,pdate,11); // yyyy-mm-dd hh:mm - strncpy0(pdatetime+11,ptime,6); - pdatetime[10] = ' '; - } - else strcpy(pdatetime,"(undated)"); - - gtype = navi::gallerytype; - - if (gtype == GDIR) // gallery name = directory - snprintf(titlebar,250," %d/%d %s %s %s", // 16.04 - fposn,nimages,fdirk,fname,pdatetime); - else { - if (gtype == SEARCH || gtype == METADATA) - strcpy(gname,"SEARCH RESULTS"); - else if (gtype == ALBUM) { - pp = strrchr(navi::galleryname,'/'); - if (! pp) pp = navi::galleryname; - else pp++; - strcpy(gname,"ALBUM: "); - strncpy0(gname+7,pp,87); - } - else if (gtype == RECENT) - strcpy(gname,"RECENT FILES"); - else if (gtype == NEWEST) - strcpy(gname,"NEWEST FILES"); - else - strcpy(gname,"NO GALLERY"); - - if (fposn > 0) - snprintf(titlebar,250,"%s %d/%d %s %s %s", // window title bar 16.04 - gname,fposn,nimages,fdirk,fname,pdatetime); - else - snprintf(titlebar,250,"%s (*)/%d %s %s %s", // image not in gallery 16.04 - gname,nimages,fdirk,fname,pdatetime); - } - - gtk_window_set_title(MWIN,titlebar); - return; -} - - -/********************************************************************************/ - -// draw a pixel using foreground color. -// px, py are image space. - -void draw_pixel(int px, int py) -{ - int qx, qy, crflag = 0; - static int pqx, pqy; - static uint8 pixel[12]; // 2x2 block of pixels - static PIXBUF *pixbuf1 = 0, *pixbuf4 = 0; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - if (! pixbuf1) { - pixbuf1 = gdk_pixbuf_new_from_data(pixel,GDKRGB,0,8,1,1,3,0,0); // 1x1 pixels - pixbuf4 = gdk_pixbuf_new_from_data(pixel,GDKRGB,0,8,2,2,6,0,0); // 2x2 pixels - } - - if (Cstate->fpxb->nc > 3) // omit transparent pixels 15.09 - if (PXBpix(Cstate->fpxb,px,py)[3] < 128) return; - - qx = Mscale * px - Morgx; // image to window space - qy = Mscale * py - Morgy; - - if (qx == pqx && qy == pqy) return; // avoid redundant points - - pqx = qx; - pqy = qy; - - if (qx < 0 || qx > dww-2) return; // keep off image edges - if (qy < 0 || qy > dhh-2) return; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - crflag = 1; - } - - if (Mscale <= 1) { // write 1x1 pixels 15.08 - pixel[0] = LINE_COLOR[0]; - pixel[1] = LINE_COLOR[1]; - pixel[2] = LINE_COLOR[2]; - - gdk_cairo_set_source_pixbuf(mwcr,pixbuf1,qx+Dorgx,qy+Dorgy); - cairo_paint(mwcr); - } - - else { // write 2x2 fat pixels - pixel[0] = pixel[3] = pixel[6] = pixel[9] = LINE_COLOR[0]; - pixel[1] = pixel[4] = pixel[7] = pixel[10] = LINE_COLOR[1]; - pixel[2] = pixel[5] = pixel[8] = pixel[11] = LINE_COLOR[2]; - - gdk_cairo_set_source_pixbuf(mwcr,pixbuf4,qx+Dorgx,qy+Dorgy); - cairo_paint(mwcr); - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -// erase one drawn pixel - restore from window image Mpxb. -// px, py are image space. - -void erase_pixel(int px, int py) -{ - GdkPixbuf *pixbuf; - static int pqx, pqy; - int qx, qy, crflag = 0; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - qx = Mscale * px; // image to window space - qy = Mscale * py; - - if (qx == pqx && qy == pqy) return; // avoid same target pixel - - pqx = qx; - pqy = qy; - - if (qx < 0 || qx > Mpxb->ww-2) return; // pixel outside scaled image - if (qy < 0 || qy > Mpxb->hh-2) return; - - if (qx < Morgx || qx > Morgx + dww-2) return; // pixel outside drawing window - if (qy < Morgy || qy > Morgy + dhh-2) return; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - crflag = 1; - } - - pixbuf = gdk_pixbuf_new_subpixbuf(Mpxb->pixbuf,qx,qy,2,2); // 2x2 Mpxb area to copy 15.08 - qx = qx - Morgx + Dorgx; // target pixel in window - qy = qy - Morgy + Dorgy; - gdk_cairo_set_source_pixbuf(mwcr,pixbuf,qx,qy); - cairo_paint(mwcr); - - g_object_unref(pixbuf); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -/********************************************************************************/ - -// draw line. -// coordinates are image space. -// type = 1/2 for solid/dotted line - -void draw_line(int x1, int y1, int x2, int y2, int type) -{ - float px1, py1, px2, py2; - double dashes[2] = { 4, 4 }; - int crflag = 0; - double R, G, B; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - px1 = Mscale * x1 - Morgx + Dorgx; // image to window space - py1 = Mscale * y1 - Morgy + Dorgy; - px2 = Mscale * x2 - Morgx + Dorgx; - py2 = Mscale * y2 - Morgy + Dorgy; - - if (px1 > Dww-2) px1 = Dww-2; // play nice - if (py1 > Dhh-2) py1 = Dhh-2; - if (px2 > Dww-2) px2 = Dww-2; - if (py2 > Dhh-2) py2 = Dhh-2; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - R = LINE_COLOR[0] / 255.0; // use line color - G = LINE_COLOR[1] / 255.0; - B = LINE_COLOR[2] / 255.0; - - cairo_set_source_rgb(mwcr,R,G,B); - if (type == 2) cairo_set_dash(mwcr,dashes,2,0); // dotted line - else cairo_set_dash(mwcr,dashes,0,0); - - cairo_move_to(mwcr,px1,py1); // draw line - cairo_line_to(mwcr,px2,py2); - cairo_stroke(mwcr); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -// erase line. refresh line path from mpxb window image. -// double line width is erased. -// coordinates are image space. - -void erase_line(int x1, int y1, int x2, int y2) -{ - float pxm, pym, slope; - int crflag = 0; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - crflag = 1; - } - - if (abs(y2 - y1) > abs(x2 - x1)) { - slope = 1.0 * (x2 - x1) / (y2 - y1); - for (pym = y1; pym <= y2; pym++) { - pxm = x1 + slope * (pym - y1); - erase_pixel(pxm,pym); - } - } - - else { - slope = 1.0 * (y2 - y1) / (x2 - x1); - for (pxm = x1; pxm <= x2; pxm++) { - pym = y1 + slope * (pxm - x1); - erase_pixel(pxm,pym); - } - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -/********************************************************************************/ - -// draw pre-set overlay lines on top of image -// arg = 1: paint lines only (because window repainted) -// 2: erase lines and forget them -// 3: erase old lines, paint new lines, save new in old - -void draw_toplines(int arg) -{ - int ii, crflag = 0; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - if (arg == 2 || arg == 3) // erase old lines - for (ii = 0; ii < Nptoplines; ii++) - erase_line(ptoplines[ii].x1,ptoplines[ii].y1, - ptoplines[ii].x2,ptoplines[ii].y2); - - if (arg == 1 || arg == 3) // draw new lines - for (ii = 0; ii < Ntoplines; ii++) - draw_line(toplines[ii].x1,toplines[ii].y1, - toplines[ii].x2,toplines[ii].y2,toplines[ii].type); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - if (arg == 2) { - Nptoplines = Ntoplines = 0; // forget lines - return; - } - - for (ii = 0; ii < Ntoplines; ii++) // save for future erase - ptoplines[ii] = toplines[ii]; - - Nptoplines = Ntoplines; - - return; -} - - -/********************************************************************************/ - -// draw a grid of horizontal and vertical lines. -// grid line spacings are in window space. - -void draw_gridlines() -{ - int crflag = 0, G = currgrid; - int px, py, gww, ghh; - int startx, starty, endx, endy, stepx, stepy; - int startx1, starty1; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - if (! gridsettings[G][GON]) return; // grid lines off - - gww = dww; // grid box size - ghh = dhh; - startx = Dorgx; // starting corner (top left) - starty = Dorgy; - - if (CEF && strmatch(CEF->funcname,"trim_rotate")) { // trim/rotate function is active - gww = Mscale * (trimrect[2] - trimrect[0]); // fit grid box to trim rectangle - ghh = Mscale * (trimrect[3] - trimrect[1]); - startx = Mscale * trimrect[0] - Morgx + Dorgx; - starty = Mscale * trimrect[1] - Morgy + Dorgy; - } - - endx = startx + gww; - endy = starty + ghh; - - stepx = gridsettings[G][GXS]; // space between grid lines - stepy = gridsettings[G][GYS]; // (window space) - - if (gridsettings[G][GXC]) - stepx = gww / (1 + gridsettings[G][GXC]); // if line counts specified, - if (gridsettings[G][GYC]) // set spacing accordingly - stepy = ghh / ( 1 + gridsettings[G][GYC]); - - startx1 = startx + stepx * gridsettings[G][GXF] / 100; // variable starting offsets - starty1 = starty + stepy * gridsettings[G][GYF] / 100; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - cairo_set_source_rgb(mwcr,1,1,1); // white lines - - if (gridsettings[G][GX] && stepx) - for (px = startx1; px < endx; px += stepx) { - cairo_move_to(mwcr,px,starty); - cairo_line_to(mwcr,px,endy); - } - - if (gridsettings[G][GY] && stepy) - for (py = starty1; py < endy; py += stepy) { - cairo_move_to(mwcr,startx,py); - cairo_line_to(mwcr,endx,py); - } - - cairo_stroke(mwcr); - - cairo_set_source_rgb(mwcr,0,0,0); // adjacent black lines - - if (gridsettings[G][GX] && stepx) - for (px = startx1+1; px < endx+1; px += stepx) { - cairo_move_to(mwcr,px,starty); - cairo_line_to(mwcr,px,endy); - } - - if (gridsettings[G][GY] && stepy) - for (py = starty1+1; py < endy+1; py += stepy) { - cairo_move_to(mwcr,startx,py); - cairo_line_to(mwcr,endx,py); - } - - cairo_stroke(mwcr); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -/********************************************************************************/ - -// maintain a set of text strings written over the image in the window. -// add a new text string to the list. -// multiple text strings can be added with the same ID. -// px and py are image space. - -void add_toptext(int ID, int px, int py, cchar *text, cchar *font) -{ - zthreadcrash(); - - if (Ntoptext == maxtoptext) { - printz("*** maxtoptext exceeded \n"); - return; - } - - int ii = Ntoptext++; - toptext[ii].ID = ID; - toptext[ii].px = px; - toptext[ii].py = py; - toptext[ii].text = text; - toptext[ii].font = font; - - return; -} - - -// draw current text strings over the image in window. -// called from Fpaint(). - -void draw_toptext() -{ - int crflag = 0; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - for (int ii = 0; ii < Ntoptext; ii++) - draw_text(toptext[ii].px,toptext[ii].py,toptext[ii].text,toptext[ii].font); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -// delete text strings having the given ID from the list - -void erase_toptext(int ID) -{ - int ii, jj; - - for (ii = jj = 0; ii < Ntoptext; ii++) - { - if (toptext[ii].ID == ID) continue; - else toptext[jj++] = toptext[ii]; - } - - Ntoptext = jj; - return; -} - - -// draw text on window, black on white background -// coordinates are image space - -void draw_text(int px, int py, cchar *text, cchar *font) -{ - static PangoFontDescription *pangofont = 0; - static PangoLayout *pangolayout = 0; - static char priorfont[40] = ""; - int ww, hh, crflag = 0; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - - px = Mscale * px - Morgx + Dorgx; // image to window space - py = Mscale * py - Morgy + Dorgy; - - if (! strmatch(font,priorfont)) { // change font - strncpy0(priorfont,font,40); - if (pangofont) pango_font_description_free(pangofont); - if (pangolayout) g_object_unref(pangolayout); - pangofont = pango_font_description_from_string(font); // make pango layout for font - pangolayout = gtk_widget_create_pango_layout(Cdrawin,0); - pango_layout_set_font_description(pangolayout,pangofont); - } - - pango_layout_set_text(pangolayout,text,-1); // add text to layout - pango_layout_get_pixel_size(pangolayout,&ww,&hh); - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - cairo_set_source_rgb(mwcr,1,1,1); // draw white background - cairo_rectangle(mwcr,px,py,ww,hh); - cairo_fill(mwcr); - - cairo_move_to(mwcr,px,py); // draw layout with text - cairo_set_source_rgb(mwcr,0,0,0); - pango_cairo_show_layout(mwcr,pangolayout); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -/********************************************************************************/ - -// maintain a set of circles drawn over the image in the window -// px, py are image space, radius is window space - -void add_topcircle(int px, int py, int radius) -{ - if (Ntopcircles == maxtopcircles) { - printz("*** maxtopcircles exceeded \n"); - return; - } - - int ii = Ntopcircles++; - topcircles[ii].px = px; - topcircles[ii].py = py; - topcircles[ii].radius = radius; - - return; -} - - -// draw current circles over the image in the window -// called from window repaint function Fpaint() - -void draw_topcircles() -{ - int ii, px, py, rad; - int crflag = 0; - double R, G, B; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - R = LINE_COLOR[0] / 255.0; // use LINE_COLOR - G = LINE_COLOR[1] / 255.0; - B = LINE_COLOR[2] / 255.0; - - for (ii = 0; ii < Ntopcircles; ii++) - { - px = topcircles[ii].px * Mscale - Morgx + Dorgx; // image to window space - py = topcircles[ii].py * Mscale - Morgy + Dorgy; - rad = topcircles[ii].radius; // radius is window space - - cairo_set_source_rgb(mwcr,R,G,B); - cairo_arc(mwcr,px,py,rad,0,2*PI); // draw 360 deg. arc - cairo_stroke(mwcr); - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -// erase top circles (next window repaint) - -void erase_topcircles() -{ - Ntopcircles = 0; - return; -} - - -/********************************************************************************/ - -// Draw circle around the mouse pointer. -// Prior circle will be erased first. -// Used for mouse/brush radius in select and paint functions. -// cx, cy, cr: center and radius of circle in image space. -// if Ferase, then erase previous circle only. - -void draw_mousecircle(int cx, int cy, int cr, int Ferase) // 15.09 -{ - int px3, py3, ww3, hh3; - static int ppx3, ppy3, pww3 = 0, phh3; - int crflag = 0; - int px, py, qx, qy, nc, rs, pok; - uint8 *mpix, *mpix1; - double R, G, B; - double t, dt, t1, t2; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->mpxb) return; // no image - - if (pww3 > 0) { // erase prior - Fpaint4(ppx3,ppy3,pww3,phh3); // refresh from Mpxb - pww3 = 0; - } - - if (Ferase) return; // erase only, done - - rs = gdk_pixbuf_get_rowstride(Cstate->mpxb->pixbuf); // image row stride - nc = gdk_pixbuf_get_n_channels(Cstate->mpxb->pixbuf); // image no. channels - mpix = gdk_pixbuf_get_pixels(Cstate->mpxb->pixbuf); // image pixels - - px3 = cx - cr - 2; // convert pointer center + radius - py3 = cy - cr - 2; // to block position, width, length - ww3 = 2 * cr + 4; - hh3 = 2 * cr + 4; - - ppx3 = px3; // remember pixel block area - ppy3 = py3; // to erase in next call - pww3 = ww3; - phh3 = hh3; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - crflag = 1; - } - - cx = cx * Mscale - Morgx + Dorgx; // convert to window coordinates - cy = cy * Mscale - Morgy + Dorgy; - cr = cr * Mscale; - - R = LINE_COLOR[0] / 255.0; // use LINE_COLOR - G = LINE_COLOR[1] / 255.0; - B = LINE_COLOR[2] / 255.0; - - cairo_set_source_rgb(mwcr,R,G,B); - - t1 = t2 = -1; // angle limits of arc to draw - dt = 1.0 / cr; - - for (t = 0; t < 2*PI; t += dt) // loop 0-360 degrees - { - px = cx + cr * cos(t); // pixel on mouse circle - py = cy + cr * sin(t); - - pok = 1; // assume pixel OK to draw - - if (px < Dorgx || py < Dorgy) pok = 0; // outside image limits - if (px >= Dorgx+dww || py >= Dorgy+dhh) pok = 0; - - if (pok && nc > 3) { - qx = px + Morgx - Dorgx; // check alpha channel - qy = py + Morgy - Dorgy; - mpix1 = mpix + qy * rs + qx * nc; - if (mpix1[3] < 128) pok = 0; // pixel is transparent - } - - if (pok) { // pixel ok, add to arc - if (t1 < 0) t1 = t; // start of arc to draw - t2 = t; // end of arc, so far - } - - else if (t1 >= 0) { // pixel not ok - cairo_arc(mwcr,cx,cy,cr,t1,t2); // draw accumulated arc - cairo_stroke(mwcr); - t1 = t2 = -1; // start over - } - } - - if (t1 >= 0) { - cairo_arc(mwcr,cx,cy,cr,t1,t2); // draw rest of arc - cairo_stroke(mwcr); - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -// duplicate for drawing and tracking a 2nd mouse circle -// (used by paint/clone to track source pixels being cloned) - -void draw_mousecircle2(int cx, int cy, int cr, int Ferase) // 15.09 -{ - int px3, py3, ww3, hh3; - static int ppx3, ppy3, pww3 = 0, phh3; - int crflag = 0; - int px, py, qx, qy, nc, rs, pok; - uint8 *mpix, *mpix1; - double R, G, B; - double t, dt, t1, t2; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->mpxb) return; // no image - - if (pww3 > 0) { // erase prior - Fpaint4(ppx3,ppy3,pww3,phh3); // refresh from Mpxb - pww3 = 0; - } - - if (Ferase) return; // erase only, done - - rs = gdk_pixbuf_get_rowstride(Cstate->mpxb->pixbuf); // image row stride - nc = gdk_pixbuf_get_n_channels(Cstate->mpxb->pixbuf); // image no. channels - mpix = gdk_pixbuf_get_pixels(Cstate->mpxb->pixbuf); // image pixels - - px3 = cx - cr - 2; // convert pointer center + radius - py3 = cy - cr - 2; // to block position, width, length - ww3 = 2 * cr + 4; - hh3 = 2 * cr + 4; - - ppx3 = px3; // remember pixel block area - ppy3 = py3; // to erase in next call - pww3 = ww3; - phh3 = hh3; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - crflag = 1; - } - - cx = cx * Mscale - Morgx + Dorgx; // convert to window coordinates - cy = cy * Mscale - Morgy + Dorgy; - cr = cr * Mscale; - - R = LINE_COLOR[0] / 255.0; // use LINE_COLOR - G = LINE_COLOR[1] / 255.0; - B = LINE_COLOR[2] / 255.0; - - cairo_set_source_rgb(mwcr,R,G,B); - - t1 = t2 = -1; // angle limits of arc to draw - dt = 1.0 / cr; - - for (t = 0; t < 2*PI; t += dt) // loop 0-360 degrees - { - px = cx + cr * cos(t); // pixel on mouse circle - py = cy + cr * sin(t); - - pok = 1; // assume pixel OK to draw - - if (px < Dorgx || py < Dorgy) pok = 0; // outside image limits - if (px >= Dorgx+dww || py >= Dorgy+dhh) pok = 0; - - if (pok && nc > 3) { - qx = px + Morgx - Dorgx; // check alpha channel - qy = py + Morgy - Dorgy; - mpix1 = mpix + qy * rs + qx * nc; - if (mpix1[3] < 128) pok = 0; // pixel is transparent - } - - if (pok) { // pixel ok, add to arc - if (t1 < 0) t1 = t; // start of arc to draw - t2 = t; // end of arc, so far - } - - else if (t1 >= 0) { // pixel not ok - cairo_arc(mwcr,cx,cy,cr,t1,t2); // draw accumulated arc - cairo_stroke(mwcr); - t1 = t2 = -1; // start over - } - } - - if (t1 >= 0) { - cairo_arc(mwcr,cx,cy,cr,t1,t2); // draw rest of arc - cairo_stroke(mwcr); - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -/********************************************************************************/ - -// Draw ellipse around the mouse pointer. -// Prior ellipse will be erased first. -// cx, cy, cww, chh: center and axes of ellipse -// if Ferase, then erase previous ellipse only. - -void draw_mousearc(int cx, int cy, int cww, int chh, int Ferase) -{ - int px3, py3, ww3, hh3; - static int ppx3, ppy3, pww3 = 0, phh3; - int px, py; - int crflag = 0; - float a, b, a2, b2; - float x, y, x2, y2; - - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Cstate || ! Cstate->fpxb) return; // no image - - paintlock(1); // 16.03 - - if (pww3 > 0) { // erase prior - Fpaint4(ppx3,ppy3,pww3,phh3); // refresh from Mpxb - pww3 = 0; - } - - if (Ferase) { - paintlock(0); // 16.03 - return; - } - - px3 = cx - (cww + 2) / 2; // convert pointer center + radius - py3 = cy - (chh + 2) / 2; // to block position, width, length - ww3 = cww + 2; - hh3 = chh + 2; - - ppx3 = px3; // remember pixel block area - ppy3 = py3; // to erase in next call - pww3 = ww3; - phh3 = hh3; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already - crflag = 1; - } - - a = cww / 2; // ellipse constants from - b = chh / 2; // enclosing rectangle - a2 = a * a; - b2 = b * b; - - for (y = -b; y < b; y++) // step through y values, omitting - { // curve points covered by x values - y2 = y * y; - x2 = a2 * (1 - y2 / b2); - x = sqrtf(x2); // corresp. x values, + and - - py = y + cy; - px = cx - x + 0.5; - draw_pixel(px,py); // draw 2 points on ellipse - px = cx + x + 0.5; - draw_pixel(px,py); - } - - for (x = -a; x < a; x++) // step through x values, omitting - { // curve points covered by y values - x2 = x * x; - y2 = b2 * (1 - x2 / a2); - y = sqrtf(y2); // corresp. y values, + and - - px = x + cx; - py = cy - y + 0.5; - draw_pixel(px,py); // draw 2 points on ellipse - py = cy + y + 0.5; - draw_pixel(px,py); - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - paintlock(0); // 16.03 - return; -} - - -/******************************************************************************** - - spline curve setup and edit functions - - Support multiple frames with curves in parallel - (edit curve(s) and image mask curve) - - Usage: - Add frame widget to dialog or zdialog. - Set up drawing in frame: - sd = splcurve_init(frame, callback_func) - Initialize no. of curves in frame (1-10): - sd->Nspc = n - Initialize active flag for curve spc: - sd->fact[spc] = 1 15.10 - Initialize vert/horz flag for curve spc: - sd->vert[spc] = hv - Initialize anchor points for curve spc: - sd->nap[spc], sd->apx[spc][xx], sd->apy[spc][yy] - Generate data for curve spc: - splcurve_generate(sd,spc) - Curves will now be shown and edited inside the frame when window is realized. - The callback_func(spc) will be called when curve spc is edited. - Change curve in program: - set anchor points, call splcurve_generate(sd,spc) - Get y-value (0-1) for curve spc and given x-value (0-1): - yval = splcurve_yval(sd,spc,xval) - If faster access to curve is needed (no interpolation): - kk = 1000 * xval; - if (kk > 999) kk = 999; - yval = sd->yval[spc][kk]; - -***/ - -// initialize for spline curve editing -// initial anchor points are pre-loaded into spldat before window is realized - -spldat * splcurve_init(GtkWidget *frame, void func(int spc)) -{ - zthreadcrash(); - - int cc = sizeof(spldat); // allocate spc curve data area - spldat * sd = (spldat *) zmalloc(cc); - memset(sd,0,cc); - - sd->drawarea = gtk_drawing_area_new(); // drawing area for curves - gtk_container_add(GTK_CONTAINER(frame),sd->drawarea); - sd->spcfunc = func; // user callback function - - gtk_widget_add_events(sd->drawarea,GDK_BUTTON_PRESS_MASK); // connect mouse events to drawing area - gtk_widget_add_events(sd->drawarea,GDK_BUTTON_RELEASE_MASK); - gtk_widget_add_events(sd->drawarea,GDK_BUTTON1_MOTION_MASK); - G_SIGNAL(sd->drawarea,"motion-notify-event",splcurve_adjust,sd); - G_SIGNAL(sd->drawarea,"button-press-event",splcurve_adjust,sd); - G_SIGNAL(sd->drawarea,"draw",splcurve_draw,sd); - - return sd; -} - - -// modify anchor points in curve using mouse - -int splcurve_adjust(void *, GdkEventButton *event, spldat *sd) -{ - int ww, hh, kk; - int mx, my, button, evtype; - static int spc, ap, mbusy = 0, Fdrag = 0; // drag continuation logic - int minspc, minap, apset = 0; - float mxval, myval, cxval, cyval; - float dist2, mindist2 = 0; - float dist, dx, dy; - float minx = 0.01 * splcurve_minx; // % to absolute distance 15.10 - - zthreadcrash(); - - mx = event->x; // mouse position in drawing area - my = event->y; - evtype = event->type; - button = event->button; - - if (evtype == GDK_MOTION_NOTIFY) { - if (mbusy) return 0; // discard excess motion events - mbusy++; - zmainloop(); - mbusy = 0; - } - - if (evtype == GDK_BUTTON_RELEASE) { - Fdrag = 0; - return 0; - } - - ww = gtk_widget_get_allocated_width(sd->drawarea); // drawing area size - hh = gtk_widget_get_allocated_height(sd->drawarea); - - if (mx < 0) mx = 0; // limit edge excursions - if (mx > ww) mx = ww; - if (my < 0) my = 0; - if (my > hh) my = hh; - - if (evtype == GDK_BUTTON_PRESS) Fdrag = 0; // left or right click - - if (Fdrag) // continuation of drag - { - if (sd->vert[spc]) { - mxval = 1.0 * my / hh; // mouse position in curve space - myval = 1.0 * mx / ww; - } - else { - mxval = 1.0 * mx / ww; - myval = 1.0 * (hh - my) / hh; - } - - if (ap < sd->nap[spc] - 1) { // not the last anchor point - dx = sd->apx[spc][ap+1] - mxval; // get distance to next anchor point - if (dx < 0.01) return 0; // x-value not increasing, forbid - dy = sd->apy[spc][ap+1] - myval; - dist = sqrtf(dx * dx + dy * dy); - if (dist < minx) return 0; // too close, forbid - } - if (ap > 0) { // not the first anchor point - dx = mxval - sd->apx[spc][ap-1]; // get distance to prior anchor point - if (dx < 0.01) return 0; // x-value not increasing, forbid - dy = myval - sd->apy[spc][ap-1]; - dist = sqrtf(dx * dx + dy * dy); - if (dist < minx) return 0; // too close, forbid - } - - apset = 1; // mxval/myval = new node position 15.10 - } - - else // mouse click or new drag begin - { - minspc = minap = -1; // find closest curve/anchor point - mindist2 = 999999; - - for (spc = 0; spc < sd->Nspc; spc++) // loop curves - { - if (! sd->fact[spc]) continue; // not active 15.10 - - if (sd->vert[spc]) { - mxval = 1.0 * my / hh; // mouse position in curve space - myval = 1.0 * mx / ww; - } - else { - mxval = 1.0 * mx / ww; - myval = 1.0 * (hh - my) / hh; - } - - for (ap = 0; ap < sd->nap[spc]; ap++) // loop anchor points - { - cxval = sd->apx[spc][ap]; - cyval = sd->apy[spc][ap]; - dist2 = (mxval-cxval)*(mxval-cxval) - + (myval-cyval)*(myval-cyval); - if (dist2 < mindist2) { - mindist2 = dist2; // remember closest anchor point - minspc = spc; - minap = ap; - } - } - } - - if (minspc < 0) return 0; // impossible - spc = minspc; // nearest curve - ap = minap; // nearest anchor point - } - - if (evtype == GDK_BUTTON_PRESS && button == 3) // right click, remove anchor point - { - if (sqrtf(mindist2) > minx) return 0; // not close enough - if (sd->nap[spc] < 3) return 0; // < 2 anchor points would remain - sd->nap[spc]--; // decr. before loop - for (kk = ap; kk < sd->nap[spc]; kk++) { -// if (kk < 0) printz("meaningless reference %d \n",kk); // stop gcc opt. bug - removed 16.01 - sd->apx[spc][kk] = sd->apx[spc][kk+1]; - sd->apy[spc][kk] = sd->apy[spc][kk+1]; - } - splcurve_generate(sd,spc); // regenerate data for modified curve - gtk_widget_queue_draw(sd->drawarea); - sd->spcfunc(spc); // call user function - return 0; - } - - if (! Fdrag) // new drag or left click - { - if (sd->vert[spc]) { - mxval = 1.0 * my / hh; // mouse position in curve space - myval = 1.0 * mx / ww; - } - else { - mxval = 1.0 * mx / ww; - myval = 1.0 * (hh - my) / hh; - } - - if (sqrtf(mindist2) < minx) // anchor point close enough, - { // move this one to mouse position - if (ap < sd->nap[spc]-1) { // not the last anchor point - dx = sd->apx[spc][ap+1] - mxval; // get distance to next anchor point - if (dx < 0.01) return 0; // x-value not increasing, forbid - dy = sd->apy[spc][ap+1] - myval; - dist = sqrtf(dx * dx + dy * dy); - if (dist < minx) return 0; // too close, forbid - } - if (ap > 0) { // not the first anchor point - dx = mxval - sd->apx[spc][ap-1]; // get distance to prior anchor point - if (dx < 0.01) return 0; // x-value not increasing, forbid - dy = myval - sd->apy[spc][ap-1]; - dist = sqrtf(dx * dx + dy * dy); - if (dist < minx) return 0; // too close, forbid - } - - apset = 1; // mxval/myval = new node position 15.10 - } - - else // none close, add new anchor point - { - minspc = -1; // find closest curve to mouse - mindist2 = 999999; - - for (spc = 0; spc < sd->Nspc; spc++) // loop curves - { - if (! sd->fact[spc]) continue; // not active 15.10 - - if (sd->vert[spc]) { - mxval = 1.0 * my / hh; // mouse position in curve space - myval = 1.0 * mx / ww; - } - else { - mxval = 1.0 * mx / ww; - myval = 1.0 * (hh - my) / hh; - } - - cyval = splcurve_yval(sd,spc,mxval); - dist2 = fabsf(myval - cyval); - if (dist2 < mindist2) { - mindist2 = dist2; // remember closest curve - minspc = spc; - } - } - - if (minspc < 0) return 0; // impossible - if (mindist2 > minx) return 0; // not close enough to any curve - spc = minspc; - - if (sd->nap[spc] > 49) { - zmessageACK(Mwin,ZTX("Exceed 50 anchor points")); - return 0; - } - - if (sd->vert[spc]) { - mxval = 1.0 * my / hh; // mouse position in curve space - myval = 1.0 * mx / ww; - } - else { - mxval = 1.0 * mx / ww; - myval = 1.0 * (hh - my) / hh; - } - - for (ap = 0; ap < sd->nap[spc]; ap++) // find anchor point with next higher x - if (mxval <= sd->apx[spc][ap]) break; // (ap may come out 0 or nap) - - if (ap < sd->nap[spc] && sd->apx[spc][ap] - mxval < minx) // disallow < minx from next - return 0; // or prior anchor point - if (ap > 0 && mxval - sd->apx[spc][ap-1] < minx) return 0; - - for (kk = sd->nap[spc]; kk > ap; kk--) { // make hole for new point - sd->apx[spc][kk] = sd->apx[spc][kk-1]; - sd->apy[spc][kk] = sd->apy[spc][kk-1]; - } - - sd->nap[spc]++; // up point count - apset = 1; // mxval/myval = new node position 15.10 - } - } - - if (evtype == GDK_MOTION_NOTIFY) Fdrag = 1; // remember drag is underway - - if (apset) // 15.10 - { - sd->apx[spc][ap] = mxval; // new or moved anchor point - sd->apy[spc][ap] = myval; // at mouse position - - splcurve_generate(sd,spc); // regenerate data for modified curve - if (sd->drawarea) gtk_widget_queue_draw(sd->drawarea); // redraw graph - if (sd->spcfunc) sd->spcfunc(spc); // call user function - } - - return 0; -} - - -// add a new anchor point to a curve -// spc: curve number -// px, py: node coordinates in the range 0-1 - -int splcurve_addnode(spldat *sd, int spc, float px, float py) // 15.07 -{ - int ap, kk; - float minx = 0.01 * splcurve_minx; // % to absolute distance 15.10 - - for (ap = 0; ap < sd->nap[spc]; ap++) // find anchor point with next higher x - if (px <= sd->apx[spc][ap]) break; // (ap may come out 0 or nap) - - if (ap < sd->nap[spc] && sd->apx[spc][ap] - px < minx) // disallow < minx from next - return 0; // or prior anchor point - if (ap > 0 && px - sd->apx[spc][ap-1] < minx) return 0; - - for (kk = sd->nap[spc]; kk > ap; kk--) { // make hole for new point - sd->apx[spc][kk] = sd->apx[spc][kk-1]; - sd->apy[spc][kk] = sd->apy[spc][kk-1]; - } - - sd->apx[spc][ap] = px; // add node coordinates - sd->apy[spc][ap] = py; - - sd->nap[spc]++; // up point count - return 1; -} - - -// for expose event or when a curve is changed -// draw all curves based on current anchor points - -int splcurve_draw(GtkWidget *drawarea, cairo_t *cr, spldat *sd) -{ - int ww, hh, spc, ap; - float xval, yval, px, py, qx, qy; - - zthreadcrash(); - - ww = gtk_widget_get_allocated_width(sd->drawarea); // drawing area size - hh = gtk_widget_get_allocated_height(sd->drawarea); - if (ww < 50 || hh < 50) return 0; - - cairo_set_line_width(cr,1); - cairo_set_source_rgb(cr,0.7,0.7,0.7); - - for (int ii = 0; ii < sd->Nscale; ii++) // draw y-scale lines if any - { - px = ww * sd->xscale[0][ii]; - py = hh - hh * sd->yscale[0][ii]; - qx = ww * sd->xscale[1][ii]; - qy = hh - hh * sd->yscale[1][ii]; - cairo_move_to(cr,px,py); - cairo_line_to(cr,qx,qy); - } - cairo_stroke(cr); - - cairo_set_source_rgb(cr,0,0,0); - - for (spc = 0; spc < sd->Nspc; spc++) // loop all curves - { - if (! sd->fact[spc]) continue; // not active 15.10 - - if (sd->vert[spc]) // vert. curve - { - for (py = 0; py < hh; py++) // generate all points for curve - { - xval = 1.0 * py / hh; - yval = splcurve_yval(sd,spc,xval); - px = ww * yval; - if (py == 0) cairo_move_to(cr,px,py); - cairo_line_to(cr,px,py); - } - cairo_stroke(cr); - - for (ap = 0; ap < sd->nap[spc]; ap++) // draw boxes at anchor points - { - xval = sd->apx[spc][ap]; - yval = sd->apy[spc][ap]; - px = ww * yval; - py = hh * xval; - cairo_rectangle(cr,px-2,py-2,4,4); - } - cairo_fill(cr); - } - else // horz. curve - { - for (px = 0; px < ww; px++) // generate all points for curve - { - xval = 1.0 * px / ww; - yval = splcurve_yval(sd,spc,xval); - py = hh - hh * yval; - if (px == 0) cairo_move_to(cr,px,py); - cairo_line_to(cr,px,py); - } - cairo_stroke(cr); - - for (ap = 0; ap < sd->nap[spc]; ap++) // draw boxes at anchor points - { - xval = sd->apx[spc][ap]; - yval = sd->apy[spc][ap]; - px = ww * xval; - py = hh - hh * yval; - cairo_rectangle(cr,px-2,py-2,4,4); - } - cairo_fill(cr); - } - } - - return 0; -} - - -// generate all curve data points when anchor points are modified - -int splcurve_generate(spldat *sd, int spc) -{ - int kk, kklo, kkhi; - float xval, yvalx; - - spline1(sd->nap[spc],sd->apx[spc],sd->apy[spc]); // compute curve fitting anchor points - - kklo = 1000 * sd->apx[spc][0] - 30; // xval range = anchor point range - if (kklo < 0) kklo = 0; // + 0.03 extra below/above - kkhi = 1000 * sd->apx[spc][sd->nap[spc]-1] + 30; - if (kkhi > 1000) kkhi = 1000; - - for (kk = 0; kk < 1000; kk++) // generate all points for curve - { - xval = 0.001 * kk; // remove anchor point limits - yvalx = spline2(xval); - if (yvalx < 0) yvalx = 0; // yval < 0 not allowed, > 1 OK - sd->yval[spc][kk] = yvalx; - } - - return 0; -} - - -// Retrieve curve data using interpolation of saved table of values - -float splcurve_yval(spldat *sd, int spc, float xval) -{ - int ii; - float x1, x2, y1, y2, y3; - - if (xval <= 0) return sd->yval[spc][0]; - if (xval >= 0.999) return sd->yval[spc][999]; - - x2 = 1000.0 * xval; - ii = x2; - x1 = ii; - y1 = sd->yval[spc][ii]; - y2 = sd->yval[spc][ii+1]; - y3 = y1 + (y2 - y1) * (x2 - x1); - return y3; -} - - -// load curve data from a file -// returns 0 if succcess, sd is initialized from file data -// returns 1 if fail (invalid file data), sd not modified - -int splcurve_load(spldat *sd, FILE *fid) // 15.10 -{ - char *pfile, *pp, buff[300]; - int nn, ii, jj, err, myfid = 0; - int Nspc, fact[10], vert[10], nap[10]; - float apx[10][50], apy[10][50]; - - zthreadcrash(); - - if (! fid) // request file from user - { - pfile = zgetfile(ZTX("load curve from a file"),MWIN,"file",saved_curves_dirk); - if (! pfile) return 1; - fid = fopen(pfile,"r"); - zfree(pfile); - if (! fid) goto fail; - myfid = 1; - } - - pp = fgets_trim(buff,300,fid,1); - if (! pp) goto fail; - nn = sscanf(pp,"%d",&Nspc); // no. of curves - if (nn != 1) goto fail; - if (Nspc < 1 || Nspc > 10) goto fail; - if (Nspc != sd->Nspc) goto fail; - - for (ii = 0; ii < Nspc; ii++) // loop each curve - { - pp = fgets_trim(buff,300,fid,1); - if (! pp) goto fail; - nn = sscanf(pp,"%d %d %d",&fact[ii],&vert[ii],&nap[ii]); // active flag, vert flag, anchors - if (nn != 3) goto fail; - if (fact[ii] < 0 || fact[ii] > 1) goto fail; - if (vert[ii] < 0 || vert[ii] > 1) goto fail; - if (nap[ii] < 2 || nap[ii] > 50) goto fail; - - pp = fgets_trim(buff,300,fid,1); // anchor points: nnn/nnn nnn/nnn ... - - for (jj = 0; jj < nap[ii]; jj++) // anchor point values - { - pp = (char *) strField(buff,"/ ",2*jj+1); - if (! pp) goto fail; - err = convSF(pp,apx[ii][jj],0,1); - if (err) goto fail; - pp = (char *) strField(buff,"/ ",2*jj+2); - err = convSF(pp,apy[ii][jj],0,1); - if (err) goto fail; - } - } - - if (myfid) fclose(fid); - - sd->Nspc = Nspc; // copy curve data to caller's arg - - for (ii = 0; ii < Nspc; ii++) - { - sd->fact[ii] = fact[ii]; - sd->vert[ii] = vert[ii]; - sd->nap[ii] = nap[ii]; - - for (jj = 0; jj < nap[ii]; jj++) - { - sd->apx[ii][jj] = apx[ii][jj]; - sd->apy[ii][jj] = apy[ii][jj]; - } - } - - for (ii = 0; ii < Nspc; ii++) // generate curve data from anchor points - splcurve_generate(sd,ii); - - if (sd->drawarea) // redraw all curves - gtk_widget_queue_draw(sd->drawarea); - - return 0; // success - -fail: - if (fid && myfid) fclose(fid); - zmessageACK(Mwin,ZTX("curve file is invalid")); - return 1; -} - - -// save curve data to a file - -int splcurve_save(spldat *sd, FILE *fid) -{ - char *pfile, *pp; - int ii, jj, myfid = 0; - - if (! fid) - { - pp = zgetfile(ZTX("save curve to a file"),MWIN,"save",saved_curves_dirk); - if (! pp) return 1; - pfile = zstrdup(pp,8); - zfree(pp); - pp = strrchr(pfile,'/'); // force .curve extension - if (pp) pp = strrchr(pp,'.'); - if (pp) strcpy(pp,".curve"); - else strcat(pfile,".curve"); - - fid = fopen(pfile,"w"); - zfree(pfile); - if (! fid) return 1; - myfid = 1; - } - - fprintf(fid,"%d \n",sd->Nspc); // no. of curves - - for (ii = 0; ii < sd->Nspc; ii++) // loop each curve - { - fprintf(fid,"%d %d %d \n",sd->fact[ii],sd->vert[ii],sd->nap[ii]); // activ flag, vert flag, anchors 15.10 - for (jj = 0; jj < sd->nap[ii]; jj++) // anchor point values - fprintf(fid,"%.4f/%.4f ",sd->apx[ii][jj],sd->apy[ii][jj]); - fprintf(fid,"\n"); - } - - if (myfid) fclose(fid); - return 0; -} - - -/******************************************************************************** - - edit transaction management - - edit_setup() get E0 if none, E0 > E1 > E3 - edit_cancel() free (E1 E3 ER) - edit_done() E3 > E0, free (E1 ER) add to undo stack - edit_undo() E3 > ER, E1 > E3 - edit_redo() ER > E3 - edit_reset() free ER, E1 > E3 - edit_fullsize() free (E1 E3) E0 > E1 > E3 - -********************************************************************************* - - Setup for a new edit transaction - Create E1 (edit input) and E3 (edit output) pixmaps from - previous edit (E0) or image file (new E0). - - FprevReq 0 edit full-size image - 1 edit preview image unless select area exists - - Farea 0 select_area is invalid and will be deleted (e.g. rotate) - 1 select_area not used but remains valid (e.g. red-eye) - 2 select_area can be used and remains valid (e.g. gamma) - -*********************************************************************************/ - -int edit_setup(editfunc &EF) -{ - int yn, rww, rhh; - int Fpreview; - - if (! curr_file) return 0; // no image file - if (FGWM != 'F') m_viewmode(0,"F"); // insure file view mode 16.06 - - if (checkpend("busy block")) return 0; // blocking function 15.11 - - if (CEF && CEF->zd) // if pending edit, complete it - zdialog_send_event(CEF->zd,"done"); - if (checkpend("edit")) return 0; // failed (HDR etc.) - - if (URS_pos > maxedits-2) { // undo/redo stack capacity reached - zmessageACK(Mwin,ZTX("Too many edits, please save image")); - return 0; - } - - if (Fscriptbuild && ! EF.Fscript) { // this function not scriptable 15.10 - zmessageACK(Mwin,ZTX("this function cannot be scripted")); - return 0; - } - - free_geomap(); // free map memory for edit usage - - sa_validate(); // delete area if not valid - - if (EF.Farea == 0 && sa_stat) { // select area will be lost, warn user - yn = zmessageYN(Mwin,ZTX("Select area cannot be kept.\n" - "Continue?")); - if (! yn) return 0; - sa_unselect(); // unselect area - if (zdsela) zdialog_free(zdsela); - } - - if (EF.Farea == 2 && sa_stat && sa_stat != 3) { // select area exists and can be used, - yn = zmessageYN(Mwin,ZTX("Select area not active.\n" // but not active, ask user - "Continue?")); - if (! yn) return 0; - } - - if (! E0pxm) { // first edit for this file - E0pxm = PXM_load(curr_file,1); // get E0 image (poss. 16-bit color) - if (! E0pxm) return 0; - curr_file_bpc = f_load_bpc; - } - - paintlock(1); // block window updates 16.02 - - if (URS_pos == 0) save_undo(); // initial image >> undo/redo stack - - Fpreview = 0; // assume no preview - - if (EF.FprevReq && ! Fzoom) // preview requested by edit func. - Fpreview = 1; - - if (EF.Farea == 2 && sa_stat == 3) // not if select area active - Fpreview = 0; - - if (E0pxm->ww * E0pxm->hh < 2000000) // if image is small, don't use preview - Fpreview = 0; - - if (E0pxm->ww < 1.4 * Dww && E0pxm->hh < 1.4 * Dhh) // if image slightly larger than window, - Fpreview = 0; // don't use preview - - if (Fpreview) { - if (Fpxb->ww * Dhh > Fpxb->hh * Dww) { // use preview image 1.4 * window size - rww = 1.4 * Dww; - if (rww < 1200) rww = 1200; // at least 1200 on one side - rhh = 1.0 * rww * Fpxb->hh / Fpxb->ww + 0.5; - } - else { - rhh = 1.4 * Dhh; - if (rhh < 1200) rhh = 1200; - rww = 1.0 * rhh * Fpxb->ww / Fpxb->hh + 0.5; - } - if (rww > Fpxb->ww) Fpreview = 0; - } - - if (Fpreview) { - E1pxm = PXM_rescale(E0pxm,rww,rhh); // scale image to preview size - sa_show(0); // hide select area if present - } - else E1pxm = PXM_copy(E0pxm); // else use full size image - - E3pxm = PXM_copy(E1pxm); // E1 >> E3 - - CEF = &EF; // set current edit function - CEF->Fmods = 0; // image not modified yet - CEF->Fpreview = Fpreview; - - CEF->thread_command = CEF->thread_status = 0; // no thread running - CEF->thread_pend = CEF->thread_done = CEF->thread_hiwater = 0; // no work pending or done - if (CEF->threadfunc) start_thread(CEF->threadfunc,0); // start thread func if any - - paintlock(0); // unblock window updates 16.02 - Fpaintnow(); // update image synchronous - return 1; -} - - -/********************************************************************************/ - -// print error message if CEF invalid - -int CEF_invalid() -{ - if (CEF) return 0; - printz("CEF invalid \n"); // 15.05 - return 1; -} - - -/********************************************************************************/ - -// process edit cancel -// keep: retain zdialog, mousefunc, curves - -void edit_cancel(int keep) // 15.04 -{ - if (CEF_invalid()) return; - wrapup_thread(9); // tell thread to quit, wait 15.05 - if (CEF_invalid()) return; - paintlock(1); // block window updates 16.02 - - PXM_free(E1pxm); // free E1, E3, ER - PXM_free(E3pxm); - PXM_free(ERpxm); - PXM_free(E8pxm); - PXM_free(E9pxm); - - if (! keep) - { - if (CEF->zd == zd_thread) zd_thread = 0; // thread -> zdialog event - if (CEF->curves) zfree(CEF->curves); // free curves data - if (CEF->mousefunc == mouseCBfunc) freeMouse(); // if my mouse, free mouse - if (CEF->zd) zdialog_free(CEF->zd); // kill dialog sequence 16.01 - } - - CEF = 0; // no current edit func - paintlock(0); // unblock window updates 16.02 - Fpaintnow(); // update image synchronous - return; -} - - -/********************************************************************************/ - -// process edit done -// keep: retain zdialog, mousefunc, curves - -void edit_done(int keep) // 15.04 -{ - if (CEF_invalid()) return; - wrapup_thread(8); // tell thread to finish, wait 15.05 - if (CEF_invalid()) return; - paintlock(1); // block window updates 16.02 - - if (CEF->Fmods) { // image was modified - PXM_free(E0pxm); - E0pxm = E3pxm; // E3 updated image >> E0 - E3pxm = 0; - PXM_free(E1pxm); // free E1, ER - PXM_free(ERpxm); - PXM_free(E8pxm); - PXM_free(E9pxm); - URS_pos++; // next undo/redo stack position - URS_max = URS_pos; // image modified - higher mods now obsolete - save_undo(); // save undo state (for following undo) - if (Fscriptbuild) addscript(CEF); // add to script file 15.10 - } - - else { // not modified - PXM_free(E1pxm); // free E1, E3, ER - PXM_free(E3pxm); - PXM_free(ERpxm); - PXM_free(E8pxm); - PXM_free(E9pxm); - } - - if (! keep) - { - if (CEF->zd == zd_thread) zd_thread = 0; // thread -> zdialog event - if (CEF->curves) zfree(CEF->curves); // free curves data - if (CEF->mousefunc == mouseCBfunc) freeMouse(); // if my mouse, free mouse - if (CEF->zd) zdialog_free(CEF->zd); // kill dialog sequence 16.02 - } - - CEF = 0; // no current edit func - paintlock(0); // unblock window updates 16.02 - Fpaintnow(); // update image synchronous - return; -} - - -/********************************************************************************/ - -// Convert from preview mode (window-size pixmaps) to full-size pixmaps. -// Called by the edit function prior to edit_done(). - -void edit_fullsize() // 15.04 -{ - if (CEF_invalid()) return; - wait_thread_idle(); // wait for thread idle - if (CEF_invalid()) return; - if (! CEF->Fpreview) return; // FprevReq ignored if small image - paintlock(1); // block window updates 16.02 - PXM_free(E1pxm); // free preview pixmaps - PXM_free(E3pxm); - E1pxm = PXM_copy(E0pxm); // E0 >> E1, full size image - E3pxm = PXM_copy(E1pxm); // E1 >> E3 - PXB_free(Cstate->fpxb); - Cstate->fpxb = PXM_PXB_copy(E3pxm); // update Fpxb from image E3 - Fzoom = 0; - paintlock(0); // unblock window updates 16.02 - CEF->Fpreview = 0; - return; -} - - -// edit undo, redo, reset functions -// these apply within an active edit function - -void edit_undo() -{ - F1_help_topic = "undo_redo"; - - if (CEF_invalid()) return; - wait_thread_idle(); // wait for thread idle - if (CEF_invalid()) return; - if (! CEF->Fmods) return; // not modified - paintlock(1); // block window updates 16.02 - - PXM_free(ERpxm); // E3 >> redo copy - ERpxm = E3pxm; - E3pxm = PXM_copy(E1pxm); // E1 >> E3 - CEF->Fmods = 0; // reset image modified status - paintlock(0); // unblock window updates 16.02 - Fpaintnow(); // update image synchronous - return; -} - - -void edit_redo() -{ - F1_help_topic = "undo_redo"; - - if (CEF_invalid()) return; - wait_thread_idle(); // wait for thread idle - if (CEF_invalid()) return; - if (! ERpxm) return; // no prior undo - paintlock(1); // block window updates 16.02 - - PXM_free(E3pxm); // redo copy >> E3 - E3pxm = ERpxm; - ERpxm = 0; - CEF->Fmods = 1; // image modified - paintlock(0); // unblock window updates 16.02 - Fpaintnow(); // update image synchronous - return; -} - - -void edit_reset() // reset E3 to E1 status -{ - if (CEF_invalid()) return; - wait_thread_idle(); // wait for thread idle - if (CEF_invalid()) return; - if (! CEF->Fmods) return; // not modified - paintlock(1); // block window updates 16.02 - - PXM_free(ERpxm); // delete redo copy - PXM_free(E3pxm); - E3pxm = PXM_copy(E1pxm); // E1 >> E3 - CEF->Fmods = 0; // reset image modified status - paintlock(0); // unblock window updates 16.02 - Fpaintnow(); // update image synchronous - return; -} - - -/********************************************************************************/ - -// Load/save all edit zdialog widgets data from/to a file. -// dirname for edit data files: /home//.fotoxx/funcname -// where zdialog data is saved for the respective function. -// return 0 = OK, +N = error - -int edit_load_widgets(editfunc *EF, FILE *fid) // 15.10 -{ - using namespace zfuncs; - - cchar *mess = ZTX("Load settings from file"); - zdialog *zd; - spldat *sd; - int myfid = 0; - char *filename, dirname[200], buff[1000]; - char *wname, *wdata, wdata2[1000]; - char *pp, *pp1, *pp2; - int ii, kk, err, cc1, cc2; - - zd = EF->zd; - sd = EF->curves; - - if (! fid) // fid from script - { - snprintf(dirname,200,"%s/%s",get_zuserdir(),EF->funcname); // directory for data files - filename = zgetfile(mess,MWIN,"file",dirname,0); // open data file - if (! filename) return 1; // user cancel - fid = fopen(filename,"r"); - zfree(filename); - if (! fid) { - zmessageACK(Mwin,"%s \n %s",filename,strerror(errno)); - return 1; - } - myfid = 1; - } - - for (ii = 0; ii < zdmaxwidgets; ii++) // read widget data recs - { - pp = fgets_trim(buff,1000,fid,1); - if (! pp) break; - if (strmatch(pp,"curves")) { - if (! sd) goto baddata; - err = splcurve_load(sd,fid); // load curves data - if (err) goto baddata; - continue; - } - if (strmatch(pp,"end")) break; - pp1 = pp; - pp2 = strstr(pp1," =="); - if (! pp2) continue; // widget has no data - cc1 = pp2 - pp1; - if (cc1 > 100) continue; - pp1[cc1] = 0; - wname = pp1; // widget name - pp2 += 3; - if (*pp2 == ' ') pp2++; - wdata = pp2; // widget data - cc2 = strlen(wdata); - if (cc2 < 1) wdata = (char *) ""; - if (cc2 > 300) continue; - repl_1str(wdata,wdata2,"\\n","\n"); // replace "\n" with newline chars. - kk = zdialog_put_data(zd,wname,wdata2); - if (! kk) goto baddata; - } - - if (myfid) fclose(fid); - return 0; - -baddata: - zmessageACK(Mwin,ZTX("file data does not fit dialog")); - if (myfid) fclose(fid); - return 1; -} - - -int edit_save_widgets(editfunc *EF, FILE *fid) // 15.10 -{ - using namespace zfuncs; - - cchar *mess = ZTX("Save settings to a file"); - zdialog *zd; - spldat *sd; - int myfid = 0; - char *filename, dirname[200]; - char *wtype, *wname, *wdata, wdata2[1000]; - int ii, cc; - - cchar *editwidgets = "entry edit text togbutt check combo comboE " // widget types to save - "radio spin hscale vscale colorbutt"; - zd = EF->zd; - sd = EF->curves; - - if (! fid) // fid from script - { - snprintf(dirname,200,"%s/%s",get_zuserdir(),EF->funcname); // directory for data files - filename = zgetfile(mess,MWIN,"save",dirname,0); // open data file - if (! filename) return 1; // user cancel - fid = fopen(filename,"w"); - zfree(filename); - if (! fid) { - zmessageACK(Mwin,"%s \n %s",filename,strerror(errno)); - return 1; - } - myfid = 1; - } - - for (ii = 0; ii < zdmaxwidgets; ii++) - { - wtype = (char *) zd->widget[ii].type; - if (! wtype) break; - if (! strstr(editwidgets,wtype)) continue; - wname = (char *) zd->widget[ii].name; // write widget data recs: - wdata = zd->widget[ii].data; // widgetname == widgetdata - if (! wdata) continue; - cc = strlen(wdata); - if (cc > 900) continue; - repl_1str(wdata,wdata2,"\n","\\n"); - fprintf(fid,"%s == %s \n",wname,wdata); - } - - if (sd) { - fprintf(fid,"curves\n"); - splcurve_save(sd,fid); - } - - fprintf(fid,"end\n"); - - if (myfid) fclose(fid); - return 0; -} - - -// functions to support [prev] buttons in edit dialogs -// load or save last-used widgets - -int edit_load_prev_widgets(editfunc *EF) // 15.10 -{ - using namespace zfuncs; - - char filename[200]; - FILE *fid; - int err; - - snprintf(filename,200,"%s/%s/%s",get_zuserdir(),EF->funcname,"last-used"); - fid = fopen(filename,"r"); - if (! fid) { - zmessageACK(Mwin,"%s \n %s",filename,strerror(errno)); - return 1; - } - - err = edit_load_widgets(EF,fid); - fclose(fid); - return err; -} - - -int edit_save_last_widgets(editfunc *EF) // 15.10 -{ - using namespace zfuncs; - - char filename[200]; - FILE *fid; - int err; - - snprintf(filename,200,"%s/%s/%s",get_zuserdir(),EF->funcname,"last-used"); - fid = fopen(filename,"w"); - if (! fid) { - zmessageACK(Mwin,"%s \n %s",filename,strerror(errno)); - return 1; - } - - err = edit_save_widgets(EF,fid); - fclose(fid); - return err; -} - - -/******************************************************************************** - undo / redo menu buttons -*********************************************************************************/ - -// [undo/redo] menu function -// Call m_undo() / m_redo() if left / right mouse click on menu. -// If A key is pressed, undo or redo all edits. -// If middle mouse button is clicked, pop-up a list of all edit steps -// and choose a step to go back to. - -void m_undo_redo(GtkWidget *, cchar *) -{ - void undo_redo_choice(GtkWidget *, cchar *menu); - - GtkWidget *popmenu; - int button = zfuncs::vmenuclickbutton; - char menuitem[40], flag; - - F1_help_topic = "undo_redo"; - - if (button == 1) { - if (KBkey == GDK_KEY_a) undo_all(); // undo all steps - else m_undo(0,0); // undo one step - } - - if (button == 2) // go back to selected edit step 15.07 - { - if (URS_max == 0) return; - popmenu = create_popmenu(); - for (int ii = 0; ii < 30; ii++) { // insert all edit steps - if (ii > URS_max) break; - if (ii == URS_pos) flag = '*'; // flag step matching current status - else flag = ' '; - snprintf(menuitem,40,"%d %s %c",ii,URS_funcs[ii],flag); - add_popmenu_item(popmenu,menuitem,undo_redo_choice,(char *) &Nval[ii],0); - } - popup_menu(Mwin,popmenu); - } - - if (button == 3) { - if (KBkey == GDK_KEY_a) redo_all(); // redo all steps - else m_redo(0,0); // redo one step - } - - return; -} - - -// popup menu response function - -void undo_redo_choice(GtkWidget *, cchar *menu) // 15.07 -{ - int nn = *((int *) menu); - if (nn < 0 || nn > URS_max) return; - URS_pos = nn; - load_undo(); - return; -} - - -// [undo] menu function - reinstate previous edit in undo/redo stack - -void m_undo(GtkWidget *, cchar *) -{ - if (CEF) { // undo active edit - edit_undo(); - return; - } - if (URS_pos == 0) return; // undo past edit - URS_pos--; - load_undo(); - return; -} - - -// [redo] menu function - reinstate next edit in undo/redo stack - -void m_redo(GtkWidget *, cchar *) -{ - if (CEF) { // redo active edit - edit_redo(); - return; - } - if (URS_pos == URS_max) return; // redo past edit - URS_pos++; - load_undo(); - return; -} - - -// undo all edits of the current image -// (discard modifications) - -void undo_all() -{ - if (CEF) return; // not if edit active - if (URS_pos == 0) return; - URS_pos = 0; // original image - load_undo(); - return; -} - - -// redo all edits of the current image -// (reinstate all modifications) - -void redo_all() -{ - if (CEF) return; // not if edit active - if (URS_pos == URS_max) return; - URS_pos = URS_max;; // image with last edit applied - load_undo(); - return; -} - - -// Save E0 to undo/redo file stack -// stack position = URS_pos - -void save_undo() // overhauled for 4 GB files 16.03 -{ - char *pp, buff[24]; - FILE *fid; - int ww, hh, nc, nn; - uint cc1, cc2; - uint ccmax = 256 * MEGA; - - ww = E0pxm->ww; - hh = E0pxm->hh; - nc = E0pxm->nc; - - pp = strstr(URS_filename,"undo_"); // get undo/redo stack filename to use - if (! pp) zappcrash("undo/redo stack corrupted"); - snprintf(pp+5,3,"%02d",URS_pos); - - fid = fopen(URS_filename,"w"); - if (! fid) goto writefail; - - snprintf(buff,24,"fotoxx %05d %05d %d",ww,hh,nc); // write header - nn = fwrite(buff,20,1,fid); - if (nn != 1) goto writefail; - - cc1 = ww * hh * nc * sizeof(float); // write ww * hh RGB(A) pixels - cc2 = 0; - while (cc1) { - if (cc1 <= ccmax) { - pp = (char *) E0pxm->pixels; - nn = fwrite(pp+cc2,cc1,1,fid); - if (nn != 1) goto writefail; - break; - } - else { - pp = (char *) E0pxm->pixels; - nn = fwrite(pp+cc2,ccmax,1,fid); - if (nn != 1) goto writefail; - cc1 -= ccmax; - cc2 += ccmax; - } - } - - fclose(fid); - - if (URS_pos == 0) { // stack posn. 0 = original image - strcpy(URS_funcs[0],"original"); // function name for original image - URS_saved[0] = 1; // original image already on disk - } - else { // stack position - if (CEF_invalid()) return; // must have an edit function - strncpy0(URS_funcs[URS_pos],CEF->funcname,32); // edit function name - URS_saved[URS_pos] = 0; // not yet saved to disk - } - - return; - -writefail: - zmessageACK(Mwin,"undo/redo stack write failure: %d \n" - "(may be out of disk space)",errno); - shell_quiet("rm -R %s",tempdir); - exit(errno); -} - - -// Load E0 from undo/redo file stack -// stack position = URS_pos - -void load_undo() // overhauled 16.03 -{ - char *pp, buff[24]; - FILE *fid; - int ww, hh, nc, nn; - uint cc1, cc2; - uint ccmax = 256 * MEGA; - - pp = strstr(URS_filename,"undo_"); - if (! pp) goto readfail; - snprintf(pp+5,3,"%02d",URS_pos); - - fid = fopen(URS_filename,"r"); - if (! fid) goto readfail; - - nn = fread(buff,20,1,fid); - if (nn != 1) goto readfail; - nn = sscanf(buff,"fotoxx %d %d %d",&ww,&hh,&nc); - if (nn != 3) goto readfail; - - PXM_free(E0pxm); - E0pxm = PXM_make(ww,hh,nc); - - cc1 = ww * hh * nc * sizeof(float); - cc2 = 0; - while (cc1) { - if (cc1 <= ccmax) { - pp = (char *) E0pxm->pixels; - nn = fread(pp+cc2,cc1,1,fid); - if (nn != 1) goto readfail; - break; - } - else { - pp = (char *) E0pxm->pixels; - nn = fread(pp+cc2,ccmax,1,fid); - if (nn != 1) goto readfail; - cc1 -= ccmax; - cc2 += ccmax; - } - } - - fclose(fid); - - sa_validate(); // delete area if invalid - if (Cdrawin) Fpaintnow(); // update image synchronous - return; - -readfail: - zmessageACK(Mwin,"undo/redo stack read failure: %d \n",errno); - shell_quiet("rm -R %s",tempdir); - exit(errno); -} - - -/********************************************************************************/ - -// check for busy or pending conditions and message the user -// returns 1 if busy or pending condition -// 0 if nothing is pending or user decides to discard mods -// conditions: -// edit edit function is active (CEF not null) -// mods current file has unsaved mods (image or metadata edits) -// busy function is still running // 15.04 -// block edit function mutex flag // 15.04 -// all check all the above -// quiet suppress user message - -int checkpend(cchar *list) -{ - int edit, mods, busy, block, all, quiet, pend, choice; - cchar *modmess = ZTX("This action will discard changes to current image"); - cchar *activemess = ZTX("prior function still active"); - cchar *keep = ZTX("Keep"); - cchar *discard = ZTX("Discard"); - - edit = mods = busy = block = all = quiet = pend = 0; - - if (strstr(list,"edit")) edit = 1; - if (strstr(list,"mods")) mods = 1; - if (strstr(list,"busy")) busy = 1; - if (strstr(list,"block")) block = 1; - if (strstr(list,"all")) all = 1; - if (strstr(list,"quiet")) quiet = 1; - - if (all) edit = mods = busy = block = 1; - - if ((edit && CEF) || (busy && (Ffuncbusy | Fthreadbusy)) || (block && Fblock)) { - pend = 1; - if (! quiet) zmessage_post(Mwin,2,activemess); // 16.03 - } - - if (! pend && mods) { - if (CEF && CEF->Fmods && ! CEF->Fsaved) pend = 1; // active edits unsaved - if (URS_pos > 0 && URS_saved[URS_pos] == 0) pend = 1; // completed edits unsaved - if (Fmetamod) pend = 1; // metadata edits unsaved 15.03 - if (pend && ! quiet) { - choice = zdialog_choose(Mwin,modmess,keep,discard,null); // ask user - if (choice == 2) { // choice is discard - if (CEF && CEF->zd) - zdialog_send_event(CEF->zd,"cancel"); - if (URS_pos > 0) undo_all(); // undo prior edits - Fmetamod = 0; // discard metadata edits - pend = 0; - } - else m_viewmode(0,"F"); // keep - back to current image - } - } - - return pend; // 1 if something pending -} - - -/********************************************************************************/ - -// zdialog mouse capture and release - -void takeMouse(mcbFunc func, GdkCursor *cursor) // capture mouse for dialog -{ - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - freeMouse(); - mouseCBfunc = func; - Mcapture = 1; - gdk_window_set_cursor(gdkwin,cursor); - return; -} - -void freeMouse() // free mouse for main window -{ - zthreadcrash(); - - if (! Cdrawin) return; - if (! gdkwin) return; - if (! Mcapture) return; - mouseCBfunc = 0; - Mcapture = 0; - draw_mousearc(0,0,0,0,1); // remove mouse circle - gdk_window_set_cursor(gdkwin,0); // set normal cursor - return; -} - - -/******************************************************************************** - - functions to manage working threads - - main level thread management - start_thread(func,arg) start thread running - signal_thread() signal thread that work is pending - wait_thread_idle() wait for pending work complete - wrapup_thread(command) wait for exit or command thread exit - - thread function - thread_idle_loop() wait for pending work, exit if commanded - thread_exit() exit thread unconditionally - - thread_status (thread ownership - 0 no thread is running - 1 thread is running and idle (no work) - 2 thread is working - 0 thread has exited - - thread_command (main program ownership) - 0 idle, initial status - 8 exit when pending work is done - 9 exit now, unconditionally - - thread_pend work requested counter - thread_done work done counter - thread_hiwater high water mark - -*********************************************************************************/ - -// start thread that does the edit work - -void start_thread(threadfunc func, void *arg) -{ - CEF->thread_status = 1; // thread is running - CEF->thread_command = CEF->thread_pend = CEF->thread_done - = CEF->thread_hiwater = 0; // nothing pending - start_detached_thread(func,arg); - return; -} - - -// signal thread that new work is pending - -void signal_thread() -{ - if (CEF_invalid()) return; - if (CEF->thread_status > 0) CEF->thread_pend++; - return; -} - - -// wait for edit thread to complete pending work and become idle - -void wait_thread_idle() -{ - if (CEF_invalid()) return; - if (! CEF->thread_status) return; - if (CEF->thread_pend == CEF->thread_done) return; - while (CEF->thread_status && CEF->thread_pend > CEF->thread_done) { - zmainloop(); // 15.04 - zsleep(0.01); - if (CEF_invalid()) return; - } - return; -} - - -// wait for thread exit or command thread exit -// command = 0 wait for normal completion -// 8 finish pending work and exit -// 9 quit, exit now - -void wrapup_thread(int command) -{ - if (CEF_invalid()) return; - if (! CEF->thread_status) return; - CEF->thread_command = command; // tell thread to quit or finish - while (CEF->thread_status > 0) { // wait for thread to finish - zmainloop(); // 15.04 - zsleep(0.01); - if (CEF_invalid()) return; - } - return; -} - - -// called only from edit threads -// idle loop - wait for work request or exit command - -void thread_idle_loop() -{ - if (CEF_invalid()) thread_exit(); - if (CEF->thread_status == 2) zadd_locked(Fthreadbusy,-1); - CEF->thread_status = 1; // status = idle - CEF->thread_done = CEF->thread_hiwater; // work done = high-water mark - - while (true) - { - if (CEF->thread_command == 9) thread_exit(); // quit now command - if (CEF->thread_command == 8) // finish work and exit - if (CEF->thread_pend <= CEF->thread_done) thread_exit(); - if (CEF->thread_pend > CEF->thread_done) break; // wait for work request - zsleep(0.01); - } - - CEF->thread_hiwater = CEF->thread_pend; // set high-water mark - CEF->thread_status = 2; // thread is working - zadd_locked(Fthreadbusy,+1); - return; // perform edit -} - - -// exit thread unconditionally, called only from edit threads - -void thread_exit() -{ - wait_wthreads(); // wait for worker threads if any - if (CEF_invalid()) pthread_exit(0); - if (CEF->thread_status == 2) zadd_locked(Fthreadbusy,-1); - CEF->thread_pend = CEF->thread_done = CEF->thread_hiwater = 0; - CEF->thread_status = 0; - pthread_exit(0); // "return" cannot be used here -} - - -/********************************************************************************/ - -// edit support functions for worker threads (per processor core) - -void start_wthread(threadfunc func, void *arg) // start thread and increment busy count -{ // may be called from a thread - zadd_locked(Fthreadbusy,+1); - zadd_locked(wthreads_busy,+1); - start_detached_thread(func,arg); - return; -} - - -void exit_wthread() // decrement busy count and exit thread -{ - zadd_locked(Fthreadbusy,-1); - zadd_locked(wthreads_busy,-1); - pthread_exit(0); // "return" cannot be used here -} - - -void wait_wthreads(int block) // wait for all worker threads done -{ // may be called from thread or non-thread - if (CEF) { - while (wthreads_busy) { - zsleep(0.002); // 16.05 - if (block) continue; - zmainloop(); - } - if (CEF_invalid()) return; - } - else { - while (wthreads_busy) { - zsleep(0.002); // 16.05 - if (block) continue; - zmainloop(); - } - } - return; -} - - -/******************************************************************************** - other support functions -*********************************************************************************/ - -// table for loading and saving adjustable parameters between sessions - -typedef struct { - char name[20]; - char type[12]; - int count; - void *location; -} param; - -#define Nparms 38 -param paramTab[Nparms] = { -// name type count location -{ "fotoxx release", "char", 1, &Prelease }, -{ "first time", "int", 1, &Ffirsttime }, -{ "window geometry", "int", 4, &mwgeom }, -{ "thumbnail size", "int", 1, &navi::thumbsize }, -{ "menu style", "char", 1, &menu_style }, -{ "gallery sort", "int", 1, &gallerysort }, -{ "icon size", "int", 1, &iconsize }, -{ "dialog font", "char", 1, &dialog_font }, -{ "drag option", "int", 1, &Fdragopt }, -{ "zoom count", "int", 1, &zoomcount }, -{ "map_dotsize", "int", 1, &map_dotsize }, -{ "show hidden", "int", 1, &Fshowhidden }, -{ "last version", "int", 1, &Flastversion }, -{ "curve node dist %", "float", 1, &splcurve_minx }, -{ "startup display", "char", 1, &startdisplay }, -{ "start image file", "char", 1, &startfile }, -{ "start directory", "char", 1, &startdirk }, -{ "last curr file", "char", 1, &last_curr_file }, -{ "last galleryname", "char", 1, &last_galleryname }, -{ "last gallerytype", "int", 1, &last_gallerytype }, -{ "grid base", "int", 10, &gridsettings[0] }, -{ "grid trim/rotate", "int", 10, &gridsettings[1] }, -{ "grid unbend", "int", 10, &gridsettings[2] }, -{ "grid warp curved", "int", 10, &gridsettings[3] }, -{ "grid warp linear", "int", 10, &gridsettings[4] }, -{ "grid warp affine", "int", 10, &gridsettings[5] }, -{ "RAW command", "char", 1, &DCrawcommand }, -{ "RAW file types", "char", 1, &RAWfiletypes }, -{ "trim size", "int", 2, &trimsize }, -{ "trim buttons", "char", 6, &trimbuttons }, -{ "trim ratios", "char", 6, &trimratios }, -{ "edit resize", "int", 2, &editresize }, -{ "jpeg def quality", "int", 1, &jpeg_def_quality }, -{ "thumb file size", "int", 1, &thumbfilesize }, -{ "lens mm", "float", 1, &lens_mm }, -{ "cycledesktop_album", "char", 1, &cycledesktop_album }, -{ "cycledesktop_index", "int", 1, &cycledesktop_index }, -{ "printer color map", "char", 1, &colormapfile } }; - - -// save parameters to file /.../.fotoxx/parameters - -void save_params() -{ - FILE *fid; - char buff[1050], text[1000]; // limit for character data cc - char *name, *type; - int count; - void *location; - char **charloc; - int *intloc; - float *floatloc; - - last_curr_file = last_galleryname = 0; // save curr_file and gallery poop 15.07 - last_gallerytype = NONE; // for next session startup - if (curr_file && *curr_file == '/') - last_curr_file = zstrdup(curr_file); - if (navi::galleryname) { - last_galleryname = zstrdup(navi::galleryname); - last_gallerytype = navi::gallerytype; - } - - snprintf(buff,199,"%s/parameters",get_zuserdir()); // open output file - fid = fopen(buff,"w"); - if (! fid) return; - - for (int ii = 0; ii < Nparms; ii++) // write table of state data - { - name = paramTab[ii].name; - type = paramTab[ii].type; - count = paramTab[ii].count; - location = paramTab[ii].location; - charloc = (char **) location; - intloc = (int *) location; - floatloc = (float *) location; - - fprintf(fid,"%-20s %-8s %02d ",name,type,count); // write parm name, type, count - - for (int kk = 0; kk < count; kk++) // write "value" "value" ... - { - if (strmatch(type,"char")) { - if (! *charloc) break; // missing, discontinue this parameter - repl_1str(*charloc++,text,"\n","\\n"); // replace newlines with "\n" - fprintf(fid," \"%s\"",text); - } - if (strmatch(type,"int")) - fprintf(fid," \"%d\"",*intloc++); - - if (strmatch(type,"float")) - fprintf(fid," \"%.2f\"",*floatloc++); - } - - fprintf(fid,"\n"); // write EOR - } - - fprintf(fid,"\n"); - fclose(fid); // close file - - return; -} - - -// load parameters from file /.../.fotoxx/parameters - -void load_params() -{ - FILE *fid; - int ii, err, pcount; - int Idata; - float Fdata; - char buff[1000], text[1000], *pp; - char name[20], type[12], count[8], data[1000]; - void *location; - char **charloc; - int *intloc; - float *floatloc; - - snprintf(buff,199,"%s/parameters",get_zuserdir()); // open parameters file - fid = fopen(buff,"r"); - if (! fid) return; // none, defaults are used - - while (true) // read parameters - { - pp = fgets_trim(buff,999,fid,1); - if (! pp) break; - if (*pp == '#') continue; // comment - if (strlen(pp) < 40) continue; // rubbish - - err = 0; - - strncpy0(name,pp,20); // parm name - strTrim2(name); - - strncpy0(type,pp+22,8); // parm type - strTrim2(type); - - strncpy0(count,pp+32,4); // parm count - strTrim2(count); - err = convSI(count,pcount); - - strncpy0(data,pp+38,1000); // parm value(s) - strTrim2(data); - - for (ii = 0; ii < Nparms; ii++) // match file record to param table - { - if (! strmatch(name,paramTab[ii].name)) continue; // parm name - if (! strmatch(type,paramTab[ii].type)) continue; // parm type - if (paramTab[ii].count != pcount) continue; // parm count - break; - } - - if (ii == Nparms) continue; // not found, ignore file param - - location = paramTab[ii].location; // get parameter memory location - charloc = (char **) location; - intloc = (int *) location; - floatloc = (float *) location; - - for (ii = 1; ii <= pcount; ii++) // get parameter value(s) - { - pp = (char *) strField(data,' ',ii); - if (! pp) break; - - if (strmatch(type,"char")) { - repl_1str(pp,text,"\\n","\n"); // replace "\n" with real newlines - *charloc++ = zstrdup(text); - } - - if (strmatch(type,"int")) { - err = convSI(pp,Idata); - if (err) continue; - *intloc++ = Idata; - } - - if (strmatch(type,"float")) { - err = convSF(pp,Fdata); - if (err) continue; - *floatloc++ = Fdata; - } - } - } - - fclose(fid); - - for (ii = 0; ii < Nparms; ii++) // set any null strings to "" - { - if (! strmatch(paramTab[ii].type,"char")) continue; - charloc = (char **) paramTab[ii].location; - pcount = paramTab[ii].count; - for (int jj = 0; jj < pcount; jj++) - if (! charloc[jj]) - charloc[jj] = zstrdup("",20); - } - - zoomratio = pow( 2.0, 1.0 / zoomcount); // set zoom ratio from zoom count - return; -} - - -/********************************************************************************/ - -// free all resources associated with the current image file - -void free_resources(int fkeepundo) -{ - paintlock(1); // block window updates 16.02 - - if (! fkeepundo) - shell_quiet("rm -f %s/undo_*",tempdir); // remove undo/redo files - - if (Fshutdown) return; // stop here if shutdown mode - - URS_pos = URS_max = 0; // reset undo/redo stack - Fmetamod = 0; // no unsaved metadata changes 15.03 - sa_unselect(); // unselect select area - - draw_toplines(2); // no toplines - erase_topcircles(); // no topcircles - Ntoptext = 0; // no toptext - Fbusy_goal = 0; - - if (curr_file) { - if (zdsela) zdialog_free(zdsela); // kill select area dialog if active - freeMouse(); // free mouse - zfree(curr_file); // free image file - curr_file = 0; - *paneltext = 0; - } - - gtk_window_set_title(MWIN,Frelease); // sparse title 15.03 - - PXB_free(Fpxb); - PXM_free(E0pxm); - PXM_free(E1pxm); - PXM_free(E3pxm); - PXM_free(ERpxm); - PXM_free(E8pxm); - PXM_free(E9pxm); - - paintlock(0); // unblock window updates 16.02 - return; -} - - -/********************************************************************************/ - -// compare two floats for significant difference -// signf: e.g. 0.01 for 1% threshold of significance -// return: 0 difference not significant -// +1 d1 > d2 -// -1 d1 < d2 - -int sigdiff(float d1, float d2, float signf) -{ - float diff = fabsf(d1-d2); - if (diff == 0.0) return 0; - diff = diff / (fabsf(d1) + fabsf(d2)); - if (diff < signf) return 0; - if (d1 > d2) return 1; - else return -1; -} - - - diff -Nru fotoxx-16.06/fotoxx-16.07.cc fotoxx-16.07/fotoxx-16.07.cc --- fotoxx-16.06/fotoxx-16.07.cc 1970-01-01 00:00:00.000000000 +0000 +++ fotoxx-16.07/fotoxx-16.07.cc 2016-07-01 10:19:38.000000000 +0000 @@ -0,0 +1,4527 @@ +/******************************************************************************** + + Fotoxx edit photos and manage collections + + Copyright 2007-2016 Michael Cornelison + Source URL: http://kornelix.net + Contact: kornelix@posteo.de + + This program 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. + + This program 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 this program. If not, see http://www.gnu.org/licenses/. + +********************************************************************************* + + main main program, set up defaults + initzfunc initializations, carry out command line options + + delete_event response function for main window delete event + destroy_event response function for main window destroy event + state_event response function for main window fullscreen state change + + gtimefunc periodic function + update_Fpanel update status parameters on F window top panel + + paintlock block window updates from main thread or created thread + Fpaint main / drawing window refresh (draw signal response function) + Fpaintnow immediate Fpaint, not callable from threads + Fpaint2 queue Fpaint, callable from threads + Fpaint3 update drawing window section from updated E3 section + Fpaint4 update drawing window section (direct write) + + mouse_event mouse event response function + mouse_convert convert mouse/window space to image space + m_zoom main window zoom in/out function + KBstate send KB key from dialog to main window + KBpress KB key press event function + KBrelease KB key release event function + win_fullscreen set main window full screen status + win_unfullscreen restore main window to former size + set_mwin_title update the main window title bar + + draw_pixel draw one overlay pixel using image space + erase_pixel erase one pixel + draw_line draw overlay line in image space + erase_line erase line + draw_toplines draw or redraw a set of overlay lines + draw_gridlines draw grid lines over image + add_toptext add to set of overlay text strings + draw_toptext draw set of overlay text strings + erase_toptext remove text from set of overlay text strings + draw_text draw text on window in image space + add_topcircle add a circle to set of overlay circles + draw_topcircles draw the set of overlay circles in window space + erase_topcircles erase the set of overlay circles + draw_mousecircle draw a circle around pointer in image space + draw_mousecircle2 2nd instance for paint/clone tracking circle + draw_mousearc draw an ellipse around pointer in image space + + splcurve_init set up a spline curve drawing area + splcurve_adjust mouse event function to manipulate curve nodes + splcurve_addnode add an anchor point to a curve + splcurve_draw draw curve through nodes + splcurve_generate generate x/y table of values from curve + splcurve_yval get curve y-value for given x-value + splcurve_load load curve data from a saved file + splcurve_save save curve data to a file + + edit_setup start an image edit function + CEF_invalid diagnostic + edit_cancel cancle image edit + edit_done finish image edit + edit_fullsize convert preview to full size edit + edit_undo undo current edit (reset) + edit_redo redo current edit + edit_reset reset all edit changes + edit_load_widgets load zdialog widgets and curves from a file + edit_save_widgets save last-used widgets (for [done] buttons) + edit_load_prev_widgets load last-used widgets (for [prev] buttons) + edit_save_last_widgets save last-used widgets (for [prev] buttons) + + m_undo_redo undo/redo depending on mouse button + undo_redo_choice popup menu response function + m_undo restore previous edit in undo/redo stack + m_redo restore next edit in undo/redo stack + undo_all undo all edits for image + redo_all redo all edits for image + save_undo save image in the undo stack + load_undo load image from the undo stack + checkpend check status: edit mods busy block any quiet + takeMouse set mouse event function and special cursor + freeMouse remove mouse event function, set normal cursor + + start_thread start thread running + signal_thread signal thread that work is pending + wait_thread_idle wait for pending work complete + wrapup_thread wait for thread exit or command thread exit + thread_idle_loop wait for pending work, exit if commanded + thread_exit exit thread unconditionally + start_wthread start a working thread per SMP processor + exit_wthread exit a working thread + wait_wthreads wait for all working threads to exit + + save_params save parameters when fotoxx exits + load_params load parameters at fotoxx startup + free_resources free resources for the current image file + sigdiff compare 2 floats with margin of significance + +*********************************************************************************/ + +#define EX // disable extern declarations +#include "fotoxx.h" // (variables in fotoxx.h are defined) + +/********************************************************************************/ + + +// fotoxx main program + +using namespace zfuncs; + +int main(int argc, char *argv[]) +{ + char lang[8] = ""; + int Fclone=0, cloxx=0, cloyy=0, cloww=0, clohh=0; + int err; + STATB statb; + + if (argc > 1 && strmatchV(argv[1],"-ver","-v",0)) { + printz(Frelease "\n"); // print version and exit + return 0; + } + + if (gtk_clutter_init(&argc,&argv) != CLUTTER_INIT_SUCCESS) return 1; // init. gtk and clutter (OSM) 16.05 + + zinitapp("fotoxx"); // initz. app directories + err = chdir(get_zuserdir()); // set to /home//.fotoxx + + // initialize externals to default values + // (saved parameters will override these) + + strcpy(zfuncs::zappname,Frelease); // app name and version + Ffirsttime = 1; // first time startup (params override) + Prelease = zstrdup("unknown"); // prev. fotoxx release (params override) + mwgeom[0] = mwgeom[1] = 100; // default main window geometry + mwgeom[2] = 1200; mwgeom[3] = 800; + *paneltext = 0; // no status bar text + trimsize[0] = 1600; // default initial image trim size + trimsize[1] = 1000; + trimbuttons[0] = zstrdup("5:4"); trimratios[0] = zstrdup("5:4"); // default trim ratio buttons + trimbuttons[1] = zstrdup("4:3"); trimratios[1] = zstrdup("4:3"); + trimbuttons[2] = zstrdup("8:5"); trimratios[2] = zstrdup("8:5"); + trimbuttons[3] = zstrdup("16:9"); trimratios[3] = zstrdup("16:9"); + trimbuttons[4] = zstrdup("2:1"); trimratios[4] = zstrdup("2:1"); + trimbuttons[5] = zstrdup("gold"); trimratios[5] = zstrdup("1.62:1"); + editresize[0] = 1600; // default initial resize size + editresize[1] = 1200; + currgrid = 0; // default initial grid settings + gridsettings[0][GON] = 0; // grid off + gridsettings[0][GX] = gridsettings[0][GY] = 1; // x/y grid lines enabled + gridsettings[0][GXS] = gridsettings[0][GYS] = 200; // x/y spacing + gridsettings[0][GXC] = gridsettings[0][GYC] = 5; // x/y count + menu_style = zstrdup("icons"); // default menu style (icons) + BGcolor[0] = BGcolor[1] = BGcolor[2] = 50; // window background color 16.07 + gallerysort = 1; // default gallery sort (alphabetic) 16.01 + dialog_font = zstrdup("Sans 11"); // default dialog font 16.05 + iconsize = 32; // default icon size 16.07 + splcurve_minx = 5; // default curve node separation % 15.10 + startdisplay = zstrdup("prevI"); // start with previous image + Fdragopt = 1; // image drag with mouse 15.02 + zoomcount = 2; // zooms to reach 2x image size + zoomratio = sqrtf(2); // corresp. zoom ratio + map_dotsize = 8; // map dot size, mouse capture dist 16.05 + curr_file = curr_dirk = 0; // no curr. file or directory 15.11 + copymove_loc = 0; // copy/move target directory 16.07 + thumbdirk = 0; // no thumbnail directory + thumbfilesize = 256; // thumbnail files, default pixels 15.02 + navi::thumbsize = 128; // gallery window thumbnail size 16.07 + startmenu = 0; // start with menu function + startalbum = 0; // start with album gallery + initial_file = 0; // start with image file or directory + jpeg_def_quality = 90; // default .jpeg save quality + jpeg_1x_quality = 90; // default for 1-time jpeg quality + lens_mm = 35; // pano lens parameter + colormapfile = zstrdup("undefined"); // printer calibration color map 15.10 + RAWfiletypes = zstrdup(".arw .crw .cr2 .dng .erf .iiq .mef .mos " // some of the known RAW file types + ".mpo .nef .nrw .orf .pef .ptx .raw " // (case is not significant here) + ".rw2 .rwl .srf .srw .sr2 "); + imagefiletypes = zstrdup(".jpg .jpeg .png .tif .tiff .bmp .ico " // supported image file types + ".gif .svg .xpm .tga "); + + BLACK[0] = BLACK[1] = BLACK[2] = 0; // define RGB colors + WHITE[0] = WHITE[1] = WHITE[2] = 255; + RED[0] = 255; RED[1] = RED[2] = 0; + GREEN[1] = 255; GREEN[0] = GREEN[2] = 0; + BLUE[2] = 255; BLUE[0] = BLUE[1] = 0; + LINE_COLOR = RED; // initial foreground drawing color + + for (int ii = 0; ii < 100; ii++) Nval[ii] = ii; // static integer values 0-99 + + // file and directory names in user directory /home//.fotoxx/* + + snprintf(index_dirk,199,"%s/image_index",get_zuserdir()); // image index directory + snprintf(tags_defined_file,199,"%s/tags_defined",get_zuserdir()); // defined tags file + snprintf(recentfiles_file,199,"%s/recent_files",get_zuserdir()); // recent files file (index func) + snprintf(saved_areas_dirk,199,"%s/saved_areas",get_zuserdir()); // saved areas directory + snprintf(albums_dirk,199,"%s/albums",get_zuserdir()); // albums directory + snprintf(filecachefile,199,"%s/albums/file_cache",get_zuserdir()); // albums, file cache file 16.07 + snprintf(saved_curves_dirk,199,"%s/saved_curves",get_zuserdir()); // saved curves directory + snprintf(writetext_dirk,199,"%s/write_text",get_zuserdir()); // write_text directory + snprintf(favorites_dirk,199,"%s/favorites",get_zuserdir()); // favorites directory + snprintf(mashup_dirk,199,"%s/mashup",get_zuserdir()); // mashup projects directory + locale_filespec("data","quickstart.html",quickstart_file); // quickstart html file + snprintf(slideshow_dirk,199,"%s/slideshows",get_zuserdir()); // slide show directory + snprintf(slideshow_trans_dirk,199,"%s/slideshow_trans",get_zuserdir()); // slide show transitions + snprintf(pattern_dirk,199,"%s/patterns",get_zuserdir()); // pattern files directory + snprintf(retouch_combo_dirk,199,"%s/retouch_combo",get_zuserdir()); // retouch combo settings directory + snprintf(custom_kernel_dirk,199,"%s/custom_kernel",get_zuserdir()); // custom kernel files directory + snprintf(printer_color_dirk,199,"%s/printer_color",get_zuserdir()); // printer calibration directory 15.10 + snprintf(edit_scripts_dirk,199,"%s/edit_scripts",get_zuserdir()); // edit script files directory 15.10 + snprintf(searchresults_file,199,"%s/search_results",get_zuserdir()); // output of image search function + snprintf(maps_dirk,199,"/usr/share/fotoxx-maps/data"); // map files in fotoxx-maps package + snprintf(user_maps_dirk,199,"%s/user_maps",get_zuserdir()); // map files made by user 15.12 + + err = stat(index_dirk,&statb); // create missing directories + if (err) mkdir(index_dirk,0750); + err = stat(saved_areas_dirk,&statb); + if (err) mkdir(saved_areas_dirk,0750); + err = stat(albums_dirk,&statb); + if (err) mkdir(albums_dirk,0750); + err = stat(saved_curves_dirk,&statb); + if (err) mkdir(saved_curves_dirk,0750); + err = stat(writetext_dirk,&statb); + if (err) mkdir(writetext_dirk,0750); + err = stat(mashup_dirk,&statb); + if (err) mkdir(mashup_dirk,0750); + err = stat(slideshow_dirk,&statb); + if (err) mkdir(slideshow_dirk,0750); + err = stat(slideshow_trans_dirk,&statb); + if (err) mkdir(slideshow_trans_dirk,0750); + err = stat(printer_color_dirk,&statb); + if (err) mkdir(printer_color_dirk,0750); + err = stat(edit_scripts_dirk,&statb); + if (err) mkdir(edit_scripts_dirk,0750); + err = stat(maps_dirk,&statb); + if (err) mkdir(maps_dirk,0750); + err = stat(user_maps_dirk,&statb); + if (err) mkdir(user_maps_dirk,0750); + + // following are initialized in initzfunc() below: + // pattern_dirk retouch_combo_dirk custom_kernel_dirk favorites_dirk + + load_params(); // restore parameters from last session + + for (int ii = 1; ii < argc; ii++) // command line parameters + { + char *pp = argv[ii]; + + if (strmatchV(pp,"-debug","-d",0)) // -d -debug + Fdebug = 1; + else if (strmatchV(pp,"-lang","-l",0) && argc > ii+1) // -l -lang lc_RC language/region code + strncpy0(lang,argv[++ii],7); + else if (strmatchV(pp,"-clone","-c",0) && argc > ii+4) { // -c -clone clone new instance + Fclone = 1; + cloxx = atoi(argv[ii+1]); // window position and size + cloyy = atoi(argv[ii+2]); // passed from parent instance + cloww = atoi(argv[ii+3]); + clohh = atoi(argv[ii+4]); + ii += 4; + } + else if (strmatchV(pp,"-recent","-r",0)) // -r -recent recent files gallery + Frecent = 1; + else if (strmatchV(pp,"-new","-n",0)) // -n -new new added files gallery + Fnew = 1; + else if (strmatchV(pp,"-prev","-p",0)) // -p -prev open previous file + Fprev = 1; + else if (strmatchV(pp,"-blank","-b",0)) // -b -blank start with blank window + Fblank = 1; + else if (strmatch(pp,"-noindex")) // -noindex no index update 15.02 + Fnoindex = 1; + else if (strmatchV(pp,"-menu","-m",0) && argc > ii+1) // -m -menu func start with menu func + startmenu = zstrdup(argv[++ii]); + else if (strmatchV(pp,"-album","-a",0) && argc > ii+1) // -a -album start with album 16.02 + startalbum = zstrdup(argv[++ii]); + else if (strmatch(pp,"-cycledesktop") && argc > ii+2) { // -cycledesktop album seconds 15.06 + run_cycledesktop(argv[ii+1],argv[ii+2]); // run in background without GUI + gtk_main(); + return 0; + } + else initial_file = zstrdup(pp); // must be initial file or directory + } + + ZTXinit(lang); // setup locale and translations + setlocale(LC_NUMERIC,"en_US.UTF-8"); // stop comma decimal points + + build_widgets(); // build window widgets and menus + + arrowcursor = gdk_cursor_new_for_display(display,GDK_TOP_LEFT_ARROW); // cursor for selection + dragcursor = gdk_cursor_new_for_display(display,GDK_CROSSHAIR); // cursor for dragging + drawcursor = gdk_cursor_new_for_display(display,GDK_PENCIL); // cursor for drawing lines + blankcursor = gdk_cursor_new_for_display(display,GDK_BLANK_CURSOR); // invisible cursor + + if (! zfuncs::screen || ! zfuncs::mouse) { + zpopup_message(0,"GTK/GDK failure to find hardware"); // 15.09 + m_quit(0,0); + exit(1); + } + + m_viewmode(0,"F"); // set F mode initially + + if (Fclone) { // clone: open new window + gtk_window_move(MWIN,cloxx+10,cloyy+10); // slightly offset from old window + gtk_window_resize(MWIN,cloww,clohh); + } + else { + gtk_window_move(MWIN,mwgeom[0],mwgeom[1]); // main window geometry + gtk_window_resize(MWIN,mwgeom[2],mwgeom[3]); // defaults or last session params + } + + g_timeout_add(100,initzfunc,0); // initz. call from gtk_main() + gtk_main(); // start processing window events + return 0; +} + + +/********************************************************************************/ + +// Initial function called from gtk_main() at startup. +// This function MUST return 0. + +int initzfunc(void *) +{ + int Fexiftool = 0, Fxdgopen = 0; + int ii, err, npid, contx; + int Fdirk = 0; + FTYPE ftype; + char *pp, *pp2; + char procfile[20], buff[200]; + char KBshortsU[200], KBshortsI[200]; + char tonefile[200], badnews[200]; + char metalistfile[200], albumfile[200]; + double freememory, cachememory; + float exifver = 0; + FILE *fid; + STATB statb; + + printz(Frelease "\n"); // print Fotoxx release version + + int v1 = gtk_get_major_version(); // get GTK release version + int v2 = gtk_get_minor_version(); + int v3 = gtk_get_micro_version(); + printz("GTK version: %d.%02d.%02d \n",v1,v2,v3); + + // check that necessary programs are installed + + fid = popen("exiftool -ver","r"); // check exiftool version + if (fid) { + ii = fscanf(fid,"%s",buff); + pclose(fid); // bugfix: accept period or comma + convSF(buff,exifver); + printz("exiftool version: %.2f \n",exifver); + if (exifver >= 8.60) Fexiftool = 1; + } + + err = shell_quiet("which xdg-open"); // check for xdg-open + if (! err) Fxdgopen = 1; + err = shell_quiet("which rawtherapee"); // check for Raw Therapee + if (! err) Frawtherapee = 1; + err = shell_quiet("which growisofs"); // check for growisofs 16.02 + if (! err) Fgrowisofs = 1; + + err = shell_quiet("which hugin"); // check for pano tools (hugin versions) + if (! err) { + PTtools = 1; + err = shell_quiet("which hugin_executor"); // 2015 release + if (! err) PTtools = 2; + } + + if (Fexiftool + Fxdgopen < 2) { // check mandatory dependencies + strcpy(badnews,ZTX("Please install missing programs:")); + if (! Fexiftool) strcat(badnews,"\n exiftool 8.6 or later"); // refuse to start if any are missing + if (! Fxdgopen) strcat(badnews,"\n xdg-utils"); + zmessageACK(Mwin,badnews); + m_quit(0,0); + } + + if (! Frawtherapee) printz("Raw Therapee not installed \n"); + if (! Fgrowisofs) printz("growisofs not installed \n"); + if (! PTtools) printz("Panorama Tools (Hugin) not installed \n"); + + // check for first time Fotoxx install or new release install + + if (Ffirsttime) { // new fotoxx install + showz_html(quickstart_file); + Prelease = zstrdup(Frelease); + } + + if (! Ffirsttime && ! strmatch(Prelease,Frelease)) { // Fotoxx release change + zmessageACK(Mwin,"fotoxx new release %s",Frelease); + Prelease = zstrdup(Frelease); + showz_textfile("doc","changelog"); + } + + Ffirsttime = 0; // reset first time flag + + // delete fotoxx tempdir files if owner process is no longer running + + contx = 0; + while ((pp = command_output(contx,"find /tmp/fotoxx-*",0))) { + pp2 = strchr(pp,'-'); + if (! pp2) continue; + npid = atoi(pp2+1); // pid of fotoxx owner process + snprintf(procfile,20,"/proc/%d",npid); + err = stat(procfile,&statb); + if (! err) continue; // pid is active, keep + shell_quiet("rm -R -f -v %s",pp); // delete + } + + // set up temp directory /tmp/fotoxx-nnnnnn-XXXXXX + + snprintf(tempdir,100,"/tmp/fotoxx-%06d-XXXXXX",getpid()); // use PID + random chars. + pp = mkdtemp(tempdir); + if (! pp) { + zmessageACK(Mwin,"%s \n %s",tempdir,strerror(errno)); + exit(1); + } + strncpy0(tempdir,pp,100); + printz("tempdir: %s \n",tempdir); + + // file name template for undo/redo files + + snprintf(URS_filename,100,"%s/undo_nn",tempdir); // /tmp/fotoxx-nnnnnn/undo_nn + + // check free memory and suggest image size limits + + parseprocfile("/proc/meminfo","MemFree:",&freememory,0); // get amount of free memory + parseprocfile("/proc/meminfo","Cached:",&cachememory,0); + freememory = (freememory + cachememory) / 1024; // megabytes + printz("free memory: %.0f MB \n",freememory); + printz("image size limits for good performance: \n"); + printz(" view: %.0f megapixels \n",(freememory-100)/6); // F + preview, 3 bytes/pixel each + printz(" edit: %.0f megapixels \n",(freememory-100)/54); // + E0/E1/E3/ER, 12 bytes/pixel each + + // update KB shortcuts if needed + + err = locale_filespec("user","KB-shortcuts",KBshortsU); // user KB shortcuts + if (err) { // not found + locale_filespec("data","KB-shortcuts",KBshortsI); + shell_quiet("cp %s %s",KBshortsI,KBshortsU); // copy installed KB shortcuts + printz("keyboard shortcuts installed \n"); + } + KBshortcuts_load(); // load KB shortcuts from file + + // copy default data files to user directories if not already + + err = stat(pattern_dirk,&statb); // pattern files + if (err) { + printz("copy default pattern files \n"); + mkdir(pattern_dirk,0750); + shell_quiet("cp -n %s/patterns/* %s",get_zdatadir(),pattern_dirk); + } + + err = stat(retouch_combo_dirk,&statb); // retouch combo settings + if (err) { + printz("copy default retouch_combo files \n"); + mkdir(retouch_combo_dirk,0750); + shell_quiet("cp -n %s/retouch_combo/* %s",get_zdatadir(),retouch_combo_dirk); + } + + err = stat(custom_kernel_dirk,&statb); // custom convolution kernels + if (err) { + printz("copy default custom_kernel files \n"); + mkdir(custom_kernel_dirk,0750); + shell_quiet("cp -n %s/custom_kernel/* %s",get_zdatadir(),custom_kernel_dirk); + } + + err = stat(favorites_dirk,&statb); // favorites menu + if (err) { + printz("copy default favorites menu \n"); + mkdir(favorites_dirk,0750); + shell_quiet("cp -n %s/favorites/* %s",get_zdatadir(),favorites_dirk); + } + + err = stat(tags_defined_file,&statb); // tags_defined file + if (err) { + printz("create default tags_defined file \n"); + shell_quiet("cp %s/tags_defined %s",get_zdatadir(),tags_defined_file); + } + + snprintf(tonefile,200,"%s/slideshow-tone.oga",slideshow_dirk); // default slide show pause tone + err = stat(tonefile,&statb); + if (err) shell_quiet("cp %s/slideshow-tone.oga %s",get_zdatadir(),tonefile); + + snprintf(metalistfile,200,"%s/metadata_short_list",get_zuserdir()); // metadata keys short list 15.10 + err = stat(metalistfile,&statb); + if (err) shell_quiet("cp %s/metadata_short_list %s",get_zdatadir(),metalistfile); + + // miscellaneous + + screen = gtk_window_get_screen(MWIN); // get monitor pixel dimensions + screenww = gdk_screen_get_width(screen); + screenhh = gdk_screen_get_height(screen); + printz("screen width: %d height: %d \n",screenww,screenhh); + + NWT = get_nprocs(); // get SMP CPU count + if (NWT <= 0) NWT = 2; + if (NWT > max_threads) NWT = max_threads; // compile time limit + printz("using %d threads \n",NWT); + + zdialog_inputs("load"); // load saved dialog inputs + zdialog_positions("load"); // load saved dialog positions + + exif_server(0,0,0); // kill orphan exiftool process + + // create or update image index file + // cannot continue until completed OK + + index_rebuild(0); // quits if cannot complete + printz("RAW file types found: %s \n",myRAWtypes); // list RAW types found + + // set current file and gallery from command line if present + + if (topdirks[0]) curr_dirk = zstrdup(topdirks[0]); // default 1st top image directory 15.11 + else curr_dirk = zstrdup(getenv("HOME")); + + if (startalbum) { // 16.02 + snprintf(albumfile,200,"%s/albums/%s",get_zuserdir(),startalbum); + err = stat(albumfile,&statb); + if (err) { + printz("invalid album file: %s \n",albumfile); + startalbum = 0; + } + } + + if (initial_file) { // from command line + pp = realpath(initial_file,0); // prepend directory if needed + if (pp) { + zfree(initial_file); + initial_file = zstrdup(pp); + free(pp); // not zfree(), bugfix 15.05 + } + else { + printz("invalid file: %s \n",initial_file); // invalid file path + zfree(initial_file); + initial_file = 0; + } + } + + if (initial_file) { + ftype = image_file_type(initial_file); + if (ftype == FNF) { // non-existent file + printz("invalid file: %s \n",initial_file); + zfree(initial_file); + initial_file = 0; + } + else if (ftype == FDIR) { // is a directory + if (curr_dirk) zfree(curr_dirk); + curr_dirk = initial_file; + initial_file = 0; + Fdirk = 1; + } + else { + if (curr_dirk) zfree(curr_dirk); + curr_dirk = zstrdup(initial_file); // set current directory from file + pp = strrchr(curr_dirk,'/'); + if (pp) *pp = 0; + } + } + + if (startalbum) { // open initial album gallery 16.02 + navi::gallerytype = ALBUM; + gallery(albumfile,"initF"); + m_viewmode(0,"G"); + } + + else if (initial_file) // open initial image file + f_open(initial_file); + + else if (Fdirk) { // open initial directory gallery + gallery(curr_dirk,"init"); + m_viewmode(0,"G"); + gallery(0,"paint",0); + } + + else if (Fprev) { // start with previous file + if (last_curr_file && *last_curr_file == '/') // 15.07 + f_open(last_curr_file); + } + + else if (Frecent) // start with recent files gallery + m_recentfiles(0,0); + + else if (Fnew) // start with newest files gallery + m_newfiles(0,"file"); // by file mod date + + else if (Fblank) { // blank window, no gallery 15.07 + curr_file = curr_dirk = 0; + navi::galleryname = 0; + navi::gallerytype = NONE; + set_mwin_title(); + } + + // if no command line option, get startup display from user options + + else if (strmatch(startdisplay,"recent")) // start with recent files gallery + m_recentfiles(0,0); + + else if (strmatch(startdisplay,"newest")) // start with newest files gallery 15.07 + m_newfiles(0,"file"); // by file mode date + + else if (strmatch(startdisplay,"prevG")) { // start with previous gallery 15.07 + if (last_gallerytype != NONE) { + navi::gallerytype = last_gallerytype; + if (last_gallerytype == GDIR) + gallery(last_galleryname,"init"); + else gallery(last_galleryname,"initF"); + m_viewmode(0,"G"); + gallery(0,"paint",0); + } + } + + else if (strmatch(startdisplay,"prevI")) { // start with previous image file + if (last_curr_file && *last_curr_file == '/') + f_open(last_curr_file); + } + + else if (strmatch(startdisplay,"dirk")) { // start with given directory + if (startdirk && *startdirk == '/') { + if (curr_dirk) zfree(curr_dirk); + curr_dirk = zstrdup(startdirk); + gallery(curr_dirk,"init",0); + m_viewmode(0,"G"); + gallery(0,"paint",0); + } + } + + else if (strmatch(startdisplay,"file")) // start with given image file + f_open(startfile); + + if (startmenu) { // startup menu on command line + printz("start menu: %s \n",startmenu); + for (ii = 0; ii < Nmenus; ii++) { // convert menu name to menu function + if (! menutab[ii].menu) continue; // separator, null menu 15.12 + if (strmatchcase(startmenu,ZTX(menutab[ii].menu))) break; + } + if (ii < Nmenus) menutab[ii].func(0,menutab[ii].arg); // call the menu function + } + + save_params(); // save parameters now 15.07 + + g_timeout_add(20,gtimefunc,0); // start periodic function (20 ms) 16.02 + + return 0; // don't come back +} + + +/********************************************************************************/ + +// functions for main window event signals + +int delete_event() // main window closed +{ + int yn; + + printz("main window delete event \n"); + if (checkpend("mods")) return 1; // allow user bailout + if (zfuncs::zdialog_busy) { + yn = zmessageYN(Mwin,ZTX("Kill active dialog?")); // allow user bailout + if (! yn) return 1; + } + quitxx(); + return 0; +} + +int destroy_event() // main window destroyed +{ + printz("main window destroy event \n"); + quitxx(); + return 0; +} + +int state_event(GtkWidget *, GdkEvent *event) // main window state changed +{ + int state = ((GdkEventWindowState *) event)->new_window_state; // track window fullscreen status + if (state & GDK_WINDOW_STATE_FULLSCREEN) Ffullscreen = 1; + else Ffullscreen = 0; + return 0; +} + + +/********************************************************************************/ + +// Periodic function (20 milliseconds) + +int gtimefunc(void *) +{ + static int domore = 0; + + if (Fshutdown) return 0; // shutdown underway + + if (Fpaintlock && gdkwin) { // thread request to freeze 16.02 + gdk_window_freeze_updates(gdkwin); // window updates + zadd_locked(Fpaintlock,-1); + } + + if (Fpaintunlock && gdkwin) { // thread request to thaw 16.02 + gdk_window_thaw_updates(gdkwin); // window updates + zadd_locked(Fpaintunlock,-1); + } + + if (Fpaintrequest && Cdrawin) // 16.02 + gtk_widget_queue_draw(Cdrawin); + + if (zd_thread && zd_thread_event) { // send dialog event from thread + if (! CEF || CEF->thread_status < 2) { + zdialog_send_event(zd_thread,zd_thread_event); // only if thread done or not busy 16.01 + zd_thread_event = 0; + } + } + + if (--domore > 0) return 1; // do rest every 200 milliseconds 15.05 + domore = 10; + + update_Fpanel(); // update top panel information + return 1; +} + + +/********************************************************************************/ + +// update F window top panel with current status information +// called from timer function + +void update_Fpanel() +{ + static double time1 = 0, time2, cpu1 = 0, cpu2, cpuload; + char text1[300], text2[100]; + static char ptext1[300] = ""; + int ww, hh, scale, bpc; + static int ftf = 1; + double file_MB = 1.0 / MEGA * curr_file_size; + static cchar *reduced, *areaactive, *dialogopen; + static cchar *blocked, *modified; + + if (! Fpanelshow) return; // panel currently hidden 16.02 + + if (ftf) { + ftf = 0; + reduced = ZTX("(reduced)"); + areaactive = ZTX("area active"); + dialogopen = ZTX("dialog open"); + blocked = ZTX("blocked"); + modified = "mod"; + } + + if (Fslideshow) return; // 16.01 + if (FGWM == 'G') goto update_busy; + if (FGWM != 'F') return; + + *text1 = *text2 = 0; + + if (! time1) { + time1 = get_seconds(); + cpu1 = jobtime(); + } + + time2 = get_seconds(); // compute process cpu load % + if (time2 - time1 > 1.0) { // at 1 second intervals + cpu2 = jobtime(); + cpuload = 100.0 * (cpu2 - cpu1) / (time2 - time1); + time1 = time2; + cpu1 = cpu2; + } + + parseprocfile("/proc/meminfo","MemFree:",&freemem,0); // get amount of free memory + freemem /= 1024; // megabytes 15.12 + + snprintf(text1,300,"CPU %03.0f%c MB %.0f",cpuload,'%',freemem); // CPU 023% MB 2345 + + if (curr_file && Fpxb) + { + if (E3pxm) { + ww = E3pxm->ww; + hh = E3pxm->hh; + } + else { + ww = Fpxb->ww; + hh = Fpxb->hh; + } + + bpc = curr_file_bpc; + + snprintf(text2,100," %dx%dx%d",ww,hh,bpc); // 2345x1234x16 (preview) 1.56MB 45% + strncatv(text1,300,text2,0); + if (CEF && CEF->Fpreview) strncatv(text1,300," ",reduced,0); + snprintf(text2,100," %.2fM",file_MB); + strncatv(text1,300,text2,0); + scale = Mscale * 100 + 0.5; + snprintf(text2,100," %d%c",scale,'%'); + strncatv(text1,300,text2,0); + + if (URS_pos) { // edit undo/redo stack depth + snprintf(text2,100," %s: %d",ZTX("edits"),URS_pos); + strncatv(text1,300,text2,0); + } + + if (Fmetamod) strncatv(text1,300," ","metadata",0); + } + + else if (Fpxb) { // 15.03 + snprintf(text2,100," %dx%d",Fpxb->ww,Fpxb->hh); + strncatv(text1,300,text2,0); + } + + if (sa_stat == 3) strncatv(text1,300," ",areaactive,0); + if (zfuncs::zdialog_busy) strncatv(text1,300," ",dialogopen,0); + + if (Fblock) strncatv(text1,300," ",blocked,0); // "blocked" + if (CEF && CEF->Fmods) strncatv(text1,300," ",modified,0); // "mod" + if (*paneltext) strncatv(text1,300," ",paneltext,0); // application text + + if (! strmatch(text1,ptext1)) { // if text changed, update panel bar + gtk_label_set_label(GTK_LABEL(Fpanlab),text1); + gtk_widget_show_all(Fpanel); + strcpy(ptext1,text1); + } + +// Show BUSY label if Ffuncbusy or Fthreadbusy active. // overhauled 16.01 +// Show progress bar if Fbusy_goal > 0. +// added to top panel: BUSY |||||||||||..........| + +update_busy: + + static GtkWidget *busylabel = 0, *donelabel = 0; + static cchar *busytext = " BUSY"; + static char donetext[] = "|::::::::::::::::::::|"; + GtkWidget *FGpanel; + int Nbars = 0, pbcc = 34; + + if (FGWM == 'F') FGpanel = Fpanel; // 16.01 + else if (FGWM == 'G') FGpanel = Gpanel; + else return; + + if (Ffuncbusy | Fthreadbusy) { + if (! busylabel) { + busylabel = gtk_label_new(null); + gtk_label_set_markup(GTK_LABEL(busylabel),busytext); + gtk_box_pack_start(GTK_BOX(FGpanel),busylabel,0,0,5); + } + } + else { + if (busylabel) gtk_widget_destroy(busylabel); + busylabel = 0; + } + + if (Fbusy_done > 0 && Fbusy_done < Fbusy_goal) { + Nbars = 20.0 * Fbusy_done / Fbusy_goal + 0.5; // N = 0-20 + if (Nbars > 20) Nbars = 20; + memset(donetext+pbcc,':',Nbars); // [ N bars + 20-N blanks ] + memset(donetext+pbcc+Nbars,' ',20-Nbars); + if (! donelabel) { + donelabel = gtk_label_new(""); + gtk_box_pack_start(GTK_BOX(FGpanel),donelabel,0,0,0); + } + gtk_label_set_markup(GTK_LABEL(donelabel),donetext); + } + else { + if (donelabel) gtk_widget_destroy(donelabel); + donelabel = 0; + } + + gtk_widget_show_all(FGpanel); + + return; +} + + +// block image updated by created threads during painting by main thread +// block main thread window updates during changes to image data by created threads +// lock = 1: block updates lock = 0: unblock + +void paintlock(int lock) // 16.02 +{ + static int freezecount = 0; + int nn; + + if (! gdkwin) return; + + if (pthread_equal(pthread_self(),zfuncs::tid_main)) { // main thread caller + if (lock) { + gdk_window_freeze_updates(gdkwin); // freeze window updates + nn = zadd_locked(freezecount,+1); // increment freeze counter + if (nn <= 0) zappcrash("paintlock() freezecount: %d",freezecount); + } + else { + gdk_window_thaw_updates(gdkwin); // thaw window updates + nn = zadd_locked(freezecount,-1); // decrement freeze counter + if (nn < 0) zappcrash("paintlock() freezecount: %d",freezecount); + } + } + + else { // created thread caller + if (lock) { + zadd_locked(Fpaintlock,+1); // set flag for gtimefunc() + while (zadd_locked(Fpaintlock,0)) zsleep(0.01); // wait for freeze done + nn = zadd_locked(freezecount,+1); // increment freeze counter + if (nn <= 0) zappcrash("paintlock() freezecount: %d",freezecount); + } + else { + zadd_locked(Fpaintunlock,+1); // set flag for gtimefunc() + while (zadd_locked(Fpaintunlock,0)) zsleep(0.01); // wait for thaw done + nn = zadd_locked(freezecount,-1); // decrement freeze counter + if (nn < 0) zappcrash("paintlock() freezecount: %d",freezecount); + } + } + + return; +} + + +/********************************************************************************/ + +// GTK3 "draw" function for F and W mode drawing windows. +// Paint window when created, exposed, resized, or image modified (edited). +// Update window image if scale change or window size change. +// Otherwise do only the draw function (triggered from GTK). +// Draw the image section currently within the visible window. +// May NOT be called from threads. See Fpaint2() for threads. + +int Fpaint(GtkWidget *Cdrawin, cairo_t *cr) +{ + PIXBUF *pixbuf; + PXB *pxb1; + GdkRGBA rgba; + static int pdww = 0, pdhh = 0; // prior window size + float wscale, hscale; + int fww, fhh; // current image size at 1x + int mww, mhh; // scaled image size + int morgx, morgy; + int dorgx, dorgy; + int centerx, centery; + int refresh = 0; + int mousex, mousey; // mouse position after zoom + float magx, magy; // mouse drag, magnification ratios + uint8 *pixels, *pix, bgpix[3]; + int rs, px, py; + + if (Fshutdown) return 1; // shutdown underway + + if (! Cdrawin || ! gdkwin || ! Cstate || ! Cstate->fpxb) { // no image 15.10 + Fpaintrequest = 0; + return 1; + } + + Dww = gdk_window_get_width(gdkwin); // (new) drawing window size + Dhh = gdk_window_get_height(gdkwin); + if (Dww < 20 || Dhh < 20) return 1; // too small + + if (Dww != pdww || Dhh != pdhh) { // window size changed + refresh = 1; // image refresh needed + pdww = Dww; + pdhh = Dhh; + } + + if (Fpaintrequest) { // window image changed 15.09 + Fpaintrequest = 0; // window updated as of NOW 15.09 + refresh = 1; // image refresh needed + if (FGWM == 'F' && (E0pxm || E3pxm)) { // insure F-view and E0 or E3 + if (E3pxm) pxb1 = PXM_PXB_copy(E3pxm); // update fpxb from E0/E3 image + else pxb1 = PXM_PXB_copy(E0pxm); // or use already edited image + PXB_free(Cstate->fpxb); + Cstate->fpxb = pxb1; + } + } + + centerx = (Cstate->morgx + 0.5 * dww) / Cstate->mscale; // center of window, image space + centery = (Cstate->morgy + 0.5 * dhh) / Cstate->mscale; // (before window or scale change) + + fww = Cstate->fpxb->ww; // 1x image size + fhh = Cstate->fpxb->hh; + + if (Cstate->fzoom == 0) { // scale to fit window + wscale = 1.0 * Dww / fww; + hscale = 1.0 * Dhh / fhh; + if (wscale < hscale) Cstate->mscale = wscale; // use greatest ww/hh ratio + else Cstate->mscale = hscale; + if (fww <= Dww && fhh <= Dhh && ! Fblowup) Cstate->mscale = 1.0; // small image 1x unless Fblowup + zoomx = zoomy = 0; // no zoom target + } + else Cstate->mscale = Cstate->fzoom; // scale to fzoom level + + mww = fww * Cstate->mscale; // scaled image size for window + mhh = fhh * Cstate->mscale; + + dww = Dww; // image fitting inside drawing window + if (dww > mww) dww = mww; // image < window size + dhh = Dhh; + if (dhh > mhh) dhh = mhh; + + if (Cstate->mscale != Cstate->pscale) { // scale changed + Cstate->morgx = Cstate->mscale * centerx - 0.5 * dww; // change origin to keep same center + Cstate->morgy = Cstate->mscale * centery - 0.5 * dhh; // (subject to later rules) + Cstate->pscale = Cstate->mscale; // remember scale + refresh = 1; // image refresh needed + } + + if (! Cstate->mpxb) refresh++; // need to make mpxb + + if (refresh) { // image refresh needed + if (Cstate->mpxb) PXB_free(Cstate->mpxb); + if (Cstate->mscale == 1) Cstate->mpxb = PXB_copy(Cstate->fpxb); // fast 1x image + else Cstate->mpxb = PXB_rescale(Cstate->fpxb,mww,mhh); // rescaled image + } + + if ((Mxdrag || Mydrag)) { // pan/scroll via mouse drag + zoomx = zoomy = 0; // no zoom target + magx = 1.0 * (mww - dww) / dww; + magy = 1.0 * (mhh - dhh) / dhh; // needed magnification of mouse movement + if (magx < 1) magx = 1; // retain a minimum speed + if (magy < 1) magy = 1; + + if (Fdragopt == 1) { + Cstate->morgx -= round(Mwdragx); // same direction + Cstate->morgy -= round(Mwdragy); + } + if (Fdragopt == 2) { + Cstate->morgx += round(Mwdragx); // opposite direction + Cstate->morgy += round(Mwdragy); + } + if (Fdragopt == 3) { + Cstate->morgx -= round(Mwdragx * magx); // same direction, magnified + Cstate->morgy -= round(Mwdragy * magy); + } + if (Fdragopt == 4) { + Cstate->morgx += round(Mwdragx * magx); // opposite direction, magnified + Cstate->morgy += round(Mwdragy * magy); + } + } + + if (dww < Dww) Cstate->dorgx = 0.5 * (Dww - dww); // if scaled image < window, + else Cstate->dorgx = 0; // center image in window + if (dhh < Dhh) Cstate->dorgy = 0.5 * (Dhh - dhh); + else Cstate->dorgy = 0; + + if (Fshiftright && dww < Dww-1) Cstate->dorgx = Dww-1 - dww; // shift image to right margin 16.01 + + if (zoomx || zoomy) { // requested zoom center + Cstate->morgx = Cstate->mscale * zoomx - 0.5 * dww; // corresp. window position within image + Cstate->morgy = Cstate->mscale * zoomy - 0.5 * dhh; + } + + if (Cstate->morgx < 0) Cstate->morgx = 0; // maximize image within window + if (Cstate->morgy < 0) Cstate->morgy = 0; // (no unused margins) + if (Cstate->morgx + dww > mww) Cstate->morgx = mww - dww; + if (Cstate->morgy + dhh > mhh) Cstate->morgy = mhh - dhh; + + if (zoomx || zoomy) { // zoom target + mousex = zoomx * Cstate->mscale - Cstate->morgx + Cstate->dorgx; + mousey = zoomy * Cstate->mscale - Cstate->morgy + Cstate->dorgy; // mouse pointer follows target + move_pointer(Cdrawin,mousex,mousey); + zoomx = zoomy = 0; // reset zoom target + } + + if (zddarkbrite) darkbrite_paint(); // update dark/bright pixels + + rgba.red = 0.00392 * BGcolor[0]; // window background color 16.07 + rgba.green = 0.00392 * BGcolor[1]; // 0 - 255 --> 0.0 - 1.0 + rgba.blue = 0.00392 * BGcolor[2]; + rgba.alpha = 1.0; + gdk_cairo_set_source_rgba(cr,&rgba); + cairo_paint(cr); + + morgx = Cstate->morgx; // window position in (larger) image + morgy = Cstate->morgy; + dorgx = Cstate->dorgx; + dorgy = Cstate->dorgy; + + if (refresh) { // renew background image 16.01 + if (BGpixbuf) g_object_unref(BGpixbuf); + BGpixbuf = gdk_pixbuf_new(GDKRGB,0,8,dww,dhh); + pixels = gdk_pixbuf_get_pixels(BGpixbuf); + rs = gdk_pixbuf_get_rowstride(BGpixbuf); + + bgpix[0] = BGcolor[0]; // use background color 16.07 + bgpix[1] = BGcolor[1]; + bgpix[2] = BGcolor[2]; + + for (py = 0; py < dhh; py++) + for (px = 0; px < dww; px++) { + pix = pixels + py * rs + px * 3; + if (py % 10 < 2 && px % 10 < 2) // with periodic black dots + memset(pix,0,3); + else memcpy(pix,bgpix,3); + } + } + + gdk_cairo_set_source_pixbuf(cr,BGpixbuf,dorgx,dorgy); // paint background image 16.01 + cairo_paint(cr); + + pixbuf = Cstate->mpxb->pixbuf; // get image section within window + pixbuf = gdk_pixbuf_new_subpixbuf(pixbuf,morgx,morgy,dww,dhh); + gdk_cairo_set_source_pixbuf(cr,pixbuf,dorgx,dorgy); // paint section + cairo_paint(cr); + g_object_unref(pixbuf); + + mwcr = cr; // cairo context for draw funcs below + cairo_set_line_width(mwcr,1); + + if (Cstate == &Fstate) { // view mode is image + if (Ntoplines) draw_toplines(1); // draw line overlays + if (gridsettings[currgrid][GON]) draw_gridlines(); // draw grid lines + if (Ntoptext) draw_toptext(); // draw text strings + if (Ntopcircles) draw_topcircles(); // draw circles + if (Fshowarea) sa_show(1); // draw select area outline + if (refresh && zdbrdist) m_show_brdist(0,0); // update brightness dist. moved 15.12.1 + } + + if (Cstate == &Wstate) // view mode is world maps + geomap_paint_dots(); // 15.01 + + mwcr = 0; // cairo context invalid + return 1; +} + + +/********************************************************************************/ + +// Repaint modified image synchrounously. +// May NOT be called from threads. + +void Fpaintnow() +{ + if (! Cdrawin || ! gdkwin || ! Cstate || ! Cstate->fpxb) { // no image 15.10 + printf("Fpaintnow(), no image \n"); + return; + } + + Fpaintrequest = 1; // request repaint of changed image 15.09 + gtk_widget_queue_draw(Cdrawin); + while (Fpaintrequest) { + zsleep(0.001); + zmainloop(); + } + + return; +} + + +// Cause (modified) output image to get repainted soon. +// Fpaint() will be called by gtimefunc() next timer cycle. +// MAY be called from threads. + +void Fpaint2() +{ + Fpaintrequest = 1; // request repaint of changed image 15.09 + return; +} + + +// Update a section of Fpxb and Mpxb from an updated section of E3pxm, +// then update the corresponding section of the drawing window. +// This avoids a full image refresh, E3pxm > fpxb > mpxb > drawing window. +// px3, py3, ww3, hh3: modified section within E3pxm to be propagated. +// May NOT be called from threads. + +void Fpaint3(int px3, int py3, int ww3, int hh3) +{ + PXM_PXB_update(E3pxm,Fpxb,px3,py3,ww3,hh3); // E3pxm > Fpxb, both 1x scale + PXB_PXB_update(Fpxb,Mpxb,px3,py3,ww3,hh3); // Fpxb > Mpxb, scaled up or down + Fpaint4(px3,py3,ww3,hh3); // update drawing window from Mpxb + return; +} + + +// Do the same using E0pxm instead of E3pxm + +void Fpaint0(int px3, int py3, int ww3, int hh3) // 16.07 +{ + PXM_PXB_update(E0pxm,Fpxb,px3,py3,ww3,hh3); + PXB_PXB_update(Fpxb,Mpxb,px3,py3,ww3,hh3); + Fpaint4(px3,py3,ww3,hh3); + return; +} + + +// Repaint a section of the Mpxb image in the visible window. +// px3, py3, ww3, hh3: area to be repainted (in 1x image space). +// May NOT be called from threads. +// Writes directly on the window (cairo pixbuf paint). + +void Fpaint4(int px3, int py3, int ww3, int hh3) +{ + PIXBUF *pixbuf, *bgpixbuf; + int px1, py1, px2, py2; + int ww1, hh1, ww2, hh2; + int crflag = 0; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + px2 = Mscale * px3 - 2; // 1x image space to mpxb space + py2 = Mscale * py3 - 2; // (expanded) + ww2 = Mscale * ww3 + 2 / Mscale + 4; + hh2 = Mscale * hh3 + 2 / Mscale + 4; + + if (px2 + ww2 > Mpxb->ww) ww2 = Mpxb->ww - px2; // avoid overshoot + if (py2 + hh2 > Mpxb->hh) hh2 = Mpxb->hh - py2; + + if (px2 < Morgx) { // reduce to currently visible window + ww2 = ww2 - (Morgx - px2); + px2 = Morgx; + } + + if (py2 < Morgy) { + hh2 = hh2 - (Morgy - py2); + py2 = Morgy; + } + + if (ww2 <= 0 || hh2 <= 0) return; // completely outside visible window + + paintlock(1); // 16.03 + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + crflag = 1; + } + + pixbuf = gdk_pixbuf_new_subpixbuf(Mpxb->pixbuf,px2,py2,ww2,hh2); // Mpxb area to paint 15.08 + + px1 = px2 - Morgx; // corresp. position in background image + py1 = py2 - Morgy; + + px2 = px2 - Morgx + Dorgx; // corresp. position in drawing window + py2 = py2 - Morgy + Dorgy; + + if (Mpxb->nc > 3) { // alpha channel present 16.01 + ww1 = ww2; // draw background image to area + hh1 = hh2; + if (px1 + ww1 > dww) ww1 = dww - px1; + if (py1 + hh1 > dhh) hh1 = dhh - py1; + bgpixbuf = gdk_pixbuf_new_subpixbuf(BGpixbuf,px1,py1,ww1,hh1); + gdk_cairo_set_source_pixbuf(mwcr,bgpixbuf,px2,py2); + cairo_paint(mwcr); + g_object_unref(bgpixbuf); + } + + gdk_cairo_set_source_pixbuf(mwcr,pixbuf,px2,py2); // draw area to window + cairo_paint(mwcr); + + g_object_unref(pixbuf); + + if (Fshowarea) { + px3 = (px2 - Dorgx + Morgx) / Mscale; // back to image scale, expanded + py3 = (py2 - Dorgy + Morgy) / Mscale; + ww3 = ww2 / Mscale + 2; + hh3 = hh2 / Mscale + 2; + sa_show_rect(px3,py3,ww3,hh3); // refresh select area outline + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + paintlock(0); // 16.03 + return; +} + + +/********************************************************************************/ + +// F/W view window mouse event function - capture buttons and drag movements + +void mouse_event(GtkWidget *widget, GdkEventButton *event, void *) +{ + void mouse_convert(int xpos1, int ypos1, int &xpos2, int &ypos2); + + int button, time, type, scroll; + static int bdtime = 0, butime = 0; + static int mdragx0, mdragy0; + static int busy = 0; + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + type = event->type; + button = event->button; // button, 1/2/3 = left/center/right + time = event->time; + Mwxposn = event->x; // mouse position in window + Mwyposn = event->y; + mouse_convert(Mwxposn,Mwyposn,Mxposn,Myposn); // convert to image space + + scroll = ((GdkEventScroll *) event)->direction; // scroll wheel event + + KBcontrolkey = KBshiftkey = KBaltkey = 0; + if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; + if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; + if (event->state & GDK_MOD1_MASK) KBaltkey = 1; + + if (type == GDK_SCROLL) { // scroll wheel = zoom + zoomx = Mxposn; // zoom center = mouse position + zoomy = Myposn; + if (scroll == GDK_SCROLL_UP) m_zoom(0,"in"); + if (scroll == GDK_SCROLL_DOWN) m_zoom(0,"out"); + return; + } + + if (type == GDK_BUTTON_PRESS) { // button down + Mdrag++; // possible drag start + bdtime = time; // time of button down + Mbutton = button; + mdragx0 = Mwxposn; // window position at button down + mdragy0 = Mwyposn; + Mxdown = Mxposn; // image position at button down + Mydown = Myposn; + Mxdrag = Mydrag = 0; + } + + if (type == GDK_MOTION_NOTIFY && Mdrag) { // drag underway + Mwdragx = Mwxposn - mdragx0; // drag increment, window space + Mwdragy = Mwyposn - mdragy0; + mdragx0 = Mwxposn; // new drag origin = current position + mdragy0 = Mwyposn; + Mxdrag = Mxposn; // drag position, image space + Mydrag = Myposn; + } + + if (type == GDK_BUTTON_RELEASE) { // button up + Mxclick = Myclick = 0; // reset click status + butime = time; // time of button up + if (butime - bdtime < 400) { // less than 0.4 secs down + if (Mxposn == Mxdown && Myposn == Mydown) { // and not moving + if (Mbutton == 1) LMclick++; // left mouse click + if (Mbutton == 3) RMclick++; // right mouse click + Mxclick = Mxdown; // click = button down position + Myclick = Mydown; + if (button == 2) { // center button click + zoomx = Mxposn; // re-center at mouse (Doriano) + zoomy = Myposn; + gtk_widget_queue_draw(Cdrawin); + } + } + } + Mxdown = Mydown = Mxdrag = Mydrag = Mdrag = Mbutton = 0; // forget buttons and drag + } + + Fmousemain = 1; // mouse acts on main window + if (Mcapture) Fmousemain = 0; // curr. function handles mouse + if (mouseCBfunc) Fmousemain = 0; // mouse owned by callback function + if (KBcontrolkey) Fmousemain = 1; // mouse acts on main window + + if (mouseCBfunc && ! Fmousemain) { // pass to callback function + if (! busy) { + busy = 1; // stop re-entrance 15.12 + (* mouseCBfunc)(); + busy = 0; + Fmousemain = 1; // click/drag params are processed here + } // unless reset by callback func. + } + + if (FGWM == 'W') geomap_mousefunc(); // geomap mouse function + + if (! Fmousemain) return; // curr. function handles mouse + + if (LMclick) { // left click = zoom request + LMclick = 0; + zoomx = Mxclick; // zoom center = mouse + zoomy = Myclick; + m_zoom(0,"in"); + } + + if (RMclick) { // right click + RMclick = 0; + if (Cstate->fzoom) { // if zoomed image, reset to fit window + zoomx = zoomy = 0; + m_zoom(0,"fit"); + } + else if (curr_file && FGWM == 'F') + image_Rclick_popup(); // image right-click popup menu + } + + if (Mxdrag || Mydrag) // drag = scroll by mouse + gtk_widget_queue_draw(Cdrawin); + + return; +} + + +// convert mouse position from window space to image space + +void mouse_convert(int xpos1, int ypos1, int &xpos2, int &ypos2) +{ + xpos2 = (xpos1 - Cstate->dorgx + Cstate->morgx) / Cstate->mscale + 0.5; + ypos2 = (ypos1 - Cstate->dorgy + Cstate->morgy) / Cstate->mscale + 0.5; + + if (xpos2 < 0) xpos2 = 0; // if outside image put at edge + if (ypos2 < 0) ypos2 = 0; + + if (E3pxm) { + if (xpos2 >= E3pxm->ww) xpos2 = E3pxm->ww-1; + if (ypos2 >= E3pxm->hh) ypos2 = E3pxm->hh-1; + } + else { + if (xpos2 >= Cstate->fpxb->ww) xpos2 = Cstate->fpxb->ww-1; + if (ypos2 >= Cstate->fpxb->hh) ypos2 = Cstate->fpxb->hh-1; + } + + return; +} + + +/********************************************************************************/ + +// set new image zoom level or magnification +// zoom: "in" zoom-in in steps +// "out" zoom-out in steps +// "fit" zoom to fit window +// "100" toggle 100% and fit window + +void m_zoom(GtkWidget *, cchar *zoom) +{ + int fww, fhh; + float scalew, scaleh, fitscale, fzoom2, zratio = 1; + float Rzoom, pixels; + + zthreadcrash(); + + if (! Cstate || ! Cstate->fpxb) return; + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + Rzoom = Cstate->fzoom; // current zoom ratio + + if (E3pxm) { + fww = E3pxm->ww; // 1x image size + fhh = E3pxm->hh; + } + else { + fww = Cstate->fpxb->ww; + fhh = Cstate->fpxb->hh; + } + + if (fww > Dww || fhh > Dhh) { // get window fit scale + scalew = 1.0 * Dww / fww; + scaleh = 1.0 * Dhh / fhh; + if (scalew < scaleh) fitscale = scalew; + else fitscale = scaleh; // window/image, < 1.0 + } + else fitscale = 1.0; // if image < window use 100% + + if (strmatch(zoom,"Zoom+")) zoom = "in"; // menu button: + = zoom in + if (strmatch(zoom,"Zoom-")) zoom = "fit"; // - = fit window + + if (strmatch(zoom,"fit")) Cstate->fzoom = 0; // zoom to fit window + + if (strmatch(zoom,"100")) { + if (Cstate->fzoom != 0) Cstate->fzoom = 0; // toggle 100% and fit window + else Cstate->fzoom = 1; + } + + if (strstr("in out",zoom)) // caller: zoom in or out + { + if (! Cstate->fzoom) Cstate->fzoom = fitscale; // current zoom scale + for (fzoom2 = 0.125; fzoom2 < 4.0; fzoom2 *= zoomratio) // find nearest natural ratio + if (Cstate->fzoom < fzoom2 * sqrt(zoomratio)) break; + if (strmatch(zoom,"in")) zratio = zoomratio; // zoom in, make image larger + if (strmatch(zoom,"out")) zratio = 1.0 / zoomratio; // zoom out, make image smaller + Cstate->fzoom = fzoom2 * zratio; + + if (Cstate->fzoom > 0.124 && Cstate->fzoom < 0.126) // hit these ratios exactly + Cstate->fzoom = 0.125; + if (Cstate->fzoom > 0.24 && Cstate->fzoom < 0.26) + Cstate->fzoom = 0.25; + if (Cstate->fzoom > 0.49 && Cstate->fzoom < 0.51) + Cstate->fzoom = 0.50; + if (Cstate->fzoom > 0.99 && Cstate->fzoom < 1.01) + Cstate->fzoom = 1.00; + if (Cstate->fzoom > 1.99 && Cstate->fzoom < 2.01) + Cstate->fzoom = 2.00; + if (Cstate->fzoom > 3.99) Cstate->fzoom = 4.0; // max. allowed zoom + if (Cstate->fzoom < fitscale) Cstate->fzoom = 0; // image < window + } + + if (FGWM == 'W') { // optimize for geomaps + if (strmatch(zoom,"in") && Cstate->fzoom < 1.0) + Cstate->fzoom = 1.0; // zoom to 100% directly + if (strmatch(zoom,"out")) Cstate->fzoom = 0.0; // zoom out = fit window directly + if (Cstate->fzoom == 1.0 && Rzoom == 1.0) { + gtk_widget_queue_draw(Cdrawin); // if already, move mouse pointer only + return; + } + } + + if (Cstate->fzoom > 1.0) { // limit image in window to 1 gigabyte + pixels = Cstate->fzoom * fww * Cstate->fzoom * fhh; // (333 megapixels x 3 bytes/pixel) + if (pixels > 333 * MEGA) { // if size is at maximum, + Cstate->fzoom = Rzoom; // move mouse pointer only + gtk_widget_queue_draw(Cdrawin); + return; + } + } + + if (! Cstate->fzoom) zoomx = zoomy = 0; // no requested zoom center + Fpaint2(); // refresh window + return; +} + + +/********************************************************************************/ + +// function for dialogs to call to send KB keys for processing by main app + +void KBstate(GdkEventKey *event, int state) +{ + if (state) KBpress(0,event,0); + else KBrelease(0,event,0); + return; +} + + +// keyboard event functions +// GDK key symbols: /usr/include/gtk-3.0/gdk/gdkkeysyms.h + +namespace trimrotate { void KBfunc(int key); } // keyboard functions called from here +namespace perspective { void KBfunc(int key); } +namespace mashup { void KBfunc(int key); } + +int KBpress(GtkWidget *win, GdkEventKey *event, void *) // prevent propagation of key-press +{ // events to menu buttons + KBkey = event->keyval; + + KBcontrolkey = KBshiftkey = KBaltkey = 0; + if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; + if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; + if (event->state & GDK_MOD1_MASK) KBaltkey = 1; + + return 1; +} + +int KBrelease(GtkWidget *win, GdkEventKey *event, void *) // some key was released +{ + int ii, jj, cc; + char matchkey[20]; + + KBcontrolkey = KBshiftkey = KBaltkey = 0; + if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; + if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; + if (event->state & GDK_MOD1_MASK) KBaltkey = 1; + + KBkey = event->keyval; + + if (! KBcontrolkey && ! KBshiftkey && ! KBaltkey) { // f/g/w/m keys set corresp. window mode + if (KBkey == GDK_KEY_f) { m_viewmode(0,"F"); goto KBend; } // Ctrl/Alt + f/g/w/m usable for shortcuts + if (KBkey == GDK_KEY_g) { m_viewmode(0,"G"); goto KBend; } + if (KBkey == GDK_KEY_w) { m_viewmode(0,"W"); goto KBend; } + if (KBkey == GDK_KEY_m) { m_viewmode(0,"M"); goto KBend; } // OSM 16.05 + } + + if (KBcapture) return 1; // let current function handle it + + if (KBcontrolkey + KBshiftkey + KBaltkey) goto KBcustom; // combinations are always custom 15.06 + +// reserved shortcuts (not user configurable) + + if (KBkey == GDK_KEY_F1) { // F1 >> user guide + showz_userguide(F1_help_topic); // show topic if there, or page 1 + goto KBend; + } + + if (KBkey == GDK_KEY_F10) { // F10: fullscreen toggle with menu 16.02 + if (Fslideshow) { + ss_escape = 1; // quit slideshow if active + goto KBend; + } + if (! Ffullscreen) win_fullscreen(0); // toggle full-screen mode and back + else win_unfullscreen(); + goto KBend; + } + + if (KBkey == GDK_KEY_F11) { // F11: fullscreen toggle no menu 16.02 + if (Fslideshow) { + ss_escape = 1; // quit slideshow if active + goto KBend; + } + if (! Ffullscreen) win_fullscreen(1); // toggle full-screen mode and back + else win_unfullscreen(); + goto KBend; + } + + if (KBkey == GDK_KEY_Escape) { // ESC key + if (Fslideshow) ss_escape = 1; // quit slideshow if active 16.01 + else if (Ffullscreen) win_unfullscreen(); // exit full screen mode + goto KBend; + } + + if (KBkey == GDK_KEY_s) // 's' shortcut for Sync Gallery 15.02 + navi::menufuncx(0,"Sync Gallery"); // 15.12 + + if (FGWM == 'G') { // window mode = G + navi::KBrelease(win,event,0); // pass to gallery KB function + goto KBend; // (keys below not for gallery) + } + + if (KBkey == GDK_KEY_z) { // 'z' key + if (! KBcontrolkey) m_zoom(0,"100"); // if no CTRL, toggle zoom 1x + goto KBend; + } + + if (FGWM == 'W') goto KBend; // window mode = W, no other KB events + + if (KBkey == GDK_KEY_plus) m_zoom(0,"in"); // + key >> zoom in + if (KBkey == GDK_KEY_minus) m_zoom(0,"fit"); // - key >> fit to window + if (KBkey == GDK_KEY_equal) m_zoom(0,"in"); // = key: same as + + if (KBkey == GDK_KEY_KP_Add) m_zoom(0,"in"); // keypad + + if (KBkey == GDK_KEY_KP_Subtract) m_zoom(0,"fit"); // keypad - + + if (Fslideshow) { // slide show mode + if (KBkey == GDK_KEY_Left) ss_Larrow = 1; // arrow keys = prev/next image + if (KBkey == GDK_KEY_Right) ss_Rarrow = 1; + if (KBkey == GDK_KEY_space) ss_spacebar = 1; // spacebar = pause/resume + if (KBkey == GDK_KEY_b) ss_Bkey = 1; // B = blank screen + pause + if (KBkey == GDK_KEY_x) ss_Xkey = 1; // X = shortcut for Magnify + if (KBkey == GDK_KEY_n) ss_Nkey = 1; // N = do transition + next image 16.01 + goto KBend; + } + + if (Fmashup) { // mashup active, pass KB key + mashup::KBfunc(KBkey); + goto KBend; + } + + if (CEF && CEF->menufunc == m_trimrotate) { // trim_rotate active, pass KB key + trimrotate::KBfunc(KBkey); + goto KBend; + } + + if (CEF && CEF->menufunc == m_perspective) { // perspective active, pass KB key + perspective::KBfunc(KBkey); + goto KBend; + } + + if (KBkey == GDK_KEY_Left) m_prev(0,0); // arrow keys = prev/next image + if (KBkey == GDK_KEY_Right) m_next(0,0); + if (KBkey == GDK_KEY_Page_Up) m_prev(0,0); // page up/down = prev/next image + if (KBkey == GDK_KEY_Page_Down) m_next(0,0); + if (KBkey == GDK_KEY_Delete) m_delete_trash(0,0); // delete >> trash 16.06 + if (KBkey == GDK_KEY_x) m_magnify(0,0); // 'x' Magnify 16.05 + +// look for custom shortcut keys in shortcut table + +KBcustom: + + if (KBkey >= GDK_KEY_F1 && KBkey <= GDK_KEY_F9) { // input key is F1 to F9 + ii = KBkey - GDK_KEY_F1; + strcpy(matchkey,"F1"); + matchkey[1] += ii; + } + + else if (KBkey > 255) goto KBend; // not a single letter or digit + + else { + *matchkey = 0; // build input key combination + if (KBcontrolkey) strcat(matchkey,"Ctrl+"); // [Ctrl+] [Alt+] [Shift+] key + if (KBaltkey) strcat(matchkey,"Alt+"); + if (KBshiftkey) strcat(matchkey,"Shift+"); + cc = strlen(matchkey); + matchkey[cc] = KBkey; + matchkey[cc+1] = 0; + } + + for (ii = 0; ii < Nshortcuts; ii++) // convert key combination to menu name + if (strmatchcase(matchkey,shortcutkey[ii])) break; + + if (ii < Nshortcuts) { // convert menu name to menu function + for (jj = 0; jj < Nmenus; jj++) { + if (! menutab[jj].menu) continue; // ignore separator + if (strmatchcase(shortcutmenu[ii],ZTX(menutab[jj].menu))) break; + } + + if (jj < Nmenus) menutab[jj].func(0,menutab[jj].arg); // call the menu function + } + +KBend: + KBkey = 0; + return 1; +} + + +/********************************************************************************/ + +// set the main window to fullscreen status +// (with no menu or panel) + +void win_fullscreen(int hidemenu) +{ + zthreadcrash(); + + if (FGWM == 'F' && hidemenu) { // if F window, hide menu and panel + gtk_widget_hide(Fmenu); + gtk_widget_hide(Fpanel); + Fpanelshow = 0; // 16.02 + } + + gtk_window_fullscreen(MWIN); + while (! Ffullscreen) zmainloop(); // 15.09 + return; +} + + +// restore window to former size and restore menu etc. + +void win_unfullscreen() +{ + zthreadcrash(); + + gtk_window_unfullscreen(MWIN); // restore old window size + gtk_widget_show(Fmenu); + gtk_widget_show(Fpanel); + Fpanelshow = 1; // 16.02 + while (Ffullscreen) zmainloop(); // 16.01 + return; +} + + +/********************************************************************************/ + +// update information in main window title bar + +namespace meta_names { + extern char meta_pdate[16]; // image (photo) date, yyyymmddhhmmss +} + + +void set_mwin_title() +{ + GTYPE gtype; + int cc, fposn, Nfiles, Nimages; + char *pp, titlebar[250]; + char pdate[12], ptime[12], pdatetime[20]; + char fname[100], gname[100], fdirk[100]; + + zthreadcrash(); + + if (! curr_file || *curr_file != '/') { + gtk_window_set_title(MWIN,Frelease); + return; + } + + pp = (char *) strrchr(curr_file,'/'); + strncpy0(fname,pp+1,99); // file name + cc = pp - curr_file; + if (cc < 99) strncpy0(fdirk,curr_file,cc+2); // get dirk/path/ if short enough + else { + strncpy(fdirk,curr_file,96); // or use /dirk/path... + strcpy(fdirk+95,"..."); + } + + Nfiles = navi::Nfiles; // total gallery files (incl. directories) + Nimages = navi::Nimages; // total image files + + fposn = gallery_position(curr_file,curr_file_posn); // curr. file in curr. gallery? + if (fposn >= 0) { + curr_file_posn = fposn; + fposn = fposn + 1 - Nfiles + Nimages; // position among images, 1-based + } + + if (*meta_names::meta_pdate) { + metadate_pdate(meta_names::meta_pdate,pdate,ptime); // get formatted date and time 15.03 + strncpy0(pdatetime,pdate,11); // yyyy-mm-dd hh:mm + strncpy0(pdatetime+11,ptime,6); + pdatetime[10] = ' '; + } + else strcpy(pdatetime,"(undated)"); + + gtype = navi::gallerytype; + + if (gtype == GDIR) // gallery name = directory + snprintf(titlebar,250," %d/%d %s %s %s", // 16.04 + fposn,Nimages,fdirk,fname,pdatetime); + else { + if (gtype == SEARCH || gtype == METADATA) + strcpy(gname,"SEARCH RESULTS"); + else if (gtype == ALBUM) { + pp = strrchr(navi::galleryname,'/'); + if (! pp) pp = navi::galleryname; + else pp++; + strcpy(gname,"ALBUM: "); + strncpy0(gname+7,pp,87); + } + else if (gtype == RECENT) + strcpy(gname,"RECENT FILES"); + else if (gtype == NEWEST) + strcpy(gname,"NEWEST FILES"); + else + strcpy(gname,"NO GALLERY"); + + if (fposn > 0) + snprintf(titlebar,250,"%s %d/%d %s %s %s", // window title bar 16.04 + gname,fposn,Nimages,fdirk,fname,pdatetime); + else + snprintf(titlebar,250,"%s (*)/%d %s %s %s", // image not in gallery 16.04 + gname,Nimages,fdirk,fname,pdatetime); + } + + gtk_window_set_title(MWIN,titlebar); + return; +} + + +/********************************************************************************/ + +// draw a pixel using foreground color. +// px, py are image space. + +void draw_pixel(int px, int py) +{ + int qx, qy, crflag = 0; + static int pqx, pqy; + static uint8 pixel[12]; // 2x2 block of pixels + static PIXBUF *pixbuf1 = 0, *pixbuf4 = 0; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + if (! pixbuf1) { + pixbuf1 = gdk_pixbuf_new_from_data(pixel,GDKRGB,0,8,1,1,3,0,0); // 1x1 pixels + pixbuf4 = gdk_pixbuf_new_from_data(pixel,GDKRGB,0,8,2,2,6,0,0); // 2x2 pixels + } + + if (Cstate->fpxb->nc > 3) // omit transparent pixels 15.09 + if (PXBpix(Cstate->fpxb,px,py)[3] < 128) return; + + qx = Mscale * px - Morgx; // image to window space + qy = Mscale * py - Morgy; + + if (qx == pqx && qy == pqy) return; // avoid redundant points + + pqx = qx; + pqy = qy; + + if (qx < 0 || qx > dww-2) return; // keep off image edges + if (qy < 0 || qy > dhh-2) return; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + crflag = 1; + } + + if (Mscale <= 1) { // write 1x1 pixels 15.08 + pixel[0] = LINE_COLOR[0]; + pixel[1] = LINE_COLOR[1]; + pixel[2] = LINE_COLOR[2]; + + gdk_cairo_set_source_pixbuf(mwcr,pixbuf1,qx+Dorgx,qy+Dorgy); + cairo_paint(mwcr); + } + + else { // write 2x2 fat pixels + pixel[0] = pixel[3] = pixel[6] = pixel[9] = LINE_COLOR[0]; + pixel[1] = pixel[4] = pixel[7] = pixel[10] = LINE_COLOR[1]; + pixel[2] = pixel[5] = pixel[8] = pixel[11] = LINE_COLOR[2]; + + gdk_cairo_set_source_pixbuf(mwcr,pixbuf4,qx+Dorgx,qy+Dorgy); + cairo_paint(mwcr); + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +// erase one drawn pixel - restore from window image Mpxb. +// px, py are image space. + +void erase_pixel(int px, int py) +{ + GdkPixbuf *pixbuf; + static int pqx, pqy; + int qx, qy, crflag = 0; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + qx = Mscale * px; // image to window space + qy = Mscale * py; + + if (qx == pqx && qy == pqy) return; // avoid same target pixel + + pqx = qx; + pqy = qy; + + if (qx < 0 || qx > Mpxb->ww-2) return; // pixel outside scaled image + if (qy < 0 || qy > Mpxb->hh-2) return; + + if (qx < Morgx || qx > Morgx + dww-2) return; // pixel outside drawing window + if (qy < Morgy || qy > Morgy + dhh-2) return; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + crflag = 1; + } + + pixbuf = gdk_pixbuf_new_subpixbuf(Mpxb->pixbuf,qx,qy,2,2); // 2x2 Mpxb area to copy 15.08 + qx = qx - Morgx + Dorgx; // target pixel in window + qy = qy - Morgy + Dorgy; + gdk_cairo_set_source_pixbuf(mwcr,pixbuf,qx,qy); + cairo_paint(mwcr); + + g_object_unref(pixbuf); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +/********************************************************************************/ + +// draw line. +// coordinates are image space. +// type = 1/2 for solid/dotted line + +void draw_line(int x1, int y1, int x2, int y2, int type) +{ + float px1, py1, px2, py2; + double dashes[2] = { 4, 4 }; + int crflag = 0; + double R, G, B; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + px1 = Mscale * x1 - Morgx + Dorgx; // image to window space + py1 = Mscale * y1 - Morgy + Dorgy; + px2 = Mscale * x2 - Morgx + Dorgx; + py2 = Mscale * y2 - Morgy + Dorgy; + + if (px1 > Dww-2) px1 = Dww-2; // play nice + if (py1 > Dhh-2) py1 = Dhh-2; + if (px2 > Dww-2) px2 = Dww-2; + if (py2 > Dhh-2) py2 = Dhh-2; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + R = LINE_COLOR[0] / 255.0; // use line color + G = LINE_COLOR[1] / 255.0; + B = LINE_COLOR[2] / 255.0; + + cairo_set_source_rgb(mwcr,R,G,B); + if (type == 2) cairo_set_dash(mwcr,dashes,2,0); // dotted line + else cairo_set_dash(mwcr,dashes,0,0); + + cairo_move_to(mwcr,px1,py1); // draw line + cairo_line_to(mwcr,px2,py2); + cairo_stroke(mwcr); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +// erase line. refresh line path from mpxb window image. +// double line width is erased. +// coordinates are image space. + +void erase_line(int x1, int y1, int x2, int y2) +{ + float pxm, pym, slope; + int crflag = 0; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + crflag = 1; + } + + if (abs(y2 - y1) > abs(x2 - x1)) { + slope = 1.0 * (x2 - x1) / (y2 - y1); + for (pym = y1; pym <= y2; pym++) { + pxm = x1 + slope * (pym - y1); + erase_pixel(pxm,pym); + } + } + + else { + slope = 1.0 * (y2 - y1) / (x2 - x1); + for (pxm = x1; pxm <= x2; pxm++) { + pym = y1 + slope * (pxm - x1); + erase_pixel(pxm,pym); + } + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +/********************************************************************************/ + +// draw pre-set overlay lines on top of image +// arg = 1: paint lines only (because window repainted) +// 2: erase lines and forget them +// 3: erase old lines, paint new lines, save new in old + +void draw_toplines(int arg) +{ + int ii, crflag = 0; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + if (arg == 2 || arg == 3) // erase old lines + for (ii = 0; ii < Nptoplines; ii++) + erase_line(ptoplines[ii].x1,ptoplines[ii].y1, + ptoplines[ii].x2,ptoplines[ii].y2); + + if (arg == 1 || arg == 3) // draw new lines + for (ii = 0; ii < Ntoplines; ii++) + draw_line(toplines[ii].x1,toplines[ii].y1, + toplines[ii].x2,toplines[ii].y2,toplines[ii].type); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + if (arg == 2) { + Nptoplines = Ntoplines = 0; // forget lines + return; + } + + for (ii = 0; ii < Ntoplines; ii++) // save for future erase + ptoplines[ii] = toplines[ii]; + + Nptoplines = Ntoplines; + + return; +} + + +/********************************************************************************/ + +// draw a grid of horizontal and vertical lines. +// grid line spacings are in window space. + +void draw_gridlines() +{ + int crflag = 0, G = currgrid; + int px, py, gww, ghh; + int startx, starty, endx, endy, stepx, stepy; + int startx1, starty1; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + if (! gridsettings[G][GON]) return; // grid lines off + + gww = dww; // grid box size + ghh = dhh; + startx = Dorgx; // starting corner (top left) + starty = Dorgy; + + if (CEF && strmatch(CEF->funcname,"trim_rotate")) { // trim/rotate function is active + gww = Mscale * (trimrect[2] - trimrect[0]); // fit grid box to trim rectangle + ghh = Mscale * (trimrect[3] - trimrect[1]); + startx = Mscale * trimrect[0] - Morgx + Dorgx; + starty = Mscale * trimrect[1] - Morgy + Dorgy; + } + + endx = startx + gww; + endy = starty + ghh; + + stepx = gridsettings[G][GXS]; // space between grid lines + stepy = gridsettings[G][GYS]; // (window space) + + if (gridsettings[G][GXC]) + stepx = gww / (1 + gridsettings[G][GXC]); // if line counts specified, + if (gridsettings[G][GYC]) // set spacing accordingly + stepy = ghh / ( 1 + gridsettings[G][GYC]); + + startx1 = startx + stepx * gridsettings[G][GXF] / 100; // variable starting offsets + starty1 = starty + stepy * gridsettings[G][GYF] / 100; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + cairo_set_source_rgb(mwcr,1,1,1); // white lines + + if (gridsettings[G][GX] && stepx) + for (px = startx1; px < endx; px += stepx) { + cairo_move_to(mwcr,px,starty); + cairo_line_to(mwcr,px,endy); + } + + if (gridsettings[G][GY] && stepy) + for (py = starty1; py < endy; py += stepy) { + cairo_move_to(mwcr,startx,py); + cairo_line_to(mwcr,endx,py); + } + + cairo_stroke(mwcr); + + cairo_set_source_rgb(mwcr,0,0,0); // adjacent black lines + + if (gridsettings[G][GX] && stepx) + for (px = startx1+1; px < endx+1; px += stepx) { + cairo_move_to(mwcr,px,starty); + cairo_line_to(mwcr,px,endy); + } + + if (gridsettings[G][GY] && stepy) + for (py = starty1+1; py < endy+1; py += stepy) { + cairo_move_to(mwcr,startx,py); + cairo_line_to(mwcr,endx,py); + } + + cairo_stroke(mwcr); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +/********************************************************************************/ + +// maintain a set of text strings written over the image in the window. +// add a new text string to the list. +// multiple text strings can be added with the same ID. +// px and py are image space. + +void add_toptext(int ID, int px, int py, cchar *text, cchar *font) +{ + zthreadcrash(); + + if (Ntoptext == maxtoptext) { + printz("*** maxtoptext exceeded \n"); + return; + } + + int ii = Ntoptext++; + toptext[ii].ID = ID; + toptext[ii].px = px; + toptext[ii].py = py; + toptext[ii].text = text; + toptext[ii].font = font; + + return; +} + + +// draw current text strings over the image in window. +// called from Fpaint(). + +void draw_toptext() +{ + int crflag = 0; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + for (int ii = 0; ii < Ntoptext; ii++) + draw_text(toptext[ii].px,toptext[ii].py,toptext[ii].text,toptext[ii].font); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +// delete text strings having the given ID from the list + +void erase_toptext(int ID) +{ + int ii, jj; + + for (ii = jj = 0; ii < Ntoptext; ii++) + { + if (toptext[ii].ID == ID) continue; + else toptext[jj++] = toptext[ii]; + } + + Ntoptext = jj; + return; +} + + +// draw text on window, black on white background +// coordinates are image space + +void draw_text(int px, int py, cchar *text, cchar *font) +{ + static PangoFontDescription *pangofont = 0; + static PangoLayout *pangolayout = 0; + static char priorfont[40] = ""; + int ww, hh, crflag = 0; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + + px = Mscale * px - Morgx + Dorgx; // image to window space + py = Mscale * py - Morgy + Dorgy; + + if (! strmatch(font,priorfont)) { // change font + strncpy0(priorfont,font,40); + if (pangofont) pango_font_description_free(pangofont); + if (pangolayout) g_object_unref(pangolayout); + pangofont = pango_font_description_from_string(font); // make pango layout for font + pangolayout = gtk_widget_create_pango_layout(Cdrawin,0); + pango_layout_set_font_description(pangolayout,pangofont); + } + + pango_layout_set_text(pangolayout,text,-1); // add text to layout + pango_layout_get_pixel_size(pangolayout,&ww,&hh); + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + cairo_set_source_rgb(mwcr,1,1,1); // draw white background + cairo_rectangle(mwcr,px,py,ww,hh); + cairo_fill(mwcr); + + cairo_move_to(mwcr,px,py); // draw layout with text + cairo_set_source_rgb(mwcr,0,0,0); + pango_cairo_show_layout(mwcr,pangolayout); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +/********************************************************************************/ + +// maintain a set of circles drawn over the image in the window +// px, py are image space, radius is window space + +void add_topcircle(int px, int py, int radius) +{ + if (Ntopcircles == maxtopcircles) { + printz("*** maxtopcircles exceeded \n"); + return; + } + + int ii = Ntopcircles++; + topcircles[ii].px = px; + topcircles[ii].py = py; + topcircles[ii].radius = radius; + + return; +} + + +// draw current circles over the image in the window +// called from window repaint function Fpaint() + +void draw_topcircles() +{ + int ii, px, py, rad; + int crflag = 0; + double R, G, B; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + R = LINE_COLOR[0] / 255.0; // use LINE_COLOR + G = LINE_COLOR[1] / 255.0; + B = LINE_COLOR[2] / 255.0; + + for (ii = 0; ii < Ntopcircles; ii++) + { + px = topcircles[ii].px * Mscale - Morgx + Dorgx; // image to window space + py = topcircles[ii].py * Mscale - Morgy + Dorgy; + rad = topcircles[ii].radius; // radius is window space + + cairo_set_source_rgb(mwcr,R,G,B); + cairo_arc(mwcr,px,py,rad,0,2*PI); // draw 360 deg. arc + cairo_stroke(mwcr); + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +// erase top circles (next window repaint) + +void erase_topcircles() +{ + Ntopcircles = 0; + return; +} + + +/********************************************************************************/ + +// Draw circle around the mouse pointer. +// Prior circle will be erased first. +// Used for mouse/brush radius in select and paint functions. +// cx, cy, cr: center and radius of circle in image space. +// if Ferase, then erase previous circle only. + +void draw_mousecircle(int cx, int cy, int cr, int Ferase) // 15.09 +{ + int px3, py3, ww3, hh3; + static int ppx3, ppy3, pww3 = 0, phh3; + int crflag = 0; + int px, py, qx, qy, nc, rs, pok; + uint8 *mpix, *mpix1; + double R, G, B; + double t, dt, t1, t2; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->mpxb) return; // no image + + if (pww3 > 0) { // erase prior + Fpaint4(ppx3,ppy3,pww3,phh3); // refresh from Mpxb + pww3 = 0; + } + + if (Ferase) return; // erase only, done + + rs = gdk_pixbuf_get_rowstride(Cstate->mpxb->pixbuf); // image row stride + nc = gdk_pixbuf_get_n_channels(Cstate->mpxb->pixbuf); // image no. channels + mpix = gdk_pixbuf_get_pixels(Cstate->mpxb->pixbuf); // image pixels + + px3 = cx - cr - 2; // convert pointer center + radius + py3 = cy - cr - 2; // to block position, width, length + ww3 = 2 * cr + 4; + hh3 = 2 * cr + 4; + + ppx3 = px3; // remember pixel block area + ppy3 = py3; // to erase in next call + pww3 = ww3; + phh3 = hh3; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + crflag = 1; + } + + cx = cx * Mscale - Morgx + Dorgx; // convert to window coordinates + cy = cy * Mscale - Morgy + Dorgy; + cr = cr * Mscale; + + R = LINE_COLOR[0] / 255.0; // use LINE_COLOR + G = LINE_COLOR[1] / 255.0; + B = LINE_COLOR[2] / 255.0; + + cairo_set_source_rgb(mwcr,R,G,B); + + t1 = t2 = -1; // angle limits of arc to draw + dt = 1.0 / cr; + + for (t = 0; t < 2*PI; t += dt) // loop 0-360 degrees + { + px = cx + cr * cos(t); // pixel on mouse circle + py = cy + cr * sin(t); + + pok = 1; // assume pixel OK to draw + + if (px < Dorgx || py < Dorgy) pok = 0; // outside image limits + if (px >= Dorgx+dww || py >= Dorgy+dhh) pok = 0; + + if (pok && nc > 3) { + qx = px + Morgx - Dorgx; // check alpha channel + qy = py + Morgy - Dorgy; + mpix1 = mpix + qy * rs + qx * nc; + if (mpix1[3] < 128) pok = 0; // pixel is transparent + } + + if (pok) { // pixel ok, add to arc + if (t1 < 0) t1 = t; // start of arc to draw + t2 = t; // end of arc, so far + } + + else if (t1 >= 0) { // pixel not ok + cairo_arc(mwcr,cx,cy,cr,t1,t2); // draw accumulated arc + cairo_stroke(mwcr); + t1 = t2 = -1; // start over + } + } + + if (t1 >= 0) { + cairo_arc(mwcr,cx,cy,cr,t1,t2); // draw rest of arc + cairo_stroke(mwcr); + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +// duplicate for drawing and tracking a 2nd mouse circle +// (used by paint/clone to track source pixels being cloned) + +void draw_mousecircle2(int cx, int cy, int cr, int Ferase) // 15.09 +{ + int px3, py3, ww3, hh3; + static int ppx3, ppy3, pww3 = 0, phh3; + int crflag = 0; + int px, py, qx, qy, nc, rs, pok; + uint8 *mpix, *mpix1; + double R, G, B; + double t, dt, t1, t2; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->mpxb) return; // no image + + if (pww3 > 0) { // erase prior + Fpaint4(ppx3,ppy3,pww3,phh3); // refresh from Mpxb + pww3 = 0; + } + + if (Ferase) return; // erase only, done + + rs = gdk_pixbuf_get_rowstride(Cstate->mpxb->pixbuf); // image row stride + nc = gdk_pixbuf_get_n_channels(Cstate->mpxb->pixbuf); // image no. channels + mpix = gdk_pixbuf_get_pixels(Cstate->mpxb->pixbuf); // image pixels + + px3 = cx - cr - 2; // convert pointer center + radius + py3 = cy - cr - 2; // to block position, width, length + ww3 = 2 * cr + 4; + hh3 = 2 * cr + 4; + + ppx3 = px3; // remember pixel block area + ppy3 = py3; // to erase in next call + pww3 = ww3; + phh3 = hh3; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + crflag = 1; + } + + cx = cx * Mscale - Morgx + Dorgx; // convert to window coordinates + cy = cy * Mscale - Morgy + Dorgy; + cr = cr * Mscale; + + R = LINE_COLOR[0] / 255.0; // use LINE_COLOR + G = LINE_COLOR[1] / 255.0; + B = LINE_COLOR[2] / 255.0; + + cairo_set_source_rgb(mwcr,R,G,B); + + t1 = t2 = -1; // angle limits of arc to draw + dt = 1.0 / cr; + + for (t = 0; t < 2*PI; t += dt) // loop 0-360 degrees + { + px = cx + cr * cos(t); // pixel on mouse circle + py = cy + cr * sin(t); + + pok = 1; // assume pixel OK to draw + + if (px < Dorgx || py < Dorgy) pok = 0; // outside image limits + if (px >= Dorgx+dww || py >= Dorgy+dhh) pok = 0; + + if (pok && nc > 3) { + qx = px + Morgx - Dorgx; // check alpha channel + qy = py + Morgy - Dorgy; + mpix1 = mpix + qy * rs + qx * nc; + if (mpix1[3] < 128) pok = 0; // pixel is transparent + } + + if (pok) { // pixel ok, add to arc + if (t1 < 0) t1 = t; // start of arc to draw + t2 = t; // end of arc, so far + } + + else if (t1 >= 0) { // pixel not ok + cairo_arc(mwcr,cx,cy,cr,t1,t2); // draw accumulated arc + cairo_stroke(mwcr); + t1 = t2 = -1; // start over + } + } + + if (t1 >= 0) { + cairo_arc(mwcr,cx,cy,cr,t1,t2); // draw rest of arc + cairo_stroke(mwcr); + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +/********************************************************************************/ + +// Draw ellipse around the mouse pointer. +// Prior ellipse will be erased first. +// cx, cy, cww, chh: center and axes of ellipse +// if Ferase, then erase previous ellipse only. + +void draw_mousearc(int cx, int cy, int cww, int chh, int Ferase) +{ + int px3, py3, ww3, hh3; + static int ppx3, ppy3, pww3 = 0, phh3; + int px, py; + int crflag = 0; + float a, b, a2, b2; + float x, y, x2, y2; + + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Cstate || ! Cstate->fpxb) return; // no image + + paintlock(1); // 16.03 + + if (pww3 > 0) { // erase prior + Fpaint4(ppx3,ppy3,pww3,phh3); // refresh from Mpxb + pww3 = 0; + } + + if (Ferase) { + paintlock(0); // 16.03 + return; + } + + px3 = cx - (cww + 2) / 2; // convert pointer center + radius + py3 = cy - (chh + 2) / 2; // to block position, width, length + ww3 = cww + 2; + hh3 = chh + 2; + + ppx3 = px3; // remember pixel block area + ppy3 = py3; // to erase in next call + pww3 = ww3; + phh3 = hh3; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkwin); // create cairo context if not already + crflag = 1; + } + + a = cww / 2; // ellipse constants from + b = chh / 2; // enclosing rectangle + a2 = a * a; + b2 = b * b; + + for (y = -b; y < b; y++) // step through y values, omitting + { // curve points covered by x values + y2 = y * y; + x2 = a2 * (1 - y2 / b2); + x = sqrtf(x2); // corresp. x values, + and - + py = y + cy; + px = cx - x + 0.5; + draw_pixel(px,py); // draw 2 points on ellipse + px = cx + x + 0.5; + draw_pixel(px,py); + } + + for (x = -a; x < a; x++) // step through x values, omitting + { // curve points covered by y values + x2 = x * x; + y2 = b2 * (1 - x2 / a2); + y = sqrtf(y2); // corresp. y values, + and - + px = x + cx; + py = cy - y + 0.5; + draw_pixel(px,py); // draw 2 points on ellipse + py = cy + y + 0.5; + draw_pixel(px,py); + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + paintlock(0); // 16.03 + return; +} + + +/******************************************************************************** + + spline curve setup and edit functions + + Support multiple frames with curves in parallel + (edit curve(s) and image mask curve) + + Usage: + Add frame widget to dialog or zdialog. + Set up drawing in frame: + sd = splcurve_init(frame, callback_func) + Initialize no. of curves in frame (1-10): + sd->Nspc = n + Initialize active flag for curve spc: + sd->fact[spc] = 1 15.10 + Initialize vert/horz flag for curve spc: + sd->vert[spc] = hv + Initialize anchor points for curve spc: + sd->nap[spc], sd->apx[spc][xx], sd->apy[spc][yy] + Generate data for curve spc: + splcurve_generate(sd,spc) + Curves will now be shown and edited inside the frame when window is realized. + The callback_func(spc) will be called when curve spc is edited. + Change curve in program: + set anchor points, call splcurve_generate(sd,spc) + Get y-value (0-1) for curve spc and given x-value (0-1): + yval = splcurve_yval(sd,spc,xval) + If faster access to curve is needed (no interpolation): + kk = 1000 * xval; + if (kk > 999) kk = 999; + yval = sd->yval[spc][kk]; + +***/ + +// initialize for spline curve editing +// initial anchor points are pre-loaded into spldat before window is realized + +spldat * splcurve_init(GtkWidget *frame, void func(int spc)) +{ + zthreadcrash(); + + int cc = sizeof(spldat); // allocate spc curve data area + spldat * sd = (spldat *) zmalloc(cc); + memset(sd,0,cc); + + sd->drawarea = gtk_drawing_area_new(); // drawing area for curves + gtk_container_add(GTK_CONTAINER(frame),sd->drawarea); + sd->spcfunc = func; // user callback function + + gtk_widget_add_events(sd->drawarea,GDK_BUTTON_PRESS_MASK); // connect mouse events to drawing area + gtk_widget_add_events(sd->drawarea,GDK_BUTTON_RELEASE_MASK); + gtk_widget_add_events(sd->drawarea,GDK_BUTTON1_MOTION_MASK); + G_SIGNAL(sd->drawarea,"motion-notify-event",splcurve_adjust,sd); + G_SIGNAL(sd->drawarea,"button-press-event",splcurve_adjust,sd); + G_SIGNAL(sd->drawarea,"draw",splcurve_draw,sd); + + return sd; +} + + +// modify anchor points in curve using mouse + +int splcurve_adjust(void *, GdkEventButton *event, spldat *sd) +{ + int ww, hh, kk; + int mx, my, button, evtype; + static int spc, ap, mbusy = 0, Fdrag = 0; // drag continuation logic + int minspc, minap, apset = 0; + float mxval, myval, cxval, cyval; + float dist2, mindist2 = 0; + float dist, dx, dy; + float minx = 0.01 * splcurve_minx; // % to absolute distance 15.10 + + zthreadcrash(); + + mx = event->x; // mouse position in drawing area + my = event->y; + evtype = event->type; + button = event->button; + + if (evtype == GDK_MOTION_NOTIFY) { + if (mbusy) return 0; // discard excess motion events + mbusy++; + zmainloop(); + mbusy = 0; + } + + if (evtype == GDK_BUTTON_RELEASE) { + Fdrag = 0; + return 0; + } + + ww = gtk_widget_get_allocated_width(sd->drawarea); // drawing area size + hh = gtk_widget_get_allocated_height(sd->drawarea); + + if (mx < 0) mx = 0; // limit edge excursions + if (mx > ww) mx = ww; + if (my < 0) my = 0; + if (my > hh) my = hh; + + if (evtype == GDK_BUTTON_PRESS) Fdrag = 0; // left or right click + + if (Fdrag) // continuation of drag + { + if (sd->vert[spc]) { + mxval = 1.0 * my / hh; // mouse position in curve space + myval = 1.0 * mx / ww; + } + else { + mxval = 1.0 * mx / ww; + myval = 1.0 * (hh - my) / hh; + } + + if (ap < sd->nap[spc] - 1) { // not the last anchor point + dx = sd->apx[spc][ap+1] - mxval; // get distance to next anchor point + if (dx < 0.01) return 0; // x-value not increasing, forbid + dy = sd->apy[spc][ap+1] - myval; + dist = sqrtf(dx * dx + dy * dy); + if (dist < minx) return 0; // too close, forbid + } + if (ap > 0) { // not the first anchor point + dx = mxval - sd->apx[spc][ap-1]; // get distance to prior anchor point + if (dx < 0.01) return 0; // x-value not increasing, forbid + dy = myval - sd->apy[spc][ap-1]; + dist = sqrtf(dx * dx + dy * dy); + if (dist < minx) return 0; // too close, forbid + } + + apset = 1; // mxval/myval = new node position 15.10 + } + + else // mouse click or new drag begin + { + minspc = minap = -1; // find closest curve/anchor point + mindist2 = 999999; + + for (spc = 0; spc < sd->Nspc; spc++) // loop curves + { + if (! sd->fact[spc]) continue; // not active 15.10 + + if (sd->vert[spc]) { + mxval = 1.0 * my / hh; // mouse position in curve space + myval = 1.0 * mx / ww; + } + else { + mxval = 1.0 * mx / ww; + myval = 1.0 * (hh - my) / hh; + } + + for (ap = 0; ap < sd->nap[spc]; ap++) // loop anchor points + { + cxval = sd->apx[spc][ap]; + cyval = sd->apy[spc][ap]; + dist2 = (mxval-cxval)*(mxval-cxval) + + (myval-cyval)*(myval-cyval); + if (dist2 < mindist2) { + mindist2 = dist2; // remember closest anchor point + minspc = spc; + minap = ap; + } + } + } + + if (minspc < 0) return 0; // impossible + spc = minspc; // nearest curve + ap = minap; // nearest anchor point + } + + if (evtype == GDK_BUTTON_PRESS && button == 3) // right click, remove anchor point + { + if (sqrtf(mindist2) > minx) return 0; // not close enough + if (sd->nap[spc] < 3) return 0; // < 2 anchor points would remain + sd->nap[spc]--; // decr. before loop + for (kk = ap; kk < sd->nap[spc]; kk++) { +// if (kk < 0) printz("meaningless reference %d \n",kk); // stop gcc opt. bug - removed 16.01 + sd->apx[spc][kk] = sd->apx[spc][kk+1]; + sd->apy[spc][kk] = sd->apy[spc][kk+1]; + } + splcurve_generate(sd,spc); // regenerate data for modified curve + gtk_widget_queue_draw(sd->drawarea); + sd->spcfunc(spc); // call user function + return 0; + } + + if (! Fdrag) // new drag or left click + { + if (sd->vert[spc]) { + mxval = 1.0 * my / hh; // mouse position in curve space + myval = 1.0 * mx / ww; + } + else { + mxval = 1.0 * mx / ww; + myval = 1.0 * (hh - my) / hh; + } + + if (sqrtf(mindist2) < minx) // anchor point close enough, + { // move this one to mouse position + if (ap < sd->nap[spc]-1) { // not the last anchor point + dx = sd->apx[spc][ap+1] - mxval; // get distance to next anchor point + if (dx < 0.01) return 0; // x-value not increasing, forbid + dy = sd->apy[spc][ap+1] - myval; + dist = sqrtf(dx * dx + dy * dy); + if (dist < minx) return 0; // too close, forbid + } + if (ap > 0) { // not the first anchor point + dx = mxval - sd->apx[spc][ap-1]; // get distance to prior anchor point + if (dx < 0.01) return 0; // x-value not increasing, forbid + dy = myval - sd->apy[spc][ap-1]; + dist = sqrtf(dx * dx + dy * dy); + if (dist < minx) return 0; // too close, forbid + } + + apset = 1; // mxval/myval = new node position 15.10 + } + + else // none close, add new anchor point + { + minspc = -1; // find closest curve to mouse + mindist2 = 999999; + + for (spc = 0; spc < sd->Nspc; spc++) // loop curves + { + if (! sd->fact[spc]) continue; // not active 15.10 + + if (sd->vert[spc]) { + mxval = 1.0 * my / hh; // mouse position in curve space + myval = 1.0 * mx / ww; + } + else { + mxval = 1.0 * mx / ww; + myval = 1.0 * (hh - my) / hh; + } + + cyval = splcurve_yval(sd,spc,mxval); + dist2 = fabsf(myval - cyval); + if (dist2 < mindist2) { + mindist2 = dist2; // remember closest curve + minspc = spc; + } + } + + if (minspc < 0) return 0; // impossible + if (mindist2 > minx) return 0; // not close enough to any curve + spc = minspc; + + if (sd->nap[spc] > 49) { + zmessageACK(Mwin,ZTX("Exceed 50 anchor points")); + return 0; + } + + if (sd->vert[spc]) { + mxval = 1.0 * my / hh; // mouse position in curve space + myval = 1.0 * mx / ww; + } + else { + mxval = 1.0 * mx / ww; + myval = 1.0 * (hh - my) / hh; + } + + for (ap = 0; ap < sd->nap[spc]; ap++) // find anchor point with next higher x + if (mxval <= sd->apx[spc][ap]) break; // (ap may come out 0 or nap) + + if (ap < sd->nap[spc] && sd->apx[spc][ap] - mxval < minx) // disallow < minx from next + return 0; // or prior anchor point + if (ap > 0 && mxval - sd->apx[spc][ap-1] < minx) return 0; + + for (kk = sd->nap[spc]; kk > ap; kk--) { // make hole for new point + sd->apx[spc][kk] = sd->apx[spc][kk-1]; + sd->apy[spc][kk] = sd->apy[spc][kk-1]; + } + + sd->nap[spc]++; // up point count + apset = 1; // mxval/myval = new node position 15.10 + } + } + + if (evtype == GDK_MOTION_NOTIFY) Fdrag = 1; // remember drag is underway + + if (apset) // 15.10 + { + sd->apx[spc][ap] = mxval; // new or moved anchor point + sd->apy[spc][ap] = myval; // at mouse position + + splcurve_generate(sd,spc); // regenerate data for modified curve + if (sd->drawarea) gtk_widget_queue_draw(sd->drawarea); // redraw graph + if (sd->spcfunc) sd->spcfunc(spc); // call user function + } + + return 0; +} + + +// add a new anchor point to a curve +// spc: curve number +// px, py: node coordinates in the range 0-1 + +int splcurve_addnode(spldat *sd, int spc, float px, float py) // 15.07 +{ + int ap, kk; + float minx = 0.01 * splcurve_minx; // % to absolute distance 15.10 + + for (ap = 0; ap < sd->nap[spc]; ap++) // find anchor point with next higher x + if (px <= sd->apx[spc][ap]) break; // (ap may come out 0 or nap) + + if (ap < sd->nap[spc] && sd->apx[spc][ap] - px < minx) // disallow < minx from next + return 0; // or prior anchor point + if (ap > 0 && px - sd->apx[spc][ap-1] < minx) return 0; + + for (kk = sd->nap[spc]; kk > ap; kk--) { // make hole for new point + sd->apx[spc][kk] = sd->apx[spc][kk-1]; + sd->apy[spc][kk] = sd->apy[spc][kk-1]; + } + + sd->apx[spc][ap] = px; // add node coordinates + sd->apy[spc][ap] = py; + + sd->nap[spc]++; // up point count + return 1; +} + + +// for expose event or when a curve is changed +// draw all curves based on current anchor points + +int splcurve_draw(GtkWidget *drawarea, cairo_t *cr, spldat *sd) +{ + int ww, hh, spc, ap; + float xval, yval, px, py, qx, qy; + + zthreadcrash(); + + ww = gtk_widget_get_allocated_width(sd->drawarea); // drawing area size + hh = gtk_widget_get_allocated_height(sd->drawarea); + if (ww < 50 || hh < 50) return 0; + + cairo_set_line_width(cr,1); + cairo_set_source_rgb(cr,0.7,0.7,0.7); + + for (int ii = 0; ii < sd->Nscale; ii++) // draw y-scale lines if any + { + px = ww * sd->xscale[0][ii]; + py = hh - hh * sd->yscale[0][ii]; + qx = ww * sd->xscale[1][ii]; + qy = hh - hh * sd->yscale[1][ii]; + cairo_move_to(cr,px,py); + cairo_line_to(cr,qx,qy); + } + cairo_stroke(cr); + + cairo_set_source_rgb(cr,0,0,0); + + for (spc = 0; spc < sd->Nspc; spc++) // loop all curves + { + if (! sd->fact[spc]) continue; // not active 15.10 + + if (sd->vert[spc]) // vert. curve + { + for (py = 0; py < hh; py++) // generate all points for curve + { + xval = 1.0 * py / hh; + yval = splcurve_yval(sd,spc,xval); + px = ww * yval; + if (py == 0) cairo_move_to(cr,px,py); + cairo_line_to(cr,px,py); + } + cairo_stroke(cr); + + for (ap = 0; ap < sd->nap[spc]; ap++) // draw boxes at anchor points + { + xval = sd->apx[spc][ap]; + yval = sd->apy[spc][ap]; + px = ww * yval; + py = hh * xval; + cairo_rectangle(cr,px-2,py-2,4,4); + } + cairo_fill(cr); + } + else // horz. curve + { + for (px = 0; px < ww; px++) // generate all points for curve + { + xval = 1.0 * px / ww; + yval = splcurve_yval(sd,spc,xval); + py = hh - hh * yval; + if (px == 0) cairo_move_to(cr,px,py); + cairo_line_to(cr,px,py); + } + cairo_stroke(cr); + + for (ap = 0; ap < sd->nap[spc]; ap++) // draw boxes at anchor points + { + xval = sd->apx[spc][ap]; + yval = sd->apy[spc][ap]; + px = ww * xval; + py = hh - hh * yval; + cairo_rectangle(cr,px-2,py-2,4,4); + } + cairo_fill(cr); + } + } + + return 0; +} + + +// generate all curve data points when anchor points are modified + +int splcurve_generate(spldat *sd, int spc) +{ + int kk, kklo, kkhi; + float xval, yvalx; + + spline1(sd->nap[spc],sd->apx[spc],sd->apy[spc]); // compute curve fitting anchor points + + kklo = 1000 * sd->apx[spc][0] - 30; // xval range = anchor point range + if (kklo < 0) kklo = 0; // + 0.03 extra below/above + kkhi = 1000 * sd->apx[spc][sd->nap[spc]-1] + 30; + if (kkhi > 1000) kkhi = 1000; + + for (kk = 0; kk < 1000; kk++) // generate all points for curve + { + xval = 0.001 * kk; // remove anchor point limits + yvalx = spline2(xval); + if (yvalx < 0) yvalx = 0; // yval < 0 not allowed, > 1 OK + sd->yval[spc][kk] = yvalx; + } + + return 0; +} + + +// Retrieve curve data using interpolation of saved table of values + +float splcurve_yval(spldat *sd, int spc, float xval) +{ + int ii; + float x1, x2, y1, y2, y3; + + if (xval <= 0) return sd->yval[spc][0]; + if (xval >= 0.999) return sd->yval[spc][999]; + + x2 = 1000.0 * xval; + ii = x2; + x1 = ii; + y1 = sd->yval[spc][ii]; + y2 = sd->yval[spc][ii+1]; + y3 = y1 + (y2 - y1) * (x2 - x1); + return y3; +} + + +// load curve data from a file +// returns 0 if succcess, sd is initialized from file data +// returns 1 if fail (invalid file data), sd not modified + +int splcurve_load(spldat *sd, FILE *fid) // 15.10 +{ + char *pfile, *pp, buff[300]; + int nn, ii, jj, err, myfid = 0; + int Nspc, fact[10], vert[10], nap[10]; + float apx[10][50], apy[10][50]; + + zthreadcrash(); + + if (! fid) // request file from user + { + pfile = zgetfile(ZTX("load curve from a file"),MWIN,"file",saved_curves_dirk); + if (! pfile) return 1; + fid = fopen(pfile,"r"); + zfree(pfile); + if (! fid) goto fail; + myfid = 1; + } + + pp = fgets_trim(buff,300,fid,1); + if (! pp) goto fail; + nn = sscanf(pp,"%d",&Nspc); // no. of curves + if (nn != 1) goto fail; + if (Nspc < 1 || Nspc > 10) goto fail; + if (Nspc != sd->Nspc) goto fail; + + for (ii = 0; ii < Nspc; ii++) // loop each curve + { + pp = fgets_trim(buff,300,fid,1); + if (! pp) goto fail; + nn = sscanf(pp,"%d %d %d",&fact[ii],&vert[ii],&nap[ii]); // active flag, vert flag, anchors + if (nn != 3) goto fail; + if (fact[ii] < 0 || fact[ii] > 1) goto fail; + if (vert[ii] < 0 || vert[ii] > 1) goto fail; + if (nap[ii] < 2 || nap[ii] > 50) goto fail; + + pp = fgets_trim(buff,300,fid,1); // anchor points: nnn/nnn nnn/nnn ... + + for (jj = 0; jj < nap[ii]; jj++) // anchor point values + { + pp = (char *) strField(buff,"/ ",2*jj+1); + if (! pp) goto fail; + err = convSF(pp,apx[ii][jj],0,1); + if (err) goto fail; + pp = (char *) strField(buff,"/ ",2*jj+2); + err = convSF(pp,apy[ii][jj],0,1); + if (err) goto fail; + } + } + + if (myfid) fclose(fid); + + sd->Nspc = Nspc; // copy curve data to caller's arg + + for (ii = 0; ii < Nspc; ii++) + { + sd->fact[ii] = fact[ii]; + sd->vert[ii] = vert[ii]; + sd->nap[ii] = nap[ii]; + + for (jj = 0; jj < nap[ii]; jj++) + { + sd->apx[ii][jj] = apx[ii][jj]; + sd->apy[ii][jj] = apy[ii][jj]; + } + } + + for (ii = 0; ii < Nspc; ii++) // generate curve data from anchor points + splcurve_generate(sd,ii); + + if (sd->drawarea) // redraw all curves + gtk_widget_queue_draw(sd->drawarea); + + return 0; // success + +fail: + if (fid && myfid) fclose(fid); + zmessageACK(Mwin,ZTX("curve file is invalid")); + return 1; +} + + +// save curve data to a file + +int splcurve_save(spldat *sd, FILE *fid) +{ + char *pfile, *pp; + int ii, jj, myfid = 0; + + if (! fid) + { + pp = zgetfile(ZTX("save curve to a file"),MWIN,"save",saved_curves_dirk); + if (! pp) return 1; + pfile = zstrdup(pp,8); + zfree(pp); + pp = strrchr(pfile,'/'); // force .curve extension + if (pp) pp = strrchr(pp,'.'); + if (pp) strcpy(pp,".curve"); + else strcat(pfile,".curve"); + + fid = fopen(pfile,"w"); + zfree(pfile); + if (! fid) return 1; + myfid = 1; + } + + fprintf(fid,"%d \n",sd->Nspc); // no. of curves + + for (ii = 0; ii < sd->Nspc; ii++) // loop each curve + { + fprintf(fid,"%d %d %d \n",sd->fact[ii],sd->vert[ii],sd->nap[ii]); // activ flag, vert flag, anchors 15.10 + for (jj = 0; jj < sd->nap[ii]; jj++) // anchor point values + fprintf(fid,"%.4f/%.4f ",sd->apx[ii][jj],sd->apy[ii][jj]); + fprintf(fid,"\n"); + } + + if (myfid) fclose(fid); + return 0; +} + + +/******************************************************************************** + + edit transaction management + + edit_setup() get E0 if none, E0 > E1 > E3 + edit_cancel() free (E1 E3 ER) + edit_done() E3 > E0, free (E1 ER) add to undo stack + edit_undo() E3 > ER, E1 > E3 + edit_redo() ER > E3 + edit_reset() free ER, E1 > E3 + edit_fullsize() free (E1 E3) E0 > E1 > E3 + +********************************************************************************* + + Setup for a new edit transaction + Create E1 (edit input) and E3 (edit output) pixmaps from + previous edit (E0) or image file (new E0). + + FprevReq 0 edit full-size image + 1 edit preview image unless select area exists + + Farea 0 select_area is invalid and will be deleted (e.g. rotate) + 1 select_area not used but remains valid (e.g. red-eye) + 2 select_area can be used and remains valid (e.g. gamma) + +*********************************************************************************/ + +int edit_setup(editfunc &EF) +{ + int yn, rww, rhh; + int Fpreview; + + if (! curr_file) return 0; // no image file + if (FGWM != 'F') m_viewmode(0,"F"); // insure file view mode 16.06 + + if (checkpend("busy block")) return 0; // blocking function 15.11 + + if (CEF && CEF->zd) // if pending edit, complete it + zdialog_send_event(CEF->zd,"done"); + if (checkpend("edit")) return 0; // failed (HDR etc.) + + if (URS_pos > maxedits-2) { // undo/redo stack capacity reached + zmessageACK(Mwin,ZTX("Too many edits, please save image")); + return 0; + } + + if (Fscriptbuild && ! EF.Fscript) { // this function not scriptable 15.10 + zmessageACK(Mwin,ZTX("this function cannot be scripted")); + return 0; + } + + free_geomap(); // free map memory for edit usage + + sa_validate(); // delete area if not valid + + if (EF.Farea == 0 && sa_stat) { // select area will be lost, warn user + yn = zmessageYN(Mwin,ZTX("Select area cannot be kept.\n" + "Continue?")); + if (! yn) return 0; + sa_unselect(); // unselect area + if (zdsela) zdialog_free(zdsela); + } + + if (EF.Farea == 2 && sa_stat && sa_stat != 3) { // select area exists and can be used, + yn = zmessageYN(Mwin,ZTX("Select area not active.\n" // but not active, ask user + "Continue?")); + if (! yn) return 0; + } + + if (! E0pxm) { // first edit for this file + E0pxm = PXM_load(curr_file,1); // get E0 image (poss. 16-bit color) + if (! E0pxm) return 0; + curr_file_bpc = f_load_bpc; + } + + paintlock(1); // block window updates 16.02 + + if (URS_pos == 0) save_undo(); // initial image >> undo/redo stack + + Fpreview = 0; // assume no preview + + if (EF.FprevReq && ! Fzoom) // preview requested by edit func. + Fpreview = 1; + + if (EF.Farea == 2 && sa_stat == 3) // not if select area active + Fpreview = 0; + + if (E0pxm->ww * E0pxm->hh < 2000000) // if image is small, don't use preview + Fpreview = 0; + + if (E0pxm->ww < 1.4 * Dww && E0pxm->hh < 1.4 * Dhh) // if image slightly larger than window, + Fpreview = 0; // don't use preview + + if (Fpreview) { + if (Fpxb->ww * Dhh > Fpxb->hh * Dww) { // use preview image 1.4 * window size + rww = 1.4 * Dww; + if (rww < 1200) rww = 1200; // at least 1200 on one side + rhh = 1.0 * rww * Fpxb->hh / Fpxb->ww + 0.5; + } + else { + rhh = 1.4 * Dhh; + if (rhh < 1200) rhh = 1200; + rww = 1.0 * rhh * Fpxb->ww / Fpxb->hh + 0.5; + } + if (rww > Fpxb->ww) Fpreview = 0; + } + + if (Fpreview) { + E1pxm = PXM_rescale(E0pxm,rww,rhh); // scale image to preview size + sa_show(0); // hide select area if present + } + else E1pxm = PXM_copy(E0pxm); // else use full size image + + E3pxm = PXM_copy(E1pxm); // E1 >> E3 + + CEF = &EF; // set current edit function + CEF->Fmods = 0; // image not modified yet + CEF->Fpreview = Fpreview; + + CEF->thread_command = CEF->thread_status = 0; // no thread running + CEF->thread_pend = CEF->thread_done = CEF->thread_hiwater = 0; // no work pending or done + if (CEF->threadfunc) start_thread(CEF->threadfunc,0); // start thread func if any + + paintlock(0); // unblock window updates 16.02 + Fpaintnow(); // update image synchronous + return 1; +} + + +/********************************************************************************/ + +// print error message if CEF invalid + +int CEF_invalid() +{ + if (CEF) return 0; + printz("CEF invalid \n"); // 15.05 + return 1; +} + + +/********************************************************************************/ + +// process edit cancel +// keep: retain zdialog, mousefunc, curves + +void edit_cancel(int keep) // 15.04 +{ + if (CEF_invalid()) return; + wrapup_thread(9); // tell thread to quit, wait 15.05 + if (CEF_invalid()) return; + paintlock(1); // block window updates 16.02 + + PXM_free(E1pxm); // free E1, E3, ER + PXM_free(E3pxm); + PXM_free(ERpxm); + PXM_free(E8pxm); + PXM_free(E9pxm); + + if (! keep) + { + if (CEF->zd == zd_thread) zd_thread = 0; // thread -> zdialog event + if (CEF->curves) zfree(CEF->curves); // free curves data + if (CEF->mousefunc == mouseCBfunc) freeMouse(); // if my mouse, free mouse + if (CEF->zd) zdialog_free(CEF->zd); // kill dialog sequence 16.01 + } + + CEF = 0; // no current edit func + paintlock(0); // unblock window updates 16.02 + Fpaintnow(); // update image synchronous + return; +} + + +/********************************************************************************/ + +// process edit done +// keep: retain zdialog, mousefunc, curves + +void edit_done(int keep) // 15.04 +{ + if (CEF_invalid()) return; + wrapup_thread(8); // tell thread to finish, wait 15.05 + if (CEF_invalid()) return; + paintlock(1); // block window updates 16.02 + + if (CEF->Fmods) { // image was modified + PXM_free(E0pxm); + E0pxm = E3pxm; // E3 updated image >> E0 + E3pxm = 0; + PXM_free(E1pxm); // free E1, ER + PXM_free(ERpxm); + PXM_free(E8pxm); + PXM_free(E9pxm); + URS_pos++; // next undo/redo stack position + URS_max = URS_pos; // image modified - higher mods now obsolete + save_undo(); // save undo state (for following undo) + if (Fscriptbuild) addscript(CEF); // add to script file 15.10 + } + + else { // not modified + PXM_free(E1pxm); // free E1, E3, ER + PXM_free(E3pxm); + PXM_free(ERpxm); + PXM_free(E8pxm); + PXM_free(E9pxm); + } + + if (! keep) + { + if (CEF->zd == zd_thread) zd_thread = 0; // thread -> zdialog event + if (CEF->curves) zfree(CEF->curves); // free curves data + if (CEF->mousefunc == mouseCBfunc) freeMouse(); // if my mouse, free mouse + if (CEF->zd) zdialog_free(CEF->zd); // kill dialog sequence 16.02 + } + + CEF = 0; // no current edit func + paintlock(0); // unblock window updates 16.02 + Fpaintnow(); // update image synchronous + return; +} + + +/********************************************************************************/ + +// Convert from preview mode (window-size pixmaps) to full-size pixmaps. +// Called by the edit function prior to edit_done(). + +void edit_fullsize() // 15.04 +{ + if (CEF_invalid()) return; + wait_thread_idle(); // wait for thread idle + if (CEF_invalid()) return; + if (! CEF->Fpreview) return; // FprevReq ignored if small image + paintlock(1); // block window updates 16.02 + PXM_free(E1pxm); // free preview pixmaps + PXM_free(E3pxm); + E1pxm = PXM_copy(E0pxm); // E0 >> E1, full size image + E3pxm = PXM_copy(E1pxm); // E1 >> E3 + PXB_free(Cstate->fpxb); + Cstate->fpxb = PXM_PXB_copy(E3pxm); // update Fpxb from image E3 + Fzoom = 0; + paintlock(0); // unblock window updates 16.02 + CEF->Fpreview = 0; + return; +} + + +// edit undo, redo, reset functions +// these apply within an active edit function + +void edit_undo() +{ + F1_help_topic = "undo_redo"; + + if (CEF_invalid()) return; + wait_thread_idle(); // wait for thread idle + if (CEF_invalid()) return; + if (! CEF->Fmods) return; // not modified + paintlock(1); // block window updates 16.02 + + PXM_free(ERpxm); // E3 >> redo copy + ERpxm = E3pxm; + E3pxm = PXM_copy(E1pxm); // E1 >> E3 + CEF->Fmods = 0; // reset image modified status + paintlock(0); // unblock window updates 16.02 + Fpaintnow(); // update image synchronous + return; +} + + +void edit_redo() +{ + F1_help_topic = "undo_redo"; + + if (CEF_invalid()) return; + wait_thread_idle(); // wait for thread idle + if (CEF_invalid()) return; + if (! ERpxm) return; // no prior undo + paintlock(1); // block window updates 16.02 + + PXM_free(E3pxm); // redo copy >> E3 + E3pxm = ERpxm; + ERpxm = 0; + CEF->Fmods = 1; // image modified + paintlock(0); // unblock window updates 16.02 + Fpaintnow(); // update image synchronous + return; +} + + +void edit_reset() // reset E3 to E1 status +{ + if (CEF_invalid()) return; + wait_thread_idle(); // wait for thread idle + if (CEF_invalid()) return; + if (! CEF->Fmods) return; // not modified + paintlock(1); // block window updates 16.02 + + PXM_free(ERpxm); // delete redo copy + PXM_free(E3pxm); + E3pxm = PXM_copy(E1pxm); // E1 >> E3 + CEF->Fmods = 0; // reset image modified status + paintlock(0); // unblock window updates 16.02 + Fpaintnow(); // update image synchronous + return; +} + + +/********************************************************************************/ + +// Load/save all edit zdialog widgets data from/to a file. +// dirname for edit data files: /home//.fotoxx/funcname +// where zdialog data is saved for the respective function. +// return 0 = OK, +N = error + +int edit_load_widgets(editfunc *EF, FILE *fid) // 15.10 +{ + using namespace zfuncs; + + cchar *mess = ZTX("Load settings from file"); + zdialog *zd; + spldat *sd; + int myfid = 0; + char *filename, dirname[200], buff[1000]; + char *wname, *wdata, wdata2[1000]; + char *pp, *pp1, *pp2; + int ii, kk, err, cc1, cc2; + + zd = EF->zd; + sd = EF->curves; + + if (! fid) // fid from script + { + snprintf(dirname,200,"%s/%s",get_zuserdir(),EF->funcname); // directory for data files + filename = zgetfile(mess,MWIN,"file",dirname,0); // open data file + if (! filename) return 1; // user cancel + fid = fopen(filename,"r"); + zfree(filename); + if (! fid) { + zmessageACK(Mwin,"%s \n %s",filename,strerror(errno)); + return 1; + } + myfid = 1; + } + + for (ii = 0; ii < zdmaxwidgets; ii++) // read widget data recs + { + pp = fgets_trim(buff,1000,fid,1); + if (! pp) break; + if (strmatch(pp,"curves")) { + if (! sd) goto baddata; + err = splcurve_load(sd,fid); // load curves data + if (err) goto baddata; + continue; + } + if (strmatch(pp,"end")) break; + pp1 = pp; + pp2 = strstr(pp1," =="); + if (! pp2) continue; // widget has no data + cc1 = pp2 - pp1; + if (cc1 > 100) continue; + pp1[cc1] = 0; + wname = pp1; // widget name + pp2 += 3; + if (*pp2 == ' ') pp2++; + wdata = pp2; // widget data + cc2 = strlen(wdata); + if (cc2 < 1) wdata = (char *) ""; + if (cc2 > 300) continue; + repl_1str(wdata,wdata2,"\\n","\n"); // replace "\n" with newline chars. + kk = zdialog_put_data(zd,wname,wdata2); + if (! kk) goto baddata; + } + + if (myfid) fclose(fid); + return 0; + +baddata: + zmessageACK(Mwin,ZTX("file data does not fit dialog")); + if (myfid) fclose(fid); + return 1; +} + + +int edit_save_widgets(editfunc *EF, FILE *fid) // 15.10 +{ + using namespace zfuncs; + + cchar *mess = ZTX("Save settings to a file"); + zdialog *zd; + spldat *sd; + int myfid = 0; + char *filename, dirname[200]; + char *wtype, *wname, *wdata, wdata2[1000]; + int ii, cc; + + cchar *editwidgets = "entry edit text togbutt check combo comboE " // widget types to save + "radio spin hscale vscale colorbutt"; + zd = EF->zd; + sd = EF->curves; + + if (! fid) // fid from script + { + snprintf(dirname,200,"%s/%s",get_zuserdir(),EF->funcname); // directory for data files + filename = zgetfile(mess,MWIN,"save",dirname,0); // open data file + if (! filename) return 1; // user cancel + fid = fopen(filename,"w"); + zfree(filename); + if (! fid) { + zmessageACK(Mwin,"%s \n %s",filename,strerror(errno)); + return 1; + } + myfid = 1; + } + + for (ii = 0; ii < zdmaxwidgets; ii++) + { + wtype = (char *) zd->widget[ii].type; + if (! wtype) break; + if (! strstr(editwidgets,wtype)) continue; + wname = (char *) zd->widget[ii].name; // write widget data recs: + wdata = zd->widget[ii].data; // widgetname == widgetdata + if (! wdata) continue; + cc = strlen(wdata); + if (cc > 900) continue; + repl_1str(wdata,wdata2,"\n","\\n"); + fprintf(fid,"%s == %s \n",wname,wdata); + } + + if (sd) { + fprintf(fid,"curves\n"); + splcurve_save(sd,fid); + } + + fprintf(fid,"end\n"); + + if (myfid) fclose(fid); + return 0; +} + + +// functions to support [prev] buttons in edit dialogs +// load or save last-used widgets + +int edit_load_prev_widgets(editfunc *EF) // 15.10 +{ + using namespace zfuncs; + + char filename[200]; + FILE *fid; + int err; + + snprintf(filename,200,"%s/%s/%s",get_zuserdir(),EF->funcname,"last-used"); + fid = fopen(filename,"r"); + if (! fid) { + zmessageACK(Mwin,"%s \n %s",filename,strerror(errno)); + return 1; + } + + err = edit_load_widgets(EF,fid); + fclose(fid); + return err; +} + + +int edit_save_last_widgets(editfunc *EF) // 15.10 +{ + using namespace zfuncs; + + char filename[200]; + FILE *fid; + int err; + + snprintf(filename,200,"%s/%s/%s",get_zuserdir(),EF->funcname,"last-used"); + fid = fopen(filename,"w"); + if (! fid) { + zmessageACK(Mwin,"%s \n %s",filename,strerror(errno)); + return 1; + } + + err = edit_save_widgets(EF,fid); + fclose(fid); + return err; +} + + +/******************************************************************************** + undo / redo menu buttons +*********************************************************************************/ + +// [undo/redo] menu function +// Call m_undo() / m_redo() if left / right mouse click on menu. +// If A key is pressed, undo or redo all edits. +// If middle mouse button is clicked, pop-up a list of all edit steps +// and choose a step to go back to. + +void m_undo_redo(GtkWidget *, cchar *) +{ + void undo_redo_choice(GtkWidget *, cchar *menu); + + GtkWidget *popmenu; + int button = zfuncs::vmenuclickbutton; + char menuitem[40], flag; + + F1_help_topic = "undo_redo"; + + if (button == 1) { + if (KBkey == GDK_KEY_a) undo_all(); // undo all steps + else m_undo(0,0); // undo one step + } + + if (button == 2) // go back to selected edit step 15.07 + { + if (URS_max == 0) return; + popmenu = create_popmenu(); + for (int ii = 0; ii < 30; ii++) { // insert all edit steps + if (ii > URS_max) break; + if (ii == URS_pos) flag = '*'; // flag step matching current status + else flag = ' '; + snprintf(menuitem,40,"%d %s %c",ii,URS_funcs[ii],flag); + add_popmenu_item(popmenu,menuitem,undo_redo_choice,(char *) &Nval[ii],0); + } + popup_menu(Mwin,popmenu); + } + + if (button == 3) { + if (KBkey == GDK_KEY_a) redo_all(); // redo all steps + else m_redo(0,0); // redo one step + } + + return; +} + + +// popup menu response function + +void undo_redo_choice(GtkWidget *, cchar *menu) // 15.07 +{ + int nn = *((int *) menu); + if (nn < 0 || nn > URS_max) return; + URS_pos = nn; + load_undo(); + return; +} + + +// [undo] menu function - reinstate previous edit in undo/redo stack + +void m_undo(GtkWidget *, cchar *) +{ + if (CEF) { // undo active edit + edit_undo(); + return; + } + if (URS_pos == 0) return; // undo past edit + URS_pos--; + load_undo(); + return; +} + + +// [redo] menu function - reinstate next edit in undo/redo stack + +void m_redo(GtkWidget *, cchar *) +{ + if (CEF) { // redo active edit + edit_redo(); + return; + } + if (URS_pos == URS_max) return; // redo past edit + URS_pos++; + load_undo(); + return; +} + + +// undo all edits of the current image +// (discard modifications) + +void undo_all() +{ + if (CEF) return; // not if edit active + if (URS_pos == 0) return; + URS_pos = 0; // original image + load_undo(); + return; +} + + +// redo all edits of the current image +// (reinstate all modifications) + +void redo_all() +{ + if (CEF) return; // not if edit active + if (URS_pos == URS_max) return; + URS_pos = URS_max;; // image with last edit applied + load_undo(); + return; +} + + +// Save E0 to undo/redo file stack +// stack position = URS_pos + +void save_undo() // overhauled for 4 GB files 16.03 +{ + char *pp, buff[24]; + FILE *fid; + int ww, hh, nc, nn; + uint cc1, cc2; + uint ccmax = 256 * MEGA; + + ww = E0pxm->ww; + hh = E0pxm->hh; + nc = E0pxm->nc; + + pp = strstr(URS_filename,"undo_"); // get undo/redo stack filename to use + if (! pp) zappcrash("undo/redo stack corrupted"); + snprintf(pp+5,3,"%02d",URS_pos); + + fid = fopen(URS_filename,"w"); + if (! fid) goto writefail; + + snprintf(buff,24,"fotoxx %05d %05d %d",ww,hh,nc); // write header + nn = fwrite(buff,20,1,fid); + if (nn != 1) goto writefail; + + cc1 = ww * hh * nc * sizeof(float); // write ww * hh RGB(A) pixels + cc2 = 0; + while (cc1) { + if (cc1 <= ccmax) { + pp = (char *) E0pxm->pixels; + nn = fwrite(pp+cc2,cc1,1,fid); + if (nn != 1) goto writefail; + break; + } + else { + pp = (char *) E0pxm->pixels; + nn = fwrite(pp+cc2,ccmax,1,fid); + if (nn != 1) goto writefail; + cc1 -= ccmax; + cc2 += ccmax; + } + } + + fclose(fid); + + if (URS_pos == 0) { // stack posn. 0 = original image + strcpy(URS_funcs[0],"original"); // function name for original image + URS_saved[0] = 1; // original image already on disk + } + else { // stack position + if (CEF_invalid()) return; // must have an edit function + strncpy0(URS_funcs[URS_pos],CEF->funcname,32); // edit function name + URS_saved[URS_pos] = 0; // not yet saved to disk + } + + return; + +writefail: + zmessageACK(Mwin,"undo/redo stack write failure: %d \n" + "(may be out of disk space)",errno); + shell_quiet("rm -R %s",tempdir); + exit(errno); +} + + +// Load E0 from undo/redo file stack +// stack position = URS_pos + +void load_undo() // overhauled 16.03 +{ + char *pp, buff[24]; + FILE *fid; + int ww, hh, nc, nn; + uint cc1, cc2; + uint ccmax = 256 * MEGA; + + pp = strstr(URS_filename,"undo_"); + if (! pp) goto readfail; + snprintf(pp+5,3,"%02d",URS_pos); + + fid = fopen(URS_filename,"r"); + if (! fid) goto readfail; + + nn = fread(buff,20,1,fid); + if (nn != 1) goto readfail; + nn = sscanf(buff,"fotoxx %d %d %d",&ww,&hh,&nc); + if (nn != 3) goto readfail; + + PXM_free(E0pxm); + E0pxm = PXM_make(ww,hh,nc); + + cc1 = ww * hh * nc * sizeof(float); + cc2 = 0; + while (cc1) { + if (cc1 <= ccmax) { + pp = (char *) E0pxm->pixels; + nn = fread(pp+cc2,cc1,1,fid); + if (nn != 1) goto readfail; + break; + } + else { + pp = (char *) E0pxm->pixels; + nn = fread(pp+cc2,ccmax,1,fid); + if (nn != 1) goto readfail; + cc1 -= ccmax; + cc2 += ccmax; + } + } + + fclose(fid); + + sa_validate(); // delete area if invalid + if (Cdrawin) Fpaintnow(); // update image synchronous + return; + +readfail: + zmessageACK(Mwin,"undo/redo stack read failure: %d \n",errno); + shell_quiet("rm -R %s",tempdir); + exit(errno); +} + + +/********************************************************************************/ + +// check for busy or pending conditions and message the user +// returns 1 if busy or pending condition +// 0 if nothing is pending or user decides to discard mods +// conditions: +// edit edit function is active (CEF not null) +// mods current file has unsaved mods (image or metadata edits) +// busy function is still running // 15.04 +// block edit function mutex flag // 15.04 +// all check all the above +// quiet suppress user message + +int checkpend(cchar *list) +{ + int edit, mods, busy, block, all, quiet, pend, choice; + cchar *modmess = ZTX("This action will discard changes to current image"); + cchar *activemess = ZTX("prior function still active"); + cchar *keep = ZTX("Keep"); + cchar *discard = ZTX("Discard"); + + edit = mods = busy = block = all = quiet = pend = 0; + + if (strstr(list,"edit")) edit = 1; + if (strstr(list,"mods")) mods = 1; + if (strstr(list,"busy")) busy = 1; + if (strstr(list,"block")) block = 1; + if (strstr(list,"all")) all = 1; + if (strstr(list,"quiet")) quiet = 1; + + if (all) edit = mods = busy = block = 1; + + if ((edit && CEF) || (busy && (Ffuncbusy | Fthreadbusy)) || (block && Fblock)) { + pend = 1; + if (! quiet) zmessage_post(Mwin,2,activemess); // 16.03 + } + + if (! pend && mods) { + if (CEF && CEF->Fmods && ! CEF->Fsaved) pend = 1; // active edits unsaved + if (URS_pos > 0 && URS_saved[URS_pos] == 0) pend = 1; // completed edits unsaved + if (Fmetamod) pend = 1; // metadata edits unsaved 15.03 + if (pend && ! quiet) { + choice = zdialog_choose(Mwin,modmess,keep,discard,null); // ask user + if (choice == 2) { // choice is discard + if (CEF && CEF->zd) + zdialog_send_event(CEF->zd,"cancel"); + if (URS_pos > 0) undo_all(); // undo prior edits + Fmetamod = 0; // discard metadata edits + pend = 0; + } + else m_viewmode(0,"F"); // keep - back to current image + } + } + + return pend; // 1 if something pending +} + + +/********************************************************************************/ + +// zdialog mouse capture and release + +void takeMouse(mcbFunc func, GdkCursor *cursor) // capture mouse for dialog +{ + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + freeMouse(); + mouseCBfunc = func; + Mcapture = 1; + gdk_window_set_cursor(gdkwin,cursor); + return; +} + +void freeMouse() // free mouse for main window +{ + zthreadcrash(); + + if (! Cdrawin) return; + if (! gdkwin) return; + if (! Mcapture) return; + mouseCBfunc = 0; + Mcapture = 0; + draw_mousearc(0,0,0,0,1); // remove mouse circle + gdk_window_set_cursor(gdkwin,0); // set normal cursor + return; +} + + +/******************************************************************************** + + functions to manage working threads + + main level thread management + start_thread(func,arg) start thread running + signal_thread() signal thread that work is pending + wait_thread_idle() wait for pending work complete + wrapup_thread(command) wait for exit or command thread exit + + thread function + thread_idle_loop() wait for pending work, exit if commanded + thread_exit() exit thread unconditionally + + thread_status (thread ownership + 0 no thread is running + 1 thread is running and idle (no work) + 2 thread is working + 0 thread has exited + + thread_command (main program ownership) + 0 idle, initial status + 8 exit when pending work is done + 9 exit now, unconditionally + + thread_pend work requested counter + thread_done work done counter + thread_hiwater high water mark + +*********************************************************************************/ + +// start thread that does the edit work + +void start_thread(threadfunc func, void *arg) +{ + CEF->thread_status = 1; // thread is running + CEF->thread_command = CEF->thread_pend = CEF->thread_done + = CEF->thread_hiwater = 0; // nothing pending + start_detached_thread(func,arg); + return; +} + + +// signal thread that new work is pending + +void signal_thread() +{ + if (CEF_invalid()) return; + if (CEF->thread_status > 0) CEF->thread_pend++; + return; +} + + +// wait for edit thread to complete pending work and become idle + +void wait_thread_idle() +{ + if (CEF_invalid()) return; + if (! CEF->thread_status) return; + if (CEF->thread_pend == CEF->thread_done) return; + while (CEF->thread_status && CEF->thread_pend > CEF->thread_done) { + zmainloop(); // 15.04 + zsleep(0.01); + if (CEF_invalid()) return; + } + return; +} + + +// wait for thread exit or command thread exit +// command = 0 wait for normal completion +// 8 finish pending work and exit +// 9 quit, exit now + +void wrapup_thread(int command) +{ + if (CEF_invalid()) return; + if (! CEF->thread_status) return; + CEF->thread_command = command; // tell thread to quit or finish + while (CEF->thread_status > 0) { // wait for thread to finish + zmainloop(); // 15.04 + zsleep(0.01); + if (CEF_invalid()) return; + } + return; +} + + +// called only from edit threads +// idle loop - wait for work request or exit command + +void thread_idle_loop() +{ + if (CEF_invalid()) thread_exit(); + if (CEF->thread_status == 2) zadd_locked(Fthreadbusy,-1); + CEF->thread_status = 1; // status = idle + CEF->thread_done = CEF->thread_hiwater; // work done = high-water mark + + while (true) + { + if (CEF->thread_command == 9) thread_exit(); // quit now command + if (CEF->thread_command == 8) // finish work and exit + if (CEF->thread_pend <= CEF->thread_done) thread_exit(); + if (CEF->thread_pend > CEF->thread_done) break; // wait for work request + zsleep(0.01); + } + + CEF->thread_hiwater = CEF->thread_pend; // set high-water mark + CEF->thread_status = 2; // thread is working + zadd_locked(Fthreadbusy,+1); + return; // perform edit +} + + +// exit thread unconditionally, called only from edit threads + +void thread_exit() +{ + wait_wthreads(); // wait for worker threads if any + if (CEF_invalid()) pthread_exit(0); + if (CEF->thread_status == 2) zadd_locked(Fthreadbusy,-1); + CEF->thread_pend = CEF->thread_done = CEF->thread_hiwater = 0; + CEF->thread_status = 0; + pthread_exit(0); // "return" cannot be used here +} + + +/********************************************************************************/ + +// edit support functions for worker threads (per processor core) + +void start_wthread(threadfunc func, void *arg) // start thread and increment busy count +{ // may be called from a thread + zadd_locked(Fthreadbusy,+1); + zadd_locked(wthreads_busy,+1); + start_detached_thread(func,arg); + return; +} + + +void exit_wthread() // decrement busy count and exit thread +{ + zadd_locked(Fthreadbusy,-1); + zadd_locked(wthreads_busy,-1); + pthread_exit(0); // "return" cannot be used here +} + + +void wait_wthreads(int block) // wait for all worker threads done +{ // may be called from thread or non-thread + if (CEF) { + while (wthreads_busy) { + zsleep(0.002); // 16.05 + if (block) continue; + zmainloop(); + } + if (CEF_invalid()) return; + } + else { + while (wthreads_busy) { + zsleep(0.002); // 16.05 + if (block) continue; + zmainloop(); + } + } + return; +} + + +/******************************************************************************** + other support functions +*********************************************************************************/ + +// table for loading and saving adjustable parameters between sessions + +typedef struct { + char name[20]; + char type[12]; + int count; + void *location; +} param; + +#define Nparms 39 +param paramTab[Nparms] = { +// name type count location +{ "fotoxx release", "char", 1, &Prelease }, +{ "first time", "int", 1, &Ffirsttime }, +{ "window geometry", "int", 4, &mwgeom }, +{ "thumbnail size", "int", 1, &navi::thumbsize }, +{ "menu style", "char", 1, &menu_style }, +{ "background color", "int", 3, &BGcolor }, +{ "gallery sort", "int", 1, &gallerysort }, +{ "icon size", "int", 1, &iconsize }, +{ "dialog font", "char", 1, &dialog_font }, +{ "drag option", "int", 1, &Fdragopt }, +{ "zoom count", "int", 1, &zoomcount }, +{ "map_dotsize", "int", 1, &map_dotsize }, +{ "show hidden", "int", 1, &Fshowhidden }, +{ "last version", "int", 1, &Flastversion }, +{ "curve node dist %", "float", 1, &splcurve_minx }, +{ "startup display", "char", 1, &startdisplay }, +{ "start image file", "char", 1, &startfile }, +{ "start directory", "char", 1, &startdirk }, +{ "last curr file", "char", 1, &last_curr_file }, +{ "last galleryname", "char", 1, &last_galleryname }, +{ "last gallerytype", "int", 1, &last_gallerytype }, +{ "copy/move location", "char", 1, ©move_loc }, +{ "grid base", "int", 10, &gridsettings[0] }, +{ "grid trim/rotate", "int", 10, &gridsettings[1] }, +{ "grid unbend", "int", 10, &gridsettings[2] }, +{ "grid warp curved", "int", 10, &gridsettings[3] }, +{ "grid warp linear", "int", 10, &gridsettings[4] }, +{ "grid warp affine", "int", 10, &gridsettings[5] }, +{ "RAW file types", "char", 1, &RAWfiletypes }, +{ "trim size", "int", 2, &trimsize }, +{ "trim buttons", "char", 6, &trimbuttons }, +{ "trim ratios", "char", 6, &trimratios }, +{ "edit resize", "int", 2, &editresize }, +{ "jpeg def quality", "int", 1, &jpeg_def_quality }, +{ "thumb file size", "int", 1, &thumbfilesize }, +{ "lens mm", "float", 1, &lens_mm }, +{ "cycledesktop_album", "char", 1, &cycledesktop_album }, +{ "cycledesktop_index", "int", 1, &cycledesktop_index }, +{ "printer color map", "char", 1, &colormapfile } }; + + +// save parameters to file /.../.fotoxx/parameters + +void save_params() +{ + FILE *fid; + char buff[1050], text[1000]; // limit for character data cc + char *name, *type; + int count; + void *location; + char **charloc; + int *intloc; + float *floatloc; + + last_curr_file = last_galleryname = 0; // save curr_file and gallery poop 15.07 + last_gallerytype = NONE; // for next session startup + if (curr_file && *curr_file == '/') + last_curr_file = zstrdup(curr_file); + if (navi::galleryname) { + last_galleryname = zstrdup(navi::galleryname); + last_gallerytype = navi::gallerytype; + } + + snprintf(buff,199,"%s/parameters",get_zuserdir()); // open output file + fid = fopen(buff,"w"); + if (! fid) return; + + for (int ii = 0; ii < Nparms; ii++) // write table of state data + { + name = paramTab[ii].name; + type = paramTab[ii].type; + count = paramTab[ii].count; + location = paramTab[ii].location; + charloc = (char **) location; + intloc = (int *) location; + floatloc = (float *) location; + + fprintf(fid,"%-20s %-8s %02d ",name,type,count); // write parm name, type, count + + for (int kk = 0; kk < count; kk++) // write "value" "value" ... + { + if (strmatch(type,"char")) { + if (! *charloc) break; // missing, discontinue this parameter + repl_1str(*charloc++,text,"\n","\\n"); // replace newlines with "\n" + fprintf(fid," \"%s\"",text); + } + if (strmatch(type,"int")) + fprintf(fid," \"%d\"",*intloc++); + + if (strmatch(type,"float")) + fprintf(fid," \"%.2f\"",*floatloc++); + } + + fprintf(fid,"\n"); // write EOR + } + + fprintf(fid,"\n"); + fclose(fid); // close file + + return; +} + + +// load parameters from file /.../.fotoxx/parameters + +void load_params() +{ + FILE *fid; + int ii, err, pcount; + int Idata; + float Fdata; + char buff[1000], text[1000], *pp; + char name[20], type[12], count[8], data[1000]; + void *location; + char **charloc; + int *intloc; + float *floatloc; + + snprintf(buff,199,"%s/parameters",get_zuserdir()); // open parameters file + fid = fopen(buff,"r"); + if (! fid) return; // none, defaults are used + + while (true) // read parameters + { + pp = fgets_trim(buff,999,fid,1); + if (! pp) break; + if (*pp == '#') continue; // comment + if (strlen(pp) < 40) continue; // rubbish + + err = 0; + + strncpy0(name,pp,20); // parm name + strTrim2(name); + + strncpy0(type,pp+22,8); // parm type + strTrim2(type); + + strncpy0(count,pp+32,4); // parm count + strTrim2(count); + err = convSI(count,pcount); + + strncpy0(data,pp+38,1000); // parm value(s) + strTrim2(data); + + for (ii = 0; ii < Nparms; ii++) // match file record to param table + { + if (! strmatch(name,paramTab[ii].name)) continue; // parm name + if (! strmatch(type,paramTab[ii].type)) continue; // parm type + if (paramTab[ii].count != pcount) continue; // parm count + break; + } + + if (ii == Nparms) continue; // not found, ignore file param + + location = paramTab[ii].location; // get parameter memory location + charloc = (char **) location; + intloc = (int *) location; + floatloc = (float *) location; + + for (ii = 1; ii <= pcount; ii++) // get parameter value(s) + { + pp = (char *) strField(data,' ',ii); + if (! pp) break; + + if (strmatch(type,"char")) { + repl_1str(pp,text,"\\n","\n"); // replace "\n" with real newlines + *charloc++ = zstrdup(text); + } + + if (strmatch(type,"int")) { + err = convSI(pp,Idata); + if (err) continue; + *intloc++ = Idata; + } + + if (strmatch(type,"float")) { + err = convSF(pp,Fdata); + if (err) continue; + *floatloc++ = Fdata; + } + } + } + + fclose(fid); + + for (ii = 0; ii < Nparms; ii++) // set any null strings to "" + { + if (! strmatch(paramTab[ii].type,"char")) continue; + charloc = (char **) paramTab[ii].location; + pcount = paramTab[ii].count; + for (int jj = 0; jj < pcount; jj++) + if (! charloc[jj]) + charloc[jj] = zstrdup("",20); + } + + zoomratio = pow( 2.0, 1.0 / zoomcount); // set zoom ratio from zoom count + return; +} + + +/********************************************************************************/ + +// free all resources associated with the current image file + +void free_resources(int fkeepundo) +{ + paintlock(1); // block window updates 16.02 + + if (! fkeepundo) + shell_quiet("rm -f %s/undo_*",tempdir); // remove undo/redo files + + if (Fshutdown) return; // stop here if shutdown mode + + URS_pos = URS_max = 0; // reset undo/redo stack + Fmetamod = 0; // no unsaved metadata changes 15.03 + sa_unselect(); // unselect select area + + draw_toplines(2); // no toplines + erase_topcircles(); // no topcircles + Ntoptext = 0; // no toptext + Fbusy_goal = 0; + + if (curr_file) { + if (zdsela) zdialog_free(zdsela); // kill select area dialog if active + freeMouse(); // free mouse + zfree(curr_file); // free image file + curr_file = 0; + *paneltext = 0; + } + + gtk_window_set_title(MWIN,Frelease); // sparse title 15.03 + + PXB_free(Fpxb); + PXM_free(E0pxm); + PXM_free(E1pxm); + PXM_free(E3pxm); + PXM_free(ERpxm); + PXM_free(E8pxm); + PXM_free(E9pxm); + + paintlock(0); // unblock window updates 16.02 + return; +} + + +/********************************************************************************/ + +// compare two floats for significant difference +// signf: e.g. 0.01 for 1% threshold of significance +// return: 0 difference not significant +// +1 d1 > d2 +// -1 d1 < d2 + +int sigdiff(float d1, float d2, float signf) +{ + float diff = fabsf(d1-d2); + if (diff == 0.0) return 0; + diff = diff / (fabsf(d1) + fabsf(d2)); + if (diff < signf) return 0; + if (d1 > d2) return 1; + else return -1; +} + + + diff -Nru fotoxx-16.06/fotoxx.h fotoxx-16.07/fotoxx.h --- fotoxx-16.06/fotoxx.h 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/fotoxx.h 2016-07-01 10:19:38.000000000 +0000 @@ -26,23 +26,25 @@ #include #include #include - -#include "zfuncs.h" - +#include "libraw/libraw.h" // libraw 16.07 #include // OSM libchamplain 16.05 #include #include +#include "zfuncs.h" + + // Fotoxx definitions -#define Frelease "Fotoxx 16.06" // Fotoxx release version +#define Frelease "Fotoxx 16.07" // Fotoxx release version #define Flicense "Free software - GNU General Public License v.3" #define Fhomepage "http://kornelix.net" -#define Fsoftware "Software used: GNU, GTK, libtiff, libpng, liblcms, DCraw, exiftool" #define Fcontact "Questions and bugs: kornelix@posteo.de" +#define Fsoftware "Software used: \n" \ + " GNU, GTK, libtiff, libpng, liblcms, libraw, exiftool" // libraw 16.07 #define Ftranslators "Translators: \n" \ - " Doriano Blengino, Arthur Kalverboer, André Campos Rodovalho, \n" \ - " Peter Landgren, J. A. Miralles Puignau, Pierrick Pinot " + " Doriano Blengino, André Campos Rodovalho, \n" \ + " J. A. Miralles Puignau " #define MEGA (1024 * 1024) // 1 million as 2**20 #define PI 3.141592654 #define RAD (180.0/PI) @@ -134,7 +136,7 @@ extern pthread_t tid_main; // main() thread ID } -// externals from f.file and f.gallry +// externals from f.file and f.gallery enum FTYPE { FNF, FDIR, IMAGE, RAW, THUMB, OTHER }; // file types, FNF = file not found enum GTYPE { NONE, GDIR, SEARCH, METADATA, ALBUM, RECENT, NEWEST }; // gallery types @@ -143,9 +145,9 @@ extern char *galleryname; // directory path or gallery type name extern GTYPE gallerytype; // gallery type: directory, recent, etc. extern int topfileposn; // gallery window target scroll position - extern int nfiles; // gallery file count (incl. subdirks) - extern int ndirs; // gallery subdirectory count - extern int nimages; // gallery image file count + extern int Nfiles; // gallery file count (incl. subdirks) + extern int Ndirs; // gallery subdirectory count + extern int Nimages; // gallery image file count extern char **mdlist; // corresp. metadata list extern int mdrows; // text rows in metadata list extern int xwinW, xwinH; // image gallery window size @@ -175,7 +177,6 @@ EX GtkWidget *Cdrawin; // curr. drawing window, Fdrawin/Wdrawin EX GdkWindow *gdkwin; // corresp. GDK window EX cairo_t *mwcr; // cairo context for drawing windows -EX GdkRGBA BGcolor; // window background color 16.01 EX PIXBUF *BGpixbuf; // window background pixbuf EX GdkCursor *arrowcursor; // main window cursors @@ -189,6 +190,7 @@ // user options EX char *menu_style; // menu style: icons/text/both +EX int BGcolor[3]; // window background color, RGB 0-255 16.07 EX int gallerysort; // gallery sort: 1/2/3 = alpha/file/photo EX int iconsize; // menu icon size EX char *dialog_font; // dialog font e.g. "sans 10" 16.05 @@ -203,7 +205,6 @@ EX int zoomcount; // zoom count to reach 2x (1-8) EX float zoomratio; // corresp. zoom ratio: 2**(1/zoomcount) EX int map_dotsize; // map dot size / mouse capture size 16.01 -EX char *DCrawcommand; // command, RAW to tiff using DCraw EX char *RAWfiletypes; // known RAW file types: .raw .rw2 ... EX char *myRAWtypes; // RAW types encountered @@ -243,6 +244,10 @@ EX char *shortcutmenu[50]; // corresponding menu names EX int Nshortcuts; // count of entries +EX int Frawtherapee; // flag, Raw Therapee available +EX int Fgrowisofs; // flag, growisofs available 16.02 +EX int PTtools; // flag, pano tools available + EX int Fshutdown; // app shutdown underway EX int Fdebug; // debug flag EX int Fnoindex; // disable image index at startup 15.02 @@ -254,13 +259,6 @@ EX int Fblock; // edit functions mutex flag 15.04 EX int Ffuncbusy; // function is busy/working EX int Fthreadbusy; // thread is busy/working - -EX int Fdcraw; // flag, DCraw available -EX int Fufraw; // flag, UFraw available -EX int Frawtherapee; // flag, Raw Therapee available -EX int Fgrowisofs; // flag, growisofs available 16.02 -EX int PTtools; // flag, pano tools available - EX int Ffullscreen; // flag, window is fullscreen EX int Fpanelshow; // show or hide F view top panel 16.02 EX int Fpaintrequest; // window paint request pending 15.05 @@ -315,6 +313,7 @@ EX char *last_galleryname; // galleryname in last session EX GTYPE last_gallerytype; // gallerytype in last session EX char *colormapfile; // curr. printer color map file +EX char *copymove_loc; // copy/move directory last used EX char f_load_type[8]; // data set by f_load() EX int f_load_bpc, f_load_size; @@ -338,6 +337,7 @@ EX char mashup_dirk[200]; // directory for mashup projects EX char KBshortcuts[200]; // keyboard shortcuts file EX char quickstart_file[200]; // quick start image file +EX char filecachefile[200]; // albums, file cache file 16.07 EX char slideshow_dirk[200]; // directory for slide show files EX char slideshow_trans_dirk[200]; // directory for slide show transition files EX char pattern_dirk[200]; // directory for pattern files @@ -497,13 +497,12 @@ EX int *sa_stackii; EX int sa_maxstack; EX int sa_Nstack; -EX int sa_finOK; // finish area - success -EX int sa_finhole; // finish area - area has a hole EX int sa_currseq; // current select sequence no. EX int sa_Ncurrseq; // current sequence pixel count EX char *sa_pixselc; // maps pixels selected in current cycle EX uint16 *sa_pixmap; // 0/1/2+ = outside/edge/inside edge dist EX uint sa_Npixel; // total select area pixel count +EX uint8 *sa_hairy_alpha; // m_select_hairy() transparency poop EX int sa_fww, sa_fhh; // valid image dimensions for select area EX int Fshowarea; // show select area outline EX int areanumber; // increasing sequential number @@ -612,8 +611,8 @@ EX zdialog *zdfilesave; // file save zdialog EX zdialog *zdrename; // rename file zdialog EX zdialog *zdcopymove; // copy/move file zdialog -EX zdialog *zddeltrash; // delete/trash zdialog 16.06 -EX zdialog *zdupright; // upright file zdialog 16.06 +EX zdialog *zddeltrash; // delete/trash zdialog 16.06 +EX zdialog *zdupright; // upright file zdialog 16.06 EX zdialog *zdsela; // select area zdialog EX zdialog *zdmagnify; // magnify image zdialog EX zdialog *zd_gallery_getfiles; // gallery_getfiles zdialog @@ -650,6 +649,7 @@ void Fpaintnow(); // window repaint synchronously void Fpaint2(); // window repaint (thread callable) void Fpaint3(int px, int py, int ww, int hh); // update Mpxb area from updated E3 area +void Fpaint0(int px, int py, int ww, int hh); // update Mpxb area from updated E0 area void Fpaint4(int px, int py, int ww, int hh); // update Dpxb area from updated Mpxb void mouse_event(GtkWidget *, GdkEventButton *, void *); // mouse event function void m_zoom(GtkWidget *, cchar *); // zoom image +/- @@ -765,7 +765,7 @@ void m_create(GtkWidget *, cchar *); // create new blank image file, dialog int create_blank_file(cchar *file, int ww, int hh, int RGB[3]); // create new blank image file, callable void m_rename(GtkWidget *, cchar *); // rename an image file (same location) -void m_copy_move(GtkWidget *, cchar *); // copy or move an image file to a new location +void m_copy_move(GtkWidget *, cchar *); // copy or move image file to new location void m_copyto_clip(GtkWidget *, cchar *file); // copy an image file to the clipboard void m_delete_trash(GtkWidget *, cchar *); // delete or trash an image file void m_print(GtkWidget *, cchar *); // print an image file @@ -811,7 +811,7 @@ void m_meta_delete(GtkWidget *, cchar *); // delete EXIF/IPTC data void m_batch_tags(GtkWidget *, cchar *); // add/remove tags for selected files void m_batch_rename_tags(GtkWidget *, cchar *); // rename tags for all image files -void m_batch_change_metadata(GtkWidget *, cchar *); // add/change/delete metadata, selected files +void m_batch_change_metadata(GtkWidget *, cchar *); // add/change/delete metadata, many files void m_batch_report_metadata(GtkWidget *, cchar *); // batch metadata report void metadate_pdate(cchar *metadate, char *pdate, char *ptime); // "yyyymmddhhmm" > "yyyy-mm-dd" + "hh:mm" void load_filemeta(cchar *file); // load metadata for image file @@ -846,16 +846,17 @@ // select area menu functions (f.area.cc) void m_select(GtkWidget *, cchar *); // select area within image +void m_select_find_gap(GtkWidget *, cchar *); // find gap in area outline +void m_select_hairy(GtkWidget *, cchar *); // select hairy or irregular edge void m_select_show(GtkWidget *, cchar *); // enable area for subsequent edits void m_select_hide(GtkWidget *, cchar *); // show area outline void m_select_enable(GtkWidget *, cchar *); // hide area outline void m_select_disable(GtkWidget *, cchar *); // disable area void m_select_invert(GtkWidget *, cchar *); // invert area void m_select_unselect(GtkWidget *, cchar *); // unselect area -void m_select_copy(GtkWidget *, cchar *); // copy an area for later paste +void m_select_save(GtkWidget *, cchar *); // copy area or save area to a file void m_select_paste(GtkWidget *, cchar *); // paste last copied area into image void m_select_open(GtkWidget *, cchar *); // open file and paste as area in image -void m_select_save(GtkWidget *, cchar *); // save area to file with alpha channel void sa_geom_mousefunc(); // select rectangle or ellipse void sa_draw_mousefunc(); // edge line drawing function int sa_nearpix(int mx, int my, int rad, int &px, int &py, int fx); // find nearest pixel @@ -947,7 +948,7 @@ void m_gradblur(GtkWidget *, cchar *); // graduated blur tool void m_emboss(GtkWidget *, cchar *); // convert image to simulated embossing void m_tiles(GtkWidget *, cchar *); // convert image to tile array (pixelate) -void m_dots(GtkWidget *, cchar *); // convert image to dot array (Roy Lichtenstein) +void m_dots(GtkWidget *, cchar *); // convert image to dots (Roy Lichtenstein) void m_painting(GtkWidget *, cchar *); // convert image to simulated painting void m_vignette(GtkWidget *, cchar *); // vignette tool void m_texture(GtkWidget *, cchar *); // add texture to image @@ -981,10 +982,10 @@ int KBshortcuts_load(); // load KB shortcuts at startup time void m_show_brdist(GtkWidget *, cchar *); // show brightness distribution graph void brdist_drawgraph(GtkWidget *drawin, cairo_t *cr, int *); // draw brightness distribution graph -void brdist_drawscale(GtkWidget *drawarea, cairo_t *cr, int *); // draw brightness scale, black to white stripe +void brdist_drawscale(GtkWidget *drawarea, cairo_t *cr, int *); // draw brightness scale, black to white band void m_gridlines(GtkWidget *, cchar *); // grid lines setup dialog void toggle_grid(int action); // set grid off/on or toggle (0/1/2) -void m_line_color(GtkWidget *, cchar *); // foreground line color (area, mouse, trim ...) +void m_line_color(GtkWidget *, cchar *); // foreground line color (area/mouse/trim...) void m_show_RGB(GtkWidget *, cchar *); // show RGB values at mouse click void m_magnify(GtkWidget *, cchar *); // magnify image within a radius of the mouse void m_darkbrite(GtkWidget *, cchar *); // highlight the darkest and brightest pixels @@ -1002,9 +1003,10 @@ char * gallery(cchar *filez, cchar *action, int Nth = 0); // display image gallery window, navigate void set_gwin_title(); // main window title = gallery name -char * gallery_getnext(int index, int lastver, int jumpgallery); // get prev/next file with last version option +char * gallery_getnext(int index, int lastver); // get prev/next file with last version option +char * prev_next_gallery(int index); // get prev/next gallery (physical directory) int gallery_position(cchar *file, int Nth); // get rel. position of file in gallery -FTYPE image_file_type(cchar *file); // get file type: FNF DIRK IMAGE RAW THUMB OTHER +FTYPE image_file_type(cchar *file); // file type: FNF DIRK IMAGE RAW THUMB OTHER char * thumb2imagefile(cchar *thumbfile); // get image file for thumbnail file char * image2thumbfile(cchar *imagefile); // get thumbnail file for image file char * image_thumbfile(char *imagefile, int *ind = 0); // get thumbnail filespec, create if missing @@ -1035,8 +1037,6 @@ void conv_albums(char **, char **, int); // convert after files renamed/moved void m_copyto_cache(GtkWidget *, cchar *); // copy an image file to the file cache int file_addtocache(char *file); // add image file to file cache -char * file_removefromcache(); // get image file from cache -void file_clearcache(); // clear image file cache void m_slideshow(GtkWidget *, cchar *); // enter or leave slideshow mode void ss_imageprefs_Lclick_func(int Nth); // slideshow image prefs thumbnail click func void slideshow_next(cchar *); // show prev/next image @@ -1050,8 +1050,8 @@ int batch_sharp_func(PXM *pxm, int amount, int thresh); // callable sharpen func used by batch funcs void m_batch_upright(GtkWidget *, cchar *); // upright rotated image files void m_batch_deltrash(GtkWidget *, cchar *); // delete or trash selected files -void m_batch_dcraw(GtkWidget *, cchar *); // convert RAW files to tiff with DCraw -void m_batch_rawtherapee(GtkWidget *, cchar *); // convert RAW files to tiff with Raw Therapee +void m_batch_raw(GtkWidget *, cchar *); // convert RAW files with libraw 16.07 +void m_batch_rawtherapee(GtkWidget *, cchar *); // convert RAW files with Raw Therapee void m_scriptfiles(GtkWidget *, cchar *); // build and run edit script files 15.10 int addscript(editfunc *); // add edit function to script 15.10 void m_burn(GtkWidget *, cchar *); // burn selected images to CD/DVD @@ -1108,6 +1108,7 @@ #define Bchoose ZTX("Choose") #define Bclear ZTX("Clear") #define Bcolor ZTX("Color") +#define Bcompleted ZTX("COMPLETED") #define Bcontinue ZTX("continue") #define Bcontrast ZTX("Contrast") #define Bcopy ZTX("Copy") @@ -1175,7 +1176,6 @@ #define Bright ZTX("right") #define Brotate ZTX("Rotate") #define Bsave ZTX("Save") -#define Bsavetoedit ZTX("Unknown file type, save as tiff/jpeg/png to edit") #define Bsearch ZTX("Search") #define Bseconds ZTX("Seconds") #define Bselect ZTX("Select") diff -Nru fotoxx-16.06/f.repair.cc fotoxx-16.07/f.repair.cc --- fotoxx-16.06/f.repair.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.repair.cc 2016-07-01 10:19:38.000000000 +0000 @@ -1170,7 +1170,7 @@ namespace denoise { enum denoise_method - { minmax, stdev, median, tophat, waves, thresh } + { flatten, median, tophat, wavelets } denoise_method; int denoise_radius; @@ -1220,12 +1220,10 @@ | Noise Reduction | | Apply repeatedly while watching the image. | | | - | [_] Flatten 1 Radius [___+|-] | - | [_] Flatten 2 Radius [___+|-] | - | [_] Median Radius [___+|-] | - | [_] Top Hat Radius [___+|-] | - | [x] Wavelets Threshold [___+|-] | - | [_] Threshold Threshold [___+|-] | + | (o) Flatten Radius [___+|-] | + | (o) Median Radius [___+|-] | + | (o) Top Hat Radius [___+|-] | + | (o) Wavelets Threshold [___+|-] | | | | dark areas =========[]=========== all areas | | | @@ -1248,33 +1246,25 @@ zdialog_add_widget(zd,"vbox","vb4","hbvb",0,"homog|space=3"); zdialog_add_widget(zd,"label","space","hbvb",0,"space=2"); - zdialog_add_widget(zd,"check","minmax","vb1"); - zdialog_add_widget(zd,"check","stdev","vb1"); - zdialog_add_widget(zd,"check","median","vb1"); - zdialog_add_widget(zd,"check","tophat","vb1"); - zdialog_add_widget(zd,"check","waves","vb1"); - zdialog_add_widget(zd,"check","thresh","vb1"); + zdialog_add_widget(zd,"radio","flatten","vb1"); + zdialog_add_widget(zd,"radio","median","vb1"); + zdialog_add_widget(zd,"radio","tophat","vb1"); + zdialog_add_widget(zd,"radio","wavelets","vb1"); - zdialog_add_widget(zd,"label","labminmax","vb2",ZTX("Flatten 1")); - zdialog_add_widget(zd,"label","labstdev","vb2",ZTX("Flatten 2")); + zdialog_add_widget(zd,"label","labflatten","vb2",ZTX("Flatten")); zdialog_add_widget(zd,"label","labmedian","vb2",ZTX("Median")); zdialog_add_widget(zd,"label","labtophat","vb2","Top Hat"); zdialog_add_widget(zd,"label","labwavelets","vb2","Wavelets"); - zdialog_add_widget(zd,"label","labthreshold","vb2",Bthresh); - zdialog_add_widget(zd,"label","labradminmax","vb3",Bradius); - zdialog_add_widget(zd,"label","labradstdev","vb3",Bradius); + zdialog_add_widget(zd,"label","labradflatten","vb3",Bradius); zdialog_add_widget(zd,"label","labradmedian","vb3",Bradius); zdialog_add_widget(zd,"label","labradtophat","vb3",Bradius); - zdialog_add_widget(zd,"label","labwavesthresh","vb3",Bthresh); - zdialog_add_widget(zd,"label","labthreshthresh","vb3",Bthresh); + zdialog_add_widget(zd,"label","labwaveletsthresh","vb3",Bthresh); - zdialog_add_widget(zd,"spin","radminmax","vb4","1|9|1|1"); - zdialog_add_widget(zd,"spin","radstdev","vb4","1|9|1|3"); + zdialog_add_widget(zd,"spin","radflatten","vb4","1|9|1|3"); zdialog_add_widget(zd,"spin","radmedian","vb4","1|9|1|2"); - zdialog_add_widget(zd,"spin","radtophat","vb4","1|9|1|4"); - zdialog_add_widget(zd,"spin","wavesthresh","vb4","0.0|8|0.1|1"); - zdialog_add_widget(zd,"spin","threshthresh","vb4","0|50|1|3"); + zdialog_add_widget(zd,"spin","radtophat","vb4","1|9|1|2"); + zdialog_add_widget(zd,"spin","waveletsthresh","vb4","0.0|8|0.1|1"); zdialog_add_widget(zd,"hbox","hbdark","dialog",0,"space=5"); zdialog_add_widget(zd,"label","labdark","hbdark",ZTX("dark areas"),"space=8"); @@ -1296,13 +1286,15 @@ void denoise_measure(); int ii; + + wait_thread_idle(); // bugfix 16.07 if (strmatch(event,"apply")) zd->zstat = 2; // from script file if (strmatch(event,"done")) zd->zstat = 4; // from edit_setup() or f_save() if (strmatch(event,"enter")) zd->zstat = 4; // KB input if (strmatch(event,"cancel")) zd->zstat = 5; // from f_open() if (strmatch(event,"escape")) zd->zstat = 5; // escape = cancel 15.07 - + if (zd->zstat) { if (zd->zstat == 1) { // [measure] @@ -1338,31 +1330,23 @@ return 1; } - + zdialog_fetch(zd,"darkareas",denoise_darkareas); if (strmatch(event,"blendwidth")) signal_thread(); - if (strstr("minmax stdev median tophat waves thresh",event)) { // checkboxes work like radio buttons - zdialog_stuff(zd,"minmax",0); - zdialog_stuff(zd,"stdev",0); + if (strstr("flatten median tophat wavelets",event)) { // checkboxes work like radio buttons + zdialog_stuff(zd,"flatten",0); zdialog_stuff(zd,"median",0); zdialog_stuff(zd,"tophat",0); - zdialog_stuff(zd,"waves",0); - zdialog_stuff(zd,"thresh",0); + zdialog_stuff(zd,"wavelets",0); zdialog_stuff(zd,event,1); } - zdialog_fetch(zd,"minmax",ii); - if (ii) { - denoise_method = minmax; - zdialog_fetch(zd,"radminmax",denoise_radius); - } - - zdialog_fetch(zd,"stdev",ii); + zdialog_fetch(zd,"flatten",ii); if (ii) { - denoise_method = stdev; - zdialog_fetch(zd,"radstdev",denoise_radius); + denoise_method = flatten; + zdialog_fetch(zd,"radflatten",denoise_radius); } zdialog_fetch(zd,"median",ii); @@ -1377,16 +1361,10 @@ zdialog_fetch(zd,"radtophat",denoise_radius); } - zdialog_fetch(zd,"waves",ii); + zdialog_fetch(zd,"wavelets",ii); if (ii) { - denoise_method = waves; - zdialog_fetch(zd,"wavesthresh",denoise_thresh); - } - - zdialog_fetch(zd,"thresh",ii); - if (ii) { - denoise_method = thresh; - zdialog_fetch(zd,"threshthresh",denoise_thresh); + denoise_method = wavelets; + zdialog_fetch(zd,"waveletsthresh",denoise_thresh); } return 1; @@ -1401,7 +1379,6 @@ void * denoise_wthread(void *arg); void * denoise_wavelet_wthread(void *arg); - void denoise_threshold(); int ii, px, py, dist = 0; float *pix3, *pix9; @@ -1413,16 +1390,13 @@ E9pxm = PXM_copy(E3pxm); // image3 is source, image9 is modified - if (denoise_method == waves) // wavelet method + if (denoise_method == wavelets) // wavelet method { for (ii = 0; ii < 3; ii++) // start worker threads for wavelet denoise start_wthread(denoise_wavelet_wthread,&Nval[ii]); // (one thread per RGB color) wait_wthreads(); // wait for completion } - else if (denoise_method == thresh) // do threshold denoise - denoise_threshold(); // (multiple worker threads) - else // other method { if (sa_stat == 3) Fbusy_goal = sa_Npixel; @@ -1474,8 +1448,7 @@ { using namespace denoise; - void denoise_minmax(float *pix3, float *pix9); - void denoise_stdev(float *pix3, float *pix9); + void denoise_flatten(float *pix3, float *pix9); void denoise_median(float *pix3, float *pix9); void denoise_tophat(float *pix3, float *pix9); @@ -1498,8 +1471,7 @@ pix3 = PXMpix(E3pxm,px,py); // source pixel pix9 = PXMpix(E9pxm,px,py); // target pixel - if (denoise_method == minmax) denoise_minmax(pix3,pix9); - if (denoise_method == stdev) denoise_stdev(pix3,pix9); + if (denoise_method == flatten) denoise_flatten(pix3,pix9); if (denoise_method == median) denoise_median(pix3,pix9); if (denoise_method == tophat) denoise_tophat(pix3,pix9); @@ -1522,55 +1494,12 @@ // ------------------------------------------------------------------------------ -// Flatten outliers within radius, by color. -// An outlier is the max or min RGB value within a radius. - -void denoise_minmax(float *pix3, float *pix9) -{ - using namespace denoise; - - int dy, dx, rad; - int minR, minG, minB, maxR, maxG, maxB; - float *pixN; - int nc = E3pxm->nc; // 15.09 - - minR = minG = minB = 255; - maxR = maxG = maxB = 0; - rad = denoise_radius; - - for (dy = -rad; dy <= rad; dy++) // loop surrounding pixels - for (dx = -rad; dx <= rad; dx++) - { - if (dy == 0 && dx == 0) continue; // skip self - - pixN = pix3 + (dy * ww + dx) * nc; // 15.09 - - if (pixN[0] < minR) minR = pixN[0]; // find min and max per color - if (pixN[0] > maxR) maxR = pixN[0]; - if (pixN[1] < minG) minG = pixN[1]; - if (pixN[1] > maxG) maxG = pixN[1]; - if (pixN[2] < minB) minB = pixN[2]; - if (pixN[2] > maxB) maxB = pixN[2]; - } - - if (pix3[0] <= minR && minR < 255) pix9[0] = minR + 1; // if outlier, flatten a little - if (pix3[0] >= maxR && maxR > 1) pix9[0] = maxR - 1; - if (pix3[1] <= minG && minG < 255) pix9[1] = minG + 1; - if (pix3[1] >= maxG && maxG > 1) pix9[1] = maxG - 1; - if (pix3[2] <= minB && minB < 255) pix9[2] = minB + 1; - if (pix3[2] >= maxB && maxB > 1) pix9[2] = maxB - 1; - - return; -} - - -// ------------------------------------------------------------------------------ - -// Flatten outliers. +// Flatten: +// Flatten outlyer pixels within neighborhood group. // An outlier pixel has an RGB value outside one sigma of // the mean for all pixels within a given radius. -void denoise_stdev(float *pix3, float *pix9) +void denoise_flatten(float *pix3, float *pix9) { using namespace denoise; @@ -1602,15 +1531,10 @@ variance = nn1 * (sum2 - 2.0 * mean * sum) + mean * mean; sigma = sqrtf(variance); - val = pix3[rgb]; - if (val > mean + sigma) { // move value to mean +/- sigma - val = mean + sigma; - pix9[rgb] = val; - } - else if (val < mean - sigma) { - val = mean - sigma; - pix9[rgb] = val; - } + if (pix3[rgb] > mean + sigma) // if | pixel - mean | > sigma 16.07 + pix9[rgb] = mean + 0.8 * sigma; // flatten pixel + else if (pix3[rgb] < mean - sigma) + pix9[rgb] = mean - 0.8 * sigma; } return; @@ -1619,7 +1543,8 @@ // ------------------------------------------------------------------------------ -// use median RGB brightness for pixels within radius +// Median: +// Use median RGB brightness for pixels within radius void denoise_median(float *pix3, float *pix9) { @@ -1653,7 +1578,8 @@ // ------------------------------------------------------------------------------ -// Modified top hat filter: execute with increasing radius from 1 to limit. +// Top Hat: +// Execute with increasing radius from 1 to limit. // Detect outlier by comparing with pixels along outer radius only. void denoise_tophat(float *pix3, float *pix9) @@ -1686,14 +1612,12 @@ if (pixN[2] > maxB) maxB = pixN[2]; } - if (minR + minG + minB > 3 * denoise_darkareas) continue; // skip brighter areas 15.01 - - if (pix3[0] < minR && pix9[0] < 255) pix9[0]++; // if central pixel is outlier, - if (pix3[0] > maxR && pix9[0] > 1) pix9[0]--; // moderate its values - if (pix3[1] < minG && pix9[1] < 255) pix9[1]++; - if (pix3[1] > maxG && pix9[1] > 1) pix9[1]--; - if (pix3[2] < minB && pix9[2] < 255) pix9[2]++; - if (pix3[2] > maxB && pix9[2] > 1) pix9[2]--; + if (pix3[0] < minR && pix9[0] < 254) pix9[0] += 2; // if central pixel is outlier, 16.07 + if (pix3[0] > maxR && pix9[0] > 2) pix9[0] -= 2; // moderate its values + if (pix3[1] < minG && pix9[1] < 254) pix9[1] += 2; + if (pix3[1] > maxG && pix9[1] > 2) pix9[1] -= 2; + if (pix3[2] < minB && pix9[2] < 254) pix9[2] += 2; + if (pix3[2] > maxB && pix9[2] > 2) pix9[2] -= 2; } return; @@ -1702,6 +1626,7 @@ // ------------------------------------------------------------------------------ +// Wavelet: // worker thread for wavelets method // do wavelet denoise for one color in each of 3 threads @@ -1818,7 +1743,7 @@ { lpass = ((lev & 1) + 1); // 1, 2, 1, 2, 1 - for (row = 0; row < hh2; row++) // average row pixels + for (row = 0; row < hh2; row++) // average row pixels { denoise_wavelet_avgpix(temp, fimg[hpass] + row * ww2, 1, ww2, 1 << lev); @@ -1826,7 +1751,7 @@ fimg[lpass][row * ww2 + col] = temp[col]; } - for (col = 0; col < ww2; col++) // average column pixels + for (col = 0; col < ww2; col++) // average column pixels { denoise_wavelet_avgpix(temp, fimg[lpass] + col, ww2, hh2, 1 << lev); @@ -1931,237 +1856,6 @@ // ------------------------------------------------------------------------------ -// threshold denoise function - -void denoise_threshold() // 15.06 -{ - using namespace denoise; - - void * denoise_threshold_wthread1(void *arg); // worker threads - void * denoise_threshold_wthread2(void *arg); - - int cc, ii, nn, px, py; - - cc = ww * hh; - Fpix = (char *) zmalloc(cc); // memory for feature pixels - Gpix = (char *) zmalloc(cc); - - memset(Fpix,0,cc); - - for (ii = 0; ii < NWT; ii++) // start worker threads 1 - start_wthread(denoise_threshold_wthread1,&Nval[ii]); - wait_wthreads(); // wait for completion - - memcpy(Gpix,Fpix,cc); - - for (py = 3; py < hh-3; py++) // loop all image pixels - for (px = 3; px < ww-3; px++) - { - ii = py * ww + px; // consolidate feature pixel flags 15.10 - nn = Fpix[ii-ww-1] + Fpix[ii-ww] + Fpix[ii-ww+1] // look at 3x3 pixel block - + Fpix[ii-1] + Fpix[ii] + Fpix[ii+1] - + Fpix[ii+ww-1] + Fpix[ii+ww] + Fpix[ii+ww+1]; - if (nn < 3) Gpix[ii] = 0; - if (nn > 4) Gpix[ii] = 1; - } - - memcpy(Fpix,Gpix,cc); - - for (ii = 0; ii < NWT; ii++) // start worker threads 2 - start_wthread(denoise_threshold_wthread2,&Nval[ii]); - wait_wthreads(); // wait for completion - - zfree(Fpix); - zfree(Gpix); - - return; -} - - -void * denoise_threshold_wthread1(void *arg) // worker thread 1 function -{ - using namespace denoise; - - int index = *((int *) (arg)); - int px, py; - int ii, dist = 1; - float *pix3; - float *pixa, *pixb, *pixc, *pixd, *pixe, *pixf; - float cont, f1, f2; - float thresh = 10 * denoise_thresh; - int nc = E3pxm->nc; // 15.09 - - for (py = index+3; py < hh-3; py += NWT) // loop all image pixels - for (px = 3; px < ww-3; px++) - { - ii = py * ww + px; - - if (sa_stat == 3) { // select area active - dist = sa_pixmap[ii]; // distance from edge - if (! dist) continue; // outside pixel - } - - pix3 = PXMpix(E3pxm,px,py); // pixel being tested - - pixa = pix3-nc; // 3 pixels left in row 15.09 - pixb = pix3-2*nc; - pixc = pix3-3*nc; - pixd = pix3+nc; // 3 pixels right in row - pixe = pix3+2*nc; - pixf = pix3+3*nc; - - f1 = pixa[0] + pixb[0] + pixc[0]; // detect a threshold centered - f2 = pixd[0] + pixe[0] + pixf[0]; // on this pixel - cont = fabsf(f1-f2); - if (cont > thresh) { - Fpix[ii] = 1; // flag pixel - a likely feature edge - continue; - } - - f1 = pixa[1] + pixb[1] + pixc[1]; - f2 = pixd[1] + pixe[1] + pixf[1]; - cont = fabsf(f1-f2); - if (cont > thresh) { - Fpix[ii] = 1; - continue; - } - - f1 = pixa[2] + pixb[2] + pixc[2]; - f2 = pixd[2] + pixe[2] + pixf[2]; - cont = fabsf(f1-f2); - if (cont > thresh) { - Fpix[ii] = 1; - continue; - } - - pixa = pix3-ww*nc; // 3 pixels in column above 15.09 - pixb = pix3-ww*2*nc; - pixc = pix3-ww*3*nc; - pixd = pix3+ww*nc; // 3 pixels in column below - pixe = pix3+ww*2*nc; - pixf = pix3+ww*3*nc; - - f1 = pixa[0] + pixb[0] + pixc[0]; // repeat threshold detection - f2 = pixd[0] + pixe[0] + pixf[0]; - cont = fabsf(f1-f2); - if (cont > thresh) { - Fpix[ii] = 1; - continue; - } - - f1 = pixa[1] + pixb[1] + pixc[1]; - f2 = pixd[1] + pixe[1] + pixf[1]; - cont = fabsf(f1-f2); - if (cont > thresh) { - Fpix[ii] = 1; - continue; - } - - f1 = pixa[2] + pixb[2] + pixc[2]; - f2 = pixd[2] + pixe[2] + pixf[2]; - cont = fabsf(f1-f2); - if (cont > thresh) { - Fpix[ii] = 1; - continue; - } - } - - exit_wthread(); // exit thread - return 0; // not executed, avoid gcc warning -} - - -void * denoise_threshold_wthread2(void *arg) // worker thread 2 function -{ - using namespace denoise; - - int index = *((int *) (arg)); - int px, py, qx, qy; - int ii, jj, npix, dist = 1; - int rad, done[7][7]; - float *pix3, *pix9, T; - float R1, G1, B1, R3, G3, B3; - float f1, f2; - - for (py = index+4; py < hh-4; py += NWT) // loop all image pixels - for (px = 4; px < ww-4; px++) - { - ii = py * ww + px; - - if (sa_stat == 3) { // select area active - dist = sa_pixmap[ii]; // distance from edge - if (! dist) continue; // outside pixel - } - - pix3 = PXMpix(E3pxm,px,py); // pixel being tested - - R1 = pix3[0]; - G1 = pix3[1]; - B1 = pix3[2]; - - if (Fpix[ii]) // flagged as a feature - { - R3 = R1; // copy pixel to output - G3 = G1; - B3 = B1; - } - - else // not a feature - { - for (qx = -3; qx <= 3; qx++) // mark all neighbor pixels - for (qy = -3; qy <= 3; qy++) // "not done" - done[qx+3][qy+3] = 0; - - npix = 0; // replace pixel RGB values - R3 = G3 = B3 = 0; // with neighborhood means - - for (T = 0; T < 2*PI; T += 0.15) // loop angle 0 - 360 deg. 15.10 - for (rad = 0; rad <= 5; rad++) // loop radius 0 - 5 - { - qx = rad * cosf(T); // -3 ... +3 - qy = rad * sinf(T); - if (qx > 3 || qx < -3) continue; - if (qy > 3 || qy < -3) continue; - if (done[qx+3][qy+3]) continue; // skip if already done - done[qx+3][qy+3] = 1; // mark done - qx += px; - qy += py; - jj = qy * ww + qx; - if (Fpix[jj]) break; // ran into feature pixel - pix3 = PXMpix(E3pxm,qx,qy); - R3 += pix3[0]; // accumulate RGB values - G3 += pix3[1]; - B3 += pix3[2]; - npix++; - } - - R3 = R3 / npix; // RGB means - G3 = G3 / npix; - B3 = B3 / npix; - } - - if (sa_stat == 3 && dist < sa_blend) // select area active - { - f1 = 1.0 * dist / sa_blend; // blend changes over sa_blend - f2 = 1.0 - f1; - R3 = f1 * R3 + f2 * R1; - G3 = f1 * G3 + f2 * G1; - B3 = f1 * B3 + f2 * B1; - } - - pix9 = PXMpix(E9pxm,px,py); // output pixel in E9 image - pix9[0] = R3; - pix9[1] = G3; - pix9[2] = B3; - } - - exit_wthread(); // exit thread - return 0; // not executed, avoid gcc warning -} - - -// ------------------------------------------------------------------------------ - // dialog to measure noise at mouse click position void denoise_measure() // 15.06 @@ -6243,7 +5937,7 @@ greenx[5] = '0' + ii; bluex[4] = '0' + ii; zdialog_add_widget(zd,"hbox",hbdatx,"vbdat"); // add hbox "hbdat1" to "hbdat9" - zdialog_add_widget(zd,"spin",redx,hbdatx,limits,"space=3"); // add spin buttons for "red1" to "red9" etc. + zdialog_add_widget(zd,"spin",redx,hbdatx,limits,"space=3"); // add spin buttons "red1" to "red9" etc. zdialog_add_widget(zd,"spin",greenx,hbdatx,limits,"space=3"); zdialog_add_widget(zd,"spin",bluex,hbdatx,limits,"space=3"); } diff -Nru fotoxx-16.06/f.tools.cc fotoxx-16.07/f.tools.cc --- fotoxx-16.06/f.tools.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.tools.cc 2016-07-01 10:19:38.000000000 +0000 @@ -640,7 +640,7 @@ if (Fuserkill) goto retry; - wprintf(wlog,"%s\n",ZTX("COMPLETED")); // index complete and OK + wprintf(wlog,"%s\n",Bcompleted); // index complete and OK printz(statsmess,indexupdates,thumbupdates,thumbdeletes); // 16.04 printz("index time: %.1f seconds \n",get_seconds() - startime); // log elapsed time 15.08 @@ -930,6 +930,7 @@ int ii; zdialog *zd; char thumbsize[8]; + char bgcolor[20]; /*** ____________________________________________________________________ @@ -939,8 +940,9 @@ | [Browse] [______________________________________________________] | | | | Menu Style (o) Icons (o) Icons + Text Icon Size [___|-+] | + | Main window background color [#####] | 16.07 | Gallery Sort (o) alphabetic (o) mod date (o) photo date | - | Dialog font [sans 10 _________] [choose] | + | Dialog font and size [sans 10 _________] [choose] | | Image Pan/Scroll: [drag magnified |v] Zooms for 2x [___|-+] | | JPEG save quality [____|-+] Thumbnail size [___|v] | | Curve node capture distance [____|-+] | @@ -948,7 +950,6 @@ | [x] show hidden directories in gallery view | | [x] prev/next shows last file version only | | [x] shift image right when editing | - | RAW command [_________________________________________________] | | RAW file types [_______________________________________________] | | | | [done] | @@ -982,6 +983,10 @@ zdialog_add_widget(zd,"label","labis","hbmenu",ZTX("Icon size")); zdialog_add_widget(zd,"spin","iconsize","hbmenu","32|48|1|40","space=3"); + zdialog_add_widget(zd,"hbox","hbcolor","dialog"); // window background color 16.07 + zdialog_add_widget(zd,"label","labcolor","hbcolor",ZTX("Window background color"),"space=5"); + zdialog_add_widget(zd,"colorbutt","BGcolor","hbcolor"); + zdialog_add_widget(zd,"hbox","hbsort","dialog"); // gallery sort 16.01 zdialog_add_widget(zd,"label","labsort","hbsort",ZTX("Gallery Sort"),"space=5"); zdialog_add_widget(zd,"radio","sortalpha","hbsort",ZTX("alphabetic"),"space=3"); @@ -1029,10 +1034,6 @@ zdialog_add_widget(zd,"hbox","hbshiftright","dialog"); zdialog_add_widget(zd,"check","shiftright","hbshiftright",ZTX("shift image to right margin"),"space=5"); - zdialog_add_widget(zd,"hbox","hbrawcomm","dialog"); - zdialog_add_widget(zd,"label","rawlab1","hbrawcomm",ZTX("RAW command"),"space=5"); - zdialog_add_widget(zd,"entry","rawcomm","hbrawcomm","dcraw -w -q 0 -T -6","expand"); - zdialog_add_widget(zd,"hbox","hbrawfile","dialog"); zdialog_add_widget(zd,"label","rawlab2","hbrawfile",ZTX("RAW file types"),"space=5"); zdialog_add_widget(zd,"entry","rawtypes","hbrawfile",".raw .rw2","expand"); @@ -1054,6 +1055,9 @@ zdialog_stuff(zd,"icons",1); else zdialog_stuff(zd,"both",1); + snprintf(bgcolor,20,"%d|%d|%d",BGcolor[0],BGcolor[1],BGcolor[2]); // window background color 16.07 + zdialog_stuff(zd,"BGcolor",bgcolor); + zdialog_stuff(zd,"sortalpha",0); // gallery sort option 16.01 zdialog_stuff(zd,"sortfile",0); zdialog_stuff(zd,"sortphoto",0); @@ -1089,7 +1093,6 @@ zdialog_stuff(zd,"lastver",Flastversion); // prev/next shows last version only zdialog_stuff(zd,"shiftright",Fshiftright); // shift image to right margin 16.01 - zdialog_stuff(zd,"rawcomm",DCrawcommand); // RAW file conversion command zdialog_stuff(zd,"rawtypes",RAWfiletypes); // RAW file types options_fclone = 0; @@ -1117,7 +1120,9 @@ int ii, jj, nn; char *pp, temp[200]; + cchar *ppc; static char browsefile[500] = ""; + char bgcolor[20]; GtkWidget *font_dialog; if (strmatch(event,"escape")) zd->zstat = 2; // escape = cancel 15.07 @@ -1175,107 +1180,110 @@ dialog_font = zstrdup(pp); g_free(pp); } + + if (zd->zstat != 1) return 1; // wait for dialog completion - if (zd->zstat == 1) // done, check inputs are valid - { - zdialog_fetch(zd,"startopt",temp,200); // get startup option - for (ii = 0; ii < 7; ii++) { - if (strmatch(temp,startopt[ii][1])) { - zfree(startdisplay); - startdisplay = zstrdup(startopt[ii][0]); - } - } - - if (strmatch(startdisplay,"dirk")) { // startup option = directory - zdialog_fetch(zd,"browsefile",browsefile,500); // startup directory - if (startdirk) zfree(startdirk); - startdirk = zstrdup(browsefile); - if (image_file_type(startdirk) != FDIR) { - zmessageACK(Mwin,ZTX("startup directory is invalid")); - zd->zstat = 0; - return 1; - } + zdialog_fetch(zd,"startopt",temp,200); // get startup option + for (ii = 0; ii < 7; ii++) { + if (strmatch(temp,startopt[ii][1])) { + zfree(startdisplay); + startdisplay = zstrdup(startopt[ii][0]); } + } - if (strmatch(startdisplay,"file")) { // startup option = image file - zdialog_fetch(zd,"browsefile",browsefile,500); // startup file - if (startfile) zfree(startfile); - startfile = zstrdup(browsefile); - if (image_file_type(startfile) != IMAGE) { - zmessageACK(Mwin,ZTX("startup file is invalid")); - zd->zstat = 0; - return 1; - } + if (strmatch(startdisplay,"dirk")) { // startup option = directory + zdialog_fetch(zd,"browsefile",browsefile,500); // startup directory + if (startdirk) zfree(startdirk); + startdirk = zstrdup(browsefile); + if (image_file_type(startdirk) != FDIR) { + zmessageACK(Mwin,ZTX("startup directory is invalid")); + zd->zstat = 0; + return 1; } + } - zdialog_fetch(zd,"icons",nn); // menu type = icons - if (nn) { - if (! strmatch(menu_style,"icons")) { - zfree(menu_style); - menu_style = zstrdup("icons"); - options_fclone++; - } + if (strmatch(startdisplay,"file")) { // startup option = image file + zdialog_fetch(zd,"browsefile",browsefile,500); // startup file + if (startfile) zfree(startfile); + startfile = zstrdup(browsefile); + if (image_file_type(startfile) != IMAGE) { + zmessageACK(Mwin,ZTX("startup file is invalid")); + zd->zstat = 0; + return 1; } + } - zdialog_fetch(zd,"both",nn); // menu type = icons + text - if (nn) { - if (! strmatch(menu_style,"both")) { - zfree(menu_style); - menu_style = zstrdup("both"); - options_fclone++; - } + zdialog_fetch(zd,"icons",nn); // menu type = icons + if (nn) { + if (! strmatch(menu_style,"icons")) { + zfree(menu_style); + menu_style = zstrdup("icons"); + options_fclone++; } + } - zdialog_fetch(zd,"iconsize",nn); // icon size - if (nn != iconsize) { - iconsize = nn; + zdialog_fetch(zd,"both",nn); // menu type = icons + text + if (nn) { + if (! strmatch(menu_style,"both")) { + zfree(menu_style); + menu_style = zstrdup("both"); options_fclone++; } - - gallerysort = 1; - zdialog_fetch(zd,"sortalpha",nn); - if (nn) gallerysort = 1; - zdialog_fetch(zd,"sortfile",nn); - if (nn) gallerysort = 2; - zdialog_fetch(zd,"sortphoto",nn); - if (nn) gallerysort = 3; - - zdialog_fetch(zd,"panscroll",temp,200); // get drag/scroll option 15.07 - if strmatch(temp,"drag") Fdragopt = 1; - if strmatch(temp,"scroll") Fdragopt = 2; - if strmatch(temp,"drag magnified") Fdragopt = 3; - if strmatch(temp,"scroll magnified") Fdragopt = 4; - - zdialog_fetch(zd,"zoomcount",zoomcount); // zooms for 2x image, 1-4 - zoomratio = pow( 2.0, 1.0 / zoomcount); // 2.0, 1.4142, 1.2599, 1.1892 - - zdialog_fetch(zd,"quality",jpeg_def_quality); // default jpeg file save quality - zdialog_fetch(zd,"thumbsize",thumbfilesize); // thumbnail file pixel size 15.02 - zdialog_fetch(zd,"nodecap",splcurve_minx); // edit curve min. node distance 15.10 - zdialog_fetch(zd,"map_dotsize",map_dotsize); // map dot size 16.05 - zdialog_fetch(zd,"showhidden",Fshowhidden); // show hidden dirs in gallery view 15.04 - zdialog_fetch(zd,"lastver",Flastversion); // prev/next shows last version only - zdialog_fetch(zd,"shiftright",Fshiftright); // shift image to right margin 16.01 - - zdialog_fetch(zd,"rawcomm",temp,200); // command for RAW to tiff using DCraw - if (DCrawcommand) zfree(DCrawcommand); - DCrawcommand = zstrdup(temp); - - zdialog_fetch(zd,"rawtypes",temp,200); // RAW file types, .raw .rw2 ... - pp = zstrdup(temp,100); - - for (ii = jj = 0; temp[ii]; ii++) { // insure blanks between .raw types - if (temp[ii] == '.' && temp[ii-1] != ' ') pp[jj++] = ' '; - pp[jj++] = temp[ii]; - } - if (pp[jj-1] != ' ') pp[jj++] = ' '; // insure 1 final blank - pp[jj] = 0; - - if (RAWfiletypes) zfree(RAWfiletypes); - RAWfiletypes = pp; + } - save_params(); // done, save modified parameters + zdialog_fetch(zd,"iconsize",nn); // icon size + if (nn != iconsize) { + iconsize = nn; + options_fclone++; + } + + zdialog_fetch(zd,"BGcolor",bgcolor,20); // window background color 16.07 + ppc = strField(bgcolor,"|",1); + if (ppc) BGcolor[0] = atoi(ppc); + ppc = strField(bgcolor,"|",2); + if (ppc) BGcolor[1] = atoi(ppc); + ppc = strField(bgcolor,"|",3); + if (ppc) BGcolor[2] = atoi(ppc); + + gallerysort = 1; // gallery sort option + zdialog_fetch(zd,"sortalpha",nn); + if (nn) gallerysort = 1; + zdialog_fetch(zd,"sortfile",nn); + if (nn) gallerysort = 2; + zdialog_fetch(zd,"sortphoto",nn); + if (nn) gallerysort = 3; + + zdialog_fetch(zd,"panscroll",temp,200); // get drag/scroll option 15.07 + if strmatch(temp,"drag") Fdragopt = 1; + if strmatch(temp,"scroll") Fdragopt = 2; + if strmatch(temp,"drag magnified") Fdragopt = 3; + if strmatch(temp,"scroll magnified") Fdragopt = 4; + + zdialog_fetch(zd,"zoomcount",zoomcount); // zooms for 2x image, 1-4 + zoomratio = pow( 2.0, 1.0 / zoomcount); // 2.0, 1.4142, 1.2599, 1.1892 + + zdialog_fetch(zd,"quality",jpeg_def_quality); // default jpeg file save quality + zdialog_fetch(zd,"thumbsize",thumbfilesize); // thumbnail file pixel size 15.02 + zdialog_fetch(zd,"nodecap",splcurve_minx); // edit curve min. node distance 15.10 + zdialog_fetch(zd,"map_dotsize",map_dotsize); // map dot size 16.05 + zdialog_fetch(zd,"showhidden",Fshowhidden); // show hidden dirs in gallery view 15.04 + zdialog_fetch(zd,"lastver",Flastversion); // prev/next shows last version only + zdialog_fetch(zd,"shiftright",Fshiftright); // shift image to right margin 16.01 + + zdialog_fetch(zd,"rawtypes",temp,200); // RAW file types, .raw .rw2 ... + pp = zstrdup(temp,100); + + for (ii = jj = 0; temp[ii]; ii++) { // insure blanks between .raw types + if (temp[ii] == '.' && temp[ii-1] != ' ') pp[jj++] = ' '; + pp[jj++] = temp[ii]; } + if (pp[jj-1] != ' ') pp[jj++] = ' '; // insure 1 final blank + pp[jj] = 0; + + if (RAWfiletypes) zfree(RAWfiletypes); + RAWfiletypes = pp; + + save_params(); // done, save modified parameters return 1; } @@ -2329,6 +2337,7 @@ E0pxm = PXM_load(curr_file,1); // never edited, if (! E0pxm) return; // create E0 image for my use pxm = E0pxm; + curr_file_bpc = f_load_bpc; // 16.07 } if (Mxposn < 0 || Mxposn > pxm->ww-1) return; // mouse outside image, ignore diff -Nru fotoxx-16.06/f.widgets.cc fotoxx-16.07/f.widgets.cc --- fotoxx-16.06/f.widgets.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/f.widgets.cc 2016-07-01 10:19:38.000000000 +0000 @@ -228,7 +228,6 @@ cchar * prevfiles_tip = ZTX("Open the previously seen file"); cchar * recentfiles_tip = ZTX("Open a recently seen file"); cchar * newfiles_tip = ZTX("Open a newly added file"); - cchar * ufraw_tip = ZTX("Open and edit a camera RAW file"); cchar * rawtherapee_tip = ZTX("Open and edit a camera RAW file"); cchar * rename_tip = ZTX("Change the image file name"); cchar * copy_move_tip = ZTX("Copy or Move an image file to a new location"); @@ -255,6 +254,8 @@ // select area popup menu cchar * select_tip = ZTX("Select object or area for editing"); + cchar * select_find_gap_tip = ZTX("Find a gap in an area outline"); + cchar * select_hairy_tip = ZTX("Select hairy or irregular edge"); cchar * select_show_tip = ZTX("Show (outline) existing area"); cchar * select_hide_tip = ZTX("Hide existing area"); cchar * select_enable_tip = ZTX("Enable area for editing"); @@ -262,9 +263,9 @@ cchar * select_invert_tip = ZTX("Reverse existing area"); cchar * select_unselect_tip = ZTX("Erase existing area"); cchar * select_copy_tip = ZTX("Copy area for later pasting into image"); - cchar * select_paste_tip = ZTX("Paste previously copied area into image"); - cchar * select_open_tip = ZTX("Open a file and paste as area into image"); cchar * select_save_tip = ZTX("Save area to a file with transparency"); + cchar * select_open_tip = ZTX("Open a file and paste as area into image"); + cchar * select_paste_tip = ZTX("Paste previously copied area into image"); // edit popup menu cchar * trimrotate_tip = ZTX("Trim/Crop margins and/or Rotate"); @@ -369,7 +370,7 @@ cchar * batch_convert_tip = ZTX("Rename/convert/resize/move multiple files"); cchar * batch_upright_tip = ZTX("Upright multiple rotated image files"); cchar * batch_deltrash_tip = ZTX("Delete or Trash multiple files"); - cchar * batch_dcraw_tip = ZTX("Convert camera RAW files using DCraw"); + cchar * batch_raw_tip = ZTX("Convert camera RAW files using libraw"); // 16.07 cchar * batch_rawtherapee_tip = ZTX("Convert camera RAW files using Raw Therapee"); cchar * scriptfiles_tip = ZTX("Build and run edit script files"); cchar * burn_tip = ZTX("Burn selected image files to DVD/BlueRay disc"); @@ -422,7 +423,6 @@ MENUENT(mFile, ZTX("Newest Images"), 0, newfiles_tip, m_newfiles, 0 ); MENUENT(mFile, ZTX("Open Image File"), 0, open_tip, m_open, 0 ); MENUENT(mFile, ZTX("Open Previous File"), 0, prevfiles_tip, m_previous, 0 ); - MENUENT(mFile, ZTX("Open RAW (ufraw)"), 0, ufraw_tip, m_ufraw, 0 ); MENUENT(mFile, ZTX("Open RAW (Raw Therapee)"), 0, rawtherapee_tip, m_rawtherapee, 0 ); MENUENT(mFile, ZTX("New Blank Image"), 0, create_tip, m_create, 0 ); MENUENT(mFile, ZTX("Rename Image File"), 0, rename_tip, m_rename, 0 ); @@ -450,13 +450,15 @@ mArea = create_popmenu(); MENUENT(mArea, ZTX("Select"), 0, select_tip, m_select, 0 ); + MENUENT(mArea, ZTX("Find Gap"), 0, select_find_gap_tip, m_select_find_gap, 0 ); + MENUENT(mArea, ZTX("Select Hairy"), 0, select_hairy_tip, m_select_hairy, 0); MENUENT(mArea, ZTX("Show"), 0, select_show_tip, m_select_show, 0 ); MENUENT(mArea, ZTX("Hide"), 0, select_hide_tip, m_select_hide, 0 ); MENUENT(mArea, ZTX("Enable"), 0, select_enable_tip, m_select_enable, 0 ); MENUENT(mArea, ZTX("Disable"), 0, select_disable_tip, m_select_disable, 0 ); MENUENT(mArea, ZTX("Invert"), 0, select_invert_tip, m_select_invert, 0 ); MENUENT(mArea, ZTX("Unselect"), 0, select_unselect_tip, m_select_unselect, 0 ); - MENUENT(mArea, ZTX("Copy Area"), 0, select_copy_tip, m_select_copy, 0 ); + MENUENT(mArea, ZTX("Copy Area"), 0, select_copy_tip, m_select_save, 0 ); MENUENT(mArea, ZTX("Paste Area"), 0, select_paste_tip, m_select_paste, 0 ); MENUENT(mArea, ZTX("Open Area File"), 0, select_open_tip, m_select_open, 0 ); MENUENT(mArea, ZTX("Save Area File"), 0, select_save_tip, m_select_save, 0 ); @@ -564,8 +566,8 @@ MENUENT(mBatch, ZTX("Batch Convert"), 0, batch_convert_tip, m_batch_convert, 0 ); MENUENT(mBatch, ZTX("Batch Upright"), 0, batch_upright_tip, m_batch_upright, 0 ); MENUENT(mBatch, ZTX("Batch Delete/Trash"), 0, batch_deltrash_tip, m_batch_deltrash, 0 ); - MENUENT(mBatch, ZTX("Batch RAW (DCraw)"), 0, batch_dcraw_tip, m_batch_dcraw, 0 ); - MENUENT(mBatch, ZTX("Batch RAW (Raw Therapee)"), 0, batch_rawtherapee_tip, m_batch_rawtherapee, 0 ); + MENUENT(mBatch, ZTX("Batch RAW"), 0, batch_raw_tip, m_batch_raw, 0 ); // 16.07 + MENUENT(mBatch, ZTX("Batch Raw Therapee"), 0, batch_rawtherapee_tip, m_batch_rawtherapee, 0 ); // 16.07 MENUENT(mBatch, ZTX("Script Files"), 0, scriptfiles_tip, m_scriptfiles, 0 ); MENUENT(mBatch, ZTX("Burn Images to DVD/BlueRay"), 0, burn_tip, m_burn, 0 ); MENUENT(mBatch, ZTX("Find Duplicate Images"), 0, duplicates_tip, m_duplicates, 0 ); @@ -742,8 +744,7 @@ cchar *menuzonalflatten = ZTX("Zonal Flatten"); cchar *menutonemap = ZTX("Tone Mapping"); cchar *menuselect = ZTX("Select Area"); - cchar *menuopenraw1 = ZTX("Open RAW file (ufraw)"); - cchar *menuopenraw2 = ZTX("Open RAW file (Raw Therapee)"); + cchar *menuopenraw = ZTX("Open RAW file (Raw Therapee)"); cchar *menuOSMzoom = ZTX("Show on OSM Map"); cchar *menudeltrash = ZTX("Delete/Trash"); @@ -782,8 +783,7 @@ add_popmenu_item(popmenu_thumb,menudeltrash,popup_menufunc,"delete/trash"); popmenu_raw = create_popmenu(); // gallery thumbnail, RAW file - add_popmenu_item(popmenu_raw,menuopenraw1,m_ufraw,0); - add_popmenu_item(popmenu_raw,menuopenraw2,m_rawtherapee,0); + add_popmenu_item(popmenu_raw,menuopenraw,m_rawtherapee,0); add_popmenu_item(popmenu_raw,menumeta1,popup_menufunc,"view metadata"); add_popmenu_item(popmenu_raw,menurename,popup_menufunc,"rename"); add_popmenu_item(popmenu_raw,menucopymove,popup_menufunc,"copymove"); diff -Nru fotoxx-16.06/locales/translate-ca.po fotoxx-16.07/locales/translate-ca.po --- fotoxx-16.06/locales/translate-ca.po 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/locales/translate-ca.po 2016-07-01 10:19:38.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: home 2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-31 15:14+0200\n" -"PO-Revision-Date: 2016-01-04 23:42+0100\n" +"POT-Creation-Date: 2016-07-01 12:13+0200\n" +"PO-Revision-Date: 2016-06-06 23:15+0200\n" "Last-Translator: Josep Antoni Miralles Puignau \n" "Language-Team: Catalán, Valenciano <>\n" "Language: ca\n" @@ -17,7 +17,7 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: f.albums.cc:87 +#: f.albums.cc:93 msgid "" "Right-click album thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -25,252 +25,252 @@ "Ciic dret en la miniatura de l'àlbum per tallar/copiar \n" "a la caché, inserir des de la caché, o eliminar" -#: f.albums.cc:89 +#: f.albums.cc:95 msgid "Drag album thumbnail to new position." msgstr "Arrossegar miniatura de l'àlbum a la nova posició" -#: f.albums.cc:118 f.widgets.cc:583 +#: f.albums.cc:124 f.widgets.cc:585 msgid "Manage Albums" msgstr "Gestionar àlbums" -#: f.albums.cc:129 f.albums.cc:266 +#: f.albums.cc:136 f.albums.cc:273 msgid "Create or replace an album" msgstr "Crear o substituir un àlbum" -#: f.albums.cc:131 +#: f.albums.cc:138 msgid "Album to view or edit" msgstr "Àlbum per veure o editar" -#: f.albums.cc:133 +#: f.albums.cc:140 msgid "Select images, add to cache" msgstr "Seleccionar imatges, afegir a la cache" -#: f.albums.cc:135 +#: f.albums.cc:142 msgid "Clear image cache" msgstr "Netejar cache d'imatge" -#: f.albums.cc:137 f.albums.cc:159 +#: f.albums.cc:144 f.albums.cc:164 msgid "Delete an album" msgstr "Esborrar un àlbum" -#: f.albums.cc:158 +#: f.albums.cc:163 msgid "Choose Album" msgstr "Escollir un àlbum" -#: f.albums.cc:160 +#: f.albums.cc:165 #, c-format msgid "Image cache has %d images" msgstr "Cachè d'imatges té %d imatges" -#: f.albums.cc:161 +#: f.albums.cc:166 msgid "cache added to empty album" msgstr "caché afegida a un àlbum buit" -#: f.albums.cc:215 +#: f.albums.cc:220 #, c-format msgid "delete %s ?" msgstr "esborrar %s ?" -#: f.albums.cc:250 +#: f.albums.cc:257 #, c-format msgid "fill from image cache (%d images)" msgstr "emplenar des del cachè (%d imatges)" -#: f.albums.cc:268 f.albums.cc:305 +#: f.albums.cc:275 f.albums.cc:312 msgid "Album Name" msgstr "Nom de l'àlbum" -#: f.albums.cc:274 +#: f.albums.cc:281 msgid "make an initially empty album" msgstr "crear un àlbun buit" -#: f.albums.cc:276 +#: f.albums.cc:283 msgid "fill from current gallery" msgstr "emplenar des de la galeria actual" -#: f.albums.cc:319 +#: f.albums.cc:326 msgid "enter an album name" msgstr "entrar un nom d'àlbum" -#: f.albums.cc:346 +#: f.albums.cc:353 msgid "gallery is empty" msgstr "la galeria està buida" -#: f.albums.cc:373 +#: f.albums.cc:380 msgid "new album created" msgstr "creat nou àlbum" -#: f.albums.cc:1157 +#: f.albums.cc:1212 msgid "instant" msgstr "instantània" -#: f.albums.cc:1158 +#: f.albums.cc:1213 msgid "fade-in" msgstr "fusió endins" -#: f.albums.cc:1159 +#: f.albums.cc:1214 msgid "roll-right" msgstr "enrotllar a la dreta" -#: f.albums.cc:1160 +#: f.albums.cc:1215 msgid "roll-down" msgstr "enrotllar abaix" -#: f.albums.cc:1161 +#: f.albums.cc:1216 msgid "venetian" msgstr "persiana" -#: f.albums.cc:1162 +#: f.albums.cc:1217 msgid "grate" msgstr "enreixat" -#: f.albums.cc:1163 +#: f.albums.cc:1218 msgid "rectangle" msgstr "rectangle" -#: f.albums.cc:1164 +#: f.albums.cc:1219 msgid "implode" msgstr "implosionar" -#: f.albums.cc:1165 +#: f.albums.cc:1220 msgid "explode" msgstr "explotar" -#: f.albums.cc:1166 +#: f.albums.cc:1221 msgid "radar" msgstr "radar" -#: f.albums.cc:1167 +#: f.albums.cc:1222 msgid "spiral" msgstr "espiral" -#: f.albums.cc:1168 +#: f.albums.cc:1223 msgid "Japanese-fan" msgstr "ventall japonés" -#: f.albums.cc:1169 +#: f.albums.cc:1224 msgid "jaws" msgstr "dents" -#: f.albums.cc:1170 +#: f.albums.cc:1225 msgid "ellipse" msgstr "elipsi" -#: f.albums.cc:1171 +#: f.albums.cc:1226 msgid "raindrops" msgstr "gotes de pluja" -#: f.albums.cc:1172 +#: f.albums.cc:1227 msgid "doubledoor" msgstr "doble porta" -#: f.albums.cc:1173 +#: f.albums.cc:1228 msgid "rotate" msgstr "girar" -#: f.albums.cc:1174 +#: f.albums.cc:1229 msgid "fallover" msgstr "cap abaix" -#: f.albums.cc:1175 +#: f.albums.cc:1230 msgid "spheroid" msgstr "esferoide" -#: f.albums.cc:1176 +#: f.albums.cc:1231 msgid "turn-page" msgstr "girar pàgina" -#: f.albums.cc:1177 +#: f.albums.cc:1232 msgid "french-door" msgstr "porta batents" -#: f.albums.cc:1197 f.widgets.cc:584 +#: f.albums.cc:1254 f.widgets.cc:586 msgid "Slide Show" msgstr "Diaporama" -#: f.albums.cc:1208 +#: f.albums.cc:1265 msgid "Clip Limit" msgstr "Límit de sequencia" -#: f.albums.cc:1212 +#: f.albums.cc:1269 msgid "Music File" msgstr "Arxiu de Música" -#: f.albums.cc:1217 +#: f.albums.cc:1274 msgid "Full Screen" msgstr "A tota pantalla" -#: f.albums.cc:1218 +#: f.albums.cc:1275 msgid "Auto-replay" msgstr "Auto reiniciar" -#: f.albums.cc:1219 +#: f.albums.cc:1276 msgid "KB functions" msgstr "Funcions de teclat" -#: f.albums.cc:1222 +#: f.albums.cc:1279 msgid "Customize:" msgstr "Personalitzar" -#: f.albums.cc:1223 +#: f.albums.cc:1280 msgid "transitions" msgstr "transicions" -#: f.albums.cc:1224 +#: f.albums.cc:1281 msgid "image files" msgstr "archivos de imagen" -#: f.albums.cc:1229 f.albums.cc:1356 +#: f.albums.cc:1286 f.albums.cc:1413 #, c-format msgid "%d images" msgstr "%d imatges" -#: f.albums.cc:1251 f.albums.cc:1326 f.albums.cc:1422 f.albums.cc:1661 -#: f.albums.cc:1946 f.albums.cc:1963 f.albums.cc:2177 +#: f.albums.cc:1308 f.albums.cc:1383 f.albums.cc:1479 f.albums.cc:1718 +#: f.albums.cc:2003 f.albums.cc:2020 f.albums.cc:2234 msgid "invalid album" msgstr "àlbum invàlid" -#: f.albums.cc:1340 +#: f.albums.cc:1397 msgid "open album" msgstr "obrir àlbum" -#: f.albums.cc:1372 +#: f.albums.cc:1429 msgid "Select music file" msgstr "Seleccioneu arxiu de música" -#: f.albums.cc:1401 +#: f.albums.cc:1458 msgid "select random (if 2+ enabled)" msgstr "Selecció aleatòria (si +2 activat)" -#: f.albums.cc:1426 +#: f.albums.cc:1483 msgid "Transition Preferences" msgstr "Preferències de transició" -#: f.albums.cc:1429 f.edit.cc:2008 +#: f.albums.cc:1486 f.edit.cc:2008 msgid "Settings File" msgstr "Ajustaments" -#: f.albums.cc:1439 +#: f.albums.cc:1496 msgid "transition" msgstr "transició" -#: f.albums.cc:1440 +#: f.albums.cc:1497 msgid "enabled" msgstr "activada" -#: f.albums.cc:1441 +#: f.albums.cc:1498 msgid "slowdown" msgstr "ralentitzar" -#: f.albums.cc:1442 +#: f.albums.cc:1499 msgid "preference" msgstr "preferència" -#: f.albums.cc:1517 f.albums.cc:1556 +#: f.albums.cc:1574 f.albums.cc:1613 msgid "invalid file" msgstr "Arxiu no vàlid" -#: f.albums.cc:1610 f.albums.cc:2162 +#: f.albums.cc:1667 f.albums.cc:2219 #, c-format msgid "" "file format error: \n" @@ -279,84 +279,84 @@ "error de format d'arxiu: \n" " %s" -#: f.albums.cc:1667 +#: f.albums.cc:1724 msgid "Image Preferences" msgstr "Preferències d'imatge" -#: f.albums.cc:1671 f.edit.cc:1338 f.file.cc:1166 f.file.cc:1427 f.meta.cc:617 -#: f.meta.cc:1414 +#: f.albums.cc:1728 f.edit.cc:1338 f.file.cc:1091 f.file.cc:1352 f.meta.cc:617 +#: f.meta.cc:1412 msgid "Image File:" msgstr "Imatge:" -#: f.albums.cc:1675 +#: f.albums.cc:1732 msgid "Play tone when image shows" msgstr "Reproduïr música mentre es veu la imatge" -#: f.albums.cc:1678 +#: f.albums.cc:1735 msgid "Show image caption" msgstr "Mostrar títul del diaporama" -#: f.albums.cc:1683 +#: f.albums.cc:1740 msgid "Show image comments" msgstr "Mostrar comentaris de la imatge" -#: f.albums.cc:1688 +#: f.albums.cc:1745 msgid "Wait before zoom" msgstr "Espera abans del zoom" -#: f.albums.cc:1693 +#: f.albums.cc:1750 msgid "Zoom type:" msgstr "Tipus de zoom" -#: f.albums.cc:1694 +#: f.albums.cc:1751 msgid "none" msgstr "cap" -#: f.albums.cc:1695 +#: f.albums.cc:1752 msgid "zoom-in" msgstr "aproximar" -#: f.albums.cc:1696 +#: f.albums.cc:1753 msgid "zoom-out" msgstr "allunyar" -#: f.albums.cc:1699 +#: f.albums.cc:1756 msgid "Zoom size (x)" msgstr "Tamany de zoon (x)" -#: f.albums.cc:1702 +#: f.albums.cc:1759 msgid "Steps" msgstr "Pasos" -#: f.albums.cc:1706 +#: f.albums.cc:1763 msgid "Zoom Center" msgstr "Centrar zoom" -#: f.albums.cc:1710 +#: f.albums.cc:1767 msgid "Wait after zoom" msgstr "Espera desprès del zoom" -#: f.albums.cc:1715 +#: f.albums.cc:1772 msgid "Transition to next image" msgstr "Transiciò a la pròxima imatge" -#: f.albums.cc:1718 f.albums.cc:1821 +#: f.albums.cc:1775 f.albums.cc:1878 msgid "next" msgstr "següent" -#: f.albums.cc:1811 +#: f.albums.cc:1868 msgid "click on thumbnail to set zoom center" msgstr "clic en la miniatura per situar el centre del zoom" -#: f.area.cc:81 +#: f.area.cc:82 msgid "Select Area for Edits" msgstr "Seleccionar àrea per editar" -#: f.area.cc:82 f.edit.cc:5919 +#: f.area.cc:83 f.edit.cc:5919 msgid "Press F1 for help" msgstr "Prèmer F1 per ajuda" -#: f.area.cc:91 +#: f.area.cc:92 msgid "" "Select Area not supported \n" "by this edit function" @@ -364,147 +364,192 @@ "Seleccionar àrea no suportat \n" "Per aquesta funció d'edició" -#: f.area.cc:121 +#: f.area.cc:122 msgid "select rectangle" msgstr "seleccionar rectangle" -#: f.area.cc:122 +#: f.area.cc:123 msgid "select ellipse" msgstr "seleccionar ellipse" -#: f.area.cc:125 +#: f.area.cc:126 msgid "freehand draw" msgstr "dibuixar a mà alçada" -#: f.area.cc:126 +#: f.area.cc:127 msgid "follow edge" msgstr "seguir contorn" -#: f.area.cc:127 +#: f.area.cc:128 msgid "draw/replace" msgstr "dibuixar/substituïr" -#: f.area.cc:130 +#: f.area.cc:131 msgid "select area within mouse circle" -msgstr "" +msgstr "sel·leccionar àrea interior del cursor" -#: f.area.cc:133 +#: f.area.cc:134 msgid "select one matching color within mouse circle:" -msgstr "" +msgstr "sel·leccionar un color coincident amb el cursor" -#: f.area.cc:135 +#: f.area.cc:136 msgid "" "first select the checkbox, then \n" "shift+click on image to set the color" msgstr "" +"primer sel.leccioneu la casella, desprès \n" +"majúsc+clic en la imatge per ajustar el color" -#: f.area.cc:139 +#: f.area.cc:140 msgid "select all matching colors within mouse circle" -msgstr "" +msgstr "sel·leccionar tots els colors coincidents amb el cursor" -#: f.area.cc:143 f.edit.cc:5961 +#: f.area.cc:144 f.edit.cc:5961 msgid "mouse radius" msgstr "radi del ratolí" -#: f.area.cc:146 +#: f.area.cc:147 msgid "match level %" msgstr "nivell de coincidència %" -#: f.area.cc:151 +#: f.area.cc:152 msgid "search range" msgstr "rang de cerca" -#: f.area.cc:155 +#: f.area.cc:156 msgid "Area Edge Blend Width" msgstr "Ample de barreja dels línits de l'àrea" -#: f.area.cc:158 +#: f.area.cc:159 msgid "Edge Creep" msgstr "Límit progressiu" -#: f.area.cc:163 +#: f.area.cc:164 msgid "Line Color:" msgstr "Color de línia" -#: f.area.cc:183 f.area.cc:184 +#: f.area.cc:184 f.area.cc:185 msgid "area edits fade away within edge distance" msgstr "les edicions d'àrea s'esvaeixen a les vores" -#: f.area.cc:356 f.area.cc:539 +#: f.area.cc:357 f.area.cc:540 #, c-format msgid "exceed %d edits" msgstr "excedit %d edicions" -#: f.area.cc:1361 +#: f.area.cc:1358 f.area.cc:1668 msgid "" -"Click one time inside each enclosed area \n" -"(possible gaps in the outline will be found). \n" -"Press [Done] when finished. Press F1 for help." +"Click one time inside each enclosed area. \n" +"Possible gaps in the outline will be found. \n" +"Press F1 for help." msgstr "" +"Feu clic una vegada a l'interior de cada àrea delimitada.\n" +"Es poden trobar possibles forats en el contorn.\n" +"Premeu F1 per obtenir ajuda." -#: f.area.cc:1389 +#: f.area.cc:1385 msgid "finish area" msgstr "acabar àrea" -#: f.area.cc:1397 -msgid "extend to corner:" -msgstr "extendre fins a la cantonada" - -#: f.area.cc:1438 -msgid "searching" -msgstr "buscant" +#: f.area.cc:1411 f.area.cc:1563 +#, c-format +msgid "found %d pixels" +msgstr "trobats %d pixels" + +#: f.area.cc:1693 +msgid "find outline gap" +msgstr "trobar separació en contorn" + +#: f.area.cc:1775 +msgid "cannot find area outline" +msgstr "no es pot trobar contorn d'àrea" -#: f.area.cc:1469 +#: f.area.cc:1846 msgid "outline has a gap" msgstr "el contorn te un forat" -#: f.area.cc:1473 -msgid "success" -msgstr "èxit" - -#: f.area.cc:1618 f.area.cc:1645 -#, c-format -msgid "found %d pixels" -msgstr "trobats %d pixels" +#: f.area.cc:1881 +msgid "Select Hairy Edge" +msgstr "Seleccionar vores esfilagarsades" + +#: f.area.cc:1882 +msgid "" +"Click on colors to match. \n" +"Drag along edge to select. \n" +"Adjust match level as needed. \n" +"Copy or Save area when done." +msgstr "" +"Clic en colors a seleccionar. \n" +"Arrossegar al llarg de la vora per seleccionar. \n" +"Ajustar el nivell de coincidència segons sigui necessari. \n" +"Copiar o desar àrea quan hagi acabat." + +#: f.area.cc:1893 +msgid "select the area first" +msgstr "Primer seleccioneu l'àrea" -#: f.area.cc:1940 f.area.cc:1957 f.area.cc:1977 f.area.cc:2301 f.area.cc:2378 -#: f.area.cc:2484 +#: f.area.cc:1898 f.area.cc:2371 f.area.cc:2388 f.area.cc:2408 f.area.cc:2732 +#: f.area.cc:2821 msgid "the area is not finished" msgstr "l'àrea no està acabada" -#: f.area.cc:2066 +#: f.area.cc:1944 +msgid "Mouse Radius" +msgstr "Radi del Ratolí" + +#: f.area.cc:1949 fotoxx.h:1148 +msgid "Match Level" +msgstr "Nivell de coincidència" + +#: f.area.cc:1950 +msgid "select" +msgstr "Seleccionar" + +#: f.area.cc:1951 +msgid "deselect" +msgstr "anul·lar la selecció" + +#: f.area.cc:2497 msgid "Edge calculation in progress" msgstr "Càlcul del límit en progrés" -#: f.area.cc:2075 +#: f.area.cc:2506 msgid "Area Edge Calc" msgstr "Càlcul del límit de l'àrea" -#: f.area.cc:2519 +#: f.area.cc:2807 f.area.cc:2856 f.widgets.cc:461 +msgid "Copy Area" +msgstr "Copiar àrea" + +#: f.area.cc:2810 f.widgets.cc:464 +msgid "Save Area File" +msgstr "Desar arxiu d'àrea" + +#: f.area.cc:2862 msgid "save area as a PNG file" msgstr "desar àrea com un arxiu PNG" -#: f.area.cc:2551 +#: f.area.cc:2894 msgid "load area from a file" msgstr "Carregar àrea des d'una imatge" -#: f.area.cc:2594 +#: f.area.cc:2986 msgid "position with mouse click/drag" msgstr "posició amb el clic del ratolí/arrossegament" -#: f.area.cc:2634 +#: f.area.cc:3032 msgid "Paste Image" msgstr "Enganxar imatge" -#: f.area.cc:2639 f.batch.cc:1360 f.batch.cc:1847 +#: f.area.cc:3037 f.batch.cc:1347 f.batch.cc:1654 msgid "resize" msgstr "redimensionar" -#: f.batch.cc:126 f.widgets.cc:564 +#: f.batch.cc:126 f.widgets.cc:566 msgid "Batch Convert" msgstr "Convertir en lot" -#: f.batch.cc:133 f.file.cc:940 +#: f.batch.cc:133 f.file.cc:866 msgid "New Name" msgstr "nou nom" @@ -528,7 +573,7 @@ msgid "New File Type" msgstr "Nou tipus d'arxiu" -#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4389 +#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4083 msgid "no change" msgstr "sense canvis" @@ -544,13 +589,13 @@ msgid "Copy Metadata" msgstr "Copiar metadades" -#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:466 -#: f.widgets.cc:737 +#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:468 +#: f.widgets.cc:739 msgid "Upright" msgstr "Adressar" -#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1369 f.batch.cc:1856 -#: f.repair.cc:125 f.widgets.cc:482 +#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1356 f.batch.cc:1663 +#: f.repair.cc:125 f.widgets.cc:484 msgid "Sharpen" msgstr "Enfocar" @@ -582,7 +627,7 @@ msgid "updating albums ..." msgstr "actualitzant àlbums ..." -#: f.batch.cc:591 f.batch.cc:1642 f.batch.cc:2044 f.file.cc:1217 +#: f.batch.cc:591 f.batch.cc:1522 f.batch.cc:1851 f.file.cc:1142 msgid "Select directory" msgstr "Seleccionar directori" @@ -642,7 +687,7 @@ msgid "PROCEED?" msgstr "PROCEDIR?" -#: f.batch.cc:907 f.widgets.cc:565 +#: f.batch.cc:907 f.widgets.cc:567 msgid "Batch Upright" msgstr "Adressar en lot" @@ -658,7 +703,7 @@ msgid "cannot select both options" msgstr "no es poden sel·leccionar ambdues opcions" -#: f.batch.cc:1130 f.widgets.cc:566 +#: f.batch.cc:1130 f.widgets.cc:568 msgid "Batch Delete/Trash" msgstr "Esborrar/paperera en lot" @@ -670,140 +715,100 @@ msgid "trash" msgstr "paperera" -#: f.batch.cc:1302 -msgid "Batch Convert RAW Files (DCraw)" -msgstr "Convertir en lot arxius RAW (DCraw)" - -#: f.batch.cc:1312 -msgid "DCraw not installed" -msgstr "DCraw no instal.lat" +#: f.batch.cc:1301 +msgid "Batch Convert RAW Files" +msgstr "Convertir en lot arxius RAW" -#: f.batch.cc:1347 f.batch.cc:1834 +#: f.batch.cc:1334 f.batch.cc:1641 msgid "output location" msgstr "ubicació exterior" -#: f.batch.cc:1352 f.batch.cc:1839 +#: f.batch.cc:1339 f.batch.cc:1646 msgid "output file type" msgstr "tipus d'arxiu de sortida" -#: f.batch.cc:1371 f.batch.cc:1858 +#: f.batch.cc:1358 f.batch.cc:1665 msgid "amount" msgstr "quantitat" -#: f.batch.cc:1374 f.batch.cc:1861 +#: f.batch.cc:1361 f.batch.cc:1668 msgid "threshold" msgstr "umbral" -#: f.batch.cc:1383 -msgid "white balance" -msgstr "balanç de blancs" - -#: f.batch.cc:1384 -msgid "interpolation" -msgstr "interpolació" - -#: f.batch.cc:1385 -msgid "color space" -msgstr "espai de color" - -#: f.batch.cc:1386 -msgid "gamma curve" -msgstr "corba gamma" - -#: f.batch.cc:1389 -msgid "camera" -msgstr "càmera" - -#: f.batch.cc:1390 -msgid "fixed" -msgstr "corretgit" - -#: f.batch.cc:1391 -msgid "calculated" -msgstr "calculat" - -#: f.batch.cc:1408 -msgid "default" -msgstr "per defecte" - -#: f.batch.cc:1414 -msgid "defaults" -msgstr "per defecte" - -#: f.batch.cc:1796 +#: f.batch.cc:1603 msgid "Batch Convert RAW Files (Raw Therapee)" msgstr "Convertir en lot arxius RAW (RawTherapee)" -#: f.batch.cc:1806 f.file.cc:426 +#: f.batch.cc:1613 f.file.cc:352 msgid "Raw Therapee not installed" msgstr "RawTherapee no instal.lat" -#: f.batch.cc:2141 +#: f.batch.cc:1948 msgid "start" msgstr "iniciar" -#: f.batch.cc:2142 +#: f.batch.cc:1949 msgid "begin making a script file" msgstr "iniciar construcció d'un script" -#: f.batch.cc:2144 +#: f.batch.cc:1951 msgid "close" msgstr "tancar" -#: f.batch.cc:2145 +#: f.batch.cc:1952 msgid "finish making a script file" msgstr "acabant construcció d'un script" -#: f.batch.cc:2147 +#: f.batch.cc:1954 msgid "run" msgstr "executar" -#: f.batch.cc:2148 +#: f.batch.cc:1955 msgid "execute a script file" msgstr "executar un script" -#: f.batch.cc:2202 +#: f.batch.cc:2009 msgid "script already started" msgstr "c¡script iniciat" -#: f.batch.cc:2206 +#: f.batch.cc:2013 msgid "open new script file" msgstr "obrir nou script" -#: f.batch.cc:2238 +#: f.batch.cc:2045 msgid "script file error" msgstr "error d'script" -#: f.batch.cc:2243 +#: f.batch.cc:2050 #, c-format msgid "%s added to script" msgstr "%s afegit a l'script" -#: f.batch.cc:2256 +#: f.batch.cc:2063 msgid "no script file was started" msgstr "no s'ha iniciat l'script" -#: f.batch.cc:2264 +#: f.batch.cc:2071 msgid "script file closed" msgstr "script tancat" -#: f.batch.cc:2283 +#: f.batch.cc:2090 msgid "script file is not closed" msgstr "no s'ha tancat l'script" -#: f.batch.cc:2287 +#: f.batch.cc:2094 msgid "select script file to run" msgstr "sel·leccionar scrit a executar" -#: f.batch.cc:2289 +#: f.batch.cc:2096 msgid "open script file" msgstr "obrir script" -#: f.batch.cc:2296 +#: f.batch.cc:2103 msgid "unknown script file" msgstr "script desconegut" -#: f.batch.cc:2303 +#: f.batch.cc:2110 #, c-format msgid "" "script file: %s \n" @@ -812,11 +817,11 @@ "script: %s \n" " %s" -#: f.batch.cc:2314 +#: f.batch.cc:2121 msgid "select image files to be processed" msgstr "sel·leccionar imatges a processar" -#: f.batch.cc:2326 f.batch.cc:2375 +#: f.batch.cc:2133 f.batch.cc:2182 #, c-format msgid "" "open failure: %s \n" @@ -825,91 +830,87 @@ "error d'apertura: %s \n" " %s" -#: f.batch.cc:2347 +#: f.batch.cc:2154 #, c-format msgid "unknown edit function: %s" msgstr "funció d'edició desconeguda: %s" -#: f.batch.cc:2356 +#: f.batch.cc:2163 #, c-format msgid "load widgets failed: %s" msgstr "carregar complements que han fallat: %s" -#: f.batch.cc:2385 +#: f.batch.cc:2192 #, c-format msgid "script file format error: %s" msgstr "error de format d'script: %s" -#: f.batch.cc:2430 +#: f.batch.cc:2237 msgid "growisofs not installed" msgstr "growisofs no instal·lat" -#: f.batch.cc:2482 +#: f.batch.cc:2289 msgid "no DVD/BlueRay device found" msgstr "No es troba dispositiu DVD/Blue Ray" -#: f.batch.cc:2505 f.widgets.cc:570 +#: f.batch.cc:2312 f.widgets.cc:572 msgid "Burn Images to DVD/BlueRay" msgstr "Gravar imatges en un DVD/Blue Ray" -#: f.batch.cc:2510 +#: f.batch.cc:2317 msgid "Select device" msgstr "Sel·leccionar dispositiu" -#: f.batch.cc:2635 f.widgets.cc:571 +#: f.batch.cc:2442 f.widgets.cc:573 msgid "Find Duplicate Images" msgstr "Trobar imatges duplicades" -#: f.batch.cc:2637 f.tools.cc:1012 +#: f.batch.cc:2444 f.tools.cc:1017 msgid "Thumbnail size" msgstr "Tamany de miniatura" -#: f.batch.cc:2640 +#: f.batch.cc:2447 msgid "pixel difference" msgstr "diferència de píxels" -#: f.batch.cc:2643 +#: f.batch.cc:2450 msgid "pixel count" msgstr "conteig de píxels" -#: f.batch.cc:2646 +#: f.batch.cc:2453 msgid "Images:" msgstr "Imatges:" -#: f.batch.cc:2647 +#: f.batch.cc:2454 msgid "searching ..." msgstr "buscant ..." -#: f.batch.cc:2649 +#: f.batch.cc:2456 msgid "Duplicates:" msgstr "Duplicats:" -#: f.batch.cc:2667 +#: f.batch.cc:2474 #, c-format msgid "only %d image thumbnails found" msgstr "trobades tant sols % imatges" -#: f.batch.cc:2875 f.widgets.cc:377 +#: f.batch.cc:2682 f.widgets.cc:378 msgid "Create a file of selected image files" msgstr "Crear un arxiu de les imatges sel·leccionades" -#: f.batch.cc:2899 f.batch.cc:2969 +#: f.batch.cc:2706 f.batch.cc:2776 msgid "Output File" msgstr "Arxiu de sortida" -#: f.batch.cc:2918 +#: f.batch.cc:2725 msgid "no input files selected" msgstr "No sel·leccionats arxius d'entrada" -#: f.batch.cc:2923 +#: f.batch.cc:2730 msgid "no output file selected" msgstr "No sel·leccionat arxiu de sortida" -#: f.batch.cc:2937 f.tools.cc:643 -msgid "COMPLETED" -msgstr "COMPLETAT" - -#: f.bend.cc:92 f.widgets.cc:505 +#: f.bend.cc:92 f.widgets.cc:507 msgid "Unbend" msgstr "Redreçar" @@ -941,7 +942,7 @@ " Múltiples estirades amb el ratolí fins a quedar satisfet. \n" " Quan hagi acabat, seleccionar un altre àrea o prèmer [Fet]." -#: f.bend.cc:756 f.widgets.cc:507 +#: f.bend.cc:756 f.widgets.cc:509 msgid "Warp area" msgstr "Deformar àrea" @@ -963,7 +964,7 @@ " Múltiples empentes del ratolí fins a quedar satisfet. \n" " Quan hagi acabat, polsar [Fet]." -#: f.bend.cc:1178 f.widgets.cc:508 +#: f.bend.cc:1178 f.widgets.cc:510 msgid "Warp curved" msgstr "Deformació corba" @@ -971,7 +972,7 @@ msgid "warp span" msgstr "intèrval de deformació" -#: f.bend.cc:1492 f.widgets.cc:509 +#: f.bend.cc:1492 f.widgets.cc:511 msgid "Warp linear" msgstr "Deformació lineal" @@ -985,7 +986,7 @@ " Múltiples empentes del ratolí fins a quedar satisfet. \n" " Quan hagi acabat, polsar [Fet]." -#: f.bend.cc:1823 f.widgets.cc:510 +#: f.bend.cc:1823 f.widgets.cc:512 msgid "Warp affine" msgstr "Deformació afí" @@ -1015,7 +1016,7 @@ msgid "bottom:" msgstr "abaix :" -#: f.bend.cc:2614 f.widgets.cc:512 +#: f.bend.cc:2614 f.widgets.cc:514 msgid "Spherical Projection" msgstr "Projecció esfèrica" @@ -1033,7 +1034,7 @@ " Arrossegar imatge des de la cantonada superior esquerra. \n" " Quan acabeu, premeu [Fet]." -#: f.bend.cc:2850 f.widgets.cc:513 +#: f.bend.cc:2850 f.widgets.cc:515 msgid "Selective Rescale" msgstr "Re-escalat sel·lectiu" @@ -1070,7 +1071,7 @@ msgstr "Pintar i deformar imatge" #: f.combine.cc:2998 f.combine.cc:3643 f.combine.cc:6252 f.effects.cc:4413 -#: f.widgets.cc:602 f.widgets.cc:626 f.widgets.cc:650 f.widgets.cc:664 +#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 msgid "Image" msgstr "Imatge" @@ -1146,7 +1147,7 @@ msgid "manual align" msgstr "alineació manual" -#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:473 f.widgets.cc:736 +#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:475 f.widgets.cc:738 msgid "Resize" msgstr "Redimensionar" @@ -1216,7 +1217,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Girar : arrossegar cantó dret amb el ratolí " -#: f.edit.cc:162 f.widgets.cc:465 f.widgets.cc:735 +#: f.edit.cc:162 f.widgets.cc:467 f.widgets.cc:737 msgid "Trim/Rotate" msgstr "Retallar/Girar" @@ -1234,23 +1235,23 @@ #: f.edit.cc:185 msgid "maximize trim box" -msgstr "" +msgstr "maximitzar caixa de retallada" #: f.edit.cc:186 msgid "use previous size" -msgstr "" +msgstr "usar tamany previ" #: f.edit.cc:187 msgid "invert width/height" -msgstr "" +msgstr "invertir ample/alçada" #: f.edit.cc:188 msgid "trim transparent edges" -msgstr "" +msgstr "retallar contorns transparents" #: f.edit.cc:189 msgid "lock width/height ratio" -msgstr "" +msgstr "bloquejar proporció amplada/alçada" #: f.edit.cc:194 msgid "Customize" @@ -1262,7 +1263,7 @@ #: f.edit.cc:201 msgid "use EXIF data if available" -msgstr "" +msgstr "usar dades EXIF si estàn disponibles" #: f.edit.cc:204 msgid "Rotate: degrees" @@ -1284,7 +1285,7 @@ msgid "rotation unknown" msgstr "ratació desconeguda" -#: f.edit.cc:1957 f.widgets.cc:469 f.widgets.cc:740 +#: f.edit.cc:1957 f.widgets.cc:471 f.widgets.cc:742 msgid "Retouch Combo" msgstr "Retocar llum i color " @@ -1296,7 +1297,7 @@ msgid "Brightness" msgstr "Brillantor" -#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1112 +#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1113 msgid "Contrast" msgstr "Contrast" @@ -1328,7 +1329,7 @@ msgid "Bright" msgstr "Llums" -#: f.edit.cc:2000 f.tools.cc:1767 +#: f.edit.cc:2000 f.tools.cc:1775 msgid "Brightness Distribution" msgstr "Distribució de la brillantor" @@ -1341,6 +1342,8 @@ "check the box, then click on white or dark \n" "area to calibrate image white or black color" msgstr "" +"marcar la casella, després clic en una àrea blanca o negra \n" +"per cal·librar el color blanc o negre a la imatge" #: f.edit.cc:2012 msgid "recall previous settings used" @@ -1398,7 +1401,7 @@ msgid "Deband Bright" msgstr "Eliminar bandes lluminoses" -#: f.edit.cc:3570 f.widgets.cc:472 f.widgets.cc:743 +#: f.edit.cc:3570 f.widgets.cc:474 f.widgets.cc:745 msgid "Tone Mapping" msgstr "Mapa tonal" @@ -1430,7 +1433,7 @@ msgid "use previous settings" msgstr "etilitzar especificacions anteriors" -#: f.edit.cc:4236 f.widgets.cc:474 +#: f.edit.cc:4236 f.widgets.cc:476 msgid "Flip" msgstr "Voltejar" @@ -1471,15 +1474,15 @@ msgid "text" msgstr "text" -#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2807 +#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2814 msgid "backing" msgstr "fons" -#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2808 +#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2815 msgid "outline" msgstr "contorn" -#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2809 +#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2816 msgid "shadow" msgstr "ombra" @@ -1487,7 +1490,7 @@ msgid "save to current file" msgstr "desar en l'arxiu actual" -#: f.edit.cc:4466 f.file.cc:1835 +#: f.edit.cc:4466 f.file.cc:1706 msgid "save as new file version" msgstr "desar com una nova versió" @@ -1499,7 +1502,7 @@ "desar en l'arxiu actual \n" "obrir següent arxiu amb el mateix text" -#: f.edit.cc:4628 f.mashup.cc:2566 f.tools.cc:1167 +#: f.edit.cc:4628 f.mashup.cc:2573 f.tools.cc:1172 msgid "select font" msgstr "seleccionar tipus de lletra" @@ -1519,15 +1522,15 @@ msgid "Write Line or Arrow on Image" msgstr "Dibuixar línia o fletxa en una imatge" -#: f.edit.cc:5278 f.mashup.cc:2786 +#: f.edit.cc:5278 f.mashup.cc:2793 msgid "Line length" msgstr "Longitut de línia" -#: f.edit.cc:5285 f.mashup.cc:2793 +#: f.edit.cc:5285 f.mashup.cc:2800 msgid "Arrow head" msgstr "Punta de fletxa" -#: f.edit.cc:5298 f.mashup.cc:2806 +#: f.edit.cc:5298 f.mashup.cc:2813 msgid "line" msgstr "linea" @@ -1539,11 +1542,11 @@ "corretgir línia/fletxa a la capa​ \n" "iniciar nova línia/fletxa" -#: f.edit.cc:5918 f.widgets.cc:477 +#: f.edit.cc:5918 f.widgets.cc:479 msgid "Paint Edits" msgstr "Editar pintant" -#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.06.cc:3307 +#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.07.cc:3318 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -1551,7 +1554,7 @@ "Àrea seleccionada no pot ser guardada.\n" "Continuar?" -#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2293 +#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2301 msgid "Edit function must be active" msgstr "La funció d'editar pintant ha d'estar activada" @@ -1567,7 +1570,7 @@ msgid "reset area" msgstr "reiniciar àrea" -#: f.edit.cc:6144 f.widgets.cc:478 +#: f.edit.cc:6144 f.widgets.cc:480 msgid "Leverage Edits" msgstr "Edició per nivells" @@ -1635,7 +1638,7 @@ msgid "Background" msgstr "Fons" -#: f.effects.cc:1214 f.widgets.cc:519 +#: f.effects.cc:1214 f.widgets.cc:521 msgid "Line Drawing" msgstr "Dibuix amb línees" @@ -1643,7 +1646,7 @@ msgid "black/white" msgstr " negre/blanc" -#: f.effects.cc:1505 f.widgets.cc:520 +#: f.effects.cc:1505 f.widgets.cc:522 msgid "Color Drawing" msgstr "Dibuix amb colors" @@ -1651,7 +1654,7 @@ msgid "Bright Areas" msgstr "Llums" -#: f.effects.cc:1766 f.widgets.cc:521 +#: f.effects.cc:1766 f.widgets.cc:523 msgid "Graduated Blur" msgstr "Desenfocament graduat" @@ -1715,7 +1718,7 @@ msgid "borders" msgstr "vores" -#: f.effects.cc:3259 f.widgets.cc:526 +#: f.effects.cc:3259 f.widgets.cc:528 msgid "Vignette" msgstr "Vinyetat" @@ -1743,7 +1746,7 @@ msgid "Calculate" msgstr "Calcular" -#: f.effects.cc:3848 f.widgets.cc:528 +#: f.effects.cc:3848 f.widgets.cc:530 msgid "Pattern" msgstr "Patrò" @@ -1767,7 +1770,7 @@ msgid "Tile" msgstr "Rajola" -#: f.effects.cc:4411 f.widgets.cc:523 +#: f.effects.cc:4411 f.widgets.cc:525 msgid "Tiles" msgstr "Rajoles" @@ -1785,7 +1788,7 @@ msgid "only %d tile images found" msgstr "trobades sols %d imatges" -#: f.effects.cc:4905 f.widgets.cc:530 +#: f.effects.cc:4905 f.widgets.cc:532 msgid "Custom Kernel" msgstr "Matriu de convolució" @@ -1801,11 +1804,11 @@ msgid "Data file" msgstr "Arxiu de dades" -#: f.effects.cc:4951 fotoxx-16.06.cc:3571 +#: f.effects.cc:4951 fotoxx-16.07.cc:3582 msgid "Load settings from file" msgstr "Carregar ajustaments des d'un arxiu" -#: f.effects.cc:5212 f.widgets.cc:531 +#: f.effects.cc:5212 f.widgets.cc:533 msgid "Make Waves" msgstr "Ones" @@ -1829,7 +1832,7 @@ msgid "Pull image using the mouse." msgstr "Empènyer la imatge usant el ratolí" -#: f.effects.cc:5427 f.widgets.cc:532 +#: f.effects.cc:5427 f.widgets.cc:534 msgid "Directed Blur" msgstr "Desenfocament direccional" @@ -1841,7 +1844,7 @@ msgid "intensity" msgstr "intensitat" -#: f.effects.cc:5638 f.widgets.cc:533 +#: f.effects.cc:5638 f.widgets.cc:535 msgid "Blur Background" msgstr "Desenfocar fons" @@ -1861,7 +1864,7 @@ msgid "max. blur radius" msgstr "màx. radi de desenfocament" -#: f.file.cc:182 +#: f.file.cc:181 msgid "" "use EXIF photo date or \n" " file modification date" @@ -1869,83 +1872,75 @@ "utilitzar data EXIF de la foto o \n" "data de modificació de l'arxiu" -#: f.file.cc:199 f.widgets.cc:608 +#: f.file.cc:198 f.widgets.cc:610 msgid "File" msgstr "Arxiu" -#: f.file.cc:355 -msgid "UFraw not installed" -msgstr "UFRaw no instal.lat" - -#: f.file.cc:371 f.widgets.cc:745 -msgid "Open RAW file (ufraw)" -msgstr "Obrir fitxer RAW (ufraw)" +#: f.file.cc:368 f.widgets.cc:747 +msgid "Open RAW file (Raw Therapee)" +msgstr "Obrir arxiu RAW amb RawTherapee" -#: f.file.cc:376 f.file.cc:447 +#: f.file.cc:373 msgid "RAW type not registered in User Settings" msgstr "tipus RAW no registrat en Configuració d'usuari" -#: f.file.cc:442 f.widgets.cc:746 -msgid "Open RAW file (Raw Therapee)" -msgstr "Obrir arxiu RAW amb RawTherapee" - -#: f.file.cc:534 f.widgets.cc:423 +#: f.file.cc:460 f.widgets.cc:424 msgid "Open Image File" msgstr "Obrir arxiu d'imatge" -#: f.file.cc:553 +#: f.file.cc:479 msgid "unknown file type" msgstr "tipus d'arxiu desconegut" -#: f.file.cc:747 +#: f.file.cc:673 msgid "Create Blank Image" msgstr "Crear imatge buida" -#: f.file.cc:749 +#: f.file.cc:675 msgid "file name" msgstr "nom d'arxiu" -#: f.file.cc:782 +#: f.file.cc:708 msgid "supply a file name" msgstr "proporcionar nom d'àlbum" -#: f.file.cc:932 f.widgets.cc:428 +#: f.file.cc:858 f.widgets.cc:428 msgid "Rename Image File" msgstr "Re-anomenar arxiu d'imatge" -#: f.file.cc:939 +#: f.file.cc:865 msgid "Old Name" msgstr "antic nom" -#: f.file.cc:949 +#: f.file.cc:875 msgid "previous name" msgstr "nom anterior" -#: f.file.cc:950 +#: f.file.cc:876 msgid "add 1" msgstr "afegir 1" -#: f.file.cc:1129 +#: f.file.cc:1054 msgid "Copy or Move Image File" -msgstr "" +msgstr "Copiar o moure arxiu d'imatge" -#: f.file.cc:1171 +#: f.file.cc:1096 msgid "New Location:" -msgstr "" +msgstr "Nova ubicació" -#: f.file.cc:1176 +#: f.file.cc:1101 msgid "copy (duplicate file)" -msgstr "" +msgstr "copiar (duplicar arxiu)" -#: f.file.cc:1178 +#: f.file.cc:1103 msgid "move (remove original)" -msgstr "" +msgstr "moure (moure original)" -#: f.file.cc:1257 +#: f.file.cc:1182 msgid "new location is not a directory" msgstr "la nova ubicació no és un directori" -#: f.file.cc:1297 f.file.cc:1511 +#: f.file.cc:1222 f.file.cc:1431 #, c-format msgid "" "delete failed: \n" @@ -1954,75 +1949,63 @@ "l'esborrat ha fallat: \n" " %s" -#: f.file.cc:1393 +#: f.file.cc:1318 msgid "Delete or Trash Image File" -msgstr "" - -#: f.file.cc:1460 -msgid "" -"GTK g_file_trash() function failed. \n" -"Desktop trash folder will be used." -msgstr "" +msgstr "eliminar/esborrar imatge" -#: f.file.cc:1463 -#, c-format -msgid "Cannot create desktop trash folder: %s" -msgstr "" +#: f.file.cc:1383 +msgid "GTK g_file_trash() function failed" +msgstr "Ha fallat la funció GTK g_file_trash()" -#: f.file.cc:1483 +#: f.file.cc:1404 msgid "not a known image file" -msgstr "" +msgstr "no és un arxiu d'imatge conegut" -#: f.file.cc:1489 +#: f.file.cc:1410 msgid "Delete read-only file?" msgstr "Esborrar arxius de només lectura?" -#: f.file.cc:1491 +#: f.file.cc:1412 msgid "Trash read-only file?" -msgstr "" +msgstr "Arxiu de paperera nomès de lectura?" -#: f.file.cc:1564 -#, c-format -msgid "error: %s" -msgstr "error: %s" - -#: f.file.cc:1589 +#: f.file.cc:1460 msgid "no more images" msgstr "no hi ha més imatges" -#: f.file.cc:1817 +#: f.file.cc:1688 msgid "Save Image File" msgstr "Desar imatge" -#: f.file.cc:1827 +#: f.file.cc:1698 msgid "new version" msgstr "nova versió" -#: f.file.cc:1828 +#: f.file.cc:1699 msgid "new file" msgstr "nou arxiu" -#: f.file.cc:1829 +#: f.file.cc:1700 msgid "replace file" msgstr "substituïr arxiu" -#: f.file.cc:1836 f.file.cc:2255 +#: f.file.cc:1707 f.file.cc:2126 msgid "save as new file name or type" msgstr "desar com un nou nom o tipus d'arxiu" -#: f.file.cc:1838 +#: f.file.cc:1709 msgid "replace old file (OVERWRITE)" msgstr "substituïr arxiu anterior (SOBRE-ESCRIURE)" -#: f.file.cc:1877 f.file.cc:2020 +#: f.file.cc:1748 f.file.cc:1891 msgid "cannot save as RAW type" msgstr "no es pot desar com a RAW" -#: f.file.cc:1973 +#: f.file.cc:1844 msgid "too many file versions: 99" msgstr "massa versions de l'arxiu: 99" -#: f.file.cc:2014 +#: f.file.cc:1885 msgid "" "Transparency map will be lost.\n" "save to PNG file to retain." @@ -2030,23 +2013,23 @@ "Es perdrà el mapa de transparència.\n" "desar com arxiu .PNG per conservar-lo" -#: f.file.cc:2098 +#: f.file.cc:1969 msgid "save anyway" msgstr "desar de totes maneres" -#: f.file.cc:2164 +#: f.file.cc:2035 msgid "Unable to copy EXIF/IPTC data" msgstr "No puc copiar dades EXIF/IPTC" -#: f.file.cc:2273 f.file.cc:2276 +#: f.file.cc:2144 f.file.cc:2147 msgid "make current" msgstr "fer actual" -#: f.file.cc:2274 +#: f.file.cc:2145 msgid "(new file becomes current file)" msgstr "(el nou arxiu serà l'arxiu actual)" -#: f.file.cc:2387 +#: f.file.cc:2258 #, c-format msgid "" "Overwrite file? \n" @@ -2055,93 +2038,79 @@ "Sobre-escriure arxiu? \n" " %s" -#: f.file.cc:2478 -msgid "Start of gallery, next: preceding gallery." -msgstr "Inici de galeria, següent : galeria precedent" - -#: f.file.cc:2479 -msgid "End of gallery, next: following gallery." -msgstr "Fi de galeria, següent : galeria següent" - -#: f.file.cc:2480 -msgid "" -"The next preceding gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" -"La pròxima galeria precedent no existeix o no contè imatges. \n" -"(No es buscaràn mès directoris o subdirectoris)" +#: f.file.cc:2351 +#, c-format +msgid "Start of gallery, preceding gallery: %s" +msgstr "Inici de galeria, precedent : %s" -#: f.file.cc:2482 -msgid "" -"The next following gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" -"La pròxima galeria següent no existeix o no contè imatges. \n" -"(No es buscaràn mès directoris o subdirectoris)" +#: f.file.cc:2352 +#, c-format +msgid "End of gallery, following gallery: %s" +msgstr "Fi de galeria, següent : %s" -#: f.file.cc:2556 f.widgets.cc:589 +#: f.file.cc:2446 f.widgets.cc:591 msgid "Quick Start" msgstr "Inici ràpid" -#: f.file.cc:2559 f.widgets.cc:590 +#: f.file.cc:2449 f.widgets.cc:592 msgid "User Guide" msgstr "Guia d'usuari" -#: f.file.cc:2562 f.widgets.cc:591 +#: f.file.cc:2452 f.widgets.cc:593 msgid "User Guide Changes" msgstr "Canvis a la guia d'usuari" -#: f.file.cc:2565 f.widgets.cc:593 +#: f.file.cc:2455 f.widgets.cc:595 msgid "README" msgstr "LLEGEIX-ME" -#: f.file.cc:2568 f.widgets.cc:592 +#: f.file.cc:2458 f.widgets.cc:594 msgid "Edit Functions Summary" msgstr "Resum de les funcions d'edició" -#: f.file.cc:2571 f.widgets.cc:594 +#: f.file.cc:2461 f.widgets.cc:596 msgid "Change Log" msgstr "Registre de canvis" -#: f.file.cc:2574 f.widgets.cc:595 +#: f.file.cc:2464 f.widgets.cc:597 msgid "Log File" msgstr "Arxiu de registre" -#: f.file.cc:2577 f.widgets.cc:596 +#: f.file.cc:2467 f.widgets.cc:598 msgid "Translations" msgstr "Traduccions" -#: f.file.cc:2580 f.widgets.cc:597 +#: f.file.cc:2470 f.widgets.cc:599 msgid "Home Page" msgstr "Pàgina web de Fotoxx" -#: f.file.cc:2583 f.widgets.cc:598 +#: f.file.cc:2473 f.widgets.cc:600 msgid "About" msgstr "Sobre Fotoxx " -#: f.file.cc:2587 f.widgets.cc:620 f.widgets.cc:644 fotoxx.h:1135 +#: f.file.cc:2477 f.widgets.cc:622 f.widgets.cc:646 fotoxx.h:1136 msgid "Help" msgstr "Ajuda" -#: f.file.cc:2742 f.file.cc:2812 +#: f.file.cc:2632 f.file.cc:2702 #, c-format msgid "file not found: %s" msgstr "arxiu no trobat: %s" -#: f.file.cc:2748 f.file.cc:2818 +#: f.file.cc:2638 f.file.cc:2708 #, c-format msgid "file type not supported: %s" msgstr "tipus d'arxiu no suportaat: %s" -#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:642 +#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:644 msgid "Scroll" msgstr "Desplaçar" -#: f.gallery.cc:940 f.widgets.cc:420 f.widgets.cc:632 +#: f.gallery.cc:940 f.widgets.cc:421 f.widgets.cc:634 msgid "Sync Gallery" msgstr "Sincronitzar galería" -#: f.gallery.cc:950 f.repair.cc:6658 f.repair.cc:6663 fotoxx.h:1157 +#: f.gallery.cc:950 f.repair.cc:6352 f.repair.cc:6357 fotoxx.h:1158 msgid "Open" msgstr "Obrir" @@ -2153,16 +2122,16 @@ msgid "GoTo" msgstr "Anar a" -#: f.gallery.cc:965 f.widgets.cc:637 +#: f.gallery.cc:965 f.widgets.cc:639 msgid "Sort" msgstr "Ordenar" #: f.gallery.cc:971 f.gallery.cc:1540 f.gallery.cc:1541 f.gallery.cc:1543 -#: f.widgets.cc:635 +#: f.widgets.cc:637 msgid "Zoom+" msgstr "Zoom +" -#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:636 +#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:638 msgid "Zoom-" msgstr "Zoom -" @@ -2174,19 +2143,19 @@ msgid "Row↓" msgstr "Fila ↓" -#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:640 +#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:642 msgid "Page↑" msgstr "Pàgina ↑" -#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:641 +#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:643 msgid "Page↓" msgstr "Pàgina ↓" -#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:638 +#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:640 msgid "First" msgstr "Primera" -#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:639 +#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:641 msgid "Last" msgstr "Última" @@ -2210,7 +2179,7 @@ msgid "Choose album" msgstr "Escollir àlbums" -#: f.gallery.cc:1288 f.tools.cc:986 +#: f.gallery.cc:1288 f.tools.cc:991 msgid "Gallery Sort" msgstr "Ordenar galeria" @@ -2234,27 +2203,27 @@ msgid "descending" msgstr " descendent" -#: f.gallery.cc:2373 fotoxx.h:1182 +#: f.gallery.cc:2315 fotoxx.h:1182 msgid "Select Files" msgstr "Seleccionar arxius" -#: f.gallery.cc:2838 +#: f.gallery.cc:2780 msgid "Click list position. Click thumbnail to add." msgstr "Clic una posició de la llista. Clic una miniatura per afegir" -#: f.gallery.cc:2864 f.gallery.cc:3112 +#: f.gallery.cc:2806 f.gallery.cc:3054 msgid "Edit Bookmarks" msgstr "Editar marcadors" -#: f.gallery.cc:3039 +#: f.gallery.cc:2981 msgid "unable to save bookmarks file" msgstr "no puc desar arxiu de marcadors" -#: f.gallery.cc:3112 +#: f.gallery.cc:3054 msgid "Go To Bookmark" msgstr "Anar a un marcador" -#: f.gallery.cc:3169 f.meta.cc:3528 f.repair.cc:8279 +#: f.gallery.cc:3111 f.meta.cc:3526 f.repair.cc:7973 msgid "file not found" msgstr "arxiu no trobat" @@ -2448,7 +2417,7 @@ msgid "Hard" msgstr "Fort" -#: f.mashup.cc:1313 f.repair.cc:6252 +#: f.mashup.cc:1313 f.repair.cc:5946 msgid "Blend" msgstr "Barrejar" @@ -2464,7 +2433,7 @@ msgid "Gradual" msgstr "Gradual" -#: f.mashup.cc:1589 fotoxx.h:1161 +#: f.mashup.cc:1589 fotoxx.h:1162 msgid "Power" msgstr "Força" @@ -2493,45 +2462,45 @@ msgid "add entered text to layout" msgstr "afegir text a la capa" -#: f.mashup.cc:2627 +#: f.mashup.cc:2634 msgid "click position to add text" msgstr "clic en la posició per afegir text" -#: f.mashup.cc:2633 +#: f.mashup.cc:2640 #, c-format msgid "exceeded %d text entries" msgstr "excedit%d entrades de text" -#: f.mashup.cc:2756 +#: f.mashup.cc:2763 msgid "Set line properties, [Add] to layout, edit." msgstr "Ajustar propietats de línia, [Afegir] a la capa, editar." -#: f.mashup.cc:2780 +#: f.mashup.cc:2787 msgid "Edit Line/Arrow" msgstr "Editar linea/fletxa" -#: f.mashup.cc:2835 +#: f.mashup.cc:2842 msgid "add line/arrow to layout" msgstr "afegir línia/fletxa a la capa" -#: f.mashup.cc:2928 +#: f.mashup.cc:2935 msgid "click position to add line" msgstr "Clic en la posició per afegir línia" -#: f.mashup.cc:2934 +#: f.mashup.cc:2941 #, c-format msgid "exceeded %d line entries" msgstr "excedides %d entrades de línia" -#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:723 +#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:725 msgid "View Metadata" msgstr "Veure metadades" #: f.meta.cc:548 msgid "Geocoding service by MapQuest" -msgstr "" +msgstr "Servei de geo-codificació de MapQuest" -#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:724 +#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:726 msgid "Edit Metadata" msgstr "Editar metadades" @@ -2559,11 +2528,11 @@ msgid "Comments" msgstr "Comentaris" -#: f.meta.cc:659 f.meta.cc:3618 -msgid "city" -msgstr "ciutat" +#: f.meta.cc:659 f.meta.cc:3616 +msgid "location" +msgstr "ubicació" -#: f.meta.cc:662 f.meta.cc:3621 +#: f.meta.cc:662 f.meta.cc:3619 msgid "country" msgstr "pais" @@ -2579,76 +2548,76 @@ msgid "Enter New Tag" msgstr "Introduïr nova etiqueta" -#: f.meta.cc:703 f.meta.cc:5459 +#: f.meta.cc:703 f.meta.cc:5446 msgid "Matching Tags" msgstr "Construïnt etiquetes" -#: f.meta.cc:712 f.meta.cc:1708 f.meta.cc:5466 +#: f.meta.cc:712 f.meta.cc:1706 f.meta.cc:5453 msgid "Defined Tags Category" msgstr "Categoria d'etiquetes definida" #: f.meta.cc:719 msgid "search known locations" -msgstr "" +msgstr "mostrar localitats conegudes" #: f.meta.cc:720 msgid "search using web service" -msgstr "" +msgstr "buscar utilitzan servei web" #: f.meta.cc:721 msgid "create tag categories and tags" -msgstr "" +msgstr "crear etiquetes i categories d'etiquetes" -#: f.meta.cc:936 f.meta.cc:3778 -msgid "city not found" -msgstr "ciutat no trobada" +#: f.meta.cc:936 f.meta.cc:3776 +msgid "location not found" +msgstr "ubicació no trobada" -#: f.meta.cc:1214 f.meta.cc:3836 f.meta.cc:4352 +#: f.meta.cc:1212 f.meta.cc:3834 f.meta.cc:4337 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "latitud/longitud errònia: %s %s" -#: f.meta.cc:1248 fotoxx.h:1145 +#: f.meta.cc:1246 fotoxx.h:1146 msgid "Manage Tags" msgstr "Gestionar etiquetes" -#: f.meta.cc:1248 +#: f.meta.cc:1246 msgid "orphan tags" msgstr "etiquetes òrfenes" -#: f.meta.cc:1252 +#: f.meta.cc:1250 msgid "category" msgstr "categoria" -#: f.meta.cc:1255 +#: f.meta.cc:1253 msgid "tag" msgstr "etiqueta" -#: f.meta.cc:1262 +#: f.meta.cc:1260 msgid "Defined Tags:" msgstr "etiquetes definides:" -#: f.meta.cc:1404 f.widgets.cc:441 f.widgets.cc:725 +#: f.meta.cc:1402 f.widgets.cc:441 f.widgets.cc:727 msgid "Edit Any Metadata" msgstr "Editar qualsevol metadada" -#: f.meta.cc:1404 f.meta.cc:2148 +#: f.meta.cc:1402 f.meta.cc:2146 msgid "Full List" msgstr "Llista completa" -#: f.meta.cc:1409 f.meta.cc:2153 +#: f.meta.cc:1407 f.meta.cc:2151 msgid "click to select" msgstr "clic per sel·leccionar" -#: f.meta.cc:1418 f.meta.cc:2164 +#: f.meta.cc:1416 f.meta.cc:2162 msgid "key name" msgstr "nom de clau" -#: f.meta.cc:1420 f.meta.cc:2165 +#: f.meta.cc:1418 f.meta.cc:2163 msgid "key value" msgstr "valor de clau" -#: f.meta.cc:1506 f.meta.cc:2308 +#: f.meta.cc:1504 f.meta.cc:2306 msgid "" "The command: $ man Image::ExifTool::TagNames \n" "will show over 15000 \"standard\" tag names" @@ -2656,31 +2625,31 @@ "El comando: $ man Image::ExifTool::TagNames \n" "mostrará fins a 15000 \"standard\" noms d'etiqueta" -#: f.meta.cc:1579 f.widgets.cc:442 +#: f.meta.cc:1577 f.widgets.cc:442 msgid "Delete Metadata" msgstr "Esborrar metadades" -#: f.meta.cc:1581 fotoxx.h:1095 +#: f.meta.cc:1579 fotoxx.h:1095 msgid "All" msgstr "Tot" -#: f.meta.cc:1582 +#: f.meta.cc:1580 msgid "One Key:" msgstr "Una clau:" -#: f.meta.cc:1685 f.widgets.cc:443 f.widgets.cc:574 +#: f.meta.cc:1683 f.widgets.cc:443 f.widgets.cc:576 msgid "Batch Add/Remove Tags" msgstr "Afegir/eliminar etiquetes en lot" -#: f.meta.cc:1696 +#: f.meta.cc:1694 msgid "tags to add" msgstr "Etiquetes per afegir" -#: f.meta.cc:1697 +#: f.meta.cc:1695 msgid "tags to remove" msgstr "etiquetes per eliminar" -#: f.meta.cc:1782 +#: f.meta.cc:1780 #, c-format msgid "" "%s \n" @@ -2689,15 +2658,15 @@ "%s \n" " massa etiquetes" -#: f.meta.cc:1897 +#: f.meta.cc:1895 msgid "specify files and tags" msgstr "especificar arxius i etiquetes" -#: f.meta.cc:1957 +#: f.meta.cc:1955 msgid "tag names file" msgstr "arxiu de noms d'etiqueta" -#: f.meta.cc:2031 +#: f.meta.cc:2029 #, c-format msgid "" "%d tags to rename \n" @@ -2708,43 +2677,43 @@ "en %d imatges. \n" "procedir?" -#: f.meta.cc:2148 +#: f.meta.cc:2146 msgid "Batch Change Metadata" msgstr "Ca​nviar metadades en lot" -#: f.meta.cc:2222 +#: f.meta.cc:2220 msgid "enter key names" msgstr "introduïr noms clau" -#: f.meta.cc:2228 f.meta.cc:2422 fotoxx.h:1154 +#: f.meta.cc:2226 f.meta.cc:2420 fotoxx.h:1155 msgid "no files selected" msgstr "no hi han arxius seleccionats" -#: f.meta.cc:2407 f.widgets.cc:446 f.widgets.cc:577 +#: f.meta.cc:2405 f.widgets.cc:446 f.widgets.cc:579 msgid "Batch Report Metadata" msgstr "Informe de metada​des en lot" -#: f.meta.cc:2580 +#: f.meta.cc:2578 msgid "date format is YYYY-MM-DD" msgstr "format de data es AAAA-MM-DD" -#: f.meta.cc:2584 +#: f.meta.cc:2582 msgid "date is invalid" msgstr "data no vàlida" -#: f.meta.cc:2618 +#: f.meta.cc:2616 msgid "time format is HH:MM [:SS]" msgstr "fomat d'hora es HH:MM [:SS]" -#: f.meta.cc:2622 +#: f.meta.cc:2620 msgid "time is invalid" msgstr "hora no vàlida" -#: f.meta.cc:3587 f.widgets.cc:447 f.widgets.cc:578 +#: f.meta.cc:3585 f.widgets.cc:447 f.widgets.cc:580 msgid "Batch Add Geotags" msgstr "Afegir geoetiquetes" -#: f.meta.cc:3824 +#: f.meta.cc:3822 msgid "" "data is incomplete \n" " proceed?" @@ -2752,27 +2721,27 @@ "les dades són incompletas \n" " procedir?" -#: f.meta.cc:3874 -msgid "choose city" -msgstr "escollir ciutat" +#: f.meta.cc:3872 +msgid "choose location" +msgstr "escollir ubicació" -#: f.meta.cc:3961 +#: f.meta.cc:3959 msgid "not found" msgstr "no trobada" -#: f.meta.cc:3962 -msgid "city and country required" -msgstr "és necessari ciutat i pais" +#: f.meta.cc:3960 +msgid "location and country required" +msgstr "és necessari ubicació i pais" -#: f.meta.cc:4465 f.meta.cc:5003 f.meta.cc:5347 f.meta.cc:6504 +#: f.meta.cc:4450 f.meta.cc:4988 f.meta.cc:5334 f.meta.cc:6559 msgid "-noindex in use, disabled" msgstr "-noindex en ús, ​deshabilitar" -#: f.meta.cc:4483 +#: f.meta.cc:4468 msgid "choose map file" msgstr "escollir arxiu de mapes" -#: f.meta.cc:4624 +#: f.meta.cc:4609 msgid "" "fotoxx-maps package not installed \n" "(see http://kornelix.net/packages and /tarballs)" @@ -2780,12 +2749,12 @@ "paquet fotoxx-maps no instal·lat \n" "(veure http://kornelix.net/packages i /tarballs)" -#: f.meta.cc:4629 +#: f.meta.cc:4614 #, c-format msgid "map file %s is missing" msgstr "es necessita arxiu de mapes %s" -#: f.meta.cc:4633 +#: f.meta.cc:4618 #, c-format msgid "" "map latitude/longitude data unreasonable \n" @@ -2794,108 +2763,108 @@ "dades de latitut/longitut inconsistents \n" " %.3f %.3f %.3f %.3f" -#: f.meta.cc:4662 +#: f.meta.cc:4647 msgid "search range (km)" msgstr "buscar rang (km)" -#: f.meta.cc:4940 f.meta.cc:5282 +#: f.meta.cc:4925 f.meta.cc:5267 msgid "No matching images found" msgstr "No s'han trobat imatges coincidents" -#: f.meta.cc:5118 +#: f.meta.cc:5103 msgid "image file has no latitude/longitude" -msgstr "" +msgstr "la imatge no té latitut/longitut" -#: f.meta.cc:5384 +#: f.meta.cc:5371 msgid "Search Image Metadata" msgstr "Buscar metadades de la imatge" -#: f.meta.cc:5388 +#: f.meta.cc:5375 msgid "images to search:" msgstr "imatges a buscar:" -#: f.meta.cc:5389 +#: f.meta.cc:5376 msgid "all" msgstr "tot" -#: f.meta.cc:5390 +#: f.meta.cc:5377 msgid "current set only" msgstr "omés selecció actual" -#: f.meta.cc:5393 +#: f.meta.cc:5380 msgid "matching images:" msgstr "imatges coïncidents" -#: f.meta.cc:5394 +#: f.meta.cc:5381 msgid "new set" msgstr "nova selecció" -#: f.meta.cc:5395 +#: f.meta.cc:5382 msgid "add to set" msgstr "afegir a la selecció" -#: f.meta.cc:5396 +#: f.meta.cc:5383 msgid "remove" msgstr "eliminar" -#: f.meta.cc:5399 +#: f.meta.cc:5386 msgid "report type:" msgstr "tipus d'informe" -#: f.meta.cc:5400 +#: f.meta.cc:5387 msgid "gallery" msgstr "galeria" -#: f.meta.cc:5407 +#: f.meta.cc:5394 msgid "date range" msgstr "rand de dates" -#: f.meta.cc:5408 +#: f.meta.cc:5395 msgid "stars range" msgstr "rang d'estrelles" -#: f.meta.cc:5409 +#: f.meta.cc:5396 msgid "search tags" msgstr "buscar etiquetes" -#: f.meta.cc:5410 +#: f.meta.cc:5397 msgid "search text" msgstr "buscar text" -#: f.meta.cc:5411 +#: f.meta.cc:5398 msgid "search files" msgstr "buscar arxius" -#: f.meta.cc:5416 +#: f.meta.cc:5403 msgid "(yyyymmdd)" msgstr "(aaaammdd)" -#: f.meta.cc:5421 +#: f.meta.cc:5408 msgid "last version only" msgstr "només última versió" -#: f.meta.cc:5423 +#: f.meta.cc:5410 msgid "all/any" msgstr "tot/qualsevol" -#: f.meta.cc:5442 +#: f.meta.cc:5429 msgid "search locations" -msgstr "" +msgstr "buscar localitats" -#: f.meta.cc:5448 +#: f.meta.cc:5435 msgid "search other metadata" -msgstr "" +msgstr "buscar altres metadades" -#: f.meta.cc:5455 +#: f.meta.cc:5442 msgid "Enter Search Tag" msgstr "Introduïr etiquetes de cerca" -#: f.meta.cc:5737 +#: f.meta.cc:5724 #, c-format msgid "not a defined tag: %s" msgstr "no és una etiqueta definida: %s" -#: f.meta.cc:5768 +#: f.meta.cc:5755 msgid "" "to remove images from current set, \n" "search current set" @@ -2903,7 +2872,7 @@ "per eliminar imatges de laa selecció actual, \n" "buscar en la selecció actual" -#: f.meta.cc:5775 +#: f.meta.cc:5762 msgid "" "to add images to current set, \n" "search all images" @@ -2911,7 +2880,7 @@ "per afegir imatges a la selecció actual, \n" "buscar en totes les imatges" -#: f.meta.cc:5820 +#: f.meta.cc:5807 #, c-format msgid "" "search dates not reasonable \n" @@ -2920,20 +2889,20 @@ "cerca de dades no raonable \n" " %s %s" -#: f.meta.cc:5838 +#: f.meta.cc:5825 msgid "stars range not reasonable" msgstr "rang d'estrellas no raonable" -#: f.meta.cc:6082 +#: f.meta.cc:6069 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "imatges afegides: %d eliminades: %d nova quantitat: %d" -#: f.meta.cc:6085 +#: f.meta.cc:6072 msgid "no changes made" msgstr "no s'han fet canvis" -#: f.meta.cc:6237 +#: f.meta.cc:6224 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2941,47 +2910,52 @@ "Sempre s'informa d'aquests detalls: \n" "data, estrelles, etiquetes, llegenda, comentari" -#: f.meta.cc:6261 +#: f.meta.cc:6249 msgid "Additional Items for Report" msgstr "Detalls addicionals per a l'informe" -#: f.meta.cc:6267 +#: f.meta.cc:6256 msgid "Keyword" msgstr "Paraula clau" -#: f.meta.cc:6274 +#: f.meta.cc:6270 msgid "Match Criteria" msgstr "Criteri de coincidència" -#: f.meta.cc:6519 +#: f.meta.cc:6366 +#, c-format +msgid "bad number: %s" +msgstr "nombre erroni: %s" + +#: f.meta.cc:6574 msgid "Report Geotag Groups" msgstr "Informe de grups de geoetiquetes" -#: f.meta.cc:6520 +#: f.meta.cc:6575 msgid "Group by country" msgstr "Agrupar per pais" -#: f.meta.cc:6521 -msgid "Group by country/city" -msgstr "Agrupar per pais/ciutat" - -#: f.meta.cc:6522 -msgid "Group by country/city/date" -msgstr "Agrupar pais/ciutat/data" +#: f.meta.cc:6576 +msgid "Group by country/location" +msgstr "Agrupar per pais/ubicació" + +#: f.meta.cc:6577 +msgid "Group by country/location/date" +msgstr "Agrupar pais/ubicació/data" -#: f.meta.cc:6525 +#: f.meta.cc:6580 msgid "Combine within" msgstr "Conbinar dins de" -#: f.meta.cc:6527 +#: f.meta.cc:6582 msgid "days" msgstr "dies" -#: f.meta.cc:6643 +#: f.meta.cc:6702 msgid "geotag groups" msgstr "grups de geo-etiquetes" -#: f.meta.cc:7241 +#: f.meta.cc:7316 msgid "image index is missing" msgstr "Necessari índex d'imatges\t" @@ -3001,39 +2975,35 @@ msgid "Measure" msgstr "Mida" -#: f.repair.cc:1237 +#: f.repair.cc:1235 msgid "Noise Reduction" msgstr "Reducció de soroll" -#: f.repair.cc:1258 -msgid "Flatten 1" -msgstr "Aplanar 1" - -#: f.repair.cc:1259 -msgid "Flatten 2" -msgstr "Aplanar 2" +#: f.repair.cc:1254 fotoxx.h:1131 +msgid "Flatten" +msgstr "Aplanar" -#: f.repair.cc:1260 +#: f.repair.cc:1255 msgid "Median" msgstr "Mediana" -#: f.repair.cc:1280 +#: f.repair.cc:1270 msgid "dark areas" msgstr "àrees fosques" -#: f.repair.cc:1282 +#: f.repair.cc:1272 msgid "all areas" msgstr "totes les àrees" -#: f.repair.cc:2174 +#: f.repair.cc:1868 msgid "Measure Noise" msgstr "Mida de soroll" -#: f.repair.cc:2175 +#: f.repair.cc:1869 msgid "Click on a monotone image area." msgstr "Clic en una àrea de la imatge monotonal" -#: f.repair.cc:2338 +#: f.repair.cc:2032 msgid "" "1. Drag mouse to select. \n" "2. Erase. 3. Repeat. " @@ -3041,23 +3011,23 @@ "1. Arrossegar el ratolí per seleccionar. \n" "2. Esborrar. 3. Repetir. " -#: f.repair.cc:2360 f.widgets.cc:485 +#: f.repair.cc:2054 f.widgets.cc:487 msgid "Smart Erase" msgstr "Esborrat intel.ligent" -#: f.repair.cc:2365 fotoxx.h:1165 +#: f.repair.cc:2059 fotoxx.h:1166 msgid "Radius" msgstr "Radi" -#: f.repair.cc:2367 f.widgets.cc:483 +#: f.repair.cc:2061 f.widgets.cc:485 msgid "Blur" msgstr "Desenfocar" -#: f.repair.cc:2370 +#: f.repair.cc:2064 msgid "New Area" msgstr "Nova àrea" -#: f.repair.cc:2719 +#: f.repair.cc:2413 msgid "" "Method 1:\n" " Left-click on red-eye to darken.\n" @@ -3075,11 +3045,11 @@ "Desfer ulls vermells:\n" " Clic dret en l'ull vermell." -#: f.repair.cc:2735 +#: f.repair.cc:2429 msgid "Red Eye Reduction" msgstr "Reducció d'ulls vermells" -#: f.repair.cc:3200 +#: f.repair.cc:2894 msgid "" "shift + left click: pick color or image position \n" "left click or drag: paint color or copy image \n" @@ -3089,39 +3059,39 @@ "clic esquerra o arrossegar:pintar amb color o copiar de la imatge \n" "clic dret o arrossegar: eliminar color o imatge" -#: f.repair.cc:3233 f.widgets.cc:487 +#: f.repair.cc:2927 f.widgets.cc:489 msgid "Paint/Clone" msgstr "Pintar/Clonar" -#: f.repair.cc:3237 +#: f.repair.cc:2931 msgid "paint color" msgstr "pintar color" -#: f.repair.cc:3240 +#: f.repair.cc:2934 msgid "copy from image" msgstr "copiar des de imatge" -#: f.repair.cc:3247 f.repair.cc:3837 +#: f.repair.cc:2941 f.repair.cc:3531 msgid "paintbrush radius" msgstr "radi del pincell" -#: f.repair.cc:3248 +#: f.repair.cc:2942 msgid "transparency center" msgstr "transparència del centre" -#: f.repair.cc:3249 +#: f.repair.cc:2943 msgid "transparency edge" msgstr "transparència de les vores" -#: f.repair.cc:3256 f.repair.cc:3844 +#: f.repair.cc:2950 f.repair.cc:3538 msgid "gradual paint" msgstr "pintat gradual" -#: f.repair.cc:3257 +#: f.repair.cc:2951 msgid "paint over transparent areas" msgstr "pintar sobre àrees transparents" -#: f.repair.cc:3797 +#: f.repair.cc:3491 msgid "" "left drag: add transparency \n" "right drag: add opacity" @@ -3129,224 +3099,224 @@ "arrossegar esquerra: afegir transparència \n" "arrossegar dret: afegir opacitat" -#: f.repair.cc:3829 f.widgets.cc:488 +#: f.repair.cc:3523 f.widgets.cc:490 msgid "Paint Transparency" msgstr "Pintar transparència" -#: f.repair.cc:3838 +#: f.repair.cc:3532 msgid "strength center" msgstr "força en el centre" -#: f.repair.cc:3839 +#: f.repair.cc:3533 msgid "strength edge" msgstr "força en els extrems" -#: f.repair.cc:4094 f.widgets.cc:489 +#: f.repair.cc:3788 f.widgets.cc:491 msgid "Add Transparency" msgstr "Afegir transparència" -#: f.repair.cc:4098 +#: f.repair.cc:3792 msgid "Match Brightness" msgstr "Coincidència de brillantor" -#: f.repair.cc:4103 +#: f.repair.cc:3797 msgid "Match Color" msgstr "Coincidència de color" -#: f.repair.cc:4105 +#: f.repair.cc:3799 msgid "click on image to select color" msgstr "clic en la imatge per sel·leccionar color" -#: f.repair.cc:4108 f.repair.cc:5318 +#: f.repair.cc:3802 f.repair.cc:5012 msgid "Match using:" msgstr "Usan​t coincidèencia:" -#: f.repair.cc:4114 f.repair.cc:5324 +#: f.repair.cc:3808 f.repair.cc:5018 msgid "Match Level:" msgstr "Nivel​l​ de coincidència:" -#: f.repair.cc:4121 +#: f.repair.cc:3815 msgid "Invert Match" msgstr "Invertir coincidència" -#: f.repair.cc:4124 fotoxx.h:1190 +#: f.repair.cc:3818 fotoxx.h:1190 msgid "Transparency" msgstr "Transparència" -#: f.repair.cc:4386 f.widgets.cc:490 +#: f.repair.cc:4080 f.widgets.cc:492 msgid "Color Mode" msgstr "Mode de color" -#: f.repair.cc:4390 +#: f.repair.cc:4084 msgid "black/white positive" msgstr "positiu blanc i negre" -#: f.repair.cc:4391 +#: f.repair.cc:4085 msgid "black/white negative" msgstr "negatiu blanc i negre" -#: f.repair.cc:4392 +#: f.repair.cc:4086 msgid "color positive" msgstr "positiu color" -#: f.repair.cc:4393 +#: f.repair.cc:4087 msgid "color negative" msgstr "negatiu color" -#: f.repair.cc:4394 +#: f.repair.cc:4088 msgid "sepia" msgstr "sèpia" -#: f.repair.cc:4574 f.widgets.cc:491 +#: f.repair.cc:4268 f.widgets.cc:493 msgid "Shift Colors" msgstr "Modificar colors" -#: f.repair.cc:4810 f.widgets.cc:492 +#: f.repair.cc:4504 f.widgets.cc:494 msgid "Color Saturation" msgstr "Saturació de color" -#: f.repair.cc:4998 +#: f.repair.cc:4692 msgid "+Brightness" msgstr "Brillantor" -#: f.repair.cc:4999 +#: f.repair.cc:4693 msgid "+Red -Cyan" msgstr "+Vermell -Cian" -#: f.repair.cc:5000 +#: f.repair.cc:4694 msgid "+Green -Magenta" msgstr "+Verd -Magenta" -#: f.repair.cc:5001 +#: f.repair.cc:4695 msgid "+Blue -Yellow" msgstr "+Blae -Groc" -#: f.repair.cc:5007 fotoxx.h:1167 +#: f.repair.cc:4701 fotoxx.h:1168 msgid "Red" msgstr "Vermell" -#: f.repair.cc:5008 fotoxx.h:1132 +#: f.repair.cc:4702 fotoxx.h:1133 msgid "Green" msgstr "Verd" -#: f.repair.cc:5009 fotoxx.h:1102 +#: f.repair.cc:4703 fotoxx.h:1102 msgid "Blue" msgstr "Blau" -#: f.repair.cc:5313 +#: f.repair.cc:5007 msgid "Input color to match and adjust:" -msgstr "" +msgstr "Entar color per coincidir i ajustar" -#: f.repair.cc:5315 +#: f.repair.cc:5009 msgid "shift+click on image to select color" msgstr "Majúss+clic en la imatge per a sel·leccionar color" -#: f.repair.cc:5319 +#: f.repair.cc:5013 msgid "Hue" -msgstr "" +msgstr "Tonalitat" -#: f.repair.cc:5320 f.repair.cc:5352 +#: f.repair.cc:5014 f.repair.cc:5046 msgid "Saturation" -msgstr "SAturació" +msgstr "Saturació" -#: f.repair.cc:5321 f.repair.cc:5353 +#: f.repair.cc:5015 f.repair.cc:5047 msgid "Lightness" msgstr "Brillantor" -#: f.repair.cc:5331 +#: f.repair.cc:5025 msgid "Output Color" -msgstr "" +msgstr "Color de sortida" -#: f.repair.cc:5351 +#: f.repair.cc:5045 msgid "Color Hue" msgstr "To de color" -#: f.repair.cc:5354 +#: f.repair.cc:5048 msgid "Adjustment" msgstr "Ajustament" -#: f.repair.cc:5839 +#: f.repair.cc:5533 msgid "Ramp brightness across image" msgstr "Rampa de brillantor a través de la imatge" -#: f.repair.cc:6163 f.tools.cc:2184 +#: f.repair.cc:5857 f.tools.cc:2192 msgid "Click image to select pixels." msgstr "Clic en la imatge per seleccionar píxels." -#: f.repair.cc:6194 +#: f.repair.cc:5888 msgid "Color Ramp" msgstr "Rampa de color" -#: f.repair.cc:6205 +#: f.repair.cc:5899 msgid "Metric:" msgstr "Mètrica:" -#: f.repair.cc:6630 +#: f.repair.cc:6324 msgid "Color Match Images" msgstr "Concordar color d'imatges" -#: f.repair.cc:6656 +#: f.repair.cc:6350 msgid "mouse radius for color sample" msgstr "radi del ratolí per mostra de color" -#: f.repair.cc:6659 +#: f.repair.cc:6353 msgid "image for source color" msgstr "imatge per el color d'origen" -#: f.repair.cc:6661 +#: f.repair.cc:6355 msgid "click on image to get source color" msgstr "clic en la imatge per obtenir color d'origen" -#: f.repair.cc:6664 +#: f.repair.cc:6358 msgid "image to set matching color" msgstr "imatge per establir concordància de color" -#: f.repair.cc:6666 +#: f.repair.cc:6360 msgid "click on image to set matching color" msgstr "click on image to set matching color" -#: f.repair.cc:6727 +#: f.repair.cc:6421 msgid "select source image color first" msgstr "seleccionar primer el color de la imatge d'origen" -#: f.repair.cc:6912 +#: f.repair.cc:6606 msgid "Change Color Profile" msgstr "Canviar perfil de color" -#: f.repair.cc:6916 +#: f.repair.cc:6610 msgid "input profile" msgstr "perfil d'entrada" -#: f.repair.cc:6920 +#: f.repair.cc:6614 msgid "output profile" msgstr "perfil de sortida" -#: f.repair.cc:6936 +#: f.repair.cc:6630 msgid "color profile" msgstr "perfil de color" -#: f.repair.cc:6982 f.repair.cc:6988 +#: f.repair.cc:6676 f.repair.cc:6682 #, c-format msgid "unknown cms profile %s" msgstr "perfil cms desconegut %s" -#: f.repair.cc:7120 f.widgets.cc:499 +#: f.repair.cc:6814 f.widgets.cc:501 msgid "Remove Dust" msgstr "Retirar pols" -#: f.repair.cc:7124 +#: f.repair.cc:6818 msgid "spot size limit" msgstr "límit de mida del punt" -#: f.repair.cc:7127 +#: f.repair.cc:6821 msgid "max. brightness" msgstr "max. brillantor" -#: f.repair.cc:7130 +#: f.repair.cc:6824 msgid "min. contrast" msgstr "min. contrast" -#: f.repair.cc:7904 +#: f.repair.cc:7598 msgid "" " Adjust each RGB color to minimize \n" " color fringes at the image extremes. " @@ -3354,35 +3324,35 @@ " Ajustar cada color RGB per minimitzar \n" " les franges de color en els extrems de la imatge. " -#: f.repair.cc:7927 f.widgets.cc:501 +#: f.repair.cc:7621 f.widgets.cc:503 msgid "Color Fringes" msgstr "Franges de color" -#: f.repair.cc:8126 f.widgets.cc:502 +#: f.repair.cc:7820 f.widgets.cc:504 msgid "Stuck Pixels" msgstr "Píxels retinguts" -#: f.repair.cc:8132 +#: f.repair.cc:7826 msgid "pixel group" msgstr "agrupar píxels" -#: f.repair.cc:8140 f.repair.cc:8208 +#: f.repair.cc:7834 f.repair.cc:7902 msgid "stuck pixels:" msgstr "píxels defectuosos" -#: f.repair.cc:8236 +#: f.repair.cc:7930 msgid "Load Stuck Pixels" msgstr "Carregar píxels defectuosos" -#: f.repair.cc:8238 +#: f.repair.cc:7932 msgid "File:" msgstr "Arxiu:" -#: f.repair.cc:8263 f.repair.cc:8320 +#: f.repair.cc:7957 f.repair.cc:8014 msgid "Stuck Pixels file" msgstr "Arxiu de píxels defectuosos" -#: f.repair.cc:8300 f.tools.cc:3656 +#: f.repair.cc:7994 f.tools.cc:3665 msgid "file format error" msgstr "error de format d'arxiu" @@ -3412,7 +3382,7 @@ "L'indexat és requerit per cercar i funcions de mapa \n" "i oer fer les pàgines de galeria acceptablement ràpides." -#: f.tools.cc:106 f.widgets.cc:546 +#: f.tools.cc:106 f.widgets.cc:548 msgid "Index Image Files" msgstr "Arxiu índex d'imatges" @@ -3511,172 +3481,172 @@ msgid "Image File" msgstr "Arxiu d'imatges" -#: f.tools.cc:964 f.widgets.cc:547 +#: f.tools.cc:965 f.widgets.cc:549 msgid "User Options" msgstr "Opcions d'usuari" -#: f.tools.cc:967 +#: f.tools.cc:968 msgid "Startup Display" msgstr "Pantalla d'inici" -#: f.tools.cc:978 +#: f.tools.cc:979 msgid "Menu Style" msgstr "Estil de menú" -#: f.tools.cc:979 +#: f.tools.cc:980 msgid "Icons" msgstr "Icones" -#: f.tools.cc:980 +#: f.tools.cc:981 msgid "Icons + Text" msgstr "Icones + text" -#: f.tools.cc:982 +#: f.tools.cc:983 msgid "Icon size" msgstr "tamany d'icona" #: f.tools.cc:987 +msgid "Window background color" +msgstr "Color de fons de la finestra" + +#: f.tools.cc:992 msgid "alphabetic" msgstr "alfabètic" -#: f.tools.cc:988 +#: f.tools.cc:993 msgid "file mod date" msgstr "data de modificació de l'arxiu" -#: f.tools.cc:989 +#: f.tools.cc:994 msgid "photo date" msgstr "data de la foto" -#: f.tools.cc:992 +#: f.tools.cc:997 msgid "Dialog font and size" msgstr "Diàleg font i mida" -#: f.tools.cc:997 +#: f.tools.cc:1002 msgid "Image Pan/scroll:" msgstr "Fixar/desplaçar imatge" -#: f.tools.cc:1000 +#: f.tools.cc:1005 msgid "Zooms for 2x" msgstr "Zooms x2" -#: f.tools.cc:1009 +#: f.tools.cc:1014 msgid "JPEG save quality" msgstr "qualitat de l'arxiu JPEG" -#: f.tools.cc:1016 +#: f.tools.cc:1021 msgid "Curve node capture distance" msgstr "Dist'ancia de captura de nodus de corba" -#: f.tools.cc:1020 +#: f.tools.cc:1025 msgid "Map marker size" msgstr "Mida del marcador de mapa" -#: f.tools.cc:1024 +#: f.tools.cc:1029 msgid "show hidden directories in gallery view" msgstr "mostrar directoris ocults en la vista de galeria" -#: f.tools.cc:1027 +#: f.tools.cc:1032 msgid "prev/next shows last file version only" msgstr "ant/seg mostra només la última versió de l'arxiu" -#: f.tools.cc:1030 +#: f.tools.cc:1035 msgid "shift image to right margin" msgstr "canviar imatge al marge dret" -#: f.tools.cc:1033 -msgid "RAW command" -msgstr "Comandament RAW" - -#: f.tools.cc:1037 +#: f.tools.cc:1038 msgid "RAW file types" msgstr "Tipus d'arxius RAW" -#: f.tools.cc:1128 +#: f.tools.cc:1133 msgid "Delete present thumbnails to make effective" msgstr "Esborrar miniatura actual per fer-ho efectiu" -#: f.tools.cc:1150 +#: f.tools.cc:1155 msgid "Select startup directory" msgstr "Seleccionar directori d'inici" -#: f.tools.cc:1157 +#: f.tools.cc:1162 msgid "Select startup image file" msgstr "Seleccionarimatge d'inici" -#: f.tools.cc:1194 +#: f.tools.cc:1199 msgid "startup directory is invalid" msgstr "directori d'inici no és vàlid" -#: f.tools.cc:1205 +#: f.tools.cc:1210 msgid "startup file is invalid" msgstr "arxiu d'inici no és vàlid" -#: f.tools.cc:1332 f.widgets.cc:548 +#: f.tools.cc:1340 f.widgets.cc:550 msgid "Keyboard Shortcuts" msgstr "Tecles drecera" -#: f.tools.cc:1404 +#: f.tools.cc:1412 msgid "Edit KB Shortcuts" msgstr "Editar tecles drecera" -#: f.tools.cc:1409 +#: f.tools.cc:1417 msgid "shortcut key:" msgstr "tecla drecera" -#: f.tools.cc:1410 +#: f.tools.cc:1418 msgid "(enter key)" msgstr "(entra tecla)" -#: f.tools.cc:1536 +#: f.tools.cc:1544 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Reservada, no es pot utilitzar" -#: f.tools.cc:1669 +#: f.tools.cc:1677 msgid "unable to save KB-shortcuts file" msgstr "no es pot desar arxiu de tecles drecera" -#: f.tools.cc:1973 f.widgets.cc:550 +#: f.tools.cc:1981 f.widgets.cc:552 msgid "Grid Lines" msgstr "Línies de graella" -#: f.tools.cc:1982 +#: f.tools.cc:1990 msgid "x-spacing" msgstr "espaiat X" -#: f.tools.cc:1983 +#: f.tools.cc:1991 msgid "x-count" msgstr "compte X" -#: f.tools.cc:1984 +#: f.tools.cc:1992 msgid "x-enable" msgstr "habilitar X" -#: f.tools.cc:1990 +#: f.tools.cc:1998 msgid "y-spacing" msgstr "espaiat Y" -#: f.tools.cc:1991 +#: f.tools.cc:1999 msgid "y-count" msgstr "compta Y" -#: f.tools.cc:1992 +#: f.tools.cc:2000 msgid "y-enable" msgstr "habilitar Y" -#: f.tools.cc:2112 f.tools.cc:2117 f.widgets.cc:551 +#: f.tools.cc:2120 f.tools.cc:2125 f.widgets.cc:553 msgid "Line Color" msgstr "Color de línees" -#: f.tools.cc:2114 +#: f.tools.cc:2122 msgid "Area Color" msgstr "Color de l'àrea" -#: f.tools.cc:2219 f.widgets.cc:552 +#: f.tools.cc:2227 f.widgets.cc:554 msgid "Show RGB" msgstr "Mostrar RGB" -#: f.tools.cc:2509 +#: f.tools.cc:2518 msgid "" "Drag mouse on image. \n" "Left click to cancel. \n" @@ -3686,27 +3656,27 @@ "clic esquerra per cancel.lar. \n" "Tecla X per amagar diàleg." -#: f.tools.cc:2535 f.widgets.cc:553 +#: f.tools.cc:2544 f.widgets.cc:555 msgid "Magnify Image" msgstr "Augmentar imaten" -#: f.tools.cc:2544 +#: f.tools.cc:2553 msgid "X-size" msgstr "Lupa" -#: f.tools.cc:2789 +#: f.tools.cc:2798 msgid "Darkest and Brightest Pixels" msgstr "Píxels més foscos i més brillants" -#: f.tools.cc:2812 +#: f.tools.cc:2821 msgid "Dark Limit" msgstr "Ombra" -#: f.tools.cc:2813 +#: f.tools.cc:2822 msgid "Bright Limit" msgstr "Llum" -#: f.tools.cc:2908 +#: f.tools.cc:2917 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3714,43 +3684,43 @@ "la brillantor ha de mostrar una rampa gradual \n" "extenent-se fina a les vores." -#: f.tools.cc:3004 f.widgets.cc:556 +#: f.tools.cc:3013 f.widgets.cc:558 msgid "Monitor Gamma" msgstr "Gamma del monitor" -#: f.tools.cc:3064 +#: f.tools.cc:3073 msgid "Available Translations" msgstr "Traduccions disponibles" -#: f.tools.cc:3068 +#: f.tools.cc:3077 msgid "Set Language" msgstr "Sel.leccionar idioma" -#: f.tools.cc:3206 f.widgets.cc:559 +#: f.tools.cc:3215 f.widgets.cc:561 msgid "Calibrate Printer" msgstr "Calibrar impresora" -#: f.tools.cc:3231 +#: f.tools.cc:3240 msgid "print color chart" msgstr "imprimir carta de colors" -#: f.tools.cc:3232 +#: f.tools.cc:3241 msgid "scan and save color chart" msgstr "escanejar y desar carta de colors" -#: f.tools.cc:3233 +#: f.tools.cc:3242 msgid "align and trim color chart" msgstr "adressar i retalla carta de colors" -#: f.tools.cc:3234 +#: f.tools.cc:3243 msgid "open and process color chart" msgstr "obrir i processar carta de colors" -#: f.tools.cc:3235 +#: f.tools.cc:3244 msgid "print image with revised colors" msgstr "imprimir imatge amb colors revisats" -#: f.tools.cc:3378 +#: f.tools.cc:3387 #, c-format msgid "" "Scan the printed color chart. \n" @@ -3761,7 +3731,7 @@ "La columna mès fosca a dalt. \n" "Desar com %s/" -#: f.tools.cc:3393 +#: f.tools.cc:3402 msgid "" "Open and edit the scanned color chart file. \n" "Remove any skew or rotation from scanning. \n" @@ -3772,11 +3742,11 @@ "Eliminar qualsevol gir o rotació de l'escanejat. \n" "Retallar AMB MOLTA CURA el prim marge verd." -#: f.tools.cc:3425 +#: f.tools.cc:3434 msgid "Open the trimmed color chart file" msgstr "Obrir la carta de colors retallada" -#: f.tools.cc:3558 +#: f.tools.cc:3567 msgid "" "Set the name for the output calibration file \n" "[your calibration name].dat" @@ -3784,19 +3754,19 @@ "Establir el nom per l'arxiu de calibració de sortida \n" "[el seu nom per la calibració].dat" -#: f.tools.cc:3598 +#: f.tools.cc:3607 msgid "Color map file to use" msgstr "Arxiu de mapa de color per utilitzar" -#: f.tools.cc:3615 +#: f.tools.cc:3624 msgid "Select the image file to print." msgstr "Sel·leccionar imatge a imprimir" -#: f.tools.cc:3680 +#: f.tools.cc:3689 msgid "converting colors..." msgstr "convertint colors" -#: f.tools.cc:3780 +#: f.tools.cc:3789 msgid "Image colors are converted for printing." msgstr "Colors de la imatge convertits per imprimir" @@ -3830,7 +3800,7 @@ #: f.widgets.cc:185 msgid "File: Open, RAW, Rename, Delete, Print" -msgstr "" +msgstr "Arxiu : Obrir, RAW, Re-anomenar, Esborrar, Imprimir" #: f.widgets.cc:186 msgid "Save modified image file to disk" @@ -3970,568 +3940,572 @@ msgid "Open a newly added file" msgstr "Obrir un nou arxiu afegit" -#: f.widgets.cc:231 f.widgets.cc:232 +#: f.widgets.cc:231 msgid "Open and edit a camera RAW file" msgstr "Obrir i editar un arxiu de càmera RAW" -#: f.widgets.cc:233 +#: f.widgets.cc:232 msgid "Change the image file name" msgstr "Canvia nom de la imatge" -#: f.widgets.cc:234 +#: f.widgets.cc:233 msgid "Copy or Move an image file to a new location" -msgstr "" +msgstr "Copiar o moure un arxiu a una nova ubicació" -#: f.widgets.cc:235 +#: f.widgets.cc:234 msgid "Create a blank image" msgstr "Crear una imatge buida" -#: f.widgets.cc:236 +#: f.widgets.cc:235 msgid "Delete or trash image file" -msgstr "" +msgstr "Eliminar o esborrar una imatge" -#: f.widgets.cc:237 +#: f.widgets.cc:236 msgid "Print the current image" msgstr "Impprimir la imatge actual" -#: f.widgets.cc:238 +#: f.widgets.cc:237 msgid "Print current image with adjusted colors" msgstr "Imprimir imatge actual amb els colors ajustats" -#: f.widgets.cc:239 f.widgets.cc:434 +#: f.widgets.cc:238 f.widgets.cc:434 msgid "Quit Fotoxx" msgstr "Sortir de Fotoxx" -#: f.widgets.cc:242 +#: f.widgets.cc:241 msgid "List a few key metadata items" msgstr "Llistar algunes dades clau de metadades" -#: f.widgets.cc:243 +#: f.widgets.cc:242 msgid "List all metadata items" msgstr "Listar totes les metadades" -#: f.widgets.cc:244 +#: f.widgets.cc:243 msgid "(Toggle) show captions and comments" msgstr "(Canviar) mostra llegendes i comentaris" -#: f.widgets.cc:245 +#: f.widgets.cc:244 msgid "Edit image tags/geotags/caption/rating ..." -msgstr "" +msgstr "Editar etiquetes/geoetiquetes/títol/valoració ..." -#: f.widgets.cc:246 +#: f.widgets.cc:245 msgid "Edit any image metadata" msgstr "Editar qualsevol metadada de la imatge" -#: f.widgets.cc:247 +#: f.widgets.cc:246 msgid "Remove all metadata from an image" msgstr "Eliminar totes les metadades d'una imatge" -#: f.widgets.cc:248 +#: f.widgets.cc:247 msgid "Add/remove tags for multiple images" msgstr "Afegir/eliminar etiquetes per múltiples imatges " -#: f.widgets.cc:249 +#: f.widgets.cc:248 msgid "Convert tag names for all images" msgstr "Convertir noms d'etiqueta per totes les imatges" -#: f.widgets.cc:250 +#: f.widgets.cc:249 msgid "Add/change/delete metadata for multiple images" msgstr "Afegir/canviar/esborrar metadades a múltiples imatges" -#: f.widgets.cc:251 +#: f.widgets.cc:250 msgid "Report metadata for multiple images" msgstr "Informe de m​eatada​des per múltiples imatges" -#: f.widgets.cc:252 +#: f.widgets.cc:251 msgid "Add/revise geotags for multiple images" msgstr "Afegir/revisar geo-etiquetes a múltiples imatges" -#: f.widgets.cc:257 +#: f.widgets.cc:256 msgid "Select object or area for editing" msgstr "Seleccionar objecte o àrea per editar" +#: f.widgets.cc:257 +msgid "Find a gap in an area outline" +msgstr "Trobar separació en un contorn d'àrea" + #: f.widgets.cc:258 +msgid "Select hairy or irregular edge" +msgstr "Seleccioneu una vora esfilagarsada o irregular" + +#: f.widgets.cc:259 msgid "Show (outline) existing area" msgstr "Mostrar un àrea existent (contorn)" -#: f.widgets.cc:259 +#: f.widgets.cc:260 msgid "Hide existing area" msgstr "Ocultar àrea existent" -#: f.widgets.cc:260 +#: f.widgets.cc:261 msgid "Enable area for editing" msgstr "Activar àrea per editar" -#: f.widgets.cc:261 +#: f.widgets.cc:262 msgid "Disable area for editing" msgstr "Desactivat àrea per editar" -#: f.widgets.cc:262 +#: f.widgets.cc:263 msgid "Reverse existing area" msgstr "Invertir àrea existent" -#: f.widgets.cc:263 +#: f.widgets.cc:264 msgid "Erase existing area" msgstr "Esborrar àrea existent" -#: f.widgets.cc:264 +#: f.widgets.cc:265 msgid "Copy area for later pasting into image" msgstr "Copiar àrea per posterior enganxat en una imatge" -#: f.widgets.cc:265 -msgid "Paste previously copied area into image" -msgstr "Enganxar en la imatge àrea previament copiada" - #: f.widgets.cc:266 +msgid "Save area to a file with transparency" +msgstr "Desar àrea en un arxiu amb tranparència" + +#: f.widgets.cc:267 msgid "Open a file and paste as area into image" msgstr "Obrir un arxiu i exnganxar-lo com un àrea en la imatge" -#: f.widgets.cc:267 -msgid "Save area to a file with transparency" -msgstr "Desar àrea en un arxiu amb tranparència" +#: f.widgets.cc:268 +msgid "Paste previously copied area into image" +msgstr "Enganxar en la imatge àrea previament copiada" -#: f.widgets.cc:270 +#: f.widgets.cc:271 msgid "Trim/Crop margins and/or Rotate" msgstr "Retallar/tallar marges i/o girar" -#: f.widgets.cc:271 +#: f.widgets.cc:272 msgid "Upright a rotated image" msgstr "Adressar una imatge girada" -#: f.widgets.cc:272 f.widgets.cc:273 +#: f.widgets.cc:273 f.widgets.cc:274 msgid "Fast auto enhance that may work OK" msgstr "Auto-millora ràpida" -#: f.widgets.cc:274 +#: f.widgets.cc:275 msgid "Adjust brightness, contrast, color" msgstr "Ajustar brillantor, contrast, color" -#: f.widgets.cc:275 +#: f.widgets.cc:276 msgid "Add local contrast, enhance details" msgstr "Afegir contrast local, millorar detalls" -#: f.widgets.cc:276 +#: f.widgets.cc:277 msgid "Edit brightness distribution" -msgstr "" +msgstr "Editar distribució de brillantor" -#: f.widgets.cc:277 +#: f.widgets.cc:278 msgid "Flatten zonal brightness distribution" msgstr "Aplanar zones de l'histograma" -#: f.widgets.cc:278 +#: f.widgets.cc:279 msgid "Change pixel dimensions" msgstr "Canviar dimensions de píxels" -#: f.widgets.cc:279 +#: f.widgets.cc:280 msgid "Mirror image horizontally or vertically" msgstr "Enmirallar la imatge horizontalment o verticalment" -#: f.widgets.cc:280 +#: f.widgets.cc:281 msgid "Write text on image" msgstr "Escriure un text en la imatge" -#: f.widgets.cc:281 +#: f.widgets.cc:282 msgid "Write lines or arrows on image" msgstr "Dibuixar línees o fletxes en la imatge" -#: f.widgets.cc:282 +#: f.widgets.cc:283 msgid "Fix brightness uniformity across image" msgstr "Corretgir la uniformitat de la brillantor per zones de la imatge" -#: f.widgets.cc:283 +#: f.widgets.cc:284 msgid "Paint edit function gradually with mouse" msgstr "Funció d'edició pintant gradualment amb el ratolí" -#: f.widgets.cc:284 +#: f.widgets.cc:285 msgid "Leverage edits by brightness or color" msgstr "Edició per nivells de brillantor o color" -#: f.widgets.cc:285 +#: f.widgets.cc:286 msgid "Edit plugins menu or run a plugin function" msgstr "Editar menú de plugins o executar una funció de plugin" -#: f.widgets.cc:288 +#: f.widgets.cc:289 msgid "Make the image look sharper" msgstr "Fer que la imatge es vegi més enfocada" -#: f.widgets.cc:289 +#: f.widgets.cc:290 msgid "Make the image look fuzzy" msgstr "Fer que la imatge es vegi desenfocada" -#: f.widgets.cc:290 +#: f.widgets.cc:291 msgid "Filter noise from low-light photos" msgstr "Filtrar soroll de fotografíes fetes amb poca llum" -#: f.widgets.cc:291 +#: f.widgets.cc:292 msgid "Remove unwanted objects" msgstr "Eliminar objectes no desitjats" -#: f.widgets.cc:292 +#: f.widgets.cc:293 msgid "Fix red-eyes from electronic flash" msgstr "Corretgir ulls vermells produïts per un flash electrònic" -#: f.widgets.cc:293 +#: f.widgets.cc:294 msgid "Paint image pixels using the mouse" msgstr "Pintar utilitzant el ratolí" -#: f.widgets.cc:294 +#: f.widgets.cc:295 msgid "Paint image transparency using the mouse" msgstr "Pintar transparència d'imatge amb el ratolí" -#: f.widgets.cc:295 +#: f.widgets.cc:296 msgid "Add image transparency based on image attributes" msgstr "Afegir transparència a la imatge basada en els atributs de la imatge" -#: f.widgets.cc:296 +#: f.widgets.cc:297 msgid "Make BW/color, negative/positive, sepia" msgstr "Blanc i negre/color, negatiu/positiu, sèpia" -#: f.widgets.cc:297 +#: f.widgets.cc:298 msgid "Shift/convert colors into other colors" msgstr "Canviar/convertir uns colors en altres" -#: f.widgets.cc:298 +#: f.widgets.cc:299 msgid "Adjust color intensity (saturation)" msgstr "Ajustar intensitat de color (saturació)" -#: f.widgets.cc:299 +#: f.widgets.cc:300 msgid "Adjust color using RGB or CMY colors" msgstr "Ajustar coilor usant sistema RGB o CMY" -#: f.widgets.cc:300 +#: f.widgets.cc:301 msgid "Adjust color using HSL colors" msgstr "Ajustar color usant sistema HSL" -#: f.widgets.cc:301 +#: f.widgets.cc:302 msgid "Adjust color in selected image areas" msgstr "Ajustar color en una àrea seleccionada de una imatge" -#: f.widgets.cc:302 +#: f.widgets.cc:303 msgid "Match colors on one image with another" msgstr "Fer concordar colors d'una imatge amb els d'altra" -#: f.widgets.cc:303 +#: f.widgets.cc:304 msgid "Convert to another color profile" msgstr "Convertir a un perfil de color" -#: f.widgets.cc:304 +#: f.widgets.cc:305 msgid "Remove dust spots from scanned slides" msgstr "Eliminar pols de diapositives escanejades" -#: f.widgets.cc:305 +#: f.widgets.cc:306 msgid "Smoothen edges with jaggies" msgstr "Suavitzar vores amb dents de serr" -#: f.widgets.cc:306 +#: f.widgets.cc:307 msgid "Reduce Chromatic Abberation" msgstr "Reduïr l'aberració cromàtica" -#: f.widgets.cc:307 +#: f.widgets.cc:308 msgid "Erase known hot and dark pixels" msgstr "Esborrar píxels calents i foscos coneguts" -#: f.widgets.cc:310 +#: f.widgets.cc:311 msgid "Remove curvature, esp. panoramas" msgstr "Eliminar corbatura, especialment d'un panorama" -#: f.widgets.cc:311 +#: f.widgets.cc:312 msgid "Straighten objects seen from an angle" msgstr "Redreçar objectes vistos des d'un angle" -#: f.widgets.cc:312 +#: f.widgets.cc:313 msgid "Distort image areas using the mouse" msgstr "Distorsionar una àrea de una imatge utilitzant el ratolí" -#: f.widgets.cc:313 f.widgets.cc:314 f.widgets.cc:315 +#: f.widgets.cc:314 f.widgets.cc:315 f.widgets.cc:316 msgid "Distort the whole image using the mouse" msgstr "Distorsionar tota la imatge utilitzant el ratolí" -#: f.widgets.cc:316 +#: f.widgets.cc:317 msgid "Flatten a photographed book page" msgstr "Aplanar una pàgina impresa fotografiada" -#: f.widgets.cc:317 +#: f.widgets.cc:318 msgid "Make a spherical projection of an image" msgstr "Fer una projecció esfèrica de una imatge" -#: f.widgets.cc:318 +#: f.widgets.cc:319 msgid "Rescale image outside selected areas" msgstr "Re-escalar imatge per fora de les àrees sel·leccionades" -#: f.widgets.cc:321 +#: f.widgets.cc:322 msgid "Reduce color depth (posterize)" msgstr "Reduïr profunditat de color (posteritzar)" -#: f.widgets.cc:322 +#: f.widgets.cc:323 msgid "Convert to pencil sketch" msgstr "Convertir en un esbós a llapis" -#: f.widgets.cc:323 +#: f.widgets.cc:324 msgid "Convert image into a cartoon drawing" msgstr "Convertir imatge a un dibuix a tintes planes" -#: f.widgets.cc:324 +#: f.widgets.cc:325 msgid "Convert to line drawing (edge detection)" msgstr "Convertir a un dibuix de línees (detecció de vores)" -#: f.widgets.cc:325 +#: f.widgets.cc:326 msgid "Convert to solid color drawing" msgstr "Convertir a un dibuix de colors sòlids" -#: f.widgets.cc:326 +#: f.widgets.cc:327 msgid "Graduated Blur depending on contrast" msgstr "Desenfocament graduat depenent del contrast" -#: f.widgets.cc:327 +#: f.widgets.cc:328 msgid "Create an embossed or 3D appearance" msgstr "Crear un relleu o aparença 3D" -#: f.widgets.cc:328 +#: f.widgets.cc:329 msgid "Convert to square tiles" msgstr "Convertir a rajoles quadrades" -#: f.widgets.cc:329 +#: f.widgets.cc:330 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Convertir a punts (efecte Roy Lichtenstein" -#: f.widgets.cc:330 +#: f.widgets.cc:331 msgid "Convert into a simulated painting" msgstr "Convertir a una pintura simulada" -#: f.widgets.cc:331 +#: f.widgets.cc:332 msgid "Change brightness or color radially" msgstr "Canviar brillantor o color radialment" -#: f.widgets.cc:332 +#: f.widgets.cc:333 msgid "Add texture to an image" msgstr "Afegir textura a una imatge" -#: f.widgets.cc:333 +#: f.widgets.cc:334 msgid "Tile image with a repeating pattern" msgstr "Enrajolñar imatge amb un patrò repetitiu" -#: f.widgets.cc:334 +#: f.widgets.cc:335 msgid "Create a mosaic with tiles made from all images" msgstr "Crear un mosaïc amb rajoles fetes de totes les imatges" -#: f.widgets.cc:335 +#: f.widgets.cc:336 msgid "Process an image using a custom kernel" msgstr "Processar una imatge fent servir una matriu personalitzada" -#: f.widgets.cc:336 +#: f.widgets.cc:337 msgid "Warp an image with a wave pattern" msgstr "Deformar una imatge amb ​un patró d'ones" -#: f.widgets.cc:337 +#: f.widgets.cc:338 msgid "Blur an image in the direction of mouse drags" msgstr "Desenfocar una imatge en la direcció del moviment del ratolí" -#: f.widgets.cc:338 +#: f.widgets.cc:339 msgid "Increasing blur with distance from selected areas" msgstr "" "Incrementar desenfocament amb la distància des de les àrees sel·leccionades" -#: f.widgets.cc:341 +#: f.widgets.cc:342 msgid "Combine bright/dark images for better detail" msgstr "Combinar imatges fosques/il.luminadas per millorar detalls" -#: f.widgets.cc:342 +#: f.widgets.cc:343 msgid "Combine near/far focus images for deeper focus" msgstr "" "Combinar imatges enfocades aprop/lluny per obtenir major profunditat de camp" -#: f.widgets.cc:343 +#: f.widgets.cc:344 msgid "Combine images to erase passing people, etc." msgstr "Combinar imatges per esborrar vianants, cotxes, etc" -#: f.widgets.cc:344 +#: f.widgets.cc:345 msgid "Combine noisy images into a low-noise image" msgstr "Combinar imatges amb soroll en imatges amb poc soroll" -#: f.widgets.cc:345 +#: f.widgets.cc:346 msgid "Combine images into a panorama" msgstr "Combinar imatges en un panorama" -#: f.widgets.cc:346 +#: f.widgets.cc:347 msgid "Combine images into a vertical panorama" msgstr "Combinar imatges en un panorama vertical" -#: f.widgets.cc:347 +#: f.widgets.cc:348 msgid "Combine images into a panorama (panorama tools)" msgstr "Combinar imatges en un panorama (panorama tools)" -#: f.widgets.cc:348 +#: f.widgets.cc:349 msgid "Arrange images and text in a layout (montage)" msgstr "Ordenar imatges i text en una capa (muntatge)" -#: f.widgets.cc:351 +#: f.widgets.cc:352 msgid "Index new files and make thumbnails" msgstr "Indexar nous arxius i fer miniatures" -#: f.widgets.cc:352 +#: f.widgets.cc:353 msgid "Change user preferences" msgstr "Canviar preferències d'usuari" -#: f.widgets.cc:353 +#: f.widgets.cc:354 msgid "Change Keyboard Shortcut Keys" msgstr "Canviar tecles drecera" -#: f.widgets.cc:354 +#: f.widgets.cc:355 msgid "Show a brightness distribution graph" msgstr "Mostrar histograma (distribució de la brillantor)" -#: f.widgets.cc:355 +#: f.widgets.cc:356 msgid "Show or revise grid lines" msgstr "Mostrar o amagar línies de graella" -#: f.widgets.cc:356 +#: f.widgets.cc:357 msgid "Change color of foreground lines" msgstr "Canviar color a línies de contorn" -#: f.widgets.cc:357 +#: f.widgets.cc:358 msgid "Show RGB colors at mouse click" msgstr "Mostrar colors RGB amb un clic de ratolí" -#: f.widgets.cc:358 +#: f.widgets.cc:359 msgid "Magnify image around the mouse position" msgstr "Augmenta la imatge al voltant de la posició del ratolí" -#: f.widgets.cc:359 +#: f.widgets.cc:360 msgid "Highlight darkest and brightest pixels" msgstr "Resaltar píxels més foscos o més brillants" -#: f.widgets.cc:360 +#: f.widgets.cc:361 msgid "Chart to adjust monitor color" msgstr "Carta per ajustar el color del monitor" -#: f.widgets.cc:361 +#: f.widgets.cc:362 msgid "Chart to adjust monitor gamma" msgstr "Carta per ajustar la gamma del monitor" -#: f.widgets.cc:362 +#: f.widgets.cc:363 msgid "Change the GUI language" msgstr "Canviar idioma de la interfície d'usuari" -#: f.widgets.cc:363 +#: f.widgets.cc:364 msgid "Report missing translations" msgstr "Informe de traduccions que falten" -#: f.widgets.cc:364 +#: f.widgets.cc:365 msgid "Calibrate printer colors" msgstr "Calibrar colors d'impresora" -#: f.widgets.cc:365 +#: f.widgets.cc:366 msgid "Memory and CPU (to terminal/logfile)" msgstr "Memoria i CPU (al terminal/arxiu de registre)" -#: f.widgets.cc:369 +#: f.widgets.cc:370 msgid "Rename/convert/resize/move multiple files" msgstr "Reanomenar/convertir/redimensionar/moure múltiples arxius" -#: f.widgets.cc:370 +#: f.widgets.cc:371 msgid "Upright multiple rotated image files" msgstr "Adressar múltiples imatges girades" -#: f.widgets.cc:371 +#: f.widgets.cc:372 msgid "Delete or Trash multiple files" msgstr "Esborrar/eliminar múltiples arxius" -#: f.widgets.cc:372 -msgid "Convert camera RAW files using DCraw" -msgstr "Convertir arxius RAW usant DCraw" - #: f.widgets.cc:373 +msgid "Convert camera RAW files using libraw" +msgstr "Convertir arxius RAW usant libraw" + +#: f.widgets.cc:374 msgid "Convert camera RAW files using Raw Therapee" msgstr "Convertir arxius RAW usant RawTherapee" -#: f.widgets.cc:374 +#: f.widgets.cc:375 msgid "Build and run edit script files" msgstr "Escriure y executar scripts editats" -#: f.widgets.cc:375 +#: f.widgets.cc:376 msgid "Burn selected image files to DVD/BlueRay disc" msgstr "Gravar imatge sel·leccionada a un DVD o Blue Ray" -#: f.widgets.cc:376 +#: f.widgets.cc:377 msgid "Search all image files and report duplicates" msgstr "Buscar totes les imatges i informar dels duplicats" -#: f.widgets.cc:381 +#: f.widgets.cc:382 msgid "Quick Start mini-guide" msgstr "Minni guia d'inici ràpid" -#: f.widgets.cc:382 +#: f.widgets.cc:383 msgid "Read the user guide" msgstr "Llegir la guia d'usuari" -#: f.widgets.cc:383 +#: f.widgets.cc:384 msgid "Recent user guide changes" msgstr "Canvis recents a la guia d'usuari" -#: f.widgets.cc:384 +#: f.widgets.cc:385 msgid "Summary of image edit functions" msgstr "Resum de les funcions d'edició d'imatge" -#: f.widgets.cc:385 +#: f.widgets.cc:386 msgid "Technical installation notes" msgstr "Notes tècniques d'instal.lació " -#: f.widgets.cc:386 +#: f.widgets.cc:387 msgid "List updates by Fotoxx version" msgstr "Llistar actualitzacions per versió de Fotoxx" -#: f.widgets.cc:387 +#: f.widgets.cc:388 msgid "View the log file and error messages" msgstr "Veure l'arxiu de registre i missatges d'error" -#: f.widgets.cc:388 +#: f.widgets.cc:389 msgid "How to do Fotoxx translations" msgstr "Com fer traduccións de Fotoxx" -#: f.widgets.cc:389 +#: f.widgets.cc:390 msgid "Show the Fotoxx web page" msgstr "Mostrar la pàgina web de Fotoxx" -#: f.widgets.cc:390 +#: f.widgets.cc:391 msgid "Version, license, contact, credits" msgstr "Versió, llicència, contacte, crèdits" -#: f.widgets.cc:393 +#: f.widgets.cc:394 msgid "Organize images into albums" msgstr "Organitzar imatges en àlbums" -#: f.widgets.cc:394 +#: f.widgets.cc:395 msgid "Start a slide show" msgstr "Iniciar un diaporama" -#: f.widgets.cc:395 +#: f.widgets.cc:396 msgid "Set desktop wallpaper from current Fotoxx image" msgstr "Establir fons d'escriptori des de la imatge de Fotoxx actual" -#: f.widgets.cc:396 +#: f.widgets.cc:397 msgid "Cycle desktop wallpaper from a Fotoxx album" msgstr "Fons d'escritori cíclic des d'un àlbum de Fotoxx" -#: f.widgets.cc:419 +#: f.widgets.cc:420 msgid "New Window" msgstr "Nova finestra" -#: f.widgets.cc:421 +#: f.widgets.cc:422 msgid "Recently Seen Images" msgstr "Imatges vistes recentment " -#: f.widgets.cc:422 +#: f.widgets.cc:423 msgid "Newest Images" msgstr "Imatges més recents" -#: f.widgets.cc:424 +#: f.widgets.cc:425 msgid "Open Previous File" msgstr "Obrir arxiu anterior" -#: f.widgets.cc:425 -msgid "Open RAW (ufraw)" -msgstr "Obrir RAW (ufraw)" - #: f.widgets.cc:426 msgid "Open RAW (Raw Therapee)" msgstr "Obrir RAW (Raw Therapee)" @@ -4540,13 +4514,13 @@ msgid "New Blank Image" msgstr "Nova imatge buida" -#: f.widgets.cc:429 f.widgets.cc:727 +#: f.widgets.cc:429 f.widgets.cc:729 msgid "Copy/Move to Location" -msgstr "" +msgstr "Copiar/moure a una ubicació" #: f.widgets.cc:430 msgid "Delete/Trash Image File" -msgstr "" +msgstr "Eliminar/esborrar una imatge" #: f.widgets.cc:431 msgid "Print Image" @@ -4556,7 +4530,7 @@ msgid "Print Calibrated Image" msgstr "Imprimir imatge calibrada" -#: f.widgets.cc:433 f.widgets.cc:585 +#: f.widgets.cc:433 f.widgets.cc:587 msgid "Set Desktop Wallpaper" msgstr "Establir fons d'escriptori" @@ -4572,19 +4546,19 @@ msgid "Show Captions on Image" msgstr "Mostrar llegendes a la imatge" -#: f.widgets.cc:444 f.widgets.cc:575 +#: f.widgets.cc:444 f.widgets.cc:577 msgid "Batch Rename Tags" msgstr "Reanomenar etiquetes en lot" -#: f.widgets.cc:445 f.widgets.cc:576 +#: f.widgets.cc:445 f.widgets.cc:578 msgid "Batch Add/Change Metadata" msgstr "Afegir/canviar metadades en lot" -#: f.widgets.cc:448 f.widgets.cc:580 f.widgets.cc:658 f.widgets.cc:670 +#: f.widgets.cc:448 f.widgets.cc:582 f.widgets.cc:660 f.widgets.cc:672 msgid "Search Images" msgstr "Buscar imatges" -#: f.widgets.cc:449 f.widgets.cc:579 f.widgets.cc:657 f.widgets.cc:669 +#: f.widgets.cc:449 f.widgets.cc:581 f.widgets.cc:659 f.widgets.cc:671 msgid "Images by Geotag" msgstr "Imatges per Geotag" @@ -4592,419 +4566,419 @@ msgid "Select" msgstr "Seleccionar" -#: f.widgets.cc:453 fotoxx.h:1183 +#: f.widgets.cc:453 +msgid "Find Gap" +msgstr "Trobar separació" + +#: f.widgets.cc:454 +msgid "Select Hairy" +msgstr "Seleccionar irregular" + +#: f.widgets.cc:455 fotoxx.h:1183 msgid "Show" msgstr "Mostrar" -#: f.widgets.cc:454 fotoxx.h:1136 +#: f.widgets.cc:456 fotoxx.h:1137 msgid "Hide" msgstr "Ocultar" -#: f.widgets.cc:455 fotoxx.h:1123 +#: f.widgets.cc:457 fotoxx.h:1124 msgid "Enable" msgstr "Activar" -#: f.widgets.cc:456 fotoxx.h:1119 +#: f.widgets.cc:458 fotoxx.h:1120 msgid "Disable" msgstr "Desactivar" -#: f.widgets.cc:457 fotoxx.h:1139 +#: f.widgets.cc:459 fotoxx.h:1140 msgid "Invert" msgstr "Invertir" -#: f.widgets.cc:458 fotoxx.h:1197 +#: f.widgets.cc:460 fotoxx.h:1197 msgid "Unselect" msgstr "Deseleccionar" -#: f.widgets.cc:459 -msgid "Copy Area" -msgstr "Copiar àrea" - -#: f.widgets.cc:460 +#: f.widgets.cc:462 msgid "Paste Area" msgstr "Enganxar àrea" -#: f.widgets.cc:461 +#: f.widgets.cc:463 msgid "Open Area File" msgstr "Obrir arxiu d'àrea" -#: f.widgets.cc:462 -msgid "Save Area File" -msgstr "Desar arxiu d'àrea" - -#: f.widgets.cc:467 +#: f.widgets.cc:469 msgid "Voodoo 1" msgstr "Auto-millora 1" -#: f.widgets.cc:468 +#: f.widgets.cc:470 msgid "Voodoo 2" msgstr "Auto-millora 2" -#: f.widgets.cc:470 f.widgets.cc:741 +#: f.widgets.cc:472 f.widgets.cc:743 msgid "Edit Brightness" -msgstr "" +msgstr "Editar brillantor" -#: f.widgets.cc:471 f.widgets.cc:742 +#: f.widgets.cc:473 f.widgets.cc:744 msgid "Zonal Flatten" msgstr "Aplanat zonañl" -#: f.widgets.cc:475 +#: f.widgets.cc:477 msgid "Add Text" msgstr "Afegir text" -#: f.widgets.cc:476 +#: f.widgets.cc:478 msgid "Add Lines" msgstr "Afegir línees" -#: f.widgets.cc:479 +#: f.widgets.cc:481 msgid "Plugins" msgstr "Plugins" -#: f.widgets.cc:484 +#: f.widgets.cc:486 msgid "Denoise" msgstr "Reduïr soroll" -#: f.widgets.cc:486 +#: f.widgets.cc:488 msgid "Red Eyes" msgstr "Ulls vermells" -#: f.widgets.cc:493 +#: f.widgets.cc:495 msgid "Adjust RGB/CMY" msgstr "Ajustar RGB7CMY" -#: f.widgets.cc:494 +#: f.widgets.cc:496 msgid "Adjust HSL" msgstr "Ajustar HSL" -#: f.widgets.cc:495 +#: f.widgets.cc:497 msgid "Ramp Brightness" -msgstr "" +msgstr "Rampa de brillantor" -#: f.widgets.cc:496 +#: f.widgets.cc:498 msgid "Ramp Color" -msgstr "" +msgstr "Rampa de color" -#: f.widgets.cc:497 +#: f.widgets.cc:499 msgid "Match Colors" msgstr "Concordar colors" -#: f.widgets.cc:498 +#: f.widgets.cc:500 msgid "Color Profile" msgstr "Perfil de color" -#: f.widgets.cc:500 +#: f.widgets.cc:502 msgid "Anti-Alias" msgstr "Suavitzar contorns" -#: f.widgets.cc:506 +#: f.widgets.cc:508 msgid "Fix Perspective" msgstr "Corregir perspectiva" -#: f.widgets.cc:511 +#: f.widgets.cc:513 msgid "Flatten Book Page" msgstr "Aplanar una pàgina impresa" -#: f.widgets.cc:516 +#: f.widgets.cc:518 msgid "Color Depth" msgstr "Profunditat de color" -#: f.widgets.cc:517 +#: f.widgets.cc:519 msgid "Sketch" msgstr " Esbós" -#: f.widgets.cc:518 +#: f.widgets.cc:520 msgid "Cartoon" msgstr "Tintes planes" -#: f.widgets.cc:522 +#: f.widgets.cc:524 msgid "Embossing" msgstr "Relleu" -#: f.widgets.cc:524 +#: f.widgets.cc:526 msgid "Dots" msgstr "Punts" -#: f.widgets.cc:525 +#: f.widgets.cc:527 msgid "Painting" msgstr "Pintura" -#: f.widgets.cc:527 +#: f.widgets.cc:529 msgid "Texture" msgstr "Textura" -#: f.widgets.cc:529 +#: f.widgets.cc:531 msgid "Mosaic" msgstr "Mosaïc" -#: f.widgets.cc:536 +#: f.widgets.cc:538 msgid "High Dynamic Range" msgstr "HDR alt rang dinàmic" -#: f.widgets.cc:537 +#: f.widgets.cc:539 msgid "High Depth of Field" msgstr "HDF alta profunditat de camp" -#: f.widgets.cc:538 +#: f.widgets.cc:540 msgid "Stack/Paint" msgstr "Apilar/Pintar" -#: f.widgets.cc:539 +#: f.widgets.cc:541 msgid "Stack/Noise" msgstr "Apilar/Soroll" -#: f.widgets.cc:540 +#: f.widgets.cc:542 msgid "Panorama" msgstr "Panorama" -#: f.widgets.cc:541 +#: f.widgets.cc:543 msgid "Vertical Panorama" msgstr "Panorama vertical" -#: f.widgets.cc:542 +#: f.widgets.cc:544 msgid "PT Panorama" msgstr "PT panorama" -#: f.widgets.cc:543 +#: f.widgets.cc:545 msgid "Mashup" msgstr "Muntatge" -#: f.widgets.cc:549 +#: f.widgets.cc:551 msgid "Brightness Graph" -msgstr "" +msgstr "Gráfic de brillantor" -#: f.widgets.cc:554 +#: f.widgets.cc:556 msgid "Dark/Bright Pixels" msgstr "Sobre/subexposició" -#: f.widgets.cc:555 +#: f.widgets.cc:557 msgid "Monitor Color" msgstr "Color del monitor" -#: f.widgets.cc:557 +#: f.widgets.cc:559 msgid "Change Language" msgstr "Canviar idioma" -#: f.widgets.cc:558 +#: f.widgets.cc:560 msgid "Missing Translations" msgstr "Traduccions que falten" -#: f.widgets.cc:560 +#: f.widgets.cc:562 msgid "Resources" msgstr "Recursos" -#: f.widgets.cc:567 -msgid "Batch RAW (DCraw)" -msgstr "Convertir Raw en lot (DCraw)" - -#: f.widgets.cc:568 -msgid "Batch RAW (Raw Therapee)" -msgstr "Convertir Raw en lot (RawTherapee)" - #: f.widgets.cc:569 +msgid "Batch RAW" +msgstr "Convertir Raw en lot" + +#: f.widgets.cc:570 +msgid "Batch Raw Therapee" +msgstr "Convertir Raw en lot (Raw Therapee)" + +#: f.widgets.cc:571 msgid "Script Files" msgstr "Scripts" -#: f.widgets.cc:572 +#: f.widgets.cc:574 msgid "Create File of Image Files" msgstr "Crear llistat de imatges" -#: f.widgets.cc:586 +#: f.widgets.cc:588 msgid "Cycle Desktop Wallpaper" msgstr "Fons d'escritori cíclic" -#: f.widgets.cc:603 f.widgets.cc:627 f.widgets.cc:651 f.widgets.cc:665 +#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 msgid "Gallery" msgstr "Galeria" -#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 +#: f.widgets.cc:606 f.widgets.cc:630 f.widgets.cc:654 f.widgets.cc:668 msgid "World Maps" msgstr "Mapes mundials" -#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 +#: f.widgets.cc:607 f.widgets.cc:631 f.widgets.cc:655 f.widgets.cc:669 msgid "OSM Maps" msgstr "Mapes OSM" -#: f.widgets.cc:607 f.widgets.cc:631 +#: f.widgets.cc:609 f.widgets.cc:633 msgid "Favorites" msgstr "Favorits" -#: f.widgets.cc:609 fotoxx.h:1177 +#: f.widgets.cc:611 fotoxx.h:1178 msgid "Save" msgstr "Desar" -#: f.widgets.cc:610 +#: f.widgets.cc:612 msgid "Prev/Next" msgstr "Ant/Seg" -#: f.widgets.cc:612 +#: f.widgets.cc:614 msgid "Areas" msgstr "Àrees" -#: f.widgets.cc:613 fotoxx.h:1122 +#: f.widgets.cc:615 fotoxx.h:1123 msgid "Edit" msgstr "Editar" -#: f.widgets.cc:614 +#: f.widgets.cc:616 msgid "Repair" msgstr "Reparar" -#: f.widgets.cc:615 +#: f.widgets.cc:617 msgid "Bend" msgstr "Deformar" -#: f.widgets.cc:616 +#: f.widgets.cc:618 msgid "Effects" msgstr "Efectes" -#: f.widgets.cc:617 +#: f.widgets.cc:619 msgid "Combine" msgstr "Combinar" -#: f.widgets.cc:618 +#: f.widgets.cc:620 msgid "Undo/Redo" msgstr "Desfer/Refer" -#: f.widgets.cc:619 +#: f.widgets.cc:621 msgid "Tools" msgstr "Eines" -#: f.widgets.cc:633 +#: f.widgets.cc:635 msgid "Albums" msgstr "Àlbums" -#: f.widgets.cc:634 +#: f.widgets.cc:636 msgid "Bookmarks" msgstr "Marques" -#: f.widgets.cc:643 +#: f.widgets.cc:645 msgid "Batch" msgstr "Lot" -#: f.widgets.cc:655 +#: f.widgets.cc:657 msgid "Choose Map" msgstr "Escollir mapa" -#: f.widgets.cc:656 +#: f.widgets.cc:658 msgid "Search Range" msgstr "Rang de cerca" -#: f.widgets.cc:676 fotoxx.h:1195 +#: f.widgets.cc:678 fotoxx.h:1195 msgid "Undo" msgstr "Desfer" -#: f.widgets.cc:677 fotoxx.h:1168 +#: f.widgets.cc:679 fotoxx.h:1169 msgid "Redo" msgstr "Refer" -#: f.widgets.cc:678 +#: f.widgets.cc:680 msgid "Save File Version" msgstr "G​uardar​ versión d​'arxiu" -#: f.widgets.cc:722 +#: f.widgets.cc:724 msgid "Popup Image" msgstr "Imatge emergent" -#: f.widgets.cc:726 fotoxx.h:1171 +#: f.widgets.cc:728 fotoxx.h:1172 msgid "Rename" msgstr "Canviar el nom" -#: f.widgets.cc:728 +#: f.widgets.cc:730 msgid "Copy to Clipboard" msgstr "Copiar al portapapers" -#: f.widgets.cc:729 +#: f.widgets.cc:731 msgid "Remove from Album" msgstr "Eliminar de l'àlbum" -#: f.widgets.cc:730 +#: f.widgets.cc:732 msgid "Cut to Image Cache" msgstr " Tallar a la cache d'imatge" -#: f.widgets.cc:731 +#: f.widgets.cc:733 msgid "Copy to Image Cache" msgstr "Copiar a la cache d'imatge " -#: f.widgets.cc:732 +#: f.widgets.cc:734 msgid "Paste Image Cache Here (clear)" msgstr "Enganxar aquí cache d'imatge (esborrar) " -#: f.widgets.cc:733 +#: f.widgets.cc:735 msgid "Paste Image Cache Here (keep)" msgstr "Enganxar aquí cache d'imatge (desar) " -#: f.widgets.cc:734 +#: f.widgets.cc:736 msgid "Paste Current Image File Here" msgstr "Enganxar aquí la iamtge actual" -#: f.widgets.cc:744 +#: f.widgets.cc:746 msgid "Select Area" msgstr "Select Area" -#: f.widgets.cc:747 +#: f.widgets.cc:748 msgid "Show on OSM Map" -msgstr "" +msgstr "Mostrar en Open Street Maps" -#: f.widgets.cc:748 +#: f.widgets.cc:749 msgid "Delete/Trash" -msgstr "" +msgstr "Eliminar/paperera" #: f.widgets.cc:963 f.widgets.cc:985 msgid "Image Locations" msgstr "Ubicació d'imatge" -#: fotoxx-16.06.cc:392 +#: fotoxx-16.07.cc:387 msgid "Please install missing programs:" msgstr "Si us plau instal.leu programas requerits:" -#: fotoxx-16.06.cc:683 +#: fotoxx-16.07.cc:675 msgid "Kill active dialog?" msgstr "Tancar diàleg actiu?" -#: fotoxx-16.06.cc:764 +#: fotoxx-16.07.cc:756 msgid "(reduced)" msgstr "(reduït)" -#: fotoxx-16.06.cc:765 +#: fotoxx-16.07.cc:757 msgid "area active" msgstr "àrea activa" -#: fotoxx-16.06.cc:766 +#: fotoxx-16.07.cc:758 msgid "dialog open" msgstr "dialog obert" -#: fotoxx-16.06.cc:767 +#: fotoxx-16.07.cc:759 msgid "blocked" msgstr "bloquejat" -#: fotoxx-16.06.cc:818 +#: fotoxx-16.07.cc:810 msgid "edits" msgstr "edicions" -#: fotoxx-16.06.cc:2921 +#: fotoxx-16.07.cc:2932 msgid "Exceed 50 anchor points" msgstr "Excedits punts d'anclatge" -#: fotoxx-16.06.cc:3141 +#: fotoxx-16.07.cc:3152 msgid "load curve from a file" msgstr "carregar corba des d'un arxiu" -#: fotoxx-16.06.cc:3207 +#: fotoxx-16.07.cc:3218 msgid "curve file is invalid" msgstr "Atxiu de corba no vàlid" -#: fotoxx-16.06.cc:3221 +#: fotoxx-16.07.cc:3232 msgid "save curve to a file" msgstr "desar corba en un arxiu" -#: fotoxx-16.06.cc:3293 +#: fotoxx-16.07.cc:3304 msgid "Too many edits, please save image" msgstr "Massa edicions, si us plau guardeu la imatge" -#: fotoxx-16.06.cc:3298 +#: fotoxx-16.07.cc:3309 msgid "this function cannot be scripted" msgstr "aquesta fiunció no pot ser guionada" -#: fotoxx-16.06.cc:3315 +#: fotoxx-16.07.cc:3326 msgid "" "Select area not active.\n" "Continue?" @@ -5012,27 +4986,27 @@ "Àrea seleccionada no activa.\n" "Continuar?" -#: fotoxx-16.06.cc:3630 +#: fotoxx-16.07.cc:3641 msgid "file data does not fit dialog" msgstr "les dades d'arxiu no s'ajusten al diàleg" -#: fotoxx-16.06.cc:3640 +#: fotoxx-16.07.cc:3651 msgid "Save settings to a file" msgstr "Desar ajustos en un arxiu" -#: fotoxx-16.06.cc:3993 +#: fotoxx-16.07.cc:4004 msgid "This action will discard changes to current image" msgstr "Aquesta acció descxartarà els canvis a la imatge actual" -#: fotoxx-16.06.cc:3994 +#: fotoxx-16.07.cc:4005 msgid "prior function still active" msgstr "funció anterior encara activa" -#: fotoxx-16.06.cc:3995 fotoxx.h:1140 +#: fotoxx-16.07.cc:4006 fotoxx.h:1141 msgid "Keep" msgstr "Desar" -#: fotoxx-16.06.cc:3996 +#: fotoxx-16.07.cc:4007 msgid "Discard" msgstr "Descartar" @@ -5068,7 +5042,7 @@ msgid "Blend Width" msgstr "Barrejar per ample" -#: fotoxx.h:1103 zfuncs.cc:10576 +#: fotoxx.h:1103 zfuncs.cc:10518 msgid "bottom" msgstr "a baix" @@ -5097,206 +5071,198 @@ msgstr "Color" #: fotoxx.h:1111 +msgid "COMPLETED" +msgstr "COMPLETAT" + +#: fotoxx.h:1112 msgid "continue" msgstr "continuar" -#: fotoxx.h:1113 +#: fotoxx.h:1114 msgid "Copy" msgstr "Copiar" -#: fotoxx.h:1114 +#: fotoxx.h:1115 msgid "Create" msgstr "Crear" -#: fotoxx.h:1115 +#: fotoxx.h:1116 msgid "Curve File:" msgstr "Arxiu de corba:" -#: fotoxx.h:1116 +#: fotoxx.h:1117 msgid "Cut" msgstr "Tallar" -#: fotoxx.h:1117 +#: fotoxx.h:1118 msgid "Deband" msgstr "Eliminar bandes" -#: fotoxx.h:1118 +#: fotoxx.h:1119 msgid "Delete" msgstr "Esborrar" -#: fotoxx.h:1120 +#: fotoxx.h:1121 msgid "Done" msgstr "Fet" -#: fotoxx.h:1121 +#: fotoxx.h:1122 msgid "edge" msgstr "vora" -#: fotoxx.h:1124 +#: fotoxx.h:1125 msgid "Erase" msgstr "Esborrar" -#: fotoxx.h:1125 +#: fotoxx.h:1126 msgid "Fetch" msgstr "Extreure" -#: fotoxx.h:1126 +#: fotoxx.h:1127 msgid "output file already exists" msgstr "l'arxiu de sortida ja existeix" -#: fotoxx.h:1127 +#: fotoxx.h:1128 #, c-format msgid "%d files selected" msgstr "%d arxius seleccionats" -#: fotoxx.h:1128 +#: fotoxx.h:1129 msgid "Find" msgstr "Trobar" -#: fotoxx.h:1129 +#: fotoxx.h:1130 msgid "Finish" msgstr "Acabar" -#: fotoxx.h:1130 -msgid "Flatten" -msgstr "Aplanar" - -#: fotoxx.h:1131 +#: fotoxx.h:1132 msgid "Font" msgstr "Tipus de lletra" -#: fotoxx.h:1133 +#: fotoxx.h:1134 msgid "Grid" msgstr "Graella" -#: fotoxx.h:1134 +#: fotoxx.h:1135 msgid "Height" msgstr "Alçada" -#: fotoxx.h:1137 +#: fotoxx.h:1138 msgid "Images" msgstr " imatges" -#: fotoxx.h:1138 +#: fotoxx.h:1139 msgid "Insert" msgstr "Insertar" -#: fotoxx.h:1141 zfuncs.cc:10580 +#: fotoxx.h:1142 zfuncs.cc:10522 msgid "left" msgstr "esquerra" -#: fotoxx.h:1142 +#: fotoxx.h:1143 msgid "limit" msgstr "limit" -#: fotoxx.h:1143 +#: fotoxx.h:1144 msgid "Load" msgstr "Carregar" -#: fotoxx.h:1144 +#: fotoxx.h:1145 msgid "Make" msgstr "Fer" -#: fotoxx.h:1146 +#: fotoxx.h:1147 msgid "Map" msgstr "Mapa" -#: fotoxx.h:1147 -msgid "Match Level" -msgstr "Nivell de coincidència" - -#: fotoxx.h:1148 +#: fotoxx.h:1149 msgid "Max" msgstr "Max" -#: fotoxx.h:1149 +#: fotoxx.h:1150 msgid "Negative" msgstr "Negatiu" -#: fotoxx.h:1150 +#: fotoxx.h:1151 msgid "New" msgstr "Nou" -#: fotoxx.h:1151 +#: fotoxx.h:1152 msgid "Next" msgstr "Següent" -#: fotoxx.h:1152 zfuncs.cc:9658 +#: fotoxx.h:1153 zfuncs.cc:9600 msgid "No" msgstr "No" -#: fotoxx.h:1153 +#: fotoxx.h:1154 msgid "no images" msgstr "sense imatges" -#: fotoxx.h:1155 +#: fotoxx.h:1156 msgid "no selection" msgstr "sense selecció" -#: fotoxx.h:1156 +#: fotoxx.h:1157 msgid "OK" msgstr "OK" -#: fotoxx.h:1158 +#: fotoxx.h:1159 msgid "Paste" msgstr "Enganxar" -#: fotoxx.h:1159 +#: fotoxx.h:1160 msgid "Pause" msgstr "Pausa" -#: fotoxx.h:1160 +#: fotoxx.h:1161 msgid "Percent" msgstr "Percentatge" -#: fotoxx.h:1162 +#: fotoxx.h:1163 msgid "Presets" msgstr "Predefinits" -#: fotoxx.h:1163 +#: fotoxx.h:1164 msgid "Prev" msgstr "Anterior" -#: fotoxx.h:1164 +#: fotoxx.h:1165 msgid "Proceed" msgstr "Procedir" -#: fotoxx.h:1166 +#: fotoxx.h:1167 msgid "range" msgstr "rang" -#: fotoxx.h:1169 +#: fotoxx.h:1170 msgid "Reduce" msgstr "Reduïr" -#: fotoxx.h:1170 +#: fotoxx.h:1171 msgid "Remove" msgstr "Eliminar" -#: fotoxx.h:1172 +#: fotoxx.h:1173 msgid "Replace" msgstr "Substituir" -#: fotoxx.h:1173 +#: fotoxx.h:1174 msgid "Reserved" msgstr "Reservat" -#: fotoxx.h:1174 +#: fotoxx.h:1175 msgid "Reset" msgstr "Restablir" -#: fotoxx.h:1175 zfuncs.cc:10584 +#: fotoxx.h:1176 zfuncs.cc:10526 msgid "right" msgstr "dreta" -#: fotoxx.h:1176 +#: fotoxx.h:1177 msgid "Rotate" msgstr "Rotar" -#: fotoxx.h:1178 -msgid "Unknown file type, save as tiff/jpeg/png to edit" -msgstr "Tipus d'arxiu desconegut, desar com a TIFF/JPEG/PNG per editar" - #: fotoxx.h:1179 msgid "Search" msgstr "Buscar" @@ -5326,7 +5292,7 @@ msgid "exceed %d files" msgstr "excedeix %d arxius" -#: fotoxx.h:1189 zfuncs.cc:10572 +#: fotoxx.h:1189 zfuncs.cc:10514 msgid "top" msgstr "adalt" @@ -5374,11 +5340,11 @@ msgid "y-offset" msgstr "desplaçament Y" -#: fotoxx.h:1204 zfuncs.cc:9658 +#: fotoxx.h:1204 zfuncs.cc:9600 msgid "Yes" msgstr "Si" -#: zfuncs.cc:1687 +#: zfuncs.cc:1693 #, c-format msgid "" "create directory? \n" @@ -5387,79 +5353,129 @@ "Crear directori? \n" " %s" -#: zfuncs.cc:4530 +#: zfuncs.cc:4535 msgid "user guide not found" msgstr "no trobada la guia d'usuari" -#: zfuncs.cc:5345 +#: zfuncs.cc:5287 #, c-format msgid "cannot open file %s" msgstr "no es pot obrir l'arxiu %s" -#: zfuncs.cc:5381 +#: zfuncs.cc:5323 msgid "save screen to file" msgstr "desar la pantalla en un arxiu" -#: zfuncs.cc:9744 zfuncs.cc:10239 zfuncs.cc:10559 +#: zfuncs.cc:9686 zfuncs.cc:10181 zfuncs.cc:10501 msgid "cancel" msgstr "cancel.lar" -#: zfuncs.cc:10200 +#: zfuncs.cc:10142 msgid "choose file" msgstr "escollir arxiu" -#: zfuncs.cc:10205 +#: zfuncs.cc:10147 msgid "choose files" msgstr "escollir arxius" -#: zfuncs.cc:10210 +#: zfuncs.cc:10152 msgid "save" msgstr "desar" -#: zfuncs.cc:10216 +#: zfuncs.cc:10158 msgid "choose folder" msgstr "escollir carpeta" -#: zfuncs.cc:10221 +#: zfuncs.cc:10163 msgid "choose folders" msgstr "escollir carpetes" -#: zfuncs.cc:10226 +#: zfuncs.cc:10168 msgid "create folder" msgstr "crear carpeta" -#: zfuncs.cc:10233 +#: zfuncs.cc:10175 msgid "hidden" msgstr "ocult" -#: zfuncs.cc:10559 +#: zfuncs.cc:10501 msgid "done" msgstr "fet" -#: zfuncs.cc:10559 zfuncs.cc:10568 +#: zfuncs.cc:10501 zfuncs.cc:10510 msgid "margins" msgstr "marges" -#: zfuncs.cc:10589 +#: zfuncs.cc:10531 msgid "image scale" msgstr "escala de l'imatge" -#: zfuncs.cc:10591 +#: zfuncs.cc:10533 msgid "percent" msgstr "percentatge" -#: zfuncs.cc:10598 +#: zfuncs.cc:10540 msgid "image" msgstr "imatge" -#: zfuncs.cc:10602 +#: zfuncs.cc:10544 msgid "width" msgstr "amplada" -#: zfuncs.cc:10606 +#: zfuncs.cc:10548 msgid "height" msgstr "alçada" +#~ msgid "" +#~ "The next preceding gallery does not exist or contains no images. \n" +#~ "(No subdirectories and no further directories are searched)." +#~ msgstr "" +#~ "La pròxima galeria precedent no existeix o no contè imatges. \n" +#~ "(No es buscaràn mès directoris o subdirectoris)" + +#~ msgid "" +#~ "The next following gallery does not exist or contains no images. \n" +#~ "(No subdirectories and no further directories are searched)." +#~ msgstr "" +#~ "La pròxima galeria següent no existeix o no contè imatges. \n" +#~ "(No es buscaràn mès directoris o subdirectoris)" + +#~ msgid "Batch Convert RAW Files (libraw)" +#~ msgstr "Convertir en lot arxius RAW (libraw)" + +#~ msgid "libraw not installed" +#~ msgstr "libraw no instal.lat" + +#~ msgid "white balance" +#~ msgstr "balanç de blancs" + +#~ msgid "interpolation" +#~ msgstr "interpolació" + +#~ msgid "color space" +#~ msgstr "espai de color" + +#~ msgid "gamma curve" +#~ msgstr "corba gamma" + +#~ msgid "camera" +#~ msgstr "càmera" + +#~ msgid "fixed" +#~ msgstr "corretgit" + +#~ msgid "calculated" +#~ msgstr "calculat" + +#~ msgid "default" +#~ msgstr "per defecte" + +#~ msgid "defaults" +#~ msgstr "per defecte" + +#~ msgid "RAW command" +#~ msgstr "Comandament RAW" + #~ msgid "select area within mouse" #~ msgstr "Seleccionar àrea amb el ratolí" @@ -5472,15 +5488,6 @@ #~ msgid "firewall" #~ msgstr "talla-focs" -#~ msgid "" -#~ "Click one time inside each enclosed area \n" -#~ "(possible gaps in the outline will be found). \n" -#~ "Press F1 for help." -#~ msgstr "" -#~ "Feu clic una vegada a l'interior de cada àrea delimitada\n" -#~ "(Es poden trobar possibles forats en el contorn)\n" -#~ "Premeu F1 per obtenir ajuda." - #~ msgid "linear" #~ msgstr "lineal" @@ -5679,3 +5686,36 @@ #~ msgid "Edit Geotags" #~ msgstr "Editar geoetiquetes" + +#~ msgid "Unknown file type, save as tiff/jpeg/png to edit" +#~ msgstr "Tipus d'arxiu desconegut, desar com a TIFF/JPEG/PNG per editar" + +#~ msgid "Open RAW (ufraw)" +#~ msgstr "Obrir RAW (ufraw)" + +#~ msgid "Flatten 2" +#~ msgstr "Aplanar 2" + +#~ msgid "Flatten 1" +#~ msgstr "Aplanar 1" + +#~ msgid "error: %s" +#~ msgstr "error: %s" + +#~ msgid "Cannot create desktop trash folder: %s" +#~ msgstr "No es pot crear carpeta de paperera de l'escriptori: %s" + +#~ msgid "Open RAW file (ufraw)" +#~ msgstr "Obrir fitxer RAW (ufraw)" + +#~ msgid "UFraw not installed" +#~ msgstr "UFRaw no instal.lat" + +#~ msgid "success" +#~ msgstr "èxit" + +#~ msgid "searching" +#~ msgstr "buscant" + +#~ msgid "extend to corner:" +#~ msgstr "extendre fins a la cantonada" diff -Nru fotoxx-16.06/locales/translate-de.po fotoxx-16.07/locales/translate-de.po --- fotoxx-16.06/locales/translate-de.po 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/locales/translate-de.po 2016-07-01 10:19:38.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: fotoxx 6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-31 15:14+0200\n" +"POT-Creation-Date: 2016-06-29 15:55+0200\n" "PO-Revision-Date: 2009-03-06 09:57+0100\n" "Language-Team: German\n" "Language: de\n" @@ -16,7 +16,7 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: f.albums.cc:87 +#: f.albums.cc:93 msgid "" "Right-click album thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -24,252 +24,252 @@ "Album-Thumbnail rechts klicken, um zu Cache \n" "ausschneiden/kopieren, von Cache einfügen, entfernen." -#: f.albums.cc:89 +#: f.albums.cc:95 msgid "Drag album thumbnail to new position." msgstr "Album-Thumbnail zu neuer Stelle ziehen." -#: f.albums.cc:118 f.widgets.cc:583 +#: f.albums.cc:124 f.widgets.cc:585 msgid "Manage Albums" msgstr "Alben verwalten" -#: f.albums.cc:129 f.albums.cc:266 +#: f.albums.cc:136 f.albums.cc:273 msgid "Create or replace an album" msgstr "Album erstellen oder ersetzen" -#: f.albums.cc:131 +#: f.albums.cc:138 msgid "Album to view or edit" msgstr "Album zum Ansehen oder Bearbeiten" -#: f.albums.cc:133 +#: f.albums.cc:140 msgid "Select images, add to cache" msgstr "Bilder wählen, zu Cache addieren" -#: f.albums.cc:135 +#: f.albums.cc:142 msgid "Clear image cache" msgstr "Bildercache löschen" -#: f.albums.cc:137 f.albums.cc:159 +#: f.albums.cc:144 f.albums.cc:164 msgid "Delete an album" msgstr "Album löschen" -#: f.albums.cc:158 +#: f.albums.cc:163 msgid "Choose Album" msgstr "Album wählen" -#: f.albums.cc:160 +#: f.albums.cc:165 #, c-format msgid "Image cache has %d images" msgstr "Bildercache hat %d Bilder" -#: f.albums.cc:161 +#: f.albums.cc:166 msgid "cache added to empty album" msgstr "Cache wurde zu leerem Album zugefügt" -#: f.albums.cc:215 +#: f.albums.cc:220 #, c-format msgid "delete %s ?" msgstr "%s löschen?" -#: f.albums.cc:250 +#: f.albums.cc:257 #, c-format msgid "fill from image cache (%d images)" msgstr "Vom Bild-Cache auffüllen (%d Bilder)" -#: f.albums.cc:268 f.albums.cc:305 +#: f.albums.cc:275 f.albums.cc:312 msgid "Album Name" msgstr "Album-Name" -#: f.albums.cc:274 +#: f.albums.cc:281 msgid "make an initially empty album" msgstr "Ein anfänglich leeres Album erstellen" -#: f.albums.cc:276 +#: f.albums.cc:283 msgid "fill from current gallery" msgstr "Von der aktuellen Galerie auffüllen" -#: f.albums.cc:319 +#: f.albums.cc:326 msgid "enter an album name" msgstr "Album-Name eingeben" -#: f.albums.cc:346 +#: f.albums.cc:353 msgid "gallery is empty" msgstr "Galerie ist leer" -#: f.albums.cc:373 +#: f.albums.cc:380 msgid "new album created" msgstr "Neues Album wurde erstellt" -#: f.albums.cc:1157 +#: f.albums.cc:1211 msgid "instant" msgstr "Sofortig" -#: f.albums.cc:1158 +#: f.albums.cc:1212 msgid "fade-in" msgstr "Einblenden" -#: f.albums.cc:1159 +#: f.albums.cc:1213 msgid "roll-right" msgstr "Nach rechts rollend" -#: f.albums.cc:1160 +#: f.albums.cc:1214 msgid "roll-down" msgstr "Nach unten rollend" -#: f.albums.cc:1161 +#: f.albums.cc:1215 msgid "venetian" msgstr "Jalousie" -#: f.albums.cc:1162 +#: f.albums.cc:1216 msgid "grate" msgstr "Gitter" -#: f.albums.cc:1163 +#: f.albums.cc:1217 msgid "rectangle" msgstr "Rechteck" -#: f.albums.cc:1164 +#: f.albums.cc:1218 msgid "implode" msgstr "Implodieren" -#: f.albums.cc:1165 +#: f.albums.cc:1219 msgid "explode" msgstr "Explodieren" -#: f.albums.cc:1166 +#: f.albums.cc:1220 msgid "radar" msgstr "Radar" -#: f.albums.cc:1167 +#: f.albums.cc:1221 msgid "spiral" msgstr "Spirale" -#: f.albums.cc:1168 +#: f.albums.cc:1222 msgid "Japanese-fan" msgstr "Japanischer-Fächer" -#: f.albums.cc:1169 +#: f.albums.cc:1223 msgid "jaws" msgstr "Haifisch" -#: f.albums.cc:1170 +#: f.albums.cc:1224 msgid "ellipse" msgstr "Ellipse" -#: f.albums.cc:1171 +#: f.albums.cc:1225 msgid "raindrops" msgstr "Regentropfen" -#: f.albums.cc:1172 +#: f.albums.cc:1226 msgid "doubledoor" msgstr "Doppeltür" -#: f.albums.cc:1173 +#: f.albums.cc:1227 msgid "rotate" msgstr "drehen" -#: f.albums.cc:1174 +#: f.albums.cc:1228 msgid "fallover" msgstr "Umkippen" -#: f.albums.cc:1175 +#: f.albums.cc:1229 msgid "spheroid" msgstr "Sphäroid" -#: f.albums.cc:1176 +#: f.albums.cc:1230 msgid "turn-page" msgstr "umblättern" -#: f.albums.cc:1177 +#: f.albums.cc:1231 msgid "french-door" msgstr "Französische Tur" -#: f.albums.cc:1197 f.widgets.cc:584 +#: f.albums.cc:1251 f.widgets.cc:586 msgid "Slide Show" msgstr "Dia-Show" -#: f.albums.cc:1208 +#: f.albums.cc:1262 msgid "Clip Limit" msgstr "Kappenlimit" -#: f.albums.cc:1212 +#: f.albums.cc:1266 msgid "Music File" msgstr "Musikdatei" -#: f.albums.cc:1217 +#: f.albums.cc:1271 msgid "Full Screen" msgstr "Fenster maximieren" -#: f.albums.cc:1218 +#: f.albums.cc:1272 msgid "Auto-replay" msgstr "Auto-Wiederholung" -#: f.albums.cc:1219 +#: f.albums.cc:1273 msgid "KB functions" msgstr "Tastenfunktionen" -#: f.albums.cc:1222 +#: f.albums.cc:1276 msgid "Customize:" msgstr "Anpassen:" -#: f.albums.cc:1223 +#: f.albums.cc:1277 msgid "transitions" msgstr "Übergänge" -#: f.albums.cc:1224 +#: f.albums.cc:1278 msgid "image files" msgstr "Bilddateien" -#: f.albums.cc:1229 f.albums.cc:1356 +#: f.albums.cc:1283 f.albums.cc:1410 #, c-format msgid "%d images" msgstr "%d Bilder" -#: f.albums.cc:1251 f.albums.cc:1326 f.albums.cc:1422 f.albums.cc:1661 -#: f.albums.cc:1946 f.albums.cc:1963 f.albums.cc:2177 +#: f.albums.cc:1305 f.albums.cc:1380 f.albums.cc:1476 f.albums.cc:1715 +#: f.albums.cc:2000 f.albums.cc:2017 f.albums.cc:2231 msgid "invalid album" msgstr "Ungültiges Album" -#: f.albums.cc:1340 +#: f.albums.cc:1394 msgid "open album" msgstr "Album öffnen" -#: f.albums.cc:1372 +#: f.albums.cc:1426 msgid "Select music file" msgstr "Musikdatei auswählen" -#: f.albums.cc:1401 +#: f.albums.cc:1455 msgid "select random (if 2+ enabled)" msgstr "Zufallsordnung (wenn 2+ freigegeben" -#: f.albums.cc:1426 +#: f.albums.cc:1480 msgid "Transition Preferences" msgstr "Übergangs Präferenzen" -#: f.albums.cc:1429 f.edit.cc:2008 +#: f.albums.cc:1483 f.edit.cc:2008 msgid "Settings File" msgstr "Einstellungsdatei" -#: f.albums.cc:1439 +#: f.albums.cc:1493 msgid "transition" msgstr "Übergang" -#: f.albums.cc:1440 +#: f.albums.cc:1494 msgid "enabled" msgstr "Freigegeben" -#: f.albums.cc:1441 +#: f.albums.cc:1495 msgid "slowdown" msgstr "Bremsung" -#: f.albums.cc:1442 +#: f.albums.cc:1496 msgid "preference" msgstr "Präferenz" -#: f.albums.cc:1517 f.albums.cc:1556 +#: f.albums.cc:1571 f.albums.cc:1610 msgid "invalid file" msgstr "ungültige Datei" -#: f.albums.cc:1610 f.albums.cc:2162 +#: f.albums.cc:1664 f.albums.cc:2216 #, c-format msgid "" "file format error: \n" @@ -278,84 +278,84 @@ "Dateiformat Fehler: \n" " %s" -#: f.albums.cc:1667 +#: f.albums.cc:1721 msgid "Image Preferences" msgstr "Bild Präferenzen" -#: f.albums.cc:1671 f.edit.cc:1338 f.file.cc:1166 f.file.cc:1427 f.meta.cc:617 -#: f.meta.cc:1414 +#: f.albums.cc:1725 f.edit.cc:1338 f.file.cc:1091 f.file.cc:1352 f.meta.cc:617 +#: f.meta.cc:1412 msgid "Image File:" msgstr "Bilddatei:" -#: f.albums.cc:1675 +#: f.albums.cc:1729 msgid "Play tone when image shows" msgstr "Klang spielen wenn Bild erscheint" -#: f.albums.cc:1678 +#: f.albums.cc:1732 msgid "Show image caption" msgstr "Bild-Titel zeigen" -#: f.albums.cc:1683 +#: f.albums.cc:1737 msgid "Show image comments" msgstr "Bild-Kommentare zeigen" -#: f.albums.cc:1688 +#: f.albums.cc:1742 msgid "Wait before zoom" msgstr "Warten vor Zoom" -#: f.albums.cc:1693 +#: f.albums.cc:1747 msgid "Zoom type:" msgstr "Zoom Art" -#: f.albums.cc:1694 +#: f.albums.cc:1748 msgid "none" msgstr "keine" -#: f.albums.cc:1695 +#: f.albums.cc:1749 msgid "zoom-in" msgstr "zoom-hinein" -#: f.albums.cc:1696 +#: f.albums.cc:1750 msgid "zoom-out" msgstr "zoom-heraus" -#: f.albums.cc:1699 +#: f.albums.cc:1753 msgid "Zoom size (x)" msgstr "Zoomgröße" -#: f.albums.cc:1702 +#: f.albums.cc:1756 msgid "Steps" msgstr "Schritte" -#: f.albums.cc:1706 +#: f.albums.cc:1760 msgid "Zoom Center" msgstr "Zoom-Mitte" -#: f.albums.cc:1710 +#: f.albums.cc:1764 msgid "Wait after zoom" msgstr "Warten nach Zoom" -#: f.albums.cc:1715 +#: f.albums.cc:1769 msgid "Transition to next image" msgstr "Übergang zum nächsten Bild" -#: f.albums.cc:1718 f.albums.cc:1821 +#: f.albums.cc:1772 f.albums.cc:1875 msgid "next" msgstr "nächst" -#: f.albums.cc:1811 +#: f.albums.cc:1865 msgid "click on thumbnail to set zoom center" msgstr "Thumbnail anklicken um Zoom-Mitte zu setzen" -#: f.area.cc:81 +#: f.area.cc:82 msgid "Select Area for Edits" msgstr "Ausschnitt für Bearbeitung auswählen" -#: f.area.cc:82 f.edit.cc:5919 +#: f.area.cc:83 f.edit.cc:5919 msgid "Press F1 for help" msgstr "F1 für Hilfe drucken" -#: f.area.cc:91 +#: f.area.cc:92 msgid "" "Select Area not supported \n" "by this edit function" @@ -363,35 +363,35 @@ "Ausschnitt nicht unterstützt \n" "von dieser Bearbeitungsfunktion" -#: f.area.cc:121 +#: f.area.cc:122 msgid "select rectangle" msgstr "Rechteck wählen" -#: f.area.cc:122 +#: f.area.cc:123 msgid "select ellipse" msgstr "Ellipse wählen" -#: f.area.cc:125 +#: f.area.cc:126 msgid "freehand draw" msgstr "Freihändig zeichnen" -#: f.area.cc:126 +#: f.area.cc:127 msgid "follow edge" msgstr "Rand folgen" -#: f.area.cc:127 +#: f.area.cc:128 msgid "draw/replace" msgstr "Zeichnen/ersetzen" -#: f.area.cc:130 +#: f.area.cc:131 msgid "select area within mouse circle" msgstr "Ausschnitt innerhalb Mauskreis selektieren" -#: f.area.cc:133 +#: f.area.cc:134 msgid "select one matching color within mouse circle:" msgstr "Eine übereinstimmende Farbe im Mauskreis selektieren" -#: f.area.cc:135 +#: f.area.cc:136 msgid "" "first select the checkbox, then \n" "shift+click on image to set the color" @@ -399,116 +399,156 @@ "Erst Ankreuzfeld selektieren, dann \n" "Bild shift+anklicken zum Farbe feststellen" -#: f.area.cc:139 +#: f.area.cc:140 msgid "select all matching colors within mouse circle" msgstr "Alle übereinstimmenden Farben im Mauskreis selektieren" -#: f.area.cc:143 f.edit.cc:5961 +#: f.area.cc:144 f.edit.cc:5961 msgid "mouse radius" msgstr "Mausradius" -#: f.area.cc:146 +#: f.area.cc:147 msgid "match level %" msgstr "Farbübereinstimmung %" -#: f.area.cc:151 +#: f.area.cc:152 msgid "search range" msgstr "Suchentfernung" -#: f.area.cc:155 +#: f.area.cc:156 msgid "Area Edge Blend Width" msgstr "Ausschnitt Rand Mischbreite" -#: f.area.cc:158 +#: f.area.cc:159 msgid "Edge Creep" msgstr "Rand-Kriech" -#: f.area.cc:163 +#: f.area.cc:164 msgid "Line Color:" msgstr "Linienfarbe:" -#: f.area.cc:183 f.area.cc:184 +#: f.area.cc:184 f.area.cc:185 msgid "area edits fade away within edge distance" msgstr "Ausschnitt-Änderungen klingen innerhalb Randweite ab" -#: f.area.cc:356 f.area.cc:539 +#: f.area.cc:357 f.area.cc:540 #, c-format msgid "exceed %d edits" msgstr "%d Edits überschritten" -#: f.area.cc:1361 +#: f.area.cc:1358 f.area.cc:1668 msgid "" -"Click one time inside each enclosed area \n" -"(possible gaps in the outline will be found). \n" -"Press [Done] when finished. Press F1 for help." +"Click one time inside each enclosed area. \n" +"Possible gaps in the outline will be found. \n" +"Press F1 for help." msgstr "" -"Jeden umschlossenen Ausschnitt einmal innen anklicken \n" -"(mögliche Lücken im Rand werden gefunden). \n" -"Zum Schluss [Fertig] drucken. Für Hilfe F1 drücken." +"Jeden umschlossenen Ausschnitt einmal innen anklicken. \n" +"Mögliche Lücken im Rand werden gefunden. \n" +"Für Hilfe F1 drücken." -#: f.area.cc:1389 +#: f.area.cc:1385 msgid "finish area" msgstr "Ausschnitt fertigstellen" -#: f.area.cc:1397 -msgid "extend to corner:" -msgstr "bis zur Ecke ausfahren:" - -#: f.area.cc:1438 -msgid "searching" -msgstr "wird gesucht" +#: f.area.cc:1411 f.area.cc:1563 +#, c-format +msgid "found %d pixels" +msgstr "%d Pixels gefunden" + +#: f.area.cc:1693 +msgid "find outline gap" +msgstr "Lücke in Umrandung finden" + +#: f.area.cc:1775 +msgid "cannot find area outline" +msgstr "kann Ausschnitt-Rand nicht finden" -#: f.area.cc:1469 +#: f.area.cc:1846 msgid "outline has a gap" msgstr "Umriss hat eine Lücke" -#: f.area.cc:1473 -msgid "success" -msgstr "Erfolg" - -#: f.area.cc:1618 f.area.cc:1645 -#, c-format -msgid "found %d pixels" -msgstr "%d Pixels gefunden" +#: f.area.cc:1881 +msgid "Select Hairy Edge" +msgstr "Flockigen Rand selektieren" + +#: f.area.cc:1882 +msgid "" +"Click on colors to match. \n" +"Drag along edge to select. \n" +"Adjust match level as needed. \n" +"Copy or Save area when done." +msgstr "" +"Farben zum Angleichen anklicken. \n" +"Rand entlang schleppen zum Selektieren. \n" +"Übereinstimmungsgrad anpassen wie nötig. \n" +"Ausschnitt kopieren oder speichern wenn fertig." + +#: f.area.cc:1893 +msgid "select the area first" +msgstr "erst den Ausschnitt selektieren" -#: f.area.cc:1940 f.area.cc:1957 f.area.cc:1977 f.area.cc:2301 f.area.cc:2378 -#: f.area.cc:2484 +#: f.area.cc:1898 f.area.cc:2365 f.area.cc:2382 f.area.cc:2402 f.area.cc:2726 +#: f.area.cc:2815 msgid "the area is not finished" msgstr "Der Ausschnitt ist nicht fertig" -#: f.area.cc:2066 +#: f.area.cc:1944 +msgid "Mouse Radius" +msgstr "Mausradius" + +#: f.area.cc:1949 fotoxx.h:1148 +msgid "Match Level" +msgstr "Übereinstimmung" + +#: f.area.cc:1950 +msgid "select" +msgstr "selektieren" + +#: f.area.cc:1951 +msgid "deselect" +msgstr "deselektieren" + +#: f.area.cc:2491 msgid "Edge calculation in progress" msgstr "Rand Berechnung in Arbeit" -#: f.area.cc:2075 +#: f.area.cc:2500 msgid "Area Edge Calc" msgstr "Ausschnitt Randberechnung" -#: f.area.cc:2519 +#: f.area.cc:2801 f.area.cc:2850 f.widgets.cc:461 +msgid "Copy Area" +msgstr "Ausschnitt kopieren" + +#: f.area.cc:2804 f.widgets.cc:464 +msgid "Save Area File" +msgstr "Ausschnitt in Datei speichern" + +#: f.area.cc:2856 msgid "save area as a PNG file" msgstr "Ausschnitt als PNG Datei speichern" -#: f.area.cc:2551 +#: f.area.cc:2888 msgid "load area from a file" msgstr "Ausschnitt von Datei lesen" -#: f.area.cc:2594 +#: f.area.cc:2980 msgid "position with mouse click/drag" msgstr "Mit Maus klicken/ziehen positionieren" -#: f.area.cc:2634 +#: f.area.cc:3026 msgid "Paste Image" msgstr "Bild einfügen" -#: f.area.cc:2639 f.batch.cc:1360 f.batch.cc:1847 +#: f.area.cc:3031 f.batch.cc:1347 f.batch.cc:1654 msgid "resize" msgstr "Skalieren" -#: f.batch.cc:126 f.widgets.cc:564 +#: f.batch.cc:126 f.widgets.cc:566 msgid "Batch Convert" msgstr "Bilder Stapel konvertieren" -#: f.batch.cc:133 f.file.cc:940 +#: f.batch.cc:133 f.file.cc:866 msgid "New Name" msgstr "Neuer Name" @@ -532,7 +572,7 @@ msgid "New File Type" msgstr "Neue Dateityp" -#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4389 +#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4083 msgid "no change" msgstr "Keine Änderung" @@ -548,13 +588,13 @@ msgid "Copy Metadata" msgstr "Metadaten kopieren" -#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:466 -#: f.widgets.cc:737 +#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:468 +#: f.widgets.cc:739 msgid "Upright" msgstr "Aufrichten" -#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1369 f.batch.cc:1856 -#: f.repair.cc:125 f.widgets.cc:482 +#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1356 f.batch.cc:1663 +#: f.repair.cc:125 f.widgets.cc:484 msgid "Sharpen" msgstr "Schärfen" @@ -586,7 +626,7 @@ msgid "updating albums ..." msgstr "Alben werden aktualisiert ..." -#: f.batch.cc:591 f.batch.cc:1642 f.batch.cc:2044 f.file.cc:1217 +#: f.batch.cc:591 f.batch.cc:1522 f.batch.cc:1851 f.file.cc:1142 msgid "Select directory" msgstr "Bildverzeichnis wählen" @@ -646,7 +686,7 @@ msgid "PROCEED?" msgstr "FORTSETZEN?" -#: f.batch.cc:907 f.widgets.cc:565 +#: f.batch.cc:907 f.widgets.cc:567 msgid "Batch Upright" msgstr "Stapel aufrichten" @@ -662,7 +702,7 @@ msgid "cannot select both options" msgstr "kann nicht beide Optionen auswählen" -#: f.batch.cc:1130 f.widgets.cc:566 +#: f.batch.cc:1130 f.widgets.cc:568 msgid "Batch Delete/Trash" msgstr "Stapel Löschen/Papierkorb" @@ -674,140 +714,100 @@ msgid "trash" msgstr "Papierkorb" -#: f.batch.cc:1302 -msgid "Batch Convert RAW Files (DCraw)" -msgstr "Stapel RAW konvertieren (DCraw)" - -#: f.batch.cc:1312 -msgid "DCraw not installed" -msgstr "DCraw nicht installiert" +#: f.batch.cc:1301 +msgid "Batch Convert RAW Files" +msgstr "Stapel RAW-Dateien konvertieren" -#: f.batch.cc:1347 f.batch.cc:1834 +#: f.batch.cc:1334 f.batch.cc:1641 msgid "output location" msgstr "Ausgabe Speicherstelle" -#: f.batch.cc:1352 f.batch.cc:1839 +#: f.batch.cc:1339 f.batch.cc:1646 msgid "output file type" msgstr "Ausgabedateityp" -#: f.batch.cc:1371 f.batch.cc:1858 +#: f.batch.cc:1358 f.batch.cc:1665 msgid "amount" msgstr "Wert" -#: f.batch.cc:1374 f.batch.cc:1861 +#: f.batch.cc:1361 f.batch.cc:1668 msgid "threshold" msgstr "Schwelle" -#: f.batch.cc:1383 -msgid "white balance" -msgstr "Weiabgleich" - -#: f.batch.cc:1384 -msgid "interpolation" -msgstr "Interpolation" - -#: f.batch.cc:1385 -msgid "color space" -msgstr "Farbraum" - -#: f.batch.cc:1386 -msgid "gamma curve" -msgstr "Gamma-Kurve" - -#: f.batch.cc:1389 -msgid "camera" -msgstr "Kamera" - -#: f.batch.cc:1390 -msgid "fixed" -msgstr "Festgelegt" - -#: f.batch.cc:1391 -msgid "calculated" -msgstr "Berechnet" - -#: f.batch.cc:1408 -msgid "default" -msgstr "Vorgabe" - -#: f.batch.cc:1414 -msgid "defaults" -msgstr "Vorgaben" - -#: f.batch.cc:1796 +#: f.batch.cc:1603 msgid "Batch Convert RAW Files (Raw Therapee)" msgstr "Stapel RAW konvertieren (Raw Therapee)" -#: f.batch.cc:1806 f.file.cc:426 +#: f.batch.cc:1613 f.file.cc:352 msgid "Raw Therapee not installed" msgstr "Raw Therapee nicht installiert" -#: f.batch.cc:2141 +#: f.batch.cc:1948 msgid "start" msgstr "beginnen" -#: f.batch.cc:2142 +#: f.batch.cc:1949 msgid "begin making a script file" msgstr "Skriptdatei neu beginnen" -#: f.batch.cc:2144 +#: f.batch.cc:1951 msgid "close" msgstr "beenden" -#: f.batch.cc:2145 +#: f.batch.cc:1952 msgid "finish making a script file" msgstr "Skriptdatei fertigstellen" -#: f.batch.cc:2147 +#: f.batch.cc:1954 msgid "run" msgstr "laufen lassen" -#: f.batch.cc:2148 +#: f.batch.cc:1955 msgid "execute a script file" msgstr "Skriptdatei laufen lassen" -#: f.batch.cc:2202 +#: f.batch.cc:2009 msgid "script already started" msgstr "Skriptdatei schon angefangen" -#: f.batch.cc:2206 +#: f.batch.cc:2013 msgid "open new script file" msgstr "Neue Skriptdatei öffnen" -#: f.batch.cc:2238 +#: f.batch.cc:2045 msgid "script file error" msgstr "Skriptdatei Fehler" -#: f.batch.cc:2243 +#: f.batch.cc:2050 #, c-format msgid "%s added to script" msgstr "%s zu Skript addiert" -#: f.batch.cc:2256 +#: f.batch.cc:2063 msgid "no script file was started" msgstr "keine Skriptdatei ist im Aufbau" -#: f.batch.cc:2264 +#: f.batch.cc:2071 msgid "script file closed" msgstr "Skriptdatei fertiggestellt" -#: f.batch.cc:2283 +#: f.batch.cc:2090 msgid "script file is not closed" msgstr "Skriptdatei wurde nicht fertiggestellt" -#: f.batch.cc:2287 +#: f.batch.cc:2094 msgid "select script file to run" msgstr "Skriptdatei zum starten wählen" -#: f.batch.cc:2289 +#: f.batch.cc:2096 msgid "open script file" msgstr "Skriptdatei öffnen" -#: f.batch.cc:2296 +#: f.batch.cc:2103 msgid "unknown script file" msgstr "unbekannte Skriptdatei" -#: f.batch.cc:2303 +#: f.batch.cc:2110 #, c-format msgid "" "script file: %s \n" @@ -816,11 +816,11 @@ "Skriptdatei: %s \n" " %s" -#: f.batch.cc:2314 +#: f.batch.cc:2121 msgid "select image files to be processed" msgstr "Bilddatei zum bearbeiten auswählen" -#: f.batch.cc:2326 f.batch.cc:2375 +#: f.batch.cc:2133 f.batch.cc:2182 #, c-format msgid "" "open failure: %s \n" @@ -829,91 +829,87 @@ "Öffnen Fehler: %s \n" " %s" -#: f.batch.cc:2347 +#: f.batch.cc:2154 #, c-format msgid "unknown edit function: %s" msgstr "unbekannte Bearbeitungsfunktion: %s" -#: f.batch.cc:2356 +#: f.batch.cc:2163 #, c-format msgid "load widgets failed: %s" msgstr "Widgets laden fehlgeschlagen: %s" -#: f.batch.cc:2385 +#: f.batch.cc:2192 #, c-format msgid "script file format error: %s" msgstr "Skriptdatei Formatfehler: %s" -#: f.batch.cc:2430 +#: f.batch.cc:2237 msgid "growisofs not installed" msgstr "growisofs nicht installiert" -#: f.batch.cc:2482 +#: f.batch.cc:2289 msgid "no DVD/BlueRay device found" msgstr "kein DVD/BlueRay Gerät gefunden" -#: f.batch.cc:2505 f.widgets.cc:570 +#: f.batch.cc:2312 f.widgets.cc:572 msgid "Burn Images to DVD/BlueRay" msgstr "Bilder auf DVD/BlueRay brennen" -#: f.batch.cc:2510 +#: f.batch.cc:2317 msgid "Select device" msgstr "Gerät wählen" -#: f.batch.cc:2635 f.widgets.cc:571 +#: f.batch.cc:2442 f.widgets.cc:573 msgid "Find Duplicate Images" msgstr "Duplikat-Bilder suchen" -#: f.batch.cc:2637 f.tools.cc:1012 +#: f.batch.cc:2444 f.tools.cc:1017 msgid "Thumbnail size" msgstr "Thumbnailgröße" -#: f.batch.cc:2640 +#: f.batch.cc:2447 msgid "pixel difference" msgstr "Pixel-Differenz" -#: f.batch.cc:2643 +#: f.batch.cc:2450 msgid "pixel count" msgstr "Pixel-Anzahl" -#: f.batch.cc:2646 +#: f.batch.cc:2453 msgid "Images:" msgstr "Bilder:" -#: f.batch.cc:2647 +#: f.batch.cc:2454 msgid "searching ..." msgstr "Suchen ..." -#: f.batch.cc:2649 +#: f.batch.cc:2456 msgid "Duplicates:" msgstr "Duplikate:" -#: f.batch.cc:2667 +#: f.batch.cc:2474 #, c-format msgid "only %d image thumbnails found" msgstr "Nur %d Bilder-Thumbnails gefunden" -#: f.batch.cc:2875 f.widgets.cc:377 +#: f.batch.cc:2682 f.widgets.cc:378 msgid "Create a file of selected image files" msgstr "Datei von gewählten Bilddateien erstellen" -#: f.batch.cc:2899 f.batch.cc:2969 +#: f.batch.cc:2706 f.batch.cc:2776 msgid "Output File" msgstr "Ausgabe-Datei" -#: f.batch.cc:2918 +#: f.batch.cc:2725 msgid "no input files selected" msgstr "keine Eingabe-Dateien gewählt" -#: f.batch.cc:2923 +#: f.batch.cc:2730 msgid "no output file selected" msgstr "keine Ausgabe-Datei gewählt" -#: f.batch.cc:2937 f.tools.cc:643 -msgid "COMPLETED" -msgstr "FERTIG" - -#: f.bend.cc:92 f.widgets.cc:505 +#: f.bend.cc:92 f.widgets.cc:507 msgid "Unbend" msgstr "Entkrümmen" @@ -945,7 +941,7 @@ " Mehrmals ziehen/strecken bis zum erwünschten Ergebniss. \n" " Wenn fertig, anderen Ausschnitt wählen oder [Fertig] drücken." -#: f.bend.cc:756 f.widgets.cc:507 +#: f.bend.cc:756 f.widgets.cc:509 msgid "Warp area" msgstr "Ausschnitt Krümmen" @@ -967,7 +963,7 @@ " Mehrmals ziehen bis zufriedenstellend. \n" " Wenn fertig, [Fertig] drücken." -#: f.bend.cc:1178 f.widgets.cc:508 +#: f.bend.cc:1178 f.widgets.cc:510 msgid "Warp curved" msgstr "Gebogen krümmen" @@ -975,7 +971,7 @@ msgid "warp span" msgstr "Krümmen-Spannweite" -#: f.bend.cc:1492 f.widgets.cc:509 +#: f.bend.cc:1492 f.widgets.cc:511 msgid "Warp linear" msgstr "Linear krümmen" @@ -989,7 +985,7 @@ " Mehrmals ziehen bis zufriedengestellt. \n" " Wenn fertig, [Fertig] drücken." -#: f.bend.cc:1823 f.widgets.cc:510 +#: f.bend.cc:1823 f.widgets.cc:512 msgid "Warp affine" msgstr "Affine krümmen" @@ -1019,7 +1015,7 @@ msgid "bottom:" msgstr "Unten:" -#: f.bend.cc:2614 f.widgets.cc:512 +#: f.bend.cc:2614 f.widgets.cc:514 msgid "Spherical Projection" msgstr "Sphärische Projektion" @@ -1037,7 +1033,7 @@ " Bild von der Ecke oben links ziehen. \n" " Wenn fertig, [fertig] drucken." -#: f.bend.cc:2850 f.widgets.cc:513 +#: f.bend.cc:2850 f.widgets.cc:515 msgid "Selective Rescale" msgstr "Selektiv Skalieren" @@ -1074,7 +1070,7 @@ msgstr "Bild malen und krümmen" #: f.combine.cc:2998 f.combine.cc:3643 f.combine.cc:6252 f.effects.cc:4413 -#: f.widgets.cc:602 f.widgets.cc:626 f.widgets.cc:650 f.widgets.cc:664 +#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 msgid "Image" msgstr "Bild" @@ -1150,7 +1146,7 @@ msgid "manual align" msgstr "manuell einstellen" -#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:473 f.widgets.cc:736 +#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:475 f.widgets.cc:738 msgid "Resize" msgstr "Größe verändern" @@ -1219,7 +1215,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Geringe Drehung: rechten Rand mit der Maus ziehen" -#: f.edit.cc:162 f.widgets.cc:465 f.widgets.cc:735 +#: f.edit.cc:162 f.widgets.cc:467 f.widgets.cc:737 msgid "Trim/Rotate" msgstr "Schneiden/Drehen" @@ -1287,7 +1283,7 @@ msgid "rotation unknown" msgstr "Drehrichtung unbekannt" -#: f.edit.cc:1957 f.widgets.cc:469 f.widgets.cc:740 +#: f.edit.cc:1957 f.widgets.cc:471 f.widgets.cc:742 msgid "Retouch Combo" msgstr "Retusche Combo" @@ -1299,7 +1295,7 @@ msgid "Brightness" msgstr "Helligkeit" -#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1112 +#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1113 msgid "Contrast" msgstr "Kontrast" @@ -1331,7 +1327,7 @@ msgid "Bright" msgstr "Hell" -#: f.edit.cc:2000 f.tools.cc:1767 +#: f.edit.cc:2000 f.tools.cc:1775 msgid "Brightness Distribution" msgstr "Helligkeitsverteilung" @@ -1403,7 +1399,7 @@ msgid "Deband Bright" msgstr "Entstreifen Hell" -#: f.edit.cc:3570 f.widgets.cc:472 f.widgets.cc:743 +#: f.edit.cc:3570 f.widgets.cc:474 f.widgets.cc:745 msgid "Tone Mapping" msgstr "Tone Mapping" @@ -1435,7 +1431,7 @@ msgid "use previous settings" msgstr "vorherige Einstellungen benutzen" -#: f.edit.cc:4236 f.widgets.cc:474 +#: f.edit.cc:4236 f.widgets.cc:476 msgid "Flip" msgstr "Spiegeln" @@ -1476,15 +1472,15 @@ msgid "text" msgstr "Text" -#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2807 +#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2814 msgid "backing" msgstr "Hinterfarbe" -#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2808 +#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2815 msgid "outline" msgstr "Umriss" -#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2809 +#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2816 msgid "shadow" msgstr "Shatten" @@ -1492,7 +1488,7 @@ msgid "save to current file" msgstr "in aktueller Datei speichern" -#: f.edit.cc:4466 f.file.cc:1835 +#: f.edit.cc:4466 f.file.cc:1706 msgid "save as new file version" msgstr "Als neuen Dateiversion speichern" @@ -1504,7 +1500,7 @@ "In aktueller Datei speichern \n" "Nächste Datei mit gleichem Text öffnen" -#: f.edit.cc:4628 f.mashup.cc:2566 f.tools.cc:1167 +#: f.edit.cc:4628 f.mashup.cc:2573 f.tools.cc:1172 msgid "select font" msgstr "Font wählen" @@ -1524,15 +1520,15 @@ msgid "Write Line or Arrow on Image" msgstr "Linie/Pfeil am Bild schreiben" -#: f.edit.cc:5278 f.mashup.cc:2786 +#: f.edit.cc:5278 f.mashup.cc:2793 msgid "Line length" msgstr "Linien-Länge" -#: f.edit.cc:5285 f.mashup.cc:2793 +#: f.edit.cc:5285 f.mashup.cc:2800 msgid "Arrow head" msgstr "Pfeil-Kopf" -#: f.edit.cc:5298 f.mashup.cc:2806 +#: f.edit.cc:5298 f.mashup.cc:2813 msgid "line" msgstr "Linie" @@ -1544,11 +1540,11 @@ "Linie/Pfeil im Lageplan festsetzen \n" " Neuen Linie/Pfeil starten" -#: f.edit.cc:5918 f.widgets.cc:477 +#: f.edit.cc:5918 f.widgets.cc:479 msgid "Paint Edits" msgstr "Änderungen anmalen" -#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.06.cc:3307 +#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.07.cc:3318 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -1556,7 +1552,7 @@ "Ausschnitt kann nicht behalten werden.\n" "Fortfahren?" -#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2293 +#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2301 msgid "Edit function must be active" msgstr "Editfunktion muss aktiv sein" @@ -1572,7 +1568,7 @@ msgid "reset area" msgstr "zurücksetzen" -#: f.edit.cc:6144 f.widgets.cc:478 +#: f.edit.cc:6144 f.widgets.cc:480 msgid "Leverage Edits" msgstr "Änderungs-Hebelkraft" @@ -1640,7 +1636,7 @@ msgid "Background" msgstr "Hintergrund" -#: f.effects.cc:1214 f.widgets.cc:519 +#: f.effects.cc:1214 f.widgets.cc:521 msgid "Line Drawing" msgstr "Stift-Zeichnung" @@ -1648,7 +1644,7 @@ msgid "black/white" msgstr "schwarzweiß" -#: f.effects.cc:1505 f.widgets.cc:520 +#: f.effects.cc:1505 f.widgets.cc:522 msgid "Color Drawing" msgstr "Farb-Zeichnung" @@ -1656,7 +1652,7 @@ msgid "Bright Areas" msgstr "Hellere Bereiche" -#: f.effects.cc:1766 f.widgets.cc:521 +#: f.effects.cc:1766 f.widgets.cc:523 msgid "Graduated Blur" msgstr "Gestaffelte Verwischen" @@ -1720,7 +1716,7 @@ msgid "borders" msgstr "Ränder" -#: f.effects.cc:3259 f.widgets.cc:526 +#: f.effects.cc:3259 f.widgets.cc:528 msgid "Vignette" msgstr "Vignette" @@ -1748,7 +1744,7 @@ msgid "Calculate" msgstr "Rechnen" -#: f.effects.cc:3848 f.widgets.cc:528 +#: f.effects.cc:3848 f.widgets.cc:530 msgid "Pattern" msgstr "Muster" @@ -1772,7 +1768,7 @@ msgid "Tile" msgstr "Kachel" -#: f.effects.cc:4411 f.widgets.cc:523 +#: f.effects.cc:4411 f.widgets.cc:525 msgid "Tiles" msgstr "Kacheln" @@ -1790,7 +1786,7 @@ msgid "only %d tile images found" msgstr "Nur %d Kachelbilder gefunden" -#: f.effects.cc:4905 f.widgets.cc:530 +#: f.effects.cc:4905 f.widgets.cc:532 msgid "Custom Kernel" msgstr "Benutzerspezifischer Kernel" @@ -1806,11 +1802,11 @@ msgid "Data file" msgstr "Kerneldatei" -#: f.effects.cc:4951 fotoxx-16.06.cc:3571 +#: f.effects.cc:4951 fotoxx-16.07.cc:3582 msgid "Load settings from file" msgstr "Einstellungen von Datei laden" -#: f.effects.cc:5212 f.widgets.cc:531 +#: f.effects.cc:5212 f.widgets.cc:533 msgid "Make Waves" msgstr "Wellen machen" @@ -1834,7 +1830,7 @@ msgid "Pull image using the mouse." msgstr "Bild mit der Maus schleppen." -#: f.effects.cc:5427 f.widgets.cc:532 +#: f.effects.cc:5427 f.widgets.cc:534 msgid "Directed Blur" msgstr "Gerichtete Verwischung" @@ -1846,7 +1842,7 @@ msgid "intensity" msgstr "Stärke" -#: f.effects.cc:5638 f.widgets.cc:533 +#: f.effects.cc:5638 f.widgets.cc:535 msgid "Blur Background" msgstr "Hintergrund unscharf machen" @@ -1866,7 +1862,7 @@ msgid "max. blur radius" msgstr "max. Unscharf-Radius" -#: f.file.cc:182 +#: f.file.cc:181 msgid "" "use EXIF photo date or \n" " file modification date" @@ -1874,83 +1870,75 @@ "EXIF Fotodatum oder Datei \n" " Änderungsdatum benutzen" -#: f.file.cc:199 f.widgets.cc:608 +#: f.file.cc:198 f.widgets.cc:610 msgid "File" msgstr "Datei" -#: f.file.cc:355 -msgid "UFraw not installed" -msgstr "UFraw nicht installiert" - -#: f.file.cc:371 f.widgets.cc:745 -msgid "Open RAW file (ufraw)" -msgstr "RAW-Datei öffnen (ufraw)" +#: f.file.cc:368 f.widgets.cc:747 +msgid "Open RAW file (Raw Therapee)" +msgstr "RAW-Datei öffnen (Raw Therapee)" -#: f.file.cc:376 f.file.cc:447 +#: f.file.cc:373 msgid "RAW type not registered in User Settings" msgstr "RAW-Typ nicht in Benutzereinstellungen registriert" -#: f.file.cc:442 f.widgets.cc:746 -msgid "Open RAW file (Raw Therapee)" -msgstr "RAW-Datei öffnen (Raw Therapee)" - -#: f.file.cc:534 f.widgets.cc:423 +#: f.file.cc:460 f.widgets.cc:424 msgid "Open Image File" msgstr "Bilddatei öffnen" -#: f.file.cc:553 +#: f.file.cc:479 msgid "unknown file type" msgstr "Dateityp unbekannt" -#: f.file.cc:747 +#: f.file.cc:673 msgid "Create Blank Image" msgstr "Leerbild erstellen" -#: f.file.cc:749 +#: f.file.cc:675 msgid "file name" msgstr "Dateiname" -#: f.file.cc:782 +#: f.file.cc:708 msgid "supply a file name" msgstr "Dateinamen eingeben" -#: f.file.cc:932 f.widgets.cc:428 +#: f.file.cc:858 f.widgets.cc:428 msgid "Rename Image File" msgstr "Bilddatei umbenennen" -#: f.file.cc:939 +#: f.file.cc:865 msgid "Old Name" msgstr "Vorheriger Name" -#: f.file.cc:949 +#: f.file.cc:875 msgid "previous name" msgstr "Vorheriger Name" -#: f.file.cc:950 +#: f.file.cc:876 msgid "add 1" msgstr "1 addieren" -#: f.file.cc:1129 +#: f.file.cc:1054 msgid "Copy or Move Image File" msgstr "Bilddatei kopieren oder versetzen" -#: f.file.cc:1171 +#: f.file.cc:1096 msgid "New Location:" msgstr "Neue Speicherstelle" -#: f.file.cc:1176 +#: f.file.cc:1101 msgid "copy (duplicate file)" msgstr "kopieren (Datei duplizieren)" -#: f.file.cc:1178 +#: f.file.cc:1103 msgid "move (remove original)" msgstr "versetzen (Original entfernen)" -#: f.file.cc:1257 +#: f.file.cc:1182 msgid "new location is not a directory" msgstr "Neue Speicherstelle muß ein Verzeichnis sein" -#: f.file.cc:1297 f.file.cc:1511 +#: f.file.cc:1222 f.file.cc:1431 #, c-format msgid "" "delete failed: \n" @@ -1959,77 +1947,63 @@ "Löschen fehlgeschlagen: \n" " %s" -#: f.file.cc:1393 +#: f.file.cc:1318 msgid "Delete or Trash Image File" msgstr "Bilddatei löschen oder in Abfall schieben" -#: f.file.cc:1460 -msgid "" -"GTK g_file_trash() function failed. \n" -"Desktop trash folder will be used." -msgstr "" -"GTK g_file_trash() funktioniert nicht. \n" -"Desktop Abfall-Ordner wird erstellt." - -#: f.file.cc:1463 -#, c-format -msgid "Cannot create desktop trash folder: %s" -msgstr "Kann Desktop Abfall-Ordner nicht erstellen: %s" +#: f.file.cc:1383 +msgid "GTK g_file_trash() function failed" +msgstr "GTK g_file_trash() funktioniert nicht" -#: f.file.cc:1483 +#: f.file.cc:1404 msgid "not a known image file" msgstr "keine bekannte Bilddatei" -#: f.file.cc:1489 +#: f.file.cc:1410 msgid "Delete read-only file?" msgstr "Schreibgeschützte Datei löschen?" -#: f.file.cc:1491 +#: f.file.cc:1412 msgid "Trash read-only file?" msgstr "Nicht schreibbare Datei in den Abfall?" -#: f.file.cc:1564 -#, c-format -msgid "error: %s" -msgstr "Fehler: %s" - -#: f.file.cc:1589 +#: f.file.cc:1460 msgid "no more images" msgstr "keine Bilder mehr" -#: f.file.cc:1817 +#: f.file.cc:1688 msgid "Save Image File" msgstr "Bilddatei speichern" -#: f.file.cc:1827 +#: f.file.cc:1698 msgid "new version" msgstr "Neue Version" -#: f.file.cc:1828 +#: f.file.cc:1699 msgid "new file" msgstr "Neue Datei" -#: f.file.cc:1829 +#: f.file.cc:1700 msgid "replace file" msgstr "Datei ersetzen" -#: f.file.cc:1836 f.file.cc:2255 +#: f.file.cc:1707 f.file.cc:2126 msgid "save as new file name or type" msgstr "Als neuen Dateinamen oder Typ speichern" -#: f.file.cc:1838 +#: f.file.cc:1709 msgid "replace old file (OVERWRITE)" msgstr "Vorherige Datei ersetzen (ÜBERSCHREIBEN" -#: f.file.cc:1877 f.file.cc:2020 +#: f.file.cc:1748 f.file.cc:1891 msgid "cannot save as RAW type" msgstr "Kann nicht als RAW-Datei speichern" -#: f.file.cc:1973 +#: f.file.cc:1844 msgid "too many file versions: 99" msgstr "zu viele Datei-Versionen: 99" -#: f.file.cc:2014 +#: f.file.cc:1885 msgid "" "Transparency map will be lost.\n" "save to PNG file to retain." @@ -2037,23 +2011,23 @@ "Transparenzdaten gehen verloren.\n" "Als PNG Datei speichern zum behalten." -#: f.file.cc:2098 +#: f.file.cc:1969 msgid "save anyway" msgstr "trotzdem speichern" -#: f.file.cc:2164 +#: f.file.cc:2035 msgid "Unable to copy EXIF/IPTC data" msgstr "Kann nicht EXIF/IPTC Daten kopieren" -#: f.file.cc:2273 f.file.cc:2276 +#: f.file.cc:2144 f.file.cc:2147 msgid "make current" msgstr "aktuell machen" -#: f.file.cc:2274 +#: f.file.cc:2145 msgid "(new file becomes current file)" msgstr "(neue Datei wird aktuelle Datei)" -#: f.file.cc:2387 +#: f.file.cc:2258 #, c-format msgid "" "Overwrite file? \n" @@ -2062,93 +2036,79 @@ "Datei überschreiben? \n" " %s" -#: f.file.cc:2478 -msgid "Start of gallery, next: preceding gallery." -msgstr "Galerie-Anfang, nächstes: vorherige Galerie" - -#: f.file.cc:2479 -msgid "End of gallery, next: following gallery." -msgstr "Galerie-Ende, nächstes: folgende Galerie" - -#: f.file.cc:2480 -msgid "" -"The next preceding gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" -"Nächst vorherige Galerie existiert nicht oder enthält keine Bilddateien \n" -"(keine Unterordner oder weitere Ordner werden durgesucht)." +#: f.file.cc:2351 +#, c-format +msgid "Start of gallery, preceding gallery: %s" +msgstr "Galerie-Anfang, vorherige: %s" -#: f.file.cc:2482 -msgid "" -"The next following gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" -"Nächst folgende Galerie existiert nicht oder enthält keine Bilddateien \n" -"(keine Unterordner oder weitere Ordner werden durgesucht)." +#: f.file.cc:2352 +#, c-format +msgid "End of gallery, following gallery: %s" +msgstr "Galerie-Ende, nächste: %s" -#: f.file.cc:2556 f.widgets.cc:589 +#: f.file.cc:2446 f.widgets.cc:591 msgid "Quick Start" msgstr "Schnell-Start" -#: f.file.cc:2559 f.widgets.cc:590 +#: f.file.cc:2449 f.widgets.cc:592 msgid "User Guide" msgstr "Benutzeranleitung" -#: f.file.cc:2562 f.widgets.cc:591 +#: f.file.cc:2452 f.widgets.cc:593 msgid "User Guide Changes" msgstr "Benutzeranleitung Änderungen" -#: f.file.cc:2565 f.widgets.cc:593 +#: f.file.cc:2455 f.widgets.cc:595 msgid "README" msgstr "LIESMICH" -#: f.file.cc:2568 f.widgets.cc:592 +#: f.file.cc:2458 f.widgets.cc:594 msgid "Edit Functions Summary" msgstr "Verarbeitungsfunktionen Übersicht" -#: f.file.cc:2571 f.widgets.cc:594 +#: f.file.cc:2461 f.widgets.cc:596 msgid "Change Log" msgstr "Änderungslog" -#: f.file.cc:2574 f.widgets.cc:595 +#: f.file.cc:2464 f.widgets.cc:597 msgid "Log File" msgstr "Fehlerlogdatei" -#: f.file.cc:2577 f.widgets.cc:596 +#: f.file.cc:2467 f.widgets.cc:598 msgid "Translations" msgstr "Übersetzungen" -#: f.file.cc:2580 f.widgets.cc:597 +#: f.file.cc:2470 f.widgets.cc:599 msgid "Home Page" msgstr "Homepage" -#: f.file.cc:2583 f.widgets.cc:598 +#: f.file.cc:2473 f.widgets.cc:600 msgid "About" msgstr "Über Fotoxx" -#: f.file.cc:2587 f.widgets.cc:620 f.widgets.cc:644 fotoxx.h:1135 +#: f.file.cc:2477 f.widgets.cc:622 f.widgets.cc:646 fotoxx.h:1136 msgid "Help" msgstr "Hilfe" -#: f.file.cc:2742 f.file.cc:2812 +#: f.file.cc:2632 f.file.cc:2702 #, c-format msgid "file not found: %s" msgstr "Datei nicht gefunden: %s" -#: f.file.cc:2748 f.file.cc:2818 +#: f.file.cc:2638 f.file.cc:2708 #, c-format msgid "file type not supported: %s" msgstr "Dateityp nicht unterstützt: %s" -#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:642 +#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:644 msgid "Scroll" msgstr "Scrollen" -#: f.gallery.cc:940 f.widgets.cc:420 f.widgets.cc:632 +#: f.gallery.cc:940 f.widgets.cc:421 f.widgets.cc:634 msgid "Sync Gallery" msgstr "Sync Galerie" -#: f.gallery.cc:950 f.repair.cc:6658 f.repair.cc:6663 fotoxx.h:1157 +#: f.gallery.cc:950 f.repair.cc:6352 f.repair.cc:6357 fotoxx.h:1158 msgid "Open" msgstr "Öffnen" @@ -2160,16 +2120,16 @@ msgid "GoTo" msgstr "GehZu" -#: f.gallery.cc:965 f.widgets.cc:637 +#: f.gallery.cc:965 f.widgets.cc:639 msgid "Sort" msgstr "Sortieren" #: f.gallery.cc:971 f.gallery.cc:1540 f.gallery.cc:1541 f.gallery.cc:1543 -#: f.widgets.cc:635 +#: f.widgets.cc:637 msgid "Zoom+" msgstr "Zoom+" -#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:636 +#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:638 msgid "Zoom-" msgstr "Zoom-" @@ -2181,19 +2141,19 @@ msgid "Row↓" msgstr "Reihe↓" -#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:640 +#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:642 msgid "Page↑" msgstr "Seite↑" -#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:641 +#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:643 msgid "Page↓" msgstr "Seite↓" -#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:638 +#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:640 msgid "First" msgstr "Erste" -#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:639 +#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:641 msgid "Last" msgstr "Letzte" @@ -2217,7 +2177,7 @@ msgid "Choose album" msgstr "Album wählen" -#: f.gallery.cc:1288 f.tools.cc:986 +#: f.gallery.cc:1288 f.tools.cc:991 msgid "Gallery Sort" msgstr "Galerie-Sortierung" @@ -2241,27 +2201,27 @@ msgid "descending" msgstr "absteigend" -#: f.gallery.cc:2373 fotoxx.h:1182 +#: f.gallery.cc:2315 fotoxx.h:1182 msgid "Select Files" msgstr "Dateien auswählen" -#: f.gallery.cc:2838 +#: f.gallery.cc:2780 msgid "Click list position. Click thumbnail to add." msgstr "Listenposition anklicken. Thumbnail anklicken um zu addieren." -#: f.gallery.cc:2864 f.gallery.cc:3112 +#: f.gallery.cc:2806 f.gallery.cc:3054 msgid "Edit Bookmarks" msgstr "Lesezeichen bearbeiten" -#: f.gallery.cc:3039 +#: f.gallery.cc:2981 msgid "unable to save bookmarks file" msgstr "Kann Lesezeichen-Datei nicht speichern" -#: f.gallery.cc:3112 +#: f.gallery.cc:3054 msgid "Go To Bookmark" msgstr "Zum Lesezeichen springen" -#: f.gallery.cc:3169 f.meta.cc:3528 f.repair.cc:8279 +#: f.gallery.cc:3111 f.meta.cc:3526 f.repair.cc:7973 msgid "file not found" msgstr "Datei nicht gefunden" @@ -2455,7 +2415,7 @@ msgid "Hard" msgstr "Fest" -#: f.mashup.cc:1313 f.repair.cc:6252 +#: f.mashup.cc:1313 f.repair.cc:5946 msgid "Blend" msgstr "Beimischen" @@ -2471,7 +2431,7 @@ msgid "Gradual" msgstr "Stufenweise" -#: f.mashup.cc:1589 fotoxx.h:1161 +#: f.mashup.cc:1589 fotoxx.h:1162 msgid "Power" msgstr "Stärke" @@ -2500,45 +2460,45 @@ msgid "add entered text to layout" msgstr "Eingegebenen Text im Lageplan einfügen" -#: f.mashup.cc:2627 +#: f.mashup.cc:2634 msgid "click position to add text" msgstr "Bildstelle für Text anklicken" -#: f.mashup.cc:2633 +#: f.mashup.cc:2640 #, c-format msgid "exceeded %d text entries" msgstr "%d Texte überschritten" -#: f.mashup.cc:2756 +#: f.mashup.cc:2763 msgid "Set line properties, [Add] to layout, edit." msgstr "Linie Attribute justieren, Layout [Hinzufügen], einstellen." -#: f.mashup.cc:2780 +#: f.mashup.cc:2787 msgid "Edit Line/Arrow" msgstr "Linie/Pfeil bearbeiten" -#: f.mashup.cc:2835 +#: f.mashup.cc:2842 msgid "add line/arrow to layout" msgstr "Linie/Pfeil im Lageplan einfügen" -#: f.mashup.cc:2928 +#: f.mashup.cc:2935 msgid "click position to add line" msgstr "Bildstelle für Linie anklicken" -#: f.mashup.cc:2934 +#: f.mashup.cc:2941 #, c-format msgid "exceeded %d line entries" msgstr "%d Linie überschritten" -#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:723 +#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:725 msgid "View Metadata" msgstr "Metadata ansehen" #: f.meta.cc:548 msgid "Geocoding service by MapQuest" -msgstr "" +msgstr "Geocodingdienst von MapQuest" -#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:724 +#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:726 msgid "Edit Metadata" msgstr "Metadata bearbeiten" @@ -2566,11 +2526,11 @@ msgid "Comments" msgstr "Kommentare" -#: f.meta.cc:659 f.meta.cc:3618 -msgid "city" -msgstr "Stadt" +#: f.meta.cc:659 f.meta.cc:3616 +msgid "location" +msgstr "Ort" -#: f.meta.cc:662 f.meta.cc:3621 +#: f.meta.cc:662 f.meta.cc:3619 msgid "country" msgstr "Land" @@ -2586,76 +2546,76 @@ msgid "Enter New Tag" msgstr "Neues Tag eingeben" -#: f.meta.cc:703 f.meta.cc:5459 +#: f.meta.cc:703 f.meta.cc:5446 msgid "Matching Tags" msgstr "Passende Tags" -#: f.meta.cc:712 f.meta.cc:1708 f.meta.cc:5466 +#: f.meta.cc:712 f.meta.cc:1706 f.meta.cc:5453 msgid "Defined Tags Category" msgstr "Definierte Tags Gruppe" #: f.meta.cc:719 msgid "search known locations" -msgstr "" +msgstr "bekannte Orte durchsuchen" #: f.meta.cc:720 msgid "search using web service" -msgstr "" +msgstr "suchen mit Webdienst" #: f.meta.cc:721 msgid "create tag categories and tags" msgstr "Tag Kategorien und Tags erstellen" -#: f.meta.cc:936 f.meta.cc:3778 -msgid "city not found" -msgstr "Stadt nicht gefunden" +#: f.meta.cc:936 f.meta.cc:3776 +msgid "location not found" +msgstr "Ort nicht gefunden" -#: f.meta.cc:1214 f.meta.cc:3836 f.meta.cc:4352 +#: f.meta.cc:1212 f.meta.cc:3834 f.meta.cc:4337 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "Latitude/Longitude falsch: %s %s" -#: f.meta.cc:1248 fotoxx.h:1145 +#: f.meta.cc:1246 fotoxx.h:1146 msgid "Manage Tags" msgstr "Tags verwalten" -#: f.meta.cc:1248 +#: f.meta.cc:1246 msgid "orphan tags" msgstr "verwaiste Tags" -#: f.meta.cc:1252 +#: f.meta.cc:1250 msgid "category" msgstr "Gruppe" -#: f.meta.cc:1255 +#: f.meta.cc:1253 msgid "tag" msgstr "Tag" -#: f.meta.cc:1262 +#: f.meta.cc:1260 msgid "Defined Tags:" msgstr "Definierte Tags:" -#: f.meta.cc:1404 f.widgets.cc:441 f.widgets.cc:725 +#: f.meta.cc:1402 f.widgets.cc:441 f.widgets.cc:727 msgid "Edit Any Metadata" msgstr "Beliebige Metadaten bearbeiten" -#: f.meta.cc:1404 f.meta.cc:2148 +#: f.meta.cc:1402 f.meta.cc:2146 msgid "Full List" msgstr "Vollliste" -#: f.meta.cc:1409 f.meta.cc:2153 +#: f.meta.cc:1407 f.meta.cc:2151 msgid "click to select" msgstr "Zum Wählen, anklicken" -#: f.meta.cc:1418 f.meta.cc:2164 +#: f.meta.cc:1416 f.meta.cc:2162 msgid "key name" msgstr "Schlüsselwort" -#: f.meta.cc:1420 f.meta.cc:2165 +#: f.meta.cc:1418 f.meta.cc:2163 msgid "key value" msgstr "Inhalt" -#: f.meta.cc:1506 f.meta.cc:2308 +#: f.meta.cc:1504 f.meta.cc:2306 msgid "" "The command: $ man Image::ExifTool::TagNames \n" "will show over 15000 \"standard\" tag names" @@ -2663,31 +2623,31 @@ "Das Kommando: $ man Image::ExifTool::TagNames \n" "wird über 15000 \"standard\" Tagnamen zeigen" -#: f.meta.cc:1579 f.widgets.cc:442 +#: f.meta.cc:1577 f.widgets.cc:442 msgid "Delete Metadata" msgstr "Metadata löschen" -#: f.meta.cc:1581 fotoxx.h:1095 +#: f.meta.cc:1579 fotoxx.h:1095 msgid "All" msgstr "Alles" -#: f.meta.cc:1582 +#: f.meta.cc:1580 msgid "One Key:" msgstr "Ein Key:" -#: f.meta.cc:1685 f.widgets.cc:443 f.widgets.cc:574 +#: f.meta.cc:1683 f.widgets.cc:443 f.widgets.cc:576 msgid "Batch Add/Remove Tags" msgstr "Tags zuweisen/entfernen Stapelbetrieb" -#: f.meta.cc:1696 +#: f.meta.cc:1694 msgid "tags to add" msgstr "Tags zum Zuweisen" -#: f.meta.cc:1697 +#: f.meta.cc:1695 msgid "tags to remove" msgstr "Tags zum Entfernen" -#: f.meta.cc:1782 +#: f.meta.cc:1780 #, c-format msgid "" "%s \n" @@ -2696,15 +2656,15 @@ "%s \n" " Zuviele Tags" -#: f.meta.cc:1897 +#: f.meta.cc:1895 msgid "specify files and tags" msgstr "Tags und Dateien angeben" -#: f.meta.cc:1957 +#: f.meta.cc:1955 msgid "tag names file" msgstr "Tag-Namen Datei" -#: f.meta.cc:2031 +#: f.meta.cc:2029 #, c-format msgid "" "%d tags to rename \n" @@ -2715,43 +2675,43 @@ "in %d Bilddateien. \n" "Ausführen?" -#: f.meta.cc:2148 +#: f.meta.cc:2146 msgid "Batch Change Metadata" msgstr "Stapel Metadaten ändern" -#: f.meta.cc:2222 +#: f.meta.cc:2220 msgid "enter key names" msgstr "Key-Namen eingeben" -#: f.meta.cc:2228 f.meta.cc:2422 fotoxx.h:1154 +#: f.meta.cc:2226 f.meta.cc:2420 fotoxx.h:1155 msgid "no files selected" msgstr "Keine Dateien ausgewählt" -#: f.meta.cc:2407 f.widgets.cc:446 f.widgets.cc:577 +#: f.meta.cc:2405 f.widgets.cc:446 f.widgets.cc:579 msgid "Batch Report Metadata" msgstr "Stapel Metadaten auflisten" -#: f.meta.cc:2580 +#: f.meta.cc:2578 msgid "date format is YYYY-MM-DD" msgstr "Datumformat ist JJJJ-MM-TT" -#: f.meta.cc:2584 +#: f.meta.cc:2582 msgid "date is invalid" msgstr "Datum ist ungültig" -#: f.meta.cc:2618 +#: f.meta.cc:2616 msgid "time format is HH:MM [:SS]" msgstr "Zeitformat ist HH:MM [:SS]" -#: f.meta.cc:2622 +#: f.meta.cc:2620 msgid "time is invalid" msgstr "Zeit ist ungültig" -#: f.meta.cc:3587 f.widgets.cc:447 f.widgets.cc:578 +#: f.meta.cc:3585 f.widgets.cc:447 f.widgets.cc:580 msgid "Batch Add Geotags" msgstr "Geotags zu Bilder addieren" -#: f.meta.cc:3824 +#: f.meta.cc:3822 msgid "" "data is incomplete \n" " proceed?" @@ -2759,27 +2719,27 @@ "Daten nicht vollständig \n" " Fortsetzen?" -#: f.meta.cc:3874 -msgid "choose city" -msgstr "Stadt auswählen" +#: f.meta.cc:3872 +msgid "choose location" +msgstr "Ort wählen" -#: f.meta.cc:3961 +#: f.meta.cc:3959 msgid "not found" msgstr "Nicht gefunden" -#: f.meta.cc:3962 -msgid "city and country required" -msgstr "Stadt und Land erforderlich" +#: f.meta.cc:3960 +msgid "location and country required" +msgstr "Ort und Land erforderlich" -#: f.meta.cc:4465 f.meta.cc:5003 f.meta.cc:5347 f.meta.cc:6504 +#: f.meta.cc:4450 f.meta.cc:4988 f.meta.cc:5334 f.meta.cc:6559 msgid "-noindex in use, disabled" msgstr "-noindex im Einsatz, gesperrt" -#: f.meta.cc:4483 +#: f.meta.cc:4468 msgid "choose map file" msgstr "Kartendatei wählen" -#: f.meta.cc:4624 +#: f.meta.cc:4609 msgid "" "fotoxx-maps package not installed \n" "(see http://kornelix.net/packages and /tarballs)" @@ -2787,120 +2747,120 @@ "fotoxx-maps Paket nicht installiert \n" "(http://kornelix.net/packages und /tarballs)" -#: f.meta.cc:4629 +#: f.meta.cc:4614 #, c-format msgid "map file %s is missing" msgstr "Kartendatei %s fehlt" -#: f.meta.cc:4633 +#: f.meta.cc:4618 #, c-format msgid "" "map latitude/longitude data unreasonable \n" " %.3f %.3f %.3f %.3f" msgstr "Karte Breitengrad/Längengrad unlogisch %.3f %.3f %.3f %.3f" -#: f.meta.cc:4662 +#: f.meta.cc:4647 msgid "search range (km)" msgstr "Suchentfernung (km)" -#: f.meta.cc:4940 f.meta.cc:5282 +#: f.meta.cc:4925 f.meta.cc:5267 msgid "No matching images found" msgstr "Keine übereinstimmenden Bilder gefunden" -#: f.meta.cc:5118 +#: f.meta.cc:5103 msgid "image file has no latitude/longitude" msgstr "Bilddatei hat keinen Breitengrad/Längengrad" -#: f.meta.cc:5384 +#: f.meta.cc:5371 msgid "Search Image Metadata" msgstr "Bilder-Metadaten suchen" -#: f.meta.cc:5388 +#: f.meta.cc:5375 msgid "images to search:" msgstr "Bilder durchsuchen:" -#: f.meta.cc:5389 +#: f.meta.cc:5376 msgid "all" msgstr "Alle" -#: f.meta.cc:5390 +#: f.meta.cc:5377 msgid "current set only" msgstr "nur Aktueller Satz" -#: f.meta.cc:5393 +#: f.meta.cc:5380 msgid "matching images:" msgstr "passende Bilder:" -#: f.meta.cc:5394 +#: f.meta.cc:5381 msgid "new set" msgstr "neuer Satz" -#: f.meta.cc:5395 +#: f.meta.cc:5382 msgid "add to set" msgstr "dem Satz zufügen" -#: f.meta.cc:5396 +#: f.meta.cc:5383 msgid "remove" msgstr "entfernen" -#: f.meta.cc:5399 +#: f.meta.cc:5386 msgid "report type:" msgstr "Bericht-Typ:" -#: f.meta.cc:5400 +#: f.meta.cc:5387 msgid "gallery" msgstr "Galerie" -#: f.meta.cc:5407 +#: f.meta.cc:5394 msgid "date range" msgstr "Datumsbereich" -#: f.meta.cc:5408 +#: f.meta.cc:5395 msgid "stars range" msgstr "Sterne-Wertebereich" -#: f.meta.cc:5409 +#: f.meta.cc:5396 msgid "search tags" msgstr "Such-Tags" -#: f.meta.cc:5410 +#: f.meta.cc:5397 msgid "search text" msgstr "Text durchsuchen" -#: f.meta.cc:5411 +#: f.meta.cc:5398 msgid "search files" msgstr "Dateien suchen" -#: f.meta.cc:5416 +#: f.meta.cc:5403 msgid "(yyyymmdd)" msgstr "(jjjjmmtt)" -#: f.meta.cc:5421 +#: f.meta.cc:5408 msgid "last version only" msgstr "Nur Neueste Version" -#: f.meta.cc:5423 +#: f.meta.cc:5410 msgid "all/any" msgstr "alle/irgendeines" -#: f.meta.cc:5442 +#: f.meta.cc:5429 msgid "search locations" -msgstr "" +msgstr "Ort suchen" -#: f.meta.cc:5448 +#: f.meta.cc:5435 msgid "search other metadata" -msgstr "" +msgstr "nach andere Metadaten suchen" -#: f.meta.cc:5455 +#: f.meta.cc:5442 msgid "Enter Search Tag" msgstr "Such-Tag eingeben" -#: f.meta.cc:5737 +#: f.meta.cc:5724 #, c-format msgid "not a defined tag: %s" msgstr "kein definiertes Tag: %s" -#: f.meta.cc:5768 +#: f.meta.cc:5755 msgid "" "to remove images from current set, \n" "search current set" @@ -2908,7 +2868,7 @@ "Um Bilder vom aktuellen Satz zu entfernen, \n" "aktuellen Satz durchsuchen" -#: f.meta.cc:5775 +#: f.meta.cc:5762 msgid "" "to add images to current set, \n" "search all images" @@ -2916,7 +2876,7 @@ "Um Bilder dem aktuellen Satz zuzufügen, \n" "alle Bilder durchsuchen" -#: f.meta.cc:5820 +#: f.meta.cc:5807 #, c-format msgid "" "search dates not reasonable \n" @@ -2925,20 +2885,20 @@ "Suchdaten sind sinnlos \n" " %s %s" -#: f.meta.cc:5838 +#: f.meta.cc:5825 msgid "stars range not reasonable" msgstr "Stern-Spanne unvernünftig" -#: f.meta.cc:6082 +#: f.meta.cc:6069 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "Bilder zugefügt: %d entfernt: %d neue Anzahl: %d" -#: f.meta.cc:6085 +#: f.meta.cc:6072 msgid "no changes made" msgstr "keine Änderungen gemach" -#: f.meta.cc:6237 +#: f.meta.cc:6224 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2946,47 +2906,52 @@ "Folgende wird immer berichtet: \n" "Datum, Sterne, Tags, Titel, Kommentare" -#: f.meta.cc:6261 +#: f.meta.cc:6249 msgid "Additional Items for Report" msgstr "Zusätzliche Metadaten im Bericht" -#: f.meta.cc:6267 +#: f.meta.cc:6256 msgid "Keyword" msgstr "Schlüsselwort" -#: f.meta.cc:6274 +#: f.meta.cc:6270 msgid "Match Criteria" msgstr "Trefferkriterien" -#: f.meta.cc:6519 +#: f.meta.cc:6366 +#, c-format +msgid "bad number: %s" +msgstr "Irrwert: %s" + +#: f.meta.cc:6574 msgid "Report Geotag Groups" msgstr "Geotag-Gruppen auflisten" -#: f.meta.cc:6520 +#: f.meta.cc:6575 msgid "Group by country" msgstr "Nach Land gruppieren" -#: f.meta.cc:6521 -msgid "Group by country/city" -msgstr "Nach Land/Stadt gruppieren" - -#: f.meta.cc:6522 -msgid "Group by country/city/date" -msgstr "Nach Land/Stadt/Datum gruppieren" +#: f.meta.cc:6576 +msgid "Group by country/location" +msgstr "Nach Land/Ort gruppieren" + +#: f.meta.cc:6577 +msgid "Group by country/location/date" +msgstr "Nach Land/Ort/Datum gruppieren" -#: f.meta.cc:6525 +#: f.meta.cc:6580 msgid "Combine within" msgstr "Kombinieren innerhalb" -#: f.meta.cc:6527 +#: f.meta.cc:6582 msgid "days" msgstr "Tage" -#: f.meta.cc:6643 +#: f.meta.cc:6702 msgid "geotag groups" msgstr "Geotaggruppen" -#: f.meta.cc:7241 +#: f.meta.cc:7316 msgid "image index is missing" msgstr "Bilddatei Index fehlt" @@ -3006,39 +2971,35 @@ msgid "Measure" msgstr "Messen" -#: f.repair.cc:1237 +#: f.repair.cc:1235 msgid "Noise Reduction" msgstr "Rauschverminderung" -#: f.repair.cc:1258 -msgid "Flatten 1" -msgstr "Abflachen 1" - -#: f.repair.cc:1259 -msgid "Flatten 2" -msgstr "Abflachen 2" +#: f.repair.cc:1254 fotoxx.h:1131 +msgid "Flatten" +msgstr "Ausgleichen" -#: f.repair.cc:1260 +#: f.repair.cc:1255 msgid "Median" msgstr "Mittelwert" -#: f.repair.cc:1280 +#: f.repair.cc:1270 msgid "dark areas" msgstr "Dunkle Bereiche" -#: f.repair.cc:1282 +#: f.repair.cc:1272 msgid "all areas" msgstr "Alle Bereiche" -#: f.repair.cc:2174 +#: f.repair.cc:1868 msgid "Measure Noise" msgstr "Rauschen messen" -#: f.repair.cc:2175 +#: f.repair.cc:1869 msgid "Click on a monotone image area." msgstr "Gleichmäßigen Bildbereich anklicken." -#: f.repair.cc:2338 +#: f.repair.cc:2032 msgid "" "1. Drag mouse to select. \n" "2. Erase. 3. Repeat. " @@ -3046,23 +3007,23 @@ "1. Zum Selektieren, Maus ziehen. \n" "2. Löschen. 3. Wiederholen. " -#: f.repair.cc:2360 f.widgets.cc:485 +#: f.repair.cc:2054 f.widgets.cc:487 msgid "Smart Erase" msgstr "Smart löschen" -#: f.repair.cc:2365 fotoxx.h:1165 +#: f.repair.cc:2059 fotoxx.h:1166 msgid "Radius" msgstr "Radius" -#: f.repair.cc:2367 f.widgets.cc:483 +#: f.repair.cc:2061 f.widgets.cc:485 msgid "Blur" msgstr "Verwischen" -#: f.repair.cc:2370 +#: f.repair.cc:2064 msgid "New Area" msgstr "Neuer Ausschnitt" -#: f.repair.cc:2719 +#: f.repair.cc:2413 msgid "" "Method 1:\n" " Left-click on red-eye to darken.\n" @@ -3081,11 +3042,11 @@ "Zurücksetzen:\n" " Rechtsklick in das rote Auge." -#: f.repair.cc:2735 +#: f.repair.cc:2429 msgid "Red Eye Reduction" msgstr "Rote-Augen beseitigen" -#: f.repair.cc:3200 +#: f.repair.cc:2894 msgid "" "shift + left click: pick color or image position \n" "left click or drag: paint color or copy image \n" @@ -3095,39 +3056,39 @@ "Links-Klick oder Ziehen: mit Farbe malen oder vom Bild kopieren \n" "Rechts-Klick oder Ziehen: Farbe oder Bild entfernen" -#: f.repair.cc:3233 f.widgets.cc:487 +#: f.repair.cc:2927 f.widgets.cc:489 msgid "Paint/Clone" msgstr "Malen/Klonen" -#: f.repair.cc:3237 +#: f.repair.cc:2931 msgid "paint color" msgstr "Malfarbe" -#: f.repair.cc:3240 +#: f.repair.cc:2934 msgid "copy from image" msgstr "Vom Bild kopieren" -#: f.repair.cc:3247 f.repair.cc:3837 +#: f.repair.cc:2941 f.repair.cc:3531 msgid "paintbrush radius" msgstr "Pinsel-Radius" -#: f.repair.cc:3248 +#: f.repair.cc:2942 msgid "transparency center" msgstr "Transparenz Mitte" -#: f.repair.cc:3249 +#: f.repair.cc:2943 msgid "transparency edge" msgstr "Transparenz Rand" -#: f.repair.cc:3256 f.repair.cc:3844 +#: f.repair.cc:2950 f.repair.cc:3538 msgid "gradual paint" msgstr "Stufenweise malen" -#: f.repair.cc:3257 +#: f.repair.cc:2951 msgid "paint over transparent areas" msgstr "Transperante Bereiche übermalen" -#: f.repair.cc:3797 +#: f.repair.cc:3491 msgid "" "left drag: add transparency \n" "right drag: add opacity" @@ -3135,224 +3096,224 @@ "links ziehen: Transparenz addieren \n" "rechts ziehen: Opazität addieren" -#: f.repair.cc:3829 f.widgets.cc:488 +#: f.repair.cc:3523 f.widgets.cc:490 msgid "Paint Transparency" msgstr "Transparenz malen" -#: f.repair.cc:3838 +#: f.repair.cc:3532 msgid "strength center" msgstr "Stärke Mitte" -#: f.repair.cc:3839 +#: f.repair.cc:3533 msgid "strength edge" msgstr "Stärke Rand" -#: f.repair.cc:4094 f.widgets.cc:489 +#: f.repair.cc:3788 f.widgets.cc:491 msgid "Add Transparency" msgstr "Transparenz addieren" -#: f.repair.cc:4098 +#: f.repair.cc:3792 msgid "Match Brightness" msgstr "Helligkeit angleichen" -#: f.repair.cc:4103 +#: f.repair.cc:3797 msgid "Match Color" msgstr "Farbe angleichen" -#: f.repair.cc:4105 +#: f.repair.cc:3799 msgid "click on image to select color" msgstr "Bild anklicken um Farbe zu wählen" -#: f.repair.cc:4108 f.repair.cc:5318 +#: f.repair.cc:3802 f.repair.cc:5012 msgid "Match using:" msgstr "Angleichen mit:" -#: f.repair.cc:4114 f.repair.cc:5324 +#: f.repair.cc:3808 f.repair.cc:5018 msgid "Match Level:" msgstr "Farbübereinstimmung:" -#: f.repair.cc:4121 +#: f.repair.cc:3815 msgid "Invert Match" msgstr "Angleichung invertieren" -#: f.repair.cc:4124 fotoxx.h:1190 +#: f.repair.cc:3818 fotoxx.h:1190 msgid "Transparency" msgstr "Transparenz" -#: f.repair.cc:4386 f.widgets.cc:490 +#: f.repair.cc:4080 f.widgets.cc:492 msgid "Color Mode" msgstr "Farb-Modus" -#: f.repair.cc:4390 +#: f.repair.cc:4084 msgid "black/white positive" msgstr "schwarzweiß Positiv" -#: f.repair.cc:4391 +#: f.repair.cc:4085 msgid "black/white negative" msgstr "schwarzweiß Negativ" -#: f.repair.cc:4392 +#: f.repair.cc:4086 msgid "color positive" msgstr "farbiges Positiv" -#: f.repair.cc:4393 +#: f.repair.cc:4087 msgid "color negative" msgstr "farbiges Negativ" -#: f.repair.cc:4394 +#: f.repair.cc:4088 msgid "sepia" msgstr "Sepia" -#: f.repair.cc:4574 f.widgets.cc:491 +#: f.repair.cc:4268 f.widgets.cc:493 msgid "Shift Colors" msgstr "Farben verschieben" -#: f.repair.cc:4810 f.widgets.cc:492 +#: f.repair.cc:4504 f.widgets.cc:494 msgid "Color Saturation" msgstr "Farb-Sättigung" -#: f.repair.cc:4998 +#: f.repair.cc:4692 msgid "+Brightness" msgstr "+Helligkeit" -#: f.repair.cc:4999 +#: f.repair.cc:4693 msgid "+Red -Cyan" msgstr "+Rot -Zyan" -#: f.repair.cc:5000 +#: f.repair.cc:4694 msgid "+Green -Magenta" msgstr "+Grün -Magenta" -#: f.repair.cc:5001 +#: f.repair.cc:4695 msgid "+Blue -Yellow" msgstr "+Blau -Gelb" -#: f.repair.cc:5007 fotoxx.h:1167 +#: f.repair.cc:4701 fotoxx.h:1168 msgid "Red" msgstr "Rot" -#: f.repair.cc:5008 fotoxx.h:1132 +#: f.repair.cc:4702 fotoxx.h:1133 msgid "Green" msgstr "Grün" -#: f.repair.cc:5009 fotoxx.h:1102 +#: f.repair.cc:4703 fotoxx.h:1102 msgid "Blue" msgstr "Blau" -#: f.repair.cc:5313 +#: f.repair.cc:5007 msgid "Input color to match and adjust:" msgstr "Bildfarbe zum Angleichen und Einstellen" -#: f.repair.cc:5315 +#: f.repair.cc:5009 msgid "shift+click on image to select color" msgstr "Shift+Klick am Bild zum Farbe wählen" -#: f.repair.cc:5319 +#: f.repair.cc:5013 msgid "Hue" msgstr "Farbton" -#: f.repair.cc:5320 f.repair.cc:5352 +#: f.repair.cc:5014 f.repair.cc:5046 msgid "Saturation" msgstr "Farbsättigung" -#: f.repair.cc:5321 f.repair.cc:5353 +#: f.repair.cc:5015 f.repair.cc:5047 msgid "Lightness" msgstr "Helligkeit" -#: f.repair.cc:5331 +#: f.repair.cc:5025 msgid "Output Color" msgstr "Ausgabefarbe" -#: f.repair.cc:5351 +#: f.repair.cc:5045 msgid "Color Hue" msgstr "Farbton" -#: f.repair.cc:5354 +#: f.repair.cc:5048 msgid "Adjustment" msgstr "Einstellung" -#: f.repair.cc:5839 +#: f.repair.cc:5533 msgid "Ramp brightness across image" msgstr "Helligkeit an-/absteigend im Bild ändern" -#: f.repair.cc:6163 f.tools.cc:2184 +#: f.repair.cc:5857 f.tools.cc:2192 msgid "Click image to select pixels." msgstr "Bild anklicken zum Pixeln auswählen" -#: f.repair.cc:6194 +#: f.repair.cc:5888 msgid "Color Ramp" msgstr "Farbverlauf" -#: f.repair.cc:6205 +#: f.repair.cc:5899 msgid "Metric:" msgstr "Einheit" -#: f.repair.cc:6630 +#: f.repair.cc:6324 msgid "Color Match Images" msgstr "Bilderfarben anpassen" -#: f.repair.cc:6656 +#: f.repair.cc:6350 msgid "mouse radius for color sample" msgstr "Mausradius für Farbauswahl" -#: f.repair.cc:6659 +#: f.repair.cc:6353 msgid "image for source color" msgstr "Bild für Quellfarbe" -#: f.repair.cc:6661 +#: f.repair.cc:6355 msgid "click on image to get source color" msgstr "Bild anklicken zur Quellfarbe bestimmen" -#: f.repair.cc:6664 +#: f.repair.cc:6358 msgid "image to set matching color" msgstr "Bild zur Abgleichfarbe festlegen" -#: f.repair.cc:6666 +#: f.repair.cc:6360 msgid "click on image to set matching color" msgstr "Bild anklicken zur Abgleichfarbe festlegen" -#: f.repair.cc:6727 +#: f.repair.cc:6421 msgid "select source image color first" msgstr "Farbe vom Quellbild zuerst wählen" -#: f.repair.cc:6912 +#: f.repair.cc:6606 msgid "Change Color Profile" msgstr "Farbraum umwandeln" -#: f.repair.cc:6916 +#: f.repair.cc:6610 msgid "input profile" msgstr "Input-Farbraum" -#: f.repair.cc:6920 +#: f.repair.cc:6614 msgid "output profile" msgstr "Ausgabe-Farbraum" -#: f.repair.cc:6936 +#: f.repair.cc:6630 msgid "color profile" msgstr "Farbraum" -#: f.repair.cc:6982 f.repair.cc:6988 +#: f.repair.cc:6676 f.repair.cc:6682 #, c-format msgid "unknown cms profile %s" msgstr "CMS Farbraum unbekannt %s" -#: f.repair.cc:7120 f.widgets.cc:499 +#: f.repair.cc:6814 f.widgets.cc:501 msgid "Remove Dust" msgstr "Staub entfernen" -#: f.repair.cc:7124 +#: f.repair.cc:6818 msgid "spot size limit" msgstr "Fleckgrößen Limit" -#: f.repair.cc:7127 +#: f.repair.cc:6821 msgid "max. brightness" msgstr "max. Helligkeit" -#: f.repair.cc:7130 +#: f.repair.cc:6824 msgid "min. contrast" msgstr "Min. Kontrast" -#: f.repair.cc:7904 +#: f.repair.cc:7598 msgid "" " Adjust each RGB color to minimize \n" " color fringes at the image extremes. " @@ -3360,35 +3321,35 @@ " Die RGB-Farben einstellen um die Farbränder \n" " im äußeren Bildbereiche zu minimieren. " -#: f.repair.cc:7927 f.widgets.cc:501 +#: f.repair.cc:7621 f.widgets.cc:503 msgid "Color Fringes" msgstr "Farbsaume" -#: f.repair.cc:8126 f.widgets.cc:502 +#: f.repair.cc:7820 f.widgets.cc:504 msgid "Stuck Pixels" msgstr "Feste Pixels" -#: f.repair.cc:8132 +#: f.repair.cc:7826 msgid "pixel group" msgstr "Pixelgruppe" -#: f.repair.cc:8140 f.repair.cc:8208 +#: f.repair.cc:7834 f.repair.cc:7902 msgid "stuck pixels:" msgstr "Feste Pixels:" -#: f.repair.cc:8236 +#: f.repair.cc:7930 msgid "Load Stuck Pixels" msgstr "Festpixel laden" -#: f.repair.cc:8238 +#: f.repair.cc:7932 msgid "File:" msgstr "Datei:" -#: f.repair.cc:8263 f.repair.cc:8320 +#: f.repair.cc:7957 f.repair.cc:8014 msgid "Stuck Pixels file" msgstr "Festpixel Datei" -#: f.repair.cc:8300 f.tools.cc:3656 +#: f.repair.cc:7994 f.tools.cc:3665 msgid "file format error" msgstr "Dateiformat Fehler" @@ -3418,7 +3379,7 @@ "Indizieren ist für Such- und Karten-Functionen erforderlich \n" "und damit die Gallerieseiten annehmbar schnell sind." -#: f.tools.cc:106 f.widgets.cc:546 +#: f.tools.cc:106 f.widgets.cc:548 msgid "Index Image Files" msgstr "Bilddateien Indizieren" @@ -3517,172 +3478,172 @@ msgid "Image File" msgstr "Bilddatei" -#: f.tools.cc:964 f.widgets.cc:547 +#: f.tools.cc:965 f.widgets.cc:549 msgid "User Options" msgstr "Benutzer Optionen" -#: f.tools.cc:967 +#: f.tools.cc:968 msgid "Startup Display" msgstr "Anfangsanzeige" -#: f.tools.cc:978 +#: f.tools.cc:979 msgid "Menu Style" msgstr "Menu-Stil" -#: f.tools.cc:979 +#: f.tools.cc:980 msgid "Icons" msgstr "Icons" -#: f.tools.cc:980 +#: f.tools.cc:981 msgid "Icons + Text" msgstr "Icons + Texte" -#: f.tools.cc:982 +#: f.tools.cc:983 msgid "Icon size" msgstr "Icon-Größe" #: f.tools.cc:987 +msgid "Window background color" +msgstr "Fenster Hintergrund-Farbe" + +#: f.tools.cc:992 msgid "alphabetic" msgstr "alphabetisch" -#: f.tools.cc:988 +#: f.tools.cc:993 msgid "file mod date" msgstr "Dateiänderungs-Datum" -#: f.tools.cc:989 +#: f.tools.cc:994 msgid "photo date" msgstr "Foto Datum" -#: f.tools.cc:992 +#: f.tools.cc:997 msgid "Dialog font and size" msgstr "Dialog Font und Größe" -#: f.tools.cc:997 +#: f.tools.cc:1002 msgid "Image Pan/scroll:" msgstr "Bild schwenken/scrollen:" -#: f.tools.cc:1000 +#: f.tools.cc:1005 msgid "Zooms for 2x" msgstr "Zooms für 2x" -#: f.tools.cc:1009 +#: f.tools.cc:1014 msgid "JPEG save quality" msgstr "JPEG Qualitätsgrad" -#: f.tools.cc:1016 +#: f.tools.cc:1021 msgid "Curve node capture distance" msgstr "Erfassungsabstand zum Kurvenknoten" -#: f.tools.cc:1020 +#: f.tools.cc:1025 msgid "Map marker size" msgstr "Karten-Punkt grosse" -#: f.tools.cc:1024 +#: f.tools.cc:1029 msgid "show hidden directories in gallery view" msgstr "Versteckten Ordner in Galerie-Ansicht zeigen" -#: f.tools.cc:1027 +#: f.tools.cc:1032 msgid "prev/next shows last file version only" msgstr "Vorig/Nächst zeigt nur neueste Version" -#: f.tools.cc:1030 +#: f.tools.cc:1035 msgid "shift image to right margin" msgstr "Bild zum rechten Rand versetzen" -#: f.tools.cc:1033 -msgid "RAW command" -msgstr "RAW Befehl" - -#: f.tools.cc:1037 +#: f.tools.cc:1038 msgid "RAW file types" msgstr "RAW Dateitypen" -#: f.tools.cc:1128 +#: f.tools.cc:1133 msgid "Delete present thumbnails to make effective" msgstr "Aktuelle Thumbnails löschen um wirksam zu machen" -#: f.tools.cc:1150 +#: f.tools.cc:1155 msgid "Select startup directory" msgstr "Anfangsverzeichnis wählen" -#: f.tools.cc:1157 +#: f.tools.cc:1162 msgid "Select startup image file" msgstr "Anfangsbilddatei wählen" -#: f.tools.cc:1194 +#: f.tools.cc:1199 msgid "startup directory is invalid" msgstr "Anfangsverzeichnes ungültig" -#: f.tools.cc:1205 +#: f.tools.cc:1210 msgid "startup file is invalid" msgstr "Anfangsdatei ungültig" -#: f.tools.cc:1332 f.widgets.cc:548 +#: f.tools.cc:1340 f.widgets.cc:550 msgid "Keyboard Shortcuts" msgstr "Schnelltasten" -#: f.tools.cc:1404 +#: f.tools.cc:1412 msgid "Edit KB Shortcuts" msgstr "Schnelltasten bearbeiten" -#: f.tools.cc:1409 +#: f.tools.cc:1417 msgid "shortcut key:" msgstr "Schnelltaste:" -#: f.tools.cc:1410 +#: f.tools.cc:1418 msgid "(enter key)" msgstr "(Enter-Taste)" -#: f.tools.cc:1536 +#: f.tools.cc:1544 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Reserviert, kann nicht verwendet werden" -#: f.tools.cc:1669 +#: f.tools.cc:1677 msgid "unable to save KB-shortcuts file" msgstr "Kann Schnelltasten-Datei nicht speichern" -#: f.tools.cc:1973 f.widgets.cc:550 +#: f.tools.cc:1981 f.widgets.cc:552 msgid "Grid Lines" msgstr "Gitterlinien" -#: f.tools.cc:1982 +#: f.tools.cc:1990 msgid "x-spacing" msgstr "x-Abstand" -#: f.tools.cc:1983 +#: f.tools.cc:1991 msgid "x-count" msgstr "x-Anzahl" -#: f.tools.cc:1984 +#: f.tools.cc:1992 msgid "x-enable" msgstr "x-aktivieren" -#: f.tools.cc:1990 +#: f.tools.cc:1998 msgid "y-spacing" msgstr "y-Abstand" -#: f.tools.cc:1991 +#: f.tools.cc:1999 msgid "y-count" msgstr "y-Anzahl" -#: f.tools.cc:1992 +#: f.tools.cc:2000 msgid "y-enable" msgstr "y-aktivieren" -#: f.tools.cc:2112 f.tools.cc:2117 f.widgets.cc:551 +#: f.tools.cc:2120 f.tools.cc:2125 f.widgets.cc:553 msgid "Line Color" msgstr "Linienfarbe" -#: f.tools.cc:2114 +#: f.tools.cc:2122 msgid "Area Color" msgstr "Ausschnittfarbe" -#: f.tools.cc:2219 f.widgets.cc:552 +#: f.tools.cc:2227 f.widgets.cc:554 msgid "Show RGB" msgstr "RGB-Werte zeigen" -#: f.tools.cc:2509 +#: f.tools.cc:2518 msgid "" "Drag mouse on image. \n" "Left click to cancel. \n" @@ -3692,27 +3653,27 @@ "Links klicken zum Abbrechen. \n" "Taste X zum Dialog starten/enden." -#: f.tools.cc:2535 f.widgets.cc:553 +#: f.tools.cc:2544 f.widgets.cc:555 msgid "Magnify Image" msgstr "Bild Vergrößern" -#: f.tools.cc:2544 +#: f.tools.cc:2553 msgid "X-size" msgstr "X-Größe" -#: f.tools.cc:2789 +#: f.tools.cc:2798 msgid "Darkest and Brightest Pixels" msgstr "Dunkelste und hellste Pixeln" -#: f.tools.cc:2812 +#: f.tools.cc:2821 msgid "Dark Limit" msgstr "Dunkel Grenzwert" -#: f.tools.cc:2813 +#: f.tools.cc:2822 msgid "Bright Limit" msgstr "Hell Grenzwert" -#: f.tools.cc:2908 +#: f.tools.cc:2917 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3720,43 +3681,43 @@ "Helligkeit soll einen allmählichen Ansteig \n" "zeigen, auch ganz bis zu den Rändern." -#: f.tools.cc:3004 f.widgets.cc:556 +#: f.tools.cc:3013 f.widgets.cc:558 msgid "Monitor Gamma" msgstr "Bildschirm-Gamma" -#: f.tools.cc:3064 +#: f.tools.cc:3073 msgid "Available Translations" msgstr "Vorhandene Übersetzungen" -#: f.tools.cc:3068 +#: f.tools.cc:3077 msgid "Set Language" msgstr "Sprache wechseln" -#: f.tools.cc:3206 f.widgets.cc:559 +#: f.tools.cc:3215 f.widgets.cc:561 msgid "Calibrate Printer" msgstr "Drucker calibrieren" -#: f.tools.cc:3231 +#: f.tools.cc:3240 msgid "print color chart" msgstr "Farbkarte drucken" -#: f.tools.cc:3232 +#: f.tools.cc:3241 msgid "scan and save color chart" msgstr "Farbkarte einscannen und speichern" -#: f.tools.cc:3233 +#: f.tools.cc:3242 msgid "align and trim color chart" msgstr "Farbkarte richten und schneiden" -#: f.tools.cc:3234 +#: f.tools.cc:3243 msgid "open and process color chart" msgstr "Farbkarte öffnen und verarbeiten" -#: f.tools.cc:3235 +#: f.tools.cc:3244 msgid "print image with revised colors" msgstr "Bilddatei mit geänderten Farben drucken" -#: f.tools.cc:3378 +#: f.tools.cc:3387 #, c-format msgid "" "Scan the printed color chart. \n" @@ -3767,7 +3728,7 @@ "Dunkelste Reihe muss oben sein. \n" "Speichern in %s/" -#: f.tools.cc:3393 +#: f.tools.cc:3402 msgid "" "Open and edit the scanned color chart file. \n" "Remove any skew or rotation from scanning. \n" @@ -3779,11 +3740,11 @@ "(Die Perspektive Verbessern Funktion benutzen.) \n" "Die dünnen grünen Ränder GENAU abschneiden." -#: f.tools.cc:3425 +#: f.tools.cc:3434 msgid "Open the trimmed color chart file" msgstr "Geschnittene Farbkartendatei öffnen" -#: f.tools.cc:3558 +#: f.tools.cc:3567 msgid "" "Set the name for the output calibration file \n" "[your calibration name].dat" @@ -3791,19 +3752,19 @@ "Ausgabe-Kalibrierungsdateinamen festsetzen \n" "[deinen Kalibrierungsnamen].dat" -#: f.tools.cc:3598 +#: f.tools.cc:3607 msgid "Color map file to use" msgstr "Farbdatendatei zur Verwendung" -#: f.tools.cc:3615 +#: f.tools.cc:3624 msgid "Select the image file to print." msgstr "Bilddatei zum drucken öffnen." -#: f.tools.cc:3680 +#: f.tools.cc:3689 msgid "converting colors..." msgstr "Farben werden konvertiert ..." -#: f.tools.cc:3780 +#: f.tools.cc:3789 msgid "Image colors are converted for printing." msgstr "Bildfarben für das Drucken sind geändert." @@ -3979,566 +3940,570 @@ msgid "Open a newly added file" msgstr "neu eingefügte Datei öffnen" -#: f.widgets.cc:231 f.widgets.cc:232 +#: f.widgets.cc:231 msgid "Open and edit a camera RAW file" msgstr "RAW-Datei öffnen und bearbeiten" -#: f.widgets.cc:233 +#: f.widgets.cc:232 msgid "Change the image file name" msgstr "Bilddateinamen ändern" -#: f.widgets.cc:234 +#: f.widgets.cc:233 msgid "Copy or Move an image file to a new location" -msgstr "Bilddatei zum neuen Ort kopieren oder versetzen" +msgstr "Bilddatei zum neuen Verzeichnis kopieren oder versetzen" -#: f.widgets.cc:235 +#: f.widgets.cc:234 msgid "Create a blank image" msgstr "Leerbild erstellen" -#: f.widgets.cc:236 +#: f.widgets.cc:235 msgid "Delete or trash image file" msgstr "Bilddatei löschen oder in Abfall schieben" -#: f.widgets.cc:237 +#: f.widgets.cc:236 msgid "Print the current image" msgstr "Aktuelles Bild drucken" -#: f.widgets.cc:238 +#: f.widgets.cc:237 msgid "Print current image with adjusted colors" msgstr "Aktuelle Bilddatei mit angepassten Farben drucken" -#: f.widgets.cc:239 f.widgets.cc:434 +#: f.widgets.cc:238 f.widgets.cc:434 msgid "Quit Fotoxx" msgstr "Fotoxx beenden" -#: f.widgets.cc:242 +#: f.widgets.cc:241 msgid "List a few key metadata items" msgstr "Wichtigste Metadaten auflisten" -#: f.widgets.cc:243 +#: f.widgets.cc:242 msgid "List all metadata items" msgstr "Alle Metadaten auflisten" -#: f.widgets.cc:244 +#: f.widgets.cc:243 msgid "(Toggle) show captions and comments" msgstr "(Knebel) Titel und Kommentare zeigen" -#: f.widgets.cc:245 +#: f.widgets.cc:244 msgid "Edit image tags/geotags/caption/rating ..." msgstr "Bild Tags/Geotags/Titel/Bewertung ... verarbeiten" -#: f.widgets.cc:246 +#: f.widgets.cc:245 msgid "Edit any image metadata" msgstr "Beliebige Bild-Metadaten bearbeiten" -#: f.widgets.cc:247 +#: f.widgets.cc:246 msgid "Remove all metadata from an image" msgstr "Alle Metadaten vom Bild entfernen" -#: f.widgets.cc:248 +#: f.widgets.cc:247 msgid "Add/remove tags for multiple images" msgstr "Tags in mehreren Bilder zuweisen/entfernen" -#: f.widgets.cc:249 +#: f.widgets.cc:248 msgid "Convert tag names for all images" msgstr "Tagnamen convertieren auf alle Bilder" -#: f.widgets.cc:250 +#: f.widgets.cc:249 msgid "Add/change/delete metadata for multiple images" msgstr "Metadata addieren/ändern/löschen auf mehreren Bilder" -#: f.widgets.cc:251 +#: f.widgets.cc:250 msgid "Report metadata for multiple images" msgstr "Metadaten für mehreren Bilder auflisten" -#: f.widgets.cc:252 +#: f.widgets.cc:251 msgid "Add/revise geotags for multiple images" msgstr "Geotags addieren/ändern auf mehreren Bilder" -#: f.widgets.cc:257 +#: f.widgets.cc:256 msgid "Select object or area for editing" msgstr "Ausschnitt zum Bearbeiten auswählen" +#: f.widgets.cc:257 +msgid "Find a gap in an area outline" +msgstr "Lücke in Ausschnitt-Umrandung finden" + #: f.widgets.cc:258 +msgid "Select hairy or irregular edge" +msgstr "Flockigen oder unregelmässigen Rand selektieren" + +#: f.widgets.cc:259 msgid "Show (outline) existing area" msgstr "Aktuellen Ausschnitt zeigen (umranden)" -#: f.widgets.cc:259 +#: f.widgets.cc:260 msgid "Hide existing area" msgstr "Aktuellen Ausschnitt ausblenden" -#: f.widgets.cc:260 +#: f.widgets.cc:261 msgid "Enable area for editing" msgstr "Ausschnitt zum Bearbeiten aktivieren" -#: f.widgets.cc:261 +#: f.widgets.cc:262 msgid "Disable area for editing" msgstr "Ausschnitt ausschalten" -#: f.widgets.cc:262 +#: f.widgets.cc:263 msgid "Reverse existing area" msgstr "Aktuellen Ausschnitt ins Gegenteil verkehren" -#: f.widgets.cc:263 +#: f.widgets.cc:264 msgid "Erase existing area" msgstr "Aktuellen Ausschnitt löschen" -#: f.widgets.cc:264 +#: f.widgets.cc:265 msgid "Copy area for later pasting into image" msgstr "Ausschnitt für späteres Einfügen kopieren" -#: f.widgets.cc:265 -msgid "Paste previously copied area into image" -msgstr "Vorher kopierten Ausschnitt ins Bild einfügen" - #: f.widgets.cc:266 +msgid "Save area to a file with transparency" +msgstr "Auschnitt mit Transparenz in Datei speichern" + +#: f.widgets.cc:267 msgid "Open a file and paste as area into image" msgstr "Datei öffnen und als Auschnitt im Bild zufügen" -#: f.widgets.cc:267 -msgid "Save area to a file with transparency" -msgstr "Auschnitt mit Transparenz in Datei speichern" +#: f.widgets.cc:268 +msgid "Paste previously copied area into image" +msgstr "Vorher kopierten Ausschnitt ins Bild einfügen" -#: f.widgets.cc:270 +#: f.widgets.cc:271 msgid "Trim/Crop margins and/or Rotate" msgstr "Ränder schneiden und/oder Drehen" -#: f.widgets.cc:271 +#: f.widgets.cc:272 msgid "Upright a rotated image" msgstr "Gedrehtes Bild aufrichten" -#: f.widgets.cc:272 f.widgets.cc:273 +#: f.widgets.cc:273 f.widgets.cc:274 msgid "Fast auto enhance that may work OK" msgstr "Schnelle Auto-Verbesserung die klappen könnte" -#: f.widgets.cc:274 +#: f.widgets.cc:275 msgid "Adjust brightness, contrast, color" msgstr "Helligkeit, Kontrast, Farbe einstellen" -#: f.widgets.cc:275 +#: f.widgets.cc:276 msgid "Add local contrast, enhance details" msgstr "Lokalen Kontrast erhöhen, Details hervorheben" -#: f.widgets.cc:276 +#: f.widgets.cc:277 msgid "Edit brightness distribution" msgstr "Helligkeits-Verteilung ändern" -#: f.widgets.cc:277 +#: f.widgets.cc:278 msgid "Flatten zonal brightness distribution" msgstr "Zonal Helligkeitsverteilung ausgleichen" -#: f.widgets.cc:278 +#: f.widgets.cc:279 msgid "Change pixel dimensions" msgstr "Pixelgröße ändern" -#: f.widgets.cc:279 +#: f.widgets.cc:280 msgid "Mirror image horizontally or vertically" msgstr "Bild horizontal oder vertikal spiegeln" -#: f.widgets.cc:280 +#: f.widgets.cc:281 msgid "Write text on image" msgstr "Texte auf Bild schreiben" -#: f.widgets.cc:281 +#: f.widgets.cc:282 msgid "Write lines or arrows on image" msgstr "Linien oder Pfeile am Bild schreiben" -#: f.widgets.cc:282 +#: f.widgets.cc:283 msgid "Fix brightness uniformity across image" msgstr "Helligkeits-Ungleichheiten verbessern" -#: f.widgets.cc:283 +#: f.widgets.cc:284 msgid "Paint edit function gradually with mouse" msgstr "Änderungs-Funktion allmählich mit der Maus anmalen" -#: f.widgets.cc:284 +#: f.widgets.cc:285 msgid "Leverage edits by brightness or color" msgstr "Änderungen verstärken nach Helligkeit oder Farbwert" -#: f.widgets.cc:285 +#: f.widgets.cc:286 msgid "Edit plugins menu or run a plugin function" msgstr "Plugins-Menu editieren oder Plugin-Funktion starten" -#: f.widgets.cc:288 +#: f.widgets.cc:289 msgid "Make the image look sharper" msgstr "Bild schärfer machen" -#: f.widgets.cc:289 +#: f.widgets.cc:290 msgid "Make the image look fuzzy" msgstr "Bild verschwommen machen" -#: f.widgets.cc:290 +#: f.widgets.cc:291 msgid "Filter noise from low-light photos" msgstr "Rausch in unterbelichteten Fotos ausfiltern" -#: f.widgets.cc:291 +#: f.widgets.cc:292 msgid "Remove unwanted objects" msgstr "Unerwünschte Gegenstände entfernen" -#: f.widgets.cc:292 +#: f.widgets.cc:293 msgid "Fix red-eyes from electronic flash" msgstr "Rote Augen von Blitzfotos entfernen" -#: f.widgets.cc:293 +#: f.widgets.cc:294 msgid "Paint image pixels using the mouse" msgstr "Bild-Pixeln mit der Maus anmalen" -#: f.widgets.cc:294 +#: f.widgets.cc:295 msgid "Paint image transparency using the mouse" msgstr "Bild-Transparenz mit der Maus malen" -#: f.widgets.cc:295 +#: f.widgets.cc:296 msgid "Add image transparency based on image attributes" msgstr "Transparenz addieren basierend auf Bildeigenschaften" -#: f.widgets.cc:296 +#: f.widgets.cc:297 msgid "Make BW/color, negative/positive, sepia" msgstr "SW/farbiges Negativ/Positiv, Sepia machen" -#: f.widgets.cc:297 +#: f.widgets.cc:298 msgid "Shift/convert colors into other colors" msgstr "Farben in andere Farben verwandeln" -#: f.widgets.cc:298 +#: f.widgets.cc:299 msgid "Adjust color intensity (saturation)" msgstr "Farbintensität (Sättigung) justieren" -#: f.widgets.cc:299 +#: f.widgets.cc:300 msgid "Adjust color using RGB or CMY colors" msgstr "Farben justieren mit RGB oder CMY Farben" -#: f.widgets.cc:300 +#: f.widgets.cc:301 msgid "Adjust color using HSL colors" msgstr "Farben justieren mit HSL Farben" -#: f.widgets.cc:301 +#: f.widgets.cc:302 msgid "Adjust color in selected image areas" msgstr "Farben in ausgewählten Bereichen einstellen" -#: f.widgets.cc:302 +#: f.widgets.cc:303 msgid "Match colors on one image with another" msgstr "Farben in einem Bild an ein anderes anpassen" -#: f.widgets.cc:303 +#: f.widgets.cc:304 msgid "Convert to another color profile" msgstr "In einen anderen Farbraum umwandeln" -#: f.widgets.cc:304 +#: f.widgets.cc:305 msgid "Remove dust spots from scanned slides" msgstr "Staubflecken von gescannten Dias entfernen" -#: f.widgets.cc:305 +#: f.widgets.cc:306 msgid "Smoothen edges with jaggies" msgstr "Ränder mit Treppeneffekt glätten" -#: f.widgets.cc:306 +#: f.widgets.cc:307 msgid "Reduce Chromatic Abberation" msgstr "Chromatische Aberration reduzieren" -#: f.widgets.cc:307 +#: f.widgets.cc:308 msgid "Erase known hot and dark pixels" msgstr "Bekannte heiße und dunkle Pixeln löschen" -#: f.widgets.cc:310 +#: f.widgets.cc:311 msgid "Remove curvature, esp. panoramas" msgstr "Entkrümmen, besonders bei Panoramen" -#: f.widgets.cc:311 +#: f.widgets.cc:312 msgid "Straighten objects seen from an angle" msgstr "Aus einem Winkel gesehene Objekte gerade machen" -#: f.widgets.cc:312 +#: f.widgets.cc:313 msgid "Distort image areas using the mouse" msgstr "Bild-Ausschnitt mit der Maus krümmen" -#: f.widgets.cc:313 f.widgets.cc:314 f.widgets.cc:315 +#: f.widgets.cc:314 f.widgets.cc:315 f.widgets.cc:316 msgid "Distort the whole image using the mouse" msgstr "Ganzes Bild mit der Maus krümmen" -#: f.widgets.cc:316 +#: f.widgets.cc:317 msgid "Flatten a photographed book page" msgstr "Foto von einer Buchseite flachmachen" -#: f.widgets.cc:317 +#: f.widgets.cc:318 msgid "Make a spherical projection of an image" msgstr "Sphärische Projektion vom Bild erzeugen" -#: f.widgets.cc:318 +#: f.widgets.cc:319 msgid "Rescale image outside selected areas" msgstr "Bild ausserhalb ausgewählter Ausschnitte skalieren" -#: f.widgets.cc:321 +#: f.widgets.cc:322 msgid "Reduce color depth (posterize)" msgstr "Farbtiefe reduzieren (Posterisation)" -#: f.widgets.cc:322 +#: f.widgets.cc:323 msgid "Convert to pencil sketch" msgstr "In eine Stiftzeichnung verwandeln" -#: f.widgets.cc:323 +#: f.widgets.cc:324 msgid "Convert image into a cartoon drawing" msgstr "Bild in ein Cartoon-Zeichnung wandeln" -#: f.widgets.cc:324 +#: f.widgets.cc:325 msgid "Convert to line drawing (edge detection)" msgstr "In eine Stift-Zeichnung verwandeln" -#: f.widgets.cc:325 +#: f.widgets.cc:326 msgid "Convert to solid color drawing" msgstr "In eine Farb-Zeichnung verwandeln" -#: f.widgets.cc:326 +#: f.widgets.cc:327 msgid "Graduated Blur depending on contrast" msgstr "Gestaffelte Verwischung je nach dem Kontrast" -#: f.widgets.cc:327 +#: f.widgets.cc:328 msgid "Create an embossed or 3D appearance" msgstr "In eine Prägung mit 3D Wirkung verwandeln" -#: f.widgets.cc:328 +#: f.widgets.cc:329 msgid "Convert to square tiles" msgstr "In Kacheln verwandeln" -#: f.widgets.cc:329 +#: f.widgets.cc:330 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "In Rasterpunkte verwandeln (Roy Lichtenstein Effekt)" -#: f.widgets.cc:330 +#: f.widgets.cc:331 msgid "Convert into a simulated painting" msgstr "In ein simuliertes Gemälde verwandeln" -#: f.widgets.cc:331 +#: f.widgets.cc:332 msgid "Change brightness or color radially" msgstr "Helligkeit oder Farbwert radial ändern" -#: f.widgets.cc:332 +#: f.widgets.cc:333 msgid "Add texture to an image" msgstr "Textur auf Bild zufügen" -#: f.widgets.cc:333 +#: f.widgets.cc:334 msgid "Tile image with a repeating pattern" msgstr "Bild mit sich wiederholenden Muster fliesen" -#: f.widgets.cc:334 +#: f.widgets.cc:335 msgid "Create a mosaic with tiles made from all images" msgstr "Mosaik mit Kacheln aus allen Bilder erstellen" -#: f.widgets.cc:335 +#: f.widgets.cc:336 msgid "Process an image using a custom kernel" msgstr "Bild mit benutzerspezifischem Kernel bearbeiten" -#: f.widgets.cc:336 +#: f.widgets.cc:337 msgid "Warp an image with a wave pattern" msgstr "Bild mit Wellenmuster verformen" -#: f.widgets.cc:337 +#: f.widgets.cc:338 msgid "Blur an image in the direction of mouse drags" msgstr "Bild verwischen in Maus-Schlepp-Richtung" -#: f.widgets.cc:338 +#: f.widgets.cc:339 msgid "Increasing blur with distance from selected areas" msgstr "Wachsende Unschärfe mit Abstand vom Ausschnitt" -#: f.widgets.cc:341 +#: f.widgets.cc:342 msgid "Combine bright/dark images for better detail" msgstr "Hell- und Dunkel-Bilder kombinieren um Details zu verbessern" -#: f.widgets.cc:342 +#: f.widgets.cc:343 msgid "Combine near/far focus images for deeper focus" msgstr "Bilder mit näher/ferner Fokus kombinieren für mehr Schärfentiefe" -#: f.widgets.cc:343 +#: f.widgets.cc:344 msgid "Combine images to erase passing people, etc." msgstr "Bilder kombinieren um vorbeigehende Menschen, usw. zu entfernen" -#: f.widgets.cc:344 +#: f.widgets.cc:345 msgid "Combine noisy images into a low-noise image" msgstr "Rauschige Bilder zu einem Niedrig-Rausch Bild kombinieren" -#: f.widgets.cc:345 +#: f.widgets.cc:346 msgid "Combine images into a panorama" msgstr "Bilder zu einem Panorama-Bild kombinieren" -#: f.widgets.cc:346 +#: f.widgets.cc:347 msgid "Combine images into a vertical panorama" msgstr "Bilder zu einem Vertikal-Panorama kombinieren" -#: f.widgets.cc:347 +#: f.widgets.cc:348 msgid "Combine images into a panorama (panorama tools)" msgstr "Bilder zu einem Panorama-Bild kombinieren (panorama tools)" -#: f.widgets.cc:348 +#: f.widgets.cc:349 msgid "Arrange images and text in a layout (montage)" msgstr "Bilder und Texte auf Lageplan ordnen (Montage)" -#: f.widgets.cc:351 +#: f.widgets.cc:352 msgid "Index new files and make thumbnails" msgstr "Neue Dateien indizieren und Thumbnails erstellen" -#: f.widgets.cc:352 +#: f.widgets.cc:353 msgid "Change user preferences" msgstr "Benutzereinstellungen ändern" -#: f.widgets.cc:353 +#: f.widgets.cc:354 msgid "Change Keyboard Shortcut Keys" msgstr "Tastatur-Schnelltasten bearbeiten" -#: f.widgets.cc:354 +#: f.widgets.cc:355 msgid "Show a brightness distribution graph" msgstr "Helligkeitsverteilungs-Grafik darstellen" -#: f.widgets.cc:355 +#: f.widgets.cc:356 msgid "Show or revise grid lines" msgstr "Gitterlinien zeigen oder ändern" -#: f.widgets.cc:356 +#: f.widgets.cc:357 msgid "Change color of foreground lines" msgstr "Vordergrund Linienfarbe ändern" -#: f.widgets.cc:357 +#: f.widgets.cc:358 msgid "Show RGB colors at mouse click" msgstr "RGB-Werte auf Maus-klick zeigen" -#: f.widgets.cc:358 +#: f.widgets.cc:359 msgid "Magnify image around the mouse position" msgstr "Bild um Maus-Position herum vergrößern" -#: f.widgets.cc:359 +#: f.widgets.cc:360 msgid "Highlight darkest and brightest pixels" msgstr "Dunkelste und hellste Pixeln hervorheben" -#: f.widgets.cc:360 +#: f.widgets.cc:361 msgid "Chart to adjust monitor color" msgstr "Grafik um Monitor-Farben einzustellen" -#: f.widgets.cc:361 +#: f.widgets.cc:362 msgid "Chart to adjust monitor gamma" msgstr "Grafik um Monitor-Gamma einzustellen" -#: f.widgets.cc:362 +#: f.widgets.cc:363 msgid "Change the GUI language" msgstr "GUI Sprache wechseln" -#: f.widgets.cc:363 +#: f.widgets.cc:364 msgid "Report missing translations" msgstr "Fehlende Übersetzungen auflisten" -#: f.widgets.cc:364 +#: f.widgets.cc:365 msgid "Calibrate printer colors" msgstr "Druckerfarben calibrieren" -#: f.widgets.cc:365 +#: f.widgets.cc:366 msgid "Memory and CPU (to terminal/logfile)" msgstr "Speicher und CPU (zu Terminal/Logdatei)" -#: f.widgets.cc:369 +#: f.widgets.cc:370 msgid "Rename/convert/resize/move multiple files" msgstr "Bilddateien umbenennen/konvertieren/skalieren/versetzen" -#: f.widgets.cc:370 +#: f.widgets.cc:371 msgid "Upright multiple rotated image files" msgstr "Mehrere gedrehte Bilddateien aufrichten" -#: f.widgets.cc:371 +#: f.widgets.cc:372 msgid "Delete or Trash multiple files" msgstr "Mehrere Dateien Löschen oder in Papierkorb" -#: f.widgets.cc:372 -msgid "Convert camera RAW files using DCraw" -msgstr "Mehrere RAW-Dateien konvertieren mit DCraw" - #: f.widgets.cc:373 +msgid "Convert camera RAW files using libraw" +msgstr "Mehrere RAW-Dateien konvertieren mit libraw" + +#: f.widgets.cc:374 msgid "Convert camera RAW files using Raw Therapee" msgstr "Mehrere RAW-Dateien konvertieren mit Raw Therapee" -#: f.widgets.cc:374 +#: f.widgets.cc:375 msgid "Build and run edit script files" msgstr "Bearbeitungs-Skriptdatei bauen und laufen lassen" -#: f.widgets.cc:375 +#: f.widgets.cc:376 msgid "Burn selected image files to DVD/BlueRay disc" msgstr "Gewählte Bilddateien zu DVD/BlueRay Disc brennen" -#: f.widgets.cc:376 +#: f.widgets.cc:377 msgid "Search all image files and report duplicates" msgstr "Alle Bilddateien durchsuchen und Duplikate anzeigen" -#: f.widgets.cc:381 +#: f.widgets.cc:382 msgid "Quick Start mini-guide" msgstr "Schnell-Start Mini-Anweisung" -#: f.widgets.cc:382 +#: f.widgets.cc:383 msgid "Read the user guide" msgstr "Benutzeranleitung lesen" -#: f.widgets.cc:383 +#: f.widgets.cc:384 msgid "Recent user guide changes" msgstr "Neueste Benutzeranleitungs-Änderungen" -#: f.widgets.cc:384 +#: f.widgets.cc:385 msgid "Summary of image edit functions" msgstr "Bildbearbeitungsfunktionen Zusammenfassung" -#: f.widgets.cc:385 +#: f.widgets.cc:386 msgid "Technical installation notes" msgstr "Technische Installierungsnotizen" -#: f.widgets.cc:386 +#: f.widgets.cc:387 msgid "List updates by Fotoxx version" msgstr "Änderungen nach Fotoxxversion auflisten" -#: f.widgets.cc:387 +#: f.widgets.cc:388 msgid "View the log file and error messages" msgstr "Logdatei und Fehlermeldungen auflisten" -#: f.widgets.cc:388 +#: f.widgets.cc:389 msgid "How to do Fotoxx translations" msgstr "Wie eine Fotoxx Übersetzung erstellt wird" -#: f.widgets.cc:389 +#: f.widgets.cc:390 msgid "Show the Fotoxx web page" msgstr "Fotoxx Webseite zeigen" -#: f.widgets.cc:390 +#: f.widgets.cc:391 msgid "Version, license, contact, credits" msgstr "Version, Lizens, Kontakt, Mitwirkende" -#: f.widgets.cc:393 +#: f.widgets.cc:394 msgid "Organize images into albums" msgstr "Bilder in Alben organisieren" -#: f.widgets.cc:394 +#: f.widgets.cc:395 msgid "Start a slide show" msgstr "Dia-Show starten" -#: f.widgets.cc:395 +#: f.widgets.cc:396 msgid "Set desktop wallpaper from current Fotoxx image" msgstr "Bildschirmhintergrund vom aktuellen Fotoxx Bild stellen" -#: f.widgets.cc:396 +#: f.widgets.cc:397 msgid "Cycle desktop wallpaper from a Fotoxx album" msgstr "Hintergrundbilder wechseln von einem Fotoxx Album" -#: f.widgets.cc:419 +#: f.widgets.cc:420 msgid "New Window" msgstr "Neues Fenster" -#: f.widgets.cc:421 +#: f.widgets.cc:422 msgid "Recently Seen Images" msgstr "kürzlich gesehene Bilder" -#: f.widgets.cc:422 +#: f.widgets.cc:423 msgid "Newest Images" msgstr "Neueste Bilder" -#: f.widgets.cc:424 +#: f.widgets.cc:425 msgid "Open Previous File" msgstr "Vorherige Bilddatei öffnen" -#: f.widgets.cc:425 -msgid "Open RAW (ufraw)" -msgstr "RAW öffnen (ufraw)" - #: f.widgets.cc:426 msgid "Open RAW (Raw Therapee)" msgstr "RAW öffnen (Raw Therapee)" @@ -4547,7 +4512,7 @@ msgid "New Blank Image" msgstr "Neues Leerbild" -#: f.widgets.cc:429 f.widgets.cc:727 +#: f.widgets.cc:429 f.widgets.cc:729 msgid "Copy/Move to Location" msgstr "Zum Verzeichnis kopieren oder versetzen" @@ -4563,7 +4528,7 @@ msgid "Print Calibrated Image" msgstr "Kalibrierte Bilddatei drucken" -#: f.widgets.cc:433 f.widgets.cc:585 +#: f.widgets.cc:433 f.widgets.cc:587 msgid "Set Desktop Wallpaper" msgstr "Bildschirmhintergrund stellen" @@ -4579,19 +4544,19 @@ msgid "Show Captions on Image" msgstr "Titel am Bild zeigen" -#: f.widgets.cc:444 f.widgets.cc:575 +#: f.widgets.cc:444 f.widgets.cc:577 msgid "Batch Rename Tags" msgstr "Stapel Tags umbenennen" -#: f.widgets.cc:445 f.widgets.cc:576 +#: f.widgets.cc:445 f.widgets.cc:578 msgid "Batch Add/Change Metadata" msgstr "Metadata addieren/ändern in Stapelfunktion" -#: f.widgets.cc:448 f.widgets.cc:580 f.widgets.cc:658 f.widgets.cc:670 +#: f.widgets.cc:448 f.widgets.cc:582 f.widgets.cc:660 f.widgets.cc:672 msgid "Search Images" msgstr "Bilddatei durchsuchen" -#: f.widgets.cc:449 f.widgets.cc:579 f.widgets.cc:657 f.widgets.cc:669 +#: f.widgets.cc:449 f.widgets.cc:581 f.widgets.cc:659 f.widgets.cc:671 msgid "Images by Geotag" msgstr "Bilder nach Geotag" @@ -4599,359 +4564,359 @@ msgid "Select" msgstr "Auswählen" -#: f.widgets.cc:453 fotoxx.h:1183 +#: f.widgets.cc:453 +msgid "Find Gap" +msgstr "Lücke finden" + +#: f.widgets.cc:454 +msgid "Select Hairy" +msgstr "Flockig selektieren" + +#: f.widgets.cc:455 fotoxx.h:1183 msgid "Show" msgstr "Zeigen" -#: f.widgets.cc:454 fotoxx.h:1136 +#: f.widgets.cc:456 fotoxx.h:1137 msgid "Hide" msgstr "Ausblenden" -#: f.widgets.cc:455 fotoxx.h:1123 +#: f.widgets.cc:457 fotoxx.h:1124 msgid "Enable" msgstr "Aktivieren" -#: f.widgets.cc:456 fotoxx.h:1119 +#: f.widgets.cc:458 fotoxx.h:1120 msgid "Disable" msgstr "Ausschalten" -#: f.widgets.cc:457 fotoxx.h:1139 +#: f.widgets.cc:459 fotoxx.h:1140 msgid "Invert" msgstr "Invertieren" -#: f.widgets.cc:458 fotoxx.h:1197 +#: f.widgets.cc:460 fotoxx.h:1197 msgid "Unselect" msgstr "Deselektieren" -#: f.widgets.cc:459 -msgid "Copy Area" -msgstr "Ausschnitt kopieren" - -#: f.widgets.cc:460 +#: f.widgets.cc:462 msgid "Paste Area" msgstr "Ausschnitt einfügen" -#: f.widgets.cc:461 +#: f.widgets.cc:463 msgid "Open Area File" msgstr "Ausschnitt von Datei lesen" -#: f.widgets.cc:462 -msgid "Save Area File" -msgstr "Ausschnitt in Datei speichern" - -#: f.widgets.cc:467 +#: f.widgets.cc:469 msgid "Voodoo 1" msgstr "Voodoo 1" -#: f.widgets.cc:468 +#: f.widgets.cc:470 msgid "Voodoo 2" msgstr "Voodoo 2" -#: f.widgets.cc:470 f.widgets.cc:741 +#: f.widgets.cc:472 f.widgets.cc:743 msgid "Edit Brightness" msgstr "Helligkeit verarbeiten" -#: f.widgets.cc:471 f.widgets.cc:742 +#: f.widgets.cc:473 f.widgets.cc:744 msgid "Zonal Flatten" msgstr "Zonal Ausgleichen" -#: f.widgets.cc:475 +#: f.widgets.cc:477 msgid "Add Text" msgstr "Texte zufügen" -#: f.widgets.cc:476 +#: f.widgets.cc:478 msgid "Add Lines" msgstr "Linien züfugen" -#: f.widgets.cc:479 +#: f.widgets.cc:481 msgid "Plugins" msgstr "Plugins" -#: f.widgets.cc:484 +#: f.widgets.cc:486 msgid "Denoise" msgstr "Entrauschen" -#: f.widgets.cc:486 +#: f.widgets.cc:488 msgid "Red Eyes" msgstr "Rote Augen" -#: f.widgets.cc:493 +#: f.widgets.cc:495 msgid "Adjust RGB/CMY" msgstr "RGB/CMY justieren" -#: f.widgets.cc:494 +#: f.widgets.cc:496 msgid "Adjust HSL" msgstr "HSL justieren" -#: f.widgets.cc:495 +#: f.widgets.cc:497 msgid "Ramp Brightness" msgstr "Helligkeit rampen" -#: f.widgets.cc:496 +#: f.widgets.cc:498 msgid "Ramp Color" msgstr "Farbe rampen" -#: f.widgets.cc:497 +#: f.widgets.cc:499 msgid "Match Colors" msgstr "Farben anpassen" -#: f.widgets.cc:498 +#: f.widgets.cc:500 msgid "Color Profile" msgstr "Farbraum" -#: f.widgets.cc:500 +#: f.widgets.cc:502 msgid "Anti-Alias" msgstr "Kantenglättung" -#: f.widgets.cc:506 +#: f.widgets.cc:508 msgid "Fix Perspective" msgstr "Perspective verbessern" -#: f.widgets.cc:511 +#: f.widgets.cc:513 msgid "Flatten Book Page" msgstr "Buchseite flachmachen" -#: f.widgets.cc:516 +#: f.widgets.cc:518 msgid "Color Depth" msgstr "Farbtiefe" -#: f.widgets.cc:517 +#: f.widgets.cc:519 msgid "Sketch" msgstr "Skizzieren" -#: f.widgets.cc:518 +#: f.widgets.cc:520 msgid "Cartoon" msgstr "Cartoon" -#: f.widgets.cc:522 +#: f.widgets.cc:524 msgid "Embossing" msgstr "Prägung" -#: f.widgets.cc:524 +#: f.widgets.cc:526 msgid "Dots" msgstr "Rasterpunkte" -#: f.widgets.cc:525 +#: f.widgets.cc:527 msgid "Painting" msgstr "Gemälde" -#: f.widgets.cc:527 +#: f.widgets.cc:529 msgid "Texture" msgstr "Textur" -#: f.widgets.cc:529 +#: f.widgets.cc:531 msgid "Mosaic" msgstr "Mosaik" -#: f.widgets.cc:536 +#: f.widgets.cc:538 msgid "High Dynamic Range" msgstr "Hoher Dynamikbereich" -#: f.widgets.cc:537 +#: f.widgets.cc:539 msgid "High Depth of Field" msgstr "Hohe Schärfentiefe" -#: f.widgets.cc:538 +#: f.widgets.cc:540 msgid "Stack/Paint" msgstr "Stapeln/malen" -#: f.widgets.cc:539 +#: f.widgets.cc:541 msgid "Stack/Noise" msgstr "Stapeln/Rauschen" -#: f.widgets.cc:540 +#: f.widgets.cc:542 msgid "Panorama" msgstr "Panorama" -#: f.widgets.cc:541 +#: f.widgets.cc:543 msgid "Vertical Panorama" msgstr "Vertikales Panorama" -#: f.widgets.cc:542 +#: f.widgets.cc:544 msgid "PT Panorama" msgstr "PT Panorama" -#: f.widgets.cc:543 +#: f.widgets.cc:545 msgid "Mashup" msgstr "Mashup" -#: f.widgets.cc:549 +#: f.widgets.cc:551 msgid "Brightness Graph" msgstr "Helligkeitsverteilung" -#: f.widgets.cc:554 +#: f.widgets.cc:556 msgid "Dark/Bright Pixels" msgstr "Dunkel/hell Pixeln" -#: f.widgets.cc:555 +#: f.widgets.cc:557 msgid "Monitor Color" msgstr "Monitor Farbgrafik" -#: f.widgets.cc:557 +#: f.widgets.cc:559 msgid "Change Language" msgstr "Sprache wechseln" -#: f.widgets.cc:558 +#: f.widgets.cc:560 msgid "Missing Translations" msgstr "Fehlende Übersetzungen" -#: f.widgets.cc:560 +#: f.widgets.cc:562 msgid "Resources" msgstr "Ressourcen" -#: f.widgets.cc:567 -msgid "Batch RAW (DCraw)" -msgstr "Stapel RAW (DCraw)" +#: f.widgets.cc:569 +msgid "Batch RAW" +msgstr "Stapel RAW" -#: f.widgets.cc:568 -msgid "Batch RAW (Raw Therapee)" +#: f.widgets.cc:570 +msgid "Batch Raw Therapee" msgstr "Stapel RAW (Raw Therapee)" -#: f.widgets.cc:569 +#: f.widgets.cc:571 msgid "Script Files" msgstr "Skriptdateien" -#: f.widgets.cc:572 +#: f.widgets.cc:574 msgid "Create File of Image Files" msgstr "Datei von Bilddateien erstellen" -#: f.widgets.cc:586 +#: f.widgets.cc:588 msgid "Cycle Desktop Wallpaper" msgstr "Hintergrundbild Wechselzyklus" -#: f.widgets.cc:603 f.widgets.cc:627 f.widgets.cc:651 f.widgets.cc:665 +#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 msgid "Gallery" msgstr "Bildergalerie" -#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 +#: f.widgets.cc:606 f.widgets.cc:630 f.widgets.cc:654 f.widgets.cc:668 msgid "World Maps" msgstr "Weltkarten" -#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 +#: f.widgets.cc:607 f.widgets.cc:631 f.widgets.cc:655 f.widgets.cc:669 msgid "OSM Maps" msgstr "OSM Karten" -#: f.widgets.cc:607 f.widgets.cc:631 +#: f.widgets.cc:609 f.widgets.cc:633 msgid "Favorites" msgstr "Favoriten" -#: f.widgets.cc:609 fotoxx.h:1177 +#: f.widgets.cc:611 fotoxx.h:1178 msgid "Save" msgstr "Speichern" -#: f.widgets.cc:610 +#: f.widgets.cc:612 msgid "Prev/Next" msgstr "Vorig/Nächst" -#: f.widgets.cc:612 +#: f.widgets.cc:614 msgid "Areas" msgstr "Ausschnitt" -#: f.widgets.cc:613 fotoxx.h:1122 +#: f.widgets.cc:615 fotoxx.h:1123 msgid "Edit" msgstr "Bearbeiten" -#: f.widgets.cc:614 +#: f.widgets.cc:616 msgid "Repair" msgstr "Ausbessern" -#: f.widgets.cc:615 +#: f.widgets.cc:617 msgid "Bend" msgstr "Biegen" -#: f.widgets.cc:616 +#: f.widgets.cc:618 msgid "Effects" msgstr "Effekte" -#: f.widgets.cc:617 +#: f.widgets.cc:619 msgid "Combine" msgstr "Verbund" -#: f.widgets.cc:618 +#: f.widgets.cc:620 msgid "Undo/Redo" msgstr "Undo/Redo" -#: f.widgets.cc:619 +#: f.widgets.cc:621 msgid "Tools" msgstr "Werkzeuge" -#: f.widgets.cc:633 +#: f.widgets.cc:635 msgid "Albums" msgstr "Alben" -#: f.widgets.cc:634 +#: f.widgets.cc:636 msgid "Bookmarks" msgstr "Lesezeichnen" -#: f.widgets.cc:643 +#: f.widgets.cc:645 msgid "Batch" msgstr "Stapel" -#: f.widgets.cc:655 +#: f.widgets.cc:657 msgid "Choose Map" msgstr "Karte wählen" -#: f.widgets.cc:656 +#: f.widgets.cc:658 msgid "Search Range" msgstr "Such-Umfang" -#: f.widgets.cc:676 fotoxx.h:1195 +#: f.widgets.cc:678 fotoxx.h:1195 msgid "Undo" msgstr "Undo" -#: f.widgets.cc:677 fotoxx.h:1168 +#: f.widgets.cc:679 fotoxx.h:1169 msgid "Redo" msgstr "Redo" -#: f.widgets.cc:678 +#: f.widgets.cc:680 msgid "Save File Version" msgstr "Dateiversion speichern" -#: f.widgets.cc:722 +#: f.widgets.cc:724 msgid "Popup Image" msgstr "Pop-up Bild" -#: f.widgets.cc:726 fotoxx.h:1171 +#: f.widgets.cc:728 fotoxx.h:1172 msgid "Rename" msgstr "Umbenennen" -#: f.widgets.cc:728 +#: f.widgets.cc:730 msgid "Copy to Clipboard" msgstr "Auf Zwischenablage kopieren" -#: f.widgets.cc:729 +#: f.widgets.cc:731 msgid "Remove from Album" msgstr "Von Album entfernen" -#: f.widgets.cc:730 +#: f.widgets.cc:732 msgid "Cut to Image Cache" msgstr "zu Bildercache ausschneiden" -#: f.widgets.cc:731 +#: f.widgets.cc:733 msgid "Copy to Image Cache" msgstr "zu Bildercache kopieren" -#: f.widgets.cc:732 +#: f.widgets.cc:734 msgid "Paste Image Cache Here (clear)" msgstr "Bildercache hier einfügen (löschen)" -#: f.widgets.cc:733 +#: f.widgets.cc:735 msgid "Paste Image Cache Here (keep)" msgstr "Bildercache hier einfügen (behalten)" -#: f.widgets.cc:734 +#: f.widgets.cc:736 msgid "Paste Current Image File Here" msgstr "Aktuelle Bilddatei hier einfügen" -#: f.widgets.cc:744 +#: f.widgets.cc:746 msgid "Select Area" msgstr "Ausschnitt auswählen" -#: f.widgets.cc:747 +#: f.widgets.cc:748 msgid "Show on OSM Map" msgstr "An OSM Karte zeigen" -#: f.widgets.cc:748 +#: f.widgets.cc:749 msgid "Delete/Trash" msgstr "Löschen / in Abfall schieben" @@ -4959,59 +4924,59 @@ msgid "Image Locations" msgstr "Bild Orte" -#: fotoxx-16.06.cc:392 +#: fotoxx-16.07.cc:387 msgid "Please install missing programs:" msgstr "Bitte fehlende Programme installieren:" -#: fotoxx-16.06.cc:683 +#: fotoxx-16.07.cc:675 msgid "Kill active dialog?" msgstr "Aktiv Dialog abbrechen?" -#: fotoxx-16.06.cc:764 +#: fotoxx-16.07.cc:756 msgid "(reduced)" msgstr "(verkleinert) " -#: fotoxx-16.06.cc:765 +#: fotoxx-16.07.cc:757 msgid "area active" msgstr "Ausschnitt aktiv" -#: fotoxx-16.06.cc:766 +#: fotoxx-16.07.cc:758 msgid "dialog open" msgstr "Dialog aktiv" -#: fotoxx-16.06.cc:767 +#: fotoxx-16.07.cc:759 msgid "blocked" msgstr "Gesperrt" -#: fotoxx-16.06.cc:818 +#: fotoxx-16.07.cc:810 msgid "edits" msgstr "edits" -#: fotoxx-16.06.cc:2921 +#: fotoxx-16.07.cc:2932 msgid "Exceed 50 anchor points" msgstr "50 Ankerpunkte überschritten" -#: fotoxx-16.06.cc:3141 +#: fotoxx-16.07.cc:3152 msgid "load curve from a file" msgstr "Kurven-Datei öffnen" -#: fotoxx-16.06.cc:3207 +#: fotoxx-16.07.cc:3218 msgid "curve file is invalid" msgstr "Kurvendatei ist ungültig" -#: fotoxx-16.06.cc:3221 +#: fotoxx-16.07.cc:3232 msgid "save curve to a file" msgstr "Kurven-Datei speichern" -#: fotoxx-16.06.cc:3293 +#: fotoxx-16.07.cc:3304 msgid "Too many edits, please save image" msgstr "Zuviele Änderungen, bitte Bild speichern" -#: fotoxx-16.06.cc:3298 +#: fotoxx-16.07.cc:3309 msgid "this function cannot be scripted" msgstr "diese Funktion darf nicht in einer Skriptdatei" -#: fotoxx-16.06.cc:3315 +#: fotoxx-16.07.cc:3326 msgid "" "Select area not active.\n" "Continue?" @@ -5019,27 +4984,27 @@ "Ausschnit nicht aktiviert.\n" "Fortfahren?" -#: fotoxx-16.06.cc:3630 +#: fotoxx-16.07.cc:3641 msgid "file data does not fit dialog" msgstr "Datei stimmt nicht mit dem Dialog überein" -#: fotoxx-16.06.cc:3640 +#: fotoxx-16.07.cc:3651 msgid "Save settings to a file" msgstr "Einstellungen in Datei speichern" -#: fotoxx-16.06.cc:3993 +#: fotoxx-16.07.cc:4004 msgid "This action will discard changes to current image" msgstr "Dieses Vorgehen wird Änderungen im aktuellen Bild verwerfen" -#: fotoxx-16.06.cc:3994 +#: fotoxx-16.07.cc:4005 msgid "prior function still active" msgstr "Vorherige Funktion noch aktiv" -#: fotoxx-16.06.cc:3995 fotoxx.h:1140 +#: fotoxx-16.07.cc:4006 fotoxx.h:1141 msgid "Keep" msgstr "Behalten" -#: fotoxx-16.06.cc:3996 +#: fotoxx-16.07.cc:4007 msgid "Discard" msgstr "Verwerfen" @@ -5075,7 +5040,7 @@ msgid "Blend Width" msgstr "Mischbreite" -#: fotoxx.h:1103 zfuncs.cc:10576 +#: fotoxx.h:1103 zfuncs.cc:10518 msgid "bottom" msgstr "unten" @@ -5104,206 +5069,198 @@ msgstr "Farbe" #: fotoxx.h:1111 +msgid "COMPLETED" +msgstr "FERTIG" + +#: fotoxx.h:1112 msgid "continue" msgstr "fortsetzen" -#: fotoxx.h:1113 +#: fotoxx.h:1114 msgid "Copy" msgstr "Kopieren" -#: fotoxx.h:1114 +#: fotoxx.h:1115 msgid "Create" msgstr "Erstellen" -#: fotoxx.h:1115 +#: fotoxx.h:1116 msgid "Curve File:" msgstr "Kurven-Datei" -#: fotoxx.h:1116 +#: fotoxx.h:1117 msgid "Cut" msgstr "Ausschneiden" -#: fotoxx.h:1117 +#: fotoxx.h:1118 msgid "Deband" msgstr "Entstreifen" -#: fotoxx.h:1118 +#: fotoxx.h:1119 msgid "Delete" msgstr "Löschen" -#: fotoxx.h:1120 +#: fotoxx.h:1121 msgid "Done" msgstr "Fertig" -#: fotoxx.h:1121 +#: fotoxx.h:1122 msgid "edge" msgstr "Rand" -#: fotoxx.h:1124 +#: fotoxx.h:1125 msgid "Erase" msgstr "Löschen" -#: fotoxx.h:1125 +#: fotoxx.h:1126 msgid "Fetch" msgstr "Holen" -#: fotoxx.h:1126 +#: fotoxx.h:1127 msgid "output file already exists" msgstr "Ausgabedatei existiert schon" -#: fotoxx.h:1127 +#: fotoxx.h:1128 #, c-format msgid "%d files selected" msgstr "%d Dateien ausgewählt" -#: fotoxx.h:1128 +#: fotoxx.h:1129 msgid "Find" msgstr "Suchen" -#: fotoxx.h:1129 +#: fotoxx.h:1130 msgid "Finish" msgstr "Fertigstellen" -#: fotoxx.h:1130 -msgid "Flatten" -msgstr "Ausgleichen" - -#: fotoxx.h:1131 +#: fotoxx.h:1132 msgid "Font" msgstr "Font" -#: fotoxx.h:1133 +#: fotoxx.h:1134 msgid "Grid" msgstr "Gitter" -#: fotoxx.h:1134 +#: fotoxx.h:1135 msgid "Height" msgstr "Höhe" -#: fotoxx.h:1137 +#: fotoxx.h:1138 msgid "Images" msgstr "Bilder" -#: fotoxx.h:1138 +#: fotoxx.h:1139 msgid "Insert" msgstr "Einfügen" -#: fotoxx.h:1141 zfuncs.cc:10580 +#: fotoxx.h:1142 zfuncs.cc:10522 msgid "left" msgstr "links" -#: fotoxx.h:1142 +#: fotoxx.h:1143 msgid "limit" msgstr "Limit" -#: fotoxx.h:1143 +#: fotoxx.h:1144 msgid "Load" msgstr "Laden" -#: fotoxx.h:1144 +#: fotoxx.h:1145 msgid "Make" msgstr "Erstellen" -#: fotoxx.h:1146 +#: fotoxx.h:1147 msgid "Map" msgstr "Karte" -#: fotoxx.h:1147 -msgid "Match Level" -msgstr "Übereinstimmung" - -#: fotoxx.h:1148 +#: fotoxx.h:1149 msgid "Max" msgstr "Max" -#: fotoxx.h:1149 +#: fotoxx.h:1150 msgid "Negative" msgstr "Negativ" -#: fotoxx.h:1150 +#: fotoxx.h:1151 msgid "New" msgstr "Neu" -#: fotoxx.h:1151 +#: fotoxx.h:1152 msgid "Next" msgstr "Nächst" -#: fotoxx.h:1152 zfuncs.cc:9658 +#: fotoxx.h:1153 zfuncs.cc:9600 msgid "No" msgstr "Nein" -#: fotoxx.h:1153 +#: fotoxx.h:1154 msgid "no images" msgstr "Keine Bilder" -#: fotoxx.h:1155 +#: fotoxx.h:1156 msgid "no selection" msgstr "Keine Auswahl" -#: fotoxx.h:1156 +#: fotoxx.h:1157 msgid "OK" msgstr "OK" -#: fotoxx.h:1158 +#: fotoxx.h:1159 msgid "Paste" msgstr "Einfügen" -#: fotoxx.h:1159 +#: fotoxx.h:1160 msgid "Pause" msgstr "Unterbrechen" -#: fotoxx.h:1160 +#: fotoxx.h:1161 msgid "Percent" msgstr "Prozent" -#: fotoxx.h:1162 +#: fotoxx.h:1163 msgid "Presets" msgstr "Voreinstellungen" -#: fotoxx.h:1163 +#: fotoxx.h:1164 msgid "Prev" msgstr "Vorig" -#: fotoxx.h:1164 +#: fotoxx.h:1165 msgid "Proceed" msgstr "Weiter" -#: fotoxx.h:1166 +#: fotoxx.h:1167 msgid "range" msgstr "Wertbereich" -#: fotoxx.h:1169 +#: fotoxx.h:1170 msgid "Reduce" msgstr "Vermindern" -#: fotoxx.h:1170 +#: fotoxx.h:1171 msgid "Remove" msgstr "Entfernen" -#: fotoxx.h:1172 +#: fotoxx.h:1173 msgid "Replace" msgstr "Ersetzen" -#: fotoxx.h:1173 +#: fotoxx.h:1174 msgid "Reserved" msgstr "Reserviert" -#: fotoxx.h:1174 +#: fotoxx.h:1175 msgid "Reset" msgstr "Zurücksetzen" -#: fotoxx.h:1175 zfuncs.cc:10584 +#: fotoxx.h:1176 zfuncs.cc:10526 msgid "right" msgstr "rechts" -#: fotoxx.h:1176 +#: fotoxx.h:1177 msgid "Rotate" msgstr "Drehen" -#: fotoxx.h:1178 -msgid "Unknown file type, save as tiff/jpeg/png to edit" -msgstr "Dateityp unbekannt, zum Bearbeiten als tiff/jpeg/png speichern" - #: fotoxx.h:1179 msgid "Search" msgstr "Durchsuchen" @@ -5333,7 +5290,7 @@ msgid "exceed %d files" msgstr "%d Dateien überschritten" -#: fotoxx.h:1189 zfuncs.cc:10572 +#: fotoxx.h:1189 zfuncs.cc:10514 msgid "top" msgstr "oben" @@ -5381,11 +5338,11 @@ msgid "y-offset" msgstr "y-Verschiebung" -#: fotoxx.h:1204 zfuncs.cc:9658 +#: fotoxx.h:1204 zfuncs.cc:9600 msgid "Yes" msgstr "Ja" -#: zfuncs.cc:1687 +#: zfuncs.cc:1693 #, c-format msgid "" "create directory? \n" @@ -5394,234 +5351,77 @@ "Verzeichnis erstellen? \n" " %s" -#: zfuncs.cc:4530 +#: zfuncs.cc:4535 msgid "user guide not found" msgstr "Benutzeranweisung nicht gefunden" -#: zfuncs.cc:5345 +#: zfuncs.cc:5287 #, c-format msgid "cannot open file %s" msgstr "Kann Datei nicht öffnen %s" -#: zfuncs.cc:5381 +#: zfuncs.cc:5323 msgid "save screen to file" msgstr "Bildschirm in Datei speichern" -#: zfuncs.cc:9744 zfuncs.cc:10239 zfuncs.cc:10559 +#: zfuncs.cc:9686 zfuncs.cc:10181 zfuncs.cc:10501 msgid "cancel" msgstr "Abbrechen" -#: zfuncs.cc:10200 +#: zfuncs.cc:10142 msgid "choose file" msgstr "Datei wählen" -#: zfuncs.cc:10205 +#: zfuncs.cc:10147 msgid "choose files" msgstr "Dateien wählen" -#: zfuncs.cc:10210 +#: zfuncs.cc:10152 msgid "save" msgstr "Speichern" -#: zfuncs.cc:10216 +#: zfuncs.cc:10158 msgid "choose folder" msgstr "Verzeichnis wählen" -#: zfuncs.cc:10221 +#: zfuncs.cc:10163 msgid "choose folders" msgstr "Verzeichnise wählen" -#: zfuncs.cc:10226 +#: zfuncs.cc:10168 msgid "create folder" msgstr "Ordner erstellen" -#: zfuncs.cc:10233 +#: zfuncs.cc:10175 msgid "hidden" msgstr "Versteckt" -#: zfuncs.cc:10559 +#: zfuncs.cc:10501 msgid "done" msgstr "fertig" -#: zfuncs.cc:10559 zfuncs.cc:10568 +#: zfuncs.cc:10501 zfuncs.cc:10510 msgid "margins" msgstr "Ränder" -#: zfuncs.cc:10589 +#: zfuncs.cc:10531 msgid "image scale" msgstr "Bildgröße" -#: zfuncs.cc:10591 +#: zfuncs.cc:10533 msgid "percent" msgstr "Prozent" -#: zfuncs.cc:10598 +#: zfuncs.cc:10540 msgid "image" msgstr "Bild" -#: zfuncs.cc:10602 +#: zfuncs.cc:10544 msgid "width" msgstr "Breite" -#: zfuncs.cc:10606 +#: zfuncs.cc:10548 msgid "height" msgstr "Höhe" -#~ msgid "edit geotags (location data)" -#~ msgstr "Geotags (Ort-Daten) verarbeiten" - -#~ msgid "Edit Geotags" -#~ msgstr "Geotags bearbeiten" - -#~ msgid "Geocoding web service courtesy of" -#~ msgstr "Geocodingdienst mit Genehmigung von" - -#~ msgid "case-sensitive match" -#~ msgstr "Groß/Kleinschrift vergleichen" - -#~ msgid "other criteria" -#~ msgstr "Andere Auswahlkriterien" - -#~ msgid "Add Geotags Search Criteria" -#~ msgstr "Geotags Suchkriterien addieren" - -#~ msgid "range (km)" -#~ msgstr "Entfernung (km)" - -#~ msgid "error in latitude/longitude/range" -#~ msgstr "Fehler in Längengrad/Breitengrad/Entfernung" - -#~ msgid "search will use only latitude/longitude" -#~ msgstr "Suche wird nur Breitengrad/Längengrad verwenden" - -#~ msgid "Geotags" -#~ msgstr "Geotags" - -#~ msgid "recent" -#~ msgstr "kürzlich" - -#~ msgid "newest" -#~ msgstr "neueste" - -#~ msgid "Intensity" -#~ msgstr "Intensität" - -#~ msgid "Voodoo Enhance" -#~ msgstr "Voodoo Verbesserung" - -#~ msgid "Move to Location" -#~ msgstr "Zum Verzeichnis versetzen" - -#~ msgid "Copy to Location" -#~ msgstr "Zum Verzeichnis kopieren" - -#~ msgid "Show Brightness Dist." -#~ msgstr "Helligkeitsvert. zeigen" - -#~ msgid "Brightness Ramp" -#~ msgstr "Helligkeit rampen" - -#~ msgid "Brightness Dist." -#~ msgstr "Helligkeitsverteilung" - -#~ msgid "Delete Image File" -#~ msgstr "Bilddatei löschen" - -#~ msgid "Adjust brightness distribution" -#~ msgstr "Helligkeits-Verteilung justieren" - -#~ msgid "Edit image location and geotags" -#~ msgstr "Bild Ort und Geotag verarbeiten" - -#~ msgid "Edit image tags/caption/rating ..." -#~ msgstr "Bild Tags, Titel, Bewertung ... verarbeiten" - -#~ msgid "Permanently delete image file" -#~ msgstr "Bilddatei unwiederbringlich löschen" - -#~ msgid "Move image file to Trash" -#~ msgstr "Bilddatei in den Abfall schieben" - -#~ msgid "File: Open, RAW, Rename, Trash, Print" -#~ msgstr "Datei: Öffnen, RAW, Umbenennen, Papierkorb, Drucken" - -#~ msgid "Image color to match and adjust:" -#~ msgstr "Bildfarbe zum Angleichen und Einstellen" - -#~ msgid "" -#~ "Undo memory limit has been reached. \n" -#~ "Save work with [done], then resume painting." -#~ msgstr "" -#~ "Undo Speicherkapazität erreicht. \n" -#~ "Arbeit mit [fertig] sichern, dann Fortfahren." - -#~ msgid "Undo Memory %d%c" -#~ msgstr "Undo-Speicher %d%c" - -#~ msgid "Delete Image File - CANNOT BE REVERSED" -#~ msgstr "Bilddatei löschen - NICHT UMKEHRBAR" - -#~ msgid "Move read-only file to trash?" -#~ msgstr "Schreibgeschützte Datei in den Abfall?" - -#~ msgid "Cannot create trash folder: %s" -#~ msgstr "Kann Abfallkorb nicht erstellen: %s" - -#~ msgid "" -#~ "Linux and Desktop trash do not work. \n" -#~ "Permanently delete the image file?" -#~ msgstr "" -#~ "Linux und Desktop Abfall funktionieren nicht. \n" -#~ "Bilddatei permanent löschen?" - -#~ msgid "" -#~ "Linux standard trash does not work. \n" -#~ "Desktop trash folder will be created." -#~ msgstr "" -#~ "Linux Standard-Abfall funktioniert nicht. \n" -#~ "Desktop Abfall-Ordner wird erstellt." - -#~ msgid "(automatic step to next image)" -#~ msgstr "(automatisch zum nächsten Bild)" - -#~ msgid "Trash Image File" -#~ msgstr "Bilddatei in den Abfall" - -#~ msgid "new location" -#~ msgstr "Neue Speicherstelle" - -#~ msgid "Move Image File" -#~ msgstr "Bilddatei versetzen" - -#~ msgid "Copy Image File" -#~ msgstr "Bilddatei kopieren" - -#~ msgid "auto-trim" -#~ msgstr "Autoschnitt" - -#~ msgid "curved" -#~ msgstr "kurvig" - -#~ msgid "linear" -#~ msgstr "linear" - -#~ msgid "" -#~ "Click one time inside each enclosed area \n" -#~ "(possible gaps in the outline will be found). \n" -#~ "Press F1 for help." -#~ msgstr "" -#~ "Jeden umschlossenen Ausschnitt einmal innen anklicken \n" -#~ "(mögliche Lücken im Rand werden gefunden). \n" -#~ "Für Hilfe F1 drücken." - -#~ msgid "firewall" -#~ msgstr "Brandmauer" - -#~ msgid "select all matching colors within mouse" -#~ msgstr "Alle übereinstimmenden Farben in Maus selektieren" - -#~ msgid "select one matching color within mouse" -#~ msgstr "Eine übereinstimmende Farbe in Maus selektieren" -#~ msgid "select area within mouse" -#~ msgstr "Ausschnitt innerhalb Maus selektieren" diff -Nru fotoxx-16.06/locales/translate-en.po fotoxx-16.07/locales/translate-en.po --- fotoxx-16.06/locales/translate-en.po 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/locales/translate-en.po 2016-07-01 10:19:38.000000000 +0000 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: home 2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-31 15:14+0200\n" +"POT-Creation-Date: 2016-06-29 15:55+0200\n" "PO-Revision-Date: 2011-01-01 11:29+0100\n" "Last-Translator: mico \n" "Language-Team: English\n" @@ -19,7 +19,7 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: f.albums.cc:87 +#: f.albums.cc:93 msgid "" "Right-click album thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -27,252 +27,252 @@ "Right-click album thumbnail to cut/copy \n" "to cache, insert from cache, or remove." -#: f.albums.cc:89 +#: f.albums.cc:95 msgid "Drag album thumbnail to new position." msgstr "Drag album thumbnail to new position." -#: f.albums.cc:118 f.widgets.cc:583 +#: f.albums.cc:124 f.widgets.cc:585 msgid "Manage Albums" msgstr "Manage Albums" -#: f.albums.cc:129 f.albums.cc:266 +#: f.albums.cc:136 f.albums.cc:273 msgid "Create or replace an album" msgstr "Create or replace an album" -#: f.albums.cc:131 +#: f.albums.cc:138 msgid "Album to view or edit" msgstr "Album to view or edit" -#: f.albums.cc:133 +#: f.albums.cc:140 msgid "Select images, add to cache" msgstr "Select images, add to cache" -#: f.albums.cc:135 +#: f.albums.cc:142 msgid "Clear image cache" msgstr "Clear image cache" -#: f.albums.cc:137 f.albums.cc:159 +#: f.albums.cc:144 f.albums.cc:164 msgid "Delete an album" msgstr "Delete an album" -#: f.albums.cc:158 +#: f.albums.cc:163 msgid "Choose Album" msgstr "Choose Album" -#: f.albums.cc:160 +#: f.albums.cc:165 #, c-format msgid "Image cache has %d images" msgstr "Image cache has %d images" -#: f.albums.cc:161 +#: f.albums.cc:166 msgid "cache added to empty album" msgstr "cache added to empty album" -#: f.albums.cc:215 +#: f.albums.cc:220 #, c-format msgid "delete %s ?" msgstr "delete %s ?" -#: f.albums.cc:250 +#: f.albums.cc:257 #, c-format msgid "fill from image cache (%d images)" msgstr "fill from image cache (%d images)" -#: f.albums.cc:268 f.albums.cc:305 +#: f.albums.cc:275 f.albums.cc:312 msgid "Album Name" msgstr "Album Name" -#: f.albums.cc:274 +#: f.albums.cc:281 msgid "make an initially empty album" msgstr "make an initially empty album" -#: f.albums.cc:276 +#: f.albums.cc:283 msgid "fill from current gallery" msgstr "fill from current gallery" -#: f.albums.cc:319 +#: f.albums.cc:326 msgid "enter an album name" msgstr "enter an album name" -#: f.albums.cc:346 +#: f.albums.cc:353 msgid "gallery is empty" msgstr "gallery is empty" -#: f.albums.cc:373 +#: f.albums.cc:380 msgid "new album created" msgstr "new album created" -#: f.albums.cc:1157 +#: f.albums.cc:1211 msgid "instant" msgstr "instant" -#: f.albums.cc:1158 +#: f.albums.cc:1212 msgid "fade-in" msgstr "fade-in" -#: f.albums.cc:1159 +#: f.albums.cc:1213 msgid "roll-right" msgstr "roll-right" -#: f.albums.cc:1160 +#: f.albums.cc:1214 msgid "roll-down" msgstr "roll-down" -#: f.albums.cc:1161 +#: f.albums.cc:1215 msgid "venetian" msgstr "venetian" -#: f.albums.cc:1162 +#: f.albums.cc:1216 msgid "grate" msgstr "grate" -#: f.albums.cc:1163 +#: f.albums.cc:1217 msgid "rectangle" msgstr "rectangle" -#: f.albums.cc:1164 +#: f.albums.cc:1218 msgid "implode" msgstr "implode" -#: f.albums.cc:1165 +#: f.albums.cc:1219 msgid "explode" msgstr "explode" -#: f.albums.cc:1166 +#: f.albums.cc:1220 msgid "radar" msgstr "radar" -#: f.albums.cc:1167 +#: f.albums.cc:1221 msgid "spiral" msgstr "spiral" -#: f.albums.cc:1168 +#: f.albums.cc:1222 msgid "Japanese-fan" msgstr "Japanese-fan" -#: f.albums.cc:1169 +#: f.albums.cc:1223 msgid "jaws" msgstr "jaws" -#: f.albums.cc:1170 +#: f.albums.cc:1224 msgid "ellipse" msgstr "ellipse" -#: f.albums.cc:1171 +#: f.albums.cc:1225 msgid "raindrops" msgstr "raindrops" -#: f.albums.cc:1172 +#: f.albums.cc:1226 msgid "doubledoor" msgstr "doubledoor" -#: f.albums.cc:1173 +#: f.albums.cc:1227 msgid "rotate" msgstr "rotate" -#: f.albums.cc:1174 +#: f.albums.cc:1228 msgid "fallover" msgstr "fallover" -#: f.albums.cc:1175 +#: f.albums.cc:1229 msgid "spheroid" msgstr "sphereoid" -#: f.albums.cc:1176 +#: f.albums.cc:1230 msgid "turn-page" msgstr "turn-page" -#: f.albums.cc:1177 +#: f.albums.cc:1231 msgid "french-door" msgstr "french-door" -#: f.albums.cc:1197 f.widgets.cc:584 +#: f.albums.cc:1251 f.widgets.cc:586 msgid "Slide Show" msgstr "Slide Show" -#: f.albums.cc:1208 +#: f.albums.cc:1262 msgid "Clip Limit" msgstr "Clip Limit" -#: f.albums.cc:1212 +#: f.albums.cc:1266 msgid "Music File" msgstr "Music File" -#: f.albums.cc:1217 +#: f.albums.cc:1271 msgid "Full Screen" msgstr "Full Screen" -#: f.albums.cc:1218 +#: f.albums.cc:1272 msgid "Auto-replay" msgstr "Auto-replay" -#: f.albums.cc:1219 +#: f.albums.cc:1273 msgid "KB functions" msgstr "KB functions" -#: f.albums.cc:1222 +#: f.albums.cc:1276 msgid "Customize:" msgstr "Customize:" -#: f.albums.cc:1223 +#: f.albums.cc:1277 msgid "transitions" msgstr "transitions" -#: f.albums.cc:1224 +#: f.albums.cc:1278 msgid "image files" msgstr "image files" -#: f.albums.cc:1229 f.albums.cc:1356 +#: f.albums.cc:1283 f.albums.cc:1410 #, c-format msgid "%d images" msgstr "%d images" -#: f.albums.cc:1251 f.albums.cc:1326 f.albums.cc:1422 f.albums.cc:1661 -#: f.albums.cc:1946 f.albums.cc:1963 f.albums.cc:2177 +#: f.albums.cc:1305 f.albums.cc:1380 f.albums.cc:1476 f.albums.cc:1715 +#: f.albums.cc:2000 f.albums.cc:2017 f.albums.cc:2231 msgid "invalid album" msgstr "invalid album" -#: f.albums.cc:1340 +#: f.albums.cc:1394 msgid "open album" msgstr "open album" -#: f.albums.cc:1372 +#: f.albums.cc:1426 msgid "Select music file" msgstr "Select music file" -#: f.albums.cc:1401 +#: f.albums.cc:1455 msgid "select random (if 2+ enabled)" msgstr "select random (if 2+ enabled)" -#: f.albums.cc:1426 +#: f.albums.cc:1480 msgid "Transition Preferences" msgstr "Transition Preferences" -#: f.albums.cc:1429 f.edit.cc:2008 +#: f.albums.cc:1483 f.edit.cc:2008 msgid "Settings File" msgstr "Settings File" -#: f.albums.cc:1439 +#: f.albums.cc:1493 msgid "transition" msgstr "transition" -#: f.albums.cc:1440 +#: f.albums.cc:1494 msgid "enabled" msgstr "enabled" -#: f.albums.cc:1441 +#: f.albums.cc:1495 msgid "slowdown" msgstr "slowdown" -#: f.albums.cc:1442 +#: f.albums.cc:1496 msgid "preference" msgstr "preference" -#: f.albums.cc:1517 f.albums.cc:1556 +#: f.albums.cc:1571 f.albums.cc:1610 msgid "invalid file" msgstr "invalid file" -#: f.albums.cc:1610 f.albums.cc:2162 +#: f.albums.cc:1664 f.albums.cc:2216 #, c-format msgid "" "file format error: \n" @@ -281,84 +281,84 @@ "file format error: \n" " %s" -#: f.albums.cc:1667 +#: f.albums.cc:1721 msgid "Image Preferences" msgstr "Image Preferences" -#: f.albums.cc:1671 f.edit.cc:1338 f.file.cc:1166 f.file.cc:1427 f.meta.cc:617 -#: f.meta.cc:1414 +#: f.albums.cc:1725 f.edit.cc:1338 f.file.cc:1091 f.file.cc:1352 f.meta.cc:617 +#: f.meta.cc:1412 msgid "Image File:" msgstr "Image File:" -#: f.albums.cc:1675 +#: f.albums.cc:1729 msgid "Play tone when image shows" msgstr "Play tone when image shows" -#: f.albums.cc:1678 +#: f.albums.cc:1732 msgid "Show image caption" msgstr "Show image caption" -#: f.albums.cc:1683 +#: f.albums.cc:1737 msgid "Show image comments" msgstr "Show image comments" -#: f.albums.cc:1688 +#: f.albums.cc:1742 msgid "Wait before zoom" msgstr "Wait before zoom" -#: f.albums.cc:1693 +#: f.albums.cc:1747 msgid "Zoom type:" msgstr "Zoom type:" -#: f.albums.cc:1694 +#: f.albums.cc:1748 msgid "none" msgstr "none" -#: f.albums.cc:1695 +#: f.albums.cc:1749 msgid "zoom-in" msgstr "zoom-in" -#: f.albums.cc:1696 +#: f.albums.cc:1750 msgid "zoom-out" msgstr "zoom-out" -#: f.albums.cc:1699 +#: f.albums.cc:1753 msgid "Zoom size (x)" msgstr "Zoom size (x)" -#: f.albums.cc:1702 +#: f.albums.cc:1756 msgid "Steps" msgstr "Steps" -#: f.albums.cc:1706 +#: f.albums.cc:1760 msgid "Zoom Center" msgstr "Zoom Center" -#: f.albums.cc:1710 +#: f.albums.cc:1764 msgid "Wait after zoom" msgstr "Wait after zoom" -#: f.albums.cc:1715 +#: f.albums.cc:1769 msgid "Transition to next image" msgstr "Transition to next image" -#: f.albums.cc:1718 f.albums.cc:1821 +#: f.albums.cc:1772 f.albums.cc:1875 msgid "next" msgstr "next" -#: f.albums.cc:1811 +#: f.albums.cc:1865 msgid "click on thumbnail to set zoom center" msgstr "click on thumbnail to set zoom center" -#: f.area.cc:81 +#: f.area.cc:82 msgid "Select Area for Edits" msgstr "Select Area for Edits" -#: f.area.cc:82 f.edit.cc:5919 +#: f.area.cc:83 f.edit.cc:5919 msgid "Press F1 for help" msgstr "Press F1 for help" -#: f.area.cc:91 +#: f.area.cc:92 msgid "" "Select Area not supported \n" "by this edit function" @@ -366,35 +366,35 @@ "Select Area not supported \n" "by this edit function" -#: f.area.cc:121 +#: f.area.cc:122 msgid "select rectangle" msgstr "select rectangle" -#: f.area.cc:122 +#: f.area.cc:123 msgid "select ellipse" msgstr "select ellipse" -#: f.area.cc:125 +#: f.area.cc:126 msgid "freehand draw" msgstr "freehand draw" -#: f.area.cc:126 +#: f.area.cc:127 msgid "follow edge" msgstr "follow edge" -#: f.area.cc:127 +#: f.area.cc:128 msgid "draw/replace" msgstr "draw/replace" -#: f.area.cc:130 +#: f.area.cc:131 msgid "select area within mouse circle" msgstr "select area within mouse circle" -#: f.area.cc:133 +#: f.area.cc:134 msgid "select one matching color within mouse circle:" msgstr "select one matching color within mouse circle:" -#: f.area.cc:135 +#: f.area.cc:136 msgid "" "first select the checkbox, then \n" "shift+click on image to set the color" @@ -402,116 +402,156 @@ "first select the checkbox, then \n" "shift+click on image to set the color" -#: f.area.cc:139 +#: f.area.cc:140 msgid "select all matching colors within mouse circle" msgstr "select all matching colors within mouse circle" -#: f.area.cc:143 f.edit.cc:5961 +#: f.area.cc:144 f.edit.cc:5961 msgid "mouse radius" msgstr "mouse radius" -#: f.area.cc:146 +#: f.area.cc:147 msgid "match level %" msgstr "match level %" -#: f.area.cc:151 +#: f.area.cc:152 msgid "search range" msgstr "search range" -#: f.area.cc:155 +#: f.area.cc:156 msgid "Area Edge Blend Width" msgstr "Area Edge Blend Width" -#: f.area.cc:158 +#: f.area.cc:159 msgid "Edge Creep" msgstr "Edge Creep" -#: f.area.cc:163 +#: f.area.cc:164 msgid "Line Color:" msgstr "Line Color:" -#: f.area.cc:183 f.area.cc:184 +#: f.area.cc:184 f.area.cc:185 msgid "area edits fade away within edge distance" msgstr "area edits fade away within edge distance" -#: f.area.cc:356 f.area.cc:539 +#: f.area.cc:357 f.area.cc:540 #, c-format msgid "exceed %d edits" msgstr "exceed %d edits" -#: f.area.cc:1361 +#: f.area.cc:1358 f.area.cc:1668 msgid "" -"Click one time inside each enclosed area \n" -"(possible gaps in the outline will be found). \n" -"Press [Done] when finished. Press F1 for help." +"Click one time inside each enclosed area. \n" +"Possible gaps in the outline will be found. \n" +"Press F1 for help." msgstr "" -"Click one time inside each enclosed area \n" -"(possible gaps in the outline will be found). \n" -"Press [Done] when finished. Press F1 for help." +"Click one time inside each enclosed area. \n" +"Possible gaps in the outline will be found. \n" +"Press F1 for help." -#: f.area.cc:1389 +#: f.area.cc:1385 msgid "finish area" msgstr "finish area" -#: f.area.cc:1397 -msgid "extend to corner:" -msgstr "extend to corner:" - -#: f.area.cc:1438 -msgid "searching" -msgstr "searching" +#: f.area.cc:1411 f.area.cc:1563 +#, c-format +msgid "found %d pixels" +msgstr "found %d pixels" + +#: f.area.cc:1693 +msgid "find outline gap" +msgstr "find outline gap" + +#: f.area.cc:1775 +msgid "cannot find area outline" +msgstr "cannot find area outline" -#: f.area.cc:1469 +#: f.area.cc:1846 msgid "outline has a gap" msgstr "outline has a gap" -#: f.area.cc:1473 -msgid "success" -msgstr "success" - -#: f.area.cc:1618 f.area.cc:1645 -#, c-format -msgid "found %d pixels" -msgstr "found %d pixels" +#: f.area.cc:1881 +msgid "Select Hairy Edge" +msgstr "Select Hairy Edge" + +#: f.area.cc:1882 +msgid "" +"Click on colors to match. \n" +"Drag along edge to select. \n" +"Adjust match level as needed. \n" +"Copy or Save area when done." +msgstr "" +"Click on colors to match. \n" +"Drag along edge to select. \n" +"Adjust match level as needed. \n" +"Copy or Save area when done." + +#: f.area.cc:1893 +msgid "select the area first" +msgstr "select the area first" -#: f.area.cc:1940 f.area.cc:1957 f.area.cc:1977 f.area.cc:2301 f.area.cc:2378 -#: f.area.cc:2484 +#: f.area.cc:1898 f.area.cc:2365 f.area.cc:2382 f.area.cc:2402 f.area.cc:2726 +#: f.area.cc:2815 msgid "the area is not finished" msgstr "the area is not finished" -#: f.area.cc:2066 +#: f.area.cc:1944 +msgid "Mouse Radius" +msgstr "Mouse Radius" + +#: f.area.cc:1949 fotoxx.h:1148 +msgid "Match Level" +msgstr "Match Level" + +#: f.area.cc:1950 +msgid "select" +msgstr "select" + +#: f.area.cc:1951 +msgid "deselect" +msgstr "deselect" + +#: f.area.cc:2491 msgid "Edge calculation in progress" msgstr "Edge calculation in progress" -#: f.area.cc:2075 +#: f.area.cc:2500 msgid "Area Edge Calc" msgstr "Area Edge Calc" -#: f.area.cc:2519 +#: f.area.cc:2801 f.area.cc:2850 f.widgets.cc:461 +msgid "Copy Area" +msgstr "Copy Area" + +#: f.area.cc:2804 f.widgets.cc:464 +msgid "Save Area File" +msgstr "Save Area File" + +#: f.area.cc:2856 msgid "save area as a PNG file" msgstr "save area as a PNG file" -#: f.area.cc:2551 +#: f.area.cc:2888 msgid "load area from a file" msgstr "load area from a file" -#: f.area.cc:2594 +#: f.area.cc:2980 msgid "position with mouse click/drag" msgstr "position with mouse click/drag" -#: f.area.cc:2634 +#: f.area.cc:3026 msgid "Paste Image" msgstr "Paste Image" -#: f.area.cc:2639 f.batch.cc:1360 f.batch.cc:1847 +#: f.area.cc:3031 f.batch.cc:1347 f.batch.cc:1654 msgid "resize" msgstr "resize" -#: f.batch.cc:126 f.widgets.cc:564 +#: f.batch.cc:126 f.widgets.cc:566 msgid "Batch Convert" msgstr "Batch Convert" -#: f.batch.cc:133 f.file.cc:940 +#: f.batch.cc:133 f.file.cc:866 msgid "New Name" msgstr "New Name" @@ -535,7 +575,7 @@ msgid "New File Type" msgstr "New File Type" -#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4389 +#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4083 msgid "no change" msgstr "no change" @@ -551,13 +591,13 @@ msgid "Copy Metadata" msgstr "Copy Metadata" -#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:466 -#: f.widgets.cc:737 +#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:468 +#: f.widgets.cc:739 msgid "Upright" msgstr "Upright" -#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1369 f.batch.cc:1856 -#: f.repair.cc:125 f.widgets.cc:482 +#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1356 f.batch.cc:1663 +#: f.repair.cc:125 f.widgets.cc:484 msgid "Sharpen" msgstr "Sharpen" @@ -589,7 +629,7 @@ msgid "updating albums ..." msgstr "updating albums ..." -#: f.batch.cc:591 f.batch.cc:1642 f.batch.cc:2044 f.file.cc:1217 +#: f.batch.cc:591 f.batch.cc:1522 f.batch.cc:1851 f.file.cc:1142 msgid "Select directory" msgstr "Select directory" @@ -649,7 +689,7 @@ msgid "PROCEED?" msgstr "PROCEED?" -#: f.batch.cc:907 f.widgets.cc:565 +#: f.batch.cc:907 f.widgets.cc:567 msgid "Batch Upright" msgstr "Batch Upright" @@ -665,7 +705,7 @@ msgid "cannot select both options" msgstr "cannot select both options" -#: f.batch.cc:1130 f.widgets.cc:566 +#: f.batch.cc:1130 f.widgets.cc:568 msgid "Batch Delete/Trash" msgstr "Batch Delete/Trash" @@ -677,140 +717,100 @@ msgid "trash" msgstr "trash" -#: f.batch.cc:1302 -msgid "Batch Convert RAW Files (DCraw)" -msgstr "Batch Convert RAW Files (DCraw)" - -#: f.batch.cc:1312 -msgid "DCraw not installed" -msgstr "DCraw not installed" +#: f.batch.cc:1301 +msgid "Batch Convert RAW Files" +msgstr "Batch Convert RAW Files" -#: f.batch.cc:1347 f.batch.cc:1834 +#: f.batch.cc:1334 f.batch.cc:1641 msgid "output location" msgstr "output location" -#: f.batch.cc:1352 f.batch.cc:1839 +#: f.batch.cc:1339 f.batch.cc:1646 msgid "output file type" msgstr "output file type" -#: f.batch.cc:1371 f.batch.cc:1858 +#: f.batch.cc:1358 f.batch.cc:1665 msgid "amount" msgstr "amount" -#: f.batch.cc:1374 f.batch.cc:1861 +#: f.batch.cc:1361 f.batch.cc:1668 msgid "threshold" msgstr "threshold" -#: f.batch.cc:1383 -msgid "white balance" -msgstr "white balance" - -#: f.batch.cc:1384 -msgid "interpolation" -msgstr "interpolation" - -#: f.batch.cc:1385 -msgid "color space" -msgstr "color space" - -#: f.batch.cc:1386 -msgid "gamma curve" -msgstr "gamma curve" - -#: f.batch.cc:1389 -msgid "camera" -msgstr "camera" - -#: f.batch.cc:1390 -msgid "fixed" -msgstr "fixed" - -#: f.batch.cc:1391 -msgid "calculated" -msgstr "calculated" - -#: f.batch.cc:1408 -msgid "default" -msgstr "default" - -#: f.batch.cc:1414 -msgid "defaults" -msgstr "defaults" - -#: f.batch.cc:1796 +#: f.batch.cc:1603 msgid "Batch Convert RAW Files (Raw Therapee)" msgstr "Batch Convert RAW Files (Raw Therapee)" -#: f.batch.cc:1806 f.file.cc:426 +#: f.batch.cc:1613 f.file.cc:352 msgid "Raw Therapee not installed" msgstr "Raw Therapee not installed" -#: f.batch.cc:2141 +#: f.batch.cc:1948 msgid "start" msgstr "start" -#: f.batch.cc:2142 +#: f.batch.cc:1949 msgid "begin making a script file" msgstr "begin making a script file" -#: f.batch.cc:2144 +#: f.batch.cc:1951 msgid "close" msgstr "close" -#: f.batch.cc:2145 +#: f.batch.cc:1952 msgid "finish making a script file" msgstr "finish making a script file" -#: f.batch.cc:2147 +#: f.batch.cc:1954 msgid "run" msgstr "run" -#: f.batch.cc:2148 +#: f.batch.cc:1955 msgid "execute a script file" msgstr "execute a script file" -#: f.batch.cc:2202 +#: f.batch.cc:2009 msgid "script already started" msgstr "script already started" -#: f.batch.cc:2206 +#: f.batch.cc:2013 msgid "open new script file" msgstr "open new script file" -#: f.batch.cc:2238 +#: f.batch.cc:2045 msgid "script file error" msgstr "script file error" -#: f.batch.cc:2243 +#: f.batch.cc:2050 #, c-format msgid "%s added to script" msgstr "%s added to script" -#: f.batch.cc:2256 +#: f.batch.cc:2063 msgid "no script file was started" msgstr "no script file was started" -#: f.batch.cc:2264 +#: f.batch.cc:2071 msgid "script file closed" msgstr "script file closed" -#: f.batch.cc:2283 +#: f.batch.cc:2090 msgid "script file is not closed" msgstr "script file is not closed" -#: f.batch.cc:2287 +#: f.batch.cc:2094 msgid "select script file to run" msgstr "select script file to run" -#: f.batch.cc:2289 +#: f.batch.cc:2096 msgid "open script file" msgstr "open script file" -#: f.batch.cc:2296 +#: f.batch.cc:2103 msgid "unknown script file" msgstr "unknown script file" -#: f.batch.cc:2303 +#: f.batch.cc:2110 #, c-format msgid "" "script file: %s \n" @@ -819,11 +819,11 @@ "script file: %s \n" " %s" -#: f.batch.cc:2314 +#: f.batch.cc:2121 msgid "select image files to be processed" msgstr "select image files to be processed" -#: f.batch.cc:2326 f.batch.cc:2375 +#: f.batch.cc:2133 f.batch.cc:2182 #, c-format msgid "" "open failure: %s \n" @@ -832,91 +832,87 @@ "open failure: %s \n" " %s" -#: f.batch.cc:2347 +#: f.batch.cc:2154 #, c-format msgid "unknown edit function: %s" msgstr "unknown edit function: %s" -#: f.batch.cc:2356 +#: f.batch.cc:2163 #, c-format msgid "load widgets failed: %s" msgstr "load widgets failed: %s" -#: f.batch.cc:2385 +#: f.batch.cc:2192 #, c-format msgid "script file format error: %s" msgstr "script file format error: %s" -#: f.batch.cc:2430 +#: f.batch.cc:2237 msgid "growisofs not installed" msgstr "growisofs not installed" -#: f.batch.cc:2482 +#: f.batch.cc:2289 msgid "no DVD/BlueRay device found" msgstr "no DVD/BlueRay device found" -#: f.batch.cc:2505 f.widgets.cc:570 +#: f.batch.cc:2312 f.widgets.cc:572 msgid "Burn Images to DVD/BlueRay" msgstr "Burn Images to DVD/BlueRay" -#: f.batch.cc:2510 +#: f.batch.cc:2317 msgid "Select device" msgstr "Select device" -#: f.batch.cc:2635 f.widgets.cc:571 +#: f.batch.cc:2442 f.widgets.cc:573 msgid "Find Duplicate Images" msgstr "Find Duplicate Images" -#: f.batch.cc:2637 f.tools.cc:1012 +#: f.batch.cc:2444 f.tools.cc:1017 msgid "Thumbnail size" msgstr "Thumbnail size" -#: f.batch.cc:2640 +#: f.batch.cc:2447 msgid "pixel difference" msgstr "pixel difference" -#: f.batch.cc:2643 +#: f.batch.cc:2450 msgid "pixel count" msgstr "pixel count" -#: f.batch.cc:2646 +#: f.batch.cc:2453 msgid "Images:" msgstr "Images:" -#: f.batch.cc:2647 +#: f.batch.cc:2454 msgid "searching ..." msgstr "searching ..." -#: f.batch.cc:2649 +#: f.batch.cc:2456 msgid "Duplicates:" msgstr "Duplicates:" -#: f.batch.cc:2667 +#: f.batch.cc:2474 #, c-format msgid "only %d image thumbnails found" msgstr "only %d image thumbnails found" -#: f.batch.cc:2875 f.widgets.cc:377 +#: f.batch.cc:2682 f.widgets.cc:378 msgid "Create a file of selected image files" msgstr "Create a file of selected image files" -#: f.batch.cc:2899 f.batch.cc:2969 +#: f.batch.cc:2706 f.batch.cc:2776 msgid "Output File" msgstr "Output File" -#: f.batch.cc:2918 +#: f.batch.cc:2725 msgid "no input files selected" msgstr "no input files selected" -#: f.batch.cc:2923 +#: f.batch.cc:2730 msgid "no output file selected" msgstr "no output file selected" -#: f.batch.cc:2937 f.tools.cc:643 -msgid "COMPLETED" -msgstr "COMPLETED" - -#: f.bend.cc:92 f.widgets.cc:505 +#: f.bend.cc:92 f.widgets.cc:507 msgid "Unbend" msgstr "Unbend" @@ -948,7 +944,7 @@ " Make multiple mouse pulls until satisfied. \n" " When finished, select another area or press [done]." -#: f.bend.cc:756 f.widgets.cc:507 +#: f.bend.cc:756 f.widgets.cc:509 msgid "Warp area" msgstr "Warp area" @@ -970,7 +966,7 @@ " Make multiple mouse pulls until satisfied. \n" " When finished, press [done]." -#: f.bend.cc:1178 f.widgets.cc:508 +#: f.bend.cc:1178 f.widgets.cc:510 msgid "Warp curved" msgstr "Warp curved" @@ -978,7 +974,7 @@ msgid "warp span" msgstr "warp span" -#: f.bend.cc:1492 f.widgets.cc:509 +#: f.bend.cc:1492 f.widgets.cc:511 msgid "Warp linear" msgstr "Warp linear" @@ -992,7 +988,7 @@ " Make multiple mouse pulls until satisfied. \n" " When finished, press [done]." -#: f.bend.cc:1823 f.widgets.cc:510 +#: f.bend.cc:1823 f.widgets.cc:512 msgid "Warp affine" msgstr "Warp affine" @@ -1022,7 +1018,7 @@ msgid "bottom:" msgstr "bottom:" -#: f.bend.cc:2614 f.widgets.cc:512 +#: f.bend.cc:2614 f.widgets.cc:514 msgid "Spherical Projection" msgstr "Spherical Projection" @@ -1040,7 +1036,7 @@ " Pull image from upper left corner. \n" " When finished, press [done]." -#: f.bend.cc:2850 f.widgets.cc:513 +#: f.bend.cc:2850 f.widgets.cc:515 msgid "Selective Rescale" msgstr "Selective Rescale" @@ -1077,7 +1073,7 @@ msgstr "Paint and Warp Image" #: f.combine.cc:2998 f.combine.cc:3643 f.combine.cc:6252 f.effects.cc:4413 -#: f.widgets.cc:602 f.widgets.cc:626 f.widgets.cc:650 f.widgets.cc:664 +#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 msgid "Image" msgstr "Image" @@ -1153,7 +1149,7 @@ msgid "manual align" msgstr "manual align" -#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:473 f.widgets.cc:736 +#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:475 f.widgets.cc:738 msgid "Resize" msgstr "Resize" @@ -1222,7 +1218,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Minor rotate: drag right edge with mouse" -#: f.edit.cc:162 f.widgets.cc:465 f.widgets.cc:735 +#: f.edit.cc:162 f.widgets.cc:467 f.widgets.cc:737 msgid "Trim/Rotate" msgstr "Trim/Rotate" @@ -1290,7 +1286,7 @@ msgid "rotation unknown" msgstr "rotation unknown" -#: f.edit.cc:1957 f.widgets.cc:469 f.widgets.cc:740 +#: f.edit.cc:1957 f.widgets.cc:471 f.widgets.cc:742 msgid "Retouch Combo" msgstr "Retouch Combo" @@ -1302,7 +1298,7 @@ msgid "Brightness" msgstr "Brightness" -#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1112 +#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1113 msgid "Contrast" msgstr "Contrast" @@ -1334,7 +1330,7 @@ msgid "Bright" msgstr "Bright" -#: f.edit.cc:2000 f.tools.cc:1767 +#: f.edit.cc:2000 f.tools.cc:1775 msgid "Brightness Distribution" msgstr "Brightness Distribution" @@ -1406,7 +1402,7 @@ msgid "Deband Bright" msgstr "Deband Bright" -#: f.edit.cc:3570 f.widgets.cc:472 f.widgets.cc:743 +#: f.edit.cc:3570 f.widgets.cc:474 f.widgets.cc:745 msgid "Tone Mapping" msgstr "Tone Mapping" @@ -1438,7 +1434,7 @@ msgid "use previous settings" msgstr "use previous settings" -#: f.edit.cc:4236 f.widgets.cc:474 +#: f.edit.cc:4236 f.widgets.cc:476 msgid "Flip" msgstr "Flip" @@ -1478,15 +1474,15 @@ msgid "text" msgstr "text" -#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2807 +#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2814 msgid "backing" msgstr "backing" -#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2808 +#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2815 msgid "outline" msgstr "outline" -#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2809 +#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2816 msgid "shadow" msgstr "shadow" @@ -1494,7 +1490,7 @@ msgid "save to current file" msgstr "save to current file" -#: f.edit.cc:4466 f.file.cc:1835 +#: f.edit.cc:4466 f.file.cc:1706 msgid "save as new file version" msgstr "save as new file version" @@ -1506,7 +1502,7 @@ "save to current file \n" "open next file with same text" -#: f.edit.cc:4628 f.mashup.cc:2566 f.tools.cc:1167 +#: f.edit.cc:4628 f.mashup.cc:2573 f.tools.cc:1172 msgid "select font" msgstr "select font" @@ -1526,15 +1522,15 @@ msgid "Write Line or Arrow on Image" msgstr "Write Line or Arrow on Image" -#: f.edit.cc:5278 f.mashup.cc:2786 +#: f.edit.cc:5278 f.mashup.cc:2793 msgid "Line length" msgstr "Line length" -#: f.edit.cc:5285 f.mashup.cc:2793 +#: f.edit.cc:5285 f.mashup.cc:2800 msgid "Arrow head" msgstr "Arrow head" -#: f.edit.cc:5298 f.mashup.cc:2806 +#: f.edit.cc:5298 f.mashup.cc:2813 msgid "line" msgstr "line" @@ -1546,11 +1542,11 @@ "fix line/arrow in layout \n" " start new line/arrow" -#: f.edit.cc:5918 f.widgets.cc:477 +#: f.edit.cc:5918 f.widgets.cc:479 msgid "Paint Edits" msgstr "Paint Edits" -#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.06.cc:3307 +#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.07.cc:3318 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -1558,7 +1554,7 @@ "Select area cannot be kept.\n" "Continue?" -#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2293 +#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2301 msgid "Edit function must be active" msgstr "Edit function must be active" @@ -1574,7 +1570,7 @@ msgid "reset area" msgstr "reset area" -#: f.edit.cc:6144 f.widgets.cc:478 +#: f.edit.cc:6144 f.widgets.cc:480 msgid "Leverage Edits" msgstr "Leverage Edits" @@ -1642,7 +1638,7 @@ msgid "Background" msgstr "Background" -#: f.effects.cc:1214 f.widgets.cc:519 +#: f.effects.cc:1214 f.widgets.cc:521 msgid "Line Drawing" msgstr "Line Drawing" @@ -1650,7 +1646,7 @@ msgid "black/white" msgstr "black/white" -#: f.effects.cc:1505 f.widgets.cc:520 +#: f.effects.cc:1505 f.widgets.cc:522 msgid "Color Drawing" msgstr "Color Drawing" @@ -1658,7 +1654,7 @@ msgid "Bright Areas" msgstr "Bright Areas" -#: f.effects.cc:1766 f.widgets.cc:521 +#: f.effects.cc:1766 f.widgets.cc:523 msgid "Graduated Blur" msgstr "Graduated Blur" @@ -1722,7 +1718,7 @@ msgid "borders" msgstr "borders" -#: f.effects.cc:3259 f.widgets.cc:526 +#: f.effects.cc:3259 f.widgets.cc:528 msgid "Vignette" msgstr "Vignette" @@ -1750,7 +1746,7 @@ msgid "Calculate" msgstr "Calculate" -#: f.effects.cc:3848 f.widgets.cc:528 +#: f.effects.cc:3848 f.widgets.cc:530 msgid "Pattern" msgstr "Pattern" @@ -1774,7 +1770,7 @@ msgid "Tile" msgstr "Tile" -#: f.effects.cc:4411 f.widgets.cc:523 +#: f.effects.cc:4411 f.widgets.cc:525 msgid "Tiles" msgstr "Tiles" @@ -1792,7 +1788,7 @@ msgid "only %d tile images found" msgstr "only %d tile images found" -#: f.effects.cc:4905 f.widgets.cc:530 +#: f.effects.cc:4905 f.widgets.cc:532 msgid "Custom Kernel" msgstr "Custom Kernel" @@ -1808,11 +1804,11 @@ msgid "Data file" msgstr "Data file" -#: f.effects.cc:4951 fotoxx-16.06.cc:3571 +#: f.effects.cc:4951 fotoxx-16.07.cc:3582 msgid "Load settings from file" msgstr "Load settings from file" -#: f.effects.cc:5212 f.widgets.cc:531 +#: f.effects.cc:5212 f.widgets.cc:533 msgid "Make Waves" msgstr "Make Waves" @@ -1836,7 +1832,7 @@ msgid "Pull image using the mouse." msgstr "Pull image using the mouse." -#: f.effects.cc:5427 f.widgets.cc:532 +#: f.effects.cc:5427 f.widgets.cc:534 msgid "Directed Blur" msgstr "Directed Blur" @@ -1848,7 +1844,7 @@ msgid "intensity" msgstr "intensity" -#: f.effects.cc:5638 f.widgets.cc:533 +#: f.effects.cc:5638 f.widgets.cc:535 msgid "Blur Background" msgstr "Blur Background" @@ -1868,7 +1864,7 @@ msgid "max. blur radius" msgstr "max. blur radius" -#: f.file.cc:182 +#: f.file.cc:181 msgid "" "use EXIF photo date or \n" " file modification date" @@ -1876,83 +1872,75 @@ "use EXIF photo date or \n" " file modification date" -#: f.file.cc:199 f.widgets.cc:608 +#: f.file.cc:198 f.widgets.cc:610 msgid "File" msgstr "File" -#: f.file.cc:355 -msgid "UFraw not installed" -msgstr "UFraw not installed" - -#: f.file.cc:371 f.widgets.cc:745 -msgid "Open RAW file (ufraw)" -msgstr "Open RAW file (ufraw)" +#: f.file.cc:368 f.widgets.cc:747 +msgid "Open RAW file (Raw Therapee)" +msgstr "Open RAW file (Raw Therapee)" -#: f.file.cc:376 f.file.cc:447 +#: f.file.cc:373 msgid "RAW type not registered in User Settings" msgstr "RAW type not registered in User Settings" -#: f.file.cc:442 f.widgets.cc:746 -msgid "Open RAW file (Raw Therapee)" -msgstr "Open RAW file (Raw Therapee)" - -#: f.file.cc:534 f.widgets.cc:423 +#: f.file.cc:460 f.widgets.cc:424 msgid "Open Image File" msgstr "Open Image File" -#: f.file.cc:553 +#: f.file.cc:479 msgid "unknown file type" msgstr "unknown file type" -#: f.file.cc:747 +#: f.file.cc:673 msgid "Create Blank Image" msgstr "Create Blank Image" -#: f.file.cc:749 +#: f.file.cc:675 msgid "file name" msgstr "file name" -#: f.file.cc:782 +#: f.file.cc:708 msgid "supply a file name" msgstr "supply a file name" -#: f.file.cc:932 f.widgets.cc:428 +#: f.file.cc:858 f.widgets.cc:428 msgid "Rename Image File" msgstr "Rename Image File" -#: f.file.cc:939 +#: f.file.cc:865 msgid "Old Name" msgstr "Old Name" -#: f.file.cc:949 +#: f.file.cc:875 msgid "previous name" msgstr "previous name" -#: f.file.cc:950 +#: f.file.cc:876 msgid "add 1" msgstr "add 1" -#: f.file.cc:1129 +#: f.file.cc:1054 msgid "Copy or Move Image File" msgstr "Copy or Move Image File" -#: f.file.cc:1171 +#: f.file.cc:1096 msgid "New Location:" msgstr "New Location:" -#: f.file.cc:1176 +#: f.file.cc:1101 msgid "copy (duplicate file)" msgstr "copy (duplicate file)" -#: f.file.cc:1178 +#: f.file.cc:1103 msgid "move (remove original)" msgstr "move (remove original)" -#: f.file.cc:1257 +#: f.file.cc:1182 msgid "new location is not a directory" msgstr "new location is not a directory" -#: f.file.cc:1297 f.file.cc:1511 +#: f.file.cc:1222 f.file.cc:1431 #, c-format msgid "" "delete failed: \n" @@ -1961,77 +1949,63 @@ "delete failed: \n" " %s" -#: f.file.cc:1393 +#: f.file.cc:1318 msgid "Delete or Trash Image File" msgstr "Delete or Trash Image File" -#: f.file.cc:1460 -msgid "" -"GTK g_file_trash() function failed. \n" -"Desktop trash folder will be used." -msgstr "" -"GTK g_file_trash() function failed. \n" -"Desktop trash folder will be used." - -#: f.file.cc:1463 -#, c-format -msgid "Cannot create desktop trash folder: %s" -msgstr "Cannot create desktop trash folder: %s" +#: f.file.cc:1383 +msgid "GTK g_file_trash() function failed" +msgstr "GTK g_file_trash() function failed" -#: f.file.cc:1483 +#: f.file.cc:1404 msgid "not a known image file" msgstr "not a known image file" -#: f.file.cc:1489 +#: f.file.cc:1410 msgid "Delete read-only file?" msgstr "Delete read-only file?" -#: f.file.cc:1491 +#: f.file.cc:1412 msgid "Trash read-only file?" msgstr "Trash read-only file?" -#: f.file.cc:1564 -#, c-format -msgid "error: %s" -msgstr "error: %s" - -#: f.file.cc:1589 +#: f.file.cc:1460 msgid "no more images" msgstr "no more images" -#: f.file.cc:1817 +#: f.file.cc:1688 msgid "Save Image File" msgstr "Save Image File" -#: f.file.cc:1827 +#: f.file.cc:1698 msgid "new version" msgstr "new version" -#: f.file.cc:1828 +#: f.file.cc:1699 msgid "new file" msgstr "new file" -#: f.file.cc:1829 +#: f.file.cc:1700 msgid "replace file" msgstr "replace file" -#: f.file.cc:1836 f.file.cc:2255 +#: f.file.cc:1707 f.file.cc:2126 msgid "save as new file name or type" msgstr "save as new file name or type" -#: f.file.cc:1838 +#: f.file.cc:1709 msgid "replace old file (OVERWRITE)" msgstr "replace old file (OVERWRITE)" -#: f.file.cc:1877 f.file.cc:2020 +#: f.file.cc:1748 f.file.cc:1891 msgid "cannot save as RAW type" msgstr "cannot save as RAW type" -#: f.file.cc:1973 +#: f.file.cc:1844 msgid "too many file versions: 99" msgstr "too many file versions: 99" -#: f.file.cc:2014 +#: f.file.cc:1885 msgid "" "Transparency map will be lost.\n" "save to PNG file to retain." @@ -2039,23 +2013,23 @@ "Transparency map will be lost.\n" "save to PNG file to retain." -#: f.file.cc:2098 +#: f.file.cc:1969 msgid "save anyway" msgstr "save anyway" -#: f.file.cc:2164 +#: f.file.cc:2035 msgid "Unable to copy EXIF/IPTC data" msgstr "Unable to copy EXIF/IPTC data" -#: f.file.cc:2273 f.file.cc:2276 +#: f.file.cc:2144 f.file.cc:2147 msgid "make current" msgstr "make current" -#: f.file.cc:2274 +#: f.file.cc:2145 msgid "(new file becomes current file)" msgstr "(new file becomes current file)" -#: f.file.cc:2387 +#: f.file.cc:2258 #, c-format msgid "" "Overwrite file? \n" @@ -2064,93 +2038,79 @@ "Overwrite file? \n" " %s" -#: f.file.cc:2478 -msgid "Start of gallery, next: preceding gallery." -msgstr "Start of gallery, next: preceding gallery." - -#: f.file.cc:2479 -msgid "End of gallery, next: following gallery." -msgstr "End of gallery, next: following gallery." - -#: f.file.cc:2480 -msgid "" -"The next preceding gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" -"The next preceding gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." +#: f.file.cc:2351 +#, c-format +msgid "Start of gallery, preceding gallery: %s" +msgstr "Start of gallery, preceding gallery: %s" -#: f.file.cc:2482 -msgid "" -"The next following gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" -"The next following gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." +#: f.file.cc:2352 +#, c-format +msgid "End of gallery, following gallery: %s" +msgstr "End of gallery, following gallery: %s" -#: f.file.cc:2556 f.widgets.cc:589 +#: f.file.cc:2446 f.widgets.cc:591 msgid "Quick Start" msgstr "Quick Start" -#: f.file.cc:2559 f.widgets.cc:590 +#: f.file.cc:2449 f.widgets.cc:592 msgid "User Guide" msgstr "User Guide" -#: f.file.cc:2562 f.widgets.cc:591 +#: f.file.cc:2452 f.widgets.cc:593 msgid "User Guide Changes" msgstr "User Guide Changes" -#: f.file.cc:2565 f.widgets.cc:593 +#: f.file.cc:2455 f.widgets.cc:595 msgid "README" msgstr "README" -#: f.file.cc:2568 f.widgets.cc:592 +#: f.file.cc:2458 f.widgets.cc:594 msgid "Edit Functions Summary" msgstr "Edit Functions Summary" -#: f.file.cc:2571 f.widgets.cc:594 +#: f.file.cc:2461 f.widgets.cc:596 msgid "Change Log" msgstr "Change Log" -#: f.file.cc:2574 f.widgets.cc:595 +#: f.file.cc:2464 f.widgets.cc:597 msgid "Log File" msgstr "Log File" -#: f.file.cc:2577 f.widgets.cc:596 +#: f.file.cc:2467 f.widgets.cc:598 msgid "Translations" msgstr "Translations" -#: f.file.cc:2580 f.widgets.cc:597 +#: f.file.cc:2470 f.widgets.cc:599 msgid "Home Page" msgstr "Home Page" -#: f.file.cc:2583 f.widgets.cc:598 +#: f.file.cc:2473 f.widgets.cc:600 msgid "About" msgstr "About" -#: f.file.cc:2587 f.widgets.cc:620 f.widgets.cc:644 fotoxx.h:1135 +#: f.file.cc:2477 f.widgets.cc:622 f.widgets.cc:646 fotoxx.h:1136 msgid "Help" msgstr "Help" -#: f.file.cc:2742 f.file.cc:2812 +#: f.file.cc:2632 f.file.cc:2702 #, c-format msgid "file not found: %s" msgstr "file not found: %s" -#: f.file.cc:2748 f.file.cc:2818 +#: f.file.cc:2638 f.file.cc:2708 #, c-format msgid "file type not supported: %s" msgstr "file type not supported: %s" -#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:642 +#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:644 msgid "Scroll" msgstr "Scroll" -#: f.gallery.cc:940 f.widgets.cc:420 f.widgets.cc:632 +#: f.gallery.cc:940 f.widgets.cc:421 f.widgets.cc:634 msgid "Sync Gallery" msgstr "Sync Gallery" -#: f.gallery.cc:950 f.repair.cc:6658 f.repair.cc:6663 fotoxx.h:1157 +#: f.gallery.cc:950 f.repair.cc:6352 f.repair.cc:6357 fotoxx.h:1158 msgid "Open" msgstr "Open" @@ -2162,16 +2122,16 @@ msgid "GoTo" msgstr "GoTo" -#: f.gallery.cc:965 f.widgets.cc:637 +#: f.gallery.cc:965 f.widgets.cc:639 msgid "Sort" msgstr "Sort" #: f.gallery.cc:971 f.gallery.cc:1540 f.gallery.cc:1541 f.gallery.cc:1543 -#: f.widgets.cc:635 +#: f.widgets.cc:637 msgid "Zoom+" msgstr "Zoom+" -#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:636 +#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:638 msgid "Zoom-" msgstr "Zoom-" @@ -2183,19 +2143,19 @@ msgid "Row↓" msgstr "Row↓" -#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:640 +#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:642 msgid "Page↑" msgstr "Page↑" -#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:641 +#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:643 msgid "Page↓" msgstr "Page↓" -#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:638 +#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:640 msgid "First" msgstr "First" -#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:639 +#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:641 msgid "Last" msgstr "Last" @@ -2219,7 +2179,7 @@ msgid "Choose album" msgstr "Choose album" -#: f.gallery.cc:1288 f.tools.cc:986 +#: f.gallery.cc:1288 f.tools.cc:991 msgid "Gallery Sort" msgstr "Gallery Sort" @@ -2243,27 +2203,27 @@ msgid "descending" msgstr "descending" -#: f.gallery.cc:2373 fotoxx.h:1182 +#: f.gallery.cc:2315 fotoxx.h:1182 msgid "Select Files" msgstr "Select Files" -#: f.gallery.cc:2838 +#: f.gallery.cc:2780 msgid "Click list position. Click thumbnail to add." msgstr "Click list position. Click thumbnail to add." -#: f.gallery.cc:2864 f.gallery.cc:3112 +#: f.gallery.cc:2806 f.gallery.cc:3054 msgid "Edit Bookmarks" msgstr "Edit Bookmarks" -#: f.gallery.cc:3039 +#: f.gallery.cc:2981 msgid "unable to save bookmarks file" msgstr "unable to save bookmarks file" -#: f.gallery.cc:3112 +#: f.gallery.cc:3054 msgid "Go To Bookmark" msgstr "Go To Bookmark" -#: f.gallery.cc:3169 f.meta.cc:3528 f.repair.cc:8279 +#: f.gallery.cc:3111 f.meta.cc:3526 f.repair.cc:7973 msgid "file not found" msgstr "file not found" @@ -2457,7 +2417,7 @@ msgid "Hard" msgstr "Hard" -#: f.mashup.cc:1313 f.repair.cc:6252 +#: f.mashup.cc:1313 f.repair.cc:5946 msgid "Blend" msgstr "Blend" @@ -2473,7 +2433,7 @@ msgid "Gradual" msgstr "Gradual" -#: f.mashup.cc:1589 fotoxx.h:1161 +#: f.mashup.cc:1589 fotoxx.h:1162 msgid "Power" msgstr "Power" @@ -2502,45 +2462,45 @@ msgid "add entered text to layout" msgstr "add entered text to layout" -#: f.mashup.cc:2627 +#: f.mashup.cc:2634 msgid "click position to add text" msgstr "click position to add text" -#: f.mashup.cc:2633 +#: f.mashup.cc:2640 #, c-format msgid "exceeded %d text entries" msgstr "exceeded %d text entries" -#: f.mashup.cc:2756 +#: f.mashup.cc:2763 msgid "Set line properties, [Add] to layout, edit." msgstr "Set line properties, [Add] to layout, edit." -#: f.mashup.cc:2780 +#: f.mashup.cc:2787 msgid "Edit Line/Arrow" msgstr "Edit Line/Arrow" -#: f.mashup.cc:2835 +#: f.mashup.cc:2842 msgid "add line/arrow to layout" msgstr "add line/arrow to layout" -#: f.mashup.cc:2928 +#: f.mashup.cc:2935 msgid "click position to add line" msgstr "click position to add line" -#: f.mashup.cc:2934 +#: f.mashup.cc:2941 #, c-format msgid "exceeded %d line entries" msgstr "exceeded %d line entries" -#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:723 +#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:725 msgid "View Metadata" msgstr "View Metadata" #: f.meta.cc:548 msgid "Geocoding service by MapQuest" -msgstr "" +msgstr "Geocoding service by MapQuest" -#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:724 +#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:726 msgid "Edit Metadata" msgstr "Edit Metadata" @@ -2568,11 +2528,11 @@ msgid "Comments" msgstr "Comments" -#: f.meta.cc:659 f.meta.cc:3618 -msgid "city" -msgstr "city" +#: f.meta.cc:659 f.meta.cc:3616 +msgid "location" +msgstr "location" -#: f.meta.cc:662 f.meta.cc:3621 +#: f.meta.cc:662 f.meta.cc:3619 msgid "country" msgstr "country" @@ -2588,76 +2548,76 @@ msgid "Enter New Tag" msgstr "Enter New Tag" -#: f.meta.cc:703 f.meta.cc:5459 +#: f.meta.cc:703 f.meta.cc:5446 msgid "Matching Tags" msgstr "Matching Tags" -#: f.meta.cc:712 f.meta.cc:1708 f.meta.cc:5466 +#: f.meta.cc:712 f.meta.cc:1706 f.meta.cc:5453 msgid "Defined Tags Category" msgstr "Defined Tags Category" #: f.meta.cc:719 msgid "search known locations" -msgstr "" +msgstr "search known locations" #: f.meta.cc:720 msgid "search using web service" -msgstr "" +msgstr "search using web service" #: f.meta.cc:721 msgid "create tag categories and tags" msgstr "create tag categories and tags" -#: f.meta.cc:936 f.meta.cc:3778 -msgid "city not found" -msgstr "city not found" +#: f.meta.cc:936 f.meta.cc:3776 +msgid "location not found" +msgstr "location not found" -#: f.meta.cc:1214 f.meta.cc:3836 f.meta.cc:4352 +#: f.meta.cc:1212 f.meta.cc:3834 f.meta.cc:4337 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "bad latitude/longitude: %s %s" -#: f.meta.cc:1248 fotoxx.h:1145 +#: f.meta.cc:1246 fotoxx.h:1146 msgid "Manage Tags" msgstr "Manage Tags" -#: f.meta.cc:1248 +#: f.meta.cc:1246 msgid "orphan tags" msgstr "orphan tags" -#: f.meta.cc:1252 +#: f.meta.cc:1250 msgid "category" msgstr "category" -#: f.meta.cc:1255 +#: f.meta.cc:1253 msgid "tag" msgstr "tag" -#: f.meta.cc:1262 +#: f.meta.cc:1260 msgid "Defined Tags:" msgstr "Defined Tags:" -#: f.meta.cc:1404 f.widgets.cc:441 f.widgets.cc:725 +#: f.meta.cc:1402 f.widgets.cc:441 f.widgets.cc:727 msgid "Edit Any Metadata" msgstr "Edit Any Metadata" -#: f.meta.cc:1404 f.meta.cc:2148 +#: f.meta.cc:1402 f.meta.cc:2146 msgid "Full List" msgstr "Full List" -#: f.meta.cc:1409 f.meta.cc:2153 +#: f.meta.cc:1407 f.meta.cc:2151 msgid "click to select" msgstr "click to select" -#: f.meta.cc:1418 f.meta.cc:2164 +#: f.meta.cc:1416 f.meta.cc:2162 msgid "key name" msgstr "key name" -#: f.meta.cc:1420 f.meta.cc:2165 +#: f.meta.cc:1418 f.meta.cc:2163 msgid "key value" msgstr "key value" -#: f.meta.cc:1506 f.meta.cc:2308 +#: f.meta.cc:1504 f.meta.cc:2306 msgid "" "The command: $ man Image::ExifTool::TagNames \n" "will show over 15000 \"standard\" tag names" @@ -2665,31 +2625,31 @@ "The command: $ man Image::ExifTool::TagNames \n" "will show over 15000 \"standard\" tag names" -#: f.meta.cc:1579 f.widgets.cc:442 +#: f.meta.cc:1577 f.widgets.cc:442 msgid "Delete Metadata" msgstr "Delete Metadata" -#: f.meta.cc:1581 fotoxx.h:1095 +#: f.meta.cc:1579 fotoxx.h:1095 msgid "All" msgstr "All" -#: f.meta.cc:1582 +#: f.meta.cc:1580 msgid "One Key:" msgstr "One Key:" -#: f.meta.cc:1685 f.widgets.cc:443 f.widgets.cc:574 +#: f.meta.cc:1683 f.widgets.cc:443 f.widgets.cc:576 msgid "Batch Add/Remove Tags" msgstr "Batch Add/Remove Tags" -#: f.meta.cc:1696 +#: f.meta.cc:1694 msgid "tags to add" msgstr "tags to add" -#: f.meta.cc:1697 +#: f.meta.cc:1695 msgid "tags to remove" msgstr "tags to remove" -#: f.meta.cc:1782 +#: f.meta.cc:1780 #, c-format msgid "" "%s \n" @@ -2698,15 +2658,15 @@ "%s \n" " too many tags" -#: f.meta.cc:1897 +#: f.meta.cc:1895 msgid "specify files and tags" msgstr "specify files and tags" -#: f.meta.cc:1957 +#: f.meta.cc:1955 msgid "tag names file" msgstr "tag names file" -#: f.meta.cc:2031 +#: f.meta.cc:2029 #, c-format msgid "" "%d tags to rename \n" @@ -2717,43 +2677,43 @@ "in %d image files. \n" "Proceed?" -#: f.meta.cc:2148 +#: f.meta.cc:2146 msgid "Batch Change Metadata" msgstr "Batch Change Metadata" -#: f.meta.cc:2222 +#: f.meta.cc:2220 msgid "enter key names" msgstr "enter key names" -#: f.meta.cc:2228 f.meta.cc:2422 fotoxx.h:1154 +#: f.meta.cc:2226 f.meta.cc:2420 fotoxx.h:1155 msgid "no files selected" msgstr "no files selected" -#: f.meta.cc:2407 f.widgets.cc:446 f.widgets.cc:577 +#: f.meta.cc:2405 f.widgets.cc:446 f.widgets.cc:579 msgid "Batch Report Metadata" msgstr "Batch Report Metadata" -#: f.meta.cc:2580 +#: f.meta.cc:2578 msgid "date format is YYYY-MM-DD" msgstr "date format is YYYY-MM-DD" -#: f.meta.cc:2584 +#: f.meta.cc:2582 msgid "date is invalid" msgstr "date is invalid" -#: f.meta.cc:2618 +#: f.meta.cc:2616 msgid "time format is HH:MM [:SS]" msgstr "time format is HH:MM [:SS]" -#: f.meta.cc:2622 +#: f.meta.cc:2620 msgid "time is invalid" msgstr "time is invalid" -#: f.meta.cc:3587 f.widgets.cc:447 f.widgets.cc:578 +#: f.meta.cc:3585 f.widgets.cc:447 f.widgets.cc:580 msgid "Batch Add Geotags" msgstr "Batch Add Geotags" -#: f.meta.cc:3824 +#: f.meta.cc:3822 msgid "" "data is incomplete \n" " proceed?" @@ -2761,27 +2721,27 @@ "data is incomplete \n" " proceed?" -#: f.meta.cc:3874 -msgid "choose city" -msgstr "choose city" +#: f.meta.cc:3872 +msgid "choose location" +msgstr "choose location" -#: f.meta.cc:3961 +#: f.meta.cc:3959 msgid "not found" msgstr "not found" -#: f.meta.cc:3962 -msgid "city and country required" -msgstr "city and country required" +#: f.meta.cc:3960 +msgid "location and country required" +msgstr "location and country required" -#: f.meta.cc:4465 f.meta.cc:5003 f.meta.cc:5347 f.meta.cc:6504 +#: f.meta.cc:4450 f.meta.cc:4988 f.meta.cc:5334 f.meta.cc:6559 msgid "-noindex in use, disabled" msgstr "-noindex in use, disabled" -#: f.meta.cc:4483 +#: f.meta.cc:4468 msgid "choose map file" msgstr "choose map file" -#: f.meta.cc:4624 +#: f.meta.cc:4609 msgid "" "fotoxx-maps package not installed \n" "(see http://kornelix.net/packages and /tarballs)" @@ -2789,12 +2749,12 @@ "fotoxx-maps package not installed \n" "(see http://kornelix.net/packages and /tarballs)" -#: f.meta.cc:4629 +#: f.meta.cc:4614 #, c-format msgid "map file %s is missing" msgstr "map file %s is missing" -#: f.meta.cc:4633 +#: f.meta.cc:4618 #, c-format msgid "" "map latitude/longitude data unreasonable \n" @@ -2803,108 +2763,108 @@ "map latitude/longitude data unreasonable \n" " %.3f %.3f %.3f %.3f" -#: f.meta.cc:4662 +#: f.meta.cc:4647 msgid "search range (km)" msgstr "search range (km)" -#: f.meta.cc:4940 f.meta.cc:5282 +#: f.meta.cc:4925 f.meta.cc:5267 msgid "No matching images found" msgstr "No matching images found" -#: f.meta.cc:5118 +#: f.meta.cc:5103 msgid "image file has no latitude/longitude" msgstr "image file has no latitude/longitude" -#: f.meta.cc:5384 +#: f.meta.cc:5371 msgid "Search Image Metadata" msgstr "Search Image Metadata" -#: f.meta.cc:5388 +#: f.meta.cc:5375 msgid "images to search:" msgstr "images to search:" -#: f.meta.cc:5389 +#: f.meta.cc:5376 msgid "all" msgstr "all" -#: f.meta.cc:5390 +#: f.meta.cc:5377 msgid "current set only" msgstr "current set only" -#: f.meta.cc:5393 +#: f.meta.cc:5380 msgid "matching images:" msgstr "matching images:" -#: f.meta.cc:5394 +#: f.meta.cc:5381 msgid "new set" msgstr "new set" -#: f.meta.cc:5395 +#: f.meta.cc:5382 msgid "add to set" msgstr "add to set" -#: f.meta.cc:5396 +#: f.meta.cc:5383 msgid "remove" msgstr "remove" -#: f.meta.cc:5399 +#: f.meta.cc:5386 msgid "report type:" msgstr "report type:" -#: f.meta.cc:5400 +#: f.meta.cc:5387 msgid "gallery" msgstr "gallery" -#: f.meta.cc:5407 +#: f.meta.cc:5394 msgid "date range" msgstr "date range" -#: f.meta.cc:5408 +#: f.meta.cc:5395 msgid "stars range" msgstr "stars range" -#: f.meta.cc:5409 +#: f.meta.cc:5396 msgid "search tags" msgstr "search tags" -#: f.meta.cc:5410 +#: f.meta.cc:5397 msgid "search text" msgstr "search text" -#: f.meta.cc:5411 +#: f.meta.cc:5398 msgid "search files" msgstr "search files" -#: f.meta.cc:5416 +#: f.meta.cc:5403 msgid "(yyyymmdd)" msgstr "(yyyymmdd)" -#: f.meta.cc:5421 +#: f.meta.cc:5408 msgid "last version only" msgstr "last version only" -#: f.meta.cc:5423 +#: f.meta.cc:5410 msgid "all/any" msgstr "all/any" -#: f.meta.cc:5442 +#: f.meta.cc:5429 msgid "search locations" -msgstr "" +msgstr "search locations" -#: f.meta.cc:5448 +#: f.meta.cc:5435 msgid "search other metadata" -msgstr "" +msgstr "search other metadata" -#: f.meta.cc:5455 +#: f.meta.cc:5442 msgid "Enter Search Tag" msgstr "Enter Search Tag" -#: f.meta.cc:5737 +#: f.meta.cc:5724 #, c-format msgid "not a defined tag: %s" msgstr "not a defined tag: %s" -#: f.meta.cc:5768 +#: f.meta.cc:5755 msgid "" "to remove images from current set, \n" "search current set" @@ -2912,7 +2872,7 @@ "to remove images from current set, \n" "search current set" -#: f.meta.cc:5775 +#: f.meta.cc:5762 msgid "" "to add images to current set, \n" "search all images" @@ -2920,7 +2880,7 @@ "to add images to current set, \n" "search all images" -#: f.meta.cc:5820 +#: f.meta.cc:5807 #, c-format msgid "" "search dates not reasonable \n" @@ -2929,20 +2889,20 @@ "search dates not reasonable \n" " %s %s" -#: f.meta.cc:5838 +#: f.meta.cc:5825 msgid "stars range not reasonable" msgstr "stars range not reasonable" -#: f.meta.cc:6082 +#: f.meta.cc:6069 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "images added: %d removed: %d new count: %d" -#: f.meta.cc:6085 +#: f.meta.cc:6072 msgid "no changes made" msgstr "no changes made" -#: f.meta.cc:6237 +#: f.meta.cc:6224 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2950,47 +2910,52 @@ "These items are always reported: \n" "date, stars, tags, caption, comment" -#: f.meta.cc:6261 +#: f.meta.cc:6249 msgid "Additional Items for Report" msgstr "Additional Items for Report" -#: f.meta.cc:6267 +#: f.meta.cc:6256 msgid "Keyword" msgstr "Keyword" -#: f.meta.cc:6274 +#: f.meta.cc:6270 msgid "Match Criteria" msgstr "Match Criteria" -#: f.meta.cc:6519 +#: f.meta.cc:6366 +#, c-format +msgid "bad number: %s" +msgstr "bad number: %s" + +#: f.meta.cc:6574 msgid "Report Geotag Groups" msgstr "Report Geotag Groups" -#: f.meta.cc:6520 +#: f.meta.cc:6575 msgid "Group by country" msgstr "Group by country" -#: f.meta.cc:6521 -msgid "Group by country/city" -msgstr "Group by country/city" - -#: f.meta.cc:6522 -msgid "Group by country/city/date" -msgstr "Group by country/city/date" +#: f.meta.cc:6576 +msgid "Group by country/location" +msgstr "Group by country/location" + +#: f.meta.cc:6577 +msgid "Group by country/location/date" +msgstr "Group by country/location/date" -#: f.meta.cc:6525 +#: f.meta.cc:6580 msgid "Combine within" msgstr "Combine within" -#: f.meta.cc:6527 +#: f.meta.cc:6582 msgid "days" msgstr "days" -#: f.meta.cc:6643 +#: f.meta.cc:6702 msgid "geotag groups" msgstr "geotag groups" -#: f.meta.cc:7241 +#: f.meta.cc:7316 msgid "image index is missing" msgstr "image index is missing" @@ -3010,39 +2975,35 @@ msgid "Measure" msgstr "Measure" -#: f.repair.cc:1237 +#: f.repair.cc:1235 msgid "Noise Reduction" msgstr "Noise Reduction" -#: f.repair.cc:1258 -msgid "Flatten 1" -msgstr "Flatten 1" - -#: f.repair.cc:1259 -msgid "Flatten 2" -msgstr "Flatten 2" +#: f.repair.cc:1254 fotoxx.h:1131 +msgid "Flatten" +msgstr "Flatten" -#: f.repair.cc:1260 +#: f.repair.cc:1255 msgid "Median" msgstr "Median" -#: f.repair.cc:1280 +#: f.repair.cc:1270 msgid "dark areas" msgstr "dark areas" -#: f.repair.cc:1282 +#: f.repair.cc:1272 msgid "all areas" msgstr "all areas" -#: f.repair.cc:2174 +#: f.repair.cc:1868 msgid "Measure Noise" msgstr "Measure Noise" -#: f.repair.cc:2175 +#: f.repair.cc:1869 msgid "Click on a monotone image area." msgstr "Click on a monotone image area." -#: f.repair.cc:2338 +#: f.repair.cc:2032 msgid "" "1. Drag mouse to select. \n" "2. Erase. 3. Repeat. " @@ -3050,23 +3011,23 @@ "1. Drag mouse to select. \n" "2. Erase. 3. Repeat. " -#: f.repair.cc:2360 f.widgets.cc:485 +#: f.repair.cc:2054 f.widgets.cc:487 msgid "Smart Erase" msgstr "Smart Erase" -#: f.repair.cc:2365 fotoxx.h:1165 +#: f.repair.cc:2059 fotoxx.h:1166 msgid "Radius" msgstr "Radius" -#: f.repair.cc:2367 f.widgets.cc:483 +#: f.repair.cc:2061 f.widgets.cc:485 msgid "Blur" msgstr "Blur" -#: f.repair.cc:2370 +#: f.repair.cc:2064 msgid "New Area" msgstr "New Area" -#: f.repair.cc:2719 +#: f.repair.cc:2413 msgid "" "Method 1:\n" " Left-click on red-eye to darken.\n" @@ -3084,11 +3045,11 @@ "Undo red-eye:\n" " Right-click on red-eye." -#: f.repair.cc:2735 +#: f.repair.cc:2429 msgid "Red Eye Reduction" msgstr "Red Eye Reduction" -#: f.repair.cc:3200 +#: f.repair.cc:2894 msgid "" "shift + left click: pick color or image position \n" "left click or drag: paint color or copy image \n" @@ -3098,39 +3059,39 @@ "left click or drag: paint color or copy image \n" "right click or drag: remove color or image" -#: f.repair.cc:3233 f.widgets.cc:487 +#: f.repair.cc:2927 f.widgets.cc:489 msgid "Paint/Clone" msgstr "Paint/Clone" -#: f.repair.cc:3237 +#: f.repair.cc:2931 msgid "paint color" msgstr "paint color" -#: f.repair.cc:3240 +#: f.repair.cc:2934 msgid "copy from image" msgstr "copy from image" -#: f.repair.cc:3247 f.repair.cc:3837 +#: f.repair.cc:2941 f.repair.cc:3531 msgid "paintbrush radius" msgstr "paintbrush radius" -#: f.repair.cc:3248 +#: f.repair.cc:2942 msgid "transparency center" msgstr "transparency center" -#: f.repair.cc:3249 +#: f.repair.cc:2943 msgid "transparency edge" msgstr "transparency edge" -#: f.repair.cc:3256 f.repair.cc:3844 +#: f.repair.cc:2950 f.repair.cc:3538 msgid "gradual paint" msgstr "gradual paint" -#: f.repair.cc:3257 +#: f.repair.cc:2951 msgid "paint over transparent areas" msgstr "paint over transparent areas" -#: f.repair.cc:3797 +#: f.repair.cc:3491 msgid "" "left drag: add transparency \n" "right drag: add opacity" @@ -3138,224 +3099,224 @@ "left drag: add transparency \n" "right drag: add opacity" -#: f.repair.cc:3829 f.widgets.cc:488 +#: f.repair.cc:3523 f.widgets.cc:490 msgid "Paint Transparency" msgstr "Paint Transparency" -#: f.repair.cc:3838 +#: f.repair.cc:3532 msgid "strength center" msgstr "strength center" -#: f.repair.cc:3839 +#: f.repair.cc:3533 msgid "strength edge" msgstr "strength edge" -#: f.repair.cc:4094 f.widgets.cc:489 +#: f.repair.cc:3788 f.widgets.cc:491 msgid "Add Transparency" msgstr "Add Transparency" -#: f.repair.cc:4098 +#: f.repair.cc:3792 msgid "Match Brightness" msgstr "Match Brightness" -#: f.repair.cc:4103 +#: f.repair.cc:3797 msgid "Match Color" msgstr "Match Color" -#: f.repair.cc:4105 +#: f.repair.cc:3799 msgid "click on image to select color" msgstr "click on image to select color" -#: f.repair.cc:4108 f.repair.cc:5318 +#: f.repair.cc:3802 f.repair.cc:5012 msgid "Match using:" msgstr "Match using:" -#: f.repair.cc:4114 f.repair.cc:5324 +#: f.repair.cc:3808 f.repair.cc:5018 msgid "Match Level:" msgstr "Match Level:" -#: f.repair.cc:4121 +#: f.repair.cc:3815 msgid "Invert Match" msgstr "Invert Match" -#: f.repair.cc:4124 fotoxx.h:1190 +#: f.repair.cc:3818 fotoxx.h:1190 msgid "Transparency" msgstr "Transparency" -#: f.repair.cc:4386 f.widgets.cc:490 +#: f.repair.cc:4080 f.widgets.cc:492 msgid "Color Mode" msgstr "Color Mode" -#: f.repair.cc:4390 +#: f.repair.cc:4084 msgid "black/white positive" msgstr "black/white positive" -#: f.repair.cc:4391 +#: f.repair.cc:4085 msgid "black/white negative" msgstr "black/white negative" -#: f.repair.cc:4392 +#: f.repair.cc:4086 msgid "color positive" msgstr "color positive" -#: f.repair.cc:4393 +#: f.repair.cc:4087 msgid "color negative" msgstr "color negative" -#: f.repair.cc:4394 +#: f.repair.cc:4088 msgid "sepia" msgstr "sepia" -#: f.repair.cc:4574 f.widgets.cc:491 +#: f.repair.cc:4268 f.widgets.cc:493 msgid "Shift Colors" msgstr "Shift Colors" -#: f.repair.cc:4810 f.widgets.cc:492 +#: f.repair.cc:4504 f.widgets.cc:494 msgid "Color Saturation" msgstr "Color Saturation" -#: f.repair.cc:4998 +#: f.repair.cc:4692 msgid "+Brightness" msgstr "+Brightness" -#: f.repair.cc:4999 +#: f.repair.cc:4693 msgid "+Red -Cyan" msgstr "+Red -Cyan" -#: f.repair.cc:5000 +#: f.repair.cc:4694 msgid "+Green -Magenta" msgstr "+Green -Magenta" -#: f.repair.cc:5001 +#: f.repair.cc:4695 msgid "+Blue -Yellow" msgstr "+Blue -Yellow" -#: f.repair.cc:5007 fotoxx.h:1167 +#: f.repair.cc:4701 fotoxx.h:1168 msgid "Red" msgstr "Red" -#: f.repair.cc:5008 fotoxx.h:1132 +#: f.repair.cc:4702 fotoxx.h:1133 msgid "Green" msgstr "Green" -#: f.repair.cc:5009 fotoxx.h:1102 +#: f.repair.cc:4703 fotoxx.h:1102 msgid "Blue" msgstr "Blue" -#: f.repair.cc:5313 +#: f.repair.cc:5007 msgid "Input color to match and adjust:" msgstr "Input color to match and adjust:" -#: f.repair.cc:5315 +#: f.repair.cc:5009 msgid "shift+click on image to select color" msgstr "shift+click on image to select color" -#: f.repair.cc:5319 +#: f.repair.cc:5013 msgid "Hue" -msgstr "" +msgstr "Hue" -#: f.repair.cc:5320 f.repair.cc:5352 +#: f.repair.cc:5014 f.repair.cc:5046 msgid "Saturation" msgstr "Saturation" -#: f.repair.cc:5321 f.repair.cc:5353 +#: f.repair.cc:5015 f.repair.cc:5047 msgid "Lightness" msgstr "Lightness" -#: f.repair.cc:5331 +#: f.repair.cc:5025 msgid "Output Color" msgstr "Output Color" -#: f.repair.cc:5351 +#: f.repair.cc:5045 msgid "Color Hue" msgstr "Color Hue" -#: f.repair.cc:5354 +#: f.repair.cc:5048 msgid "Adjustment" msgstr "Adjustment" -#: f.repair.cc:5839 +#: f.repair.cc:5533 msgid "Ramp brightness across image" msgstr "Ramp brightness across image" -#: f.repair.cc:6163 f.tools.cc:2184 +#: f.repair.cc:5857 f.tools.cc:2192 msgid "Click image to select pixels." msgstr "Click image to select pixels." -#: f.repair.cc:6194 +#: f.repair.cc:5888 msgid "Color Ramp" msgstr "Color Ramp" -#: f.repair.cc:6205 +#: f.repair.cc:5899 msgid "Metric:" msgstr "Metric:" -#: f.repair.cc:6630 +#: f.repair.cc:6324 msgid "Color Match Images" msgstr "Color Match Images" -#: f.repair.cc:6656 +#: f.repair.cc:6350 msgid "mouse radius for color sample" msgstr "mouse radius for color sample" -#: f.repair.cc:6659 +#: f.repair.cc:6353 msgid "image for source color" msgstr "image for source color" -#: f.repair.cc:6661 +#: f.repair.cc:6355 msgid "click on image to get source color" msgstr "click on image to get source color" -#: f.repair.cc:6664 +#: f.repair.cc:6358 msgid "image to set matching color" msgstr "image to set matching color" -#: f.repair.cc:6666 +#: f.repair.cc:6360 msgid "click on image to set matching color" msgstr "click on image to set matching color" -#: f.repair.cc:6727 +#: f.repair.cc:6421 msgid "select source image color first" msgstr "select source image color first" -#: f.repair.cc:6912 +#: f.repair.cc:6606 msgid "Change Color Profile" msgstr "Change Color Profile" -#: f.repair.cc:6916 +#: f.repair.cc:6610 msgid "input profile" msgstr "input profile" -#: f.repair.cc:6920 +#: f.repair.cc:6614 msgid "output profile" msgstr "output profile" -#: f.repair.cc:6936 +#: f.repair.cc:6630 msgid "color profile" msgstr "color profile" -#: f.repair.cc:6982 f.repair.cc:6988 +#: f.repair.cc:6676 f.repair.cc:6682 #, c-format msgid "unknown cms profile %s" msgstr "unknown cms profile %s" -#: f.repair.cc:7120 f.widgets.cc:499 +#: f.repair.cc:6814 f.widgets.cc:501 msgid "Remove Dust" msgstr "Remove Dust" -#: f.repair.cc:7124 +#: f.repair.cc:6818 msgid "spot size limit" msgstr "spot size limit" -#: f.repair.cc:7127 +#: f.repair.cc:6821 msgid "max. brightness" msgstr "max. brightness" -#: f.repair.cc:7130 +#: f.repair.cc:6824 msgid "min. contrast" msgstr "min. contrast" -#: f.repair.cc:7904 +#: f.repair.cc:7598 msgid "" " Adjust each RGB color to minimize \n" " color fringes at the image extremes. " @@ -3363,35 +3324,35 @@ " Adjust each RGB color to minimize \n" " color fringes at the image extremes. " -#: f.repair.cc:7927 f.widgets.cc:501 +#: f.repair.cc:7621 f.widgets.cc:503 msgid "Color Fringes" msgstr "Color Fringes" -#: f.repair.cc:8126 f.widgets.cc:502 +#: f.repair.cc:7820 f.widgets.cc:504 msgid "Stuck Pixels" msgstr "Stuck Pixels" -#: f.repair.cc:8132 +#: f.repair.cc:7826 msgid "pixel group" msgstr "pixel group" -#: f.repair.cc:8140 f.repair.cc:8208 +#: f.repair.cc:7834 f.repair.cc:7902 msgid "stuck pixels:" msgstr "stuck pixels:" -#: f.repair.cc:8236 +#: f.repair.cc:7930 msgid "Load Stuck Pixels" msgstr "Load Stuck Pixels" -#: f.repair.cc:8238 +#: f.repair.cc:7932 msgid "File:" msgstr "File:" -#: f.repair.cc:8263 f.repair.cc:8320 +#: f.repair.cc:7957 f.repair.cc:8014 msgid "Stuck Pixels file" msgstr "Stuck Pixels file" -#: f.repair.cc:8300 f.tools.cc:3656 +#: f.repair.cc:7994 f.tools.cc:3665 msgid "file format error" msgstr "file format error" @@ -3421,7 +3382,7 @@ "Indexing is required for search and map functions \n" "and to make the gallery pages acceptably fast." -#: f.tools.cc:106 f.widgets.cc:546 +#: f.tools.cc:106 f.widgets.cc:548 msgid "Index Image Files" msgstr "Index Image Files" @@ -3520,172 +3481,172 @@ msgid "Image File" msgstr "Image File" -#: f.tools.cc:964 f.widgets.cc:547 +#: f.tools.cc:965 f.widgets.cc:549 msgid "User Options" msgstr "User Options" -#: f.tools.cc:967 +#: f.tools.cc:968 msgid "Startup Display" msgstr "Startup Display" -#: f.tools.cc:978 +#: f.tools.cc:979 msgid "Menu Style" msgstr "Menu Style" -#: f.tools.cc:979 +#: f.tools.cc:980 msgid "Icons" msgstr "Icons" -#: f.tools.cc:980 +#: f.tools.cc:981 msgid "Icons + Text" msgstr "Icons + Text" -#: f.tools.cc:982 +#: f.tools.cc:983 msgid "Icon size" msgstr "Icon size" #: f.tools.cc:987 +msgid "Window background color" +msgstr "Window background color" + +#: f.tools.cc:992 msgid "alphabetic" msgstr "alphabetic" -#: f.tools.cc:988 +#: f.tools.cc:993 msgid "file mod date" msgstr "file mod date" -#: f.tools.cc:989 +#: f.tools.cc:994 msgid "photo date" msgstr "photo date" -#: f.tools.cc:992 +#: f.tools.cc:997 msgid "Dialog font and size" msgstr "Dialog font and size" -#: f.tools.cc:997 +#: f.tools.cc:1002 msgid "Image Pan/scroll:" msgstr "Image Pan/scroll:" -#: f.tools.cc:1000 +#: f.tools.cc:1005 msgid "Zooms for 2x" msgstr "Zooms for 2x" -#: f.tools.cc:1009 +#: f.tools.cc:1014 msgid "JPEG save quality" msgstr "JPEG save quality" -#: f.tools.cc:1016 +#: f.tools.cc:1021 msgid "Curve node capture distance" msgstr "Curve node capture distance" -#: f.tools.cc:1020 +#: f.tools.cc:1025 msgid "Map marker size" msgstr "Map marker size" -#: f.tools.cc:1024 +#: f.tools.cc:1029 msgid "show hidden directories in gallery view" msgstr "show hidden directories in gallery view" -#: f.tools.cc:1027 +#: f.tools.cc:1032 msgid "prev/next shows last file version only" msgstr "prev/next shows last file version only" -#: f.tools.cc:1030 +#: f.tools.cc:1035 msgid "shift image to right margin" msgstr "shift image to right margin" -#: f.tools.cc:1033 -msgid "RAW command" -msgstr "RAW command" - -#: f.tools.cc:1037 +#: f.tools.cc:1038 msgid "RAW file types" msgstr "RAW file types" -#: f.tools.cc:1128 +#: f.tools.cc:1133 msgid "Delete present thumbnails to make effective" msgstr "Delete present thumbnails to make effective" -#: f.tools.cc:1150 +#: f.tools.cc:1155 msgid "Select startup directory" msgstr "Select startup directory" -#: f.tools.cc:1157 +#: f.tools.cc:1162 msgid "Select startup image file" msgstr "Select startup image file" -#: f.tools.cc:1194 +#: f.tools.cc:1199 msgid "startup directory is invalid" msgstr "startup directory is invalid" -#: f.tools.cc:1205 +#: f.tools.cc:1210 msgid "startup file is invalid" msgstr "startup file is invalid" -#: f.tools.cc:1332 f.widgets.cc:548 +#: f.tools.cc:1340 f.widgets.cc:550 msgid "Keyboard Shortcuts" msgstr "Keyboard Shortcuts" -#: f.tools.cc:1404 +#: f.tools.cc:1412 msgid "Edit KB Shortcuts" msgstr "Edit KB Shortcuts" -#: f.tools.cc:1409 +#: f.tools.cc:1417 msgid "shortcut key:" msgstr "shortcut key:" -#: f.tools.cc:1410 +#: f.tools.cc:1418 msgid "(enter key)" msgstr "(enter key)" -#: f.tools.cc:1536 +#: f.tools.cc:1544 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Reserved, cannot be used" -#: f.tools.cc:1669 +#: f.tools.cc:1677 msgid "unable to save KB-shortcuts file" msgstr "unable to save KB-shortcuts file" -#: f.tools.cc:1973 f.widgets.cc:550 +#: f.tools.cc:1981 f.widgets.cc:552 msgid "Grid Lines" msgstr "Grid Lines" -#: f.tools.cc:1982 +#: f.tools.cc:1990 msgid "x-spacing" msgstr "x-spacing" -#: f.tools.cc:1983 +#: f.tools.cc:1991 msgid "x-count" msgstr "x-count" -#: f.tools.cc:1984 +#: f.tools.cc:1992 msgid "x-enable" msgstr "x-enable" -#: f.tools.cc:1990 +#: f.tools.cc:1998 msgid "y-spacing" msgstr "y-spacing" -#: f.tools.cc:1991 +#: f.tools.cc:1999 msgid "y-count" msgstr "y-count" -#: f.tools.cc:1992 +#: f.tools.cc:2000 msgid "y-enable" msgstr "y-enable" -#: f.tools.cc:2112 f.tools.cc:2117 f.widgets.cc:551 +#: f.tools.cc:2120 f.tools.cc:2125 f.widgets.cc:553 msgid "Line Color" msgstr "Line Color" -#: f.tools.cc:2114 +#: f.tools.cc:2122 msgid "Area Color" msgstr "Area Color" -#: f.tools.cc:2219 f.widgets.cc:552 +#: f.tools.cc:2227 f.widgets.cc:554 msgid "Show RGB" msgstr "Show RGB" -#: f.tools.cc:2509 +#: f.tools.cc:2518 msgid "" "Drag mouse on image. \n" "Left click to cancel. \n" @@ -3695,27 +3656,27 @@ "Left click to cancel. \n" "Key X to toggle dialog." -#: f.tools.cc:2535 f.widgets.cc:553 +#: f.tools.cc:2544 f.widgets.cc:555 msgid "Magnify Image" msgstr "Magnify Image" -#: f.tools.cc:2544 +#: f.tools.cc:2553 msgid "X-size" msgstr "X-size" -#: f.tools.cc:2789 +#: f.tools.cc:2798 msgid "Darkest and Brightest Pixels" msgstr "Darkest and Brightest Pixels" -#: f.tools.cc:2812 +#: f.tools.cc:2821 msgid "Dark Limit" msgstr "Dark Limit" -#: f.tools.cc:2813 +#: f.tools.cc:2822 msgid "Bright Limit" msgstr "Bright Limit" -#: f.tools.cc:2908 +#: f.tools.cc:2917 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3723,43 +3684,43 @@ "Brightness should show a gradual ramp \n" "extending all the way to the edges." -#: f.tools.cc:3004 f.widgets.cc:556 +#: f.tools.cc:3013 f.widgets.cc:558 msgid "Monitor Gamma" msgstr "Monitor Gamma" -#: f.tools.cc:3064 +#: f.tools.cc:3073 msgid "Available Translations" msgstr "Available Translations" -#: f.tools.cc:3068 +#: f.tools.cc:3077 msgid "Set Language" msgstr "Set Language" -#: f.tools.cc:3206 f.widgets.cc:559 +#: f.tools.cc:3215 f.widgets.cc:561 msgid "Calibrate Printer" msgstr "Calibrate Printer" -#: f.tools.cc:3231 +#: f.tools.cc:3240 msgid "print color chart" msgstr "print color chart" -#: f.tools.cc:3232 +#: f.tools.cc:3241 msgid "scan and save color chart" msgstr "scan and save color chart" -#: f.tools.cc:3233 +#: f.tools.cc:3242 msgid "align and trim color chart" msgstr "align and trim color chart" -#: f.tools.cc:3234 +#: f.tools.cc:3243 msgid "open and process color chart" msgstr "open and process color chart" -#: f.tools.cc:3235 +#: f.tools.cc:3244 msgid "print image with revised colors" msgstr "print image with revised color" -#: f.tools.cc:3378 +#: f.tools.cc:3387 #, c-format msgid "" "Scan the printed color chart. \n" @@ -3770,7 +3731,7 @@ "The darkest row is at the top. \n" "Save in %s/" -#: f.tools.cc:3393 +#: f.tools.cc:3402 msgid "" "Open and edit the scanned color chart file. \n" "Remove any skew or rotation from scanning. \n" @@ -3782,11 +3743,11 @@ "(Use the Fix Perspective function for this). \n" "Cut off the thin green margin ACCURATELY." -#: f.tools.cc:3425 +#: f.tools.cc:3434 msgid "Open the trimmed color chart file" msgstr "Open the trimmed color chart file" -#: f.tools.cc:3558 +#: f.tools.cc:3567 msgid "" "Set the name for the output calibration file \n" "[your calibration name].dat" @@ -3794,19 +3755,19 @@ "Set the name for the output calibration file \n" "[your calibration name].dat" -#: f.tools.cc:3598 +#: f.tools.cc:3607 msgid "Color map file to use" msgstr "Color map file to use" -#: f.tools.cc:3615 +#: f.tools.cc:3624 msgid "Select the image file to print." msgstr "Select the image file to print." -#: f.tools.cc:3680 +#: f.tools.cc:3689 msgid "converting colors..." msgstr "converting colors..." -#: f.tools.cc:3780 +#: f.tools.cc:3789 msgid "Image colors are converted for printing." msgstr "Image colors are converted for printing." @@ -3980,566 +3941,570 @@ msgid "Open a newly added file" msgstr "Open a newly added file" -#: f.widgets.cc:231 f.widgets.cc:232 +#: f.widgets.cc:231 msgid "Open and edit a camera RAW file" msgstr "Open and edit a camera RAW file" -#: f.widgets.cc:233 +#: f.widgets.cc:232 msgid "Change the image file name" msgstr "Change the image file name" -#: f.widgets.cc:234 +#: f.widgets.cc:233 msgid "Copy or Move an image file to a new location" msgstr "Copy or Move an image file to a new location" -#: f.widgets.cc:235 +#: f.widgets.cc:234 msgid "Create a blank image" msgstr "Create a blank image" -#: f.widgets.cc:236 +#: f.widgets.cc:235 msgid "Delete or trash image file" msgstr "Delete or trash image file" -#: f.widgets.cc:237 +#: f.widgets.cc:236 msgid "Print the current image" msgstr "Print the current image" -#: f.widgets.cc:238 +#: f.widgets.cc:237 msgid "Print current image with adjusted colors" msgstr "Print current image with adjusted colors" -#: f.widgets.cc:239 f.widgets.cc:434 +#: f.widgets.cc:238 f.widgets.cc:434 msgid "Quit Fotoxx" msgstr "Quit Fotoxx" -#: f.widgets.cc:242 +#: f.widgets.cc:241 msgid "List a few key metadata items" msgstr "List a few key metadata items" -#: f.widgets.cc:243 +#: f.widgets.cc:242 msgid "List all metadata items" msgstr "List all metadata items" -#: f.widgets.cc:244 +#: f.widgets.cc:243 msgid "(Toggle) show captions and comments" msgstr "(Toggle) show captions and comments" -#: f.widgets.cc:245 +#: f.widgets.cc:244 msgid "Edit image tags/geotags/caption/rating ..." msgstr "Edit image tags/geotags/caption/rating ..." -#: f.widgets.cc:246 +#: f.widgets.cc:245 msgid "Edit any image metadata" msgstr "Edit any image metadata" -#: f.widgets.cc:247 +#: f.widgets.cc:246 msgid "Remove all metadata from an image" msgstr "Remove all metadata from an image" -#: f.widgets.cc:248 +#: f.widgets.cc:247 msgid "Add/remove tags for multiple images" msgstr "Add/remove tags for multiple images" -#: f.widgets.cc:249 +#: f.widgets.cc:248 msgid "Convert tag names for all images" msgstr "Convert tag names for all images" -#: f.widgets.cc:250 +#: f.widgets.cc:249 msgid "Add/change/delete metadata for multiple images" msgstr "Add/change/delete metadata for multiple images" -#: f.widgets.cc:251 +#: f.widgets.cc:250 msgid "Report metadata for multiple images" msgstr "Report metadata for multiple images" -#: f.widgets.cc:252 +#: f.widgets.cc:251 msgid "Add/revise geotags for multiple images" msgstr "Add/revise geotags for multiple images" -#: f.widgets.cc:257 +#: f.widgets.cc:256 msgid "Select object or area for editing" msgstr "Select object or area for editing" +#: f.widgets.cc:257 +msgid "Find a gap in an area outline" +msgstr "Find a gap in an area outline" + #: f.widgets.cc:258 +msgid "Select hairy or irregular edge" +msgstr "Select hairy or irregular edge" + +#: f.widgets.cc:259 msgid "Show (outline) existing area" msgstr "Show (outline) existing area" -#: f.widgets.cc:259 +#: f.widgets.cc:260 msgid "Hide existing area" msgstr "Hide existing area" -#: f.widgets.cc:260 +#: f.widgets.cc:261 msgid "Enable area for editing" msgstr "Enable area for editing" -#: f.widgets.cc:261 +#: f.widgets.cc:262 msgid "Disable area for editing" msgstr "Disable area for editing" -#: f.widgets.cc:262 +#: f.widgets.cc:263 msgid "Reverse existing area" msgstr "Reverse existing area" -#: f.widgets.cc:263 +#: f.widgets.cc:264 msgid "Erase existing area" msgstr "Erase existing area" -#: f.widgets.cc:264 +#: f.widgets.cc:265 msgid "Copy area for later pasting into image" msgstr "Copy area for later pasting into image" -#: f.widgets.cc:265 -msgid "Paste previously copied area into image" -msgstr "Paste previously copied area into image" - #: f.widgets.cc:266 +msgid "Save area to a file with transparency" +msgstr "Save area to a file with transparency" + +#: f.widgets.cc:267 msgid "Open a file and paste as area into image" msgstr "Open a file and paste as area into image" -#: f.widgets.cc:267 -msgid "Save area to a file with transparency" -msgstr "Save area to a file with transparency" +#: f.widgets.cc:268 +msgid "Paste previously copied area into image" +msgstr "Paste previously copied area into image" -#: f.widgets.cc:270 +#: f.widgets.cc:271 msgid "Trim/Crop margins and/or Rotate" msgstr "Trim/Crop margins and/or Rotate" -#: f.widgets.cc:271 +#: f.widgets.cc:272 msgid "Upright a rotated image" msgstr "Upright a rotated image" -#: f.widgets.cc:272 f.widgets.cc:273 +#: f.widgets.cc:273 f.widgets.cc:274 msgid "Fast auto enhance that may work OK" msgstr "Fast auto enhance that may work OK" -#: f.widgets.cc:274 +#: f.widgets.cc:275 msgid "Adjust brightness, contrast, color" msgstr "Adjust brightness, contrast, color" -#: f.widgets.cc:275 +#: f.widgets.cc:276 msgid "Add local contrast, enhance details" msgstr "Add local contrast, enhance details" -#: f.widgets.cc:276 +#: f.widgets.cc:277 msgid "Edit brightness distribution" msgstr "Edit brightness distribution" -#: f.widgets.cc:277 +#: f.widgets.cc:278 msgid "Flatten zonal brightness distribution" msgstr "Flatten zonal brightness distribution" -#: f.widgets.cc:278 +#: f.widgets.cc:279 msgid "Change pixel dimensions" msgstr "Change pixel dimensions" -#: f.widgets.cc:279 +#: f.widgets.cc:280 msgid "Mirror image horizontally or vertically" msgstr "Mirror image horizontally or vertically" -#: f.widgets.cc:280 +#: f.widgets.cc:281 msgid "Write text on image" msgstr "Write text on image" -#: f.widgets.cc:281 +#: f.widgets.cc:282 msgid "Write lines or arrows on image" msgstr "Write lines or arrows on image" -#: f.widgets.cc:282 +#: f.widgets.cc:283 msgid "Fix brightness uniformity across image" msgstr "Fix brightness uniformity across image" -#: f.widgets.cc:283 +#: f.widgets.cc:284 msgid "Paint edit function gradually with mouse" msgstr "Paint edit function gradually with mouse" -#: f.widgets.cc:284 +#: f.widgets.cc:285 msgid "Leverage edits by brightness or color" msgstr "Leverage edits by brightness or color" -#: f.widgets.cc:285 +#: f.widgets.cc:286 msgid "Edit plugins menu or run a plugin function" msgstr "Edit plugins menu or run a plugin function" -#: f.widgets.cc:288 +#: f.widgets.cc:289 msgid "Make the image look sharper" msgstr "Make the image look sharper" -#: f.widgets.cc:289 +#: f.widgets.cc:290 msgid "Make the image look fuzzy" msgstr "Make the image look fuzzy" -#: f.widgets.cc:290 +#: f.widgets.cc:291 msgid "Filter noise from low-light photos" msgstr "Filter noise from low-light photos" -#: f.widgets.cc:291 +#: f.widgets.cc:292 msgid "Remove unwanted objects" msgstr "Remove unwanted objects" -#: f.widgets.cc:292 +#: f.widgets.cc:293 msgid "Fix red-eyes from electronic flash" msgstr "Fix red-eyes from electronic flash" -#: f.widgets.cc:293 +#: f.widgets.cc:294 msgid "Paint image pixels using the mouse" msgstr "Paint image pixels using the mouse" -#: f.widgets.cc:294 +#: f.widgets.cc:295 msgid "Paint image transparency using the mouse" msgstr "Paint image transparency using the mouse" -#: f.widgets.cc:295 +#: f.widgets.cc:296 msgid "Add image transparency based on image attributes" msgstr "Add image transparency based on image attributes" -#: f.widgets.cc:296 +#: f.widgets.cc:297 msgid "Make BW/color, negative/positive, sepia" msgstr "Make BW/color, negative/positive, sepia" -#: f.widgets.cc:297 +#: f.widgets.cc:298 msgid "Shift/convert colors into other colors" msgstr "Shift/convert colors into other colors" -#: f.widgets.cc:298 +#: f.widgets.cc:299 msgid "Adjust color intensity (saturation)" msgstr "Adjust color intensity (saturation)" -#: f.widgets.cc:299 +#: f.widgets.cc:300 msgid "Adjust color using RGB or CMY colors" msgstr "Adjust color using RGB or CMY colors" -#: f.widgets.cc:300 +#: f.widgets.cc:301 msgid "Adjust color using HSL colors" msgstr "Adjust color using HSL colors" -#: f.widgets.cc:301 +#: f.widgets.cc:302 msgid "Adjust color in selected image areas" msgstr "Adjust color in selected image areas" -#: f.widgets.cc:302 +#: f.widgets.cc:303 msgid "Match colors on one image with another" msgstr "Match colors on one image with another" -#: f.widgets.cc:303 +#: f.widgets.cc:304 msgid "Convert to another color profile" msgstr "Convert to another color profile" -#: f.widgets.cc:304 +#: f.widgets.cc:305 msgid "Remove dust spots from scanned slides" msgstr "Remove dust spots from scanned slides" -#: f.widgets.cc:305 +#: f.widgets.cc:306 msgid "Smoothen edges with jaggies" msgstr "Smoothen edges with jaggies" -#: f.widgets.cc:306 +#: f.widgets.cc:307 msgid "Reduce Chromatic Abberation" msgstr "Reduce Chromatic Abberation" -#: f.widgets.cc:307 +#: f.widgets.cc:308 msgid "Erase known hot and dark pixels" msgstr "Erase known hot and dark pixels" -#: f.widgets.cc:310 +#: f.widgets.cc:311 msgid "Remove curvature, esp. panoramas" msgstr "Remove curvature, esp. panoramas" -#: f.widgets.cc:311 +#: f.widgets.cc:312 msgid "Straighten objects seen from an angle" msgstr "Straighten objects seen from an angle" -#: f.widgets.cc:312 +#: f.widgets.cc:313 msgid "Distort image areas using the mouse" msgstr "Distort image areas using the mouse" -#: f.widgets.cc:313 f.widgets.cc:314 f.widgets.cc:315 +#: f.widgets.cc:314 f.widgets.cc:315 f.widgets.cc:316 msgid "Distort the whole image using the mouse" msgstr "Distort the whole image using the mouse" -#: f.widgets.cc:316 +#: f.widgets.cc:317 msgid "Flatten a photographed book page" msgstr "Flatten a photographed book pag" -#: f.widgets.cc:317 +#: f.widgets.cc:318 msgid "Make a spherical projection of an image" msgstr "Make a spherical projection of an image" -#: f.widgets.cc:318 +#: f.widgets.cc:319 msgid "Rescale image outside selected areas" msgstr "Rescale image outside selected areas" -#: f.widgets.cc:321 +#: f.widgets.cc:322 msgid "Reduce color depth (posterize)" msgstr "Reduce color depth (posterize)" -#: f.widgets.cc:322 +#: f.widgets.cc:323 msgid "Convert to pencil sketch" msgstr "Convert to pencil sketch" -#: f.widgets.cc:323 +#: f.widgets.cc:324 msgid "Convert image into a cartoon drawing" msgstr "Convert image into a cartoon drawing" -#: f.widgets.cc:324 +#: f.widgets.cc:325 msgid "Convert to line drawing (edge detection)" msgstr "Convert to line drawing (edge detection)" -#: f.widgets.cc:325 +#: f.widgets.cc:326 msgid "Convert to solid color drawing" msgstr "Convert to solid color drawing" -#: f.widgets.cc:326 +#: f.widgets.cc:327 msgid "Graduated Blur depending on contrast" msgstr "Graduated Blur depending on contrast" -#: f.widgets.cc:327 +#: f.widgets.cc:328 msgid "Create an embossed or 3D appearance" msgstr "Create an embossed or 3D appearance" -#: f.widgets.cc:328 +#: f.widgets.cc:329 msgid "Convert to square tiles" msgstr "Convert to square tiles" -#: f.widgets.cc:329 +#: f.widgets.cc:330 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Convert to dots (Roy Lichtenstein effect)" -#: f.widgets.cc:330 +#: f.widgets.cc:331 msgid "Convert into a simulated painting" msgstr "Convert into a simulated painting" -#: f.widgets.cc:331 +#: f.widgets.cc:332 msgid "Change brightness or color radially" msgstr "Change brightness or color radially" -#: f.widgets.cc:332 +#: f.widgets.cc:333 msgid "Add texture to an image" msgstr "Add texture to an image" -#: f.widgets.cc:333 +#: f.widgets.cc:334 msgid "Tile image with a repeating pattern" msgstr "Tile image with a repeating pattern" -#: f.widgets.cc:334 +#: f.widgets.cc:335 msgid "Create a mosaic with tiles made from all images" msgstr "Create a mosaic with tiles made from all images" -#: f.widgets.cc:335 +#: f.widgets.cc:336 msgid "Process an image using a custom kernel" msgstr "Process an image using a custom kernel" -#: f.widgets.cc:336 +#: f.widgets.cc:337 msgid "Warp an image with a wave pattern" msgstr "Warp an image with a wave pattern" -#: f.widgets.cc:337 +#: f.widgets.cc:338 msgid "Blur an image in the direction of mouse drags" msgstr "Blur an image in the direction of mouse drags" -#: f.widgets.cc:338 +#: f.widgets.cc:339 msgid "Increasing blur with distance from selected areas" msgstr "Increasing blur with distance from selected areas" -#: f.widgets.cc:341 +#: f.widgets.cc:342 msgid "Combine bright/dark images for better detail" msgstr "Combine bright/dark images for better detail" -#: f.widgets.cc:342 +#: f.widgets.cc:343 msgid "Combine near/far focus images for deeper focus" msgstr "Combine near/far focus images for deeper focus" -#: f.widgets.cc:343 +#: f.widgets.cc:344 msgid "Combine images to erase passing people, etc." msgstr "Combine images to erase passing people, etc." -#: f.widgets.cc:344 +#: f.widgets.cc:345 msgid "Combine noisy images into a low-noise image" msgstr "Combine noisy images into a low-noise image" -#: f.widgets.cc:345 +#: f.widgets.cc:346 msgid "Combine images into a panorama" msgstr "Combine images into a panorama" -#: f.widgets.cc:346 +#: f.widgets.cc:347 msgid "Combine images into a vertical panorama" msgstr "Combine images into a vertical panorama" -#: f.widgets.cc:347 +#: f.widgets.cc:348 msgid "Combine images into a panorama (panorama tools)" msgstr "Combine images into a panorama (panorama tools)" -#: f.widgets.cc:348 +#: f.widgets.cc:349 msgid "Arrange images and text in a layout (montage)" msgstr "Arrange images and text in a layout (montage)" -#: f.widgets.cc:351 +#: f.widgets.cc:352 msgid "Index new files and make thumbnails" msgstr "Index new files and make thumbnails" -#: f.widgets.cc:352 +#: f.widgets.cc:353 msgid "Change user preferences" msgstr "Change user preferences" -#: f.widgets.cc:353 +#: f.widgets.cc:354 msgid "Change Keyboard Shortcut Keys" msgstr "Change Keyboard Shortcut Keys" -#: f.widgets.cc:354 +#: f.widgets.cc:355 msgid "Show a brightness distribution graph" msgstr "Show a brightness distribution graph" -#: f.widgets.cc:355 +#: f.widgets.cc:356 msgid "Show or revise grid lines" msgstr "Show or revise grid lines" -#: f.widgets.cc:356 +#: f.widgets.cc:357 msgid "Change color of foreground lines" msgstr "Change color of foreground lines" -#: f.widgets.cc:357 +#: f.widgets.cc:358 msgid "Show RGB colors at mouse click" msgstr "Show RGB colors at mouse click" -#: f.widgets.cc:358 +#: f.widgets.cc:359 msgid "Magnify image around the mouse position" msgstr "Magnify image around the mouse position" -#: f.widgets.cc:359 +#: f.widgets.cc:360 msgid "Highlight darkest and brightest pixels" msgstr "Highlight darkest and brightest pixels" -#: f.widgets.cc:360 +#: f.widgets.cc:361 msgid "Chart to adjust monitor color" msgstr "Chart to adjust monitor color" -#: f.widgets.cc:361 +#: f.widgets.cc:362 msgid "Chart to adjust monitor gamma" msgstr "Chart to adjust monitor gamma" -#: f.widgets.cc:362 +#: f.widgets.cc:363 msgid "Change the GUI language" msgstr "Change the GUI language" -#: f.widgets.cc:363 +#: f.widgets.cc:364 msgid "Report missing translations" msgstr "Report missing translations" -#: f.widgets.cc:364 +#: f.widgets.cc:365 msgid "Calibrate printer colors" msgstr "Calibrate printer colors" -#: f.widgets.cc:365 +#: f.widgets.cc:366 msgid "Memory and CPU (to terminal/logfile)" msgstr "Memory and CPU (to terminal/logfile" -#: f.widgets.cc:369 +#: f.widgets.cc:370 msgid "Rename/convert/resize/move multiple files" msgstr "Rename/convert/resize/move multiple files" -#: f.widgets.cc:370 +#: f.widgets.cc:371 msgid "Upright multiple rotated image files" msgstr "Upright multiple rotated image files" -#: f.widgets.cc:371 +#: f.widgets.cc:372 msgid "Delete or Trash multiple files" msgstr "Delete or Trash multiple files" -#: f.widgets.cc:372 -msgid "Convert camera RAW files using DCraw" -msgstr "Convert camera RAW files using DCraw" - #: f.widgets.cc:373 +msgid "Convert camera RAW files using libraw" +msgstr "Convert camera RAW files using libraw" + +#: f.widgets.cc:374 msgid "Convert camera RAW files using Raw Therapee" msgstr "Convert camera RAW files using Raw Therapee" -#: f.widgets.cc:374 +#: f.widgets.cc:375 msgid "Build and run edit script files" msgstr "Build and run edit script files" -#: f.widgets.cc:375 +#: f.widgets.cc:376 msgid "Burn selected image files to DVD/BlueRay disc" msgstr "Burn selected image files to DVD/BlueRay disc" -#: f.widgets.cc:376 +#: f.widgets.cc:377 msgid "Search all image files and report duplicates" msgstr "Search all image files and report duplicates" -#: f.widgets.cc:381 +#: f.widgets.cc:382 msgid "Quick Start mini-guide" msgstr "Quick Start mini-guide" -#: f.widgets.cc:382 +#: f.widgets.cc:383 msgid "Read the user guide" msgstr "Read the user guide" -#: f.widgets.cc:383 +#: f.widgets.cc:384 msgid "Recent user guide changes" msgstr "Recent user guide changes" -#: f.widgets.cc:384 +#: f.widgets.cc:385 msgid "Summary of image edit functions" msgstr "Summary of image edit functions" -#: f.widgets.cc:385 +#: f.widgets.cc:386 msgid "Technical installation notes" msgstr "Technical installation notes" -#: f.widgets.cc:386 +#: f.widgets.cc:387 msgid "List updates by Fotoxx version" msgstr "List updates by Fotoxx version" -#: f.widgets.cc:387 +#: f.widgets.cc:388 msgid "View the log file and error messages" msgstr "View the log file and error messages" -#: f.widgets.cc:388 +#: f.widgets.cc:389 msgid "How to do Fotoxx translations" msgstr "How to do Fotoxx translations" -#: f.widgets.cc:389 +#: f.widgets.cc:390 msgid "Show the Fotoxx web page" msgstr "Show the Fotoxx web page" -#: f.widgets.cc:390 +#: f.widgets.cc:391 msgid "Version, license, contact, credits" msgstr "Version, license, contact, credits" -#: f.widgets.cc:393 +#: f.widgets.cc:394 msgid "Organize images into albums" msgstr "Organize images into albums" -#: f.widgets.cc:394 +#: f.widgets.cc:395 msgid "Start a slide show" msgstr "Start a slide show" -#: f.widgets.cc:395 +#: f.widgets.cc:396 msgid "Set desktop wallpaper from current Fotoxx image" msgstr "Set desktop wallpaper from current Fotoxx image" -#: f.widgets.cc:396 +#: f.widgets.cc:397 msgid "Cycle desktop wallpaper from a Fotoxx album" msgstr "Cycle desktop wallpaper from a Fotoxx album" -#: f.widgets.cc:419 +#: f.widgets.cc:420 msgid "New Window" msgstr "New Window" -#: f.widgets.cc:421 +#: f.widgets.cc:422 msgid "Recently Seen Images" msgstr "Recently Seen Images" -#: f.widgets.cc:422 +#: f.widgets.cc:423 msgid "Newest Images" msgstr "Newest Images" -#: f.widgets.cc:424 +#: f.widgets.cc:425 msgid "Open Previous File" msgstr "Open Previous File" -#: f.widgets.cc:425 -msgid "Open RAW (ufraw)" -msgstr "Open RAW (ufraw)" - #: f.widgets.cc:426 msgid "Open RAW (Raw Therapee)" msgstr "Open RAW (Raw Therapee" @@ -4548,7 +4513,7 @@ msgid "New Blank Image" msgstr "New Blank Image" -#: f.widgets.cc:429 f.widgets.cc:727 +#: f.widgets.cc:429 f.widgets.cc:729 msgid "Copy/Move to Location" msgstr "Copy/Move to Location" @@ -4564,7 +4529,7 @@ msgid "Print Calibrated Image" msgstr "Print Calibrated Image" -#: f.widgets.cc:433 f.widgets.cc:585 +#: f.widgets.cc:433 f.widgets.cc:587 msgid "Set Desktop Wallpaper" msgstr "Set Desktop Wallpaper" @@ -4580,19 +4545,19 @@ msgid "Show Captions on Image" msgstr "Show Captions on Image" -#: f.widgets.cc:444 f.widgets.cc:575 +#: f.widgets.cc:444 f.widgets.cc:577 msgid "Batch Rename Tags" msgstr "Batch Rename Tags" -#: f.widgets.cc:445 f.widgets.cc:576 +#: f.widgets.cc:445 f.widgets.cc:578 msgid "Batch Add/Change Metadata" msgstr "Batch Add/Change Metadata" -#: f.widgets.cc:448 f.widgets.cc:580 f.widgets.cc:658 f.widgets.cc:670 +#: f.widgets.cc:448 f.widgets.cc:582 f.widgets.cc:660 f.widgets.cc:672 msgid "Search Images" msgstr "Search Images" -#: f.widgets.cc:449 f.widgets.cc:579 f.widgets.cc:657 f.widgets.cc:669 +#: f.widgets.cc:449 f.widgets.cc:581 f.widgets.cc:659 f.widgets.cc:671 msgid "Images by Geotag" msgstr "Images by Geotag" @@ -4600,359 +4565,359 @@ msgid "Select" msgstr "Select" -#: f.widgets.cc:453 fotoxx.h:1183 +#: f.widgets.cc:453 +msgid "Find Gap" +msgstr "Find Gap" + +#: f.widgets.cc:454 +msgid "Select Hairy" +msgstr "Select Hairy" + +#: f.widgets.cc:455 fotoxx.h:1183 msgid "Show" msgstr "Show" -#: f.widgets.cc:454 fotoxx.h:1136 +#: f.widgets.cc:456 fotoxx.h:1137 msgid "Hide" msgstr "Hide" -#: f.widgets.cc:455 fotoxx.h:1123 +#: f.widgets.cc:457 fotoxx.h:1124 msgid "Enable" msgstr "Enable" -#: f.widgets.cc:456 fotoxx.h:1119 +#: f.widgets.cc:458 fotoxx.h:1120 msgid "Disable" msgstr "Disable" -#: f.widgets.cc:457 fotoxx.h:1139 +#: f.widgets.cc:459 fotoxx.h:1140 msgid "Invert" msgstr "Invert" -#: f.widgets.cc:458 fotoxx.h:1197 +#: f.widgets.cc:460 fotoxx.h:1197 msgid "Unselect" msgstr "Unselect" -#: f.widgets.cc:459 -msgid "Copy Area" -msgstr "Copy Area" - -#: f.widgets.cc:460 +#: f.widgets.cc:462 msgid "Paste Area" msgstr "Paste Area" -#: f.widgets.cc:461 +#: f.widgets.cc:463 msgid "Open Area File" msgstr "Open Area File" -#: f.widgets.cc:462 -msgid "Save Area File" -msgstr "Save Area File" - -#: f.widgets.cc:467 +#: f.widgets.cc:469 msgid "Voodoo 1" msgstr "Voodoo 1" -#: f.widgets.cc:468 +#: f.widgets.cc:470 msgid "Voodoo 2" msgstr "Voodoo 2" -#: f.widgets.cc:470 f.widgets.cc:741 +#: f.widgets.cc:472 f.widgets.cc:743 msgid "Edit Brightness" msgstr "Edit Brightness" -#: f.widgets.cc:471 f.widgets.cc:742 +#: f.widgets.cc:473 f.widgets.cc:744 msgid "Zonal Flatten" msgstr "Zonal Flatten" -#: f.widgets.cc:475 +#: f.widgets.cc:477 msgid "Add Text" msgstr "Add Text" -#: f.widgets.cc:476 +#: f.widgets.cc:478 msgid "Add Lines" msgstr "Add Lines" -#: f.widgets.cc:479 +#: f.widgets.cc:481 msgid "Plugins" msgstr "Plugins" -#: f.widgets.cc:484 +#: f.widgets.cc:486 msgid "Denoise" msgstr "Denoise" -#: f.widgets.cc:486 +#: f.widgets.cc:488 msgid "Red Eyes" msgstr "Red Eyes" -#: f.widgets.cc:493 +#: f.widgets.cc:495 msgid "Adjust RGB/CMY" msgstr "Adjust RGB/CMY" -#: f.widgets.cc:494 +#: f.widgets.cc:496 msgid "Adjust HSL" msgstr "Adjust HSL" -#: f.widgets.cc:495 +#: f.widgets.cc:497 msgid "Ramp Brightness" msgstr "Ramp Brightness" -#: f.widgets.cc:496 +#: f.widgets.cc:498 msgid "Ramp Color" msgstr "Ramp Color" -#: f.widgets.cc:497 +#: f.widgets.cc:499 msgid "Match Colors" msgstr "Match Colors" -#: f.widgets.cc:498 +#: f.widgets.cc:500 msgid "Color Profile" msgstr "Color Profile" -#: f.widgets.cc:500 +#: f.widgets.cc:502 msgid "Anti-Alias" msgstr "Anti-Alias" -#: f.widgets.cc:506 +#: f.widgets.cc:508 msgid "Fix Perspective" msgstr "Fix Perspective" -#: f.widgets.cc:511 +#: f.widgets.cc:513 msgid "Flatten Book Page" msgstr "Flatten Book Page" -#: f.widgets.cc:516 +#: f.widgets.cc:518 msgid "Color Depth" msgstr "Color Depth" -#: f.widgets.cc:517 +#: f.widgets.cc:519 msgid "Sketch" msgstr "Sketch" -#: f.widgets.cc:518 +#: f.widgets.cc:520 msgid "Cartoon" msgstr "Cartoon" -#: f.widgets.cc:522 +#: f.widgets.cc:524 msgid "Embossing" msgstr "Embossing" -#: f.widgets.cc:524 +#: f.widgets.cc:526 msgid "Dots" msgstr "Dots" -#: f.widgets.cc:525 +#: f.widgets.cc:527 msgid "Painting" msgstr "Painting" -#: f.widgets.cc:527 +#: f.widgets.cc:529 msgid "Texture" msgstr "Texture" -#: f.widgets.cc:529 +#: f.widgets.cc:531 msgid "Mosaic" msgstr "Mosaic" -#: f.widgets.cc:536 +#: f.widgets.cc:538 msgid "High Dynamic Range" msgstr "High Dynamic Range" -#: f.widgets.cc:537 +#: f.widgets.cc:539 msgid "High Depth of Field" msgstr "High Depth of Field" -#: f.widgets.cc:538 +#: f.widgets.cc:540 msgid "Stack/Paint" msgstr "Stack/Paint" -#: f.widgets.cc:539 +#: f.widgets.cc:541 msgid "Stack/Noise" msgstr "Stack/Noise" -#: f.widgets.cc:540 +#: f.widgets.cc:542 msgid "Panorama" msgstr "Panorama" -#: f.widgets.cc:541 +#: f.widgets.cc:543 msgid "Vertical Panorama" msgstr "Vertical Panorama" -#: f.widgets.cc:542 +#: f.widgets.cc:544 msgid "PT Panorama" msgstr "PT Panorama" -#: f.widgets.cc:543 +#: f.widgets.cc:545 msgid "Mashup" msgstr "Mashup" -#: f.widgets.cc:549 +#: f.widgets.cc:551 msgid "Brightness Graph" msgstr "Brightness Graph" -#: f.widgets.cc:554 +#: f.widgets.cc:556 msgid "Dark/Bright Pixels" msgstr "Dark/Bright Pixels" -#: f.widgets.cc:555 +#: f.widgets.cc:557 msgid "Monitor Color" msgstr "Monitor Color" -#: f.widgets.cc:557 +#: f.widgets.cc:559 msgid "Change Language" msgstr "Change Language" -#: f.widgets.cc:558 +#: f.widgets.cc:560 msgid "Missing Translations" msgstr "Missing Translations" -#: f.widgets.cc:560 +#: f.widgets.cc:562 msgid "Resources" msgstr "Resources" -#: f.widgets.cc:567 -msgid "Batch RAW (DCraw)" -msgstr "Batch RAW (DCraw)" - -#: f.widgets.cc:568 -msgid "Batch RAW (Raw Therapee)" -msgstr "Batch RAW (Raw Therapee)" - #: f.widgets.cc:569 +msgid "Batch RAW" +msgstr "Batch RAW" + +#: f.widgets.cc:570 +msgid "Batch Raw Therapee" +msgstr "Batch Raw Therapee" + +#: f.widgets.cc:571 msgid "Script Files" msgstr "Script Files" -#: f.widgets.cc:572 +#: f.widgets.cc:574 msgid "Create File of Image Files" msgstr "Create File of Image Files" -#: f.widgets.cc:586 +#: f.widgets.cc:588 msgid "Cycle Desktop Wallpaper" msgstr "Cycle Desktop Wallpaper" -#: f.widgets.cc:603 f.widgets.cc:627 f.widgets.cc:651 f.widgets.cc:665 +#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 msgid "Gallery" msgstr "Gallery" -#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 +#: f.widgets.cc:606 f.widgets.cc:630 f.widgets.cc:654 f.widgets.cc:668 msgid "World Maps" msgstr "World Maps" -#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 +#: f.widgets.cc:607 f.widgets.cc:631 f.widgets.cc:655 f.widgets.cc:669 msgid "OSM Maps" msgstr "OSM Maps" -#: f.widgets.cc:607 f.widgets.cc:631 +#: f.widgets.cc:609 f.widgets.cc:633 msgid "Favorites" msgstr "Favorites" -#: f.widgets.cc:609 fotoxx.h:1177 +#: f.widgets.cc:611 fotoxx.h:1178 msgid "Save" msgstr "Save" -#: f.widgets.cc:610 +#: f.widgets.cc:612 msgid "Prev/Next" msgstr "Prev/Next" -#: f.widgets.cc:612 +#: f.widgets.cc:614 msgid "Areas" msgstr "Areas" -#: f.widgets.cc:613 fotoxx.h:1122 +#: f.widgets.cc:615 fotoxx.h:1123 msgid "Edit" msgstr "Edit" -#: f.widgets.cc:614 +#: f.widgets.cc:616 msgid "Repair" msgstr "Repair" -#: f.widgets.cc:615 +#: f.widgets.cc:617 msgid "Bend" msgstr "Bend" -#: f.widgets.cc:616 +#: f.widgets.cc:618 msgid "Effects" msgstr "Effects" -#: f.widgets.cc:617 +#: f.widgets.cc:619 msgid "Combine" msgstr "Combine" -#: f.widgets.cc:618 +#: f.widgets.cc:620 msgid "Undo/Redo" msgstr "Undo/Redo" -#: f.widgets.cc:619 +#: f.widgets.cc:621 msgid "Tools" msgstr "Tools" -#: f.widgets.cc:633 +#: f.widgets.cc:635 msgid "Albums" msgstr "Albums" -#: f.widgets.cc:634 +#: f.widgets.cc:636 msgid "Bookmarks" msgstr "Bookmarks" -#: f.widgets.cc:643 +#: f.widgets.cc:645 msgid "Batch" msgstr "Batch" -#: f.widgets.cc:655 +#: f.widgets.cc:657 msgid "Choose Map" msgstr "Choose Map" -#: f.widgets.cc:656 +#: f.widgets.cc:658 msgid "Search Range" msgstr "Search Range" -#: f.widgets.cc:676 fotoxx.h:1195 +#: f.widgets.cc:678 fotoxx.h:1195 msgid "Undo" msgstr "Undo" -#: f.widgets.cc:677 fotoxx.h:1168 +#: f.widgets.cc:679 fotoxx.h:1169 msgid "Redo" msgstr "Redo" -#: f.widgets.cc:678 +#: f.widgets.cc:680 msgid "Save File Version" msgstr "Save File Version" -#: f.widgets.cc:722 +#: f.widgets.cc:724 msgid "Popup Image" msgstr "Popup Image" -#: f.widgets.cc:726 fotoxx.h:1171 +#: f.widgets.cc:728 fotoxx.h:1172 msgid "Rename" msgstr "Rename" -#: f.widgets.cc:728 +#: f.widgets.cc:730 msgid "Copy to Clipboard" msgstr "Copy to Clipboard" -#: f.widgets.cc:729 +#: f.widgets.cc:731 msgid "Remove from Album" msgstr "Remove from Album" -#: f.widgets.cc:730 +#: f.widgets.cc:732 msgid "Cut to Image Cache" msgstr "Cut to Image Cache" -#: f.widgets.cc:731 +#: f.widgets.cc:733 msgid "Copy to Image Cache" msgstr "Copy to Image Cache" -#: f.widgets.cc:732 +#: f.widgets.cc:734 msgid "Paste Image Cache Here (clear)" msgstr "Paste Image Cache Here (clear)" -#: f.widgets.cc:733 +#: f.widgets.cc:735 msgid "Paste Image Cache Here (keep)" msgstr "Paste Image Cache Here (keep)" -#: f.widgets.cc:734 +#: f.widgets.cc:736 msgid "Paste Current Image File Here" msgstr "Paste Current Image File Here" -#: f.widgets.cc:744 +#: f.widgets.cc:746 msgid "Select Area" msgstr "Select Area" -#: f.widgets.cc:747 +#: f.widgets.cc:748 msgid "Show on OSM Map" msgstr "Show on OSM Map" -#: f.widgets.cc:748 +#: f.widgets.cc:749 msgid "Delete/Trash" msgstr "Delete/Trash" @@ -4960,59 +4925,59 @@ msgid "Image Locations" msgstr "Image Locations" -#: fotoxx-16.06.cc:392 +#: fotoxx-16.07.cc:387 msgid "Please install missing programs:" msgstr "Please install missing programs:" -#: fotoxx-16.06.cc:683 +#: fotoxx-16.07.cc:675 msgid "Kill active dialog?" msgstr "Kill active dialog?" -#: fotoxx-16.06.cc:764 +#: fotoxx-16.07.cc:756 msgid "(reduced)" msgstr "(reduced" -#: fotoxx-16.06.cc:765 +#: fotoxx-16.07.cc:757 msgid "area active" msgstr "area active" -#: fotoxx-16.06.cc:766 +#: fotoxx-16.07.cc:758 msgid "dialog open" msgstr "dialog open" -#: fotoxx-16.06.cc:767 +#: fotoxx-16.07.cc:759 msgid "blocked" msgstr "blocked" -#: fotoxx-16.06.cc:818 +#: fotoxx-16.07.cc:810 msgid "edits" msgstr "edits" -#: fotoxx-16.06.cc:2921 +#: fotoxx-16.07.cc:2932 msgid "Exceed 50 anchor points" msgstr "Exceed 50 anchor points" -#: fotoxx-16.06.cc:3141 +#: fotoxx-16.07.cc:3152 msgid "load curve from a file" msgstr "load curve from a file" -#: fotoxx-16.06.cc:3207 +#: fotoxx-16.07.cc:3218 msgid "curve file is invalid" msgstr "curve file is invalid" -#: fotoxx-16.06.cc:3221 +#: fotoxx-16.07.cc:3232 msgid "save curve to a file" msgstr "save curve to a file" -#: fotoxx-16.06.cc:3293 +#: fotoxx-16.07.cc:3304 msgid "Too many edits, please save image" msgstr "Too many edits, please save image" -#: fotoxx-16.06.cc:3298 +#: fotoxx-16.07.cc:3309 msgid "this function cannot be scripted" msgstr "this function cannot be scripted" -#: fotoxx-16.06.cc:3315 +#: fotoxx-16.07.cc:3326 msgid "" "Select area not active.\n" "Continue?" @@ -5020,27 +4985,27 @@ "Select area not active.\n" "Continue?" -#: fotoxx-16.06.cc:3630 +#: fotoxx-16.07.cc:3641 msgid "file data does not fit dialog" msgstr "file data does not fit dialog" -#: fotoxx-16.06.cc:3640 +#: fotoxx-16.07.cc:3651 msgid "Save settings to a file" msgstr "Save settings to a file" -#: fotoxx-16.06.cc:3993 +#: fotoxx-16.07.cc:4004 msgid "This action will discard changes to current image" msgstr "This action will discard changes to current image" -#: fotoxx-16.06.cc:3994 +#: fotoxx-16.07.cc:4005 msgid "prior function still active" msgstr "prior function still active" -#: fotoxx-16.06.cc:3995 fotoxx.h:1140 +#: fotoxx-16.07.cc:4006 fotoxx.h:1141 msgid "Keep" msgstr "Keep" -#: fotoxx-16.06.cc:3996 +#: fotoxx-16.07.cc:4007 msgid "Discard" msgstr "Discard" @@ -5076,7 +5041,7 @@ msgid "Blend Width" msgstr "Blend Width" -#: fotoxx.h:1103 zfuncs.cc:10576 +#: fotoxx.h:1103 zfuncs.cc:10518 msgid "bottom" msgstr "bottom" @@ -5105,206 +5070,198 @@ msgstr "Color" #: fotoxx.h:1111 +msgid "COMPLETED" +msgstr "COMPLETED" + +#: fotoxx.h:1112 msgid "continue" msgstr "continue" -#: fotoxx.h:1113 +#: fotoxx.h:1114 msgid "Copy" msgstr "Copy" -#: fotoxx.h:1114 +#: fotoxx.h:1115 msgid "Create" msgstr "Create" -#: fotoxx.h:1115 +#: fotoxx.h:1116 msgid "Curve File:" msgstr "Curve File:" -#: fotoxx.h:1116 +#: fotoxx.h:1117 msgid "Cut" msgstr "Cut" -#: fotoxx.h:1117 +#: fotoxx.h:1118 msgid "Deband" msgstr "Deband" -#: fotoxx.h:1118 +#: fotoxx.h:1119 msgid "Delete" msgstr "Delete" -#: fotoxx.h:1120 +#: fotoxx.h:1121 msgid "Done" msgstr "Done" -#: fotoxx.h:1121 +#: fotoxx.h:1122 msgid "edge" msgstr "edge" -#: fotoxx.h:1124 +#: fotoxx.h:1125 msgid "Erase" msgstr "Erase" -#: fotoxx.h:1125 +#: fotoxx.h:1126 msgid "Fetch" msgstr "Fetch" -#: fotoxx.h:1126 +#: fotoxx.h:1127 msgid "output file already exists" msgstr "output file already exists" -#: fotoxx.h:1127 +#: fotoxx.h:1128 #, c-format msgid "%d files selected" msgstr "%d files selected" -#: fotoxx.h:1128 +#: fotoxx.h:1129 msgid "Find" msgstr "Find" -#: fotoxx.h:1129 +#: fotoxx.h:1130 msgid "Finish" msgstr "Finish" -#: fotoxx.h:1130 -msgid "Flatten" -msgstr "Flatten" - -#: fotoxx.h:1131 +#: fotoxx.h:1132 msgid "Font" msgstr "Font" -#: fotoxx.h:1133 +#: fotoxx.h:1134 msgid "Grid" msgstr "Grid" -#: fotoxx.h:1134 +#: fotoxx.h:1135 msgid "Height" msgstr "Height" -#: fotoxx.h:1137 +#: fotoxx.h:1138 msgid "Images" msgstr "Images" -#: fotoxx.h:1138 +#: fotoxx.h:1139 msgid "Insert" msgstr "Insert" -#: fotoxx.h:1141 zfuncs.cc:10580 +#: fotoxx.h:1142 zfuncs.cc:10522 msgid "left" msgstr "left" -#: fotoxx.h:1142 +#: fotoxx.h:1143 msgid "limit" msgstr "limit" -#: fotoxx.h:1143 +#: fotoxx.h:1144 msgid "Load" msgstr "Load" -#: fotoxx.h:1144 +#: fotoxx.h:1145 msgid "Make" msgstr "Make" -#: fotoxx.h:1146 +#: fotoxx.h:1147 msgid "Map" msgstr "Map" -#: fotoxx.h:1147 -msgid "Match Level" -msgstr "Match Level" - -#: fotoxx.h:1148 +#: fotoxx.h:1149 msgid "Max" msgstr "Max" -#: fotoxx.h:1149 +#: fotoxx.h:1150 msgid "Negative" msgstr "Negative" -#: fotoxx.h:1150 +#: fotoxx.h:1151 msgid "New" msgstr "New" -#: fotoxx.h:1151 +#: fotoxx.h:1152 msgid "Next" msgstr "Next" -#: fotoxx.h:1152 zfuncs.cc:9658 +#: fotoxx.h:1153 zfuncs.cc:9600 msgid "No" msgstr "No" -#: fotoxx.h:1153 +#: fotoxx.h:1154 msgid "no images" msgstr "no images" -#: fotoxx.h:1155 +#: fotoxx.h:1156 msgid "no selection" msgstr "no selection" -#: fotoxx.h:1156 +#: fotoxx.h:1157 msgid "OK" msgstr "OK" -#: fotoxx.h:1158 +#: fotoxx.h:1159 msgid "Paste" msgstr "Paste" -#: fotoxx.h:1159 +#: fotoxx.h:1160 msgid "Pause" msgstr "Pause" -#: fotoxx.h:1160 +#: fotoxx.h:1161 msgid "Percent" msgstr "Percent" -#: fotoxx.h:1162 +#: fotoxx.h:1163 msgid "Presets" msgstr "Presets" -#: fotoxx.h:1163 +#: fotoxx.h:1164 msgid "Prev" msgstr "Prev" -#: fotoxx.h:1164 +#: fotoxx.h:1165 msgid "Proceed" msgstr "Proceed" -#: fotoxx.h:1166 +#: fotoxx.h:1167 msgid "range" msgstr "range" -#: fotoxx.h:1169 +#: fotoxx.h:1170 msgid "Reduce" msgstr "Reduce" -#: fotoxx.h:1170 +#: fotoxx.h:1171 msgid "Remove" msgstr "Remove" -#: fotoxx.h:1172 +#: fotoxx.h:1173 msgid "Replace" msgstr "Replace" -#: fotoxx.h:1173 +#: fotoxx.h:1174 msgid "Reserved" msgstr "Reserved" -#: fotoxx.h:1174 +#: fotoxx.h:1175 msgid "Reset" msgstr "Reset" -#: fotoxx.h:1175 zfuncs.cc:10584 +#: fotoxx.h:1176 zfuncs.cc:10526 msgid "right" msgstr "right" -#: fotoxx.h:1176 +#: fotoxx.h:1177 msgid "Rotate" msgstr "Rotate" -#: fotoxx.h:1178 -msgid "Unknown file type, save as tiff/jpeg/png to edit" -msgstr "Unknown file type, save as tiff/jpeg/png to edit" - #: fotoxx.h:1179 msgid "Search" msgstr "Search" @@ -5334,7 +5291,7 @@ msgid "exceed %d files" msgstr "exceed %d files" -#: fotoxx.h:1189 zfuncs.cc:10572 +#: fotoxx.h:1189 zfuncs.cc:10514 msgid "top" msgstr "top" @@ -5382,11 +5339,11 @@ msgid "y-offset" msgstr "y-offset" -#: fotoxx.h:1204 zfuncs.cc:9658 +#: fotoxx.h:1204 zfuncs.cc:9600 msgid "Yes" msgstr "Yes" -#: zfuncs.cc:1687 +#: zfuncs.cc:1693 #, c-format msgid "" "create directory? \n" @@ -5395,105 +5352,77 @@ "create directory? \n" " %s" -#: zfuncs.cc:4530 +#: zfuncs.cc:4535 msgid "user guide not found" msgstr "user guide not found" -#: zfuncs.cc:5345 +#: zfuncs.cc:5287 #, c-format msgid "cannot open file %s" msgstr "cannot open file %s" -#: zfuncs.cc:5381 +#: zfuncs.cc:5323 msgid "save screen to file" msgstr "save screen to file" -#: zfuncs.cc:9744 zfuncs.cc:10239 zfuncs.cc:10559 +#: zfuncs.cc:9686 zfuncs.cc:10181 zfuncs.cc:10501 msgid "cancel" msgstr "cancel" -#: zfuncs.cc:10200 +#: zfuncs.cc:10142 msgid "choose file" msgstr "choose file" -#: zfuncs.cc:10205 +#: zfuncs.cc:10147 msgid "choose files" msgstr "choose files" -#: zfuncs.cc:10210 +#: zfuncs.cc:10152 msgid "save" msgstr "save" -#: zfuncs.cc:10216 +#: zfuncs.cc:10158 msgid "choose folder" msgstr "choose folder" -#: zfuncs.cc:10221 +#: zfuncs.cc:10163 msgid "choose folders" msgstr "choose folders" -#: zfuncs.cc:10226 +#: zfuncs.cc:10168 msgid "create folder" msgstr "create folder" -#: zfuncs.cc:10233 +#: zfuncs.cc:10175 msgid "hidden" msgstr "hidden" -#: zfuncs.cc:10559 +#: zfuncs.cc:10501 msgid "done" msgstr "done" -#: zfuncs.cc:10559 zfuncs.cc:10568 +#: zfuncs.cc:10501 zfuncs.cc:10510 msgid "margins" msgstr "margins" -#: zfuncs.cc:10589 +#: zfuncs.cc:10531 msgid "image scale" msgstr "image scale" -#: zfuncs.cc:10591 +#: zfuncs.cc:10533 msgid "percent" msgstr "percent" -#: zfuncs.cc:10598 +#: zfuncs.cc:10540 msgid "image" msgstr "image" -#: zfuncs.cc:10602 +#: zfuncs.cc:10544 msgid "width" msgstr "width" -#: zfuncs.cc:10606 +#: zfuncs.cc:10548 msgid "height" msgstr "height" -#~ msgid "edit geotags (location data)" -#~ msgstr "edit geotags (location data)" - -#~ msgid "Edit Geotags" -#~ msgstr "Edit Geotags" - -#~ msgid "Geocoding web service courtesy of" -#~ msgstr "Geocoding web service courtesy of" - -#~ msgid "case-sensitive match" -#~ msgstr "case-sensitive match" - -#~ msgid "other criteria" -#~ msgstr "other criteria" - -#~ msgid "Add Geotags Search Criteria" -#~ msgstr "Add Geotags Search Criteria" - -#~ msgid "range (km)" -#~ msgstr "range (km)" - -#~ msgid "error in latitude/longitude/range" -#~ msgstr "error in latitude/longitude/range" - -#~ msgid "search will use only latitude/longitude" -#~ msgstr "search will use only latitude/longitude" -#~ msgid "Geotags" -#~ msgstr "Geotags" diff -Nru fotoxx-16.06/locales/translate-es.po fotoxx-16.07/locales/translate-es.po --- fotoxx-16.06/locales/translate-es.po 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/locales/translate-es.po 2016-07-01 10:19:38.000000000 +0000 @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: home 2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-31 15:14+0200\n" -"PO-Revision-Date: 2016-01-04 23:42+0100\n" +"POT-Creation-Date: 2016-07-01 12:18+0200\n" +"PO-Revision-Date: 2016-06-06 22:07+0200\n" "Last-Translator: Josep Antoni Miralles Puignau \n" "Language-Team: nLanguage: es\n" "Language: \n" @@ -18,7 +18,7 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: f.albums.cc:87 +#: f.albums.cc:93 msgid "" "Right-click album thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -26,252 +26,252 @@ "Clic derecho en miniatura dl álbum para cortar/copiar \n" "a la caché, insertar desde la caché, o eliminar" -#: f.albums.cc:89 +#: f.albums.cc:95 msgid "Drag album thumbnail to new position." msgstr "Arrastrar miniatura del álbum a la nueva posición" -#: f.albums.cc:118 f.widgets.cc:583 +#: f.albums.cc:124 f.widgets.cc:585 msgid "Manage Albums" msgstr "Gestionar álbum" -#: f.albums.cc:129 f.albums.cc:266 +#: f.albums.cc:136 f.albums.cc:273 msgid "Create or replace an album" msgstr "Crear o reemplazar un álbum" -#: f.albums.cc:131 +#: f.albums.cc:138 msgid "Album to view or edit" msgstr "Álbum para ver o editar" -#: f.albums.cc:133 +#: f.albums.cc:140 msgid "Select images, add to cache" msgstr "Seleccionar imágenes, añadir al caché" -#: f.albums.cc:135 +#: f.albums.cc:142 msgid "Clear image cache" msgstr "Limpiar caché de imagen" -#: f.albums.cc:137 f.albums.cc:159 +#: f.albums.cc:144 f.albums.cc:164 msgid "Delete an album" msgstr "Borrar un álbum" -#: f.albums.cc:158 +#: f.albums.cc:163 msgid "Choose Album" msgstr "Elegir álbum" -#: f.albums.cc:160 +#: f.albums.cc:165 #, c-format msgid "Image cache has %d images" msgstr "Caché de imágenes tiene %d imágenes" -#: f.albums.cc:161 +#: f.albums.cc:166 msgid "cache added to empty album" msgstr "caché añadida a álbum vacío" -#: f.albums.cc:215 +#: f.albums.cc:220 #, c-format msgid "delete %s ?" msgstr "¿borrar %s ?" -#: f.albums.cc:250 +#: f.albums.cc:257 #, c-format msgid "fill from image cache (%d images)" msgstr "llenar desde caché (%d imágenes)" -#: f.albums.cc:268 f.albums.cc:305 +#: f.albums.cc:275 f.albums.cc:312 msgid "Album Name" msgstr "Nombre del álbum" -#: f.albums.cc:274 +#: f.albums.cc:281 msgid "make an initially empty album" msgstr "crear un álbum vacío" -#: f.albums.cc:276 +#: f.albums.cc:283 msgid "fill from current gallery" msgstr "llenar desde la galería actual" -#: f.albums.cc:319 +#: f.albums.cc:326 msgid "enter an album name" msgstr "introducir un nombre de álbum" -#: f.albums.cc:346 +#: f.albums.cc:353 msgid "gallery is empty" msgstr "la galería está vacía" -#: f.albums.cc:373 +#: f.albums.cc:380 msgid "new album created" msgstr "nuevo álbum creado" -#: f.albums.cc:1157 +#: f.albums.cc:1212 msgid "instant" msgstr "instantánea" -#: f.albums.cc:1158 +#: f.albums.cc:1213 msgid "fade-in" msgstr "fundido" -#: f.albums.cc:1159 +#: f.albums.cc:1214 msgid "roll-right" msgstr "desenrollar hacia la derecha" -#: f.albums.cc:1160 +#: f.albums.cc:1215 msgid "roll-down" msgstr "desenrollar hacia abajo" -#: f.albums.cc:1161 +#: f.albums.cc:1216 msgid "venetian" msgstr "persiana" -#: f.albums.cc:1162 +#: f.albums.cc:1217 msgid "grate" msgstr "enrejado" -#: f.albums.cc:1163 +#: f.albums.cc:1218 msgid "rectangle" msgstr "rectángulo" -#: f.albums.cc:1164 +#: f.albums.cc:1219 msgid "implode" msgstr "implosión" -#: f.albums.cc:1165 +#: f.albums.cc:1220 msgid "explode" msgstr "explosión" -#: f.albums.cc:1166 +#: f.albums.cc:1221 msgid "radar" msgstr "radar" -#: f.albums.cc:1167 +#: f.albums.cc:1222 msgid "spiral" msgstr "espiral" -#: f.albums.cc:1168 +#: f.albums.cc:1223 msgid "Japanese-fan" msgstr "abanico japonés" -#: f.albums.cc:1169 +#: f.albums.cc:1224 msgid "jaws" msgstr "dientes" -#: f.albums.cc:1170 +#: f.albums.cc:1225 msgid "ellipse" msgstr "elipse" -#: f.albums.cc:1171 +#: f.albums.cc:1226 msgid "raindrops" msgstr "gotas de lluvia" -#: f.albums.cc:1172 +#: f.albums.cc:1227 msgid "doubledoor" msgstr "doble puerta" -#: f.albums.cc:1173 +#: f.albums.cc:1228 msgid "rotate" msgstr "girar" -#: f.albums.cc:1174 +#: f.albums.cc:1229 msgid "fallover" msgstr "hacia abajo" -#: f.albums.cc:1175 +#: f.albums.cc:1230 msgid "spheroid" msgstr "esferoide" -#: f.albums.cc:1176 +#: f.albums.cc:1231 msgid "turn-page" msgstr "girar página" -#: f.albums.cc:1177 +#: f.albums.cc:1232 msgid "french-door" msgstr "puertas batientes" -#: f.albums.cc:1197 f.widgets.cc:584 +#: f.albums.cc:1254 f.widgets.cc:586 msgid "Slide Show" msgstr "Diaporama" -#: f.albums.cc:1208 +#: f.albums.cc:1265 msgid "Clip Limit" msgstr "Límite de secuencia" -#: f.albums.cc:1212 +#: f.albums.cc:1269 msgid "Music File" msgstr "Archivo de Música" -#: f.albums.cc:1217 +#: f.albums.cc:1274 msgid "Full Screen" msgstr "Pantalla completa" -#: f.albums.cc:1218 +#: f.albums.cc:1275 msgid "Auto-replay" msgstr "Auto reiniciar" -#: f.albums.cc:1219 +#: f.albums.cc:1276 msgid "KB functions" msgstr "Funciones de teclado" -#: f.albums.cc:1222 +#: f.albums.cc:1279 msgid "Customize:" msgstr "Personalizar:" -#: f.albums.cc:1223 +#: f.albums.cc:1280 msgid "transitions" msgstr "transiciones" -#: f.albums.cc:1224 +#: f.albums.cc:1281 msgid "image files" msgstr "archivos de imagen" -#: f.albums.cc:1229 f.albums.cc:1356 +#: f.albums.cc:1286 f.albums.cc:1413 #, c-format msgid "%d images" msgstr "%d imágenes" -#: f.albums.cc:1251 f.albums.cc:1326 f.albums.cc:1422 f.albums.cc:1661 -#: f.albums.cc:1946 f.albums.cc:1963 f.albums.cc:2177 +#: f.albums.cc:1308 f.albums.cc:1383 f.albums.cc:1479 f.albums.cc:1718 +#: f.albums.cc:2003 f.albums.cc:2020 f.albums.cc:2234 msgid "invalid album" msgstr "álbum inválido" -#: f.albums.cc:1340 +#: f.albums.cc:1397 msgid "open album" msgstr "abrir álbum" -#: f.albums.cc:1372 +#: f.albums.cc:1429 msgid "Select music file" msgstr "Seleccione archivo de música" -#: f.albums.cc:1401 +#: f.albums.cc:1458 msgid "select random (if 2+ enabled)" msgstr "selección aleatoria (si activado +2)" -#: f.albums.cc:1426 +#: f.albums.cc:1483 msgid "Transition Preferences" msgstr "Preferencias de transición" -#: f.albums.cc:1429 f.edit.cc:2008 +#: f.albums.cc:1486 f.edit.cc:2008 msgid "Settings File" msgstr "Ajustes" -#: f.albums.cc:1439 +#: f.albums.cc:1496 msgid "transition" msgstr "transición" -#: f.albums.cc:1440 +#: f.albums.cc:1497 msgid "enabled" msgstr "activado" -#: f.albums.cc:1441 +#: f.albums.cc:1498 msgid "slowdown" msgstr "ralentizar" -#: f.albums.cc:1442 +#: f.albums.cc:1499 msgid "preference" msgstr "preferencia" -#: f.albums.cc:1517 f.albums.cc:1556 +#: f.albums.cc:1574 f.albums.cc:1613 msgid "invalid file" msgstr "archivo no válido" -#: f.albums.cc:1610 f.albums.cc:2162 +#: f.albums.cc:1667 f.albums.cc:2219 #, c-format msgid "" "file format error: \n" @@ -280,84 +280,84 @@ "error de formato de archivo: \n" " %s" -#: f.albums.cc:1667 +#: f.albums.cc:1724 msgid "Image Preferences" msgstr "Preferencias de imagen" -#: f.albums.cc:1671 f.edit.cc:1338 f.file.cc:1166 f.file.cc:1427 f.meta.cc:617 -#: f.meta.cc:1414 +#: f.albums.cc:1728 f.edit.cc:1338 f.file.cc:1091 f.file.cc:1352 f.meta.cc:617 +#: f.meta.cc:1412 msgid "Image File:" msgstr "Imagen:" -#: f.albums.cc:1675 +#: f.albums.cc:1732 msgid "Play tone when image shows" msgstr "Reproducir música mientras se ve la imagen" -#: f.albums.cc:1678 +#: f.albums.cc:1735 msgid "Show image caption" msgstr "Mostrar título del diaporama" -#: f.albums.cc:1683 +#: f.albums.cc:1740 msgid "Show image comments" msgstr "Mostrar comentarios de la imagen" -#: f.albums.cc:1688 +#: f.albums.cc:1745 msgid "Wait before zoom" msgstr "Espera antes del zoom" -#: f.albums.cc:1693 +#: f.albums.cc:1750 msgid "Zoom type:" msgstr "Tipo de zoom:" -#: f.albums.cc:1694 +#: f.albums.cc:1751 msgid "none" msgstr "ninguno" -#: f.albums.cc:1695 +#: f.albums.cc:1752 msgid "zoom-in" msgstr "acercar" -#: f.albums.cc:1696 +#: f.albums.cc:1753 msgid "zoom-out" msgstr "alejar" -#: f.albums.cc:1699 +#: f.albums.cc:1756 msgid "Zoom size (x)" msgstr "Tamaño de zoom (x)" -#: f.albums.cc:1702 +#: f.albums.cc:1759 msgid "Steps" msgstr "Pasos" -#: f.albums.cc:1706 +#: f.albums.cc:1763 msgid "Zoom Center" msgstr "Centrar zoom" -#: f.albums.cc:1710 +#: f.albums.cc:1767 msgid "Wait after zoom" msgstr "Espera después del zoom" -#: f.albums.cc:1715 +#: f.albums.cc:1772 msgid "Transition to next image" msgstr "Transición a la próxima imagen" -#: f.albums.cc:1718 f.albums.cc:1821 +#: f.albums.cc:1775 f.albums.cc:1878 msgid "next" msgstr "siguiente" -#: f.albums.cc:1811 +#: f.albums.cc:1868 msgid "click on thumbnail to set zoom center" msgstr "clic en la miniatura para situar el centro de zoom" -#: f.area.cc:81 +#: f.area.cc:82 msgid "Select Area for Edits" msgstr "Seleccionar área a editar" -#: f.area.cc:82 f.edit.cc:5919 +#: f.area.cc:83 f.edit.cc:5919 msgid "Press F1 for help" msgstr "Pulsar F1 para ayuda" -#: f.area.cc:91 +#: f.area.cc:92 msgid "" "Select Area not supported \n" "by this edit function" @@ -365,147 +365,192 @@ "Selección de área no admitida \n" "por esta función de edición" -#: f.area.cc:121 +#: f.area.cc:122 msgid "select rectangle" msgstr "seleccionar rectángulo" -#: f.area.cc:122 +#: f.area.cc:123 msgid "select ellipse" msgstr "seleccionar elipse" -#: f.area.cc:125 +#: f.area.cc:126 msgid "freehand draw" msgstr "dibujar a mano alzada" -#: f.area.cc:126 +#: f.area.cc:127 msgid "follow edge" msgstr "seguir contorno" -#: f.area.cc:127 +#: f.area.cc:128 msgid "draw/replace" msgstr "dibujar/reemplazar" -#: f.area.cc:130 +#: f.area.cc:131 msgid "select area within mouse circle" -msgstr "" +msgstr "seleccionar área interior del cursor" -#: f.area.cc:133 +#: f.area.cc:134 msgid "select one matching color within mouse circle:" -msgstr "" +msgstr "seleccionar un color coincidente con el interior del cursor" -#: f.area.cc:135 +#: f.area.cc:136 msgid "" "first select the checkbox, then \n" "shift+click on image to set the color" msgstr "" +"primero seleccion la caja de selección, después \n" +"mayús+clic en la imagen para ajustar el color" -#: f.area.cc:139 +#: f.area.cc:140 msgid "select all matching colors within mouse circle" -msgstr "" +msgstr "seleccione todos los colores coincidentes con el interior del cursor" -#: f.area.cc:143 f.edit.cc:5961 +#: f.area.cc:144 f.edit.cc:5961 msgid "mouse radius" msgstr "radio del cursor" -#: f.area.cc:146 +#: f.area.cc:147 msgid "match level %" msgstr "nivel de coincidencia %" -#: f.area.cc:151 +#: f.area.cc:152 msgid "search range" msgstr "rango de búsqueda" -#: f.area.cc:155 +#: f.area.cc:156 msgid "Area Edge Blend Width" msgstr "Ancho de mezcla de bordes de área" -#: f.area.cc:158 +#: f.area.cc:159 msgid "Edge Creep" msgstr "Borde progresivo" -#: f.area.cc:163 +#: f.area.cc:164 msgid "Line Color:" msgstr "Color de línea:" -#: f.area.cc:183 f.area.cc:184 +#: f.area.cc:184 f.area.cc:185 msgid "area edits fade away within edge distance" msgstr "las ediciones de área se desvanecen en los bordes" -#: f.area.cc:356 f.area.cc:539 +#: f.area.cc:357 f.area.cc:540 #, c-format msgid "exceed %d edits" msgstr "excedido en %d ediciones" -#: f.area.cc:1361 +#: f.area.cc:1358 f.area.cc:1668 msgid "" -"Click one time inside each enclosed area \n" -"(possible gaps in the outline will be found). \n" -"Press [Done] when finished. Press F1 for help." +"Click one time inside each enclosed area. \n" +"Possible gaps in the outline will be found. \n" +"Press F1 for help." msgstr "" +"Clicar una vez en el ineterior de cada área cerrada. \n" +"Se encontrarán posibles separaciones en el contorno. \n" +"Presionar F1 para ayuda." -#: f.area.cc:1389 +#: f.area.cc:1385 msgid "finish area" msgstr "terminar área" -#: f.area.cc:1397 -msgid "extend to corner:" -msgstr "extender hasta la esquina" - -#: f.area.cc:1438 -msgid "searching" -msgstr "buscando" +#: f.area.cc:1411 f.area.cc:1563 +#, c-format +msgid "found %d pixels" +msgstr "encontrados %d pixels" + +#: f.area.cc:1693 +msgid "find outline gap" +msgstr "encontrar separación en el contorno" + +#: f.area.cc:1775 +msgid "cannot find area outline" +msgstr "no se encuentra contorno de área" -#: f.area.cc:1469 +#: f.area.cc:1846 msgid "outline has a gap" msgstr "el contorno tiene un hueco" -#: f.area.cc:1473 -msgid "success" -msgstr "satisfactorio" - -#: f.area.cc:1618 f.area.cc:1645 -#, c-format -msgid "found %d pixels" -msgstr "encontrados %d pixels" +#: f.area.cc:1881 +msgid "Select Hairy Edge" +msgstr "Seleccionar borde deshilachado" + +#: f.area.cc:1882 +msgid "" +"Click on colors to match. \n" +"Drag along edge to select. \n" +"Adjust match level as needed. \n" +"Copy or Save area when done." +msgstr "" +"Clic en colores a seleccionar. \n" +"Arrastrar a lo lago del borde a seleccionar. \n" +"Ajustar lo necesario el nivel de coincidencia. \n" +"Copiar o Guardar área cuando esté hecho." + +#: f.area.cc:1893 +msgid "select the area first" +msgstr "en primer lugar sleccionar el área" -#: f.area.cc:1940 f.area.cc:1957 f.area.cc:1977 f.area.cc:2301 f.area.cc:2378 -#: f.area.cc:2484 +#: f.area.cc:1898 f.area.cc:2371 f.area.cc:2388 f.area.cc:2408 f.area.cc:2732 +#: f.area.cc:2821 msgid "the area is not finished" msgstr "el área no está cerrada" -#: f.area.cc:2066 +#: f.area.cc:1944 +msgid "Mouse Radius" +msgstr "Radio del Cursor" + +#: f.area.cc:1949 fotoxx.h:1148 +msgid "Match Level" +msgstr "Nivel de coincidencia" + +#: f.area.cc:1950 +msgid "select" +msgstr "seleccionar" + +#: f.area.cc:1951 +msgid "deselect" +msgstr "deshacer selección" + +#: f.area.cc:2497 msgid "Edge calculation in progress" msgstr "Cálculo del contorno en progreso" -#: f.area.cc:2075 +#: f.area.cc:2506 msgid "Area Edge Calc" msgstr "Cálculo del contorno del área" -#: f.area.cc:2519 +#: f.area.cc:2807 f.area.cc:2856 f.widgets.cc:461 +msgid "Copy Area" +msgstr "Copiar área" + +#: f.area.cc:2810 f.widgets.cc:464 +msgid "Save Area File" +msgstr "Guardar archivo de área" + +#: f.area.cc:2862 msgid "save area as a PNG file" msgstr "guardar área como un archivo PNG" -#: f.area.cc:2551 +#: f.area.cc:2894 msgid "load area from a file" msgstr "Cargar área desde un archivo" -#: f.area.cc:2594 +#: f.area.cc:2986 msgid "position with mouse click/drag" msgstr "posición con el clic/arrastre del ratón" -#: f.area.cc:2634 +#: f.area.cc:3032 msgid "Paste Image" msgstr "Pegar imagen" -#: f.area.cc:2639 f.batch.cc:1360 f.batch.cc:1847 +#: f.area.cc:3037 f.batch.cc:1347 f.batch.cc:1654 msgid "resize" msgstr "redimensionar" -#: f.batch.cc:126 f.widgets.cc:564 +#: f.batch.cc:126 f.widgets.cc:566 msgid "Batch Convert" msgstr "Convertir en lote" -#: f.batch.cc:133 f.file.cc:940 +#: f.batch.cc:133 f.file.cc:866 msgid "New Name" msgstr "nombre nuevo" @@ -529,7 +574,7 @@ msgid "New File Type" msgstr "Nuevo tipo de archivo" -#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4389 +#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4083 msgid "no change" msgstr "sin cambios" @@ -545,13 +590,13 @@ msgid "Copy Metadata" msgstr "Copiar metadatos" -#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:466 -#: f.widgets.cc:737 +#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:468 +#: f.widgets.cc:739 msgid "Upright" msgstr "Enderezar" -#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1369 f.batch.cc:1856 -#: f.repair.cc:125 f.widgets.cc:482 +#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1356 f.batch.cc:1663 +#: f.repair.cc:125 f.widgets.cc:484 msgid "Sharpen" msgstr "Enfocar" @@ -583,7 +628,7 @@ msgid "updating albums ..." msgstr "actualizando álbums ..." -#: f.batch.cc:591 f.batch.cc:1642 f.batch.cc:2044 f.file.cc:1217 +#: f.batch.cc:591 f.batch.cc:1522 f.batch.cc:1851 f.file.cc:1142 msgid "Select directory" msgstr "seleccionar directorio" @@ -643,7 +688,7 @@ msgid "PROCEED?" msgstr "PROCEDER?" -#: f.batch.cc:907 f.widgets.cc:565 +#: f.batch.cc:907 f.widgets.cc:567 msgid "Batch Upright" msgstr "Enderezar en lote" @@ -659,7 +704,7 @@ msgid "cannot select both options" msgstr "no se pueden seleccionar ambas opciones" -#: f.batch.cc:1130 f.widgets.cc:566 +#: f.batch.cc:1130 f.widgets.cc:568 msgid "Batch Delete/Trash" msgstr "Borrar/papelera en lote" @@ -671,140 +716,100 @@ msgid "trash" msgstr "papelera" -#: f.batch.cc:1302 -msgid "Batch Convert RAW Files (DCraw)" -msgstr "Convertir en lote archivos RAW (DCraw)" - -#: f.batch.cc:1312 -msgid "DCraw not installed" -msgstr "DCraw no instalado" +#: f.batch.cc:1301 +msgid "Batch Convert RAW Files" +msgstr "Convertir en lote archivos RAW" -#: f.batch.cc:1347 f.batch.cc:1834 +#: f.batch.cc:1334 f.batch.cc:1641 msgid "output location" msgstr "ubicación exterior" -#: f.batch.cc:1352 f.batch.cc:1839 +#: f.batch.cc:1339 f.batch.cc:1646 msgid "output file type" msgstr "tipo de archivo de salida" -#: f.batch.cc:1371 f.batch.cc:1858 +#: f.batch.cc:1358 f.batch.cc:1665 msgid "amount" msgstr "cantidad" -#: f.batch.cc:1374 f.batch.cc:1861 +#: f.batch.cc:1361 f.batch.cc:1668 msgid "threshold" msgstr "umbral" -#: f.batch.cc:1383 -msgid "white balance" -msgstr "balance de blancos" - -#: f.batch.cc:1384 -msgid "interpolation" -msgstr "interpolacion" - -#: f.batch.cc:1385 -msgid "color space" -msgstr "espacio de color" - -#: f.batch.cc:1386 -msgid "gamma curve" -msgstr "curva Gamma" - -#: f.batch.cc:1389 -msgid "camera" -msgstr "cámara" - -#: f.batch.cc:1390 -msgid "fixed" -msgstr "fijado" - -#: f.batch.cc:1391 -msgid "calculated" -msgstr "calculado" - -#: f.batch.cc:1408 -msgid "default" -msgstr "por defecto" - -#: f.batch.cc:1414 -msgid "defaults" -msgstr "por defecto" - -#: f.batch.cc:1796 +#: f.batch.cc:1603 msgid "Batch Convert RAW Files (Raw Therapee)" msgstr "Convertir en lote archivos RAW (RawTherapee)" -#: f.batch.cc:1806 f.file.cc:426 +#: f.batch.cc:1613 f.file.cc:352 msgid "Raw Therapee not installed" msgstr "RawTherapee no instalado" -#: f.batch.cc:2141 +#: f.batch.cc:1948 msgid "start" msgstr "iniciar" -#: f.batch.cc:2142 +#: f.batch.cc:1949 msgid "begin making a script file" msgstr "iniciando construcción de un script" -#: f.batch.cc:2144 +#: f.batch.cc:1951 msgid "close" msgstr "cerrar" -#: f.batch.cc:2145 +#: f.batch.cc:1952 msgid "finish making a script file" msgstr "acabando construcción de un script" -#: f.batch.cc:2147 +#: f.batch.cc:1954 msgid "run" msgstr "ejecutar" -#: f.batch.cc:2148 +#: f.batch.cc:1955 msgid "execute a script file" msgstr "ejecutar un script" -#: f.batch.cc:2202 +#: f.batch.cc:2009 msgid "script already started" msgstr "script iniciado" -#: f.batch.cc:2206 +#: f.batch.cc:2013 msgid "open new script file" msgstr "abrir nuevo script" -#: f.batch.cc:2238 +#: f.batch.cc:2045 msgid "script file error" msgstr "error de script" -#: f.batch.cc:2243 +#: f.batch.cc:2050 #, c-format msgid "%s added to script" msgstr "%s añadido al script" -#: f.batch.cc:2256 +#: f.batch.cc:2063 msgid "no script file was started" msgstr "no se ha iniciado el script" -#: f.batch.cc:2264 +#: f.batch.cc:2071 msgid "script file closed" msgstr "script cerrado" -#: f.batch.cc:2283 +#: f.batch.cc:2090 msgid "script file is not closed" msgstr "el script no se ha cerrado" -#: f.batch.cc:2287 +#: f.batch.cc:2094 msgid "select script file to run" msgstr "seleccionar script a ejecutar" -#: f.batch.cc:2289 +#: f.batch.cc:2096 msgid "open script file" msgstr "abrir script" -#: f.batch.cc:2296 +#: f.batch.cc:2103 msgid "unknown script file" msgstr "script desconocido" -#: f.batch.cc:2303 +#: f.batch.cc:2110 #, c-format msgid "" "script file: %s \n" @@ -813,11 +818,11 @@ "script: %s \n" " %s" -#: f.batch.cc:2314 +#: f.batch.cc:2121 msgid "select image files to be processed" msgstr "seleccionaar imágenes a procesar" -#: f.batch.cc:2326 f.batch.cc:2375 +#: f.batch.cc:2133 f.batch.cc:2182 #, c-format msgid "" "open failure: %s \n" @@ -826,91 +831,87 @@ "fallo de apertura: %s \n" " %s" -#: f.batch.cc:2347 +#: f.batch.cc:2154 #, c-format msgid "unknown edit function: %s" msgstr "función de edición desconocida: %s" -#: f.batch.cc:2356 +#: f.batch.cc:2163 #, c-format msgid "load widgets failed: %s" msgstr "cargar complementos fallados: %s" -#: f.batch.cc:2385 +#: f.batch.cc:2192 #, c-format msgid "script file format error: %s" msgstr "error de formato de script: %s" -#: f.batch.cc:2430 +#: f.batch.cc:2237 msgid "growisofs not installed" msgstr "growisofs no instalado" -#: f.batch.cc:2482 +#: f.batch.cc:2289 msgid "no DVD/BlueRay device found" msgstr "No encontrado dispositivo DVDE/Blue Ray" -#: f.batch.cc:2505 f.widgets.cc:570 +#: f.batch.cc:2312 f.widgets.cc:572 msgid "Burn Images to DVD/BlueRay" msgstr "Grabar imágenes en un DVD/Blue Ray" -#: f.batch.cc:2510 +#: f.batch.cc:2317 msgid "Select device" msgstr "Seleccionar dispositivo" -#: f.batch.cc:2635 f.widgets.cc:571 +#: f.batch.cc:2442 f.widgets.cc:573 msgid "Find Duplicate Images" msgstr "Buscar imágenes duplicadas" -#: f.batch.cc:2637 f.tools.cc:1012 +#: f.batch.cc:2444 f.tools.cc:1017 msgid "Thumbnail size" msgstr "Tamaño de miniatura" -#: f.batch.cc:2640 +#: f.batch.cc:2447 msgid "pixel difference" msgstr "diferencia de píxels" -#: f.batch.cc:2643 +#: f.batch.cc:2450 msgid "pixel count" msgstr "conteo de píxels" -#: f.batch.cc:2646 +#: f.batch.cc:2453 msgid "Images:" msgstr "Imágenes:" -#: f.batch.cc:2647 +#: f.batch.cc:2454 msgid "searching ..." msgstr "buscando ..." -#: f.batch.cc:2649 +#: f.batch.cc:2456 msgid "Duplicates:" msgstr "Duplicados:" -#: f.batch.cc:2667 +#: f.batch.cc:2474 #, c-format msgid "only %d image thumbnails found" msgstr "ercontradas sólo %d miniaturas de imágenes" -#: f.batch.cc:2875 f.widgets.cc:377 +#: f.batch.cc:2682 f.widgets.cc:378 msgid "Create a file of selected image files" msgstr "Crear un listado de las imágenes seleccionadas" -#: f.batch.cc:2899 f.batch.cc:2969 +#: f.batch.cc:2706 f.batch.cc:2776 msgid "Output File" msgstr "Archivo de salida" -#: f.batch.cc:2918 +#: f.batch.cc:2725 msgid "no input files selected" msgstr "No seleccionados archivos de entrada" -#: f.batch.cc:2923 +#: f.batch.cc:2730 msgid "no output file selected" msgstr "No seleccionado archivo de salida" -#: f.batch.cc:2937 f.tools.cc:643 -msgid "COMPLETED" -msgstr "COMPLETADO" - -#: f.bend.cc:92 f.widgets.cc:505 +#: f.bend.cc:92 f.widgets.cc:507 msgid "Unbend" msgstr "Enderezar" @@ -942,7 +943,7 @@ " Dar varios tirones con el ratón hasta que quede satisfecho. \n" " Cuando esté terminado, seleccionar otra área o pulsar [Hecho]." -#: f.bend.cc:756 f.widgets.cc:507 +#: f.bend.cc:756 f.widgets.cc:509 msgid "Warp area" msgstr "Deformar área" @@ -964,7 +965,7 @@ " Dar varios tirones con el ratón hasta que quede satisfecho. \n" " Cuando haya terminado, pulsar [Hecho]." -#: f.bend.cc:1178 f.widgets.cc:508 +#: f.bend.cc:1178 f.widgets.cc:510 msgid "Warp curved" msgstr "Deformación curva" @@ -972,7 +973,7 @@ msgid "warp span" msgstr "intervalo de deformación" -#: f.bend.cc:1492 f.widgets.cc:509 +#: f.bend.cc:1492 f.widgets.cc:511 msgid "Warp linear" msgstr "Deformación lineal" @@ -986,7 +987,7 @@ " Dar varios tirones con el ratón hasta que quede satisfecho. \n" " Cuando haya terminado, pulse [Hecho]." -#: f.bend.cc:1823 f.widgets.cc:510 +#: f.bend.cc:1823 f.widgets.cc:512 msgid "Warp affine" msgstr "Deformación afín" @@ -1016,7 +1017,7 @@ msgid "bottom:" msgstr "abajo" -#: f.bend.cc:2614 f.widgets.cc:512 +#: f.bend.cc:2614 f.widgets.cc:514 msgid "Spherical Projection" msgstr "Proyección esférica" @@ -1034,7 +1035,7 @@ "Arrastrar imagen desde esquina superior izquierda. \n" "Al acabar, presionar [Hecho]." -#: f.bend.cc:2850 f.widgets.cc:513 +#: f.bend.cc:2850 f.widgets.cc:515 msgid "Selective Rescale" msgstr "Reescalado selectivo" @@ -1071,7 +1072,7 @@ msgstr "Pintar y deformar imagen" #: f.combine.cc:2998 f.combine.cc:3643 f.combine.cc:6252 f.effects.cc:4413 -#: f.widgets.cc:602 f.widgets.cc:626 f.widgets.cc:650 f.widgets.cc:664 +#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 msgid "Image" msgstr "Imagen" @@ -1147,7 +1148,7 @@ msgid "manual align" msgstr "alineación manual" -#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:473 f.widgets.cc:736 +#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:475 f.widgets.cc:738 msgid "Resize" msgstr "Redimensionar" @@ -1217,7 +1218,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Giro : arrastrar al lado derecho con el ratón" -#: f.edit.cc:162 f.widgets.cc:465 f.widgets.cc:735 +#: f.edit.cc:162 f.widgets.cc:467 f.widgets.cc:737 msgid "Trim/Rotate" msgstr "Recortar/Girar" @@ -1235,23 +1236,23 @@ #: f.edit.cc:185 msgid "maximize trim box" -msgstr "" +msgstr "maximizar caja de recorte" #: f.edit.cc:186 msgid "use previous size" -msgstr "" +msgstr "usar tamaño previo" #: f.edit.cc:187 msgid "invert width/height" -msgstr "" +msgstr "invertit ancho/alto" #: f.edit.cc:188 msgid "trim transparent edges" -msgstr "" +msgstr "recortar bordes transparentes" #: f.edit.cc:189 msgid "lock width/height ratio" -msgstr "" +msgstr "bloquear proporción ancho/alto" #: f.edit.cc:194 msgid "Customize" @@ -1263,7 +1264,7 @@ #: f.edit.cc:201 msgid "use EXIF data if available" -msgstr "" +msgstr "usar datos EXIF si están disponibles" #: f.edit.cc:204 msgid "Rotate: degrees" @@ -1285,7 +1286,7 @@ msgid "rotation unknown" msgstr "giro desconocido" -#: f.edit.cc:1957 f.widgets.cc:469 f.widgets.cc:740 +#: f.edit.cc:1957 f.widgets.cc:471 f.widgets.cc:742 msgid "Retouch Combo" msgstr "Retocar luz y color" @@ -1297,7 +1298,7 @@ msgid "Brightness" msgstr "Brillo" -#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1112 +#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1113 msgid "Contrast" msgstr "Contraste" @@ -1329,7 +1330,7 @@ msgid "Bright" msgstr "Luces" -#: f.edit.cc:2000 f.tools.cc:1767 +#: f.edit.cc:2000 f.tools.cc:1775 msgid "Brightness Distribution" msgstr "Distribución del brillo" @@ -1342,6 +1343,8 @@ "check the box, then click on white or dark \n" "area to calibrate image white or black color" msgstr "" +"chequear la caja, después clic en área blanca o negra \n" +"para calibrar el color blanco o negro en la imagen" #: f.edit.cc:2012 msgid "recall previous settings used" @@ -1399,7 +1402,7 @@ msgid "Deband Bright" msgstr "Eliminar bandas brillantes" -#: f.edit.cc:3570 f.widgets.cc:472 f.widgets.cc:743 +#: f.edit.cc:3570 f.widgets.cc:474 f.widgets.cc:745 msgid "Tone Mapping" msgstr "Mapeo de tonos" @@ -1431,7 +1434,7 @@ msgid "use previous settings" msgstr "usar ajustes anteriores" -#: f.edit.cc:4236 f.widgets.cc:474 +#: f.edit.cc:4236 f.widgets.cc:476 msgid "Flip" msgstr "Voltear" @@ -1473,15 +1476,15 @@ msgid "text" msgstr "texto" -#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2807 +#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2814 msgid "backing" msgstr "fondo" -#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2808 +#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2815 msgid "outline" msgstr "contorno" -#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2809 +#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2816 msgid "shadow" msgstr "sombra" @@ -1489,7 +1492,7 @@ msgid "save to current file" msgstr "guardar en archivo actual" -#: f.edit.cc:4466 f.file.cc:1835 +#: f.edit.cc:4466 f.file.cc:1706 msgid "save as new file version" msgstr "guardar como una nueva versión de archivo" @@ -1501,7 +1504,7 @@ "guardar en archivo actual \n" "abrir próximo archivo con el mismo texto" -#: f.edit.cc:4628 f.mashup.cc:2566 f.tools.cc:1167 +#: f.edit.cc:4628 f.mashup.cc:2573 f.tools.cc:1172 msgid "select font" msgstr "seleccionar tipo de letra" @@ -1521,15 +1524,15 @@ msgid "Write Line or Arrow on Image" msgstr "Dibujar línea o flecha en la imagen" -#: f.edit.cc:5278 f.mashup.cc:2786 +#: f.edit.cc:5278 f.mashup.cc:2793 msgid "Line length" msgstr "Longitud de línea" -#: f.edit.cc:5285 f.mashup.cc:2793 +#: f.edit.cc:5285 f.mashup.cc:2800 msgid "Arrow head" msgstr "Punta de flecha" -#: f.edit.cc:5298 f.mashup.cc:2806 +#: f.edit.cc:5298 f.mashup.cc:2813 msgid "line" msgstr "linea" @@ -1541,11 +1544,11 @@ "corregir línea/flecha en la capa \n" "iniciar nueva línea/flecha" -#: f.edit.cc:5918 f.widgets.cc:477 +#: f.edit.cc:5918 f.widgets.cc:479 msgid "Paint Edits" msgstr "Editar pintando" -#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.06.cc:3307 +#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.07.cc:3318 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -1553,7 +1556,7 @@ "No se puede conservar la selección de área.\n" "¿Continuar" -#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2293 +#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2301 msgid "Edit function must be active" msgstr "la función de edición debe estar activa" @@ -1569,7 +1572,7 @@ msgid "reset area" msgstr "restablecer área" -#: f.edit.cc:6144 f.widgets.cc:478 +#: f.edit.cc:6144 f.widgets.cc:480 msgid "Leverage Edits" msgstr "Editar por niveles" @@ -1637,7 +1640,7 @@ msgid "Background" msgstr "Fondo" -#: f.effects.cc:1214 f.widgets.cc:519 +#: f.effects.cc:1214 f.widgets.cc:521 msgid "Line Drawing" msgstr "Dibujo con líneas" @@ -1645,7 +1648,7 @@ msgid "black/white" msgstr " negro/blanco" -#: f.effects.cc:1505 f.widgets.cc:520 +#: f.effects.cc:1505 f.widgets.cc:522 msgid "Color Drawing" msgstr "Dibujo con colores" @@ -1653,7 +1656,7 @@ msgid "Bright Areas" msgstr "Luces" -#: f.effects.cc:1766 f.widgets.cc:521 +#: f.effects.cc:1766 f.widgets.cc:523 msgid "Graduated Blur" msgstr "Desenfoque graduado" @@ -1717,7 +1720,7 @@ msgid "borders" msgstr "bordes" -#: f.effects.cc:3259 f.widgets.cc:526 +#: f.effects.cc:3259 f.widgets.cc:528 msgid "Vignette" msgstr "Viñetado" @@ -1745,7 +1748,7 @@ msgid "Calculate" msgstr "Calcular" -#: f.effects.cc:3848 f.widgets.cc:528 +#: f.effects.cc:3848 f.widgets.cc:530 msgid "Pattern" msgstr "Patrón" @@ -1769,7 +1772,7 @@ msgid "Tile" msgstr "Baldosa" -#: f.effects.cc:4411 f.widgets.cc:523 +#: f.effects.cc:4411 f.widgets.cc:525 msgid "Tiles" msgstr "Baldosas" @@ -1787,7 +1790,7 @@ msgid "only %d tile images found" msgstr "encontradas sólo %d imágenes de baldosas" -#: f.effects.cc:4905 f.widgets.cc:530 +#: f.effects.cc:4905 f.widgets.cc:532 msgid "Custom Kernel" msgstr "Matriz de convolución" @@ -1803,11 +1806,11 @@ msgid "Data file" msgstr "Archivo de datos" -#: f.effects.cc:4951 fotoxx-16.06.cc:3571 +#: f.effects.cc:4951 fotoxx-16.07.cc:3582 msgid "Load settings from file" msgstr "Cargar ajustes desde un archivo" -#: f.effects.cc:5212 f.widgets.cc:531 +#: f.effects.cc:5212 f.widgets.cc:533 msgid "Make Waves" msgstr "Ondas" @@ -1831,7 +1834,7 @@ msgid "Pull image using the mouse." msgstr "Empujar imagen usando el ratón" -#: f.effects.cc:5427 f.widgets.cc:532 +#: f.effects.cc:5427 f.widgets.cc:534 msgid "Directed Blur" msgstr "Desenfoque direccional" @@ -1843,7 +1846,7 @@ msgid "intensity" msgstr "intensidad" -#: f.effects.cc:5638 f.widgets.cc:533 +#: f.effects.cc:5638 f.widgets.cc:535 msgid "Blur Background" msgstr "Desenfocar fondo" @@ -1863,7 +1866,7 @@ msgid "max. blur radius" msgstr "máx. radio de desenfoque" -#: f.file.cc:182 +#: f.file.cc:181 msgid "" "use EXIF photo date or \n" " file modification date" @@ -1871,83 +1874,75 @@ "usar fecha EXIF de la foto o \n" "facha de modificación del archivo" -#: f.file.cc:199 f.widgets.cc:608 +#: f.file.cc:198 f.widgets.cc:610 msgid "File" msgstr "Archivo" -#: f.file.cc:355 -msgid "UFraw not installed" -msgstr "UFRaw no instalado" - -#: f.file.cc:371 f.widgets.cc:745 -msgid "Open RAW file (ufraw)" -msgstr "Abrir archivo RAW (ufraw)" +#: f.file.cc:368 f.widgets.cc:747 +msgid "Open RAW file (Raw Therapee)" +msgstr "Abrir archivo RAW con RawTherapee" -#: f.file.cc:376 f.file.cc:447 +#: f.file.cc:373 msgid "RAW type not registered in User Settings" msgstr "Formato RAW no registrado en las preferencias de usuario" -#: f.file.cc:442 f.widgets.cc:746 -msgid "Open RAW file (Raw Therapee)" -msgstr "Abrir archivo RAW con RawTherapee" - -#: f.file.cc:534 f.widgets.cc:423 +#: f.file.cc:460 f.widgets.cc:424 msgid "Open Image File" msgstr "Abrir archivo de imagen" -#: f.file.cc:553 +#: f.file.cc:479 msgid "unknown file type" msgstr "tipo de archivo desconocido" -#: f.file.cc:747 +#: f.file.cc:673 msgid "Create Blank Image" msgstr "Crear una imagen vacía" -#: f.file.cc:749 +#: f.file.cc:675 msgid "file name" msgstr "nombre de archivo" -#: f.file.cc:782 +#: f.file.cc:708 msgid "supply a file name" msgstr "proporcionar un nombre de archivo" -#: f.file.cc:932 f.widgets.cc:428 +#: f.file.cc:858 f.widgets.cc:428 msgid "Rename Image File" msgstr "Renombrar archivo de imagen" -#: f.file.cc:939 +#: f.file.cc:865 msgid "Old Name" msgstr "nombre antiguo" -#: f.file.cc:949 +#: f.file.cc:875 msgid "previous name" msgstr "nombre anterior" -#: f.file.cc:950 +#: f.file.cc:876 msgid "add 1" msgstr "añadir 1" -#: f.file.cc:1129 +#: f.file.cc:1054 msgid "Copy or Move Image File" -msgstr "" +msgstr "Copiar o mover archivo" -#: f.file.cc:1171 +#: f.file.cc:1096 msgid "New Location:" -msgstr "" +msgstr "Nueva ubicación" -#: f.file.cc:1176 +#: f.file.cc:1101 msgid "copy (duplicate file)" -msgstr "" +msgstr "copiar (duplicar archivo)" -#: f.file.cc:1178 +#: f.file.cc:1103 msgid "move (remove original)" -msgstr "" +msgstr "mover (quitar original)" -#: f.file.cc:1257 +#: f.file.cc:1182 msgid "new location is not a directory" msgstr "la nueva ubicación no es un directorio" -#: f.file.cc:1297 f.file.cc:1511 +#: f.file.cc:1222 f.file.cc:1431 #, c-format msgid "" "delete failed: \n" @@ -1956,75 +1951,63 @@ "fallo al borrar: \n" " %s" -#: f.file.cc:1393 +#: f.file.cc:1318 msgid "Delete or Trash Image File" -msgstr "" - -#: f.file.cc:1460 -msgid "" -"GTK g_file_trash() function failed. \n" -"Desktop trash folder will be used." -msgstr "" +msgstr "Borrar o enviar a la papelera la imagen" -#: f.file.cc:1463 -#, c-format -msgid "Cannot create desktop trash folder: %s" -msgstr "" +#: f.file.cc:1383 +msgid "GTK g_file_trash() function failed" +msgstr "Ha fallado la función GTK g_file_trash()" -#: f.file.cc:1483 +#: f.file.cc:1404 msgid "not a known image file" -msgstr "" +msgstr "no es un archivo de imagen conocido" -#: f.file.cc:1489 +#: f.file.cc:1410 msgid "Delete read-only file?" msgstr "¿Borrar archivo de sólo lectura?" -#: f.file.cc:1491 +#: f.file.cc:1412 msgid "Trash read-only file?" -msgstr "" - -#: f.file.cc:1564 -#, c-format -msgid "error: %s" -msgstr "error: %s" +msgstr "¿Archivo de papelera de sólo lectura?" -#: f.file.cc:1589 +#: f.file.cc:1460 msgid "no more images" msgstr "no hay más imágenes" -#: f.file.cc:1817 +#: f.file.cc:1688 msgid "Save Image File" msgstr "Guardar imagen" -#: f.file.cc:1827 +#: f.file.cc:1698 msgid "new version" msgstr "nueva versión" -#: f.file.cc:1828 +#: f.file.cc:1699 msgid "new file" msgstr "nuevo archivo" -#: f.file.cc:1829 +#: f.file.cc:1700 msgid "replace file" msgstr "reemplazar archivo" -#: f.file.cc:1836 f.file.cc:2255 +#: f.file.cc:1707 f.file.cc:2126 msgid "save as new file name or type" msgstr "guardar como un nuevo nombre o tipo de archivo" -#: f.file.cc:1838 +#: f.file.cc:1709 msgid "replace old file (OVERWRITE)" msgstr "reemplazar archivo antiguo (SOBREESCRIBIR)" -#: f.file.cc:1877 f.file.cc:2020 +#: f.file.cc:1748 f.file.cc:1891 msgid "cannot save as RAW type" msgstr "no se puede guardar como RAW" -#: f.file.cc:1973 +#: f.file.cc:1844 msgid "too many file versions: 99" msgstr "demasiadas versiones del archivo: 99" -#: f.file.cc:2014 +#: f.file.cc:1885 msgid "" "Transparency map will be lost.\n" "save to PNG file to retain." @@ -2032,23 +2015,23 @@ "Se perderá el mapa de transparencia.\n" "guardar en un archivo PNG para conservarlo" -#: f.file.cc:2098 +#: f.file.cc:1969 msgid "save anyway" msgstr "guardar de todos modos" -#: f.file.cc:2164 +#: f.file.cc:2035 msgid "Unable to copy EXIF/IPTC data" msgstr "No se pueden copiar los datos EXIF/IPTC" -#: f.file.cc:2273 f.file.cc:2276 +#: f.file.cc:2144 f.file.cc:2147 msgid "make current" msgstr "hacer actual" -#: f.file.cc:2274 +#: f.file.cc:2145 msgid "(new file becomes current file)" msgstr "(nuevo archivo será el archivo actual)" -#: f.file.cc:2387 +#: f.file.cc:2258 #, c-format msgid "" "Overwrite file? \n" @@ -2057,93 +2040,79 @@ "¿Sobreescribir archivo? \n" " %s" -#: f.file.cc:2478 -msgid "Start of gallery, next: preceding gallery." -msgstr "Inicio de galería, siguiente: galería precedente" - -#: f.file.cc:2479 -msgid "End of gallery, next: following gallery." -msgstr "Fin de galería. siguiente: galería siguiente" - -#: f.file.cc:2480 -msgid "" -"The next preceding gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" -"La próxima galería precedente no existe o no contiene imágenes. \n" -"(No se buscarán más directorios ni sudirectorios)." +#: f.file.cc:2351 +#, c-format +msgid "Start of gallery, preceding gallery: %s" +msgstr "Inicio de galería, precedente: %s" -#: f.file.cc:2482 -msgid "" -"The next following gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" -"La próxima galería siguiente no existe o no contiene imágenes. \n" -"(No se buscarán más directorios)." +#: f.file.cc:2352 +#, c-format +msgid "End of gallery, following gallery: %s" +msgstr "Fin de galería. siguiente: %s" -#: f.file.cc:2556 f.widgets.cc:589 +#: f.file.cc:2446 f.widgets.cc:591 msgid "Quick Start" msgstr "Referencia rápida" -#: f.file.cc:2559 f.widgets.cc:590 +#: f.file.cc:2449 f.widgets.cc:592 msgid "User Guide" msgstr "Guia de usuario" -#: f.file.cc:2562 f.widgets.cc:591 +#: f.file.cc:2452 f.widgets.cc:593 msgid "User Guide Changes" msgstr "Cambios en la guía de usuario" -#: f.file.cc:2565 f.widgets.cc:593 +#: f.file.cc:2455 f.widgets.cc:595 msgid "README" msgstr "LÉAME" -#: f.file.cc:2568 f.widgets.cc:592 +#: f.file.cc:2458 f.widgets.cc:594 msgid "Edit Functions Summary" msgstr "Resumen de las funciones de edición" -#: f.file.cc:2571 f.widgets.cc:594 +#: f.file.cc:2461 f.widgets.cc:596 msgid "Change Log" msgstr "Registro de cambios" -#: f.file.cc:2574 f.widgets.cc:595 +#: f.file.cc:2464 f.widgets.cc:597 msgid "Log File" msgstr "Archivo de registro" -#: f.file.cc:2577 f.widgets.cc:596 +#: f.file.cc:2467 f.widgets.cc:598 msgid "Translations" msgstr "Traducciones" -#: f.file.cc:2580 f.widgets.cc:597 +#: f.file.cc:2470 f.widgets.cc:599 msgid "Home Page" msgstr "Página web" -#: f.file.cc:2583 f.widgets.cc:598 +#: f.file.cc:2473 f.widgets.cc:600 msgid "About" msgstr "Acerca de" -#: f.file.cc:2587 f.widgets.cc:620 f.widgets.cc:644 fotoxx.h:1135 +#: f.file.cc:2477 f.widgets.cc:622 f.widgets.cc:646 fotoxx.h:1136 msgid "Help" msgstr "Ayuda" -#: f.file.cc:2742 f.file.cc:2812 +#: f.file.cc:2632 f.file.cc:2702 #, c-format msgid "file not found: %s" msgstr "archivo no encontrado: %s" -#: f.file.cc:2748 f.file.cc:2818 +#: f.file.cc:2638 f.file.cc:2708 #, c-format msgid "file type not supported: %s" msgstr "tipo de archivo no soportado: %s" -#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:642 +#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:644 msgid "Scroll" msgstr "Desplazar" -#: f.gallery.cc:940 f.widgets.cc:420 f.widgets.cc:632 +#: f.gallery.cc:940 f.widgets.cc:421 f.widgets.cc:634 msgid "Sync Gallery" msgstr "Sincronizar galería" -#: f.gallery.cc:950 f.repair.cc:6658 f.repair.cc:6663 fotoxx.h:1157 +#: f.gallery.cc:950 f.repair.cc:6352 f.repair.cc:6357 fotoxx.h:1158 msgid "Open" msgstr "Abrir" @@ -2155,16 +2124,16 @@ msgid "GoTo" msgstr "Ir a" -#: f.gallery.cc:965 f.widgets.cc:637 +#: f.gallery.cc:965 f.widgets.cc:639 msgid "Sort" msgstr "Ordenar" #: f.gallery.cc:971 f.gallery.cc:1540 f.gallery.cc:1541 f.gallery.cc:1543 -#: f.widgets.cc:635 +#: f.widgets.cc:637 msgid "Zoom+" msgstr "Zoom +" -#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:636 +#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:638 msgid "Zoom-" msgstr "Zoom -" @@ -2176,19 +2145,19 @@ msgid "Row↓" msgstr "Fila ↓" -#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:640 +#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:642 msgid "Page↑" msgstr "Página ↑" -#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:641 +#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:643 msgid "Page↓" msgstr "Página ↓" -#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:638 +#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:640 msgid "First" msgstr "Primera" -#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:639 +#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:641 msgid "Last" msgstr "Última" @@ -2212,7 +2181,7 @@ msgid "Choose album" msgstr "Elegir álbum" -#: f.gallery.cc:1288 f.tools.cc:986 +#: f.gallery.cc:1288 f.tools.cc:991 msgid "Gallery Sort" msgstr "Ordenar galería " @@ -2236,27 +2205,27 @@ msgid "descending" msgstr "descendente" -#: f.gallery.cc:2373 fotoxx.h:1182 +#: f.gallery.cc:2315 fotoxx.h:1182 msgid "Select Files" msgstr "Seleccionar archivos" -#: f.gallery.cc:2838 +#: f.gallery.cc:2780 msgid "Click list position. Click thumbnail to add." msgstr "Clic en una posición de la lista. Clic en la miniatura para añadir" -#: f.gallery.cc:2864 f.gallery.cc:3112 +#: f.gallery.cc:2806 f.gallery.cc:3054 msgid "Edit Bookmarks" msgstr "Añadir marcadores" -#: f.gallery.cc:3039 +#: f.gallery.cc:2981 msgid "unable to save bookmarks file" msgstr "incapaz de guardar archivo de marcadores" -#: f.gallery.cc:3112 +#: f.gallery.cc:3054 msgid "Go To Bookmark" msgstr "Ir a un marcador" -#: f.gallery.cc:3169 f.meta.cc:3528 f.repair.cc:8279 +#: f.gallery.cc:3111 f.meta.cc:3526 f.repair.cc:7973 msgid "file not found" msgstr "archivo no encontrado" @@ -2450,7 +2419,7 @@ msgid "Hard" msgstr "Fuerte" -#: f.mashup.cc:1313 f.repair.cc:6252 +#: f.mashup.cc:1313 f.repair.cc:5946 msgid "Blend" msgstr "Mezclar" @@ -2466,7 +2435,7 @@ msgid "Gradual" msgstr "Gradual" -#: f.mashup.cc:1589 fotoxx.h:1161 +#: f.mashup.cc:1589 fotoxx.h:1162 msgid "Power" msgstr "Fuerza" @@ -2495,45 +2464,45 @@ msgid "add entered text to layout" msgstr "añadir texto a la capa" -#: f.mashup.cc:2627 +#: f.mashup.cc:2634 msgid "click position to add text" msgstr "clicar en la posición para añadir texto" -#: f.mashup.cc:2633 +#: f.mashup.cc:2640 #, c-format msgid "exceeded %d text entries" msgstr "Excedidas en %d entradas de texto" -#: f.mashup.cc:2756 +#: f.mashup.cc:2763 msgid "Set line properties, [Add] to layout, edit." msgstr "Ajustar propiedades de línea, [Añadir] a la capa, editar." -#: f.mashup.cc:2780 +#: f.mashup.cc:2787 msgid "Edit Line/Arrow" msgstr "Editar línea/flecha" -#: f.mashup.cc:2835 +#: f.mashup.cc:2842 msgid "add line/arrow to layout" msgstr "añadir línea/flecha a la capa" -#: f.mashup.cc:2928 +#: f.mashup.cc:2935 msgid "click position to add line" msgstr "clic en la posició per afegir línia" -#: f.mashup.cc:2934 +#: f.mashup.cc:2941 #, c-format msgid "exceeded %d line entries" msgstr "excedidas %d entradas de línea" -#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:723 +#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:725 msgid "View Metadata" msgstr "Ver metadatos" #: f.meta.cc:548 msgid "Geocoding service by MapQuest" -msgstr "" +msgstr "Servicio de geocodificación de MapQuest" -#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:724 +#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:726 msgid "Edit Metadata" msgstr "Editar metadatos" @@ -2561,11 +2530,11 @@ msgid "Comments" msgstr "Comentarios" -#: f.meta.cc:659 f.meta.cc:3618 -msgid "city" -msgstr "ciudad" +#: f.meta.cc:659 f.meta.cc:3616 +msgid "location" +msgstr "ubicación" -#: f.meta.cc:662 f.meta.cc:3621 +#: f.meta.cc:662 f.meta.cc:3619 msgid "country" msgstr "pais" @@ -2581,76 +2550,76 @@ msgid "Enter New Tag" msgstr "Introduzca nueva etiqueta" -#: f.meta.cc:703 f.meta.cc:5459 +#: f.meta.cc:703 f.meta.cc:5446 msgid "Matching Tags" msgstr "Construyendo etiquetas" -#: f.meta.cc:712 f.meta.cc:1708 f.meta.cc:5466 +#: f.meta.cc:712 f.meta.cc:1706 f.meta.cc:5453 msgid "Defined Tags Category" msgstr "Categoría de etiquetas definida" #: f.meta.cc:719 msgid "search known locations" -msgstr "" +msgstr "buscar localidades conocidas" #: f.meta.cc:720 msgid "search using web service" -msgstr "" +msgstr "buscar usando servicio web" #: f.meta.cc:721 msgid "create tag categories and tags" -msgstr "" +msgstr "crear etiquetas y categorías de etiquetas" -#: f.meta.cc:936 f.meta.cc:3778 -msgid "city not found" -msgstr "ciudad no encontrada" +#: f.meta.cc:936 f.meta.cc:3776 +msgid "location not found" +msgstr "ubicación no encontrada" -#: f.meta.cc:1214 f.meta.cc:3836 f.meta.cc:4352 +#: f.meta.cc:1212 f.meta.cc:3834 f.meta.cc:4337 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "latitud/longitud incorrecta: %s %s" -#: f.meta.cc:1248 fotoxx.h:1145 +#: f.meta.cc:1246 fotoxx.h:1146 msgid "Manage Tags" msgstr "Administrar etiquetas" -#: f.meta.cc:1248 +#: f.meta.cc:1246 msgid "orphan tags" msgstr "etiquetas huérfanas" -#: f.meta.cc:1252 +#: f.meta.cc:1250 msgid "category" msgstr "categoria" -#: f.meta.cc:1255 +#: f.meta.cc:1253 msgid "tag" msgstr "etiqueta" -#: f.meta.cc:1262 +#: f.meta.cc:1260 msgid "Defined Tags:" msgstr "etiquetas definidas:" -#: f.meta.cc:1404 f.widgets.cc:441 f.widgets.cc:725 +#: f.meta.cc:1402 f.widgets.cc:441 f.widgets.cc:727 msgid "Edit Any Metadata" msgstr "Editar cualquier metadato" -#: f.meta.cc:1404 f.meta.cc:2148 +#: f.meta.cc:1402 f.meta.cc:2146 msgid "Full List" msgstr "Lista completa" -#: f.meta.cc:1409 f.meta.cc:2153 +#: f.meta.cc:1407 f.meta.cc:2151 msgid "click to select" msgstr "clic para seleccionar" -#: f.meta.cc:1418 f.meta.cc:2164 +#: f.meta.cc:1416 f.meta.cc:2162 msgid "key name" msgstr "nombre clave" -#: f.meta.cc:1420 f.meta.cc:2165 +#: f.meta.cc:1418 f.meta.cc:2163 msgid "key value" msgstr "valor clave" -#: f.meta.cc:1506 f.meta.cc:2308 +#: f.meta.cc:1504 f.meta.cc:2306 msgid "" "The command: $ man Image::ExifTool::TagNames \n" "will show over 15000 \"standard\" tag names" @@ -2658,31 +2627,31 @@ "El comando: $ man Image::ExifTool::TagNames \n" "mostrará hasta 15000 \"standard\" nombres de etiqueta" -#: f.meta.cc:1579 f.widgets.cc:442 +#: f.meta.cc:1577 f.widgets.cc:442 msgid "Delete Metadata" msgstr "Borrar metadatos" -#: f.meta.cc:1581 fotoxx.h:1095 +#: f.meta.cc:1579 fotoxx.h:1095 msgid "All" msgstr "Todo" -#: f.meta.cc:1582 +#: f.meta.cc:1580 msgid "One Key:" msgstr "Una clave:" -#: f.meta.cc:1685 f.widgets.cc:443 f.widgets.cc:574 +#: f.meta.cc:1683 f.widgets.cc:443 f.widgets.cc:576 msgid "Batch Add/Remove Tags" msgstr "Añadir/eliminar etiquetas en lote" -#: f.meta.cc:1696 +#: f.meta.cc:1694 msgid "tags to add" msgstr "etiquetas para añadir" -#: f.meta.cc:1697 +#: f.meta.cc:1695 msgid "tags to remove" msgstr "etquetas para eliminar" -#: f.meta.cc:1782 +#: f.meta.cc:1780 #, c-format msgid "" "%s \n" @@ -2691,15 +2660,15 @@ "%s \n" " demasiadas etiquetas" -#: f.meta.cc:1897 +#: f.meta.cc:1895 msgid "specify files and tags" msgstr "especificar archivos y etiquetas" -#: f.meta.cc:1957 +#: f.meta.cc:1955 msgid "tag names file" msgstr "archgivo de nombres de etiqueta" -#: f.meta.cc:2031 +#: f.meta.cc:2029 #, c-format msgid "" "%d tags to rename \n" @@ -2710,43 +2679,43 @@ "en %d imágenes. \n" "¿Proceder?" -#: f.meta.cc:2148 +#: f.meta.cc:2146 msgid "Batch Change Metadata" msgstr "Cambiar metadatos en lote" -#: f.meta.cc:2222 +#: f.meta.cc:2220 msgid "enter key names" msgstr "entrar nombres clave" -#: f.meta.cc:2228 f.meta.cc:2422 fotoxx.h:1154 +#: f.meta.cc:2226 f.meta.cc:2420 fotoxx.h:1155 msgid "no files selected" msgstr "no hay archivos seleccionados" -#: f.meta.cc:2407 f.widgets.cc:446 f.widgets.cc:577 +#: f.meta.cc:2405 f.widgets.cc:446 f.widgets.cc:579 msgid "Batch Report Metadata" msgstr "Informe de metadatos en lote" -#: f.meta.cc:2580 +#: f.meta.cc:2578 msgid "date format is YYYY-MM-DD" msgstr "Formato de fecha es AAAA-MM-DD" -#: f.meta.cc:2584 +#: f.meta.cc:2582 msgid "date is invalid" msgstr "fecha no válida" -#: f.meta.cc:2618 +#: f.meta.cc:2616 msgid "time format is HH:MM [:SS]" msgstr "formato de hora es HH:MM [:SS]" -#: f.meta.cc:2622 +#: f.meta.cc:2620 msgid "time is invalid" msgstr "hora no válida" -#: f.meta.cc:3587 f.widgets.cc:447 f.widgets.cc:578 +#: f.meta.cc:3585 f.widgets.cc:447 f.widgets.cc:580 msgid "Batch Add Geotags" msgstr "Añadir geoetiquetas en lote" -#: f.meta.cc:3824 +#: f.meta.cc:3822 msgid "" "data is incomplete \n" " proceed?" @@ -2754,27 +2723,27 @@ "los datos están incompletos \n" " ¿proceder?" -#: f.meta.cc:3874 -msgid "choose city" -msgstr "escoger ciudad" +#: f.meta.cc:3872 +msgid "choose location" +msgstr "escoger ubicación" -#: f.meta.cc:3961 +#: f.meta.cc:3959 msgid "not found" msgstr "no encontrada" -#: f.meta.cc:3962 -msgid "city and country required" -msgstr "ciudad y pais requeridos" +#: f.meta.cc:3960 +msgid "location and country required" +msgstr "ubicación y pais requeridos" -#: f.meta.cc:4465 f.meta.cc:5003 f.meta.cc:5347 f.meta.cc:6504 +#: f.meta.cc:4450 f.meta.cc:4988 f.meta.cc:5334 f.meta.cc:6559 msgid "-noindex in use, disabled" msgstr "-noindex en uso, ​deshabilitar" -#: f.meta.cc:4483 +#: f.meta.cc:4468 msgid "choose map file" msgstr "elegir archivo de mapas" -#: f.meta.cc:4624 +#: f.meta.cc:4609 msgid "" "fotoxx-maps package not installed \n" "(see http://kornelix.net/packages and /tarballs)" @@ -2782,12 +2751,12 @@ "no instalado paquete de mapas de fotox \n" "(ver http://kornelix.net/packages y /tarballs" -#: f.meta.cc:4629 +#: f.meta.cc:4614 #, c-format msgid "map file %s is missing" msgstr "necesario archivo de mapas %s" -#: f.meta.cc:4633 +#: f.meta.cc:4618 #, c-format msgid "" "map latitude/longitude data unreasonable \n" @@ -2796,108 +2765,108 @@ "datos de latitud/longitud no consistentes \n" " %.3f %.3f %.3f %.3f" -#: f.meta.cc:4662 +#: f.meta.cc:4647 msgid "search range (km)" msgstr "buscar en un rango (km)" -#: f.meta.cc:4940 f.meta.cc:5282 +#: f.meta.cc:4925 f.meta.cc:5267 msgid "No matching images found" msgstr "No encontradas imagenes coincidentes" -#: f.meta.cc:5118 +#: f.meta.cc:5103 msgid "image file has no latitude/longitude" -msgstr "" +msgstr "la imagen no tiene latitud/longitud" -#: f.meta.cc:5384 +#: f.meta.cc:5371 msgid "Search Image Metadata" msgstr "Buscar los metadatos de la imagen" -#: f.meta.cc:5388 +#: f.meta.cc:5375 msgid "images to search:" msgstr "imágenes a buscar:" -#: f.meta.cc:5389 +#: f.meta.cc:5376 msgid "all" msgstr "todo" -#: f.meta.cc:5390 +#: f.meta.cc:5377 msgid "current set only" msgstr "sólo selección actual" -#: f.meta.cc:5393 +#: f.meta.cc:5380 msgid "matching images:" msgstr "imágenes coincidentes" -#: f.meta.cc:5394 +#: f.meta.cc:5381 msgid "new set" msgstr "nueva selección" -#: f.meta.cc:5395 +#: f.meta.cc:5382 msgid "add to set" msgstr "añadir a la selección" -#: f.meta.cc:5396 +#: f.meta.cc:5383 msgid "remove" msgstr "eliminar" -#: f.meta.cc:5399 +#: f.meta.cc:5386 msgid "report type:" msgstr "tipo de imforme:" -#: f.meta.cc:5400 +#: f.meta.cc:5387 msgid "gallery" msgstr "galería" -#: f.meta.cc:5407 +#: f.meta.cc:5394 msgid "date range" msgstr "rango de fechas" -#: f.meta.cc:5408 +#: f.meta.cc:5395 msgid "stars range" msgstr "rango de estrellas" -#: f.meta.cc:5409 +#: f.meta.cc:5396 msgid "search tags" msgstr "buscar etiquetas" -#: f.meta.cc:5410 +#: f.meta.cc:5397 msgid "search text" msgstr "buscar texto" -#: f.meta.cc:5411 +#: f.meta.cc:5398 msgid "search files" msgstr "buscar archivos" -#: f.meta.cc:5416 +#: f.meta.cc:5403 msgid "(yyyymmdd)" msgstr "(aaaammdd)" -#: f.meta.cc:5421 +#: f.meta.cc:5408 msgid "last version only" msgstr "sólo última versión" -#: f.meta.cc:5423 +#: f.meta.cc:5410 msgid "all/any" msgstr "todo/cualquiera" -#: f.meta.cc:5442 +#: f.meta.cc:5429 msgid "search locations" -msgstr "" +msgstr "buscar localidades" -#: f.meta.cc:5448 +#: f.meta.cc:5435 msgid "search other metadata" -msgstr "" +msgstr "buscar otros metadatos" -#: f.meta.cc:5455 +#: f.meta.cc:5442 msgid "Enter Search Tag" msgstr "Introducir etiqueta de búsqueda" -#: f.meta.cc:5737 +#: f.meta.cc:5724 #, c-format msgid "not a defined tag: %s" msgstr "no está definida la etiqueta: %s" -#: f.meta.cc:5768 +#: f.meta.cc:5755 msgid "" "to remove images from current set, \n" "search current set" @@ -2905,7 +2874,7 @@ "para eliminar imágenes de la selección actual, \n" "buscar en la selección actual" -#: f.meta.cc:5775 +#: f.meta.cc:5762 msgid "" "to add images to current set, \n" "search all images" @@ -2913,7 +2882,7 @@ "para añadir imágenes a la selección actual, \n" "buscar en todas las imágenes" -#: f.meta.cc:5820 +#: f.meta.cc:5807 #, c-format msgid "" "search dates not reasonable \n" @@ -2922,20 +2891,20 @@ "búsqueda de datos no razonable \n" " %s %s" -#: f.meta.cc:5838 +#: f.meta.cc:5825 msgid "stars range not reasonable" msgstr "rango de estrellas no razonable" -#: f.meta.cc:6082 +#: f.meta.cc:6069 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "imágenes añadidas: %d eliminadas: %d nueva cantidad: %d" -#: f.meta.cc:6085 +#: f.meta.cc:6072 msgid "no changes made" msgstr "no se han efectuado cambios" -#: f.meta.cc:6237 +#: f.meta.cc:6224 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2943,47 +2912,52 @@ "Siempre se informa de estos elementos: \n" "fecha, estrellas, etiquetas, leyenda, comentario" -#: f.meta.cc:6261 +#: f.meta.cc:6249 msgid "Additional Items for Report" msgstr "Elementos adicionales para el informe" -#: f.meta.cc:6267 +#: f.meta.cc:6256 msgid "Keyword" msgstr "Palabra clave" -#: f.meta.cc:6274 +#: f.meta.cc:6270 msgid "Match Criteria" msgstr "Criterio de coincidencia" -#: f.meta.cc:6519 +#: f.meta.cc:6366 +#, c-format +msgid "bad number: %s" +msgstr "número erróneo: %s" + +#: f.meta.cc:6574 msgid "Report Geotag Groups" msgstr "Informe de grupos de etiquetas" -#: f.meta.cc:6520 +#: f.meta.cc:6575 msgid "Group by country" msgstr "Agrupar por país" -#: f.meta.cc:6521 -msgid "Group by country/city" -msgstr "Agrupar por país/ciudad" - -#: f.meta.cc:6522 -msgid "Group by country/city/date" -msgstr "Agrupar por país/ciudad/fecha" +#: f.meta.cc:6576 +msgid "Group by country/location" +msgstr "Agrupar por país/ubicación" + +#: f.meta.cc:6577 +msgid "Group by country/location/date" +msgstr "Agrupar por país/ubicación/fecha" -#: f.meta.cc:6525 +#: f.meta.cc:6580 msgid "Combine within" msgstr "Combinar dentro" -#: f.meta.cc:6527 +#: f.meta.cc:6582 msgid "days" msgstr "dias" -#: f.meta.cc:6643 +#: f.meta.cc:6702 msgid "geotag groups" msgstr "grupos de geoetiquetas" -#: f.meta.cc:7241 +#: f.meta.cc:7316 msgid "image index is missing" msgstr "necesario indexar imágenes" @@ -3003,39 +2977,35 @@ msgid "Measure" msgstr "Medida" -#: f.repair.cc:1237 +#: f.repair.cc:1235 msgid "Noise Reduction" msgstr "Reducción de ruido" -#: f.repair.cc:1258 -msgid "Flatten 1" -msgstr "Aplanar 1" - -#: f.repair.cc:1259 -msgid "Flatten 2" -msgstr "Aplanar 2" +#: f.repair.cc:1254 fotoxx.h:1131 +msgid "Flatten" +msgstr "Aplanar" -#: f.repair.cc:1260 +#: f.repair.cc:1255 msgid "Median" msgstr "Mediana" -#: f.repair.cc:1280 +#: f.repair.cc:1270 msgid "dark areas" msgstr "áreas oscuras" -#: f.repair.cc:1282 +#: f.repair.cc:1272 msgid "all areas" msgstr "todas las áreas" -#: f.repair.cc:2174 +#: f.repair.cc:1868 msgid "Measure Noise" msgstr "Medir ruído" -#: f.repair.cc:2175 +#: f.repair.cc:1869 msgid "Click on a monotone image area." msgstr "Clic en un área monotono de la imagen" -#: f.repair.cc:2338 +#: f.repair.cc:2032 msgid "" "1. Drag mouse to select. \n" "2. Erase. 3. Repeat. " @@ -3043,23 +3013,23 @@ "1. Arrastre el ratón para seleccionar. \n" "2. Borrar. 3. Repetir." -#: f.repair.cc:2360 f.widgets.cc:485 +#: f.repair.cc:2054 f.widgets.cc:487 msgid "Smart Erase" msgstr "Borrado inteligente" -#: f.repair.cc:2365 fotoxx.h:1165 +#: f.repair.cc:2059 fotoxx.h:1166 msgid "Radius" msgstr "Radio" -#: f.repair.cc:2367 f.widgets.cc:483 +#: f.repair.cc:2061 f.widgets.cc:485 msgid "Blur" msgstr "Desenfocar" -#: f.repair.cc:2370 +#: f.repair.cc:2064 msgid "New Area" msgstr "Nueva área" -#: f.repair.cc:2719 +#: f.repair.cc:2413 msgid "" "Method 1:\n" " Left-click on red-eye to darken.\n" @@ -3077,11 +3047,11 @@ "Deshacer ojos rojos:\n" " Clic-derecho en el ojo rojo." -#: f.repair.cc:2735 +#: f.repair.cc:2429 msgid "Red Eye Reduction" msgstr "Reducción de ojos rojos" -#: f.repair.cc:3200 +#: f.repair.cc:2894 msgid "" "shift + left click: pick color or image position \n" "left click or drag: paint color or copy image \n" @@ -3091,39 +3061,39 @@ "clic izquierdo o arrastrar: pintar color o copiar imagen \n" "clic derecho o arrastrar: borrar color o imagen" -#: f.repair.cc:3233 f.widgets.cc:487 +#: f.repair.cc:2927 f.widgets.cc:489 msgid "Paint/Clone" msgstr "Pintar/Clonar" -#: f.repair.cc:3237 +#: f.repair.cc:2931 msgid "paint color" msgstr "color de la pintura" -#: f.repair.cc:3240 +#: f.repair.cc:2934 msgid "copy from image" msgstr "copiar desde la imagen" -#: f.repair.cc:3247 f.repair.cc:3837 +#: f.repair.cc:2941 f.repair.cc:3531 msgid "paintbrush radius" msgstr "radio del pincel" -#: f.repair.cc:3248 +#: f.repair.cc:2942 msgid "transparency center" msgstr "transparencia del centro" -#: f.repair.cc:3249 +#: f.repair.cc:2943 msgid "transparency edge" msgstr "transparencia de los bordes" -#: f.repair.cc:3256 f.repair.cc:3844 +#: f.repair.cc:2950 f.repair.cc:3538 msgid "gradual paint" msgstr "pintado gradual" -#: f.repair.cc:3257 +#: f.repair.cc:2951 msgid "paint over transparent areas" msgstr "pintar sobre áreas transparentes" -#: f.repair.cc:3797 +#: f.repair.cc:3491 msgid "" "left drag: add transparency \n" "right drag: add opacity" @@ -3131,224 +3101,224 @@ "arrastre izquierdo: añadir transparencia \n" "arrastre derecho: añadir opacidad" -#: f.repair.cc:3829 f.widgets.cc:488 +#: f.repair.cc:3523 f.widgets.cc:490 msgid "Paint Transparency" msgstr "Pintar transparencia" -#: f.repair.cc:3838 +#: f.repair.cc:3532 msgid "strength center" msgstr "fuerza en el centro" -#: f.repair.cc:3839 +#: f.repair.cc:3533 msgid "strength edge" msgstr "fuerza en bordes" -#: f.repair.cc:4094 f.widgets.cc:489 +#: f.repair.cc:3788 f.widgets.cc:491 msgid "Add Transparency" msgstr "Añadir transparencia" -#: f.repair.cc:4098 +#: f.repair.cc:3792 msgid "Match Brightness" msgstr "Coincidencia de brillo" -#: f.repair.cc:4103 +#: f.repair.cc:3797 msgid "Match Color" msgstr "Coincidencia de color" -#: f.repair.cc:4105 +#: f.repair.cc:3799 msgid "click on image to select color" msgstr "Clic en la imagen para seleccionar color" -#: f.repair.cc:4108 f.repair.cc:5318 +#: f.repair.cc:3802 f.repair.cc:5012 msgid "Match using:" msgstr "Usando coincidencia:" -#: f.repair.cc:4114 f.repair.cc:5324 +#: f.repair.cc:3808 f.repair.cc:5018 msgid "Match Level:" msgstr "Nivel de coincidencia:" -#: f.repair.cc:4121 +#: f.repair.cc:3815 msgid "Invert Match" msgstr "Invertir coincidencia" -#: f.repair.cc:4124 fotoxx.h:1190 +#: f.repair.cc:3818 fotoxx.h:1190 msgid "Transparency" msgstr "Transparencia" -#: f.repair.cc:4386 f.widgets.cc:490 +#: f.repair.cc:4080 f.widgets.cc:492 msgid "Color Mode" msgstr "Modo de color" -#: f.repair.cc:4390 +#: f.repair.cc:4084 msgid "black/white positive" msgstr "positivo en blanco y negro" -#: f.repair.cc:4391 +#: f.repair.cc:4085 msgid "black/white negative" msgstr "negativo en blanco y negro" -#: f.repair.cc:4392 +#: f.repair.cc:4086 msgid "color positive" msgstr "Positivo en color" -#: f.repair.cc:4393 +#: f.repair.cc:4087 msgid "color negative" msgstr "Negativo en color" -#: f.repair.cc:4394 +#: f.repair.cc:4088 msgid "sepia" msgstr "sepia" -#: f.repair.cc:4574 f.widgets.cc:491 +#: f.repair.cc:4268 f.widgets.cc:493 msgid "Shift Colors" msgstr "Modificar colores" -#: f.repair.cc:4810 f.widgets.cc:492 +#: f.repair.cc:4504 f.widgets.cc:494 msgid "Color Saturation" msgstr "Saturación de color" -#: f.repair.cc:4998 +#: f.repair.cc:4692 msgid "+Brightness" msgstr "Brillo" -#: f.repair.cc:4999 +#: f.repair.cc:4693 msgid "+Red -Cyan" msgstr "+Rojo -Cyan" -#: f.repair.cc:5000 +#: f.repair.cc:4694 msgid "+Green -Magenta" msgstr "+Verde -Magenta" -#: f.repair.cc:5001 +#: f.repair.cc:4695 msgid "+Blue -Yellow" msgstr "+Azul -Amarillo" -#: f.repair.cc:5007 fotoxx.h:1167 +#: f.repair.cc:4701 fotoxx.h:1168 msgid "Red" msgstr "R" -#: f.repair.cc:5008 fotoxx.h:1132 +#: f.repair.cc:4702 fotoxx.h:1133 msgid "Green" msgstr "V" -#: f.repair.cc:5009 fotoxx.h:1102 +#: f.repair.cc:4703 fotoxx.h:1102 msgid "Blue" msgstr "A" -#: f.repair.cc:5313 +#: f.repair.cc:5007 msgid "Input color to match and adjust:" -msgstr "" +msgstr "Entrar color para coincidir y ajustar" -#: f.repair.cc:5315 +#: f.repair.cc:5009 msgid "shift+click on image to select color" msgstr "Mayús+clic en la imagen para seleccionar color" -#: f.repair.cc:5319 +#: f.repair.cc:5013 msgid "Hue" -msgstr "" +msgstr "Tono" -#: f.repair.cc:5320 f.repair.cc:5352 +#: f.repair.cc:5014 f.repair.cc:5046 msgid "Saturation" msgstr "Saturación" -#: f.repair.cc:5321 f.repair.cc:5353 +#: f.repair.cc:5015 f.repair.cc:5047 msgid "Lightness" msgstr "Luminosidad" -#: f.repair.cc:5331 +#: f.repair.cc:5025 msgid "Output Color" -msgstr "" +msgstr "Color de salida" -#: f.repair.cc:5351 +#: f.repair.cc:5045 msgid "Color Hue" msgstr "Tono de color" -#: f.repair.cc:5354 +#: f.repair.cc:5048 msgid "Adjustment" msgstr "Ajuste" -#: f.repair.cc:5839 +#: f.repair.cc:5533 msgid "Ramp brightness across image" msgstr "Rampa de brillo a traves de la imagen" -#: f.repair.cc:6163 f.tools.cc:2184 +#: f.repair.cc:5857 f.tools.cc:2192 msgid "Click image to select pixels." msgstr "Pulsar en la imagen para seleccionar los píxeles." -#: f.repair.cc:6194 +#: f.repair.cc:5888 msgid "Color Ramp" msgstr "Rampa de color" -#: f.repair.cc:6205 +#: f.repair.cc:5899 msgid "Metric:" msgstr "Métrica:" -#: f.repair.cc:6630 +#: f.repair.cc:6324 msgid "Color Match Images" msgstr "Concordar color de imágenes" -#: f.repair.cc:6656 +#: f.repair.cc:6350 msgid "mouse radius for color sample" msgstr "radio del ratón para muestra de color" -#: f.repair.cc:6659 +#: f.repair.cc:6353 msgid "image for source color" msgstr "imagen para el color de origen" -#: f.repair.cc:6661 +#: f.repair.cc:6355 msgid "click on image to get source color" msgstr "Pulse en la imagen para obtener color de origen" -#: f.repair.cc:6664 +#: f.repair.cc:6358 msgid "image to set matching color" msgstr "imagen para establecer concordancia de color" -#: f.repair.cc:6666 +#: f.repair.cc:6360 msgid "click on image to set matching color" msgstr "Pulse en la imagen para establecer la concordancia de color" -#: f.repair.cc:6727 +#: f.repair.cc:6421 msgid "select source image color first" msgstr "seleccionar primero el color de la imagen de origen" -#: f.repair.cc:6912 +#: f.repair.cc:6606 msgid "Change Color Profile" msgstr "Cambiar perfil de color" -#: f.repair.cc:6916 +#: f.repair.cc:6610 msgid "input profile" msgstr "perfil de entrada" -#: f.repair.cc:6920 +#: f.repair.cc:6614 msgid "output profile" msgstr "perfil de salida" -#: f.repair.cc:6936 +#: f.repair.cc:6630 msgid "color profile" msgstr "perfil de color" -#: f.repair.cc:6982 f.repair.cc:6988 +#: f.repair.cc:6676 f.repair.cc:6682 #, c-format msgid "unknown cms profile %s" msgstr "perfil cms desconocido %s" -#: f.repair.cc:7120 f.widgets.cc:499 +#: f.repair.cc:6814 f.widgets.cc:501 msgid "Remove Dust" msgstr "Retirar polvo" -#: f.repair.cc:7124 +#: f.repair.cc:6818 msgid "spot size limit" msgstr "límite de tamaño de punto" -#: f.repair.cc:7127 +#: f.repair.cc:6821 msgid "max. brightness" msgstr "máximo brillo" -#: f.repair.cc:7130 +#: f.repair.cc:6824 msgid "min. contrast" msgstr "mínimo contraste" -#: f.repair.cc:7904 +#: f.repair.cc:7598 msgid "" " Adjust each RGB color to minimize \n" " color fringes at the image extremes. " @@ -3356,35 +3326,35 @@ " Ajustar cada color RGB para minimizar \n" " franjas de color en los extremos de la imagen. " -#: f.repair.cc:7927 f.widgets.cc:501 +#: f.repair.cc:7621 f.widgets.cc:503 msgid "Color Fringes" msgstr "Bandas de color" -#: f.repair.cc:8126 f.widgets.cc:502 +#: f.repair.cc:7820 f.widgets.cc:504 msgid "Stuck Pixels" msgstr "Píxeles retenidos" -#: f.repair.cc:8132 +#: f.repair.cc:7826 msgid "pixel group" msgstr "agrupar píxeles" -#: f.repair.cc:8140 f.repair.cc:8208 +#: f.repair.cc:7834 f.repair.cc:7902 msgid "stuck pixels:" msgstr "píxeles defectuosos" -#: f.repair.cc:8236 +#: f.repair.cc:7930 msgid "Load Stuck Pixels" msgstr "Cargar píxeles defectuosos" -#: f.repair.cc:8238 +#: f.repair.cc:7932 msgid "File:" msgstr "Archivo:" -#: f.repair.cc:8263 f.repair.cc:8320 +#: f.repair.cc:7957 f.repair.cc:8014 msgid "Stuck Pixels file" msgstr "Archivo de píxeles defectuosos" -#: f.repair.cc:8300 f.tools.cc:3656 +#: f.repair.cc:7994 f.tools.cc:3665 msgid "file format error" msgstr "error de formato de archivo" @@ -3414,7 +3384,7 @@ "Se requiere el indexado para las búsquedas y funciones de mapa \n" "y para hacer las páginas de galería aceptablemente rápidas." -#: f.tools.cc:106 f.widgets.cc:546 +#: f.tools.cc:106 f.widgets.cc:548 msgid "Index Image Files" msgstr "Indexar imágenes" @@ -3513,172 +3483,172 @@ msgid "Image File" msgstr "Archivo de imagen" -#: f.tools.cc:964 f.widgets.cc:547 +#: f.tools.cc:965 f.widgets.cc:549 msgid "User Options" msgstr "Opciones de usuario" -#: f.tools.cc:967 +#: f.tools.cc:968 msgid "Startup Display" msgstr "Pantalla de inicio" -#: f.tools.cc:978 +#: f.tools.cc:979 msgid "Menu Style" msgstr "Estilo de menú" -#: f.tools.cc:979 +#: f.tools.cc:980 msgid "Icons" msgstr "Iconos" -#: f.tools.cc:980 +#: f.tools.cc:981 msgid "Icons + Text" msgstr "Iconos + texto" -#: f.tools.cc:982 +#: f.tools.cc:983 msgid "Icon size" msgstr "Tamaño de icono" #: f.tools.cc:987 +msgid "Window background color" +msgstr "Color de la ventana de fondo" + +#: f.tools.cc:992 msgid "alphabetic" msgstr "alfabético" -#: f.tools.cc:988 +#: f.tools.cc:993 msgid "file mod date" msgstr "fecha de maodificación del archivo" -#: f.tools.cc:989 +#: f.tools.cc:994 msgid "photo date" msgstr "fecha de la foto" -#: f.tools.cc:992 +#: f.tools.cc:997 msgid "Dialog font and size" msgstr "Diálogo fuente y tamaño" -#: f.tools.cc:997 +#: f.tools.cc:1002 msgid "Image Pan/scroll:" msgstr "Fijar/deslizar imagen" -#: f.tools.cc:1000 +#: f.tools.cc:1005 msgid "Zooms for 2x" msgstr "Zooms x2" -#: f.tools.cc:1009 +#: f.tools.cc:1014 msgid "JPEG save quality" msgstr "calidad de guardado JPEG" -#: f.tools.cc:1016 +#: f.tools.cc:1021 msgid "Curve node capture distance" msgstr "distancia de captura de nodo de curva" -#: f.tools.cc:1020 +#: f.tools.cc:1025 msgid "Map marker size" msgstr "Tamaño del marcador de mapa" -#: f.tools.cc:1024 +#: f.tools.cc:1029 msgid "show hidden directories in gallery view" msgstr "mostrar directorios ocultos en la vista de galería" -#: f.tools.cc:1027 +#: f.tools.cc:1032 msgid "prev/next shows last file version only" msgstr "ant/sig muestra sólo la última versión del archivo" -#: f.tools.cc:1030 +#: f.tools.cc:1035 msgid "shift image to right margin" msgstr "cambiar imagen al margen derecho" -#: f.tools.cc:1033 -msgid "RAW command" -msgstr "Comando RAW" - -#: f.tools.cc:1037 +#: f.tools.cc:1038 msgid "RAW file types" msgstr "Tipos de archivos RAW" -#: f.tools.cc:1128 +#: f.tools.cc:1133 msgid "Delete present thumbnails to make effective" msgstr "Borrar la diapositiva actual para hacerlo efectivo" -#: f.tools.cc:1150 +#: f.tools.cc:1155 msgid "Select startup directory" msgstr "Seleccionar el directorio de inicio" -#: f.tools.cc:1157 +#: f.tools.cc:1162 msgid "Select startup image file" msgstr "Seleccionar el archivo de imagen de inicio" -#: f.tools.cc:1194 +#: f.tools.cc:1199 msgid "startup directory is invalid" msgstr "El directorio de inicio no es correcto" -#: f.tools.cc:1205 +#: f.tools.cc:1210 msgid "startup file is invalid" msgstr "El archivo de inicio no es correcto" -#: f.tools.cc:1332 f.widgets.cc:548 +#: f.tools.cc:1340 f.widgets.cc:550 msgid "Keyboard Shortcuts" msgstr "Atajos de teclado" -#: f.tools.cc:1404 +#: f.tools.cc:1412 msgid "Edit KB Shortcuts" msgstr "Editar atajos de teclado" -#: f.tools.cc:1409 +#: f.tools.cc:1417 msgid "shortcut key:" msgstr "atajo de teclado" -#: f.tools.cc:1410 +#: f.tools.cc:1418 msgid "(enter key)" msgstr "(entrar tecla)" -#: f.tools.cc:1536 +#: f.tools.cc:1544 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Reservada, no se puede utilizar" -#: f.tools.cc:1669 +#: f.tools.cc:1677 msgid "unable to save KB-shortcuts file" msgstr "imposible guardar archivos de atajos de teclado" -#: f.tools.cc:1973 f.widgets.cc:550 +#: f.tools.cc:1981 f.widgets.cc:552 msgid "Grid Lines" msgstr "Lineas de rejilla" -#: f.tools.cc:1982 +#: f.tools.cc:1990 msgid "x-spacing" msgstr "espaciado X" -#: f.tools.cc:1983 +#: f.tools.cc:1991 msgid "x-count" msgstr "conteo X" -#: f.tools.cc:1984 +#: f.tools.cc:1992 msgid "x-enable" msgstr "activar X" -#: f.tools.cc:1990 +#: f.tools.cc:1998 msgid "y-spacing" msgstr "espaciado Y" -#: f.tools.cc:1991 +#: f.tools.cc:1999 msgid "y-count" msgstr "conteo Y" -#: f.tools.cc:1992 +#: f.tools.cc:2000 msgid "y-enable" msgstr "activar Y" -#: f.tools.cc:2112 f.tools.cc:2117 f.widgets.cc:551 +#: f.tools.cc:2120 f.tools.cc:2125 f.widgets.cc:553 msgid "Line Color" msgstr "Color de línea" -#: f.tools.cc:2114 +#: f.tools.cc:2122 msgid "Area Color" msgstr "Color de área" -#: f.tools.cc:2219 f.widgets.cc:552 +#: f.tools.cc:2227 f.widgets.cc:554 msgid "Show RGB" msgstr "Mostrar RGB" -#: f.tools.cc:2509 +#: f.tools.cc:2518 msgid "" "Drag mouse on image. \n" "Left click to cancel. \n" @@ -3688,27 +3658,27 @@ "Clic izquierdo para cancelar. \n" "Tecla X para esconder diálogo." -#: f.tools.cc:2535 f.widgets.cc:553 +#: f.tools.cc:2544 f.widgets.cc:555 msgid "Magnify Image" msgstr "Aumentar imagen" -#: f.tools.cc:2544 +#: f.tools.cc:2553 msgid "X-size" msgstr "Lupa" -#: f.tools.cc:2789 +#: f.tools.cc:2798 msgid "Darkest and Brightest Pixels" msgstr "Píxeles más oscuros y más brillantes" -#: f.tools.cc:2812 +#: f.tools.cc:2821 msgid "Dark Limit" msgstr "Sombra" -#: f.tools.cc:2813 +#: f.tools.cc:2822 msgid "Bright Limit" msgstr "Luz" -#: f.tools.cc:2908 +#: f.tools.cc:2917 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3716,43 +3686,43 @@ "El brillo debe mostrar una rampa gradual \n" "Extender hasta el final de los bordes." -#: f.tools.cc:3004 f.widgets.cc:556 +#: f.tools.cc:3013 f.widgets.cc:558 msgid "Monitor Gamma" msgstr "Gamma del monitor" -#: f.tools.cc:3064 +#: f.tools.cc:3073 msgid "Available Translations" msgstr "Traducciones disponibles" -#: f.tools.cc:3068 +#: f.tools.cc:3077 msgid "Set Language" msgstr "Seleccionar el idioma" -#: f.tools.cc:3206 f.widgets.cc:559 +#: f.tools.cc:3215 f.widgets.cc:561 msgid "Calibrate Printer" msgstr "Calibrar impresora" -#: f.tools.cc:3231 +#: f.tools.cc:3240 msgid "print color chart" msgstr "imprimir carta de colores" -#: f.tools.cc:3232 +#: f.tools.cc:3241 msgid "scan and save color chart" msgstr "escanear y guardar carta de colores" -#: f.tools.cc:3233 +#: f.tools.cc:3242 msgid "align and trim color chart" msgstr "alinear y recortar carta de colores" -#: f.tools.cc:3234 +#: f.tools.cc:3243 msgid "open and process color chart" msgstr "abrir y procesar carta de colores" -#: f.tools.cc:3235 +#: f.tools.cc:3244 msgid "print image with revised colors" msgstr "imprimir imagen con colores revisados" -#: f.tools.cc:3378 +#: f.tools.cc:3387 #, c-format msgid "" "Scan the printed color chart. \n" @@ -3763,7 +3733,7 @@ "La fila más oscura arriba. \n" "Guaradr en %s/" -#: f.tools.cc:3393 +#: f.tools.cc:3402 msgid "" "Open and edit the scanned color chart file. \n" "Remove any skew or rotation from scanning. \n" @@ -3775,11 +3745,11 @@ "(Usar la función Corregir perspectiva para ésto). \n" "Recortar CUIDADOSAMENTE el delgado margen verde." -#: f.tools.cc:3425 +#: f.tools.cc:3434 msgid "Open the trimmed color chart file" msgstr "Abrir la carta de colores recortada" -#: f.tools.cc:3558 +#: f.tools.cc:3567 msgid "" "Set the name for the output calibration file \n" "[your calibration name].dat" @@ -3787,19 +3757,19 @@ "Establecer nombre parael archivo de calibración de salida \n" "[su nombre para la calibración].dat" -#: f.tools.cc:3598 +#: f.tools.cc:3607 msgid "Color map file to use" msgstr "Archivo de mapa de color para usar" -#: f.tools.cc:3615 +#: f.tools.cc:3624 msgid "Select the image file to print." msgstr "Seleccionar la imagen a imprimir" -#: f.tools.cc:3680 +#: f.tools.cc:3689 msgid "converting colors..." msgstr "convirtiendo colores ..." -#: f.tools.cc:3780 +#: f.tools.cc:3789 msgid "Image colors are converted for printing." msgstr "Colores de la imagen se han convertido para imprimir" @@ -3833,7 +3803,7 @@ #: f.widgets.cc:185 msgid "File: Open, RAW, Rename, Delete, Print" -msgstr "" +msgstr "Archivo : Abrir, RAW, Renombrar, Borrar, Imprimir" #: f.widgets.cc:186 msgid "Save modified image file to disk" @@ -3952,7 +3922,7 @@ #: f.widgets.cc:219 msgid "Find all images for a location [date]" -msgstr "Encontrar todas las imágenes para una localización (fecha)" +msgstr "Encontrar todas las imágenes para una ubicación (fecha)" #: f.widgets.cc:226 msgid "Open another window" @@ -3974,567 +3944,571 @@ msgid "Open a newly added file" msgstr "Abrir un archivo añadido nuevo" -#: f.widgets.cc:231 f.widgets.cc:232 +#: f.widgets.cc:231 msgid "Open and edit a camera RAW file" msgstr "Abrir y editar un archivo de cámara RAW" -#: f.widgets.cc:233 +#: f.widgets.cc:232 msgid "Change the image file name" msgstr "Cambiar el nombre de la imagen" -#: f.widgets.cc:234 +#: f.widgets.cc:233 msgid "Copy or Move an image file to a new location" -msgstr "" +msgstr "Copiar o mover una imagen a una nueva ubicación" -#: f.widgets.cc:235 +#: f.widgets.cc:234 msgid "Create a blank image" msgstr "Crear una imagen en blanco" -#: f.widgets.cc:236 +#: f.widgets.cc:235 msgid "Delete or trash image file" -msgstr "" +msgstr "Borrar imagen" -#: f.widgets.cc:237 +#: f.widgets.cc:236 msgid "Print the current image" msgstr "Imprimir la imagen actual" -#: f.widgets.cc:238 +#: f.widgets.cc:237 msgid "Print current image with adjusted colors" msgstr "Imprimir imagen actual con los colores ajustados" -#: f.widgets.cc:239 f.widgets.cc:434 +#: f.widgets.cc:238 f.widgets.cc:434 msgid "Quit Fotoxx" msgstr "Salir de Fotoxx" -#: f.widgets.cc:242 +#: f.widgets.cc:241 msgid "List a few key metadata items" msgstr "Listar algunos datos clave de metadatos" -#: f.widgets.cc:243 +#: f.widgets.cc:242 msgid "List all metadata items" msgstr "Listar todos los items de metadatos" -#: f.widgets.cc:244 +#: f.widgets.cc:243 msgid "(Toggle) show captions and comments" msgstr "(Cambiar) muestra leyendas y comentarios" -#: f.widgets.cc:245 +#: f.widgets.cc:244 msgid "Edit image tags/geotags/caption/rating ..." -msgstr "" +msgstr "Editr etiquetas/geoetiquetas/título/valoración ..." -#: f.widgets.cc:246 +#: f.widgets.cc:245 msgid "Edit any image metadata" msgstr "Editar cualquier metadato de la imagen" -#: f.widgets.cc:247 +#: f.widgets.cc:246 msgid "Remove all metadata from an image" msgstr "Quitar todos los metadatos de una imagen" -#: f.widgets.cc:248 +#: f.widgets.cc:247 msgid "Add/remove tags for multiple images" msgstr "Añadir/eliminar etiquetas para múltiples imágenes " -#: f.widgets.cc:249 +#: f.widgets.cc:248 msgid "Convert tag names for all images" msgstr "Convertir nombres de etiquetas para todas las imágenes" -#: f.widgets.cc:250 +#: f.widgets.cc:249 msgid "Add/change/delete metadata for multiple images" msgstr "Añadir/cambiar/borrar metadatos en múltiples imágenes" -#: f.widgets.cc:251 +#: f.widgets.cc:250 msgid "Report metadata for multiple images" msgstr "Informe de metadatos para múltiples imágenes" -#: f.widgets.cc:252 +#: f.widgets.cc:251 msgid "Add/revise geotags for multiple images" msgstr "Añadir/revisar geoetiquetas en múltiples imágenes" -#: f.widgets.cc:257 +#: f.widgets.cc:256 msgid "Select object or area for editing" msgstr "Seleccionar objeto o área para editar" +#: f.widgets.cc:257 +msgid "Find a gap in an area outline" +msgstr "Encontrar separación en el contorno de área" + #: f.widgets.cc:258 +msgid "Select hairy or irregular edge" +msgstr "Seleccionar borde deshilachado o irregular" + +#: f.widgets.cc:259 msgid "Show (outline) existing area" msgstr "Mostrar un área existente (contorno)" -#: f.widgets.cc:259 +#: f.widgets.cc:260 msgid "Hide existing area" msgstr "Ocultar áreas existentes" -#: f.widgets.cc:260 +#: f.widgets.cc:261 msgid "Enable area for editing" msgstr "activar áre para editar" -#: f.widgets.cc:261 +#: f.widgets.cc:262 msgid "Disable area for editing" msgstr "Desactivar área para editar" -#: f.widgets.cc:262 +#: f.widgets.cc:263 msgid "Reverse existing area" msgstr "Invertir área existente" -#: f.widgets.cc:263 +#: f.widgets.cc:264 msgid "Erase existing area" msgstr "Borrar área existente" -#: f.widgets.cc:264 +#: f.widgets.cc:265 msgid "Copy area for later pasting into image" msgstr "Copiar área para posterior pegado en una imagen" -#: f.widgets.cc:265 -msgid "Paste previously copied area into image" -msgstr "Pegar en la imagen àrea previamente copiada" - #: f.widgets.cc:266 +msgid "Save area to a file with transparency" +msgstr "Guardar área como un archivo con transparencia" + +#: f.widgets.cc:267 msgid "Open a file and paste as area into image" msgstr "Abrir un archivo y pegar como área en la imagen" -#: f.widgets.cc:267 -msgid "Save area to a file with transparency" -msgstr "Guardar área como un archivo con transparencia" +#: f.widgets.cc:268 +msgid "Paste previously copied area into image" +msgstr "Pegar en la imagen àrea previamente copiada" -#: f.widgets.cc:270 +#: f.widgets.cc:271 msgid "Trim/Crop margins and/or Rotate" msgstr "Recortar/cortar márgenes y/o girar" -#: f.widgets.cc:271 +#: f.widgets.cc:272 msgid "Upright a rotated image" msgstr "Enderezar una imagen girada" -#: f.widgets.cc:272 f.widgets.cc:273 +#: f.widgets.cc:273 f.widgets.cc:274 msgid "Fast auto enhance that may work OK" msgstr "Mejora automática rápida" -#: f.widgets.cc:274 +#: f.widgets.cc:275 msgid "Adjust brightness, contrast, color" msgstr "Ajustar brillo, contraste, color" -#: f.widgets.cc:275 +#: f.widgets.cc:276 msgid "Add local contrast, enhance details" msgstr "Añadir contraste local, mejorar detalles" -#: f.widgets.cc:276 +#: f.widgets.cc:277 msgid "Edit brightness distribution" -msgstr "" +msgstr "Editar distribución de brillo" -#: f.widgets.cc:277 +#: f.widgets.cc:278 msgid "Flatten zonal brightness distribution" msgstr "Aplanar histograma zonal" -#: f.widgets.cc:278 +#: f.widgets.cc:279 msgid "Change pixel dimensions" msgstr "Cambiar dimensiones en píxeles" -#: f.widgets.cc:279 +#: f.widgets.cc:280 msgid "Mirror image horizontally or vertically" msgstr "Reflejar horizontal o verticalmente la imagen" -#: f.widgets.cc:280 +#: f.widgets.cc:281 msgid "Write text on image" msgstr "Escribir un texto sobre la imagen" -#: f.widgets.cc:281 +#: f.widgets.cc:282 msgid "Write lines or arrows on image" msgstr "Dibujar líneas o flechas en la imagen" -#: f.widgets.cc:282 +#: f.widgets.cc:283 msgid "Fix brightness uniformity across image" msgstr "Corregir la uniformidad de brillo por zonas en la imagen" -#: f.widgets.cc:283 +#: f.widgets.cc:284 msgid "Paint edit function gradually with mouse" msgstr "Función de edición pintando gradualmente con el ratón" -#: f.widgets.cc:284 +#: f.widgets.cc:285 msgid "Leverage edits by brightness or color" msgstr "Edición por niveles de brillo o color" -#: f.widgets.cc:285 +#: f.widgets.cc:286 msgid "Edit plugins menu or run a plugin function" msgstr "Editar men​​ú de plugins o ejecutar una función de plugin" -#: f.widgets.cc:288 +#: f.widgets.cc:289 msgid "Make the image look sharper" msgstr "Hacer que la imagen se vea más enfocada" -#: f.widgets.cc:289 +#: f.widgets.cc:290 msgid "Make the image look fuzzy" msgstr "Hacer que la imagen se vea desenfocada" -#: f.widgets.cc:290 +#: f.widgets.cc:291 msgid "Filter noise from low-light photos" msgstr "Filtrar ruido de fotos hechas con poca luz" -#: f.widgets.cc:291 +#: f.widgets.cc:292 msgid "Remove unwanted objects" msgstr "Eliminar objetos no deseados" -#: f.widgets.cc:292 +#: f.widgets.cc:293 msgid "Fix red-eyes from electronic flash" msgstr "Corregir ojos rojos producidos por un flash electrónico" -#: f.widgets.cc:293 +#: f.widgets.cc:294 msgid "Paint image pixels using the mouse" msgstr "Pintar usando el ratón" -#: f.widgets.cc:294 +#: f.widgets.cc:295 msgid "Paint image transparency using the mouse" msgstr "Pintar transparencia de la imagen con el ratón" -#: f.widgets.cc:295 +#: f.widgets.cc:296 msgid "Add image transparency based on image attributes" msgstr "Añadir transparencia a la imagen basada en los atributos de la imagen" -#: f.widgets.cc:296 +#: f.widgets.cc:297 msgid "Make BW/color, negative/positive, sepia" msgstr "Cambiar blanco y negro/color, negativo/positivo, sepia" -#: f.widgets.cc:297 +#: f.widgets.cc:298 msgid "Shift/convert colors into other colors" msgstr "Cambiar/convertir colores en otros" -#: f.widgets.cc:298 +#: f.widgets.cc:299 msgid "Adjust color intensity (saturation)" msgstr "Ajustar intensidad de color (saturación)" -#: f.widgets.cc:299 +#: f.widgets.cc:300 msgid "Adjust color using RGB or CMY colors" msgstr "Ajustar colores usando sistema RGB o CMY" -#: f.widgets.cc:300 +#: f.widgets.cc:301 msgid "Adjust color using HSL colors" msgstr "Ajustar color usando sistema HSL" -#: f.widgets.cc:301 +#: f.widgets.cc:302 msgid "Adjust color in selected image areas" msgstr "Ajustar color en áreas seleccionadas de la imagen" -#: f.widgets.cc:302 +#: f.widgets.cc:303 msgid "Match colors on one image with another" msgstr "Concordar colores de una imagen con los de otra" -#: f.widgets.cc:303 +#: f.widgets.cc:304 msgid "Convert to another color profile" msgstr "Convertir a otro perfil de color" -#: f.widgets.cc:304 +#: f.widgets.cc:305 msgid "Remove dust spots from scanned slides" msgstr "Eliminar motas de polvo de diapositivas escaneadas" -#: f.widgets.cc:305 +#: f.widgets.cc:306 msgid "Smoothen edges with jaggies" msgstr "Suavizar bordes con dientes de sierra" -#: f.widgets.cc:306 +#: f.widgets.cc:307 msgid "Reduce Chromatic Abberation" msgstr "Reducir aberración cromática" -#: f.widgets.cc:307 +#: f.widgets.cc:308 msgid "Erase known hot and dark pixels" msgstr "Eliminar píxeles calientes y negros conocidos" -#: f.widgets.cc:310 +#: f.widgets.cc:311 msgid "Remove curvature, esp. panoramas" msgstr "Eliminar curvatura, esp. panoramas" -#: f.widgets.cc:311 +#: f.widgets.cc:312 msgid "Straighten objects seen from an angle" msgstr "Enderezar objetos vistos desde un ángulo" -#: f.widgets.cc:312 +#: f.widgets.cc:313 msgid "Distort image areas using the mouse" msgstr "Deformar áreas de la imagen usando el ratón" -#: f.widgets.cc:313 f.widgets.cc:314 f.widgets.cc:315 +#: f.widgets.cc:314 f.widgets.cc:315 f.widgets.cc:316 msgid "Distort the whole image using the mouse" msgstr "Deformar toda la imagen usando el ratón" -#: f.widgets.cc:316 +#: f.widgets.cc:317 msgid "Flatten a photographed book page" msgstr "Aplanar foto de una página impresa " -#: f.widgets.cc:317 +#: f.widgets.cc:318 msgid "Make a spherical projection of an image" msgstr "Hacer una proyección esférica de una imagen" -#: f.widgets.cc:318 +#: f.widgets.cc:319 msgid "Rescale image outside selected areas" msgstr "Reescalar imagen por fuera de las áreas seleccionadas" -#: f.widgets.cc:321 +#: f.widgets.cc:322 msgid "Reduce color depth (posterize)" msgstr "Reducir profundidad de color (posterizar)" -#: f.widgets.cc:322 +#: f.widgets.cc:323 msgid "Convert to pencil sketch" msgstr "Convertir a un esbozo a lápiz" -#: f.widgets.cc:323 +#: f.widgets.cc:324 msgid "Convert image into a cartoon drawing" msgstr "Convertir la imagen en un dibujo a tintas planas" -#: f.widgets.cc:324 +#: f.widgets.cc:325 msgid "Convert to line drawing (edge detection)" msgstr "Convertir a un dibujo de líneas (detección de bordes)" -#: f.widgets.cc:325 +#: f.widgets.cc:326 msgid "Convert to solid color drawing" msgstr "Convertir a dibujo de colores sólidos" -#: f.widgets.cc:326 +#: f.widgets.cc:327 msgid "Graduated Blur depending on contrast" msgstr "Desenfoque graduado dependiendo del contraste" -#: f.widgets.cc:327 +#: f.widgets.cc:328 msgid "Create an embossed or 3D appearance" msgstr "Crear un relieve o apariencia 3D" -#: f.widgets.cc:328 +#: f.widgets.cc:329 msgid "Convert to square tiles" msgstr "Convertir a baldosas cuadradas" -#: f.widgets.cc:329 +#: f.widgets.cc:330 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Convertir a puntos (efecto Roy Lichtenstein)" -#: f.widgets.cc:330 +#: f.widgets.cc:331 msgid "Convert into a simulated painting" msgstr "Convertir a pintura simulada" -#: f.widgets.cc:331 +#: f.widgets.cc:332 msgid "Change brightness or color radially" msgstr "Cambiar radialmente el brillo o el color" -#: f.widgets.cc:332 +#: f.widgets.cc:333 msgid "Add texture to an image" msgstr "Añadir textura a una imagen" -#: f.widgets.cc:333 +#: f.widgets.cc:334 msgid "Tile image with a repeating pattern" msgstr "Embaldosar imagen con un patrón repetitivo" -#: f.widgets.cc:334 +#: f.widgets.cc:335 msgid "Create a mosaic with tiles made from all images" msgstr "Crear un mosaico con baldosas hechas de todas las imágenes" -#: f.widgets.cc:335 +#: f.widgets.cc:336 msgid "Process an image using a custom kernel" msgstr "Procesar una imagen usando una matriz personalizada" -#: f.widgets.cc:336 +#: f.widgets.cc:337 msgid "Warp an image with a wave pattern" msgstr "Deformar una imagencon un patrón de ondas" -#: f.widgets.cc:337 +#: f.widgets.cc:338 msgid "Blur an image in the direction of mouse drags" msgstr "Desenfocar una imagen en la dirección del movimiento del ratón" -#: f.widgets.cc:338 +#: f.widgets.cc:339 msgid "Increasing blur with distance from selected areas" msgstr "Incrementar desenfoque con distancia desde áreas seleccionadas" -#: f.widgets.cc:341 +#: f.widgets.cc:342 msgid "Combine bright/dark images for better detail" msgstr "Combinar imágenes brillantes/oscuras para mejorar detalles" -#: f.widgets.cc:342 +#: f.widgets.cc:343 msgid "Combine near/far focus images for deeper focus" msgstr "" "Combinar imágenes enfocadas cerca/lejos para mayor profundidad de campo" -#: f.widgets.cc:343 +#: f.widgets.cc:344 msgid "Combine images to erase passing people, etc." msgstr "Combinar imágenes para borrar gente, coches, etc" -#: f.widgets.cc:344 +#: f.widgets.cc:345 msgid "Combine noisy images into a low-noise image" msgstr "Combinaar imágenes ruidosas en una imagen de bajo ruido" -#: f.widgets.cc:345 +#: f.widgets.cc:346 msgid "Combine images into a panorama" msgstr "Combinar imágenes en una panorámica" -#: f.widgets.cc:346 +#: f.widgets.cc:347 msgid "Combine images into a vertical panorama" msgstr "Combinar imágenes en un panorama vertical" -#: f.widgets.cc:347 +#: f.widgets.cc:348 msgid "Combine images into a panorama (panorama tools)" msgstr "Combinar imágenes en una panorámica (panorama tools)" -#: f.widgets.cc:348 +#: f.widgets.cc:349 msgid "Arrange images and text in a layout (montage)" msgstr "Ordenar imágenes y texto en una capa (montaje)" -#: f.widgets.cc:351 +#: f.widgets.cc:352 msgid "Index new files and make thumbnails" msgstr "Indexar nuevos archivos y crear miniaturas" -#: f.widgets.cc:352 +#: f.widgets.cc:353 msgid "Change user preferences" msgstr "Cambiar preferencias del usuario" -#: f.widgets.cc:353 +#: f.widgets.cc:354 msgid "Change Keyboard Shortcut Keys" msgstr "Canmbiar teclas de atajos de teclado" -#: f.widgets.cc:354 +#: f.widgets.cc:355 msgid "Show a brightness distribution graph" msgstr "Mostrar histograma (distribución del brillo)" -#: f.widgets.cc:355 +#: f.widgets.cc:356 msgid "Show or revise grid lines" msgstr "Mostrar o revisar líneas de rejilla" -#: f.widgets.cc:356 +#: f.widgets.cc:357 msgid "Change color of foreground lines" msgstr "Cambiar color de líneas de contorno" -#: f.widgets.cc:357 +#: f.widgets.cc:358 msgid "Show RGB colors at mouse click" msgstr "Mostrar colores RGB con un clic del ratón" -#: f.widgets.cc:358 +#: f.widgets.cc:359 msgid "Magnify image around the mouse position" msgstr "Aumenta la imagen alrededor de la posición del ratón" -#: f.widgets.cc:359 +#: f.widgets.cc:360 msgid "Highlight darkest and brightest pixels" msgstr "Resaltar píxeles más brillantes o más oscuros" -#: f.widgets.cc:360 +#: f.widgets.cc:361 msgid "Chart to adjust monitor color" msgstr "Carta para ajustar el color del monitor" -#: f.widgets.cc:361 +#: f.widgets.cc:362 msgid "Chart to adjust monitor gamma" msgstr "Carta para ajustar la gamma del monitor" -#: f.widgets.cc:362 +#: f.widgets.cc:363 msgid "Change the GUI language" msgstr "cambiar el idioma de la interfaz de usuario" -#: f.widgets.cc:363 +#: f.widgets.cc:364 msgid "Report missing translations" msgstr "Informe de traducciones que faltan" -#: f.widgets.cc:364 +#: f.widgets.cc:365 msgid "Calibrate printer colors" msgstr "Calibrar colores de la impresora" -#: f.widgets.cc:365 +#: f.widgets.cc:366 msgid "Memory and CPU (to terminal/logfile)" msgstr "Memoria y CPU (al terminal/archivo de registro)" -#: f.widgets.cc:369 +#: f.widgets.cc:370 msgid "Rename/convert/resize/move multiple files" msgstr "Renombrar/convertir/redimensionar/mover múltiples archivos" -#: f.widgets.cc:370 +#: f.widgets.cc:371 msgid "Upright multiple rotated image files" msgstr "Enderezar múltiples imagenes giradas" -#: f.widgets.cc:371 +#: f.widgets.cc:372 msgid "Delete or Trash multiple files" msgstr "Borrar o eliminar múltiples imágenes" -#: f.widgets.cc:372 -msgid "Convert camera RAW files using DCraw" -msgstr "Convertir archivos RAW usando DCraw" - #: f.widgets.cc:373 +msgid "Convert camera RAW files using libraw" +msgstr "Convertir archivos RAW usando libraw" + +#: f.widgets.cc:374 msgid "Convert camera RAW files using Raw Therapee" msgstr "Convertir archivos RAW usando RawTherapee" -#: f.widgets.cc:374 +#: f.widgets.cc:375 msgid "Build and run edit script files" msgstr "Escribir y ejecutar scripts editados" -#: f.widgets.cc:375 +#: f.widgets.cc:376 msgid "Burn selected image files to DVD/BlueRay disc" msgstr "Grabar las imágenes seleccionadas en un DVD o disco BlueRay" -#: f.widgets.cc:376 +#: f.widgets.cc:377 msgid "Search all image files and report duplicates" msgstr "Buscar en todas las imágenes e informar de duplicados" -#: f.widgets.cc:381 +#: f.widgets.cc:382 msgid "Quick Start mini-guide" msgstr "Mini guía de referencia rápida" -#: f.widgets.cc:382 +#: f.widgets.cc:383 msgid "Read the user guide" msgstr "Leer la guía de usuario" -#: f.widgets.cc:383 +#: f.widgets.cc:384 msgid "Recent user guide changes" msgstr "Cambios recientes en la guia de usuario" -#: f.widgets.cc:384 +#: f.widgets.cc:385 msgid "Summary of image edit functions" msgstr "Resumen de las funciones de edición de imágenes" -#: f.widgets.cc:385 +#: f.widgets.cc:386 msgid "Technical installation notes" msgstr "Notas técnicas de instalación" -#: f.widgets.cc:386 +#: f.widgets.cc:387 msgid "List updates by Fotoxx version" msgstr "Listar actualizaciones por versión de Fotoxx" -#: f.widgets.cc:387 +#: f.widgets.cc:388 msgid "View the log file and error messages" msgstr "Ver el archivo de registro y mensajes de error" -#: f.widgets.cc:388 +#: f.widgets.cc:389 msgid "How to do Fotoxx translations" msgstr "Cómo hacer traducciones de Fotoxx" -#: f.widgets.cc:389 +#: f.widgets.cc:390 msgid "Show the Fotoxx web page" msgstr "Muestra la página web de Fotoxx" -#: f.widgets.cc:390 +#: f.widgets.cc:391 msgid "Version, license, contact, credits" msgstr "Versión, licencia, contacto, créditos" -#: f.widgets.cc:393 +#: f.widgets.cc:394 msgid "Organize images into albums" msgstr "Organizar imágenes en álbumes" -#: f.widgets.cc:394 +#: f.widgets.cc:395 msgid "Start a slide show" msgstr "Iniciar un diaporama" -#: f.widgets.cc:395 +#: f.widgets.cc:396 msgid "Set desktop wallpaper from current Fotoxx image" msgstr "Establecer fondo de escritorio desde la imagen de Fotoxx actual" -#: f.widgets.cc:396 +#: f.widgets.cc:397 msgid "Cycle desktop wallpaper from a Fotoxx album" msgstr "Fondo de escritorio cíclico desde un álbum de Fotoxx" -#: f.widgets.cc:419 +#: f.widgets.cc:420 msgid "New Window" msgstr "Nueva ventana" -#: f.widgets.cc:421 +#: f.widgets.cc:422 msgid "Recently Seen Images" msgstr "Imágenes vistas recientemente " -#: f.widgets.cc:422 +#: f.widgets.cc:423 msgid "Newest Images" msgstr "Imágenes más recientes" -#: f.widgets.cc:424 +#: f.widgets.cc:425 msgid "Open Previous File" msgstr "Abrir archivo anterior" -#: f.widgets.cc:425 -msgid "Open RAW (ufraw)" -msgstr "Abrir RAW (ufraw)" - #: f.widgets.cc:426 msgid "Open RAW (Raw Therapee)" msgstr "Abrir RAW (Raw Therapee)" @@ -4543,13 +4517,13 @@ msgid "New Blank Image" msgstr "Nueva imagen en blanco" -#: f.widgets.cc:429 f.widgets.cc:727 +#: f.widgets.cc:429 f.widgets.cc:729 msgid "Copy/Move to Location" -msgstr "" +msgstr "Copiar/mover a una ubicación" #: f.widgets.cc:430 msgid "Delete/Trash Image File" -msgstr "" +msgstr "Eliminar/borrar archivo de imagen" #: f.widgets.cc:431 msgid "Print Image" @@ -4559,7 +4533,7 @@ msgid "Print Calibrated Image" msgstr "Imprimir imagen calibrada" -#: f.widgets.cc:433 f.widgets.cc:585 +#: f.widgets.cc:433 f.widgets.cc:587 msgid "Set Desktop Wallpaper" msgstr "Establecer fondo de escritorio" @@ -4575,19 +4549,19 @@ msgid "Show Captions on Image" msgstr "Mostrar leyendas en la imagen" -#: f.widgets.cc:444 f.widgets.cc:575 +#: f.widgets.cc:444 f.widgets.cc:577 msgid "Batch Rename Tags" msgstr "Renombrar etiquetas en lote" -#: f.widgets.cc:445 f.widgets.cc:576 +#: f.widgets.cc:445 f.widgets.cc:578 msgid "Batch Add/Change Metadata" msgstr "Añadir/cambiar metadatos en lote" -#: f.widgets.cc:448 f.widgets.cc:580 f.widgets.cc:658 f.widgets.cc:670 +#: f.widgets.cc:448 f.widgets.cc:582 f.widgets.cc:660 f.widgets.cc:672 msgid "Search Images" msgstr "Buscar imágenes" -#: f.widgets.cc:449 f.widgets.cc:579 f.widgets.cc:657 f.widgets.cc:669 +#: f.widgets.cc:449 f.widgets.cc:581 f.widgets.cc:659 f.widgets.cc:671 msgid "Images by Geotag" msgstr "Imágenes por Geoetiquetas" @@ -4595,419 +4569,419 @@ msgid "Select" msgstr "Seleccionar" -#: f.widgets.cc:453 fotoxx.h:1183 +#: f.widgets.cc:453 +msgid "Find Gap" +msgstr "Encontrar separación" + +#: f.widgets.cc:454 +msgid "Select Hairy" +msgstr "Selección irregular" + +#: f.widgets.cc:455 fotoxx.h:1183 msgid "Show" msgstr "Mostrar" -#: f.widgets.cc:454 fotoxx.h:1136 +#: f.widgets.cc:456 fotoxx.h:1137 msgid "Hide" msgstr "Ocultar" -#: f.widgets.cc:455 fotoxx.h:1123 +#: f.widgets.cc:457 fotoxx.h:1124 msgid "Enable" msgstr "Activar" -#: f.widgets.cc:456 fotoxx.h:1119 +#: f.widgets.cc:458 fotoxx.h:1120 msgid "Disable" msgstr "Desactivar" -#: f.widgets.cc:457 fotoxx.h:1139 +#: f.widgets.cc:459 fotoxx.h:1140 msgid "Invert" msgstr "Invertir" -#: f.widgets.cc:458 fotoxx.h:1197 +#: f.widgets.cc:460 fotoxx.h:1197 msgid "Unselect" msgstr "Deseleccionar" -#: f.widgets.cc:459 -msgid "Copy Area" -msgstr "Copiar área" - -#: f.widgets.cc:460 +#: f.widgets.cc:462 msgid "Paste Area" msgstr "Pegar área" -#: f.widgets.cc:461 +#: f.widgets.cc:463 msgid "Open Area File" msgstr "Abrir archivo de área" -#: f.widgets.cc:462 -msgid "Save Area File" -msgstr "Guardar archivo de área" - -#: f.widgets.cc:467 +#: f.widgets.cc:469 msgid "Voodoo 1" msgstr "Automejora 1" -#: f.widgets.cc:468 +#: f.widgets.cc:470 msgid "Voodoo 2" msgstr "Automejora 2" -#: f.widgets.cc:470 f.widgets.cc:741 +#: f.widgets.cc:472 f.widgets.cc:743 msgid "Edit Brightness" -msgstr "" +msgstr "Editar brillo" -#: f.widgets.cc:471 f.widgets.cc:742 +#: f.widgets.cc:473 f.widgets.cc:744 msgid "Zonal Flatten" msgstr "Aplanado zonal" -#: f.widgets.cc:475 +#: f.widgets.cc:477 msgid "Add Text" msgstr "Añadir texto" -#: f.widgets.cc:476 +#: f.widgets.cc:478 msgid "Add Lines" msgstr "Añadir líneas" -#: f.widgets.cc:479 +#: f.widgets.cc:481 msgid "Plugins" msgstr "Plugins" -#: f.widgets.cc:484 +#: f.widgets.cc:486 msgid "Denoise" msgstr "Reducir ruido" -#: f.widgets.cc:486 +#: f.widgets.cc:488 msgid "Red Eyes" msgstr "Ojos rojos" -#: f.widgets.cc:493 +#: f.widgets.cc:495 msgid "Adjust RGB/CMY" msgstr "Ajustar RGB/CMY" -#: f.widgets.cc:494 +#: f.widgets.cc:496 msgid "Adjust HSL" msgstr "Ajustar HSL" -#: f.widgets.cc:495 +#: f.widgets.cc:497 msgid "Ramp Brightness" -msgstr "" +msgstr "Rampa de brillo" -#: f.widgets.cc:496 +#: f.widgets.cc:498 msgid "Ramp Color" -msgstr "" +msgstr "Rampa de color" -#: f.widgets.cc:497 +#: f.widgets.cc:499 msgid "Match Colors" msgstr "Concordar colores" -#: f.widgets.cc:498 +#: f.widgets.cc:500 msgid "Color Profile" msgstr "perfil de color" -#: f.widgets.cc:500 +#: f.widgets.cc:502 msgid "Anti-Alias" msgstr "Suavizar bordes" -#: f.widgets.cc:506 +#: f.widgets.cc:508 msgid "Fix Perspective" msgstr "Corregir perspectiva" -#: f.widgets.cc:511 +#: f.widgets.cc:513 msgid "Flatten Book Page" msgstr "Aplanar página impresa" -#: f.widgets.cc:516 +#: f.widgets.cc:518 msgid "Color Depth" msgstr "Profundidad de color" -#: f.widgets.cc:517 +#: f.widgets.cc:519 msgid "Sketch" msgstr "Esbozo" -#: f.widgets.cc:518 +#: f.widgets.cc:520 msgid "Cartoon" msgstr "Tintas planas" -#: f.widgets.cc:522 +#: f.widgets.cc:524 msgid "Embossing" msgstr "Relieve" -#: f.widgets.cc:524 +#: f.widgets.cc:526 msgid "Dots" msgstr "Puntos" -#: f.widgets.cc:525 +#: f.widgets.cc:527 msgid "Painting" msgstr "Pintura" -#: f.widgets.cc:527 +#: f.widgets.cc:529 msgid "Texture" msgstr "Textura" -#: f.widgets.cc:529 +#: f.widgets.cc:531 msgid "Mosaic" msgstr "Mosaico" -#: f.widgets.cc:536 +#: f.widgets.cc:538 msgid "High Dynamic Range" msgstr "HDR alto rango dinámico" -#: f.widgets.cc:537 +#: f.widgets.cc:539 msgid "High Depth of Field" msgstr "HDF alta profundidad de campo" -#: f.widgets.cc:538 +#: f.widgets.cc:540 msgid "Stack/Paint" msgstr "Apilar/pintar" -#: f.widgets.cc:539 +#: f.widgets.cc:541 msgid "Stack/Noise" msgstr "Apilar/ruido" -#: f.widgets.cc:540 +#: f.widgets.cc:542 msgid "Panorama" msgstr "Panorama" -#: f.widgets.cc:541 +#: f.widgets.cc:543 msgid "Vertical Panorama" msgstr "Panorama vertical " -#: f.widgets.cc:542 +#: f.widgets.cc:544 msgid "PT Panorama" msgstr "PT panorama" -#: f.widgets.cc:543 +#: f.widgets.cc:545 msgid "Mashup" msgstr "Montaje" -#: f.widgets.cc:549 +#: f.widgets.cc:551 msgid "Brightness Graph" -msgstr "" +msgstr "Gráfico de brillo" -#: f.widgets.cc:554 +#: f.widgets.cc:556 msgid "Dark/Bright Pixels" msgstr "Sobre/subexposición" -#: f.widgets.cc:555 +#: f.widgets.cc:557 msgid "Monitor Color" msgstr "Color del monitor" -#: f.widgets.cc:557 +#: f.widgets.cc:559 msgid "Change Language" msgstr "Cambiar idioma" -#: f.widgets.cc:558 +#: f.widgets.cc:560 msgid "Missing Translations" msgstr "Traducciones que faltan" -#: f.widgets.cc:560 +#: f.widgets.cc:562 msgid "Resources" msgstr "Recursos" -#: f.widgets.cc:567 -msgid "Batch RAW (DCraw)" -msgstr "Convertir Raw en lote (DCraw)" - -#: f.widgets.cc:568 -msgid "Batch RAW (Raw Therapee)" -msgstr "Convertir RAW en lote (RawTherapee)" - #: f.widgets.cc:569 +msgid "Batch RAW" +msgstr "Convertir RAW en lote" + +#: f.widgets.cc:570 +msgid "Batch Raw Therapee" +msgstr "Convertir RAW en lote (Raw Therapee)" + +#: f.widgets.cc:571 msgid "Script Files" msgstr "Archivo de comandos" -#: f.widgets.cc:572 +#: f.widgets.cc:574 msgid "Create File of Image Files" msgstr "Crear un listado de imágenes" -#: f.widgets.cc:586 +#: f.widgets.cc:588 msgid "Cycle Desktop Wallpaper" msgstr "Fondo de escritorio cíclico" -#: f.widgets.cc:603 f.widgets.cc:627 f.widgets.cc:651 f.widgets.cc:665 +#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 msgid "Gallery" msgstr "Galeria" -#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 +#: f.widgets.cc:606 f.widgets.cc:630 f.widgets.cc:654 f.widgets.cc:668 msgid "World Maps" msgstr "Mapas mundiales" -#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 +#: f.widgets.cc:607 f.widgets.cc:631 f.widgets.cc:655 f.widgets.cc:669 msgid "OSM Maps" msgstr "Mapas OSM" -#: f.widgets.cc:607 f.widgets.cc:631 +#: f.widgets.cc:609 f.widgets.cc:633 msgid "Favorites" msgstr "Favoritos" -#: f.widgets.cc:609 fotoxx.h:1177 +#: f.widgets.cc:611 fotoxx.h:1178 msgid "Save" msgstr "Guardar" -#: f.widgets.cc:610 +#: f.widgets.cc:612 msgid "Prev/Next" msgstr "Ant/Sig" -#: f.widgets.cc:612 +#: f.widgets.cc:614 msgid "Areas" msgstr "Areas" -#: f.widgets.cc:613 fotoxx.h:1122 +#: f.widgets.cc:615 fotoxx.h:1123 msgid "Edit" msgstr "Editar" -#: f.widgets.cc:614 +#: f.widgets.cc:616 msgid "Repair" msgstr "Reparar" -#: f.widgets.cc:615 +#: f.widgets.cc:617 msgid "Bend" msgstr "Deformar" -#: f.widgets.cc:616 +#: f.widgets.cc:618 msgid "Effects" msgstr "Efectos" -#: f.widgets.cc:617 +#: f.widgets.cc:619 msgid "Combine" msgstr "Combinar" -#: f.widgets.cc:618 +#: f.widgets.cc:620 msgid "Undo/Redo" msgstr "Desh/Reh" -#: f.widgets.cc:619 +#: f.widgets.cc:621 msgid "Tools" msgstr "Herramientas" -#: f.widgets.cc:633 +#: f.widgets.cc:635 msgid "Albums" msgstr "Álbums" -#: f.widgets.cc:634 +#: f.widgets.cc:636 msgid "Bookmarks" msgstr "Marcas" -#: f.widgets.cc:643 +#: f.widgets.cc:645 msgid "Batch" msgstr "Lote" -#: f.widgets.cc:655 +#: f.widgets.cc:657 msgid "Choose Map" msgstr "Elegir mapa" -#: f.widgets.cc:656 +#: f.widgets.cc:658 msgid "Search Range" msgstr "Rango de búsqueda" -#: f.widgets.cc:676 fotoxx.h:1195 +#: f.widgets.cc:678 fotoxx.h:1195 msgid "Undo" msgstr "Deshacer" -#: f.widgets.cc:677 fotoxx.h:1168 +#: f.widgets.cc:679 fotoxx.h:1169 msgid "Redo" msgstr "Rehacer" -#: f.widgets.cc:678 +#: f.widgets.cc:680 msgid "Save File Version" msgstr "Guardar versión de archivo" -#: f.widgets.cc:722 +#: f.widgets.cc:724 msgid "Popup Image" msgstr "Imagen emergente" -#: f.widgets.cc:726 fotoxx.h:1171 +#: f.widgets.cc:728 fotoxx.h:1172 msgid "Rename" msgstr "Renombrar" -#: f.widgets.cc:728 +#: f.widgets.cc:730 msgid "Copy to Clipboard" msgstr "Copiar al portapapeles" -#: f.widgets.cc:729 +#: f.widgets.cc:731 msgid "Remove from Album" msgstr "Eliminar del álbum" -#: f.widgets.cc:730 +#: f.widgets.cc:732 msgid "Cut to Image Cache" msgstr " Cortar al caché de imagen" -#: f.widgets.cc:731 +#: f.widgets.cc:733 msgid "Copy to Image Cache" msgstr "Copiar al caché de imagen " -#: f.widgets.cc:732 +#: f.widgets.cc:734 msgid "Paste Image Cache Here (clear)" msgstr "Pegar caché de imagen aquí (borrar)" -#: f.widgets.cc:733 +#: f.widgets.cc:735 msgid "Paste Image Cache Here (keep)" msgstr "Pegar caché de imagen aquí (guardar)" -#: f.widgets.cc:734 +#: f.widgets.cc:736 msgid "Paste Current Image File Here" msgstr "Pegar aqui imagen actual" -#: f.widgets.cc:744 +#: f.widgets.cc:746 msgid "Select Area" msgstr "Seleccionar área" -#: f.widgets.cc:747 +#: f.widgets.cc:748 msgid "Show on OSM Map" -msgstr "" +msgstr "Mostrar en Open Street Maps" -#: f.widgets.cc:748 +#: f.widgets.cc:749 msgid "Delete/Trash" -msgstr "" +msgstr "Eliminar/borrar" #: f.widgets.cc:963 f.widgets.cc:985 msgid "Image Locations" msgstr "Ubicación de imágenes" -#: fotoxx-16.06.cc:392 +#: fotoxx-16.07.cc:387 msgid "Please install missing programs:" msgstr "Por favor instalar los programas necesarios:" -#: fotoxx-16.06.cc:683 +#: fotoxx-16.07.cc:675 msgid "Kill active dialog?" msgstr "¿Cerrar diálogo activo?" -#: fotoxx-16.06.cc:764 +#: fotoxx-16.07.cc:756 msgid "(reduced)" msgstr "(reducido)" -#: fotoxx-16.06.cc:765 +#: fotoxx-16.07.cc:757 msgid "area active" msgstr "área activa" -#: fotoxx-16.06.cc:766 +#: fotoxx-16.07.cc:758 msgid "dialog open" msgstr "diálogo abierto" -#: fotoxx-16.06.cc:767 +#: fotoxx-16.07.cc:759 msgid "blocked" msgstr "bloqueado" -#: fotoxx-16.06.cc:818 +#: fotoxx-16.07.cc:810 msgid "edits" msgstr "ediciones" -#: fotoxx-16.06.cc:2921 +#: fotoxx-16.07.cc:2932 msgid "Exceed 50 anchor points" msgstr "Excedidos 50 puntos de anclaje" -#: fotoxx-16.06.cc:3141 +#: fotoxx-16.07.cc:3152 msgid "load curve from a file" msgstr "Cargar curva desde un archivo" -#: fotoxx-16.06.cc:3207 +#: fotoxx-16.07.cc:3218 msgid "curve file is invalid" msgstr "Archivo de curva no válido" -#: fotoxx-16.06.cc:3221 +#: fotoxx-16.07.cc:3232 msgid "save curve to a file" msgstr "Guardar la curva como un archivo" -#: fotoxx-16.06.cc:3293 +#: fotoxx-16.07.cc:3304 msgid "Too many edits, please save image" msgstr "Demasiadas ediciones, por favcor guarde la imagen" -#: fotoxx-16.06.cc:3298 +#: fotoxx-16.07.cc:3309 msgid "this function cannot be scripted" msgstr "esta función no puede ser guionada" -#: fotoxx-16.06.cc:3315 +#: fotoxx-16.07.cc:3326 msgid "" "Select area not active.\n" "Continue?" @@ -5015,27 +4989,27 @@ "La selección de área no está activada.\n" "¿Continuar?" -#: fotoxx-16.06.cc:3630 +#: fotoxx-16.07.cc:3641 msgid "file data does not fit dialog" msgstr "los datos del archivo no se ajustan al diálogo" -#: fotoxx-16.06.cc:3640 +#: fotoxx-16.07.cc:3651 msgid "Save settings to a file" msgstr "Guardar ajustes en un archivo" -#: fotoxx-16.06.cc:3993 +#: fotoxx-16.07.cc:4004 msgid "This action will discard changes to current image" msgstr "Esta acción descartará los cambios a la imagen actual" -#: fotoxx-16.06.cc:3994 +#: fotoxx-16.07.cc:4005 msgid "prior function still active" msgstr "función anterior todavía activa" -#: fotoxx-16.06.cc:3995 fotoxx.h:1140 +#: fotoxx-16.07.cc:4006 fotoxx.h:1141 msgid "Keep" msgstr "Guardar" -#: fotoxx-16.06.cc:3996 +#: fotoxx-16.07.cc:4007 msgid "Discard" msgstr "Descartar" @@ -5071,7 +5045,7 @@ msgid "Blend Width" msgstr "Ancho de mezclado" -#: fotoxx.h:1103 zfuncs.cc:10576 +#: fotoxx.h:1103 zfuncs.cc:10518 msgid "bottom" msgstr "abajo" @@ -5100,206 +5074,198 @@ msgstr "Color" #: fotoxx.h:1111 +msgid "COMPLETED" +msgstr "COMPLETADO" + +#: fotoxx.h:1112 msgid "continue" msgstr "continuar" -#: fotoxx.h:1113 +#: fotoxx.h:1114 msgid "Copy" msgstr "Copiar" -#: fotoxx.h:1114 +#: fotoxx.h:1115 msgid "Create" msgstr "Crear" -#: fotoxx.h:1115 +#: fotoxx.h:1116 msgid "Curve File:" msgstr "Archivo de curva:" -#: fotoxx.h:1116 +#: fotoxx.h:1117 msgid "Cut" msgstr "Cortar" -#: fotoxx.h:1117 +#: fotoxx.h:1118 msgid "Deband" msgstr "Eliminar bandas" -#: fotoxx.h:1118 +#: fotoxx.h:1119 msgid "Delete" msgstr "Borrar" -#: fotoxx.h:1120 +#: fotoxx.h:1121 msgid "Done" msgstr "Hecho" -#: fotoxx.h:1121 +#: fotoxx.h:1122 msgid "edge" msgstr "borde" -#: fotoxx.h:1124 +#: fotoxx.h:1125 msgid "Erase" msgstr "Borrar" -#: fotoxx.h:1125 +#: fotoxx.h:1126 msgid "Fetch" msgstr "Extraer" -#: fotoxx.h:1126 +#: fotoxx.h:1127 msgid "output file already exists" msgstr "el archivo de salida ya existe" -#: fotoxx.h:1127 +#: fotoxx.h:1128 #, c-format msgid "%d files selected" msgstr "%d archivos seleccionados" -#: fotoxx.h:1128 +#: fotoxx.h:1129 msgid "Find" msgstr "Encontrar" -#: fotoxx.h:1129 +#: fotoxx.h:1130 msgid "Finish" msgstr "Terminar" -#: fotoxx.h:1130 -msgid "Flatten" -msgstr "Aplanar" - -#: fotoxx.h:1131 +#: fotoxx.h:1132 msgid "Font" msgstr "Tipo de letra" -#: fotoxx.h:1133 +#: fotoxx.h:1134 msgid "Grid" msgstr "Rejilla" -#: fotoxx.h:1134 +#: fotoxx.h:1135 msgid "Height" msgstr "Alto" -#: fotoxx.h:1137 +#: fotoxx.h:1138 msgid "Images" msgstr " Imágenes" -#: fotoxx.h:1138 +#: fotoxx.h:1139 msgid "Insert" msgstr "Insertar" -#: fotoxx.h:1141 zfuncs.cc:10580 +#: fotoxx.h:1142 zfuncs.cc:10522 msgid "left" msgstr "izquierda" -#: fotoxx.h:1142 +#: fotoxx.h:1143 msgid "limit" msgstr "límite" -#: fotoxx.h:1143 +#: fotoxx.h:1144 msgid "Load" msgstr "Cargar" -#: fotoxx.h:1144 +#: fotoxx.h:1145 msgid "Make" msgstr "Hacer" -#: fotoxx.h:1146 +#: fotoxx.h:1147 msgid "Map" msgstr "Mapa" -#: fotoxx.h:1147 -msgid "Match Level" -msgstr "Nivel de coincidencia" - -#: fotoxx.h:1148 +#: fotoxx.h:1149 msgid "Max" msgstr "Máx" -#: fotoxx.h:1149 +#: fotoxx.h:1150 msgid "Negative" msgstr "Negativo" -#: fotoxx.h:1150 +#: fotoxx.h:1151 msgid "New" msgstr "Nuevo" -#: fotoxx.h:1151 +#: fotoxx.h:1152 msgid "Next" msgstr "Siguiente" -#: fotoxx.h:1152 zfuncs.cc:9658 +#: fotoxx.h:1153 zfuncs.cc:9600 msgid "No" msgstr "No" -#: fotoxx.h:1153 +#: fotoxx.h:1154 msgid "no images" msgstr "sin imágenes" -#: fotoxx.h:1155 +#: fotoxx.h:1156 msgid "no selection" msgstr "sin selección" -#: fotoxx.h:1156 +#: fotoxx.h:1157 msgid "OK" msgstr "OK" -#: fotoxx.h:1158 +#: fotoxx.h:1159 msgid "Paste" msgstr "Pegar" -#: fotoxx.h:1159 +#: fotoxx.h:1160 msgid "Pause" msgstr "Pausa" -#: fotoxx.h:1160 +#: fotoxx.h:1161 msgid "Percent" msgstr "Porcentaje" -#: fotoxx.h:1162 +#: fotoxx.h:1163 msgid "Presets" msgstr "Predefinidos" -#: fotoxx.h:1163 +#: fotoxx.h:1164 msgid "Prev" msgstr "Anterior" -#: fotoxx.h:1164 +#: fotoxx.h:1165 msgid "Proceed" msgstr "Proceder" -#: fotoxx.h:1166 +#: fotoxx.h:1167 msgid "range" msgstr "rango" -#: fotoxx.h:1169 +#: fotoxx.h:1170 msgid "Reduce" msgstr "Reducir" -#: fotoxx.h:1170 +#: fotoxx.h:1171 msgid "Remove" msgstr "Eliminar" -#: fotoxx.h:1172 +#: fotoxx.h:1173 msgid "Replace" msgstr "Reemplazar" -#: fotoxx.h:1173 +#: fotoxx.h:1174 msgid "Reserved" msgstr "Reservado" -#: fotoxx.h:1174 +#: fotoxx.h:1175 msgid "Reset" msgstr "Restablecer" -#: fotoxx.h:1175 zfuncs.cc:10584 +#: fotoxx.h:1176 zfuncs.cc:10526 msgid "right" msgstr "derecha" -#: fotoxx.h:1176 +#: fotoxx.h:1177 msgid "Rotate" msgstr "Rotar" -#: fotoxx.h:1178 -msgid "Unknown file type, save as tiff/jpeg/png to edit" -msgstr "Tipo de archivo desconocido, guarde como tiff/jpeg/png para editarlo" - #: fotoxx.h:1179 msgid "Search" msgstr "Buscar" @@ -5329,7 +5295,7 @@ msgid "exceed %d files" msgstr "se excedió en %d archivos" -#: fotoxx.h:1189 zfuncs.cc:10572 +#: fotoxx.h:1189 zfuncs.cc:10514 msgid "top" msgstr "arriba" @@ -5377,11 +5343,11 @@ msgid "y-offset" msgstr "desplazamiento Y" -#: fotoxx.h:1204 zfuncs.cc:9658 +#: fotoxx.h:1204 zfuncs.cc:9600 msgid "Yes" msgstr "Sí" -#: zfuncs.cc:1687 +#: zfuncs.cc:1693 #, c-format msgid "" "create directory? \n" @@ -5390,79 +5356,129 @@ "¿Crear directorio? \n" " %s" -#: zfuncs.cc:4530 +#: zfuncs.cc:4535 msgid "user guide not found" msgstr "guia de usuario no encontrada" -#: zfuncs.cc:5345 +#: zfuncs.cc:5287 #, c-format msgid "cannot open file %s" msgstr "No puedo abrir el archivo %s" -#: zfuncs.cc:5381 +#: zfuncs.cc:5323 msgid "save screen to file" msgstr "guardar pantalla a archivo" -#: zfuncs.cc:9744 zfuncs.cc:10239 zfuncs.cc:10559 +#: zfuncs.cc:9686 zfuncs.cc:10181 zfuncs.cc:10501 msgid "cancel" msgstr "cancelar" -#: zfuncs.cc:10200 +#: zfuncs.cc:10142 msgid "choose file" msgstr "elegir archivo" -#: zfuncs.cc:10205 +#: zfuncs.cc:10147 msgid "choose files" msgstr "elegir archivos" -#: zfuncs.cc:10210 +#: zfuncs.cc:10152 msgid "save" msgstr "guardar" -#: zfuncs.cc:10216 +#: zfuncs.cc:10158 msgid "choose folder" msgstr "elegir carpeta" -#: zfuncs.cc:10221 +#: zfuncs.cc:10163 msgid "choose folders" msgstr "elegir carpetas" -#: zfuncs.cc:10226 +#: zfuncs.cc:10168 msgid "create folder" msgstr "crear carpeta" -#: zfuncs.cc:10233 +#: zfuncs.cc:10175 msgid "hidden" msgstr "ocultar" -#: zfuncs.cc:10559 +#: zfuncs.cc:10501 msgid "done" msgstr "hecho" -#: zfuncs.cc:10559 zfuncs.cc:10568 +#: zfuncs.cc:10501 zfuncs.cc:10510 msgid "margins" msgstr "márgenes" -#: zfuncs.cc:10589 +#: zfuncs.cc:10531 msgid "image scale" msgstr "escalar imagen" -#: zfuncs.cc:10591 +#: zfuncs.cc:10533 msgid "percent" msgstr "porcentual" -#: zfuncs.cc:10598 +#: zfuncs.cc:10540 msgid "image" msgstr "imagen" -#: zfuncs.cc:10602 +#: zfuncs.cc:10544 msgid "width" msgstr "ancho" -#: zfuncs.cc:10606 +#: zfuncs.cc:10548 msgid "height" msgstr "alto" +#~ msgid "" +#~ "The next preceding gallery does not exist or contains no images. \n" +#~ "(No subdirectories and no further directories are searched)." +#~ msgstr "" +#~ "La próxima galería precedente no existe o no contiene imágenes. \n" +#~ "(No se buscarán más directorios ni sudirectorios)." + +#~ msgid "" +#~ "The next following gallery does not exist or contains no images. \n" +#~ "(No subdirectories and no further directories are searched)." +#~ msgstr "" +#~ "La próxima galería siguiente no existe o no contiene imágenes. \n" +#~ "(No se buscarán más directorios)." + +#~ msgid "Batch Convert RAW Files (libraw)" +#~ msgstr "Convertir en lote archivos RAW (libraw)" + +#~ msgid "libraw not installed" +#~ msgstr "libraw no instalado" + +#~ msgid "white balance" +#~ msgstr "balance de blancos" + +#~ msgid "interpolation" +#~ msgstr "interpolacion" + +#~ msgid "color space" +#~ msgstr "espacio de color" + +#~ msgid "gamma curve" +#~ msgstr "curva Gamma" + +#~ msgid "camera" +#~ msgstr "cámara" + +#~ msgid "fixed" +#~ msgstr "fijado" + +#~ msgid "calculated" +#~ msgstr "calculado" + +#~ msgid "default" +#~ msgstr "por defecto" + +#~ msgid "defaults" +#~ msgstr "por defecto" + +#~ msgid "RAW command" +#~ msgstr "Comando RAW" + #~ msgid "select area within mouse" #~ msgstr "seleccionar área con el ratón" @@ -5682,3 +5698,37 @@ #~ msgid "Edit Geotags" #~ msgstr "Editar Geoetiquetas" + +#~ msgid "Unknown file type, save as tiff/jpeg/png to edit" +#~ msgstr "" +#~ "Tipo de archivo desconocido, guarde como tiff/jpeg/png para editarlo" + +#~ msgid "Open RAW (ufraw)" +#~ msgstr "Abrir RAW (ufraw)" + +#~ msgid "Flatten 2" +#~ msgstr "Aplanar 2" + +#~ msgid "Flatten 1" +#~ msgstr "Aplanar 1" + +#~ msgid "error: %s" +#~ msgstr "error: %s" + +#~ msgid "Cannot create desktop trash folder: %s" +#~ msgstr "No se ha podido crear carpeta de papelera en el escritorio: %s" + +#~ msgid "Open RAW file (ufraw)" +#~ msgstr "Abrir archivo RAW (ufraw)" + +#~ msgid "UFraw not installed" +#~ msgstr "UFRaw no instalado" + +#~ msgid "success" +#~ msgstr "satisfactorio" + +#~ msgid "searching" +#~ msgstr "buscando" + +#~ msgid "extend to corner:" +#~ msgstr "extender hasta la esquina" diff -Nru fotoxx-16.06/locales/translate-fr.po fotoxx-16.07/locales/translate-fr.po --- fotoxx-16.06/locales/translate-fr.po 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/locales/translate-fr.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,5726 +0,0 @@ -# translation of fotoxx_merge.po to -# mico , 2008. -# Stanislas Zeller , 2008, 2009, 2010, 2011. -# translation of fotoxx.po to -# #-#-#-#-# fotoxx.po (messages) #-#-#-#-# -# French translations for home package. -# Copyright (C) 2016 THE home'S COPYRIGHT HOLDER -# This file is distributed under the same license as the home package. -msgid "" -msgstr "" -"Project-Id-Version: fotoxx_merge\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-31 15:14+0200\n" -"PO-Revision-Date: 2015-09-28 13:58+0100\n" -"Last-Translator: FR_PUPPY_LINUX \n" -"Language-Team: FR_PUPPY_LINUX \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 1.5.4\n" - -#: f.albums.cc:87 -msgid "" -"Right-click album thumbnail to cut/copy \n" -"to cache, insert from cache, or remove." -msgstr "" -"Clic droit sur la vignette de l'album pour couper/copier \n" -"dans le cache, insérer à partir du cache ou retirer." - -#: f.albums.cc:89 -msgid "Drag album thumbnail to new position." -msgstr "Glisser la vignette de l'album à une nouvelle position." - -#: f.albums.cc:118 f.widgets.cc:583 -msgid "Manage Albums" -msgstr "Gestion des Albums" - -#: f.albums.cc:129 f.albums.cc:266 -msgid "Create or replace an album" -msgstr "Créer ou remplacer un album" - -#: f.albums.cc:131 -msgid "Album to view or edit" -msgstr "Album à afficher ou éditer" - -#: f.albums.cc:133 -msgid "Select images, add to cache" -msgstr "Sélectionner les images, ajouter au cache" - -#: f.albums.cc:135 -msgid "Clear image cache" -msgstr "Effacer le cache de l'image" - -#: f.albums.cc:137 f.albums.cc:159 -msgid "Delete an album" -msgstr "Supprimer un album" - -#: f.albums.cc:158 -msgid "Choose Album" -msgstr "Choisir un album" - -#: f.albums.cc:160 -#, c-format -msgid "Image cache has %d images" -msgstr "" - -#: f.albums.cc:161 -msgid "cache added to empty album" -msgstr "cache ajouté à l'album vide" - -#: f.albums.cc:215 -#, c-format -msgid "delete %s ?" -msgstr "supprimer %s ?" - -#: f.albums.cc:250 -#, c-format -msgid "fill from image cache (%d images)" -msgstr "remplir à partir du cache de l'image (%d images)" - -#: f.albums.cc:268 f.albums.cc:305 -msgid "Album Name" -msgstr "Nom de l'Album" - -#: f.albums.cc:274 -msgid "make an initially empty album" -msgstr "créer un album initialement vide" - -#: f.albums.cc:276 -msgid "fill from current gallery" -msgstr "remplir à partir de la galerie actuelle" - -#: f.albums.cc:319 -msgid "enter an album name" -msgstr "Saisir un nom d'album" - -#: f.albums.cc:346 -msgid "gallery is empty" -msgstr "Il n'y a rien dans la galerie" - -#: f.albums.cc:373 -msgid "new album created" -msgstr "nouvel album créé" - -#: f.albums.cc:1157 -msgid "instant" -msgstr "instantané" - -#: f.albums.cc:1158 -msgid "fade-in" -msgstr "fondu" - -#: f.albums.cc:1159 -msgid "roll-right" -msgstr "rouleau à droite" - -#: f.albums.cc:1160 -msgid "roll-down" -msgstr "rouleau à gauche" - -#: f.albums.cc:1161 -msgid "venetian" -msgstr "store vénitien" - -#: f.albums.cc:1162 -msgid "grate" -msgstr "grille" - -#: f.albums.cc:1163 -msgid "rectangle" -msgstr "rectangle" - -#: f.albums.cc:1164 -msgid "implode" -msgstr "imploser" - -#: f.albums.cc:1165 -msgid "explode" -msgstr "exploser" - -#: f.albums.cc:1166 -msgid "radar" -msgstr "radar" - -#: f.albums.cc:1167 -msgid "spiral" -msgstr "" - -#: f.albums.cc:1168 -msgid "Japanese-fan" -msgstr "Fan japonais" - -#: f.albums.cc:1169 -msgid "jaws" -msgstr "mâchoires" - -#: f.albums.cc:1170 -msgid "ellipse" -msgstr "ellipse" - -#: f.albums.cc:1171 -msgid "raindrops" -msgstr "gouttes de pluie" - -#: f.albums.cc:1172 -msgid "doubledoor" -msgstr "porte à deux battants" - -#: f.albums.cc:1173 -msgid "rotate" -msgstr "pivoter" - -#: f.albums.cc:1174 -msgid "fallover" -msgstr "tomber" - -#: f.albums.cc:1175 -msgid "spheroid" -msgstr "" - -#: f.albums.cc:1176 -msgid "turn-page" -msgstr "" - -#: f.albums.cc:1177 -msgid "french-door" -msgstr "" - -#: f.albums.cc:1197 f.widgets.cc:584 -msgid "Slide Show" -msgstr "Diaporama" - -#: f.albums.cc:1208 -msgid "Clip Limit" -msgstr "Limite d'Attache" - -#: f.albums.cc:1212 -msgid "Music File" -msgstr "Fichier Audio" - -#: f.albums.cc:1217 -msgid "Full Screen" -msgstr "Plein Écran" - -#: f.albums.cc:1218 -msgid "Auto-replay" -msgstr "Répétition auto" - -#: f.albums.cc:1219 -msgid "KB functions" -msgstr "" - -#: f.albums.cc:1222 -msgid "Customize:" -msgstr "Personnaliser:" - -#: f.albums.cc:1223 -msgid "transitions" -msgstr "transitions" - -#: f.albums.cc:1224 -msgid "image files" -msgstr "fichiers image" - -#: f.albums.cc:1229 f.albums.cc:1356 -#, c-format -msgid "%d images" -msgstr "%d images" - -#: f.albums.cc:1251 f.albums.cc:1326 f.albums.cc:1422 f.albums.cc:1661 -#: f.albums.cc:1946 f.albums.cc:1963 f.albums.cc:2177 -msgid "invalid album" -msgstr "album non valide" - -#: f.albums.cc:1340 -msgid "open album" -msgstr "Ouvrir un album" - -#: f.albums.cc:1372 -msgid "Select music file" -msgstr "Sélectionner un fichier musique" - -#: f.albums.cc:1401 -msgid "select random (if 2+ enabled)" -msgstr "Sélection aléatoire (si +2 disponibles)" - -#: f.albums.cc:1426 -msgid "Transition Preferences" -msgstr "Préférences de Transition " - -#: f.albums.cc:1429 f.edit.cc:2008 -msgid "Settings File" -msgstr "Fichier de Paramétrage" - -#: f.albums.cc:1439 -msgid "transition" -msgstr "transition" - -#: f.albums.cc:1440 -msgid "enabled" -msgstr "activé" - -#: f.albums.cc:1441 -msgid "slowdown" -msgstr "ralentissement" - -#: f.albums.cc:1442 -msgid "preference" -msgstr "préférence" - -#: f.albums.cc:1517 f.albums.cc:1556 -msgid "invalid file" -msgstr "" - -#: f.albums.cc:1610 f.albums.cc:2162 -#, c-format -msgid "" -"file format error: \n" -" %s" -msgstr "" -"erreur de format de fichier: \n" -" %s" - -#: f.albums.cc:1667 -msgid "Image Preferences" -msgstr "Préférences Image" - -#: f.albums.cc:1671 f.edit.cc:1338 f.file.cc:1166 f.file.cc:1427 f.meta.cc:617 -#: f.meta.cc:1414 -msgid "Image File:" -msgstr "Fichier Image:" - -#: f.albums.cc:1675 -msgid "Play tone when image shows" -msgstr "Jouer le son lorsque l'image s'affiche" - -#: f.albums.cc:1678 -msgid "Show image caption" -msgstr "Afficher la légende de l'image" - -#: f.albums.cc:1683 -msgid "Show image comments" -msgstr "Afficher les commentaires de l'image" - -#: f.albums.cc:1688 -msgid "Wait before zoom" -msgstr "Attendre avant le zoom" - -#: f.albums.cc:1693 -msgid "Zoom type:" -msgstr "Type de zoom" - -#: f.albums.cc:1694 -msgid "none" -msgstr "Aucun" - -#: f.albums.cc:1695 -msgid "zoom-in" -msgstr "zoom avant" - -#: f.albums.cc:1696 -msgid "zoom-out" -msgstr "zoom arrière" - -#: f.albums.cc:1699 -msgid "Zoom size (x)" -msgstr "Taille de zoom (x)" - -#: f.albums.cc:1702 -msgid "Steps" -msgstr "Étapes" - -#: f.albums.cc:1706 -msgid "Zoom Center" -msgstr "" - -#: f.albums.cc:1710 -msgid "Wait after zoom" -msgstr "Attendre après le zoom" - -#: f.albums.cc:1715 -msgid "Transition to next image" -msgstr "Transition vers l'image suivante" - -#: f.albums.cc:1718 f.albums.cc:1821 -msgid "next" -msgstr "suiv." - -#: f.albums.cc:1811 -msgid "click on thumbnail to set zoom center" -msgstr "" - -#: f.area.cc:81 -msgid "Select Area for Edits" -msgstr "Sélectionner la Zone de Travail" - -#: f.area.cc:82 f.edit.cc:5919 -msgid "Press F1 for help" -msgstr "Appuyer sur la touche F1 pour obtenir de l'Aide" - -#: f.area.cc:91 -msgid "" -"Select Area not supported \n" -"by this edit function" -msgstr "" -"Sélection de Zone non prise en charge \n" -"par cette fonction d'édition" - -#: f.area.cc:121 -msgid "select rectangle" -msgstr "rectangle" - -#: f.area.cc:122 -msgid "select ellipse" -msgstr "ellipse" - -#: f.area.cc:125 -msgid "freehand draw" -msgstr "dessin à main levée" - -#: f.area.cc:126 -msgid "follow edge" -msgstr "suivre le bord" - -#: f.area.cc:127 -msgid "draw/replace" -msgstr "dessiner/remplacer" - -#: f.area.cc:130 -msgid "select area within mouse circle" -msgstr "" - -#: f.area.cc:133 -msgid "select one matching color within mouse circle:" -msgstr "" - -#: f.area.cc:135 -msgid "" -"first select the checkbox, then \n" -"shift+click on image to set the color" -msgstr "" - -#: f.area.cc:139 -msgid "select all matching colors within mouse circle" -msgstr "" - -#: f.area.cc:143 f.edit.cc:5961 -msgid "mouse radius" -msgstr "rayon du pointeur" - -#: f.area.cc:146 -msgid "match level %" -msgstr "niveau de correspondance %" - -# ?? -#: f.area.cc:151 -msgid "search range" -msgstr "fourchette de recherche" - -#: f.area.cc:155 -msgid "Area Edge Blend Width" -msgstr "Largeur de Mélange de Bord de Zone" - -#: f.area.cc:158 -msgid "Edge Creep" -msgstr "Fluage du Bord" - -#: f.area.cc:163 -msgid "Line Color:" -msgstr "Couleur de ligne" - -#: f.area.cc:183 f.area.cc:184 -msgid "area edits fade away within edge distance" -msgstr "les retouches de la zone s'estompent à proximité du bord" - -#: f.area.cc:356 f.area.cc:539 -#, c-format -msgid "exceed %d edits" -msgstr "excède %d opérations" - -#: f.area.cc:1361 -msgid "" -"Click one time inside each enclosed area \n" -"(possible gaps in the outline will be found). \n" -"Press [Done] when finished. Press F1 for help." -msgstr "" - -#: f.area.cc:1389 -msgid "finish area" -msgstr "finir la zone" - -#: f.area.cc:1397 -msgid "extend to corner:" -msgstr "étendre jusqu'au coin:" - -#: f.area.cc:1438 -msgid "searching" -msgstr "recherche en cours" - -#: f.area.cc:1469 -msgid "outline has a gap" -msgstr "le contour est discontinu" - -#: f.area.cc:1473 -msgid "success" -msgstr "succès" - -#: f.area.cc:1618 f.area.cc:1645 -#, c-format -msgid "found %d pixels" -msgstr "%d pixels trouvés" - -#: f.area.cc:1940 f.area.cc:1957 f.area.cc:1977 f.area.cc:2301 f.area.cc:2378 -#: f.area.cc:2484 -msgid "the area is not finished" -msgstr "la zone n'est pas finie" - -#: f.area.cc:2066 -msgid "Edge calculation in progress" -msgstr "calcul du bord en cours" - -#: f.area.cc:2075 -msgid "Area Edge Calc" -msgstr "Calcul du Bord de la Zone" - -#: f.area.cc:2519 -msgid "save area as a PNG file" -msgstr "Enregistrer la zone comme fichier PNG" - -#: f.area.cc:2551 -msgid "load area from a file" -msgstr "Charger la zone à partir d'un fichier" - -#: f.area.cc:2594 -msgid "position with mouse click/drag" -msgstr "position par cliquer/glisser" - -#: f.area.cc:2634 -msgid "Paste Image" -msgstr "Coller l'Image" - -#: f.area.cc:2639 f.batch.cc:1360 f.batch.cc:1847 -msgid "resize" -msgstr "redimensionner" - -#: f.batch.cc:126 f.widgets.cc:564 -msgid "Batch Convert" -msgstr "Convertir par Lots" - -#: f.batch.cc:133 f.file.cc:940 -msgid "New Name" -msgstr "Nouveau Nom" - -#: f.batch.cc:138 -msgid "Sequence Numbers" -msgstr "" - -#: f.batch.cc:140 -msgid "base" -msgstr "base" - -#: f.batch.cc:143 -msgid "adder" -msgstr "ajout" - -#: f.batch.cc:148 -msgid "New Location" -msgstr "Nouvel Emplacement" - -#: f.batch.cc:153 -msgid "New File Type" -msgstr "Nouveau Type de Fichier" - -#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4389 -msgid "no change" -msgstr "aucune modification" - -#: f.batch.cc:160 -msgid "max. Width" -msgstr "largeur max." - -#: f.batch.cc:169 -msgid "Delete Originals" -msgstr "Supprimer les Originaux" - -#: f.batch.cc:170 f.batch.cc:746 -msgid "Copy Metadata" -msgstr "Copier les Métadonnées" - -#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:466 -#: f.widgets.cc:737 -msgid "Upright" -msgstr "En haut et à droite" - -#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1369 f.batch.cc:1856 -#: f.repair.cc:125 f.widgets.cc:482 -msgid "Sharpen" -msgstr "Renforcer la netteté" - -#: f.batch.cc:184 f.batch.cc:749 -msgid "Overlay Image" -msgstr "" - -#: f.batch.cc:187 -msgid "Width %" -msgstr "" - -#: f.batch.cc:192 -msgid "Position" -msgstr "" - -#: f.batch.cc:204 -msgid "Make constant size for screen:" -msgstr "" - -#: f.batch.cc:339 -msgid "file type not supported" -msgstr "type de fichier non pris en charge" - -#: f.batch.cc:468 -msgid "cannot create new file" -msgstr "impossible de créer le nouveau fichier" - -#: f.batch.cc:514 -msgid "updating albums ..." -msgstr "mise à jour des albums..." - -#: f.batch.cc:591 f.batch.cc:1642 f.batch.cc:2044 f.file.cc:1217 -msgid "Select directory" -msgstr "Sélectionner un répertoire" - -#: f.batch.cc:665 -msgid "" -"new name/base/adder unreasonable\n" -" e.g. newname ### 100 10\n" -" or ... [oldname] ..." -msgstr "" - -#: f.batch.cc:689 -#, c-format -msgid "max. size %d x %d is not reasonable" -msgstr "taille max. %d x %d incohérente" - -#: f.batch.cc:696 -msgid "specify overlay image file" -msgstr "" - -#: f.batch.cc:712 -msgid "specify overlay position" -msgstr "" - -#: f.batch.cc:740 -#, c-format -msgid "Convert %d image files" -msgstr "Convertir les fichiers image %d" - -#: f.batch.cc:741 -msgid "Rename to" -msgstr "Renommer en" - -#: f.batch.cc:742 -msgid "Convert to" -msgstr "Convertir en" - -#: f.batch.cc:743 -msgid "Resize within" -msgstr "Redimensionner dans" - -#: f.batch.cc:744 -msgid "Output to" -msgstr "Sortie vers" - -#: f.batch.cc:750 -msgid "*** Delete Originals ***" -msgstr "" - -#: f.batch.cc:751 -msgid "*** Replace Originals ***" -msgstr "" - -#: f.batch.cc:752 -msgid "PROCEED?" -msgstr "POURSUIVRE?" - -#: f.batch.cc:907 f.widgets.cc:565 -msgid "Batch Upright" -msgstr "Traitement par Lots Haut-Droit" - -#: f.batch.cc:913 -msgid "Survey all files" -msgstr "Surveiller tous les fichiers" - -#: f.batch.cc:968 -msgid "file cannot be read" -msgstr "Lecture du fichier impossible" - -#: f.batch.cc:1086 -msgid "cannot select both options" -msgstr "Impossible de sélectionner les deux options" - -#: f.batch.cc:1130 f.widgets.cc:566 -msgid "Batch Delete/Trash" -msgstr "Suppression/Mise à la Corbeille par Lots" - -#: f.batch.cc:1135 -msgid "delete" -msgstr "supprimer" - -#: f.batch.cc:1138 -msgid "trash" -msgstr "mettre à la corbeille" - -#: f.batch.cc:1302 -msgid "Batch Convert RAW Files (DCraw)" -msgstr "Conversion par lots de fichiers RAW (DCraw)" - -#: f.batch.cc:1312 -msgid "DCraw not installed" -msgstr "DCraw non installé" - -#: f.batch.cc:1347 f.batch.cc:1834 -msgid "output location" -msgstr "emplacement de sortie" - -#: f.batch.cc:1352 f.batch.cc:1839 -msgid "output file type" -msgstr "type de fichier de sortie" - -#: f.batch.cc:1371 f.batch.cc:1858 -msgid "amount" -msgstr "quantité" - -#: f.batch.cc:1374 f.batch.cc:1861 -msgid "threshold" -msgstr "seuil" - -#: f.batch.cc:1383 -msgid "white balance" -msgstr "balance des blancs" - -#: f.batch.cc:1384 -msgid "interpolation" -msgstr "interpolation" - -#: f.batch.cc:1385 -msgid "color space" -msgstr "espace de couleur" - -#: f.batch.cc:1386 -msgid "gamma curve" -msgstr "courbe gamma" - -#: f.batch.cc:1389 -msgid "camera" -msgstr "Appareil photo" - -#: f.batch.cc:1390 -msgid "fixed" -msgstr "défini" - -#: f.batch.cc:1391 -msgid "calculated" -msgstr "calculé" - -#: f.batch.cc:1408 -msgid "default" -msgstr "Défaut" - -#: f.batch.cc:1414 -msgid "defaults" -msgstr "Défauts" - -#: f.batch.cc:1796 -msgid "Batch Convert RAW Files (Raw Therapee)" -msgstr "Conversion par lots de fichiers RAW (Raw Therapee)" - -#: f.batch.cc:1806 f.file.cc:426 -msgid "Raw Therapee not installed" -msgstr "Raw Therapee non installé" - -#: f.batch.cc:2141 -msgid "start" -msgstr "" - -#: f.batch.cc:2142 -msgid "begin making a script file" -msgstr "" - -#: f.batch.cc:2144 -msgid "close" -msgstr "" - -#: f.batch.cc:2145 -msgid "finish making a script file" -msgstr "" - -#: f.batch.cc:2147 -msgid "run" -msgstr "" - -#: f.batch.cc:2148 -msgid "execute a script file" -msgstr "" - -#: f.batch.cc:2202 -msgid "script already started" -msgstr "" - -#: f.batch.cc:2206 -msgid "open new script file" -msgstr "" - -#: f.batch.cc:2238 -msgid "script file error" -msgstr "" - -#: f.batch.cc:2243 -#, c-format -msgid "%s added to script" -msgstr "" - -#: f.batch.cc:2256 -msgid "no script file was started" -msgstr "" - -#: f.batch.cc:2264 -msgid "script file closed" -msgstr "" - -#: f.batch.cc:2283 -msgid "script file is not closed" -msgstr "" - -#: f.batch.cc:2287 -msgid "select script file to run" -msgstr "" - -#: f.batch.cc:2289 -msgid "open script file" -msgstr "" - -#: f.batch.cc:2296 -msgid "unknown script file" -msgstr "" - -#: f.batch.cc:2303 -#, c-format -msgid "" -"script file: %s \n" -" %s" -msgstr "" - -#: f.batch.cc:2314 -msgid "select image files to be processed" -msgstr "" - -#: f.batch.cc:2326 f.batch.cc:2375 -#, c-format -msgid "" -"open failure: %s \n" -" %s" -msgstr "" - -#: f.batch.cc:2347 -#, c-format -msgid "unknown edit function: %s" -msgstr "" - -#: f.batch.cc:2356 -#, c-format -msgid "load widgets failed: %s" -msgstr "" - -#: f.batch.cc:2385 -#, c-format -msgid "script file format error: %s" -msgstr "" - -#: f.batch.cc:2430 -msgid "growisofs not installed" -msgstr "" - -#: f.batch.cc:2482 -msgid "no DVD/BlueRay device found" -msgstr "" - -#: f.batch.cc:2505 f.widgets.cc:570 -msgid "Burn Images to DVD/BlueRay" -msgstr "" - -#: f.batch.cc:2510 -msgid "Select device" -msgstr "" - -#: f.batch.cc:2635 f.widgets.cc:571 -msgid "Find Duplicate Images" -msgstr "Chercher les Doublons" - -#: f.batch.cc:2637 f.tools.cc:1012 -msgid "Thumbnail size" -msgstr "Taille de vignette" - -#: f.batch.cc:2640 -msgid "pixel difference" -msgstr "différence de pixel" - -#: f.batch.cc:2643 -msgid "pixel count" -msgstr "nombre de pixels" - -#: f.batch.cc:2646 -msgid "Images:" -msgstr "Images:" - -#: f.batch.cc:2647 -msgid "searching ..." -msgstr "Recherche en cours..." - -#: f.batch.cc:2649 -msgid "Duplicates:" -msgstr "Doublons:" - -#: f.batch.cc:2667 -#, c-format -msgid "only %d image thumbnails found" -msgstr "seulement %d vignettes trouvées" - -#: f.batch.cc:2875 f.widgets.cc:377 -msgid "Create a file of selected image files" -msgstr "" - -#: f.batch.cc:2899 f.batch.cc:2969 -msgid "Output File" -msgstr "" - -#: f.batch.cc:2918 -msgid "no input files selected" -msgstr "" - -#: f.batch.cc:2923 -msgid "no output file selected" -msgstr "" - -#: f.batch.cc:2937 f.tools.cc:643 -msgid "COMPLETED" -msgstr "COMPLÉTÉ" - -#: f.bend.cc:92 f.widgets.cc:505 -msgid "Unbend" -msgstr "Décintrer" - -#: f.bend.cc:369 -msgid "" -" Click the four corners of a tetragon area. Press [apply]. \n" -" The image is warped to make the tetragon into a rectangle." -msgstr "" -" Cliquer sur les quatre coins d'un quadrilatère. Cliquer [Appliquer]. \n" -" L'image est déformée pour faire du quadrilatère un rectangle." - -#: f.bend.cc:386 -msgid "Perspective Correction" -msgstr "Correction de Perspective" - -#: f.bend.cc:621 -msgid "must have 4 corners" -msgstr "doit comporter 4 coins" - -#: f.bend.cc:743 -msgid "" -" Select an area to warp using select area function. \n" -" Press [start warp] and pull area with mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, select another area or press [done]." -msgstr "" -" Sélectionner une zone à déformer au moyen de la fonction \n" -"de sélection de zone. \n" -" Cliquer sur [Commencer la déformation] et tirer la zone avec la souris. \n" -" Répéter plusieurs fois l'opération jusqu'à satisfaction. \n" -" Une fois terminé, sélectionner une autre zone ou cliquer sur [Terminé]." - -#: f.bend.cc:756 f.widgets.cc:507 -msgid "Warp area" -msgstr "Déformer la zone" - -#: f.bend.cc:761 -msgid "start warp" -msgstr "démarrer la distorsion" - -#: f.bend.cc:819 f.effects.cc:5686 -msgid "no active Select Area" -msgstr "pas de sélection de zone active" - -#: f.bend.cc:1160 f.bend.cc:1474 -msgid "" -" Pull an image position using the mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, press [done]." -msgstr "" -" Tirer à un endroit de l'image au moyen de la souris. \n" -" Répéter plusieurs fois l'opération jusqu'à satisfaction. \n" -" Une fois terminé, cliquer sur [Terminé]." - -#: f.bend.cc:1178 f.widgets.cc:508 -msgid "Warp curved" -msgstr "Décintrer" - -#: f.bend.cc:1187 f.mashup.cc:1845 -msgid "warp span" -msgstr "amplitude de distorsion" - -#: f.bend.cc:1492 f.widgets.cc:509 -msgid "Warp linear" -msgstr "Distorsion linéaire" - -#: f.bend.cc:1807 -msgid "" -" Pull on an image corner using the mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, press [done]." -msgstr "" -" Tirer un coin de l'image au moyen de la souris. \n" -" Répéter plusieurs fois l'opération jusqu'à satisfaction. \n" -" Une fois terminé, cliquer sur [Terminé]." - -#: f.bend.cc:1823 f.widgets.cc:510 -msgid "Warp affine" -msgstr "Déformation affinée" - -#: f.bend.cc:2169 -msgid "Flatten Book Page Photo" -msgstr "Aplatir une Photo de Page de Livre" - -#: f.bend.cc:2170 -msgid "" -"Trim image to isolate one page. \n" -"Map top and bottom edges with \n" -"4+ mouse clicks, then flatten: " -msgstr "" -"Rogner l'image pour isoler une page. \n" -"Mapper les bords supérieur et inférieur avec \n" -"4+ clics de souris, puis aplatir:" - -#: f.bend.cc:2173 -msgid "Stretch curved-down surfaces:" -msgstr "Étirer les surfaces cintrées vers le bas:" - -#: f.bend.cc:2228 -msgid "top:" -msgstr "haut:" - -#: f.bend.cc:2231 -msgid "bottom:" -msgstr "bas:" - -#: f.bend.cc:2614 f.widgets.cc:512 -msgid "Spherical Projection" -msgstr "" - -#: f.bend.cc:2658 -msgid "Magnify" -msgstr "" - -#: f.bend.cc:2834 -msgid "" -" Select areas to remain unchanged. \n" -" Pull image from upper left corner. \n" -" When finished, press [done]." -msgstr "" - -#: f.bend.cc:2850 f.widgets.cc:513 -msgid "Selective Rescale" -msgstr "" - -#: f.bend.cc:2875 -msgid "select areas first" -msgstr "" - -#: f.combine.cc:2105 f.combine.cc:2737 f.combine.cc:3393 f.combine.cc:3925 -msgid "Select 2 to 9 files" -msgstr "Sélectionner 2 à 9 fichiers" - -#: f.combine.cc:2126 f.combine.cc:2758 f.combine.cc:3414 f.combine.cc:3946 -msgid "Images are not all the same size" -msgstr "Les images ne sont pas toutes de taille identique" - -#: f.combine.cc:2470 -msgid "Adjust Image Contributions" -msgstr "Ajuster les Recouvrements de l'Image" - -#: f.combine.cc:2474 -msgid "dark pixels" -msgstr "pixels foncés" - -#: f.combine.cc:2476 -msgid "light pixels" -msgstr "pixels clairs" - -#: f.combine.cc:2478 -msgid "file:" -msgstr "fichier: " - -#: f.combine.cc:2994 -msgid "Paint and Warp Image" -msgstr "Peindre et Déformer l'Image" - -#: f.combine.cc:2998 f.combine.cc:3643 f.combine.cc:6252 f.effects.cc:4413 -#: f.widgets.cc:602 f.widgets.cc:626 f.widgets.cc:650 f.widgets.cc:664 -msgid "Image" -msgstr "Image" - -#: f.combine.cc:3002 -msgid "paint" -msgstr "peindre" - -#: f.combine.cc:3003 -msgid "warp" -msgstr "déformer" - -#: f.combine.cc:3641 -msgid "Select and Paint Image" -msgstr "Sélectionner et Peindre l'Image" - -#: f.combine.cc:4117 -msgid "Adjust Pixel Composition" -msgstr "Ajuster la Composition des Pixels" - -#: f.combine.cc:4119 -msgid "use average" -msgstr "utiliser moyenne" - -#: f.combine.cc:4120 -msgid "use median" -msgstr "utiliser médiane" - -#: f.combine.cc:4122 -msgid "omit low pixel" -msgstr "exclure les pixels bas" - -#: f.combine.cc:4123 -msgid "omit high pixel" -msgstr "exclure les pixels hauts" - -#: f.combine.cc:4386 f.combine.cc:5501 -msgid "Select 2 to 4 files" -msgstr "Sélectionner 2 à 4 fichiers" - -#: f.combine.cc:4461 -msgid "" -"Drag images into rough alignment.\n" -"To rotate, drag from lower edge." -msgstr "" -"Glisser les images dans un alignement approximatif.\n" -"Pour pivoter, faire glisser depuis le bord inférieur." - -#: f.combine.cc:4463 f.combine.cc:5578 -msgid "no curve (scanned image)" -msgstr "aucune courbe (image scannée)" - -#: f.combine.cc:4464 f.combine.cc:5579 -msgid "Search for lens mm" -msgstr "Rechercher focale" - -#: f.combine.cc:4465 f.combine.cc:5580 -msgid "Save lens mm → image EXIF" -msgstr "Enregistrer la focale mm → image EXIF" - -#: f.combine.cc:4527 f.combine.cc:5642 -msgid "Pre-align Images" -msgstr "Pré-aligner les Images" - -#: f.combine.cc:4531 f.combine.cc:5646 -msgid "lens mm" -msgstr "longueur focale (lens mm)" - -#: f.combine.cc:4536 f.combine.cc:5651 -msgid "no auto warp" -msgstr "pas d'auto-déformation" - -#: f.combine.cc:4538 f.combine.cc:5653 -msgid "manual align" -msgstr "" - -#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:473 f.widgets.cc:736 -msgid "Resize" -msgstr "Redimensionner" - -#: f.combine.cc:4541 f.combine.cc:5656 -msgid "resize window" -msgstr "redimensionner la fenêtre" - -#: f.combine.cc:4549 f.combine.cc:5664 -msgid "do not warp images during auto-alignment" -msgstr "ne pas déformer les images pendant l'auto-alignement" - -#: f.combine.cc:4597 f.combine.cc:5712 -msgid "use two images only" -msgstr "n'utiliser que deux images" - -#: f.combine.cc:4625 f.combine.cc:4829 f.combine.cc:5017 f.combine.cc:5738 -#: f.combine.cc:5942 f.combine.cc:6130 -msgid "Too little overlap, cannot align" -msgstr "Chevauchement insuffisant, alignement impossible." - -#: f.combine.cc:5095 f.combine.cc:6208 -msgid "Match Brightness and Color" -msgstr "Faire correspondre Luminosité et Couleur" - -#: f.combine.cc:5140 -msgid "Select image" -msgstr "Sélectionner l'image" - -#: f.combine.cc:5155 f.combine.cc:6267 -msgid "auto color" -msgstr "couleur automatique" - -#: f.combine.cc:5156 f.combine.cc:6268 -msgid "file color" -msgstr "couleur du fichier" - -#: f.combine.cc:5162 f.combine.cc:6274 -msgid "mouse warp" -msgstr "déformation à la souris" - -#: f.combine.cc:5165 -msgid "curved image" -msgstr "image courbée" - -#: f.combine.cc:5576 -msgid "" -"Drag images into rough alignment.\n" -"To rotate, drag from right edge." -msgstr "" -"Glisser les images dans un alignement approximatif. \n" -"Pour pivoter, faire glisser depuis le bord droit." - -#: f.combine.cc:6483 -msgid "pano tools (hugin) not installed" -msgstr "Outils pano (hugin) non installés" - -#: f.combine.cc:6492 -msgid "Select at least 2 files" -msgstr "Sélectionner au moins 2 fichiers" - -#: f.edit.cc:95 -msgid "Trim: drag middle to move, drag corners to resize" -msgstr "" -"Rogner: Glisser au centre pour déplacer, tirer les coins pour redimensionner" - -#: f.edit.cc:96 -msgid "Minor rotate: drag right edge with mouse" -msgstr "Légère rotation: Tirer le coin droit avec la souris" - -#: f.edit.cc:162 f.widgets.cc:465 f.widgets.cc:735 -msgid "Trim/Rotate" -msgstr "Rogner/Pivoter" - -#: f.edit.cc:174 f.edit.cc:576 -msgid "ratio" -msgstr "proportions" - -#: f.edit.cc:178 -msgid "trim size:" -msgstr "taille de rognage:" - -#: f.edit.cc:183 -msgid "Lock Ratio" -msgstr "Verrouiller les Proportions" - -#: f.edit.cc:185 -msgid "maximize trim box" -msgstr "" - -#: f.edit.cc:186 -msgid "use previous size" -msgstr "" - -#: f.edit.cc:187 -msgid "invert width/height" -msgstr "" - -#: f.edit.cc:188 -msgid "trim transparent edges" -msgstr "" - -#: f.edit.cc:189 -msgid "lock width/height ratio" -msgstr "" - -#: f.edit.cc:194 -msgid "Customize" -msgstr "Personnaliser" - -#: f.edit.cc:200 -msgid "level" -msgstr "" - -#: f.edit.cc:201 -msgid "use EXIF data if available" -msgstr "" - -#: f.edit.cc:204 -msgid "Rotate: degrees" -msgstr "Pivoter: degrés" - -#: f.edit.cc:572 -msgid "Trim Buttons" -msgstr "Boutons de Rognage" - -#: f.edit.cc:575 -msgid "label" -msgstr "étiquette" - -#: f.edit.cc:1335 -msgid "Upright Image" -msgstr "Redresser l'Image" - -#: f.edit.cc:1396 -msgid "rotation unknown" -msgstr "rotation inconnue" - -#: f.edit.cc:1957 f.widgets.cc:469 f.widgets.cc:740 -msgid "Retouch Combo" -msgstr "Combo de Retouche" - -#: f.edit.cc:1978 -msgid "Amplifier" -msgstr "Amplificateur" - -#: f.edit.cc:1979 fotoxx.h:1104 -msgid "Brightness" -msgstr "Luminosité" - -#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1112 -msgid "Contrast" -msgstr "Contraste" - -#: f.edit.cc:1981 -msgid "Low Color" -msgstr "Couleur Basse" - -#: f.edit.cc:1982 -msgid "Warmer" -msgstr "Plus chaud" - -#: f.edit.cc:1983 f.effects.cc:1511 -msgid "Dark Areas" -msgstr "Zones Foncées" - -#: f.edit.cc:1992 -msgid "Max." -msgstr "Max." - -#: f.edit.cc:1993 f.edit.cc:1994 f.edit.cc:1995 -msgid "High" -msgstr "Haute" - -#: f.edit.cc:1996 -msgid "Cooler" -msgstr "Plus froid" - -#: f.edit.cc:1997 -msgid "Bright" -msgstr "Clair" - -#: f.edit.cc:2000 f.tools.cc:1767 -msgid "Brightness Distribution" -msgstr "Répartition de la luminosité" - -#: f.edit.cc:2003 -msgid "Click for white balance or black level" -msgstr "Cliquer pour la balance des niveaux de blanc ou de noir" - -#: f.edit.cc:2004 -msgid "" -"check the box, then click on white or dark \n" -"area to calibrate image white or black color" -msgstr "" - -#: f.edit.cc:2012 -msgid "recall previous settings used" -msgstr "rappeler les paramètres utilisés précédemment" - -#: f.edit.cc:2682 -msgid "Adjust Brightness Distribution" -msgstr "Ajuster la Répartition de la Luminosité" - -#: f.edit.cc:2721 -msgid "Low Cutoff" -msgstr "Coupure Légère" - -#: f.edit.cc:2722 -msgid "High Cutoff" -msgstr "Coupure Élevée" - -#: f.edit.cc:2723 -msgid "Low Flatten" -msgstr "Aplatissement Léger" - -#: f.edit.cc:2724 -msgid "Mid Flatten" -msgstr "Aplatissement Moyen" - -#: f.edit.cc:2725 -msgid "High Flatten" -msgstr "Aplatissement Élevé" - -#: f.edit.cc:2726 -msgid "Low Stretch" -msgstr "Étirement Léger" - -#: f.edit.cc:2727 -msgid "Mid Stretch" -msgstr "Étirement Moyen" - -#: f.edit.cc:2728 -msgid "High Stretch" -msgstr "Étirement Élevé" - -#: f.edit.cc:3058 -msgid "Zonal Flatten Brightness" -msgstr "Aplatissement de Luminosité Zonal" - -#: f.edit.cc:3109 -msgid "Zones" -msgstr "" - -#: f.edit.cc:3116 -msgid "Deband Dark" -msgstr "Estomper Sombre" - -#: f.edit.cc:3119 -msgid "Deband Bright" -msgstr "Estomper Clair" - -#: f.edit.cc:3570 f.widgets.cc:472 f.widgets.cc:743 -msgid "Tone Mapping" -msgstr "Mappage de Tons" - -#: f.edit.cc:3601 -msgid "low" -msgstr "faible" - -#: f.edit.cc:3603 -msgid "high" -msgstr "haute" - -#: f.edit.cc:3606 -msgid "Amplify" -msgstr "Intensifier" - -#: f.edit.cc:4010 -msgid "Resize Image" -msgstr "Redimensionner l'Image" - -#: f.edit.cc:4035 -msgid "W/H Ratio:" -msgstr "" - -#: f.edit.cc:4037 -msgid "Lock" -msgstr "" - -#: f.edit.cc:4039 -msgid "use previous settings" -msgstr "" - -#: f.edit.cc:4236 f.widgets.cc:474 -msgid "Flip" -msgstr "Miroir" - -#: f.edit.cc:4240 f.effects.cc:5222 -msgid "horizontal" -msgstr "horizontale" - -#: f.edit.cc:4241 f.effects.cc:5226 -msgid "vertical" -msgstr "verticale" - -#: f.edit.cc:4334 -msgid "+Version" -msgstr "+Version" - -#: f.edit.cc:4357 -msgid "Write Text on Image" -msgstr "Écrire du Texte sur l'Image" - -#: f.edit.cc:4358 -msgid "Enter text, click/drag on image, right click to remove" -msgstr "" -"Saisir du texte, cliquer/glisser sur l'image, clic-droit pour retirer le " -"texte." - -#: f.edit.cc:4407 f.mashup.cc:2446 -msgid "Text" -msgstr "Texte" - -#: f.edit.cc:4412 -msgid "Use metadata key" -msgstr "Utiliser la clé des métadonnées" - -#: f.edit.cc:4417 -msgid "Use text file" -msgstr "Utiliser le fichier texte" - -#: f.edit.cc:4436 f.mashup.cc:2464 -msgid "text" -msgstr "texte" - -#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2807 -msgid "backing" -msgstr "appui" - -#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2808 -msgid "outline" -msgstr "contour" - -#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2809 -msgid "shadow" -msgstr "ombre" - -#: f.edit.cc:4465 -msgid "save to current file" -msgstr "enregistrer dans le fichier actuel" - -#: f.edit.cc:4466 f.file.cc:1835 -msgid "save as new file version" -msgstr "enregistrer comme nouvelle version du fichier" - -#: f.edit.cc:4467 -msgid "" -"save to current file \n" -"open next file with same text" -msgstr "" -"enregistrer dans le fichier actuel \n" -"ouvrir le fichier suivant avec le le même texte" - -#: f.edit.cc:4628 f.mashup.cc:2566 f.tools.cc:1167 -msgid "select font" -msgstr "sélectionner la police" - -#: f.edit.cc:4898 -msgid "text file is defective" -msgstr "fichier texte défectueux" - -#: f.edit.cc:5239 -msgid "" -"Enter line or arrow properties in dialog, \n" -"click/drag on image, right click to remove" -msgstr "" -"Saisir les propriétés de ligne ou de flèche dans la boite de dialogue, \n" -"cliquer/glisser sur l'image, clic droit pour effacer" - -#: f.edit.cc:5270 -msgid "Write Line or Arrow on Image" -msgstr "Dessiner une Ligne ou une Flèche sur l'Image" - -#: f.edit.cc:5278 f.mashup.cc:2786 -msgid "Line length" -msgstr "Longueur de la ligne" - -#: f.edit.cc:5285 f.mashup.cc:2793 -msgid "Arrow head" -msgstr "Pointe de la flèche" - -#: f.edit.cc:5298 f.mashup.cc:2806 -msgid "line" -msgstr "ligne" - -#: f.edit.cc:5327 -msgid "" -"fix line/arrow in layout \n" -" start new line/arrow" -msgstr "" -"fixer la ligne/flèche dans le montage \n" -" commencer une nouvelle ligne/flèche" - -#: f.edit.cc:5918 f.widgets.cc:477 -msgid "Paint Edits" -msgstr "Opérations de Peinture" - -#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.06.cc:3307 -msgid "" -"Select area cannot be kept.\n" -"Continue?" -msgstr "" -"Impossible de conserver la sélection de zone.\n" -"Voulez-vous continuer?" - -#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2293 -msgid "Edit function must be active" -msgstr "La fonction d'édition doit être active" - -#: f.edit.cc:5938 -msgid "Cannot use Paint Edits" -msgstr "Utilisation des Éditions de Peinture Impossible" - -#: f.edit.cc:5964 -msgid "power: center" -msgstr "puissance: centre" - -#: f.edit.cc:5969 -msgid "reset area" -msgstr "réinitialiser la zone" - -#: f.edit.cc:6144 f.widgets.cc:478 -msgid "Leverage Edits" -msgstr "Retouches à Effets zonevier" - -#: f.edit.cc:6145 -msgid "Edit Function Amplifier" -msgstr "Éditer l'Amplificateur de Fonction" - -#: f.edit.cc:6164 -msgid "Cannot use Leverage Edits" -msgstr "Impossible d'utiliser les ÉdItions de Force zonevier" - -#: f.edit.cc:6194 -msgid "minimum" -msgstr "minimum" - -#: f.edit.cc:6196 -msgid "maximum" -msgstr "maximum" - -#: f.edit.cc:6497 -msgid "Edit Plugins" -msgstr "Éditer les Greffons" - -#: f.edit.cc:6498 -msgid "Edit plugins menu" -msgstr "Éditer le menu des greffons" - -#: f.edit.cc:6506 -msgid "Run as Fotoxx edit function" -msgstr "Exécuter comme fonction d'édition de Fotoxx" - -#: f.edit.cc:6744 -msgid "Plugin working ..." -msgstr "Greffon en cours d'exécution..." - -#: f.edit.cc:6753 -msgid "plugin failed" -msgstr "Échec de l’exécution du greffon" - -#: f.effects.cc:65 -msgid "Set color depth to 1-16 bits" -msgstr "" -"Définir la profondeur de \n" -"couleur de 1 à 16 bit(s)." - -#: f.effects.cc:77 -msgid "Set Color Depth" -msgstr "Définir la profondeur de couleurs" - -#: f.effects.cc:221 -msgid "Convert to Sketch" -msgstr "Transformer en Esquisse" - -#: f.effects.cc:297 -msgid "Clip Level" -msgstr "Niveau d'Attache" - -#: f.effects.cc:301 -msgid "Algorithm" -msgstr "Algorithme" - -#: f.effects.cc:306 -msgid "Foreground" -msgstr "Premier-Plan" - -#: f.effects.cc:309 -msgid "Background" -msgstr "Arrière-Plan" - -#: f.effects.cc:1214 f.widgets.cc:519 -msgid "Line Drawing" -msgstr "Tracer des Lignes" - -#: f.effects.cc:1227 -msgid "black/white" -msgstr "noir/blanc" - -#: f.effects.cc:1505 f.widgets.cc:520 -msgid "Color Drawing" -msgstr "Dessiner une Couleur" - -#: f.effects.cc:1512 -msgid "Bright Areas" -msgstr "Zones claires" - -#: f.effects.cc:1766 f.widgets.cc:521 -msgid "Graduated Blur" -msgstr "Flou Progressif" - -#: f.effects.cc:1770 -msgid "Contrast Limit" -msgstr "Limite de Contraste" - -#: f.effects.cc:1773 f.repair.cc:934 -msgid "Blur Radius" -msgstr "Rayon du Flou" - -#: f.effects.cc:1988 -msgid "Simulate Embossing" -msgstr "Estampage" - -#: f.effects.cc:2005 -msgid "depth" -msgstr "profondeur" - -#: f.effects.cc:2207 -msgid "Simulate Tiles" -msgstr "Mosaïque" - -#: f.effects.cc:2211 -msgid "tile size" -msgstr "taille du carreau" - -#: f.effects.cc:2214 -msgid "tile gap" -msgstr "espace entre les carreaux" - -#: f.effects.cc:2217 -msgid "3D depth" -msgstr "profondeur 3D " - -#: f.effects.cc:2441 -msgid "Convert Image to Dots" -msgstr "Tramer l'image en Points" - -#: f.effects.cc:2445 -msgid "dot size" -msgstr "taille du point" - -#: f.effects.cc:2670 -msgid "Simulate Painting" -msgstr "Simuler une Peinture" - -#: f.effects.cc:2674 -msgid "color depth" -msgstr "profondeur de couleurs" - -#: f.effects.cc:2678 -msgid "patch area goal" -msgstr "corriger la zone cible" - -#: f.effects.cc:2682 -msgid "req. color match" -msgstr "couleur correspondante requise" - -#: f.effects.cc:2686 -msgid "borders" -msgstr "bordures" - -#: f.effects.cc:3259 f.widgets.cc:526 -msgid "Vignette" -msgstr "Instantané" - -#: f.effects.cc:3608 -msgid "Add Texture" -msgstr "Ajouter Texture" - -#: f.effects.cc:3825 -msgid "Background Pattern" -msgstr "Motif de fond" - -#: f.effects.cc:3829 -msgid "Pattern File:" -msgstr "Fichier de Motif:" - -#: f.effects.cc:3834 -msgid "Zoom" -msgstr "Zoom" - -#: f.effects.cc:3837 -msgid "Geometry" -msgstr "Géométrie" - -#: f.effects.cc:3838 -msgid "Calculate" -msgstr "Calculer" - -#: f.effects.cc:3848 f.widgets.cc:528 -msgid "Pattern" -msgstr "Motif" - -#: f.effects.cc:3855 -msgid "Overlap" -msgstr "Chevauchement" - -#: f.effects.cc:3862 -msgid "Opacity" -msgstr "Opacité" - -#: f.effects.cc:3930 -msgid "choose pattern tile" -msgstr "choisir le fichier de motif" - -#: f.effects.cc:4317 -msgid "Create Mosaic" -msgstr "Créer une Mosaïque" - -#: f.effects.cc:4403 -msgid "Tile" -msgstr "Motif" - -#: f.effects.cc:4411 f.widgets.cc:523 -msgid "Tiles" -msgstr "Mosaïque" - -#: f.effects.cc:4417 -msgid "Tile blending" -msgstr "Mélange de motifs" - -#: f.effects.cc:4497 -#, c-format -msgid "exceeded max. tiles: %d" -msgstr "excèzone maximum de motifs: %d" - -#: f.effects.cc:4512 -#, c-format -msgid "only %d tile images found" -msgstr "seulement %d images de motifs trouvés" - -#: f.effects.cc:4905 f.widgets.cc:530 -msgid "Custom Kernel" -msgstr "Noyau personnalisé" - -#: f.effects.cc:4909 -msgid "Kernel size" -msgstr "Taille du noyau" - -#: f.effects.cc:4912 -msgid "Divisor" -msgstr "Diviseur" - -#: f.effects.cc:4915 -msgid "Data file" -msgstr "Fichier de données" - -#: f.effects.cc:4951 fotoxx-16.06.cc:3571 -msgid "Load settings from file" -msgstr "Charger les paramètres à partir d'un fichier" - -#: f.effects.cc:5212 f.widgets.cc:531 -msgid "Make Waves" -msgstr "Onduler" - -#: f.effects.cc:5219 -msgid "wavelength" -msgstr "longueur de vague" - -#: f.effects.cc:5220 -msgid "amplitude" -msgstr "amplitude" - -#: f.effects.cc:5221 -msgid "variance" -msgstr "écart" - -#: f.effects.cc:5232 -msgid "perspective" -msgstr "perspective" - -#: f.effects.cc:5406 -msgid "Pull image using the mouse." -msgstr "Tirer l'image avec la souris" - -#: f.effects.cc:5427 f.widgets.cc:532 -msgid "Directed Blur" -msgstr "Flou Directionnel" - -#: f.effects.cc:5431 -msgid "blur span" -msgstr "période de flou" - -#: f.effects.cc:5434 -msgid "intensity" -msgstr "intensité" - -#: f.effects.cc:5638 f.widgets.cc:533 -msgid "Blur Background" -msgstr "" - -#: f.effects.cc:5642 -msgid "constant blur" -msgstr "" - -#: f.effects.cc:5645 -msgid "increase blur with distance" -msgstr "" - -#: f.effects.cc:5647 -msgid "min. blur radius" -msgstr "" - -#: f.effects.cc:5650 -msgid "max. blur radius" -msgstr "" - -#: f.file.cc:182 -msgid "" -"use EXIF photo date or \n" -" file modification date" -msgstr "" -"utiliser la date EXIF de la photo ou \n" -" la date de modification du fichier" - -#: f.file.cc:199 f.widgets.cc:608 -msgid "File" -msgstr "Fichier" - -#: f.file.cc:355 -msgid "UFraw not installed" -msgstr "UFraw non installé" - -#: f.file.cc:371 f.widgets.cc:745 -msgid "Open RAW file (ufraw)" -msgstr "Ouvrir un fichier RAW (ufraw)" - -#: f.file.cc:376 f.file.cc:447 -msgid "RAW type not registered in User Settings" -msgstr "Type RAW non répertorié dans les Paramètres Utilisateur" - -#: f.file.cc:442 f.widgets.cc:746 -msgid "Open RAW file (Raw Therapee)" -msgstr "Ouvrir un fichier RAW (Raw Therapee)" - -#: f.file.cc:534 f.widgets.cc:423 -msgid "Open Image File" -msgstr "Ouvrir un Fichier Image" - -#: f.file.cc:553 -msgid "unknown file type" -msgstr "type de fichier inconnu" - -#: f.file.cc:747 -msgid "Create Blank Image" -msgstr "Créer une Image Vierge" - -#: f.file.cc:749 -msgid "file name" -msgstr "nom du fichier" - -#: f.file.cc:782 -msgid "supply a file name" -msgstr "Fournir un nom de fichier" - -#: f.file.cc:932 f.widgets.cc:428 -msgid "Rename Image File" -msgstr "Renommer le Fichier Image" - -#: f.file.cc:939 -msgid "Old Name" -msgstr "Ancien Nom" - -#: f.file.cc:949 -msgid "previous name" -msgstr "nom précédent" - -#: f.file.cc:950 -msgid "add 1" -msgstr "Plus 1" - -#: f.file.cc:1129 -msgid "Copy or Move Image File" -msgstr "" - -#: f.file.cc:1171 -msgid "New Location:" -msgstr "" - -#: f.file.cc:1176 -msgid "copy (duplicate file)" -msgstr "" - -#: f.file.cc:1178 -msgid "move (remove original)" -msgstr "" - -#: f.file.cc:1257 -msgid "new location is not a directory" -msgstr "le nouvel emplacement n'est pas un répertoire" - -#: f.file.cc:1297 f.file.cc:1511 -#, c-format -msgid "" -"delete failed: \n" -" %s" -msgstr "" -"échec de la suppression: \n" -" %s" - -#: f.file.cc:1393 -msgid "Delete or Trash Image File" -msgstr "" - -#: f.file.cc:1460 -msgid "" -"GTK g_file_trash() function failed. \n" -"Desktop trash folder will be used." -msgstr "" - -#: f.file.cc:1463 -#, c-format -msgid "Cannot create desktop trash folder: %s" -msgstr "" - -#: f.file.cc:1483 -msgid "not a known image file" -msgstr "" - -#: f.file.cc:1489 -msgid "Delete read-only file?" -msgstr "Supprimer le fichier en lecture seule?" - -#: f.file.cc:1491 -msgid "Trash read-only file?" -msgstr "" - -#: f.file.cc:1564 -#, c-format -msgid "error: %s" -msgstr "erreur: %s" - -#: f.file.cc:1589 -msgid "no more images" -msgstr "plus d'images" - -#: f.file.cc:1817 -msgid "Save Image File" -msgstr "Enregistrer le Fichier Image" - -#: f.file.cc:1827 -msgid "new version" -msgstr "nouvelle version" - -#: f.file.cc:1828 -msgid "new file" -msgstr "nouveau fichier" - -#: f.file.cc:1829 -msgid "replace file" -msgstr "remplacer le fichier" - -#: f.file.cc:1836 f.file.cc:2255 -msgid "save as new file name or type" -msgstr "enregistrer sous un nouveau nom ou type de fichier" - -#: f.file.cc:1838 -msgid "replace old file (OVERWRITE)" -msgstr "remplacer l'ancien fichier (ÉCRASER)" - -#: f.file.cc:1877 f.file.cc:2020 -msgid "cannot save as RAW type" -msgstr "enregistrement en type RAW impossible" - -#: f.file.cc:1973 -msgid "too many file versions: 99" -msgstr "" - -#: f.file.cc:2014 -msgid "" -"Transparency map will be lost.\n" -"save to PNG file to retain." -msgstr "" -"La carte de transparence sera perdue.\n" -"enregisrer dans un fichier PNG pour la conserver." - -#: f.file.cc:2098 -msgid "save anyway" -msgstr "" - -#: f.file.cc:2164 -msgid "Unable to copy EXIF/IPTC data" -msgstr "Copie des données EXIF/IPTC impossible" - -#: f.file.cc:2273 f.file.cc:2276 -msgid "make current" -msgstr "faire l’actuelle" - -#: f.file.cc:2274 -msgid "(new file becomes current file)" -msgstr "" - -#: f.file.cc:2387 -#, c-format -msgid "" -"Overwrite file? \n" -" %s" -msgstr "" -"Écraser le fichier ? \n" -" %s" - -#: f.file.cc:2478 -msgid "Start of gallery, next: preceding gallery." -msgstr "" - -#: f.file.cc:2479 -msgid "End of gallery, next: following gallery." -msgstr "" - -#: f.file.cc:2480 -msgid "" -"The next preceding gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" - -#: f.file.cc:2482 -msgid "" -"The next following gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" - -#: f.file.cc:2556 f.widgets.cc:589 -msgid "Quick Start" -msgstr "Démarrage Rapide" - -#: f.file.cc:2559 f.widgets.cc:590 -msgid "User Guide" -msgstr "Manuel Utilisateur" - -#: f.file.cc:2562 f.widgets.cc:591 -msgid "User Guide Changes" -msgstr "Changements du Manuel Utilisateur" - -#: f.file.cc:2565 f.widgets.cc:593 -msgid "README" -msgstr "LISEZ-MOI" - -#: f.file.cc:2568 f.widgets.cc:592 -msgid "Edit Functions Summary" -msgstr "Éditer le Sommaire des Fonctions" - -#: f.file.cc:2571 f.widgets.cc:594 -msgid "Change Log" -msgstr "Journal des Changements" - -#: f.file.cc:2574 f.widgets.cc:595 -msgid "Log File" -msgstr "Fichier-Journal" - -#: f.file.cc:2577 f.widgets.cc:596 -msgid "Translations" -msgstr "Traductions" - -#: f.file.cc:2580 f.widgets.cc:597 -msgid "Home Page" -msgstr "Site web" - -#: f.file.cc:2583 f.widgets.cc:598 -msgid "About" -msgstr "À propos" - -#: f.file.cc:2587 f.widgets.cc:620 f.widgets.cc:644 fotoxx.h:1135 -msgid "Help" -msgstr "Aide" - -#: f.file.cc:2742 f.file.cc:2812 -#, c-format -msgid "file not found: %s" -msgstr "fichier introuvable: %s" - -#: f.file.cc:2748 f.file.cc:2818 -#, c-format -msgid "file type not supported: %s" -msgstr "type de fichier non pris en charge: %s" - -#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:642 -msgid "Scroll" -msgstr "Faire défiler" - -#: f.gallery.cc:940 f.widgets.cc:420 f.widgets.cc:632 -msgid "Sync Gallery" -msgstr "" - -#: f.gallery.cc:950 f.repair.cc:6658 f.repair.cc:6663 fotoxx.h:1157 -msgid "Open" -msgstr "Ouvrir" - -#: f.gallery.cc:951 -msgid "change directory" -msgstr "changer de répertoire" - -#: f.gallery.cc:959 -msgid "GoTo" -msgstr "Aller à" - -#: f.gallery.cc:965 f.widgets.cc:637 -msgid "Sort" -msgstr "Trier" - -#: f.gallery.cc:971 f.gallery.cc:1540 f.gallery.cc:1541 f.gallery.cc:1543 -#: f.widgets.cc:635 -msgid "Zoom+" -msgstr "Zoom+" - -#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:636 -msgid "Zoom-" -msgstr "Zoom-" - -#: f.gallery.cc:993 f.gallery.cc:1548 -msgid "Row↑" -msgstr "Rangée↑" - -#: f.gallery.cc:1001 f.gallery.cc:1549 -msgid "Row↓" -msgstr "Rangée↓" - -#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:640 -msgid "Page↑" -msgstr "Page↑" - -#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:641 -msgid "Page↓" -msgstr "Page↓" - -#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:638 -msgid "First" -msgstr "Première" - -#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:639 -msgid "Last" -msgstr "Dernière" - -#: f.gallery.cc:1145 -msgid "Choose image directory" -msgstr "Choisir le répertoire image" - -#: f.gallery.cc:1152 f.gallery.cc:1165 -msgid "recent images" -msgstr "" - -#: f.gallery.cc:1153 f.gallery.cc:1170 -msgid "newest images" -msgstr "" - -#: f.gallery.cc:1234 -msgid "no albums found" -msgstr "Aucun album" - -#: f.gallery.cc:1241 -msgid "Choose album" -msgstr "Choisir l'album" - -#: f.gallery.cc:1288 f.tools.cc:986 -msgid "Gallery Sort" -msgstr "Trier la Galerie" - -#: f.gallery.cc:1292 -msgid "File Name" -msgstr "Nom du Fichier" - -#: f.gallery.cc:1293 -msgid "File Mod Date/Time" -msgstr "Mode Date/Heure du Fichier" - -#: f.gallery.cc:1294 -msgid "Photo Date/Time (EXIF)" -msgstr "Date/Heure de la Photo (EXIF)" - -#: f.gallery.cc:1296 -msgid "ascending" -msgstr "croissant" - -#: f.gallery.cc:1297 -msgid "descending" -msgstr "décroissant" - -#: f.gallery.cc:2373 fotoxx.h:1182 -msgid "Select Files" -msgstr "Sélectionner les Fichiers" - -#: f.gallery.cc:2838 -msgid "Click list position. Click thumbnail to add." -msgstr "Cliquer sur l'endroit de la liste. Cliquer sur la vignette à ajouter." - -#: f.gallery.cc:2864 f.gallery.cc:3112 -msgid "Edit Bookmarks" -msgstr "Éditer les signets" - -#: f.gallery.cc:3039 -msgid "unable to save bookmarks file" -msgstr "impossible d'enregistrer le fichier des signets" - -#: f.gallery.cc:3112 -msgid "Go To Bookmark" -msgstr "Aller Au Signet" - -#: f.gallery.cc:3169 f.meta.cc:3528 f.repair.cc:8279 -msgid "file not found" -msgstr "fichier introuvable" - -#: f.mashup.cc:170 -msgid "Mashup layout and background image" -msgstr "Montage Pêle-Mêle et image d'arrière-plan" - -#: f.mashup.cc:213 -msgid "choose an image file" -msgstr "choisir un fichier image" - -#: f.mashup.cc:214 -msgid "use current image file" -msgstr "utiliser le fichier image actuel" - -#: f.mashup.cc:215 -msgid "specify layout size and color" -msgstr "spécifier la taille et la couleur du montage" - -#: f.mashup.cc:216 -msgid "open a Mashup project file" -msgstr "ouvrir un fichier de projet de Pêle-Mêle" - -#: f.mashup.cc:241 -msgid "choose layout file" -msgstr "choisir le fichier de montage" - -#: f.mashup.cc:259 -msgid "no current file" -msgstr "aucun fichier courant" - -#: f.mashup.cc:291 -msgid "Make Layout Image" -msgstr "Créer un Montage d'Images" - -#: f.mashup.cc:293 -msgid "project name" -msgstr "nom du projet" - -#: f.mashup.cc:319 -msgid "supply a project name" -msgstr "Fournir un nom de projet" - -#: f.mashup.cc:417 -msgid "Edit Images" -msgstr "Éditer les Images" - -#: f.mashup.cc:418 f.mashup.cc:2441 -msgid "Edit Text" -msgstr "Éditer le Texte" - -#: f.mashup.cc:419 -msgid "Edit Line" -msgstr "Éditer la Ligne" - -#: f.mashup.cc:420 -msgid "Rescale" -msgstr "Remettre à l'échelle" - -#: f.mashup.cc:423 -msgid "add or edit images" -msgstr "ajouter ou éditer des images" - -#: f.mashup.cc:424 -msgid "add or edit text" -msgstr "ajouter ou éditer le texte" - -#: f.mashup.cc:425 -msgid "add or edit lines/arrows" -msgstr "ajouter ou modifier les lignes/flèches" - -#: f.mashup.cc:426 -msgid "change project scale" -msgstr "Modifier l'échelle du projet" - -#: f.mashup.cc:427 -msgid "project complete" -msgstr "projet complet" - -#: f.mashup.cc:428 -msgid "cancel project" -msgstr "abandonner le projet" - -#: f.mashup.cc:446 -msgid "rescale project" -msgstr "Mettre le projet à l'échelle" - -#: f.mashup.cc:501 -msgid "save Mashup output file" -msgstr "enregistrer le fichier de sortie du Pêle-Mêle" - -#: f.mashup.cc:521 -msgid "save Mashup project file?" -msgstr "enregistrer le fichier projet de Pête-Mêle?" - -#: f.mashup.cc:533 -msgid "delete Mashup project file?" -msgstr "supprimer le fichier projet du Pêle-Mêle?" - -#: f.mashup.cc:592 -msgid "Open Project" -msgstr "Ouvrir un Projet" - -#: f.mashup.cc:621 -#, c-format -msgid "" -"layout image file missing: \n" -" %s" -msgstr "" -"fichier image de montage manquant: \n" -"%s" - -#: f.mashup.cc:678 -#, c-format -msgid "" -"overlay image file missing: \n" -" %s" -msgstr "" -"fichier image de superposition manquant: \n" -"%s" - -#: f.mashup.cc:983 -msgid "project file is defective" -msgstr "fichier projet défectueux" - -#: f.mashup.cc:1013 -msgid "Save Project" -msgstr "Enregistrer le Projet" - -#: f.mashup.cc:1154 -msgid "layout exceeds 2 gigabytes" -msgstr "le montage dépasse 2 gigaoctets" - -#: f.mashup.cc:1228 -msgid "Click image to select, drag image to move." -msgstr "Cliquer l'image pour sélectionner, glisser l'image pour déplacer" - -#: f.mashup.cc:1229 -msgid "Make black margins transparent" -msgstr "Rendre les marges noires transparentes" - -#: f.mashup.cc:1268 -msgid "Current image:" -msgstr "Image actuelle:" - -#: f.mashup.cc:1272 -msgid "Cycle through images:" -msgstr "Cycle à travers les images:" - -#: f.mashup.cc:1279 -msgid "Scale" -msgstr "Échelle" - -#: f.mashup.cc:1288 -msgid "Stacking Order" -msgstr "Ordre de Superposition" - -#: f.mashup.cc:1289 -msgid "raise" -msgstr "augmenter" - -#: f.mashup.cc:1290 -msgid "lower" -msgstr "baisser" - -#: f.mashup.cc:1293 -msgid "Base Transparency" -msgstr "Transparence de Base" - -#: f.mashup.cc:1297 -msgid "Var. Transparency" -msgstr "Var. Transparence" - -#: f.mashup.cc:1298 -msgid "Paint" -msgstr "Peindre" - -#: f.mashup.cc:1301 -msgid "Bend and fine-align" -msgstr "Cintrer et aligner " - -#: f.mashup.cc:1302 -msgid "Warp" -msgstr "Déformer" - -#: f.mashup.cc:1311 -msgid "Margins" -msgstr "Marges" - -#: f.mashup.cc:1312 -msgid "Hard" -msgstr "Dur" - -#: f.mashup.cc:1313 f.repair.cc:6252 -msgid "Blend" -msgstr "Mélanger" - -#: f.mashup.cc:1327 -msgid "add images to layout" -msgstr "ajouter les images au montage" - -#: f.mashup.cc:1566 -msgid "Paint Image Transparencies" -msgstr "Peindre les Transparences de l'Image" - -#: f.mashup.cc:1584 -msgid "Gradual" -msgstr "Progressif" - -#: f.mashup.cc:1589 fotoxx.h:1161 -msgid "Power" -msgstr "Puissance" - -#: f.mashup.cc:1823 -msgid "Pull on the image with the mouse." -msgstr "Tirer l'image avec la souris." - -#: f.mashup.cc:1839 -msgid "Warp Image" -msgstr "Déformer l'Image" - -#: f.mashup.cc:2272 -#, c-format -msgid "exceeded %d images" -msgstr "Excède %d images" - -#: f.mashup.cc:2414 -msgid "Enter text, [Add] to layout, edit properties." -msgstr "Saisir du texte [Ajouter] au montage, éditer les propriétés." - -#: f.mashup.cc:2494 -msgid "Text File:" -msgstr "Fichier Texte:" - -#: f.mashup.cc:2498 -msgid "add entered text to layout" -msgstr "ajouter le texte saisi au montage" - -#: f.mashup.cc:2627 -msgid "click position to add text" -msgstr "Cliquer l'emplacement ou ajouter le texte" - -#: f.mashup.cc:2633 -#, c-format -msgid "exceeded %d text entries" -msgstr "excède %d entrées de texte" - -#: f.mashup.cc:2756 -msgid "Set line properties, [Add] to layout, edit." -msgstr "Définir les propriétés de la ligne, [Ajouter] au montage, éditer" - -#: f.mashup.cc:2780 -msgid "Edit Line/Arrow" -msgstr "Éditer la Ligne/Flèche" - -#: f.mashup.cc:2835 -msgid "add line/arrow to layout" -msgstr "ajouter ligne/flèche au montage" - -#: f.mashup.cc:2928 -msgid "click position to add line" -msgstr "Cliquer l'emplacement pour ajouter une ligne" - -#: f.mashup.cc:2934 -#, c-format -msgid "exceeded %d line entries" -msgstr "excède %d entrées de ligne" - -#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:723 -msgid "View Metadata" -msgstr "Afficher les Métadonnées" - -#: f.meta.cc:548 -msgid "Geocoding service by MapQuest" -msgstr "" - -#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:724 -msgid "Edit Metadata" -msgstr "Éditer les Métadonnées" - -#: f.meta.cc:613 -msgid "save metadata to file" -msgstr "enregistrer les métadonnées dans un fichier" - -#: f.meta.cc:622 -msgid "Image Date" -msgstr "Date de l'Image" - -#: f.meta.cc:625 -msgid "Time" -msgstr "Heure" - -#: f.meta.cc:633 -msgid "Rating (stars):" -msgstr "Évaluation (étoiles)" - -#: f.meta.cc:645 -msgid "Caption" -msgstr "Légende" - -#: f.meta.cc:651 -msgid "Comments" -msgstr "Commentaires" - -#: f.meta.cc:659 f.meta.cc:3618 -msgid "city" -msgstr "ville" - -#: f.meta.cc:662 f.meta.cc:3621 -msgid "country" -msgstr "pays" - -#: f.meta.cc:684 -msgid "Image Tags" -msgstr "Balises de l'Image" - -#: f.meta.cc:690 -msgid "Recent Tags" -msgstr "Balises Récentes" - -#: f.meta.cc:696 -msgid "Enter New Tag" -msgstr "Saisir une Nouvelle Balise" - -#: f.meta.cc:703 f.meta.cc:5459 -msgid "Matching Tags" -msgstr "Balises Correspondantes" - -#: f.meta.cc:712 f.meta.cc:1708 f.meta.cc:5466 -msgid "Defined Tags Category" -msgstr "Catégorie des Balises Définies" - -#: f.meta.cc:719 -msgid "search known locations" -msgstr "" - -#: f.meta.cc:720 -msgid "search using web service" -msgstr "" - -#: f.meta.cc:721 -msgid "create tag categories and tags" -msgstr "" - -#: f.meta.cc:936 f.meta.cc:3778 -msgid "city not found" -msgstr "Ville introuvable" - -#: f.meta.cc:1214 f.meta.cc:3836 f.meta.cc:4352 -#, c-format -msgid "bad latitude/longitude: %s %s" -msgstr "latitude/longitude incorrectes: %s %s" - -#: f.meta.cc:1248 fotoxx.h:1145 -msgid "Manage Tags" -msgstr "Gestion des Balises" - -#: f.meta.cc:1248 -msgid "orphan tags" -msgstr "balises orphelines" - -#: f.meta.cc:1252 -msgid "category" -msgstr "catégorie" - -#: f.meta.cc:1255 -msgid "tag" -msgstr "balise" - -#: f.meta.cc:1262 -msgid "Defined Tags:" -msgstr "Balises Définies:" - -#: f.meta.cc:1404 f.widgets.cc:441 f.widgets.cc:725 -msgid "Edit Any Metadata" -msgstr "Éditer n'importe Quelles Métadonnées" - -#: f.meta.cc:1404 f.meta.cc:2148 -msgid "Full List" -msgstr "" - -#: f.meta.cc:1409 f.meta.cc:2153 -msgid "click to select" -msgstr "" - -#: f.meta.cc:1418 f.meta.cc:2164 -msgid "key name" -msgstr "nom de la touche" - -#: f.meta.cc:1420 f.meta.cc:2165 -msgid "key value" -msgstr "valeur de la touche" - -#: f.meta.cc:1506 f.meta.cc:2308 -msgid "" -"The command: $ man Image::ExifTool::TagNames \n" -"will show over 15000 \"standard\" tag names" -msgstr "" - -#: f.meta.cc:1579 f.widgets.cc:442 -msgid "Delete Metadata" -msgstr "Supprimer les Métadonnées" - -#: f.meta.cc:1581 fotoxx.h:1095 -msgid "All" -msgstr "Toutes" - -#: f.meta.cc:1582 -msgid "One Key:" -msgstr "Un Mot-Clé: " - -#: f.meta.cc:1685 f.widgets.cc:443 f.widgets.cc:574 -msgid "Batch Add/Remove Tags" -msgstr "Ajouter/Retirer des Balises par Lots" - -#: f.meta.cc:1696 -msgid "tags to add" -msgstr "balises à ajouter" - -#: f.meta.cc:1697 -msgid "tags to remove" -msgstr "balises à retirer" - -#: f.meta.cc:1782 -#, c-format -msgid "" -"%s \n" -" too many tags" -msgstr "" -"%s \n" -" trop de balises" - -#: f.meta.cc:1897 -msgid "specify files and tags" -msgstr "spécifier fichiers et balises" - -#: f.meta.cc:1957 -msgid "tag names file" -msgstr "fichier des noms de balises" - -#: f.meta.cc:2031 -#, c-format -msgid "" -"%d tags to rename \n" -"in %d image files. \n" -"Proceed?" -msgstr "" -"%d balises à renommer \n" -"dans %d fichiers images. \n" -"Procéder?" - -#: f.meta.cc:2148 -msgid "Batch Change Metadata" -msgstr "" - -#: f.meta.cc:2222 -msgid "enter key names" -msgstr "saisir le noms des clés" - -#: f.meta.cc:2228 f.meta.cc:2422 fotoxx.h:1154 -msgid "no files selected" -msgstr "aucun fichier sélectionné" - -#: f.meta.cc:2407 f.widgets.cc:446 f.widgets.cc:577 -msgid "Batch Report Metadata" -msgstr "" - -#: f.meta.cc:2580 -msgid "date format is YYYY-MM-DD" -msgstr "le format de date est AAAA-MM-JJ" - -#: f.meta.cc:2584 -msgid "date is invalid" -msgstr "Date incorrecte" - -#: f.meta.cc:2618 -msgid "time format is HH:MM [:SS]" -msgstr "Le format de l'heure est HH:MM [:SS]" - -#: f.meta.cc:2622 -msgid "time is invalid" -msgstr "heure incorrecte" - -#: f.meta.cc:3587 f.widgets.cc:447 f.widgets.cc:578 -msgid "Batch Add Geotags" -msgstr "Ajouter des Balises de Géolocalisation par Lots" - -#: f.meta.cc:3824 -msgid "" -"data is incomplete \n" -" proceed?" -msgstr "" -"données incomplètes \n" -" poursuivre?" - -#: f.meta.cc:3874 -msgid "choose city" -msgstr "choisir une ville" - -#: f.meta.cc:3961 -msgid "not found" -msgstr "introuvable" - -#: f.meta.cc:3962 -msgid "city and country required" -msgstr "ville et pays requis" - -#: f.meta.cc:4465 f.meta.cc:5003 f.meta.cc:5347 f.meta.cc:6504 -msgid "-noindex in use, disabled" -msgstr "pas d'index utilisé, désactivé" - -#: f.meta.cc:4483 -msgid "choose map file" -msgstr "Choisir le fichier de la carte" - -#: f.meta.cc:4624 -msgid "" -"fotoxx-maps package not installed \n" -"(see http://kornelix.net/packages and /tarballs)" -msgstr "" -"paquet fotoxx-maps non installé \n" -"(voir http://kornelix.net/packages et /tarballs)" - -#: f.meta.cc:4629 -#, c-format -msgid "map file %s is missing" -msgstr "Fichier de carte %s manquant" - -#: f.meta.cc:4633 -#, c-format -msgid "" -"map latitude/longitude data unreasonable \n" -" %.3f %.3f %.3f %.3f" -msgstr "" -"Données de longitude/latitude de la carte incohérentes \n" -" %.3f %.3f %.3f %.3f" - -# ?? -#: f.meta.cc:4662 -msgid "search range (km)" -msgstr "fourchette de recherche (km)" - -#: f.meta.cc:4940 f.meta.cc:5282 -msgid "No matching images found" -msgstr "Aucun résultat pour cette recherche" - -#: f.meta.cc:5118 -msgid "image file has no latitude/longitude" -msgstr "" - -#: f.meta.cc:5384 -msgid "Search Image Metadata" -msgstr "Rechercher les Métadonnées de l'Image" - -#: f.meta.cc:5388 -msgid "images to search:" -msgstr "images à rechercher:" - -#: f.meta.cc:5389 -msgid "all" -msgstr "toutes" - -#: f.meta.cc:5390 -msgid "current set only" -msgstr "ensemble actuel uniquement" - -#: f.meta.cc:5393 -msgid "matching images:" -msgstr "images correspondantes:" - -#: f.meta.cc:5394 -msgid "new set" -msgstr "nouvel ensemble" - -#: f.meta.cc:5395 -msgid "add to set" -msgstr "ajouter à l'ensemble" - -#: f.meta.cc:5396 -msgid "remove" -msgstr "retirer" - -#: f.meta.cc:5399 -msgid "report type:" -msgstr "type de rapport:" - -#: f.meta.cc:5400 -msgid "gallery" -msgstr "galerie" - -#: f.meta.cc:5407 -msgid "date range" -msgstr "fourchette de dates" - -#: f.meta.cc:5408 -msgid "stars range" -msgstr "plage d'étoiles" - -#: f.meta.cc:5409 -msgid "search tags" -msgstr "rechercher les balises" - -#: f.meta.cc:5410 -msgid "search text" -msgstr "Rechercher le texte" - -#: f.meta.cc:5411 -msgid "search files" -msgstr "Rechercher les fichiers" - -#: f.meta.cc:5416 -msgid "(yyyymmdd)" -msgstr "(aaaammjj)" - -#: f.meta.cc:5421 -msgid "last version only" -msgstr "Dernière version uniquement" - -#: f.meta.cc:5423 -msgid "all/any" -msgstr "toutes/quelconques" - -#: f.meta.cc:5442 -msgid "search locations" -msgstr "" - -#: f.meta.cc:5448 -msgid "search other metadata" -msgstr "" - -#: f.meta.cc:5455 -msgid "Enter Search Tag" -msgstr "Saisir la Balise de Recherche" - -#: f.meta.cc:5737 -#, c-format -msgid "not a defined tag: %s" -msgstr "balise non définie: %s" - -#: f.meta.cc:5768 -msgid "" -"to remove images from current set, \n" -"search current set" -msgstr "" -"pour retirer des images de l'ensemble actuel, \n" -"rechercher l'ensemble actuel" - -#: f.meta.cc:5775 -msgid "" -"to add images to current set, \n" -"search all images" -msgstr "" -"pour ajouter des images à l'ensemble actuel, \n" -"rechercher toutes les images" - -#: f.meta.cc:5820 -#, c-format -msgid "" -"search dates not reasonable \n" -" %s %s" -msgstr "" -"Rechercher les dates incohérentes \n" -" %s %s" - -#: f.meta.cc:5838 -msgid "stars range not reasonable" -msgstr "fourchette d'étoiles incohérente" - -#: f.meta.cc:6082 -#, c-format -msgid "images added: %d removed: %d new count: %d" -msgstr "images ajoutées: %d retirées: %d nouveau nombre: %d" - -#: f.meta.cc:6085 -msgid "no changes made" -msgstr "aucune modification apportée" - -#: f.meta.cc:6237 -msgid "" -"These items are always reported: \n" -"date, stars, tags, caption, comment" -msgstr "" -"Ces éléments sont toujours rapportés: \n" -"date, étoiles, balises, légende, commentaire" - -#: f.meta.cc:6261 -msgid "Additional Items for Report" -msgstr "Éléments Supplémentaires du Rapport" - -#: f.meta.cc:6267 -msgid "Keyword" -msgstr "Mot-clé" - -#: f.meta.cc:6274 -msgid "Match Criteria" -msgstr "Critère de Correspondance" - -#: f.meta.cc:6519 -msgid "Report Geotag Groups" -msgstr "Faire le Rapport des Groupes de Balises de Géolocalisation" - -#: f.meta.cc:6520 -msgid "Group by country" -msgstr "Grouper par pays" - -#: f.meta.cc:6521 -msgid "Group by country/city" -msgstr "Grouper par pays/ville" - -#: f.meta.cc:6522 -msgid "Group by country/city/date" -msgstr "Grouper par pays/ville/date" - -#: f.meta.cc:6525 -msgid "Combine within" -msgstr "Combiner avec" - -#: f.meta.cc:6527 -msgid "days" -msgstr "Jours" - -#: f.meta.cc:6643 -msgid "geotag groups" -msgstr "groupes de balises de géolocalisation" - -#: f.meta.cc:7241 -msgid "image index is missing" -msgstr "index d'images manquant" - -#: f.repair.cc:168 -msgid "dark" -msgstr "" - -#: f.repair.cc:169 -msgid "light" -msgstr "" - -#: f.repair.cc:1200 -msgid "Apply repeatedly while watching the image." -msgstr "Appliquer à plusieurs reprises en observant l'image." - -#: f.repair.cc:1201 -msgid "Measure" -msgstr "Mesurer" - -#: f.repair.cc:1237 -msgid "Noise Reduction" -msgstr "Réduction de Bruit" - -#: f.repair.cc:1258 -msgid "Flatten 1" -msgstr "" - -#: f.repair.cc:1259 -msgid "Flatten 2" -msgstr "" - -#: f.repair.cc:1260 -msgid "Median" -msgstr "" - -#: f.repair.cc:1280 -msgid "dark areas" -msgstr "zones sombres" - -#: f.repair.cc:1282 -msgid "all areas" -msgstr "Toutes les zones" - -#: f.repair.cc:2174 -msgid "Measure Noise" -msgstr "Mesurer le Bruit" - -#: f.repair.cc:2175 -msgid "Click on a monotone image area." -msgstr "Cliquer sur une zone monotone de l'image." - -#: f.repair.cc:2338 -msgid "" -"1. Drag mouse to select. \n" -"2. Erase. 3. Repeat. " -msgstr "" -"1. Glisser la souris pour sélectionner. \n" -"2. Effacer. 3. Répéter." - -#: f.repair.cc:2360 f.widgets.cc:485 -msgid "Smart Erase" -msgstr "Effaçage Intelligent" - -#: f.repair.cc:2365 fotoxx.h:1165 -msgid "Radius" -msgstr "Rayon" - -#: f.repair.cc:2367 f.widgets.cc:483 -msgid "Blur" -msgstr "Flou" - -#: f.repair.cc:2370 -msgid "New Area" -msgstr "Nouvelle Zone" - -#: f.repair.cc:2719 -msgid "" -"Method 1:\n" -" Left-click on red-eye to darken.\n" -"Method 2:\n" -" Drag down and right to enclose red-eye.\n" -" Left-click on red-eye to darken.\n" -"Undo red-eye:\n" -" Right-click on red-eye." -msgstr "" -"Méthode n°1 : \n" -" - Clic-gauche sur l'œil rouge à assombrir. \n" -"Méthode n°2 : \n" -" - Circonscrire l’œil rouge en tirant le pointeur vers le bas puis à " -"droite. \n" -" - Clic-droit sur l'œil rouge pour annuler." - -#: f.repair.cc:2735 -msgid "Red Eye Reduction" -msgstr "Réduction des Yeux Rouges" - -#: f.repair.cc:3200 -msgid "" -"shift + left click: pick color or image position \n" -"left click or drag: paint color or copy image \n" -"right click or drag: remove color or image" -msgstr "" -"Touche Maj + clic gauche: choisir une couleur ou un endroit de l’image \n" -"Cliquer gauche ou glisser: peindre une couleur ou copier l'image \n" -"Cliquer droit ou glisser: retirer la couleur ou l'image" - -#: f.repair.cc:3233 f.widgets.cc:487 -msgid "Paint/Clone" -msgstr "Peinture/Duplication" - -#: f.repair.cc:3237 -msgid "paint color" -msgstr "couleur de peinture" - -#: f.repair.cc:3240 -msgid "copy from image" -msgstr "copier à partir de l'image" - -#: f.repair.cc:3247 f.repair.cc:3837 -msgid "paintbrush radius" -msgstr "rayon de la brosse" - -#: f.repair.cc:3248 -msgid "transparency center" -msgstr "centre de transparence" - -#: f.repair.cc:3249 -msgid "transparency edge" -msgstr "bord de transparence" - -#: f.repair.cc:3256 f.repair.cc:3844 -msgid "gradual paint" -msgstr "peinture progressive" - -#: f.repair.cc:3257 -msgid "paint over transparent areas" -msgstr "" - -#: f.repair.cc:3797 -msgid "" -"left drag: add transparency \n" -"right drag: add opacity" -msgstr "" -"glissement gauche: ajouter de la transparence \n" -"glissement droit: ajouter de l'opacité" - -#: f.repair.cc:3829 f.widgets.cc:488 -msgid "Paint Transparency" -msgstr "Peindre la Transparence" - -#: f.repair.cc:3838 -msgid "strength center" -msgstr "centre de force" - -#: f.repair.cc:3839 -msgid "strength edge" -msgstr "bord de force" - -#: f.repair.cc:4094 f.widgets.cc:489 -msgid "Add Transparency" -msgstr "" - -#: f.repair.cc:4098 -msgid "Match Brightness" -msgstr "" - -#: f.repair.cc:4103 -msgid "Match Color" -msgstr "" - -#: f.repair.cc:4105 -msgid "click on image to select color" -msgstr "" - -#: f.repair.cc:4108 f.repair.cc:5318 -msgid "Match using:" -msgstr "" - -#: f.repair.cc:4114 f.repair.cc:5324 -msgid "Match Level:" -msgstr "" - -#: f.repair.cc:4121 -msgid "Invert Match" -msgstr "" - -#: f.repair.cc:4124 fotoxx.h:1190 -msgid "Transparency" -msgstr "Transparence" - -#: f.repair.cc:4386 f.widgets.cc:490 -msgid "Color Mode" -msgstr "Mode de Couleur" - -#: f.repair.cc:4390 -msgid "black/white positive" -msgstr "noir/blanc positif" - -#: f.repair.cc:4391 -msgid "black/white negative" -msgstr "noir/blanc négatif" - -#: f.repair.cc:4392 -msgid "color positive" -msgstr "couleur positive" - -#: f.repair.cc:4393 -msgid "color negative" -msgstr "couleur négative" - -#: f.repair.cc:4394 -msgid "sepia" -msgstr "sépia" - -#: f.repair.cc:4574 f.widgets.cc:491 -msgid "Shift Colors" -msgstr "Changement de Couleurs " - -#: f.repair.cc:4810 f.widgets.cc:492 -msgid "Color Saturation" -msgstr "" - -#: f.repair.cc:4998 -msgid "+Brightness" -msgstr "+Luminosité" - -#: f.repair.cc:4999 -msgid "+Red -Cyan" -msgstr "+Rouge -Cyan" - -#: f.repair.cc:5000 -msgid "+Green -Magenta" -msgstr "+Vert -Magenta" - -#: f.repair.cc:5001 -msgid "+Blue -Yellow" -msgstr "+Bleu -Jaune" - -#: f.repair.cc:5007 fotoxx.h:1167 -msgid "Red" -msgstr "Rouge" - -#: f.repair.cc:5008 fotoxx.h:1132 -msgid "Green" -msgstr "Vert" - -#: f.repair.cc:5009 fotoxx.h:1102 -msgid "Blue" -msgstr "Bleu" - -#: f.repair.cc:5313 -msgid "Input color to match and adjust:" -msgstr "" - -#: f.repair.cc:5315 -msgid "shift+click on image to select color" -msgstr "" - -#: f.repair.cc:5319 -msgid "Hue" -msgstr "" - -#: f.repair.cc:5320 f.repair.cc:5352 -msgid "Saturation" -msgstr "Saturation" - -#: f.repair.cc:5321 f.repair.cc:5353 -msgid "Lightness" -msgstr "Clarté" - -#: f.repair.cc:5331 -msgid "Output Color" -msgstr "" - -#: f.repair.cc:5351 -msgid "Color Hue" -msgstr "Nuance de couleur" - -#: f.repair.cc:5354 -msgid "Adjustment" -msgstr "Ajustements" - -#: f.repair.cc:5839 -msgid "Ramp brightness across image" -msgstr "Corriger la luminosité à travers l'image" - -#: f.repair.cc:6163 f.tools.cc:2184 -msgid "Click image to select pixels." -msgstr "Cliquer l'image pour sélectionner les pixels." - -#: f.repair.cc:6194 -msgid "Color Ramp" -msgstr "Rampe de Couleurs" - -#: f.repair.cc:6205 -msgid "Metric:" -msgstr "Métrique:" - -#: f.repair.cc:6630 -msgid "Color Match Images" -msgstr "Images de Couleurs Correspondantes" - -#: f.repair.cc:6656 -msgid "mouse radius for color sample" -msgstr "rayon du pointeur d'échantillonnage de couleur" - -#: f.repair.cc:6659 -msgid "image for source color" -msgstr "image pour la source de couleur" - -#: f.repair.cc:6661 -msgid "click on image to get source color" -msgstr "cliquer sur l'image pour obtenir la source de couleur" - -#: f.repair.cc:6664 -msgid "image to set matching color" -msgstr "image pour mettre la couleur correspondante" - -#: f.repair.cc:6666 -msgid "click on image to set matching color" -msgstr "cliquer sur l'image pour mettre la couleur correspondante" - -#: f.repair.cc:6727 -msgid "select source image color first" -msgstr "sélectionner d'abord la couleur de l'image source" - -#: f.repair.cc:6912 -msgid "Change Color Profile" -msgstr "Changer de Profil de Couleur" - -#: f.repair.cc:6916 -msgid "input profile" -msgstr "fichier d'entrée" - -#: f.repair.cc:6920 -msgid "output profile" -msgstr "fichier de sortie" - -#: f.repair.cc:6936 -msgid "color profile" -msgstr "profil de Couleur" - -#: f.repair.cc:6982 f.repair.cc:6988 -#, c-format -msgid "unknown cms profile %s" -msgstr "profile cms inconnu %s" - -#: f.repair.cc:7120 f.widgets.cc:499 -msgid "Remove Dust" -msgstr "Anti-Poussières" - -#: f.repair.cc:7124 -msgid "spot size limit" -msgstr "taille limite des grains de poussière" - -#: f.repair.cc:7127 -msgid "max. brightness" -msgstr "luminosité max." - -#: f.repair.cc:7130 -msgid "min. contrast" -msgstr "contraste min." - -#: f.repair.cc:7904 -msgid "" -" Adjust each RGB color to minimize \n" -" color fringes at the image extremes. " -msgstr "" -" Ajuster chaque couleur RGB pour diminuer \n" -" les franges de couleurs aux bords de l'image." - -#: f.repair.cc:7927 f.widgets.cc:501 -msgid "Color Fringes" -msgstr "Bords Colorés" - -#: f.repair.cc:8126 f.widgets.cc:502 -msgid "Stuck Pixels" -msgstr "Pixels Bloqués" - -#: f.repair.cc:8132 -msgid "pixel group" -msgstr "groupe de pixels" - -#: f.repair.cc:8140 f.repair.cc:8208 -msgid "stuck pixels:" -msgstr "pixels bloqués:" - -#: f.repair.cc:8236 -msgid "Load Stuck Pixels" -msgstr "Charger les Pixels Bloqués" - -#: f.repair.cc:8238 -msgid "File:" -msgstr "Fichier:" - -#: f.repair.cc:8263 f.repair.cc:8320 -msgid "Stuck Pixels file" -msgstr "fichier des Pixels Bloqués" - -#: f.repair.cc:8300 f.tools.cc:3656 -msgid "file format error" -msgstr "erreur de format de fichier" - -#: f.tools.cc:70 -msgid "" -"Select directories containing image files \n" -"(subdirectories are included automatically)." -msgstr "" -"Sélectionner les répertoires contenant les fichiers images \n" -"(les sous-répertoires sont inclus automatiquement)." - -#: f.tools.cc:72 -msgid "Select to add, click on X to delete." -msgstr "Sélectionner pour ajouter, click sur X pour supprimer." - -#: f.tools.cc:73 -msgid "Select directory for thumbnails." -msgstr "Sélectionner un répertoire pour les vignettes." - -#: f.tools.cc:74 -msgid "" -"Index function terminated. Fotoxx will close. \n" -"Indexing is required for search and map functions \n" -"and to make the gallery pages acceptably fast." -msgstr "" -"Fonction d'index terminée. Fotoxx va se fermer. \n" -"L'indexation est requise pour les fonctions de recherche et de carte \n" -"ainsi que pour accéder aux pages de la galerie plus rapidement." - -#: f.tools.cc:106 f.widgets.cc:546 -msgid "Index Image Files" -msgstr "Index des Fichiers Images" - -#: f.tools.cc:255 -msgid "Choose top image directories" -msgstr "Sélectionner le répertoire d'images racine" - -#: f.tools.cc:256 -msgid "Choose thumbnail directory" -msgstr "Choisir le répertoire des vignettes" - -#: f.tools.cc:329 -msgid "" -"No image file index was found.\n" -"An image file index will be created.\n" -"Your image files will not be changed.\n" -"This may need considerable time if you \n" -"have many thousands of image files." -msgstr "" -"Fichier index des images introuvable.\n" -"Un fichier index des images va être créé.\n" -"Vos fichiers images ne seront pas modifiés.\n" -"Cette opération peut demander un certain temps si\n" -"vous avez plusieurs milliers de fichiers images." - -#: f.tools.cc:335 -#, c-format -msgid "" -"Invalid directory: \n" -" %s \n" -"Please remove." -msgstr "" -"Répertoire non valide: \n" -" %s \n" -"Veuillez le retirer." - -#: f.tools.cc:338 -#, c-format -msgid "" -"Thumbnails directory: \n" -" %s \n" -"must be named .../thumbnails" -msgstr "" -"Répertoire des vignettes \n" -" %s \n" -"Doit être nommé .../thumbnails" - -#: f.tools.cc:341 -#, c-format -msgid "" -"Duplicate directory: \n" -" %s \n" -"Please remove." -msgstr "" -"Répertoire doublon: \n" -" %s \n" -"Veuillez le retirer." - -#: f.tools.cc:391 -msgid "no thumbnails directory defined" -msgstr "répertoire des vignettes non défini" - -#: f.tools.cc:523 -msgid "Top directories have no images" -msgstr "" - -#: f.tools.cc:846 -msgid "Indexing is required for first-time startup." -msgstr "Indexation requise au premier lancement." - -#: f.tools.cc:912 -msgid "Recent Files Gallery" -msgstr "Galerie des Fichiers Récents" - -#: f.tools.cc:913 -msgid "Newest Files Gallery" -msgstr "Galerie des Derniers Fichiers" - -#: f.tools.cc:914 -msgid "Previous Gallery" -msgstr "Galerie Précédente" - -#: f.tools.cc:915 -msgid "Previous Image" -msgstr "Image Précédente" - -#: f.tools.cc:916 -msgid "Blank Window" -msgstr "Fenêtre Vierge" - -#: f.tools.cc:917 -msgid "Directory" -msgstr "Répertoire" - -#: f.tools.cc:918 -msgid "Image File" -msgstr "Fichier Image" - -#: f.tools.cc:964 f.widgets.cc:547 -msgid "User Options" -msgstr "Options Utilisateur" - -#: f.tools.cc:967 -msgid "Startup Display" -msgstr "Afficher au démarrage" - -#: f.tools.cc:978 -msgid "Menu Style" -msgstr "Style de Menu" - -#: f.tools.cc:979 -msgid "Icons" -msgstr "Icônes" - -#: f.tools.cc:980 -msgid "Icons + Text" -msgstr "Icônes + Texte" - -#: f.tools.cc:982 -msgid "Icon size" -msgstr "Taille d’icône" - -#: f.tools.cc:987 -msgid "alphabetic" -msgstr "" - -#: f.tools.cc:988 -msgid "file mod date" -msgstr "" - -#: f.tools.cc:989 -msgid "photo date" -msgstr "" - -#: f.tools.cc:992 -msgid "Dialog font and size" -msgstr "Police et taille de boite de dialogue" - -#: f.tools.cc:997 -msgid "Image Pan/scroll:" -msgstr "Défilement/Panorama Image" - -#: f.tools.cc:1000 -msgid "Zooms for 2x" -msgstr "Zooms de 2x" - -#: f.tools.cc:1009 -msgid "JPEG save quality" -msgstr "Qualité d'enregistrement JPEG" - -#: f.tools.cc:1016 -msgid "Curve node capture distance" -msgstr "" - -#: f.tools.cc:1020 -msgid "Map marker size" -msgstr "" - -#: f.tools.cc:1024 -msgid "show hidden directories in gallery view" -msgstr "affichier les répertoires cachés dans la galerie" - -#: f.tools.cc:1027 -msgid "prev/next shows last file version only" -msgstr "préc/suiv n'affiche que la dernière version de fichier" - -#: f.tools.cc:1030 -msgid "shift image to right margin" -msgstr "" - -#: f.tools.cc:1033 -msgid "RAW command" -msgstr "commande RAW" - -#: f.tools.cc:1037 -msgid "RAW file types" -msgstr "type de fichier RAW" - -#: f.tools.cc:1128 -msgid "Delete present thumbnails to make effective" -msgstr "Supprimer les vignettes pour rendre effectif" - -#: f.tools.cc:1150 -msgid "Select startup directory" -msgstr "Sélectionner le répertoire de démarrage" - -#: f.tools.cc:1157 -msgid "Select startup image file" -msgstr "Sélectionner le fichier image de démarrage" - -#: f.tools.cc:1194 -msgid "startup directory is invalid" -msgstr "répertoire de démarrage incorrect" - -#: f.tools.cc:1205 -msgid "startup file is invalid" -msgstr "fichier de démarrage incorrect" - -#: f.tools.cc:1332 f.widgets.cc:548 -msgid "Keyboard Shortcuts" -msgstr "Raccourcis Clavier" - -#: f.tools.cc:1404 -msgid "Edit KB Shortcuts" -msgstr "Éditer les Raccourcis Clavier" - -#: f.tools.cc:1409 -msgid "shortcut key:" -msgstr "touche de raccourci:" - -#: f.tools.cc:1410 -msgid "(enter key)" -msgstr "(touche entrée)" - -#: f.tools.cc:1536 -#, c-format -msgid "\"%s\" Reserved, cannot be used" -msgstr "\"%s\" Réservé, inutilisable" - -#: f.tools.cc:1669 -msgid "unable to save KB-shortcuts file" -msgstr "impossible d'enregistrer le fichier des Raccourcis Clavier" - -#: f.tools.cc:1973 f.widgets.cc:550 -msgid "Grid Lines" -msgstr "Guides de la Grille" - -#: f.tools.cc:1982 -msgid "x-spacing" -msgstr "x-espacement" - -#: f.tools.cc:1983 -msgid "x-count" -msgstr "x-nombre" - -#: f.tools.cc:1984 -msgid "x-enable" -msgstr "x-activé" - -#: f.tools.cc:1990 -msgid "y-spacing" -msgstr "y-espacement" - -#: f.tools.cc:1991 -msgid "y-count" -msgstr "y-nombre" - -#: f.tools.cc:1992 -msgid "y-enable" -msgstr "y-activé" - -#: f.tools.cc:2112 f.tools.cc:2117 f.widgets.cc:551 -msgid "Line Color" -msgstr "Couleur de Ligne" - -#: f.tools.cc:2114 -msgid "Area Color" -msgstr "Couleur de Zone" - -#: f.tools.cc:2219 f.widgets.cc:552 -msgid "Show RGB" -msgstr "Montrer les couleurs RVB" - -#: f.tools.cc:2509 -msgid "" -"Drag mouse on image. \n" -"Left click to cancel. \n" -"Key X to toggle dialog." -msgstr "" -"Glisser le curseur sur l'image. \n" -"Clic gauche pour annuler. \n" -"Touche X pour changer de dialogue." - -#: f.tools.cc:2535 f.widgets.cc:553 -msgid "Magnify Image" -msgstr "Agrandir l'image" - -#: f.tools.cc:2544 -msgid "X-size" -msgstr "X-taille" - -#: f.tools.cc:2789 -msgid "Darkest and Brightest Pixels" -msgstr "Pixels les plus foncés et clairs" - -#: f.tools.cc:2812 -msgid "Dark Limit" -msgstr "Limite foncé" - -#: f.tools.cc:2813 -msgid "Bright Limit" -msgstr "Limite clair" - -#: f.tools.cc:2908 -msgid "" -"Brightness should show a gradual ramp \n" -"extending all the way to the edges." -msgstr "" -"La luminosité devrait être progressive, \n" -"s'étendant régulièrement d'un bord à l'autre." - -#: f.tools.cc:3004 f.widgets.cc:556 -msgid "Monitor Gamma" -msgstr "Gamma de l'écran" - -#: f.tools.cc:3064 -msgid "Available Translations" -msgstr "Traductions disponibles" - -#: f.tools.cc:3068 -msgid "Set Language" -msgstr "Définir la langue" - -#: f.tools.cc:3206 f.widgets.cc:559 -msgid "Calibrate Printer" -msgstr "Calibrer l'Imprimante" - -#: f.tools.cc:3231 -msgid "print color chart" -msgstr "imprimer la charte des couleurs" - -#: f.tools.cc:3232 -msgid "scan and save color chart" -msgstr "Scanner et enregistrer la charte des couleurs" - -#: f.tools.cc:3233 -msgid "align and trim color chart" -msgstr "aligner et rogner le nuancier" - -#: f.tools.cc:3234 -msgid "open and process color chart" -msgstr "ouvrir et traiter le nuancier" - -#: f.tools.cc:3235 -msgid "print image with revised colors" -msgstr "imprimer l'image avec les couleurs révisées" - -#: f.tools.cc:3378 -#, c-format -msgid "" -"Scan the printed color chart. \n" -"The darkest row is at the top. \n" -"Save in %s/" -msgstr "" - -#: f.tools.cc:3393 -msgid "" -"Open and edit the scanned color chart file. \n" -"Remove any skew or rotation from scanning. \n" -"(Use the Fix Perspective function for this). \n" -"Cut off the thin green margin ACCURATELY." -msgstr "" - -#: f.tools.cc:3425 -msgid "Open the trimmed color chart file" -msgstr "Ouvrir le fichier-nuancier réduit" - -#: f.tools.cc:3558 -msgid "" -"Set the name for the output calibration file \n" -"[your calibration name].dat" -msgstr "" - -#: f.tools.cc:3598 -msgid "Color map file to use" -msgstr "Fichier de carte de couleurs à utiliser" - -#: f.tools.cc:3615 -msgid "Select the image file to print." -msgstr "Sélectionner le fichier image à imprimer." - -#: f.tools.cc:3680 -msgid "converting colors..." -msgstr "" - -#: f.tools.cc:3780 -msgid "Image colors are converted for printing." -msgstr "Les couleurs de l'image sont converties pour l'impresssion." - -#: f.widgets.cc:112 -msgid "Album" -msgstr "Album" - -#: f.widgets.cc:114 -msgid "TOP" -msgstr "TOP" - -#: f.widgets.cc:178 -msgid "Current Image File (key F)" -msgstr "Fichier Image Actuel (touche F)" - -#: f.widgets.cc:179 -msgid "Thumbnail Gallery (key G)" -msgstr "Galerie des vignettes (touche G)" - -#: f.widgets.cc:180 -msgid "World Maps (key W)" -msgstr "Mappemondes (touche W)" - -#: f.widgets.cc:181 -msgid "OSM Maps (key M)" -msgstr "" - -#: f.widgets.cc:184 -msgid "Favorite Functions" -msgstr "Fonctions favorites" - -#: f.widgets.cc:185 -msgid "File: Open, RAW, Rename, Delete, Print" -msgstr "" - -#: f.widgets.cc:186 -msgid "Save modified image file to disk" -msgstr "Enregistrer l'image modifiée sur le disque" - -#: f.widgets.cc:187 -msgid "Open previous or next file (left/right mouse click)" -msgstr "Ouvrir le fichier précédent ou suivant (clic gauche/droit)" - -#: f.widgets.cc:188 -msgid "Metadata: Captions, Tags, Ratings, Geotags, Search ... " -msgstr "" -"Métadonnées: Légendes, Balises, Évaluations, Balises de Géolocalisation, " -"Recherche..." - -#: f.widgets.cc:189 -msgid "Areas: Select areas to edit, copy and paste" -msgstr "Zones: Sélectionner les zones à éditer, copier et coller" - -#: f.widgets.cc:190 -msgid "Edit: Trim, Rotate, Resize, Brightness, Contrast, Text ..." -msgstr "" -"Éditer: Rogner, Pivoter, Redimensionner, Luminosité, Contraste, Texte..." - -#: f.widgets.cc:191 -msgid "Repair: Sharpen, Noise, Red-eyes, Color, Paint, Clone ..." -msgstr "" -"Réparer: Netteté, Bruit, Yeux rouges, Couleur, Peinture, Duplication..." - -#: f.widgets.cc:192 -msgid "Bend: Fix Perspective, Bend/Warp image ..." -msgstr "Cintrer: Fixer la perspective, Cintrer/Déformer l'image..." - -#: f.widgets.cc:193 -msgid "Effects: Special Effects, Arty Transforms" -msgstr "Effets: Effets Spéciaux, Transformations Style Artiste" - -#: f.widgets.cc:194 -msgid "Combine: HDR, HDF, Panorama, Stack, Mashup" -msgstr "Combiner: HDR, HDF, Panorama, Superposition, Pêle-Mêle" - -#: f.widgets.cc:195 -msgid "" -"left/right click: undo/redo 1 edit \n" -" with key A: undo/redo all edits \n" -" middle click: go to any prior edit" -msgstr "" - -#: f.widgets.cc:198 -msgid "Tools: Index, Options, Shortcuts, Magnify ..." -msgstr "Outils: Index, Options, Raccourcis, Agrandissement..." - -#: f.widgets.cc:199 -msgid "Help: Quick Start, User Guide, Recent Changes ..." -msgstr "" -"Aide: Démarrage rapide, Manuel de l'Utilisateur, Changements récents..." - -#: f.widgets.cc:202 -msgid "Set gallery from current image file" -msgstr "" -"Afficher le répertoire contenant le fichier image actuel dans la galerie" - -#: f.widgets.cc:203 -msgid "Albums: Manage Albums, Slide Show, Desktop Wallpaper" -msgstr "" - -#: f.widgets.cc:204 -msgid "go to bookmarked image" -msgstr "aller à l'image marquée du signet" - -#: f.widgets.cc:205 -msgid "increase thumbnail size" -msgstr "augmenter la taille des vignettes" - -#: f.widgets.cc:206 -msgid "reduce thumbnail size" -msgstr "diminuer la taille des vignettes" - -#: f.widgets.cc:207 -msgid "change sort order" -msgstr "changer l'ordre de tri" - -#: f.widgets.cc:208 -msgid "jump to beginning (top)" -msgstr "aller au début (racine)" - -#: f.widgets.cc:209 -msgid "jump to end (bottom)" -msgstr "aller à la fin (bas)" - -#: f.widgets.cc:210 -msgid "previous page" -msgstr "page précédente" - -#: f.widgets.cc:211 -msgid "next page" -msgstr "page suivante" - -#: f.widgets.cc:212 -msgid "slow scroll" -msgstr "défilement doux" - -#: f.widgets.cc:213 -msgid "Batch conversion, metadata, RAW processing" -msgstr "Conversion, traitement des métadonnées et RAW par lots" - -#: f.widgets.cc:216 -msgid "Choose a map for image locations" -msgstr "Sélectionner une carte pour les lieux de l'image" - -#: f.widgets.cc:217 -msgid "Set image search radius for map click" -msgstr "Définir le rayon de recherche de l'image pour clic sur carte" - -#: f.widgets.cc:218 -msgid "Find images meeting select criteria" -msgstr "Rechercher les images correspondant au critère de sélection" - -#: f.widgets.cc:219 -msgid "Find all images for a location [date]" -msgstr "Rechercher toutes les images pour un lieu géographique [date]" - -#: f.widgets.cc:226 -msgid "Open another window" -msgstr "Ouvrir une nouvelle fenêtre" - -#: f.widgets.cc:227 -msgid "Open a new image file" -msgstr "Ouvrir un nouveau fichier image" - -#: f.widgets.cc:228 -msgid "Open the previously seen file" -msgstr "Ouvrir l'image affichée précédemment" - -#: f.widgets.cc:229 -msgid "Open a recently seen file" -msgstr "Ouvrir un fichier récemment affiché" - -#: f.widgets.cc:230 -msgid "Open a newly added file" -msgstr "Ouvrir un fichier ajouté dernièrement" - -#: f.widgets.cc:231 f.widgets.cc:232 -msgid "Open and edit a camera RAW file" -msgstr "Ouvrir et éditer un fichier image RAW" - -#: f.widgets.cc:233 -msgid "Change the image file name" -msgstr "Changer le nom du fichier image" - -#: f.widgets.cc:234 -msgid "Copy or Move an image file to a new location" -msgstr "" - -#: f.widgets.cc:235 -msgid "Create a blank image" -msgstr "Créer une image vierge" - -#: f.widgets.cc:236 -msgid "Delete or trash image file" -msgstr "" - -#: f.widgets.cc:237 -msgid "Print the current image" -msgstr "Imprimer l'image actuelle" - -#: f.widgets.cc:238 -msgid "Print current image with adjusted colors" -msgstr "" - -#: f.widgets.cc:239 f.widgets.cc:434 -msgid "Quit Fotoxx" -msgstr "Quitter Fotoxx" - -#: f.widgets.cc:242 -msgid "List a few key metadata items" -msgstr "Lister quelques éléments de mots-clés de métadonnées" - -#: f.widgets.cc:243 -msgid "List all metadata items" -msgstr "Lister tous les éléments des métadonnées" - -#: f.widgets.cc:244 -msgid "(Toggle) show captions and comments" -msgstr "(Basculer) afficher légendes et commentaires" - -#: f.widgets.cc:245 -msgid "Edit image tags/geotags/caption/rating ..." -msgstr "" - -#: f.widgets.cc:246 -msgid "Edit any image metadata" -msgstr "Éditer n'importe quelle métadonnée de l'image" - -#: f.widgets.cc:247 -msgid "Remove all metadata from an image" -msgstr "Retirer toutes les métadonnées d'une image" - -#: f.widgets.cc:248 -msgid "Add/remove tags for multiple images" -msgstr "Ajouter/retirer les balises par lots" - -#: f.widgets.cc:249 -msgid "Convert tag names for all images" -msgstr "Convertir les noms de balises pour toutes les images" - -#: f.widgets.cc:250 -msgid "Add/change/delete metadata for multiple images" -msgstr "Ajouter/modifier/supprimer les métadonnées de plusieurs images" - -#: f.widgets.cc:251 -msgid "Report metadata for multiple images" -msgstr "" - -#: f.widgets.cc:252 -msgid "Add/revise geotags for multiple images" -msgstr "Ajouter/réviser les balises de géolocalisation de plusieurs imgaes" - -#: f.widgets.cc:257 -msgid "Select object or area for editing" -msgstr "Sélectionner un objet ou une zone de travail" - -#: f.widgets.cc:258 -msgid "Show (outline) existing area" -msgstr "Montrer la zone existante (contours)" - -#: f.widgets.cc:259 -msgid "Hide existing area" -msgstr "Masquer la zone existante" - -#: f.widgets.cc:260 -msgid "Enable area for editing" -msgstr "Activer la zone de travail" - -#: f.widgets.cc:261 -msgid "Disable area for editing" -msgstr "Désactiver la zone de travail" - -#: f.widgets.cc:262 -msgid "Reverse existing area" -msgstr "Inverser la zone existante" - -#: f.widgets.cc:263 -msgid "Erase existing area" -msgstr "Effacer la zone existante" - -#: f.widgets.cc:264 -msgid "Copy area for later pasting into image" -msgstr "Copier la zone pour un collage ultérieur dans l'image" - -#: f.widgets.cc:265 -msgid "Paste previously copied area into image" -msgstr "Coller la zone précédemment copiée dans l'image" - -#: f.widgets.cc:266 -msgid "Open a file and paste as area into image" -msgstr "Ouvrir un fichier et le coller comme zone dans l'image" - -#: f.widgets.cc:267 -msgid "Save area to a file with transparency" -msgstr "Enregistrer la zone dans un fichier avec la transparence." - -#: f.widgets.cc:270 -msgid "Trim/Crop margins and/or Rotate" -msgstr "Rogner/Recadrer les marges et/ou Pivoter" - -#: f.widgets.cc:271 -msgid "Upright a rotated image" -msgstr "Redresser une image retournée" - -#: f.widgets.cc:272 f.widgets.cc:273 -msgid "Fast auto enhance that may work OK" -msgstr "" -"Amélioration automatique rapide donnant généralement des résultats " -"satisfaisants" - -#: f.widgets.cc:274 -msgid "Adjust brightness, contrast, color" -msgstr "Ajuster luminosité, contraste et couleur" - -#: f.widgets.cc:275 -msgid "Add local contrast, enhance details" -msgstr "Ajouter du contraste localement, améliorer des détails" - -#: f.widgets.cc:276 -msgid "Edit brightness distribution" -msgstr "" - -#: f.widgets.cc:277 -msgid "Flatten zonal brightness distribution" -msgstr "Aplatir la distribution zonale de luminosité" - -#: f.widgets.cc:278 -msgid "Change pixel dimensions" -msgstr "Changer la dimension des pixels" - -#: f.widgets.cc:279 -msgid "Mirror image horizontally or vertically" -msgstr "Miroir horizontal ou vertical de l'image" - -#: f.widgets.cc:280 -msgid "Write text on image" -msgstr "Écrire du texte sur l'image" - -#: f.widgets.cc:281 -msgid "Write lines or arrows on image" -msgstr "Tracer des lignes ou des flèches sur l'image" - -#: f.widgets.cc:282 -msgid "Fix brightness uniformity across image" -msgstr "Uniformiser la luminosité à travers l'image" - -#: f.widgets.cc:283 -msgid "Paint edit function gradually with mouse" -msgstr "Fonction d'édition de peinture graduelle au moyen de la souris" - -#: f.widgets.cc:284 -msgid "Leverage edits by brightness or color" -msgstr "Retouches à effet zonevier par luminosité ou couleur" - -#: f.widgets.cc:285 -msgid "Edit plugins menu or run a plugin function" -msgstr "Éditer le menu des greffons ou exéctuer une fonction de greffon" - -#: f.widgets.cc:288 -msgid "Make the image look sharper" -msgstr "Rendre l'image plus nette" - -#: f.widgets.cc:289 -msgid "Make the image look fuzzy" -msgstr "Donner un effet de flou à l'image" - -#: f.widgets.cc:290 -msgid "Filter noise from low-light photos" -msgstr "Filtrer le bruit de photos sous-exposées" - -#: f.widgets.cc:291 -msgid "Remove unwanted objects" -msgstr "Retirer les objets superflus" - -#: f.widgets.cc:292 -msgid "Fix red-eyes from electronic flash" -msgstr "Supprimer les yeux rouges dus au flash électronique" - -#: f.widgets.cc:293 -msgid "Paint image pixels using the mouse" -msgstr "Dessiner les pixels de l'image au moyen de la souris" - -#: f.widgets.cc:294 -msgid "Paint image transparency using the mouse" -msgstr "Peindre la transparence de l'image avec la souris" - -#: f.widgets.cc:295 -msgid "Add image transparency based on image attributes" -msgstr "" - -#: f.widgets.cc:296 -msgid "Make BW/color, negative/positive, sepia" -msgstr "Convertir NB/couleur, négatif/positif, sépia" - -#: f.widgets.cc:297 -msgid "Shift/convert colors into other colors" -msgstr "Changer/convertir des couleurs en d'autres couleurs" - -#: f.widgets.cc:298 -msgid "Adjust color intensity (saturation)" -msgstr "" - -#: f.widgets.cc:299 -msgid "Adjust color using RGB or CMY colors" -msgstr "Ajuster les couleurs en utilisant les couleurs RGB ou CMY" - -#: f.widgets.cc:300 -msgid "Adjust color using HSL colors" -msgstr "Ajuster les couleurs en utilisant les couleurs HSL" - -#: f.widgets.cc:301 -msgid "Adjust color in selected image areas" -msgstr "Ajuster les couleurs dans les zones sélectionnées de l'image" - -#: f.widgets.cc:302 -msgid "Match colors on one image with another" -msgstr "Faire correspondre les couleurs d'une image avec celles d'une autre" - -#: f.widgets.cc:303 -msgid "Convert to another color profile" -msgstr "Convertir en un autre profil de couleurs" - -#: f.widgets.cc:304 -msgid "Remove dust spots from scanned slides" -msgstr "Ôter les grains de poussière des diapositives scannées" - -#: f.widgets.cc:305 -msgid "Smoothen edges with jaggies" -msgstr "Adoucir les bords crénelés" - -#: f.widgets.cc:306 -msgid "Reduce Chromatic Abberation" -msgstr "Réduire les Aberrations Chromatiques" - -#: f.widgets.cc:307 -msgid "Erase known hot and dark pixels" -msgstr "Effacer les pixels chauds et foncés connus" - -#: f.widgets.cc:310 -msgid "Remove curvature, esp. panoramas" -msgstr "Corriger la courbure, principalement des images panoramiques" - -#: f.widgets.cc:311 -msgid "Straighten objects seen from an angle" -msgstr "Redresser l'angle de vue des objets (perspective)" - -#: f.widgets.cc:312 -msgid "Distort image areas using the mouse" -msgstr "Déformer les zones de l'image au moyen de la souris" - -#: f.widgets.cc:313 f.widgets.cc:314 f.widgets.cc:315 -msgid "Distort the whole image using the mouse" -msgstr "Déformer l'image entière au moyen de la souris" - -#: f.widgets.cc:316 -msgid "Flatten a photographed book page" -msgstr "Aplatir une photographie de page de livre" - -#: f.widgets.cc:317 -msgid "Make a spherical projection of an image" -msgstr "" - -#: f.widgets.cc:318 -msgid "Rescale image outside selected areas" -msgstr "" - -#: f.widgets.cc:321 -msgid "Reduce color depth (posterize)" -msgstr "Réduire la profondeur de couleur (postérisation)" - -#: f.widgets.cc:322 -msgid "Convert to pencil sketch" -msgstr "Transformer en esquisse au crayon" - -#: f.widgets.cc:323 -msgid "Convert image into a cartoon drawing" -msgstr "" - -#: f.widgets.cc:324 -msgid "Convert to line drawing (edge detection)" -msgstr "Convertir en dessin au trait (détection de bord)" - -#: f.widgets.cc:325 -msgid "Convert to solid color drawing" -msgstr "Convertir en dessin de couleur de base" - -#: f.widgets.cc:326 -msgid "Graduated Blur depending on contrast" -msgstr "Flou Progressif dépendant du contraste" - -#: f.widgets.cc:327 -msgid "Create an embossed or 3D appearance" -msgstr "Donner l'apparence d'un estampage ou tridimensionnelle" - -#: f.widgets.cc:328 -msgid "Convert to square tiles" -msgstr "Transformer en mosaïque" - -#: f.widgets.cc:329 -msgid "Convert to dots (Roy Lichtenstein effect)" -msgstr "Convertir en trame de points (effet Roy Lichtenstein)" - -#: f.widgets.cc:330 -msgid "Convert into a simulated painting" -msgstr "Simuler une peinture" - -#: f.widgets.cc:331 -msgid "Change brightness or color radially" -msgstr "Modifier la luminosité ou la couleur radialement" - -#: f.widgets.cc:332 -msgid "Add texture to an image" -msgstr "Ajouter une texture à une image" - -#: f.widgets.cc:333 -msgid "Tile image with a repeating pattern" -msgstr "Carreler l'image avec un motif répétitif" - -#: f.widgets.cc:334 -msgid "Create a mosaic with tiles made from all images" -msgstr "" -"Créer une mosaïque par juxtaposition de motifs obtenus à partir de toutes " -"les images " - -#: f.widgets.cc:335 -msgid "Process an image using a custom kernel" -msgstr "Traiter une image au moyen d'un noyau personnalisé" - -#: f.widgets.cc:336 -msgid "Warp an image with a wave pattern" -msgstr "Déformer une image au moyen d'un motif de vague" - -#: f.widgets.cc:337 -msgid "Blur an image in the direction of mouse drags" -msgstr "Flouter une image suivant la direction des glissements de souris" - -#: f.widgets.cc:338 -msgid "Increasing blur with distance from selected areas" -msgstr "" - -#: f.widgets.cc:341 -msgid "Combine bright/dark images for better detail" -msgstr "Combiner les images claires/foncées pour affiner les détails" - -#: f.widgets.cc:342 -msgid "Combine near/far focus images for deeper focus" -msgstr "" -"Combiner les mises au point proche/lointain d'images pour une netteté " -"optimale" - -#: f.widgets.cc:343 -msgid "Combine images to erase passing people, etc." -msgstr "Combiner les images pour effacer les passants, etc." - -#: f.widgets.cc:344 -msgid "Combine noisy images into a low-noise image" -msgstr "" -"Combiner des images fortement parasitées en une image légèrement parasitée" - -#: f.widgets.cc:345 -msgid "Combine images into a panorama" -msgstr "Combiner des images en une image panoramique" - -#: f.widgets.cc:346 -msgid "Combine images into a vertical panorama" -msgstr "Combiner des images en une image panoramique verticale" - -#: f.widgets.cc:347 -msgid "Combine images into a panorama (panorama tools)" -msgstr "Combiner les images en un panorama (outils panorama)" - -#: f.widgets.cc:348 -msgid "Arrange images and text in a layout (montage)" -msgstr "Arranger des images et du texte dans un montage" - -#: f.widgets.cc:351 -msgid "Index new files and make thumbnails" -msgstr "Indexer les nouveaux fichiers et créer les vignettes" - -#: f.widgets.cc:352 -msgid "Change user preferences" -msgstr "Modifier les préférences de l'utilisateur" - -#: f.widgets.cc:353 -msgid "Change Keyboard Shortcut Keys" -msgstr "Modifier les touches de Raccourcis Clavier" - -#: f.widgets.cc:354 -msgid "Show a brightness distribution graph" -msgstr "Montrer un graphique de répartition de la luminosité" - -#: f.widgets.cc:355 -msgid "Show or revise grid lines" -msgstr "Montrer ou régler les guides de la grille" - -#: f.widgets.cc:356 -msgid "Change color of foreground lines" -msgstr "Modifier la couleur de premier plan des lignes" - -#: f.widgets.cc:357 -msgid "Show RGB colors at mouse click" -msgstr "Montrer les couleurs RGB au clic de souris" - -#: f.widgets.cc:358 -msgid "Magnify image around the mouse position" -msgstr "Agrandir l'image autour de la postion du curseur" - -#: f.widgets.cc:359 -msgid "Highlight darkest and brightest pixels" -msgstr "Mettre les pixels les plus foncés/clairs en évidence" - -#: f.widgets.cc:360 -msgid "Chart to adjust monitor color" -msgstr "Diagramme d'ajustement de la couleur de l'écran" - -#: f.widgets.cc:361 -msgid "Chart to adjust monitor gamma" -msgstr "Diagramme d'ajustement du gamma de l'écran" - -#: f.widgets.cc:362 -msgid "Change the GUI language" -msgstr "Changer la langue de l'interface" - -#: f.widgets.cc:363 -msgid "Report missing translations" -msgstr "Faire un rapport des traductions manquantes" - -#: f.widgets.cc:364 -msgid "Calibrate printer colors" -msgstr "Calibrer les couleurs de l'imprimante" - -#: f.widgets.cc:365 -msgid "Memory and CPU (to terminal/logfile)" -msgstr "Mémoire et CPU (vers terminal/fichier-journal)" - -#: f.widgets.cc:369 -msgid "Rename/convert/resize/move multiple files" -msgstr "Renommer/convertir/redimensionner/déplacer fichier par lots" - -#: f.widgets.cc:370 -msgid "Upright multiple rotated image files" -msgstr "Redresser plusieurs fichiers images tournés" - -#: f.widgets.cc:371 -msgid "Delete or Trash multiple files" -msgstr "Supprimer ou Mettre plusieurs fichiers à la Corbeille" - -#: f.widgets.cc:372 -msgid "Convert camera RAW files using DCraw" -msgstr "Convertir les fichiers Photos RAW au moyen de DCraw" - -#: f.widgets.cc:373 -msgid "Convert camera RAW files using Raw Therapee" -msgstr "Convertir les fichiers Photos RAW au moyen de Raw Therapee" - -#: f.widgets.cc:374 -msgid "Build and run edit script files" -msgstr "" - -#: f.widgets.cc:375 -msgid "Burn selected image files to DVD/BlueRay disc" -msgstr "" - -#: f.widgets.cc:376 -msgid "Search all image files and report duplicates" -msgstr "Rechercher tous les fichiers image et signaler les doublons" - -#: f.widgets.cc:381 -msgid "Quick Start mini-guide" -msgstr "Mini-guide pour un Démarrage Rapide" - -#: f.widgets.cc:382 -msgid "Read the user guide" -msgstr "Consulter le manuel utilisateur" - -#: f.widgets.cc:383 -msgid "Recent user guide changes" -msgstr "Manuel utilisateur des derniers changements" - -#: f.widgets.cc:384 -msgid "Summary of image edit functions" -msgstr "Sommaire des fonctions d’édition d'image" - -#: f.widgets.cc:385 -msgid "Technical installation notes" -msgstr "Notes techniques d'installation" - -#: f.widgets.cc:386 -msgid "List updates by Fotoxx version" -msgstr "Lister les mises à jour par version de Fotoxx" - -#: f.widgets.cc:387 -msgid "View the log file and error messages" -msgstr "Afficher le fichier-journal et les messages d'erreur" - -#: f.widgets.cc:388 -msgid "How to do Fotoxx translations" -msgstr "Comment traduire Fotoxx" - -#: f.widgets.cc:389 -msgid "Show the Fotoxx web page" -msgstr "Aller à la page web de Fotoxx" - -#: f.widgets.cc:390 -msgid "Version, license, contact, credits" -msgstr "Version, licence, contact, crédits" - -#: f.widgets.cc:393 -msgid "Organize images into albums" -msgstr "Organiser les images en albums" - -#: f.widgets.cc:394 -msgid "Start a slide show" -msgstr "Démarrer un diaporama" - -#: f.widgets.cc:395 -msgid "Set desktop wallpaper from current Fotoxx image" -msgstr "" - -#: f.widgets.cc:396 -msgid "Cycle desktop wallpaper from a Fotoxx album" -msgstr "" - -#: f.widgets.cc:419 -msgid "New Window" -msgstr "Nouvelle Fenêtre" - -#: f.widgets.cc:421 -msgid "Recently Seen Images" -msgstr "Images Récemment Affichées" - -#: f.widgets.cc:422 -msgid "Newest Images" -msgstr "Images les plus Récentes" - -#: f.widgets.cc:424 -msgid "Open Previous File" -msgstr "Ouvrir l'Image Précédente" - -#: f.widgets.cc:425 -msgid "Open RAW (ufraw)" -msgstr "Ouvrir RAW (ufraw)" - -#: f.widgets.cc:426 -msgid "Open RAW (Raw Therapee)" -msgstr "Ouvrir RAW (Raw Therapee)" - -#: f.widgets.cc:427 -msgid "New Blank Image" -msgstr "Nouvelle Image Vierge" - -#: f.widgets.cc:429 f.widgets.cc:727 -msgid "Copy/Move to Location" -msgstr "" - -#: f.widgets.cc:430 -msgid "Delete/Trash Image File" -msgstr "" - -#: f.widgets.cc:431 -msgid "Print Image" -msgstr "Imprimer l'Image" - -#: f.widgets.cc:432 -msgid "Print Calibrated Image" -msgstr "" - -#: f.widgets.cc:433 f.widgets.cc:585 -msgid "Set Desktop Wallpaper" -msgstr "" - -#: f.widgets.cc:437 -msgid "View Metadata (short)" -msgstr "Afficher les Métadonnées (résumé)" - -#: f.widgets.cc:438 -msgid "View Metadata (long)" -msgstr "Afficher les Métadonnées (informations complètes)" - -#: f.widgets.cc:439 -msgid "Show Captions on Image" -msgstr "Afficher les Légendes de l'Image" - -#: f.widgets.cc:444 f.widgets.cc:575 -msgid "Batch Rename Tags" -msgstr "Renommage de Balises par Lots" - -#: f.widgets.cc:445 f.widgets.cc:576 -msgid "Batch Add/Change Metadata" -msgstr "Ajout/Modificaton des Métadonnées par Lots" - -#: f.widgets.cc:448 f.widgets.cc:580 f.widgets.cc:658 f.widgets.cc:670 -msgid "Search Images" -msgstr "Rechercher des Images" - -#: f.widgets.cc:449 f.widgets.cc:579 f.widgets.cc:657 f.widgets.cc:669 -msgid "Images by Geotag" -msgstr "Images par Balises de Géolocalisation" - -#: f.widgets.cc:452 fotoxx.h:1181 -msgid "Select" -msgstr "Sélectionner" - -#: f.widgets.cc:453 fotoxx.h:1183 -msgid "Show" -msgstr "Montrer" - -#: f.widgets.cc:454 fotoxx.h:1136 -msgid "Hide" -msgstr "Masquer" - -#: f.widgets.cc:455 fotoxx.h:1123 -msgid "Enable" -msgstr "Activer" - -#: f.widgets.cc:456 fotoxx.h:1119 -msgid "Disable" -msgstr "Désactiver" - -#: f.widgets.cc:457 fotoxx.h:1139 -msgid "Invert" -msgstr "Inverser" - -#: f.widgets.cc:458 fotoxx.h:1197 -msgid "Unselect" -msgstr "Dé-sélectionner" - -#: f.widgets.cc:459 -msgid "Copy Area" -msgstr "Copier la Zone" - -#: f.widgets.cc:460 -msgid "Paste Area" -msgstr "Coller la Zone" - -#: f.widgets.cc:461 -msgid "Open Area File" -msgstr "Ouvrir un Fichier de Zone" - -#: f.widgets.cc:462 -msgid "Save Area File" -msgstr "Enregistrer le Fichier de Zone" - -#: f.widgets.cc:467 -msgid "Voodoo 1" -msgstr "Voodoo 1" - -#: f.widgets.cc:468 -msgid "Voodoo 2" -msgstr "Voodoo 2" - -#: f.widgets.cc:470 f.widgets.cc:741 -msgid "Edit Brightness" -msgstr "" - -#: f.widgets.cc:471 f.widgets.cc:742 -msgid "Zonal Flatten" -msgstr "Aplatissement Zonal" - -#: f.widgets.cc:475 -msgid "Add Text" -msgstr "Ajouter du Texte" - -#: f.widgets.cc:476 -msgid "Add Lines" -msgstr "Ajouter des Lignes" - -#: f.widgets.cc:479 -msgid "Plugins" -msgstr "Greffons" - -#: f.widgets.cc:484 -msgid "Denoise" -msgstr "Réduction de Bruit" - -#: f.widgets.cc:486 -msgid "Red Eyes" -msgstr "Yeux Rouges" - -#: f.widgets.cc:493 -msgid "Adjust RGB/CMY" -msgstr "Ajuster RGB/CMY" - -#: f.widgets.cc:494 -msgid "Adjust HSL" -msgstr "Ajuster HSL" - -#: f.widgets.cc:495 -msgid "Ramp Brightness" -msgstr "" - -#: f.widgets.cc:496 -msgid "Ramp Color" -msgstr "" - -#: f.widgets.cc:497 -msgid "Match Colors" -msgstr "Faire Correspondre les couleurs" - -#: f.widgets.cc:498 -msgid "Color Profile" -msgstr "Profil de Couleur" - -#: f.widgets.cc:500 -msgid "Anti-Alias" -msgstr "Anticrénelage" - -#: f.widgets.cc:506 -msgid "Fix Perspective" -msgstr "Fixer la Perspective" - -#: f.widgets.cc:511 -msgid "Flatten Book Page" -msgstr "Aplatir une Page de Livre" - -#: f.widgets.cc:516 -msgid "Color Depth" -msgstr "Profondeur de Couleur" - -#: f.widgets.cc:517 -msgid "Sketch" -msgstr "Esquisse" - -#: f.widgets.cc:518 -msgid "Cartoon" -msgstr "" - -#: f.widgets.cc:522 -msgid "Embossing" -msgstr "Estampage" - -#: f.widgets.cc:524 -msgid "Dots" -msgstr "Trame de points" - -#: f.widgets.cc:525 -msgid "Painting" -msgstr "Peinture" - -#: f.widgets.cc:527 -msgid "Texture" -msgstr "Texture" - -#: f.widgets.cc:529 -msgid "Mosaic" -msgstr "Mosaïque" - -#: f.widgets.cc:536 -msgid "High Dynamic Range" -msgstr "Fourchette Dynamique Étendue" - -#: f.widgets.cc:537 -msgid "High Depth of Field" -msgstr "Grande Profondeur de Champ" - -#: f.widgets.cc:538 -msgid "Stack/Paint" -msgstr "Superposer/Peindre" - -#: f.widgets.cc:539 -msgid "Stack/Noise" -msgstr "Superposition/Bruit" - -#: f.widgets.cc:540 -msgid "Panorama" -msgstr "Panorama" - -#: f.widgets.cc:541 -msgid "Vertical Panorama" -msgstr "Panorama Vertical" - -#: f.widgets.cc:542 -msgid "PT Panorama" -msgstr "PT Panorama" - -#: f.widgets.cc:543 -msgid "Mashup" -msgstr "Pêle-Mêle" - -#: f.widgets.cc:549 -msgid "Brightness Graph" -msgstr "" - -#: f.widgets.cc:554 -msgid "Dark/Bright Pixels" -msgstr "Pixels Foncés/Clairs" - -#: f.widgets.cc:555 -msgid "Monitor Color" -msgstr "Couleurs de l'Écran" - -#: f.widgets.cc:557 -msgid "Change Language" -msgstr "Changer de la Langue" - -#: f.widgets.cc:558 -msgid "Missing Translations" -msgstr "Traductions Manquantes" - -#: f.widgets.cc:560 -msgid "Resources" -msgstr "Ressources" - -#: f.widgets.cc:567 -msgid "Batch RAW (DCraw)" -msgstr "Traitement RAW par Lots (DCraw)" - -#: f.widgets.cc:568 -msgid "Batch RAW (Raw Therapee)" -msgstr "Traitement RAW par Lots (Raw Therapee)" - -#: f.widgets.cc:569 -msgid "Script Files" -msgstr "" - -#: f.widgets.cc:572 -msgid "Create File of Image Files" -msgstr "" - -#: f.widgets.cc:586 -msgid "Cycle Desktop Wallpaper" -msgstr "" - -#: f.widgets.cc:603 f.widgets.cc:627 f.widgets.cc:651 f.widgets.cc:665 -msgid "Gallery" -msgstr "Galerie" - -#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 -msgid "World Maps" -msgstr "Mappemondes" - -#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 -msgid "OSM Maps" -msgstr "" - -#: f.widgets.cc:607 f.widgets.cc:631 -msgid "Favorites" -msgstr "Favoris" - -#: f.widgets.cc:609 fotoxx.h:1177 -msgid "Save" -msgstr "Enregistrer" - -#: f.widgets.cc:610 -msgid "Prev/Next" -msgstr "Préc/Suiv" - -#: f.widgets.cc:612 -msgid "Areas" -msgstr "Zones" - -#: f.widgets.cc:613 fotoxx.h:1122 -msgid "Edit" -msgstr "Éditer" - -#: f.widgets.cc:614 -msgid "Repair" -msgstr "Réparer" - -#: f.widgets.cc:615 -msgid "Bend" -msgstr "Cintrer" - -#: f.widgets.cc:616 -msgid "Effects" -msgstr "Effets" - -#: f.widgets.cc:617 -msgid "Combine" -msgstr "Combiner" - -#: f.widgets.cc:618 -msgid "Undo/Redo" -msgstr "Annuler/Rétablir" - -#: f.widgets.cc:619 -msgid "Tools" -msgstr "Outils" - -#: f.widgets.cc:633 -msgid "Albums" -msgstr "Albums" - -#: f.widgets.cc:634 -msgid "Bookmarks" -msgstr "Marque-pages" - -#: f.widgets.cc:643 -msgid "Batch" -msgstr "Traitement par Lots" - -#: f.widgets.cc:655 -msgid "Choose Map" -msgstr "Sélectionner la Carte" - -#: f.widgets.cc:656 -msgid "Search Range" -msgstr "Fourchette de Recherche" - -#: f.widgets.cc:676 fotoxx.h:1195 -msgid "Undo" -msgstr "Rétablir" - -#: f.widgets.cc:677 fotoxx.h:1168 -msgid "Redo" -msgstr "Rétablir" - -#: f.widgets.cc:678 -msgid "Save File Version" -msgstr "" - -#: f.widgets.cc:722 -msgid "Popup Image" -msgstr "Image Contextuelle" - -#: f.widgets.cc:726 fotoxx.h:1171 -msgid "Rename" -msgstr "Renommer" - -#: f.widgets.cc:728 -msgid "Copy to Clipboard" -msgstr "Copier dans le Presse-Papier" - -#: f.widgets.cc:729 -msgid "Remove from Album" -msgstr "Retirer de l'Album" - -#: f.widgets.cc:730 -msgid "Cut to Image Cache" -msgstr "Couper vers le Cache de l'Image" - -#: f.widgets.cc:731 -msgid "Copy to Image Cache" -msgstr "Copier vers le Cache de l'Image" - -#: f.widgets.cc:732 -msgid "Paste Image Cache Here (clear)" -msgstr "Coller le Cache de l'Image Ici (effacer)" - -#: f.widgets.cc:733 -msgid "Paste Image Cache Here (keep)" -msgstr "Coller le Cache de l'Image Ici (conserver)" - -#: f.widgets.cc:734 -msgid "Paste Current Image File Here" -msgstr "Coller le Fichier Image actuel Ici" - -#: f.widgets.cc:744 -msgid "Select Area" -msgstr "Sélectionner une Zone" - -#: f.widgets.cc:747 -msgid "Show on OSM Map" -msgstr "" - -#: f.widgets.cc:748 -msgid "Delete/Trash" -msgstr "" - -#: f.widgets.cc:963 f.widgets.cc:985 -msgid "Image Locations" -msgstr "Emplacements d'Images" - -#: fotoxx-16.06.cc:392 -msgid "Please install missing programs:" -msgstr "Veuillez installer ce(s) programme(s) manquant(s):" - -#: fotoxx-16.06.cc:683 -msgid "Kill active dialog?" -msgstr "Terminer le dialogue actif?" - -#: fotoxx-16.06.cc:764 -msgid "(reduced)" -msgstr "(réduit)" - -#: fotoxx-16.06.cc:765 -msgid "area active" -msgstr "zone active" - -#: fotoxx-16.06.cc:766 -msgid "dialog open" -msgstr "dialogue ouvert" - -#: fotoxx-16.06.cc:767 -msgid "blocked" -msgstr "bloqué" - -#: fotoxx-16.06.cc:818 -msgid "edits" -msgstr "opérations" - -#: fotoxx-16.06.cc:2921 -msgid "Exceed 50 anchor points" -msgstr "Excède 50 points d'ancrage" - -#: fotoxx-16.06.cc:3141 -msgid "load curve from a file" -msgstr "charger la courbe depuis un fichier" - -#: fotoxx-16.06.cc:3207 -msgid "curve file is invalid" -msgstr "" - -#: fotoxx-16.06.cc:3221 -msgid "save curve to a file" -msgstr "enregistrer les courbes dans un fichier" - -#: fotoxx-16.06.cc:3293 -msgid "Too many edits, please save image" -msgstr "Trop d'opérations, veuillez enregistrer l'image" - -#: fotoxx-16.06.cc:3298 -msgid "this function cannot be scripted" -msgstr "" - -#: fotoxx-16.06.cc:3315 -msgid "" -"Select area not active.\n" -"Continue?" -msgstr "" -"La sélection de zone n'est pas active.\n" -"Continuer?" - -#: fotoxx-16.06.cc:3630 -msgid "file data does not fit dialog" -msgstr "les données de fichier ne sont pas adaptées à la boite de dialogue" - -#: fotoxx-16.06.cc:3640 -msgid "Save settings to a file" -msgstr "Sauvegarder les paramètres dans un fichier" - -#: fotoxx-16.06.cc:3993 -msgid "This action will discard changes to current image" -msgstr "Cette action va annuler les modifications apportées à l'image actuelle" - -#: fotoxx-16.06.cc:3994 -msgid "prior function still active" -msgstr "fonction antérieure toujours active" - -#: fotoxx-16.06.cc:3995 fotoxx.h:1140 -msgid "Keep" -msgstr "Conserver" - -#: fotoxx-16.06.cc:3996 -msgid "Discard" -msgstr "Abandonner" - -#: fotoxx.h:1093 -msgid "Add" -msgstr "Ajouter" - -#: fotoxx.h:1094 -msgid "Add All" -msgstr "Tout ajouter" - -#: fotoxx.h:1096 -msgid "Amount" -msgstr "Quantité" - -#: fotoxx.h:1097 -msgid "Angle" -msgstr "Angle" - -#: fotoxx.h:1098 -msgid "Apply" -msgstr "Appliquer" - -#: fotoxx.h:1099 -msgid "Auto" -msgstr "Auto" - -#: fotoxx.h:1100 -msgid "Black" -msgstr "Noir" - -#: fotoxx.h:1101 -msgid "Blend Width" -msgstr "Dosage du Mélange" - -#: fotoxx.h:1103 zfuncs.cc:10576 -msgid "bottom" -msgstr "bas" - -#: fotoxx.h:1105 -msgid "Browse" -msgstr "Parcourir" - -#: fotoxx.h:1106 -msgid "Cancel" -msgstr "Annuler" - -#: fotoxx.h:1107 -msgid "Center" -msgstr "centrer" - -#: fotoxx.h:1108 -msgid "Choose" -msgstr "Choisir" - -#: fotoxx.h:1109 -msgid "Clear" -msgstr "Effacer" - -#: fotoxx.h:1110 -msgid "Color" -msgstr "couleur" - -#: fotoxx.h:1111 -msgid "continue" -msgstr "Continuer" - -#: fotoxx.h:1113 -msgid "Copy" -msgstr "Copier" - -#: fotoxx.h:1114 -msgid "Create" -msgstr "Créer" - -#: fotoxx.h:1115 -msgid "Curve File:" -msgstr "Fichier de Courbes:" - -#: fotoxx.h:1116 -msgid "Cut" -msgstr "Couper" - -#: fotoxx.h:1117 -msgid "Deband" -msgstr "Détendre" - -#: fotoxx.h:1118 -msgid "Delete" -msgstr "Supprimer" - -#: fotoxx.h:1120 -msgid "Done" -msgstr "Terminé" - -#: fotoxx.h:1121 -msgid "edge" -msgstr "bord" - -#: fotoxx.h:1124 -msgid "Erase" -msgstr "Effacer" - -#: fotoxx.h:1125 -msgid "Fetch" -msgstr "Atteindre" - -#: fotoxx.h:1126 -msgid "output file already exists" -msgstr "fichier de sortie déjà existant" - -#: fotoxx.h:1127 -#, c-format -msgid "%d files selected" -msgstr "%d fichiers sélectionnés" - -#: fotoxx.h:1128 -msgid "Find" -msgstr "Rechercher" - -#: fotoxx.h:1129 -msgid "Finish" -msgstr "Finir" - -#: fotoxx.h:1130 -msgid "Flatten" -msgstr "Aplatir" - -#: fotoxx.h:1131 -msgid "Font" -msgstr "Police" - -#: fotoxx.h:1133 -msgid "Grid" -msgstr "Grille" - -#: fotoxx.h:1134 -msgid "Height" -msgstr "Hauteur" - -#: fotoxx.h:1137 -msgid "Images" -msgstr "Images" - -#: fotoxx.h:1138 -msgid "Insert" -msgstr "Insérer" - -#: fotoxx.h:1141 zfuncs.cc:10580 -msgid "left" -msgstr "gauche" - -#: fotoxx.h:1142 -msgid "limit" -msgstr "limiter" - -#: fotoxx.h:1143 -msgid "Load" -msgstr "Charger" - -#: fotoxx.h:1144 -msgid "Make" -msgstr "Faire" - -#: fotoxx.h:1146 -msgid "Map" -msgstr "Mappemonde" - -#: fotoxx.h:1147 -msgid "Match Level" -msgstr "" - -#: fotoxx.h:1148 -msgid "Max" -msgstr "Max" - -#: fotoxx.h:1149 -msgid "Negative" -msgstr "Négatif" - -#: fotoxx.h:1150 -msgid "New" -msgstr "Nouveau" - -#: fotoxx.h:1151 -msgid "Next" -msgstr "Suiv." - -#: fotoxx.h:1152 zfuncs.cc:9658 -msgid "No" -msgstr "Non" - -#: fotoxx.h:1153 -msgid "no images" -msgstr "pas d'images" - -#: fotoxx.h:1155 -msgid "no selection" -msgstr "pas de sélection" - -#: fotoxx.h:1156 -msgid "OK" -msgstr "Valider" - -#: fotoxx.h:1158 -msgid "Paste" -msgstr "Coller" - -#: fotoxx.h:1159 -msgid "Pause" -msgstr "Pause" - -#: fotoxx.h:1160 -msgid "Percent" -msgstr "Pour-cent" - -#: fotoxx.h:1162 -msgid "Presets" -msgstr "Pré-réglages" - -#: fotoxx.h:1163 -msgid "Prev" -msgstr "Préc." - -#: fotoxx.h:1164 -msgid "Proceed" -msgstr "Poursuivre" - -#: fotoxx.h:1166 -msgid "range" -msgstr "fourchette" - -#: fotoxx.h:1169 -msgid "Reduce" -msgstr "Réduire" - -#: fotoxx.h:1170 -msgid "Remove" -msgstr "Retirer" - -#: fotoxx.h:1172 -msgid "Replace" -msgstr "Remplacer" - -#: fotoxx.h:1173 -msgid "Reserved" -msgstr "Réservé" - -#: fotoxx.h:1174 -msgid "Reset" -msgstr "Réinitialiser" - -#: fotoxx.h:1175 zfuncs.cc:10584 -msgid "right" -msgstr "droit" - -#: fotoxx.h:1176 -msgid "Rotate" -msgstr "Pivoter" - -#: fotoxx.h:1178 -msgid "Unknown file type, save as tiff/jpeg/png to edit" -msgstr "" -"Type de fichier inconnu. Enregistrer au format tiff/jpeg/png pour l'éditer" - -#: fotoxx.h:1179 -msgid "Search" -msgstr "Rechercher" - -#: fotoxx.h:1180 -msgid "Seconds" -msgstr "Secondes" - -#: fotoxx.h:1184 -msgid "Size" -msgstr "Taille" - -#: fotoxx.h:1185 -msgid "Start" -msgstr "Démarrer" - -#: fotoxx.h:1186 -msgid "Strength" -msgstr "Force" - -#: fotoxx.h:1187 -msgid "Threshold" -msgstr "Seuil" - -#: fotoxx.h:1188 -#, c-format -msgid "exceed %d files" -msgstr "excède %d fichiers" - -#: fotoxx.h:1189 zfuncs.cc:10572 -msgid "top" -msgstr "haut" - -#: fotoxx.h:1191 -msgid "Trash" -msgstr "Corbeille" - -#: fotoxx.h:1192 -msgid "Trim" -msgstr "Rogner" - -#: fotoxx.h:1193 -msgid "Undo All" -msgstr "Tout Annuler" - -#: fotoxx.h:1194 -msgid "Undo Last" -msgstr "Annuler Dernière" - -#: fotoxx.h:1196 -msgid "Unfinish" -msgstr "Ne pas finir" - -#: fotoxx.h:1198 -msgid "View" -msgstr "Afficher" - -#: fotoxx.h:1199 -msgid "Web" -msgstr "Web" - -#: fotoxx.h:1200 -msgid "White" -msgstr "Blanc" - -#: fotoxx.h:1201 -msgid "Width" -msgstr "Largeur" - -#: fotoxx.h:1202 -msgid "x-offset" -msgstr "décalage x" - -#: fotoxx.h:1203 -msgid "y-offset" -msgstr "décalage y" - -#: fotoxx.h:1204 zfuncs.cc:9658 -msgid "Yes" -msgstr "Oui" - -#: zfuncs.cc:1687 -#, c-format -msgid "" -"create directory? \n" -" %s" -msgstr "" -"créer le répertoire? \n" -" %s" - -#: zfuncs.cc:4530 -msgid "user guide not found" -msgstr "manuel utilisateur introuvable" - -#: zfuncs.cc:5345 -#, c-format -msgid "cannot open file %s" -msgstr "impossible d'ouvrir le fichier %s" - -#: zfuncs.cc:5381 -msgid "save screen to file" -msgstr "enregistrer l'écran dans un fichier" - -#: zfuncs.cc:9744 zfuncs.cc:10239 zfuncs.cc:10559 -msgid "cancel" -msgstr "annuler" - -#: zfuncs.cc:10200 -msgid "choose file" -msgstr "choisir le fichier" - -#: zfuncs.cc:10205 -msgid "choose files" -msgstr "choisir les fichiers" - -#: zfuncs.cc:10210 -msgid "save" -msgstr "enregistrer" - -#: zfuncs.cc:10216 -msgid "choose folder" -msgstr "choisir le dossier" - -#: zfuncs.cc:10221 -msgid "choose folders" -msgstr "choisir les dossiers" - -#: zfuncs.cc:10226 -msgid "create folder" -msgstr "créer un dossier" - -#: zfuncs.cc:10233 -msgid "hidden" -msgstr "masqué" - -#: zfuncs.cc:10559 -msgid "done" -msgstr "terminé" - -#: zfuncs.cc:10559 zfuncs.cc:10568 -msgid "margins" -msgstr "marges" - -#: zfuncs.cc:10589 -msgid "image scale" -msgstr "échelle de l'image" - -#: zfuncs.cc:10591 -msgid "percent" -msgstr "pourcent" - -#: zfuncs.cc:10598 -msgid "image" -msgstr "image" - -#: zfuncs.cc:10602 -msgid "width" -msgstr "largeur" - -#: zfuncs.cc:10606 -msgid "height" -msgstr "hauteur" - -#~ msgid "select area within mouse" -#~ msgstr "sélectionner une zone avec la souris " - -#~ msgid "select one matching color within mouse" -#~ msgstr "sélectionner une couleur correspondante avec la souris" - -#~ msgid "select all matching colors within mouse" -#~ msgstr "sélectionner toutes les couleurs correspondantes avec la souris" - -#~ msgid "firewall" -#~ msgstr "pare-feu" - -#~ msgid "" -#~ "Click one time inside each enclosed area \n" -#~ "(possible gaps in the outline will be found). \n" -#~ "Press F1 for help." -#~ msgstr "" -#~ "Cliquer une fois à l'intérieur de chaque zone circonscrite \n" -#~ "(les éventuelles ruptures de contour seront trouvées). \n" -#~ "Appuyer sur la touche F1 pour obtenir de l'Aide." - -#~ msgid "linear" -#~ msgstr "linéaire" - -#~ msgid "curved" -#~ msgstr "cintré" - -#~ msgid "auto-trim" -#~ msgstr "rognage automatique" - -#~ msgid "Copy Image File" -#~ msgstr "Copier un Fichier Image" - -#~ msgid "Move Image File" -#~ msgstr "Déplacer un Fichier Image" - -#~ msgid "new location" -#~ msgstr "nouvel emplacement" - -#~ msgid "Trash Image File" -#~ msgstr "Mettre le Fichier Image à la Corbeille" - -#~ msgid "(automatic step to next image)" -#~ msgstr "(passer automatiquement à l'image suivante)" - -#~ msgid "" -#~ "Linux standard trash does not work. \n" -#~ "Desktop trash folder will be created." -#~ msgstr "" -#~ "La corbeille standard Linux n'est pas prise en charge. \n" -#~ "Un dossier Corbeille sera créé." - -#~ msgid "" -#~ "Linux and Desktop trash do not work. \n" -#~ "Permanently delete the image file?" -#~ msgstr "" -#~ "Linux et la Corbeille du bureau ne fonctionnent pas. \n" -#~ "Supprimer définitivement le fichier image?" - -#~ msgid "Cannot create trash folder: %s" -#~ msgstr "Impossible de créer le dossier Corbeille: %s" - -#~ msgid "Move read-only file to trash?" -#~ msgstr "Déplacer le fichier en lecture-seule vers la Corbeille?" - -#~ msgid "Delete Image File - CANNOT BE REVERSED" -#~ msgstr "Supprimer le Fichier Image - ACTION IRRÉVERSIBLE" - -#~ msgid "Undo Memory %d%c" -#~ msgstr "Mémoire d'Annulation %d%c" - -#~ msgid "" -#~ "Undo memory limit has been reached. \n" -#~ "Save work with [done], then resume painting." -#~ msgstr "" -#~ "La limite de mémoire d'annulation a été atteinte. \n" -#~ "Sauvegardez votre travail en cliquant sur [Terminé], \n" -#~ "puis reprenez la peinture." - -#~ msgid "File: Open, RAW, Rename, Trash, Print" -#~ msgstr "Fichier: Ouvrir, RAW, Renommer, Mettre à la Corbeille, Imprimer" - -#~ msgid "Move image file to Trash" -#~ msgstr "Déplacer l'image vers la Corbeille" - -#~ msgid "Permanently delete image file" -#~ msgstr "Supprimer définitivement le fichier image" - -#~ msgid "Edit image tags/caption/rating ..." -#~ msgstr "Éditer les balises/légende/évaluation de l'image..." - -#~ msgid "Edit image location and geotags" -#~ msgstr "Éditer le lieu et les balises de géolocalisation de l'image" - -#~ msgid "Adjust brightness distribution" -#~ msgstr "Ajuster la répartition de la luminosité" - -#~ msgid "Delete Image File" -#~ msgstr "Supprimer le Fichier Image" - -#~ msgid "Brightness Dist." -#~ msgstr "Répartition de la Luminosité" - -#~ msgid "Brightness Ramp" -#~ msgstr "Courbes de Luminosité" - -#~ msgid "Show Brightness Dist." -#~ msgstr "Afficher la distribution de luminostié" - -#~ msgid "Copy to Location" -#~ msgstr "Copier vers l'Emplacement" - -#~ msgid "Move to Location" -#~ msgstr "Déplacer vers l'Emplacement" - -#~ msgid "Voodoo Enhance" -#~ msgstr "Amélioration Voodoo" - -#~ msgid "recent" -#~ msgstr "récents" - -#~ msgid "newest" -#~ msgstr "derniers" - -#~ msgid "Brasero not installed" -#~ msgstr "Brasero non installé" - -#~ msgid "Burn selected image files to CD or DVD" -#~ msgstr "Graver les fichiers images sélectionnés sur un CD/DVD" - -#~ msgid "Burn Images to CD/DVD" -#~ msgstr "Graver les Images sur un CD/DVD" - -#~ msgid "Sync.G" -#~ msgstr "Sync. G" - -#~ msgid "(0 images)" -#~ msgstr "(0 images)" - -#~ msgid "(%d images)" -#~ msgstr "(%d images)" - -#~ msgid "jpeg quality must be 1-100" -#~ msgstr "la qualité JPEG doit être comprise entre 1 et 100" - -#~ msgid "Albums: Manage Albums, Slide Show, Desktop Background" -#~ msgstr "Albums: Gestion des Albums, Diaporama, Fond d'Écran" - -#~ msgid "Set desktop image from current Fotoxx image" -#~ msgstr "Définir l'image du bureau à partir de l'image Fotoxx actuelle" - -#~ msgid "Cycle desktop images from a Fotoxx album" -#~ msgstr "Cycle d'images du bureau à partir d'un album Fotoxx" - -#~ msgid "Set Desktop Image" -#~ msgstr "Définir l'Image du Bureau" - -#~ msgid "Cycle Desktop Image" -#~ msgstr "Cycle Image Bureau" - -#~ msgid "" -#~ "new name/base/adder unreasonable\n" -#~ " e.g. newname ### 100 10" -#~ msgstr "" -#~ "nouveau nom/base/ajouts incohérents\n" -#~ " ex: nouveaunom### 100 10" - -#~ msgid "Adjust Brightness Dist." -#~ msgstr "Ajuster la Distribution de Luminosité" - -#~ msgid "Surfaces" -#~ msgstr "Surfaces" - -#~ msgid "Lock aspect ratio" -#~ msgstr "Verrouiller les proportions" - -#~ msgid "unsharp mask" -#~ msgstr "masque flou" - -#~ msgid "brightness gradient" -#~ msgstr "dégradé de luminosité" - -#~ msgid "Kuwahara method" -#~ msgstr "méthode Kuwahara" - -#~ msgid "Flatten Outliers 1" -#~ msgstr "Écraser les valeurs atypiques 1" - -#~ msgid "Flatten Outliers 2" -#~ msgstr "Écraser les valeurs atypiques 2" - -#~ msgid "Median Brightness" -#~ msgstr "Luminosité Médiane" - -#~ msgid "" -#~ "Set the file name and location \n" -#~ "for the output color map file." -#~ msgstr "" -#~ "Définir le nom et l'emplacement du fichier \n" -#~ "du fichier de sortie de la carte des couleurs." - -#~ msgid "Batch Metadata" -#~ msgstr "Traitement des Métadonnées par Lots" - -#~ msgid "Popup Image (add)" -#~ msgstr "Image contextuelle (ajout)" - -#~ msgid "Metadata" -#~ msgstr "Métadonnées" - -#~ msgid "" -#~ "Undo or Redo one edit (left/right mouse click) \n" -#~ " hold key A to include all edits" -#~ msgstr "" -#~ "Annuler ou Rétablir une opération (clic gauche/droit) \n" -#~ " maintenir la touche A enfoncée pour englober toutes les retouches" - -#~ msgid "other" -#~ msgstr "autre" - -#~ msgid "metadata" -#~ msgstr "métadonnées" - -#~ msgid "Sync" -#~ msgstr "Sync" - -#~ msgid "Zoom image location:" -#~ msgstr "Emplacement de l'image de zoom" - -#~ msgid "Press ESC to exit slide show" -#~ msgstr "Appuyer sur la touche Échap pour quitter le diaporama" - -#~ msgid "" -#~ "Open and edit the scanned color chart file. \n" -#~ "Remove any skew or rotation caused by the scanner. \n" -#~ "Trim off all margins. Be careful not to cut off \n" -#~ "any color tile edges or leave any white margins." -#~ msgstr "" -#~ "Ouvrir et éditer le fichier-nuancier scanné. \n" -#~ "Retirer toute rotation ou gauchissement causés par le scanner. \n" -#~ "Rogner toutes les marges. Faites attention de ne pas couper \n" -#~ "n'importe quels bords colorés ou de laisser de marges blanches." - -#~ msgid "" -#~ "Scan the printed color chart. \n" -#~ "Save in %s/" -#~ msgstr "" -#~ "Scanner le nuancier imprimé. \n" -#~ "Enregistrer dans %s/" - -#~ msgid "Geotags" -#~ msgstr "Balises de Géolocalisation" - -#~ msgid "error in latitude/longitude/range" -#~ msgstr "erreur de latitude/longitude/fourchette" - -#~ msgid "range (km)" -#~ msgstr "fourchette (km)" - -#~ msgid "Add Geotags Search Criteria" -#~ msgstr "Ajouter un Critère de Recherche de Balises de Géolocalisation" - -#~ msgid "other criteria" -#~ msgstr "autre critère" - -#~ msgid "Geocoding web service courtesy of" -#~ msgstr "Service Web de Géo-codage avec l'aimable autorisation de" - -#~ msgid "Edit Geotags" -#~ msgstr "Éditer les Balises de Géolocalisation" diff -Nru fotoxx-16.06/locales/translate-it.po fotoxx-16.07/locales/translate-it.po --- fotoxx-16.06/locales/translate-it.po 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/locales/translate-it.po 2016-07-01 10:19:38.000000000 +0000 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: fotoxx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-31 15:14+0200\n" +"POT-Creation-Date: 2016-06-29 15:55+0200\n" "PO-Revision-Date: 2010-06-03 16:14+0100\n" "Language-Team: italiano \n" "Language: \n" @@ -18,7 +18,7 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: f.albums.cc:87 +#: f.albums.cc:93 msgid "" "Right-click album thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -26,252 +26,252 @@ "Cliccare col destro su icona album per tagliare/copiare \n" "sul deposito, inserire da, o eliminare." -#: f.albums.cc:89 +#: f.albums.cc:95 msgid "Drag album thumbnail to new position." msgstr "Trascinare l'icona dell'album in nuova posizione" -#: f.albums.cc:118 f.widgets.cc:583 +#: f.albums.cc:124 f.widgets.cc:585 msgid "Manage Albums" msgstr "Gestisci gli Album" -#: f.albums.cc:129 f.albums.cc:266 +#: f.albums.cc:136 f.albums.cc:273 msgid "Create or replace an album" msgstr "Crea o rimpiazza un album" -#: f.albums.cc:131 +#: f.albums.cc:138 msgid "Album to view or edit" msgstr "Album da vedere o modificare" -#: f.albums.cc:133 +#: f.albums.cc:140 msgid "Select images, add to cache" msgstr "Selezionare immagini, aggiungere al deposito" -#: f.albums.cc:135 +#: f.albums.cc:142 msgid "Clear image cache" msgstr "Azzera il deposito immagini" -#: f.albums.cc:137 f.albums.cc:159 +#: f.albums.cc:144 f.albums.cc:164 msgid "Delete an album" msgstr "Elimina un album" -#: f.albums.cc:158 +#: f.albums.cc:163 msgid "Choose Album" msgstr "Scegli un album" -#: f.albums.cc:160 +#: f.albums.cc:165 #, c-format msgid "Image cache has %d images" msgstr "La cache contiene %d immagini" -#: f.albums.cc:161 +#: f.albums.cc:166 msgid "cache added to empty album" msgstr "Il deposito è stato aggiunto a un album vuoto" -#: f.albums.cc:215 +#: f.albums.cc:220 #, c-format msgid "delete %s ?" msgstr "Eliminare %s?" -#: f.albums.cc:250 +#: f.albums.cc:257 #, c-format msgid "fill from image cache (%d images)" msgstr "Riempire da deposito immagini (%d immagini)" -#: f.albums.cc:268 f.albums.cc:305 +#: f.albums.cc:275 f.albums.cc:312 msgid "Album Name" msgstr "Nome dell'album" -#: f.albums.cc:274 +#: f.albums.cc:281 msgid "make an initially empty album" msgstr "Crea un album vuoto" -#: f.albums.cc:276 +#: f.albums.cc:283 msgid "fill from current gallery" msgstr "Riempire con la galleria corrente" -#: f.albums.cc:319 +#: f.albums.cc:326 msgid "enter an album name" msgstr "Immettere un nome per l'album" -#: f.albums.cc:346 +#: f.albums.cc:353 msgid "gallery is empty" msgstr "La galleria è vuota" -#: f.albums.cc:373 +#: f.albums.cc:380 msgid "new album created" msgstr "Creato un nuovo album" -#: f.albums.cc:1157 +#: f.albums.cc:1211 msgid "instant" msgstr "istantanea" -#: f.albums.cc:1158 +#: f.albums.cc:1212 msgid "fade-in" msgstr "dissolvenza" -#: f.albums.cc:1159 +#: f.albums.cc:1213 msgid "roll-right" msgstr "tenda-sx-dx" -#: f.albums.cc:1160 +#: f.albums.cc:1214 msgid "roll-down" msgstr "tenda-su-giu" -#: f.albums.cc:1161 +#: f.albums.cc:1215 msgid "venetian" msgstr "Veneziana" -#: f.albums.cc:1162 +#: f.albums.cc:1216 msgid "grate" msgstr "quadrettoni" -#: f.albums.cc:1163 +#: f.albums.cc:1217 msgid "rectangle" msgstr "rettangolo" -#: f.albums.cc:1164 +#: f.albums.cc:1218 msgid "implode" msgstr "implodi" -#: f.albums.cc:1165 +#: f.albums.cc:1219 msgid "explode" msgstr "esplodi" -#: f.albums.cc:1166 +#: f.albums.cc:1220 msgid "radar" msgstr "radar" -#: f.albums.cc:1167 +#: f.albums.cc:1221 msgid "spiral" msgstr "spirale" -#: f.albums.cc:1168 +#: f.albums.cc:1222 msgid "Japanese-fan" msgstr "FanGiapponese" -#: f.albums.cc:1169 +#: f.albums.cc:1223 msgid "jaws" msgstr "ganasce" -#: f.albums.cc:1170 +#: f.albums.cc:1224 msgid "ellipse" msgstr "ellisse" -#: f.albums.cc:1171 +#: f.albums.cc:1225 msgid "raindrops" msgstr "gocce" -#: f.albums.cc:1172 +#: f.albums.cc:1226 msgid "doubledoor" msgstr "Finestra-doppia" -#: f.albums.cc:1173 +#: f.albums.cc:1227 msgid "rotate" msgstr "ruotare" -#: f.albums.cc:1174 +#: f.albums.cc:1228 msgid "fallover" msgstr "pioggia" -#: f.albums.cc:1175 +#: f.albums.cc:1229 msgid "spheroid" msgstr "Sferoide" -#: f.albums.cc:1176 +#: f.albums.cc:1230 msgid "turn-page" msgstr "Volta pagina" -#: f.albums.cc:1177 +#: f.albums.cc:1231 msgid "french-door" msgstr "pannelli" -#: f.albums.cc:1197 f.widgets.cc:584 +#: f.albums.cc:1251 f.widgets.cc:586 msgid "Slide Show" msgstr "Slideshow" -#: f.albums.cc:1208 +#: f.albums.cc:1262 msgid "Clip Limit" msgstr "Limite dimensione" -#: f.albums.cc:1212 +#: f.albums.cc:1266 msgid "Music File" msgstr "File musicale" -#: f.albums.cc:1217 +#: f.albums.cc:1271 msgid "Full Screen" msgstr "Pieno schermo" -#: f.albums.cc:1218 +#: f.albums.cc:1272 msgid "Auto-replay" msgstr "Riparte automaticamente" -#: f.albums.cc:1219 +#: f.albums.cc:1273 msgid "KB functions" msgstr "Tasti" -#: f.albums.cc:1222 +#: f.albums.cc:1276 msgid "Customize:" msgstr "Personalizza:" -#: f.albums.cc:1223 +#: f.albums.cc:1277 msgid "transitions" msgstr "transizioni" -#: f.albums.cc:1224 +#: f.albums.cc:1278 msgid "image files" msgstr "immagini" -#: f.albums.cc:1229 f.albums.cc:1356 +#: f.albums.cc:1283 f.albums.cc:1410 #, c-format msgid "%d images" msgstr "%d immagini" -#: f.albums.cc:1251 f.albums.cc:1326 f.albums.cc:1422 f.albums.cc:1661 -#: f.albums.cc:1946 f.albums.cc:1963 f.albums.cc:2177 +#: f.albums.cc:1305 f.albums.cc:1380 f.albums.cc:1476 f.albums.cc:1715 +#: f.albums.cc:2000 f.albums.cc:2017 f.albums.cc:2231 msgid "invalid album" msgstr "album non valido" -#: f.albums.cc:1340 +#: f.albums.cc:1394 msgid "open album" msgstr "apri album" -#: f.albums.cc:1372 +#: f.albums.cc:1426 msgid "Select music file" msgstr "Seleziona file musicale" -#: f.albums.cc:1401 +#: f.albums.cc:1455 msgid "select random (if 2+ enabled)" msgstr "casuale (se più di 2)" -#: f.albums.cc:1426 +#: f.albums.cc:1480 msgid "Transition Preferences" msgstr "Preferenze di transizione" -#: f.albums.cc:1429 f.edit.cc:2008 +#: f.albums.cc:1483 f.edit.cc:2008 msgid "Settings File" msgstr "File di impostazioni" -#: f.albums.cc:1439 +#: f.albums.cc:1493 msgid "transition" msgstr "Effetto di transizione" -#: f.albums.cc:1440 +#: f.albums.cc:1494 msgid "enabled" msgstr "Attiva" -#: f.albums.cc:1441 +#: f.albums.cc:1495 msgid "slowdown" msgstr "Rallenta" -#: f.albums.cc:1442 +#: f.albums.cc:1496 msgid "preference" msgstr "Preferenza" -#: f.albums.cc:1517 f.albums.cc:1556 +#: f.albums.cc:1571 f.albums.cc:1610 msgid "invalid file" msgstr "File non valido" -#: f.albums.cc:1610 f.albums.cc:2162 +#: f.albums.cc:1664 f.albums.cc:2216 #, c-format msgid "" "file format error: \n" @@ -280,84 +280,84 @@ "formato file errato: \n" " %s" -#: f.albums.cc:1667 +#: f.albums.cc:1721 msgid "Image Preferences" msgstr "Preferenze d'immagine" -#: f.albums.cc:1671 f.edit.cc:1338 f.file.cc:1166 f.file.cc:1427 f.meta.cc:617 -#: f.meta.cc:1414 +#: f.albums.cc:1725 f.edit.cc:1338 f.file.cc:1091 f.file.cc:1352 f.meta.cc:617 +#: f.meta.cc:1412 msgid "Image File:" msgstr "File immagine:" -#: f.albums.cc:1675 +#: f.albums.cc:1729 msgid "Play tone when image shows" msgstr "Suona quando l'immagine appare" -#: f.albums.cc:1678 +#: f.albums.cc:1732 msgid "Show image caption" msgstr "Mostra titolo" -#: f.albums.cc:1683 +#: f.albums.cc:1737 msgid "Show image comments" msgstr "Mostra commenti" -#: f.albums.cc:1688 +#: f.albums.cc:1742 msgid "Wait before zoom" msgstr "Attendi prima d'ingrandire" -#: f.albums.cc:1693 +#: f.albums.cc:1747 msgid "Zoom type:" msgstr "Tipo di zoom:" -#: f.albums.cc:1694 +#: f.albums.cc:1748 msgid "none" msgstr "nessuno" -#: f.albums.cc:1695 +#: f.albums.cc:1749 msgid "zoom-in" msgstr "ingrandisci" -#: f.albums.cc:1696 +#: f.albums.cc:1750 msgid "zoom-out" msgstr "riduci" -#: f.albums.cc:1699 +#: f.albums.cc:1753 msgid "Zoom size (x)" msgstr "Ingrandimento" -#: f.albums.cc:1702 +#: f.albums.cc:1756 msgid "Steps" msgstr "N. passi" -#: f.albums.cc:1706 +#: f.albums.cc:1760 msgid "Zoom Center" msgstr "Centro per zoom" -#: f.albums.cc:1710 +#: f.albums.cc:1764 msgid "Wait after zoom" msgstr "Attendi dopo zoom" -#: f.albums.cc:1715 +#: f.albums.cc:1769 msgid "Transition to next image" msgstr "Transizione alla prossima immagine" -#: f.albums.cc:1718 f.albums.cc:1821 +#: f.albums.cc:1772 f.albums.cc:1875 msgid "next" msgstr "prossima" -#: f.albums.cc:1811 +#: f.albums.cc:1865 msgid "click on thumbnail to set zoom center" msgstr "Clicca sulla miniatura per impostare il centro dello zoom" -#: f.area.cc:81 +#: f.area.cc:82 msgid "Select Area for Edits" msgstr "Seleziona area per modifiche" -#: f.area.cc:82 f.edit.cc:5919 +#: f.area.cc:83 f.edit.cc:5919 msgid "Press F1 for help" msgstr "Premi F1 per l'aiuto" -#: f.area.cc:91 +#: f.area.cc:92 msgid "" "Select Area not supported \n" "by this edit function" @@ -365,35 +365,35 @@ "Questa funzione non supporta \n" "aree di selezione." -#: f.area.cc:121 +#: f.area.cc:122 msgid "select rectangle" msgstr "Sel. rettangolo" -#: f.area.cc:122 +#: f.area.cc:123 msgid "select ellipse" msgstr "Sel. ellisse" -#: f.area.cc:125 +#: f.area.cc:126 msgid "freehand draw" msgstr "Mano libera" -#: f.area.cc:126 +#: f.area.cc:127 msgid "follow edge" msgstr "Insegui contorno" -#: f.area.cc:127 +#: f.area.cc:128 msgid "draw/replace" msgstr "Disegna e ritocca" -#: f.area.cc:130 +#: f.area.cc:131 msgid "select area within mouse circle" msgstr "Seleziona l'area entro il circolo del mouse" -#: f.area.cc:133 +#: f.area.cc:134 msgid "select one matching color within mouse circle:" msgstr "Seleziona un colore corrispondente entro il circolo del mouse:" -#: f.area.cc:135 +#: f.area.cc:136 msgid "" "first select the checkbox, then \n" "shift+click on image to set the color" @@ -401,116 +401,152 @@ "Prima selezionare la casella di spunta, poi \n" "Maiusc+Clic nell'immagine per impostare il colore" -#: f.area.cc:139 +#: f.area.cc:140 msgid "select all matching colors within mouse circle" msgstr "Seleziona tutti i colori corrispondenti entro il circolo del mouse" -#: f.area.cc:143 f.edit.cc:5961 +#: f.area.cc:144 f.edit.cc:5961 msgid "mouse radius" -msgstr "Raggio del mouse:" +msgstr "Raggio del mouse" -#: f.area.cc:146 +#: f.area.cc:147 msgid "match level %" msgstr "Similarità %" -#: f.area.cc:151 +#: f.area.cc:152 msgid "search range" msgstr "Raggio di ricerca" -#: f.area.cc:155 +#: f.area.cc:156 msgid "Area Edge Blend Width" msgstr "Larghezza sfumatura dell'area" -#: f.area.cc:158 +#: f.area.cc:159 msgid "Edge Creep" msgstr "Ritocco lati (dentro/fuori)" -#: f.area.cc:163 +#: f.area.cc:164 msgid "Line Color:" msgstr "Colore linea:" -#: f.area.cc:183 f.area.cc:184 +#: f.area.cc:184 f.area.cc:185 msgid "area edits fade away within edge distance" msgstr "Le modifiche sfumano entro la distanza dai bordi" -#: f.area.cc:356 f.area.cc:539 +#: f.area.cc:357 f.area.cc:540 #, c-format msgid "exceed %d edits" msgstr "superate %d modifiche" -#: f.area.cc:1361 +#: f.area.cc:1358 f.area.cc:1668 msgid "" -"Click one time inside each enclosed area \n" -"(possible gaps in the outline will be found). \n" -"Press [Done] when finished. Press F1 for help." +"Click one time inside each enclosed area. \n" +"Possible gaps in the outline will be found. \n" +"Press F1 for help." msgstr "" -"Cliccare una volta dentro ogni area chiusa \n" -"(eventuali interruzioni nel contorno verranno rilevate). \n" -"Cliccare [Fatto] quando terminato. Usare F1 per l'aiuto." +"Cliccare una volta dentro ogni area chiusa. \n" +"Eventuali interruzioni nel contorno verranno rilevate. \n" +"Usare F1 per l'aiuto." -#: f.area.cc:1389 +#: f.area.cc:1385 msgid "finish area" msgstr "Finisci area" -#: f.area.cc:1397 -msgid "extend to corner:" -msgstr "estendi agli angoli:" - -#: f.area.cc:1438 -msgid "searching" -msgstr "in ricerca" +#: f.area.cc:1411 f.area.cc:1563 +#, c-format +msgid "found %d pixels" +msgstr "trovati %d pixel" + +#: f.area.cc:1693 +msgid "find outline gap" +msgstr "" + +#: f.area.cc:1775 +msgid "cannot find area outline" +msgstr "" -#: f.area.cc:1469 +#: f.area.cc:1846 msgid "outline has a gap" msgstr "il contorno è interrotto" -#: f.area.cc:1473 -msgid "success" -msgstr "Successo" +#: f.area.cc:1881 +msgid "Select Hairy Edge" +msgstr "" -#: f.area.cc:1618 f.area.cc:1645 -#, c-format -msgid "found %d pixels" -msgstr "trovati %d pixel" +#: f.area.cc:1882 +msgid "" +"Click on colors to match. \n" +"Drag along edge to select. \n" +"Adjust match level as needed. \n" +"Copy or Save area when done." +msgstr "" + +#: f.area.cc:1893 +msgid "select the area first" +msgstr "" -#: f.area.cc:1940 f.area.cc:1957 f.area.cc:1977 f.area.cc:2301 f.area.cc:2378 -#: f.area.cc:2484 +#: f.area.cc:1898 f.area.cc:2365 f.area.cc:2382 f.area.cc:2402 f.area.cc:2726 +#: f.area.cc:2815 msgid "the area is not finished" msgstr "L'area non è chiusa" -#: f.area.cc:2066 +#: f.area.cc:1944 +msgid "Mouse Radius" +msgstr "Raggio del Mouse" + +#: f.area.cc:1949 fotoxx.h:1148 +msgid "Match Level" +msgstr "Soglia d'intervento" + +#: f.area.cc:1950 +msgid "select" +msgstr "" + +#: f.area.cc:1951 +msgid "deselect" +msgstr "" + +#: f.area.cc:2491 msgid "Edge calculation in progress" msgstr "Ricalcolo bordo in corso" -#: f.area.cc:2075 +#: f.area.cc:2500 msgid "Area Edge Calc" msgstr "Calcolo area delimitata" -#: f.area.cc:2519 +#: f.area.cc:2801 f.area.cc:2850 f.widgets.cc:461 +msgid "Copy Area" +msgstr "Copia area" + +#: f.area.cc:2804 f.widgets.cc:464 +msgid "Save Area File" +msgstr "Salva file di area" + +#: f.area.cc:2856 msgid "save area as a PNG file" msgstr "salva area come file PNG" -#: f.area.cc:2551 +#: f.area.cc:2888 msgid "load area from a file" msgstr "carica area da un file" -#: f.area.cc:2594 +#: f.area.cc:2980 msgid "position with mouse click/drag" msgstr "posizione con clic o trascinamento" -#: f.area.cc:2634 +#: f.area.cc:3026 msgid "Paste Image" msgstr "Incolla immagine" -#: f.area.cc:2639 f.batch.cc:1360 f.batch.cc:1847 +#: f.area.cc:3031 f.batch.cc:1347 f.batch.cc:1654 msgid "resize" msgstr "ridimensiona" -#: f.batch.cc:126 f.widgets.cc:564 +#: f.batch.cc:126 f.widgets.cc:566 msgid "Batch Convert" msgstr "Conversione in massa" -#: f.batch.cc:133 f.file.cc:940 +#: f.batch.cc:133 f.file.cc:866 msgid "New Name" msgstr "Nuovo nome" @@ -534,7 +570,7 @@ msgid "New File Type" msgstr "Nuovo tipo di file" -#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4389 +#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4083 msgid "no change" msgstr "NON modificare" @@ -550,13 +586,13 @@ msgid "Copy Metadata" msgstr "Copia i metadati" -#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:466 -#: f.widgets.cc:737 +#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:468 +#: f.widgets.cc:739 msgid "Upright" msgstr "Raddrizza" -#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1369 f.batch.cc:1856 -#: f.repair.cc:125 f.widgets.cc:482 +#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1356 f.batch.cc:1663 +#: f.repair.cc:125 f.widgets.cc:484 msgid "Sharpen" msgstr "Contrasta" @@ -588,7 +624,7 @@ msgid "updating albums ..." msgstr "aggiornamento degli album..." -#: f.batch.cc:591 f.batch.cc:1642 f.batch.cc:2044 f.file.cc:1217 +#: f.batch.cc:591 f.batch.cc:1522 f.batch.cc:1851 f.file.cc:1142 msgid "Select directory" msgstr "Seleziona cartella" @@ -648,7 +684,7 @@ msgid "PROCEED?" msgstr "PROSEGUO?" -#: f.batch.cc:907 f.widgets.cc:565 +#: f.batch.cc:907 f.widgets.cc:567 msgid "Batch Upright" msgstr "Raddrizzare immagini in blocco" @@ -664,7 +700,7 @@ msgid "cannot select both options" msgstr "Non selezionare entrambe le opzioni" -#: f.batch.cc:1130 f.widgets.cc:566 +#: f.batch.cc:1130 f.widgets.cc:568 msgid "Batch Delete/Trash" msgstr "Elimina/cestina in massa" @@ -676,140 +712,100 @@ msgid "trash" msgstr "Cestina" -#: f.batch.cc:1302 -msgid "Batch Convert RAW Files (DCraw)" -msgstr "Convertire immagini RAW (DCraw) in blocco" - -#: f.batch.cc:1312 -msgid "DCraw not installed" -msgstr "Programma DCraw non installato" +#: f.batch.cc:1301 +msgid "Batch Convert RAW Files" +msgstr "Conversione in massa di file RAW" -#: f.batch.cc:1347 f.batch.cc:1834 +#: f.batch.cc:1334 f.batch.cc:1641 msgid "output location" msgstr "Cartella o directory di uscita" -#: f.batch.cc:1352 f.batch.cc:1839 +#: f.batch.cc:1339 f.batch.cc:1646 msgid "output file type" msgstr "Tipo file d'uscita" -#: f.batch.cc:1371 f.batch.cc:1858 +#: f.batch.cc:1358 f.batch.cc:1665 msgid "amount" msgstr "Quantità" -#: f.batch.cc:1374 f.batch.cc:1861 +#: f.batch.cc:1361 f.batch.cc:1668 msgid "threshold" msgstr "Soglia" -#: f.batch.cc:1383 -msgid "white balance" -msgstr "bilanciamento del bianco" - -#: f.batch.cc:1384 -msgid "interpolation" -msgstr "interpolazione" - -#: f.batch.cc:1385 -msgid "color space" -msgstr "spazio di colore" - -#: f.batch.cc:1386 -msgid "gamma curve" -msgstr "curva del gamma" - -#: f.batch.cc:1389 -msgid "camera" -msgstr "fotocamera" - -#: f.batch.cc:1390 -msgid "fixed" -msgstr "fissa" - -#: f.batch.cc:1391 -msgid "calculated" -msgstr "calcolata" - -#: f.batch.cc:1408 -msgid "default" -msgstr "Standard" - -#: f.batch.cc:1414 -msgid "defaults" -msgstr "Standard" - -#: f.batch.cc:1796 +#: f.batch.cc:1603 msgid "Batch Convert RAW Files (Raw Therapee)" msgstr "Conversione in massa di file RAW (Raw Therapee)" -#: f.batch.cc:1806 f.file.cc:426 +#: f.batch.cc:1613 f.file.cc:352 msgid "Raw Therapee not installed" msgstr "Programma Raw Therapee non installato" -#: f.batch.cc:2141 +#: f.batch.cc:1948 msgid "start" msgstr "Inizia" -#: f.batch.cc:2142 +#: f.batch.cc:1949 msgid "begin making a script file" msgstr "Inizia a comporre uno script" -#: f.batch.cc:2144 +#: f.batch.cc:1951 msgid "close" msgstr "Chiudi" -#: f.batch.cc:2145 +#: f.batch.cc:1952 msgid "finish making a script file" msgstr "Termina la composizione dello script" -#: f.batch.cc:2147 +#: f.batch.cc:1954 msgid "run" msgstr "Avvia" -#: f.batch.cc:2148 +#: f.batch.cc:1955 msgid "execute a script file" msgstr "Esegui uno script da file" -#: f.batch.cc:2202 +#: f.batch.cc:2009 msgid "script already started" msgstr "Script già in esecuzione" -#: f.batch.cc:2206 +#: f.batch.cc:2013 msgid "open new script file" msgstr "Apri un file script" -#: f.batch.cc:2238 +#: f.batch.cc:2045 msgid "script file error" msgstr "Errore nel file script" -#: f.batch.cc:2243 +#: f.batch.cc:2050 #, c-format msgid "%s added to script" msgstr "%s aggiunto allo script" -#: f.batch.cc:2256 +#: f.batch.cc:2063 msgid "no script file was started" msgstr "Nessuno script è stato avviato" -#: f.batch.cc:2264 +#: f.batch.cc:2071 msgid "script file closed" msgstr "File script chiuso" -#: f.batch.cc:2283 +#: f.batch.cc:2090 msgid "script file is not closed" msgstr "File di script non chiuso" -#: f.batch.cc:2287 +#: f.batch.cc:2094 msgid "select script file to run" msgstr "Selezionare il file script da eseguire" -#: f.batch.cc:2289 +#: f.batch.cc:2096 msgid "open script file" msgstr "Aprire un file di script" -#: f.batch.cc:2296 +#: f.batch.cc:2103 msgid "unknown script file" msgstr "File script sconosciuto" -#: f.batch.cc:2303 +#: f.batch.cc:2110 #, c-format msgid "" "script file: %s \n" @@ -818,11 +814,11 @@ "File script: %s\n" " %s" -#: f.batch.cc:2314 +#: f.batch.cc:2121 msgid "select image files to be processed" msgstr "Selezionare le immagini da processare" -#: f.batch.cc:2326 f.batch.cc:2375 +#: f.batch.cc:2133 f.batch.cc:2182 #, c-format msgid "" "open failure: %s \n" @@ -831,91 +827,87 @@ "Errore in apertura: %s \n" " %s" -#: f.batch.cc:2347 +#: f.batch.cc:2154 #, c-format msgid "unknown edit function: %s" msgstr "Funzione di edit sconosciuta: %s" -#: f.batch.cc:2356 +#: f.batch.cc:2163 #, c-format msgid "load widgets failed: %s" msgstr "Errore di caricamento widget: %s" -#: f.batch.cc:2385 +#: f.batch.cc:2192 #, c-format msgid "script file format error: %s" msgstr "Formato file script errato: %s" -#: f.batch.cc:2430 +#: f.batch.cc:2237 msgid "growisofs not installed" msgstr "" -#: f.batch.cc:2482 +#: f.batch.cc:2289 msgid "no DVD/BlueRay device found" msgstr "" -#: f.batch.cc:2505 f.widgets.cc:570 +#: f.batch.cc:2312 f.widgets.cc:572 msgid "Burn Images to DVD/BlueRay" msgstr "" -#: f.batch.cc:2510 +#: f.batch.cc:2317 msgid "Select device" msgstr "" -#: f.batch.cc:2635 f.widgets.cc:571 +#: f.batch.cc:2442 f.widgets.cc:573 msgid "Find Duplicate Images" msgstr "Trova immagini duplicate" -#: f.batch.cc:2637 f.tools.cc:1012 +#: f.batch.cc:2444 f.tools.cc:1017 msgid "Thumbnail size" msgstr "Dimensione miniatura" -#: f.batch.cc:2640 +#: f.batch.cc:2447 msgid "pixel difference" msgstr "Differenza di pixel" -#: f.batch.cc:2643 +#: f.batch.cc:2450 msgid "pixel count" msgstr "Conteggio pixel" -#: f.batch.cc:2646 +#: f.batch.cc:2453 msgid "Images:" msgstr "Immagini:" -#: f.batch.cc:2647 +#: f.batch.cc:2454 msgid "searching ..." msgstr "Ricerca in corso..." -#: f.batch.cc:2649 +#: f.batch.cc:2456 msgid "Duplicates:" msgstr "Duplicate:" -#: f.batch.cc:2667 +#: f.batch.cc:2474 #, c-format msgid "only %d image thumbnails found" msgstr "Trovate solo %d miniature" -#: f.batch.cc:2875 f.widgets.cc:377 +#: f.batch.cc:2682 f.widgets.cc:378 msgid "Create a file of selected image files" msgstr "" -#: f.batch.cc:2899 f.batch.cc:2969 +#: f.batch.cc:2706 f.batch.cc:2776 msgid "Output File" msgstr "" -#: f.batch.cc:2918 +#: f.batch.cc:2725 msgid "no input files selected" msgstr "" -#: f.batch.cc:2923 +#: f.batch.cc:2730 msgid "no output file selected" msgstr "" -#: f.batch.cc:2937 f.tools.cc:643 -msgid "COMPLETED" -msgstr "COMPLETATO" - -#: f.bend.cc:92 f.widgets.cc:505 +#: f.bend.cc:92 f.widgets.cc:507 msgid "Unbend" msgstr "Correggi deformazioni" @@ -947,7 +939,7 @@ "Trascina più volte se necessario.\n" "Quando terminato, seleziona un'altra zona o premi [Fatto]. " -#: f.bend.cc:756 f.widgets.cc:507 +#: f.bend.cc:756 f.widgets.cc:509 msgid "Warp area" msgstr "Deforma area" @@ -969,7 +961,7 @@ " Esegui diversi trascinamenti fino al completamento. \n" " Quando finito, premi [Fatto]." -#: f.bend.cc:1178 f.widgets.cc:508 +#: f.bend.cc:1178 f.widgets.cc:510 msgid "Warp curved" msgstr "Deforma a curva" @@ -977,7 +969,7 @@ msgid "warp span" msgstr "Dimensione deformazione: " -#: f.bend.cc:1492 f.widgets.cc:509 +#: f.bend.cc:1492 f.widgets.cc:511 msgid "Warp linear" msgstr "Deforma a linea" @@ -991,7 +983,7 @@ "Ripeti l'operazione se richiesto.\n" "Una volta finito, premi [Fatto]." -#: f.bend.cc:1823 f.widgets.cc:510 +#: f.bend.cc:1823 f.widgets.cc:512 msgid "Warp affine" msgstr "Deforma specularmente" @@ -1021,7 +1013,7 @@ msgid "bottom:" msgstr "Fondo:" -#: f.bend.cc:2614 f.widgets.cc:512 +#: f.bend.cc:2614 f.widgets.cc:514 msgid "Spherical Projection" msgstr "Proiezione sferica" @@ -1036,7 +1028,7 @@ " When finished, press [done]." msgstr "" -#: f.bend.cc:2850 f.widgets.cc:513 +#: f.bend.cc:2850 f.widgets.cc:515 msgid "Selective Rescale" msgstr "Scalatura selettiva" @@ -1073,7 +1065,7 @@ msgstr "Dipingi e deforma immagine" #: f.combine.cc:2998 f.combine.cc:3643 f.combine.cc:6252 f.effects.cc:4413 -#: f.widgets.cc:602 f.widgets.cc:626 f.widgets.cc:650 f.widgets.cc:664 +#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 msgid "Image" msgstr "Immagine" @@ -1149,7 +1141,7 @@ msgid "manual align" msgstr "Allineamento manuale" -#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:473 f.widgets.cc:736 +#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:475 f.widgets.cc:738 msgid "Resize" msgstr "Ridimensiona" @@ -1219,7 +1211,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Rotazione precisa: trascina il lato destro" -#: f.edit.cc:162 f.widgets.cc:465 f.widgets.cc:735 +#: f.edit.cc:162 f.widgets.cc:467 f.widgets.cc:737 msgid "Trim/Rotate" msgstr "Ritaglia/Ruota" @@ -1287,7 +1279,7 @@ msgid "rotation unknown" msgstr "Rotazione sconosciuta" -#: f.edit.cc:1957 f.widgets.cc:469 f.widgets.cc:740 +#: f.edit.cc:1957 f.widgets.cc:471 f.widgets.cc:742 msgid "Retouch Combo" msgstr "Funzioni ritocco" @@ -1299,7 +1291,7 @@ msgid "Brightness" msgstr "Luminosità" -#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1112 +#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1113 msgid "Contrast" msgstr "Contrasto" @@ -1331,7 +1323,7 @@ msgid "Bright" msgstr "Luminose" -#: f.edit.cc:2000 f.tools.cc:1767 +#: f.edit.cc:2000 f.tools.cc:1775 msgid "Brightness Distribution" msgstr "Distribuzione della luminosità" @@ -1403,7 +1395,7 @@ msgid "Deband Bright" msgstr "Escludi chiari" -#: f.edit.cc:3570 f.widgets.cc:472 f.widgets.cc:743 +#: f.edit.cc:3570 f.widgets.cc:474 f.widgets.cc:745 msgid "Tone Mapping" msgstr "Mappa tonalità" @@ -1435,7 +1427,7 @@ msgid "use previous settings" msgstr "Usa impostazioni esistenti" -#: f.edit.cc:4236 f.widgets.cc:474 +#: f.edit.cc:4236 f.widgets.cc:476 msgid "Flip" msgstr "Rifletti/specchia" @@ -1476,15 +1468,15 @@ msgid "text" msgstr "Testo" -#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2807 +#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2814 msgid "backing" msgstr "Sfondo" -#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2808 +#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2815 msgid "outline" msgstr "Contorno" -#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2809 +#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2816 msgid "shadow" msgstr "Ombra" @@ -1492,7 +1484,7 @@ msgid "save to current file" msgstr "Salve nel file corrente" -#: f.edit.cc:4466 f.file.cc:1835 +#: f.edit.cc:4466 f.file.cc:1706 msgid "save as new file version" msgstr "salva come nuova versione" @@ -1504,7 +1496,7 @@ "Salva nel file corrente \n" "apre il prossimo con lo stesso testo" -#: f.edit.cc:4628 f.mashup.cc:2566 f.tools.cc:1167 +#: f.edit.cc:4628 f.mashup.cc:2573 f.tools.cc:1172 msgid "select font" msgstr "Scegli il font" @@ -1524,15 +1516,15 @@ msgid "Write Line or Arrow on Image" msgstr "Metti linea o freccia sull'immagine" -#: f.edit.cc:5278 f.mashup.cc:2786 +#: f.edit.cc:5278 f.mashup.cc:2793 msgid "Line length" msgstr "Lunghezza linea" -#: f.edit.cc:5285 f.mashup.cc:2793 +#: f.edit.cc:5285 f.mashup.cc:2800 msgid "Arrow head" msgstr "Terminazione freccia" -#: f.edit.cc:5298 f.mashup.cc:2806 +#: f.edit.cc:5298 f.mashup.cc:2813 msgid "line" msgstr "Linea" @@ -1544,11 +1536,11 @@ "Fissa linea/freccia\n" "inizia un'altra" -#: f.edit.cc:5918 f.widgets.cc:477 +#: f.edit.cc:5918 f.widgets.cc:479 msgid "Paint Edits" msgstr "Pennella funzione" -#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.06.cc:3307 +#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.07.cc:3318 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -1556,7 +1548,7 @@ "L'area selezionata non può essere mantenuta.\n" "Continuare?" -#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2293 +#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2301 msgid "Edit function must be active" msgstr "Una funzione di edit deve essere attiva" @@ -1572,7 +1564,7 @@ msgid "reset area" msgstr "Azzera area" -#: f.edit.cc:6144 f.widgets.cc:478 +#: f.edit.cc:6144 f.widgets.cc:480 msgid "Leverage Edits" msgstr "Modula ritocco" @@ -1640,7 +1632,7 @@ msgid "Background" msgstr "Sfondo" -#: f.effects.cc:1214 f.widgets.cc:519 +#: f.effects.cc:1214 f.widgets.cc:521 msgid "Line Drawing" msgstr "Tracciamento linea" @@ -1648,7 +1640,7 @@ msgid "black/white" msgstr "Bianco e nero" -#: f.effects.cc:1505 f.widgets.cc:520 +#: f.effects.cc:1505 f.widgets.cc:522 msgid "Color Drawing" msgstr "Tracciamento colori" @@ -1656,7 +1648,7 @@ msgid "Bright Areas" msgstr "Aree luminose" -#: f.effects.cc:1766 f.widgets.cc:521 +#: f.effects.cc:1766 f.widgets.cc:523 msgid "Graduated Blur" msgstr "Sfumatura graduale" @@ -1720,7 +1712,7 @@ msgid "borders" msgstr "Contorni" -#: f.effects.cc:3259 f.widgets.cc:526 +#: f.effects.cc:3259 f.widgets.cc:528 msgid "Vignette" msgstr "Effetto vignetta" @@ -1748,7 +1740,7 @@ msgid "Calculate" msgstr "Calcola" -#: f.effects.cc:3848 f.widgets.cc:528 +#: f.effects.cc:3848 f.widgets.cc:530 msgid "Pattern" msgstr "Motivo" @@ -1772,7 +1764,7 @@ msgid "Tile" msgstr "Tessera" -#: f.effects.cc:4411 f.widgets.cc:523 +#: f.effects.cc:4411 f.widgets.cc:525 msgid "Tiles" msgstr "Tessere" @@ -1790,7 +1782,7 @@ msgid "only %d tile images found" msgstr "Trovate solo %d tessere" -#: f.effects.cc:4905 f.widgets.cc:530 +#: f.effects.cc:4905 f.widgets.cc:532 msgid "Custom Kernel" msgstr "Matrice di trasformazione" @@ -1806,11 +1798,11 @@ msgid "Data file" msgstr "File di dati" -#: f.effects.cc:4951 fotoxx-16.06.cc:3571 +#: f.effects.cc:4951 fotoxx-16.07.cc:3582 msgid "Load settings from file" msgstr "Carica impostazioni dal file" -#: f.effects.cc:5212 f.widgets.cc:531 +#: f.effects.cc:5212 f.widgets.cc:533 msgid "Make Waves" msgstr "Generare onde" @@ -1834,7 +1826,7 @@ msgid "Pull image using the mouse." msgstr "Tira l'immagine con il mouse" -#: f.effects.cc:5427 f.widgets.cc:532 +#: f.effects.cc:5427 f.widgets.cc:534 msgid "Directed Blur" msgstr "Sfumatura interattiva" @@ -1846,7 +1838,7 @@ msgid "intensity" msgstr "Intensità" -#: f.effects.cc:5638 f.widgets.cc:533 +#: f.effects.cc:5638 f.widgets.cc:535 msgid "Blur Background" msgstr "Sfuma lo sfondo" @@ -1866,7 +1858,7 @@ msgid "max. blur radius" msgstr "Raggio massimo" -#: f.file.cc:182 +#: f.file.cc:181 msgid "" "use EXIF photo date or \n" " file modification date" @@ -1874,83 +1866,75 @@ "Usa data EXIF o \n" " data del file" -#: f.file.cc:199 f.widgets.cc:608 +#: f.file.cc:198 f.widgets.cc:610 msgid "File" msgstr "File" -#: f.file.cc:355 -msgid "UFraw not installed" -msgstr "UFraw not installed" - -#: f.file.cc:371 f.widgets.cc:745 -msgid "Open RAW file (ufraw)" -msgstr "Apri file RAW (ufraw)" +#: f.file.cc:368 f.widgets.cc:747 +msgid "Open RAW file (Raw Therapee)" +msgstr "Apri file RAW (Raw Therapee)" -#: f.file.cc:376 f.file.cc:447 +#: f.file.cc:373 msgid "RAW type not registered in User Settings" msgstr "Tipo RAW non registrato in preferenze utente" -#: f.file.cc:442 f.widgets.cc:746 -msgid "Open RAW file (Raw Therapee)" -msgstr "Apri file RAW (Raw Therapee)" - -#: f.file.cc:534 f.widgets.cc:423 +#: f.file.cc:460 f.widgets.cc:424 msgid "Open Image File" msgstr "Apri immagine" -#: f.file.cc:553 +#: f.file.cc:479 msgid "unknown file type" msgstr "tipo di file sconosciuto" -#: f.file.cc:747 +#: f.file.cc:673 msgid "Create Blank Image" msgstr "Crea immagine vuota" -#: f.file.cc:749 +#: f.file.cc:675 msgid "file name" msgstr "Nome file" -#: f.file.cc:782 +#: f.file.cc:708 msgid "supply a file name" msgstr "fornire un nome di file" -#: f.file.cc:932 f.widgets.cc:428 +#: f.file.cc:858 f.widgets.cc:428 msgid "Rename Image File" msgstr "Rinomina immagine" -#: f.file.cc:939 +#: f.file.cc:865 msgid "Old Name" msgstr "Vecchio nome" -#: f.file.cc:949 +#: f.file.cc:875 msgid "previous name" msgstr "Nome precedente" -#: f.file.cc:950 +#: f.file.cc:876 msgid "add 1" msgstr "aggiungi 1" -#: f.file.cc:1129 +#: f.file.cc:1054 msgid "Copy or Move Image File" msgstr "Copia o sposta il file dell'immagine" -#: f.file.cc:1171 +#: f.file.cc:1096 msgid "New Location:" msgstr "Nuova posizione:" -#: f.file.cc:1176 +#: f.file.cc:1101 msgid "copy (duplicate file)" msgstr "Copia (duplica il file)" -#: f.file.cc:1178 +#: f.file.cc:1103 msgid "move (remove original)" msgstr "Sposta (cancella il file originale)" -#: f.file.cc:1257 +#: f.file.cc:1182 msgid "new location is not a directory" msgstr "la destinazione non è una cartella" -#: f.file.cc:1297 f.file.cc:1511 +#: f.file.cc:1222 f.file.cc:1431 #, c-format msgid "" "delete failed: \n" @@ -1959,77 +1943,63 @@ "errore in cancellazione: \n" " %s" -#: f.file.cc:1393 +#: f.file.cc:1318 msgid "Delete or Trash Image File" msgstr "Elimina o cestina il file dell'immagine" -#: f.file.cc:1460 -msgid "" -"GTK g_file_trash() function failed. \n" -"Desktop trash folder will be used." -msgstr "" -"La funzione GTK g_file_trash() è fallita. \n" -"Sarà usato il cestino del desktop." - -#: f.file.cc:1463 -#, c-format -msgid "Cannot create desktop trash folder: %s" -msgstr "Impossibile creare un cestino sul desktop: %s" +#: f.file.cc:1383 +msgid "GTK g_file_trash() function failed" +msgstr "La funzione GTK g_file_trash() è fallita" -#: f.file.cc:1483 +#: f.file.cc:1404 msgid "not a known image file" msgstr "Il file non contiene un'immagine riconosciuta" -#: f.file.cc:1489 +#: f.file.cc:1410 msgid "Delete read-only file?" msgstr "Eliminare il file di sola lettura?" -#: f.file.cc:1491 +#: f.file.cc:1412 msgid "Trash read-only file?" msgstr "Cestinare un file di sola lettura?" -#: f.file.cc:1564 -#, c-format -msgid "error: %s" -msgstr "errore: %s" - -#: f.file.cc:1589 +#: f.file.cc:1460 msgid "no more images" msgstr "fine delle immagini" -#: f.file.cc:1817 +#: f.file.cc:1688 msgid "Save Image File" msgstr "Salva file immagine" -#: f.file.cc:1827 +#: f.file.cc:1698 msgid "new version" msgstr "nuova versione" -#: f.file.cc:1828 +#: f.file.cc:1699 msgid "new file" msgstr "Nuovo file" -#: f.file.cc:1829 +#: f.file.cc:1700 msgid "replace file" msgstr "rimpiazza file" -#: f.file.cc:1836 f.file.cc:2255 +#: f.file.cc:1707 f.file.cc:2126 msgid "save as new file name or type" msgstr "salva come nuovo nome o diverso tipo" -#: f.file.cc:1838 +#: f.file.cc:1709 msgid "replace old file (OVERWRITE)" msgstr "rimpiazza il vecchio file (SOVRASCRIVE)" -#: f.file.cc:1877 f.file.cc:2020 +#: f.file.cc:1748 f.file.cc:1891 msgid "cannot save as RAW type" msgstr "impossibile salvare come tipo RAW" -#: f.file.cc:1973 +#: f.file.cc:1844 msgid "too many file versions: 99" msgstr "Troppe versioni del file: 99" -#: f.file.cc:2014 +#: f.file.cc:1885 msgid "" "Transparency map will be lost.\n" "save to PNG file to retain." @@ -2037,23 +2007,23 @@ "Le informazioni di trasparenza saranno perse.\n" "Salvare come PNG per mantenerle." -#: f.file.cc:2098 +#: f.file.cc:1969 msgid "save anyway" msgstr "Salva comunque" -#: f.file.cc:2164 +#: f.file.cc:2035 msgid "Unable to copy EXIF/IPTC data" msgstr "Non riesco a copiare i dati EXIF/IPTC" -#: f.file.cc:2273 f.file.cc:2276 +#: f.file.cc:2144 f.file.cc:2147 msgid "make current" msgstr "Rendi corrente" -#: f.file.cc:2274 +#: f.file.cc:2145 msgid "(new file becomes current file)" msgstr "(il nuovo file diventa quello corrente)" -#: f.file.cc:2387 +#: f.file.cc:2258 #, c-format msgid "" "Overwrite file? \n" @@ -2062,89 +2032,79 @@ "Sovrascrivere il file? \n" " %s" -#: f.file.cc:2478 -msgid "Start of gallery, next: preceding gallery." -msgstr "" - -#: f.file.cc:2479 -msgid "End of gallery, next: following gallery." -msgstr "" - -#: f.file.cc:2480 -msgid "" -"The next preceding gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." +#: f.file.cc:2351 +#, c-format +msgid "Start of gallery, preceding gallery: %s" msgstr "" -#: f.file.cc:2482 -msgid "" -"The next following gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." +#: f.file.cc:2352 +#, c-format +msgid "End of gallery, following gallery: %s" msgstr "" -#: f.file.cc:2556 f.widgets.cc:589 +#: f.file.cc:2446 f.widgets.cc:591 msgid "Quick Start" msgstr "Introduzione rapida" -#: f.file.cc:2559 f.widgets.cc:590 +#: f.file.cc:2449 f.widgets.cc:592 msgid "User Guide" msgstr "Guida utente" -#: f.file.cc:2562 f.widgets.cc:591 +#: f.file.cc:2452 f.widgets.cc:593 msgid "User Guide Changes" msgstr "Cronistoria della guida utente" -#: f.file.cc:2565 f.widgets.cc:593 +#: f.file.cc:2455 f.widgets.cc:595 msgid "README" msgstr "Read-me" -#: f.file.cc:2568 f.widgets.cc:592 +#: f.file.cc:2458 f.widgets.cc:594 msgid "Edit Functions Summary" msgstr "Sommario funzioni" -#: f.file.cc:2571 f.widgets.cc:594 +#: f.file.cc:2461 f.widgets.cc:596 msgid "Change Log" msgstr "Cronistoria delle modifiche" -#: f.file.cc:2574 f.widgets.cc:595 +#: f.file.cc:2464 f.widgets.cc:597 msgid "Log File" msgstr "Mostra file di log" -#: f.file.cc:2577 f.widgets.cc:596 +#: f.file.cc:2467 f.widgets.cc:598 msgid "Translations" msgstr "Come tradurre" -#: f.file.cc:2580 f.widgets.cc:597 +#: f.file.cc:2470 f.widgets.cc:599 msgid "Home Page" msgstr "Sito WEB" -#: f.file.cc:2583 f.widgets.cc:598 +#: f.file.cc:2473 f.widgets.cc:600 msgid "About" msgstr "Info" -#: f.file.cc:2587 f.widgets.cc:620 f.widgets.cc:644 fotoxx.h:1135 +#: f.file.cc:2477 f.widgets.cc:622 f.widgets.cc:646 fotoxx.h:1136 msgid "Help" msgstr "Aiuto" -#: f.file.cc:2742 f.file.cc:2812 +#: f.file.cc:2632 f.file.cc:2702 #, c-format msgid "file not found: %s" msgstr "file non trovato: %s" -#: f.file.cc:2748 f.file.cc:2818 +#: f.file.cc:2638 f.file.cc:2708 #, c-format msgid "file type not supported: %s" msgstr "tipo di file non supportato: %s" -#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:642 +#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:644 msgid "Scroll" msgstr "Scorri" -#: f.gallery.cc:940 f.widgets.cc:420 f.widgets.cc:632 +#: f.gallery.cc:940 f.widgets.cc:421 f.widgets.cc:634 msgid "Sync Gallery" msgstr "Sincronizza galleria" -#: f.gallery.cc:950 f.repair.cc:6658 f.repair.cc:6663 fotoxx.h:1157 +#: f.gallery.cc:950 f.repair.cc:6352 f.repair.cc:6357 fotoxx.h:1158 msgid "Open" msgstr "Apri" @@ -2156,16 +2116,16 @@ msgid "GoTo" msgstr "Vai a..." -#: f.gallery.cc:965 f.widgets.cc:637 +#: f.gallery.cc:965 f.widgets.cc:639 msgid "Sort" msgstr "Riordina" #: f.gallery.cc:971 f.gallery.cc:1540 f.gallery.cc:1541 f.gallery.cc:1543 -#: f.widgets.cc:635 +#: f.widgets.cc:637 msgid "Zoom+" msgstr "Zoom+" -#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:636 +#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:638 msgid "Zoom-" msgstr "Zoom-" @@ -2177,19 +2137,19 @@ msgid "Row↓" msgstr "Riga↓" -#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:640 +#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:642 msgid "Page↑" msgstr "Pagina↑" -#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:641 +#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:643 msgid "Page↓" msgstr "Pagina↓" -#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:638 +#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:640 msgid "First" msgstr "Prima" -#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:639 +#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:641 msgid "Last" msgstr "Ultima" @@ -2213,7 +2173,7 @@ msgid "Choose album" msgstr "Scegliere album" -#: f.gallery.cc:1288 f.tools.cc:986 +#: f.gallery.cc:1288 f.tools.cc:991 msgid "Gallery Sort" msgstr "Riordina galleria" @@ -2237,29 +2197,29 @@ msgid "descending" msgstr "discendente" -#: f.gallery.cc:2373 fotoxx.h:1182 +#: f.gallery.cc:2315 fotoxx.h:1182 msgid "Select Files" msgstr "Seleziona i file" -#: f.gallery.cc:2838 +#: f.gallery.cc:2780 msgid "Click list position. Click thumbnail to add." msgstr "" "Clicca la lista per indicare la posizione; clicca le miniature per " "aggiungere." -#: f.gallery.cc:2864 f.gallery.cc:3112 +#: f.gallery.cc:2806 f.gallery.cc:3054 msgid "Edit Bookmarks" msgstr "Gestisci segnalibri" -#: f.gallery.cc:3039 +#: f.gallery.cc:2981 msgid "unable to save bookmarks file" msgstr "Impossibile salvare i segnalibri" -#: f.gallery.cc:3112 +#: f.gallery.cc:3054 msgid "Go To Bookmark" msgstr "Va al segnalibro" -#: f.gallery.cc:3169 f.meta.cc:3528 f.repair.cc:8279 +#: f.gallery.cc:3111 f.meta.cc:3526 f.repair.cc:7973 msgid "file not found" msgstr "File non trovato" @@ -2453,7 +2413,7 @@ msgid "Hard" msgstr "Forte" -#: f.mashup.cc:1313 f.repair.cc:6252 +#: f.mashup.cc:1313 f.repair.cc:5946 msgid "Blend" msgstr "Mescola" @@ -2469,7 +2429,7 @@ msgid "Gradual" msgstr "Graduale" -#: f.mashup.cc:1589 fotoxx.h:1161 +#: f.mashup.cc:1589 fotoxx.h:1162 msgid "Power" msgstr "Forza" @@ -2498,37 +2458,37 @@ msgid "add entered text to layout" msgstr "Aggiunge testo alla composizione" -#: f.mashup.cc:2627 +#: f.mashup.cc:2634 msgid "click position to add text" msgstr "Clicca la posizione del testo" -#: f.mashup.cc:2633 +#: f.mashup.cc:2640 #, c-format msgid "exceeded %d text entries" msgstr "troppi testi (massimo %d)" -#: f.mashup.cc:2756 +#: f.mashup.cc:2763 msgid "Set line properties, [Add] to layout, edit." msgstr "Imposta opzioni linea, [Aggiungi], modifica" -#: f.mashup.cc:2780 +#: f.mashup.cc:2787 msgid "Edit Line/Arrow" msgstr "Modifica linea/freccia" -#: f.mashup.cc:2835 +#: f.mashup.cc:2842 msgid "add line/arrow to layout" msgstr "Aggiunge linea/freccia alla composizione" -#: f.mashup.cc:2928 +#: f.mashup.cc:2935 msgid "click position to add line" msgstr "Clicca la posizione della linea" -#: f.mashup.cc:2934 +#: f.mashup.cc:2941 #, c-format msgid "exceeded %d line entries" msgstr "Immesse più di %d linee" -#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:723 +#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:725 msgid "View Metadata" msgstr "Mostra i metadati" @@ -2536,7 +2496,7 @@ msgid "Geocoding service by MapQuest" msgstr "" -#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:724 +#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:726 msgid "Edit Metadata" msgstr "Modifica metadati (normale)" @@ -2564,11 +2524,11 @@ msgid "Comments" msgstr "Commenti" -#: f.meta.cc:659 f.meta.cc:3618 -msgid "city" -msgstr "Città" +#: f.meta.cc:659 f.meta.cc:3616 +msgid "location" +msgstr "luogo" -#: f.meta.cc:662 f.meta.cc:3621 +#: f.meta.cc:662 f.meta.cc:3619 msgid "country" msgstr "Nazione" @@ -2584,11 +2544,11 @@ msgid "Enter New Tag" msgstr "Immetti nuova etichetta" -#: f.meta.cc:703 f.meta.cc:5459 +#: f.meta.cc:703 f.meta.cc:5446 msgid "Matching Tags" msgstr "Etichette corrispondenti" -#: f.meta.cc:712 f.meta.cc:1708 f.meta.cc:5466 +#: f.meta.cc:712 f.meta.cc:1706 f.meta.cc:5453 msgid "Defined Tags Category" msgstr "Categorie conosciute" @@ -2604,56 +2564,56 @@ msgid "create tag categories and tags" msgstr "Crea etichette e relative categorie" -#: f.meta.cc:936 f.meta.cc:3778 -msgid "city not found" -msgstr "Città non trovata" +#: f.meta.cc:936 f.meta.cc:3776 +msgid "location not found" +msgstr "luogo non trovata" -#: f.meta.cc:1214 f.meta.cc:3836 f.meta.cc:4352 +#: f.meta.cc:1212 f.meta.cc:3834 f.meta.cc:4337 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "Latitudine/Longitudine errati: %s %s" -#: f.meta.cc:1248 fotoxx.h:1145 +#: f.meta.cc:1246 fotoxx.h:1146 msgid "Manage Tags" msgstr "Gestione etichette" -#: f.meta.cc:1248 +#: f.meta.cc:1246 msgid "orphan tags" msgstr "Etichette orfane" -#: f.meta.cc:1252 +#: f.meta.cc:1250 msgid "category" msgstr "Categoria" -#: f.meta.cc:1255 +#: f.meta.cc:1253 msgid "tag" msgstr "Etichetta" -#: f.meta.cc:1262 +#: f.meta.cc:1260 msgid "Defined Tags:" msgstr "Etichette definite:" -#: f.meta.cc:1404 f.widgets.cc:441 f.widgets.cc:725 +#: f.meta.cc:1402 f.widgets.cc:441 f.widgets.cc:727 msgid "Edit Any Metadata" msgstr "Modifica metadati (avanzato)" -#: f.meta.cc:1404 f.meta.cc:2148 +#: f.meta.cc:1402 f.meta.cc:2146 msgid "Full List" msgstr "Lista completa" -#: f.meta.cc:1409 f.meta.cc:2153 +#: f.meta.cc:1407 f.meta.cc:2151 msgid "click to select" msgstr "" -#: f.meta.cc:1418 f.meta.cc:2164 +#: f.meta.cc:1416 f.meta.cc:2162 msgid "key name" msgstr "Nome chiave" -#: f.meta.cc:1420 f.meta.cc:2165 +#: f.meta.cc:1418 f.meta.cc:2163 msgid "key value" msgstr "Valore chiave" -#: f.meta.cc:1506 f.meta.cc:2308 +#: f.meta.cc:1504 f.meta.cc:2306 msgid "" "The command: $ man Image::ExifTool::TagNames \n" "will show over 15000 \"standard\" tag names" @@ -2661,31 +2621,31 @@ "Il comando: $ man Image::ExifTool::TagNames \n" "mostrerà oltre 15.000 nomi di etichette \"standard\"" -#: f.meta.cc:1579 f.widgets.cc:442 +#: f.meta.cc:1577 f.widgets.cc:442 msgid "Delete Metadata" msgstr "Elimina metadati" -#: f.meta.cc:1581 fotoxx.h:1095 +#: f.meta.cc:1579 fotoxx.h:1095 msgid "All" msgstr "Tutto" -#: f.meta.cc:1582 +#: f.meta.cc:1580 msgid "One Key:" msgstr "Una chiave:" -#: f.meta.cc:1685 f.widgets.cc:443 f.widgets.cc:574 +#: f.meta.cc:1683 f.widgets.cc:443 f.widgets.cc:576 msgid "Batch Add/Remove Tags" msgstr "Aggiungi/elimina etichette in massa" -#: f.meta.cc:1696 +#: f.meta.cc:1694 msgid "tags to add" msgstr "Etichette da aggiungere" -#: f.meta.cc:1697 +#: f.meta.cc:1695 msgid "tags to remove" msgstr "Etichette da rimuovere" -#: f.meta.cc:1782 +#: f.meta.cc:1780 #, c-format msgid "" "%s \n" @@ -2694,15 +2654,15 @@ "%s \n" " troppe etichette" -#: f.meta.cc:1897 +#: f.meta.cc:1895 msgid "specify files and tags" msgstr "specificare file ed etichette" -#: f.meta.cc:1957 +#: f.meta.cc:1955 msgid "tag names file" msgstr "File di nomi di etichette" -#: f.meta.cc:2031 +#: f.meta.cc:2029 #, c-format msgid "" "%d tags to rename \n" @@ -2713,43 +2673,43 @@ "in %d immagini. \n" "Procedere?" -#: f.meta.cc:2148 +#: f.meta.cc:2146 msgid "Batch Change Metadata" msgstr "Cambio metadati in massa" -#: f.meta.cc:2222 +#: f.meta.cc:2220 msgid "enter key names" msgstr "Immetti i nomi delle etichette" -#: f.meta.cc:2228 f.meta.cc:2422 fotoxx.h:1154 +#: f.meta.cc:2226 f.meta.cc:2420 fotoxx.h:1155 msgid "no files selected" msgstr "Nessun file selezionato" -#: f.meta.cc:2407 f.widgets.cc:446 f.widgets.cc:577 +#: f.meta.cc:2405 f.widgets.cc:446 f.widgets.cc:579 msgid "Batch Report Metadata" msgstr "Prospetto metadati multipli" -#: f.meta.cc:2580 +#: f.meta.cc:2578 msgid "date format is YYYY-MM-DD" msgstr "Il formato della data è AAAA-MM-GG" -#: f.meta.cc:2584 +#: f.meta.cc:2582 msgid "date is invalid" msgstr "la data non è valida" -#: f.meta.cc:2618 +#: f.meta.cc:2616 msgid "time format is HH:MM [:SS]" msgstr "Il formato dell'ora è HH:MM [:SS]" -#: f.meta.cc:2622 +#: f.meta.cc:2620 msgid "time is invalid" msgstr "L'ora non è valida" -#: f.meta.cc:3587 f.widgets.cc:447 f.widgets.cc:578 +#: f.meta.cc:3585 f.widgets.cc:447 f.widgets.cc:580 msgid "Batch Add Geotags" msgstr "Aggiunta Geotags in blocco" -#: f.meta.cc:3824 +#: f.meta.cc:3822 msgid "" "data is incomplete \n" " proceed?" @@ -2757,27 +2717,27 @@ "I dati sono incompleti \n" " proseguire?" -#: f.meta.cc:3874 -msgid "choose city" -msgstr "Scegli città" +#: f.meta.cc:3872 +msgid "choose location" +msgstr "Scegli luogo" -#: f.meta.cc:3961 +#: f.meta.cc:3959 msgid "not found" msgstr "non trovata" -#: f.meta.cc:3962 -msgid "city and country required" -msgstr "Indicare città e nazione" +#: f.meta.cc:3960 +msgid "location and country required" +msgstr "Indicare luogo e nazione" -#: f.meta.cc:4465 f.meta.cc:5003 f.meta.cc:5347 f.meta.cc:6504 +#: f.meta.cc:4450 f.meta.cc:4988 f.meta.cc:5334 f.meta.cc:6559 msgid "-noindex in use, disabled" msgstr "opzione '-noindex' in uso, funzione disabilitata" -#: f.meta.cc:4483 +#: f.meta.cc:4468 msgid "choose map file" msgstr "Scegliere file di mappa" -#: f.meta.cc:4624 +#: f.meta.cc:4609 msgid "" "fotoxx-maps package not installed \n" "(see http://kornelix.net/packages and /tarballs)" @@ -2785,12 +2745,12 @@ "Pacchetto fotoxx-maps non installato \n" "(http://kornelix.net/packages e /tarballs)" -#: f.meta.cc:4629 +#: f.meta.cc:4614 #, c-format msgid "map file %s is missing" msgstr "File di mappa %s mancante" -#: f.meta.cc:4633 +#: f.meta.cc:4618 #, c-format msgid "" "map latitude/longitude data unreasonable \n" @@ -2799,108 +2759,108 @@ "Latitudine/longitudine della mappa non validi:\n" " %.3f %.3f %.3f %.3f" -#: f.meta.cc:4662 +#: f.meta.cc:4647 msgid "search range (km)" msgstr "distanza (km)" -#: f.meta.cc:4940 f.meta.cc:5282 +#: f.meta.cc:4925 f.meta.cc:5267 msgid "No matching images found" msgstr "Nessuna immagine soddisfa la ricerca" -#: f.meta.cc:5118 +#: f.meta.cc:5103 msgid "image file has no latitude/longitude" msgstr "Il file dell'immagine non contiene latitudine/longitudine" -#: f.meta.cc:5384 +#: f.meta.cc:5371 msgid "Search Image Metadata" msgstr "Cerca nei metadati dell'immagine" -#: f.meta.cc:5388 +#: f.meta.cc:5375 msgid "images to search:" msgstr "immagini da cercare:" -#: f.meta.cc:5389 +#: f.meta.cc:5376 msgid "all" msgstr "tutte" -#: f.meta.cc:5390 +#: f.meta.cc:5377 msgid "current set only" msgstr "insieme corrente" -#: f.meta.cc:5393 +#: f.meta.cc:5380 msgid "matching images:" msgstr "immagini corrispondenti:" -#: f.meta.cc:5394 +#: f.meta.cc:5381 msgid "new set" msgstr "nuovo insieme" -#: f.meta.cc:5395 +#: f.meta.cc:5382 msgid "add to set" msgstr "aggiungi all'insieme" -#: f.meta.cc:5396 +#: f.meta.cc:5383 msgid "remove" msgstr "rimuovi" -#: f.meta.cc:5399 +#: f.meta.cc:5386 msgid "report type:" msgstr "Tipo di risultato:" -#: f.meta.cc:5400 +#: f.meta.cc:5387 msgid "gallery" msgstr "galleria" -#: f.meta.cc:5407 +#: f.meta.cc:5394 msgid "date range" msgstr "Intervallo date: " -#: f.meta.cc:5408 +#: f.meta.cc:5395 msgid "stars range" msgstr "Voto da/a:" -#: f.meta.cc:5409 +#: f.meta.cc:5396 msgid "search tags" msgstr "Cerca etichette" -#: f.meta.cc:5410 +#: f.meta.cc:5397 msgid "search text" msgstr "Cerca testo" -#: f.meta.cc:5411 +#: f.meta.cc:5398 msgid "search files" msgstr "Cerca nei file" -#: f.meta.cc:5416 +#: f.meta.cc:5403 msgid "(yyyymmdd)" msgstr "(aaaammgg)" -#: f.meta.cc:5421 +#: f.meta.cc:5408 msgid "last version only" msgstr "Solo ultime versioni" -#: f.meta.cc:5423 +#: f.meta.cc:5410 msgid "all/any" msgstr "Tutte/Qualsiasi" -#: f.meta.cc:5442 +#: f.meta.cc:5429 msgid "search locations" msgstr "" -#: f.meta.cc:5448 +#: f.meta.cc:5435 msgid "search other metadata" msgstr "" -#: f.meta.cc:5455 +#: f.meta.cc:5442 msgid "Enter Search Tag" msgstr "Immetti etichette di ricerca" -#: f.meta.cc:5737 +#: f.meta.cc:5724 #, c-format msgid "not a defined tag: %s" msgstr "Etichetta sconosciuta: %s" -#: f.meta.cc:5768 +#: f.meta.cc:5755 msgid "" "to remove images from current set, \n" "search current set" @@ -2908,7 +2868,7 @@ "per rimuovere immagini dall'insieme corrente, \n" "cercare nell'insieme corrente" -#: f.meta.cc:5775 +#: f.meta.cc:5762 msgid "" "to add images to current set, \n" "search all images" @@ -2916,7 +2876,7 @@ "per aggiungere immagini all'insieme corrente, \n" "cercare in tutte le immagini" -#: f.meta.cc:5820 +#: f.meta.cc:5807 #, c-format msgid "" "search dates not reasonable \n" @@ -2925,20 +2885,20 @@ "Date di ricerca non ragionevoli \n" " %s %s" -#: f.meta.cc:5838 +#: f.meta.cc:5825 msgid "stars range not reasonable" msgstr "punteggio (stelle) non ammissibile" -#: f.meta.cc:6082 +#: f.meta.cc:6069 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "Immagini aggiunte: %d; tolte: %d; totale corrente: %d" -#: f.meta.cc:6085 +#: f.meta.cc:6072 msgid "no changes made" msgstr "nessun cambiamento fatto" -#: f.meta.cc:6237 +#: f.meta.cc:6224 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2946,47 +2906,52 @@ "Questi elementi sono sempre mostrati: \n" "data, stelle, etichette, titolo, commenti" -#: f.meta.cc:6261 +#: f.meta.cc:6249 msgid "Additional Items for Report" msgstr "Informazioni addizionali da riportare" -#: f.meta.cc:6267 +#: f.meta.cc:6256 msgid "Keyword" msgstr "parola chiave" -#: f.meta.cc:6274 +#: f.meta.cc:6270 msgid "Match Criteria" msgstr "criterio di corrispondenza" -#: f.meta.cc:6519 +#: f.meta.cc:6366 +#, c-format +msgid "bad number: %s" +msgstr "" + +#: f.meta.cc:6574 msgid "Report Geotag Groups" msgstr "Visualizza gruppi Geotags" -#: f.meta.cc:6520 +#: f.meta.cc:6575 msgid "Group by country" msgstr "Raggruppa per nazione" -#: f.meta.cc:6521 -msgid "Group by country/city" -msgstr "Raggruppa per nazione/città" - -#: f.meta.cc:6522 -msgid "Group by country/city/date" -msgstr "Raggruppa per nazione/città/data" +#: f.meta.cc:6576 +msgid "Group by country/location" +msgstr "Raggruppa per nazione/luogo" + +#: f.meta.cc:6577 +msgid "Group by country/location/date" +msgstr "Raggruppa per nazione/luogo/data" -#: f.meta.cc:6525 +#: f.meta.cc:6580 msgid "Combine within" msgstr "Combina entro" -#: f.meta.cc:6527 +#: f.meta.cc:6582 msgid "days" msgstr "giorni" -#: f.meta.cc:6643 +#: f.meta.cc:6702 msgid "geotag groups" msgstr "Gruppi geotag" -#: f.meta.cc:7241 +#: f.meta.cc:7316 msgid "image index is missing" msgstr "Indice immagini mancante" @@ -3006,39 +2971,35 @@ msgid "Measure" msgstr "Misura" -#: f.repair.cc:1237 +#: f.repair.cc:1235 msgid "Noise Reduction" msgstr "Riduzione disturbo" -#: f.repair.cc:1258 -msgid "Flatten 1" -msgstr "Appiattimento 1" - -#: f.repair.cc:1259 -msgid "Flatten 2" -msgstr "Appiattimento 2" +#: f.repair.cc:1254 fotoxx.h:1131 +msgid "Flatten" +msgstr "Quantità" -#: f.repair.cc:1260 +#: f.repair.cc:1255 msgid "Median" msgstr "Filtro mediano" -#: f.repair.cc:1280 +#: f.repair.cc:1270 msgid "dark areas" msgstr "zone scure" -#: f.repair.cc:1282 +#: f.repair.cc:1272 msgid "all areas" msgstr "tutte le zone" -#: f.repair.cc:2174 +#: f.repair.cc:1868 msgid "Measure Noise" msgstr "Misura disturbo" -#: f.repair.cc:2175 +#: f.repair.cc:1869 msgid "Click on a monotone image area." msgstr "Cliccare una zona omogenea" -#: f.repair.cc:2338 +#: f.repair.cc:2032 msgid "" "1. Drag mouse to select. \n" "2. Erase. 3. Repeat. " @@ -3046,23 +3007,23 @@ "1. Trascina per selezionare. \n" "2. Cancella. 3. Ripeti. " -#: f.repair.cc:2360 f.widgets.cc:485 +#: f.repair.cc:2054 f.widgets.cc:487 msgid "Smart Erase" msgstr "Cancellazione intelligente" -#: f.repair.cc:2365 fotoxx.h:1165 +#: f.repair.cc:2059 fotoxx.h:1166 msgid "Radius" msgstr "Raggio" -#: f.repair.cc:2367 f.widgets.cc:483 +#: f.repair.cc:2061 f.widgets.cc:485 msgid "Blur" msgstr "Sfuoca" -#: f.repair.cc:2370 +#: f.repair.cc:2064 msgid "New Area" msgstr "Nuova area" -#: f.repair.cc:2719 +#: f.repair.cc:2413 msgid "" "Method 1:\n" " Left-click on red-eye to darken.\n" @@ -3080,11 +3041,11 @@ "Per annullare:\n" " - Clicca col pulsante destro sull'occhio rosso." -#: f.repair.cc:2735 +#: f.repair.cc:2429 msgid "Red Eye Reduction" msgstr "Riduzione occhi rossi" -#: f.repair.cc:3200 +#: f.repair.cc:2894 msgid "" "shift + left click: pick color or image position \n" "left click or drag: paint color or copy image \n" @@ -3094,39 +3055,39 @@ "Clic o trascina sinistro: dipinge o copia l'immagine \n" "Clic o trascina destro: rimuove colore o immagine" -#: f.repair.cc:3233 f.widgets.cc:487 +#: f.repair.cc:2927 f.widgets.cc:489 msgid "Paint/Clone" msgstr "Dipingi pixel" -#: f.repair.cc:3237 +#: f.repair.cc:2931 msgid "paint color" msgstr "Colore pennello" -#: f.repair.cc:3240 +#: f.repair.cc:2934 msgid "copy from image" msgstr "Copia dall'immagine" -#: f.repair.cc:3247 f.repair.cc:3837 +#: f.repair.cc:2941 f.repair.cc:3531 msgid "paintbrush radius" msgstr "Raggio del pennello:" -#: f.repair.cc:3248 +#: f.repair.cc:2942 msgid "transparency center" msgstr "Trasparenza al centro:" -#: f.repair.cc:3249 +#: f.repair.cc:2943 msgid "transparency edge" msgstr "Trasparenza al bordo:" -#: f.repair.cc:3256 f.repair.cc:3844 +#: f.repair.cc:2950 f.repair.cc:3538 msgid "gradual paint" msgstr "pittura graduale" -#: f.repair.cc:3257 +#: f.repair.cc:2951 msgid "paint over transparent areas" msgstr "" -#: f.repair.cc:3797 +#: f.repair.cc:3491 msgid "" "left drag: add transparency \n" "right drag: add opacity" @@ -3134,224 +3095,224 @@ "trascina con sinistro: aggiunge trasparenza \n" "trascina con destro: aggiunge opacità" -#: f.repair.cc:3829 f.widgets.cc:488 +#: f.repair.cc:3523 f.widgets.cc:490 msgid "Paint Transparency" msgstr "Dipingi trasparenza" -#: f.repair.cc:3838 +#: f.repair.cc:3532 msgid "strength center" msgstr "Rafforza il centro" -#: f.repair.cc:3839 +#: f.repair.cc:3533 msgid "strength edge" msgstr "Rafforza lati" -#: f.repair.cc:4094 f.widgets.cc:489 +#: f.repair.cc:3788 f.widgets.cc:491 msgid "Add Transparency" msgstr "Aggiungi trasparenza" -#: f.repair.cc:4098 +#: f.repair.cc:3792 msgid "Match Brightness" msgstr "Regolato dalla luminosità" -#: f.repair.cc:4103 +#: f.repair.cc:3797 msgid "Match Color" msgstr "Regolato dal colore" -#: f.repair.cc:4105 +#: f.repair.cc:3799 msgid "click on image to select color" msgstr "Cliccare nell'immagine per scegliere il colore" -#: f.repair.cc:4108 f.repair.cc:5318 +#: f.repair.cc:3802 f.repair.cc:5012 msgid "Match using:" msgstr "Metodo di contronto:" -#: f.repair.cc:4114 f.repair.cc:5324 +#: f.repair.cc:3808 f.repair.cc:5018 msgid "Match Level:" msgstr "Corrispondenza:" -#: f.repair.cc:4121 +#: f.repair.cc:3815 msgid "Invert Match" msgstr "Inverti la soglia" -#: f.repair.cc:4124 fotoxx.h:1190 +#: f.repair.cc:3818 fotoxx.h:1190 msgid "Transparency" msgstr "Trasparenza:" -#: f.repair.cc:4386 f.widgets.cc:490 +#: f.repair.cc:4080 f.widgets.cc:492 msgid "Color Mode" msgstr "Modo di colore" -#: f.repair.cc:4390 +#: f.repair.cc:4084 msgid "black/white positive" msgstr "Bianco e nero, positivo" -#: f.repair.cc:4391 +#: f.repair.cc:4085 msgid "black/white negative" msgstr "Bianco e nero, negativo" -#: f.repair.cc:4392 +#: f.repair.cc:4086 msgid "color positive" msgstr "A colori, positivo" -#: f.repair.cc:4393 +#: f.repair.cc:4087 msgid "color negative" msgstr "A colori, negativo" -#: f.repair.cc:4394 +#: f.repair.cc:4088 msgid "sepia" msgstr "Seppia" -#: f.repair.cc:4574 f.widgets.cc:491 +#: f.repair.cc:4268 f.widgets.cc:493 msgid "Shift Colors" msgstr "Modula componenti" -#: f.repair.cc:4810 f.widgets.cc:492 +#: f.repair.cc:4504 f.widgets.cc:494 msgid "Color Saturation" msgstr "Saturazione del colore" -#: f.repair.cc:4998 +#: f.repair.cc:4692 msgid "+Brightness" msgstr "+Luminosità" -#: f.repair.cc:4999 +#: f.repair.cc:4693 msgid "+Red -Cyan" msgstr "+Rosso -Ciano" -#: f.repair.cc:5000 +#: f.repair.cc:4694 msgid "+Green -Magenta" msgstr "+Verde -Magenta" -#: f.repair.cc:5001 +#: f.repair.cc:4695 msgid "+Blue -Yellow" msgstr "+Blu -Giallo" -#: f.repair.cc:5007 fotoxx.h:1167 +#: f.repair.cc:4701 fotoxx.h:1168 msgid "Red" msgstr "Rosso" -#: f.repair.cc:5008 fotoxx.h:1132 +#: f.repair.cc:4702 fotoxx.h:1133 msgid "Green" msgstr "Verde" -#: f.repair.cc:5009 fotoxx.h:1102 +#: f.repair.cc:4703 fotoxx.h:1102 msgid "Blue" msgstr "Blu" -#: f.repair.cc:5313 +#: f.repair.cc:5007 msgid "Input color to match and adjust:" msgstr "Scegliere il colore da confrontare e regolare:" -#: f.repair.cc:5315 +#: f.repair.cc:5009 msgid "shift+click on image to select color" msgstr "Maiusc+clic sull'immagine per selezionare il colore" -#: f.repair.cc:5319 +#: f.repair.cc:5013 msgid "Hue" msgstr "" -#: f.repair.cc:5320 f.repair.cc:5352 +#: f.repair.cc:5014 f.repair.cc:5046 msgid "Saturation" msgstr "Saturazione" -#: f.repair.cc:5321 f.repair.cc:5353 +#: f.repair.cc:5015 f.repair.cc:5047 msgid "Lightness" msgstr "Lucentezza" -#: f.repair.cc:5331 +#: f.repair.cc:5025 msgid "Output Color" msgstr "Colore d'uscita" -#: f.repair.cc:5351 +#: f.repair.cc:5045 msgid "Color Hue" msgstr "Tonalità colore" -#: f.repair.cc:5354 +#: f.repair.cc:5048 msgid "Adjustment" msgstr "Regolazione" -#: f.repair.cc:5839 +#: f.repair.cc:5533 msgid "Ramp brightness across image" msgstr "Rampe di luce" -#: f.repair.cc:6163 f.tools.cc:2184 +#: f.repair.cc:5857 f.tools.cc:2192 msgid "Click image to select pixels." msgstr "Clicca l'immagine per selezionare i pixel" -#: f.repair.cc:6194 +#: f.repair.cc:5888 msgid "Color Ramp" msgstr "Rampa di colore" -#: f.repair.cc:6205 +#: f.repair.cc:5899 msgid "Metric:" msgstr "Metrica" -#: f.repair.cc:6630 +#: f.repair.cc:6324 msgid "Color Match Images" msgstr "Allinea colori" -#: f.repair.cc:6656 +#: f.repair.cc:6350 msgid "mouse radius for color sample" msgstr "Raggio di prelievo del colore" -#: f.repair.cc:6659 +#: f.repair.cc:6353 msgid "image for source color" msgstr "l'immagine di riferimento" -#: f.repair.cc:6661 +#: f.repair.cc:6355 msgid "click on image to get source color" msgstr "Clicca nell'immagine per prelevare il colore" -#: f.repair.cc:6664 +#: f.repair.cc:6358 msgid "image to set matching color" msgstr "l'immagine a cui impostare il colore" -#: f.repair.cc:6666 +#: f.repair.cc:6360 msgid "click on image to set matching color" msgstr "Clicca nell'immagine per allineare il colore" -#: f.repair.cc:6727 +#: f.repair.cc:6421 msgid "select source image color first" msgstr "Seleziona prima l'immagine di riferimento" -#: f.repair.cc:6912 +#: f.repair.cc:6606 msgid "Change Color Profile" msgstr "Cambia profilo di colore" -#: f.repair.cc:6916 +#: f.repair.cc:6610 msgid "input profile" msgstr "Profilo in ingresso" -#: f.repair.cc:6920 +#: f.repair.cc:6614 msgid "output profile" msgstr "Profilo in uscita" -#: f.repair.cc:6936 +#: f.repair.cc:6630 msgid "color profile" msgstr "Profilo di colore" -#: f.repair.cc:6982 f.repair.cc:6988 +#: f.repair.cc:6676 f.repair.cc:6682 #, c-format msgid "unknown cms profile %s" msgstr "Profilo CMS sconosciuto %s" -#: f.repair.cc:7120 f.widgets.cc:499 +#: f.repair.cc:6814 f.widgets.cc:501 msgid "Remove Dust" msgstr "Rimozione polvere" -#: f.repair.cc:7124 +#: f.repair.cc:6818 msgid "spot size limit" msgstr "Raggio max della polvere" -#: f.repair.cc:7127 +#: f.repair.cc:6821 msgid "max. brightness" msgstr "Luminosità massima" -#: f.repair.cc:7130 +#: f.repair.cc:6824 msgid "min. contrast" msgstr "Contrasto minimo" -#: f.repair.cc:7904 +#: f.repair.cc:7598 msgid "" " Adjust each RGB color to minimize \n" " color fringes at the image extremes. " @@ -3359,35 +3320,35 @@ " Regola ogni componente RGB per minimizzare \n" " le frange di colore agli estremi dell'immagine. " -#: f.repair.cc:7927 f.widgets.cc:501 +#: f.repair.cc:7621 f.widgets.cc:503 msgid "Color Fringes" msgstr "Frange di colore" -#: f.repair.cc:8126 f.widgets.cc:502 +#: f.repair.cc:7820 f.widgets.cc:504 msgid "Stuck Pixels" msgstr "Pixel rovinati (incollati)" -#: f.repair.cc:8132 +#: f.repair.cc:7826 msgid "pixel group" msgstr "Gruppo di pixel:" -#: f.repair.cc:8140 f.repair.cc:8208 +#: f.repair.cc:7834 f.repair.cc:7902 msgid "stuck pixels:" msgstr "Pixel difettosi:" -#: f.repair.cc:8236 +#: f.repair.cc:7930 msgid "Load Stuck Pixels" msgstr "Carica file pixel difettosi" -#: f.repair.cc:8238 +#: f.repair.cc:7932 msgid "File:" msgstr "File:" -#: f.repair.cc:8263 f.repair.cc:8320 +#: f.repair.cc:7957 f.repair.cc:8014 msgid "Stuck Pixels file" msgstr "File di pixel difettosi" -#: f.repair.cc:8300 f.tools.cc:3656 +#: f.repair.cc:7994 f.tools.cc:3665 msgid "file format error" msgstr "Formato file errato" @@ -3417,7 +3378,7 @@ "L'indice è richiesto per le ricerche e le mappe \n" "e per generare le gallerie in modo rapido." -#: f.tools.cc:106 f.widgets.cc:546 +#: f.tools.cc:106 f.widgets.cc:548 msgid "Index Image Files" msgstr "Gestione file indice" @@ -3516,172 +3477,172 @@ msgid "Image File" msgstr "File immagine" -#: f.tools.cc:964 f.widgets.cc:547 +#: f.tools.cc:965 f.widgets.cc:549 msgid "User Options" msgstr "Opzioni d'uso" -#: f.tools.cc:967 +#: f.tools.cc:968 msgid "Startup Display" msgstr "Vista iniziale" -#: f.tools.cc:978 +#: f.tools.cc:979 msgid "Menu Style" msgstr "Stile del menù" -#: f.tools.cc:979 +#: f.tools.cc:980 msgid "Icons" msgstr "Icone" -#: f.tools.cc:980 +#: f.tools.cc:981 msgid "Icons + Text" msgstr "Icone e testo" -#: f.tools.cc:982 +#: f.tools.cc:983 msgid "Icon size" msgstr "Dimensione icone" #: f.tools.cc:987 +msgid "Window background color" +msgstr "" + +#: f.tools.cc:992 msgid "alphabetic" msgstr "alfabetico" -#: f.tools.cc:988 +#: f.tools.cc:993 msgid "file mod date" msgstr "data di modifica" -#: f.tools.cc:989 +#: f.tools.cc:994 msgid "photo date" msgstr "data della foto" -#: f.tools.cc:992 +#: f.tools.cc:997 msgid "Dialog font and size" msgstr "Impostazione font e dimensione" -#: f.tools.cc:997 +#: f.tools.cc:1002 msgid "Image Pan/scroll:" msgstr "Scorrimento immagine a video:" -#: f.tools.cc:1000 +#: f.tools.cc:1005 msgid "Zooms for 2x" msgstr "Zoom per 2x" -#: f.tools.cc:1009 +#: f.tools.cc:1014 msgid "JPEG save quality" msgstr "Qualità Jpeg" -#: f.tools.cc:1016 +#: f.tools.cc:1021 msgid "Curve node capture distance" msgstr "Distanza di cattura dei nodi della curva" -#: f.tools.cc:1020 +#: f.tools.cc:1025 msgid "Map marker size" msgstr "Dimensione del segnalino delle mappe" -#: f.tools.cc:1024 +#: f.tools.cc:1029 msgid "show hidden directories in gallery view" msgstr "Mostra cartelle nascoste in Vista galleria" -#: f.tools.cc:1027 +#: f.tools.cc:1032 msgid "prev/next shows last file version only" msgstr "Prec./Pross. della barra mostrano solo l'ultima versione" -#: f.tools.cc:1030 +#: f.tools.cc:1035 msgid "shift image to right margin" msgstr "sposta immagine al margine destro" -#: f.tools.cc:1033 -msgid "RAW command" -msgstr "Comando RAW" - -#: f.tools.cc:1037 +#: f.tools.cc:1038 msgid "RAW file types" msgstr "Tipi di file RAW" -#: f.tools.cc:1128 +#: f.tools.cc:1133 msgid "Delete present thumbnails to make effective" msgstr "Eliminare le miniature presenti per rendere effettivo" -#: f.tools.cc:1150 +#: f.tools.cc:1155 msgid "Select startup directory" msgstr "Seleziona cartella d'avvio" -#: f.tools.cc:1157 +#: f.tools.cc:1162 msgid "Select startup image file" msgstr "Seleziona file d'avvio" -#: f.tools.cc:1194 +#: f.tools.cc:1199 msgid "startup directory is invalid" msgstr "Cartella iniziale non valida" -#: f.tools.cc:1205 +#: f.tools.cc:1210 msgid "startup file is invalid" msgstr "File iniziale non valido" -#: f.tools.cc:1332 f.widgets.cc:548 +#: f.tools.cc:1340 f.widgets.cc:550 msgid "Keyboard Shortcuts" msgstr "Scorciatoie di tastiera" -#: f.tools.cc:1404 +#: f.tools.cc:1412 msgid "Edit KB Shortcuts" msgstr "Gestisci le scorciatoie di tastiera" -#: f.tools.cc:1409 +#: f.tools.cc:1417 msgid "shortcut key:" msgstr "Scorciatoia:" -#: f.tools.cc:1410 +#: f.tools.cc:1418 msgid "(enter key)" msgstr "(premere il/i tasti)" -#: f.tools.cc:1536 +#: f.tools.cc:1544 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" è riservata - non si può usare" -#: f.tools.cc:1669 +#: f.tools.cc:1677 msgid "unable to save KB-shortcuts file" msgstr "Non riesco a salvare le scorciatoie" -#: f.tools.cc:1973 f.widgets.cc:550 +#: f.tools.cc:1981 f.widgets.cc:552 msgid "Grid Lines" msgstr "Linee griglia" -#: f.tools.cc:1982 +#: f.tools.cc:1990 msgid "x-spacing" msgstr "Passo X:" -#: f.tools.cc:1983 +#: f.tools.cc:1991 msgid "x-count" msgstr "Num. barre X:" -#: f.tools.cc:1984 +#: f.tools.cc:1992 msgid "x-enable" msgstr "Abilita X:" -#: f.tools.cc:1990 +#: f.tools.cc:1998 msgid "y-spacing" msgstr "Passo Y:" -#: f.tools.cc:1991 +#: f.tools.cc:1999 msgid "y-count" msgstr "Num. righe Y:" -#: f.tools.cc:1992 +#: f.tools.cc:2000 msgid "y-enable" msgstr "Abilita Y:" -#: f.tools.cc:2112 f.tools.cc:2117 f.widgets.cc:551 +#: f.tools.cc:2120 f.tools.cc:2125 f.widgets.cc:553 msgid "Line Color" msgstr "Colore della linea" -#: f.tools.cc:2114 +#: f.tools.cc:2122 msgid "Area Color" msgstr "Colore dell'area" -#: f.tools.cc:2219 f.widgets.cc:552 +#: f.tools.cc:2227 f.widgets.cc:554 msgid "Show RGB" msgstr "Esplora componenti RGB" -#: f.tools.cc:2509 +#: f.tools.cc:2518 msgid "" "Drag mouse on image. \n" "Left click to cancel. \n" @@ -3691,27 +3652,27 @@ "Cliccare per annullare. \n" "Tasto X per mostrare/nascondere la finestra di dialogo" -#: f.tools.cc:2535 f.widgets.cc:553 +#: f.tools.cc:2544 f.widgets.cc:555 msgid "Magnify Image" msgstr "Lente d'ingrandimento" -#: f.tools.cc:2544 +#: f.tools.cc:2553 msgid "X-size" msgstr "Ingrandimento" -#: f.tools.cc:2789 +#: f.tools.cc:2798 msgid "Darkest and Brightest Pixels" msgstr "Cerca pixel scuri e chiari" -#: f.tools.cc:2812 +#: f.tools.cc:2821 msgid "Dark Limit" msgstr "Più scuri di..." -#: f.tools.cc:2813 +#: f.tools.cc:2822 msgid "Bright Limit" msgstr "Più chiari di..." -#: f.tools.cc:2908 +#: f.tools.cc:2917 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3719,43 +3680,43 @@ "Le barre dovrebbero mostrare una gradualità\n" "in tutta la loro estensione." -#: f.tools.cc:3004 f.widgets.cc:556 +#: f.tools.cc:3013 f.widgets.cc:558 msgid "Monitor Gamma" msgstr "Gamma dello schermo" -#: f.tools.cc:3064 +#: f.tools.cc:3073 msgid "Available Translations" msgstr "Traduzioni disponibili" -#: f.tools.cc:3068 +#: f.tools.cc:3077 msgid "Set Language" msgstr "Cambia lingua" -#: f.tools.cc:3206 f.widgets.cc:559 +#: f.tools.cc:3215 f.widgets.cc:561 msgid "Calibrate Printer" msgstr "Calibrazione stampante" -#: f.tools.cc:3231 +#: f.tools.cc:3240 msgid "print color chart" msgstr "Stampa l'immagine campione (mappa dei colori)" -#: f.tools.cc:3232 +#: f.tools.cc:3241 msgid "scan and save color chart" msgstr "Acquisisci con lo scanner l'immagine stampata e salvala in un file" -#: f.tools.cc:3233 +#: f.tools.cc:3242 msgid "align and trim color chart" msgstr "Raddrizza e ritaglia l'immagine acquisita" -#: f.tools.cc:3234 +#: f.tools.cc:3243 msgid "open and process color chart" msgstr "Apri e processa l'immagine stampata, acquisita e regolata" -#: f.tools.cc:3235 +#: f.tools.cc:3244 msgid "print image with revised colors" msgstr "Stampa la mappa dei colori con le correzioni attive" -#: f.tools.cc:3378 +#: f.tools.cc:3387 #, c-format msgid "" "Scan the printed color chart. \n" @@ -3766,7 +3727,7 @@ "La linea più scura deve stare in alto. \n" "Salvare in %s/" -#: f.tools.cc:3393 +#: f.tools.cc:3402 msgid "" "Open and edit the scanned color chart file. \n" "Remove any skew or rotation from scanning. \n" @@ -3778,11 +3739,11 @@ "(Usare Correggi prospettiva). \n" "Ritagliare via accuratamente il bordo verde." -#: f.tools.cc:3425 +#: f.tools.cc:3434 msgid "Open the trimmed color chart file" msgstr "Apri il file con l'immagine acquisita e ritagliata" -#: f.tools.cc:3558 +#: f.tools.cc:3567 msgid "" "Set the name for the output calibration file \n" "[your calibration name].dat" @@ -3790,19 +3751,19 @@ "Impostare il nome per il file di calibrazione \n" "[titolo di calibrazione].dat" -#: f.tools.cc:3598 +#: f.tools.cc:3607 msgid "Color map file to use" msgstr "File della mappa colori da usare" -#: f.tools.cc:3615 +#: f.tools.cc:3624 msgid "Select the image file to print." msgstr "Selezionare l'immagine da stampare." -#: f.tools.cc:3680 +#: f.tools.cc:3689 msgid "converting colors..." msgstr "Conversione colori..." -#: f.tools.cc:3780 +#: f.tools.cc:3789 msgid "Image colors are converted for printing." msgstr "Regolazione dei colori per la stampa." @@ -3976,569 +3937,573 @@ msgid "Open a newly added file" msgstr "Apri una immagine aggiunta" -#: f.widgets.cc:231 f.widgets.cc:232 +#: f.widgets.cc:231 msgid "Open and edit a camera RAW file" msgstr "Apri un file RAW" -#: f.widgets.cc:233 +#: f.widgets.cc:232 msgid "Change the image file name" msgstr "Rinomina il file" -#: f.widgets.cc:234 +#: f.widgets.cc:233 msgid "Copy or Move an image file to a new location" msgstr "Copia o sposta un file d'immagine in un'altra destinazione" -#: f.widgets.cc:235 +#: f.widgets.cc:234 msgid "Create a blank image" msgstr "Crea immagine nuova" -#: f.widgets.cc:236 +#: f.widgets.cc:235 msgid "Delete or trash image file" msgstr "Elimina o cestina il file dell'immagine" -#: f.widgets.cc:237 +#: f.widgets.cc:236 msgid "Print the current image" msgstr "Stampa l'immagine corrente" -#: f.widgets.cc:238 +#: f.widgets.cc:237 msgid "Print current image with adjusted colors" msgstr "Stampa l'immagine corrente con i colori corretti" -#: f.widgets.cc:239 f.widgets.cc:434 +#: f.widgets.cc:238 f.widgets.cc:434 msgid "Quit Fotoxx" msgstr "Esci da Fotoxx" -#: f.widgets.cc:242 +#: f.widgets.cc:241 msgid "List a few key metadata items" msgstr "Mostra alcuni metadati di base" -#: f.widgets.cc:243 +#: f.widgets.cc:242 msgid "List all metadata items" msgstr "Mostra tutti i metadati" -#: f.widgets.cc:244 +#: f.widgets.cc:243 msgid "(Toggle) show captions and comments" msgstr "Titoli e commenti sulla foto" -#: f.widgets.cc:245 +#: f.widgets.cc:244 msgid "Edit image tags/geotags/caption/rating ..." msgstr "Gestisci etichette, geotag, titoli, punteggi..." -#: f.widgets.cc:246 +#: f.widgets.cc:245 msgid "Edit any image metadata" msgstr "Modifica qualsiasi metadato dell'immagine" -#: f.widgets.cc:247 +#: f.widgets.cc:246 msgid "Remove all metadata from an image" msgstr "Rimuove tutti i metadati da un'immagine" -#: f.widgets.cc:248 +#: f.widgets.cc:247 msgid "Add/remove tags for multiple images" msgstr "Aggiungi/togli etichette in massa" -#: f.widgets.cc:249 +#: f.widgets.cc:248 msgid "Convert tag names for all images" msgstr "Converte nomi etichette per tutte le immagini" -#: f.widgets.cc:250 +#: f.widgets.cc:249 msgid "Add/change/delete metadata for multiple images" msgstr "Aggiunge/cambia/elimina metadati in diverse immagini " -#: f.widgets.cc:251 +#: f.widgets.cc:250 msgid "Report metadata for multiple images" msgstr "Elenca i metadati di immagini multiple" -#: f.widgets.cc:252 +#: f.widgets.cc:251 msgid "Add/revise geotags for multiple images" msgstr "Aggiungi/modifica geotag per diverse immagini" -#: f.widgets.cc:257 +#: f.widgets.cc:256 msgid "Select object or area for editing" msgstr "Seleziona oggetto o area da modificare" +#: f.widgets.cc:257 +msgid "Find a gap in an area outline" +msgstr "" + #: f.widgets.cc:258 +msgid "Select hairy or irregular edge" +msgstr "" + +#: f.widgets.cc:259 msgid "Show (outline) existing area" msgstr "Mostra il contorno dell'area definita" -#: f.widgets.cc:259 +#: f.widgets.cc:260 msgid "Hide existing area" msgstr "Nascondi l'area definita" -#: f.widgets.cc:260 +#: f.widgets.cc:261 msgid "Enable area for editing" msgstr "Abilita area alle modifiche" -#: f.widgets.cc:261 +#: f.widgets.cc:262 msgid "Disable area for editing" msgstr "Disabilita area per modifiche" -#: f.widgets.cc:262 +#: f.widgets.cc:263 msgid "Reverse existing area" msgstr "Inverti l'area definita" -#: f.widgets.cc:263 +#: f.widgets.cc:264 msgid "Erase existing area" msgstr "Cancella area" -#: f.widgets.cc:264 +#: f.widgets.cc:265 msgid "Copy area for later pasting into image" msgstr "Copia area per incollarla poi in un'immagine" -#: f.widgets.cc:265 -msgid "Paste previously copied area into image" -msgstr "Incolla nell'immagine l'area precedentemente copiata" - #: f.widgets.cc:266 +msgid "Save area to a file with transparency" +msgstr "Salva area in un file con trasparenza" + +#: f.widgets.cc:267 msgid "Open a file and paste as area into image" msgstr "Apre un file e incolla come area" -#: f.widgets.cc:267 -msgid "Save area to a file with transparency" -msgstr "Salva area in un file con trasparenza" +#: f.widgets.cc:268 +msgid "Paste previously copied area into image" +msgstr "Incolla nell'immagine l'area precedentemente copiata" -#: f.widgets.cc:270 +#: f.widgets.cc:271 msgid "Trim/Crop margins and/or Rotate" msgstr "Regola/ritaglia margini e/o ruota" -#: f.widgets.cc:271 +#: f.widgets.cc:272 msgid "Upright a rotated image" msgstr "Raddrizza un'immagine (se ruotata)" -#: f.widgets.cc:272 f.widgets.cc:273 +#: f.widgets.cc:273 f.widgets.cc:274 msgid "Fast auto enhance that may work OK" msgstr "Auto correzione che potrebbe anche funzionare bene..." -#: f.widgets.cc:274 +#: f.widgets.cc:275 msgid "Adjust brightness, contrast, color" msgstr "Correggi luminosità contrasto e colore" -#: f.widgets.cc:275 +#: f.widgets.cc:276 msgid "Add local contrast, enhance details" msgstr "Aggiungi contrasto locale (più dettagli)" -#: f.widgets.cc:276 +#: f.widgets.cc:277 msgid "Edit brightness distribution" msgstr "Modifica la distribuzione di luminosità" -#: f.widgets.cc:277 +#: f.widgets.cc:278 msgid "Flatten zonal brightness distribution" msgstr "Regola luminosità a zone" -#: f.widgets.cc:278 +#: f.widgets.cc:279 msgid "Change pixel dimensions" msgstr "Modifica le dimensioni in pixel" -#: f.widgets.cc:279 +#: f.widgets.cc:280 msgid "Mirror image horizontally or vertically" msgstr "Rispecchia in orizzontale o verticale" -#: f.widgets.cc:280 +#: f.widgets.cc:281 msgid "Write text on image" msgstr "Disegna scritte sull'immagine" -#: f.widgets.cc:281 +#: f.widgets.cc:282 msgid "Write lines or arrows on image" msgstr "Aggiunge linee o frecce sull'immagine" -#: f.widgets.cc:282 +#: f.widgets.cc:283 msgid "Fix brightness uniformity across image" msgstr "Imposta l'uniformità della luce lungo l'immagine" -#: f.widgets.cc:283 +#: f.widgets.cc:284 msgid "Paint edit function gradually with mouse" msgstr "Applica una funzione gradualmente col mouse" -#: f.widgets.cc:284 +#: f.widgets.cc:285 msgid "Leverage edits by brightness or color" msgstr "Modula la funzione corrente secondo luminosità/colore" -#: f.widgets.cc:285 +#: f.widgets.cc:286 msgid "Edit plugins menu or run a plugin function" msgstr "Modifica menu plugin o invoca una funzione" -#: f.widgets.cc:288 +#: f.widgets.cc:289 msgid "Make the image look sharper" msgstr "Produci un'immagine più dettagliata" -#: f.widgets.cc:289 +#: f.widgets.cc:290 msgid "Make the image look fuzzy" msgstr "Produci un'immagine più imprecisa" -#: f.widgets.cc:290 +#: f.widgets.cc:291 msgid "Filter noise from low-light photos" msgstr "Elimina disturbi da foto con poca luce" -#: f.widgets.cc:291 +#: f.widgets.cc:292 msgid "Remove unwanted objects" msgstr "Elimina oggetti non voluti" -#: f.widgets.cc:292 +#: f.widgets.cc:293 msgid "Fix red-eyes from electronic flash" msgstr "Correggi gli occhi rossi a causa del flash" -#: f.widgets.cc:293 +#: f.widgets.cc:294 msgid "Paint image pixels using the mouse" msgstr "Disegna pixel con il mouse" -#: f.widgets.cc:294 +#: f.widgets.cc:295 msgid "Paint image transparency using the mouse" msgstr "Pennella la trasparenza con il mouse" -#: f.widgets.cc:295 +#: f.widgets.cc:296 msgid "Add image transparency based on image attributes" msgstr "Aggiunge trasparenze basate su caratteristiche dell'immagine" -#: f.widgets.cc:296 +#: f.widgets.cc:297 msgid "Make BW/color, negative/positive, sepia" msgstr "Trasforma in B/N o a colori, negativo, seppia..." -#: f.widgets.cc:297 +#: f.widgets.cc:298 msgid "Shift/convert colors into other colors" msgstr "Regola i singoli componenti del colore" -#: f.widgets.cc:298 +#: f.widgets.cc:299 msgid "Adjust color intensity (saturation)" msgstr "Regola l'intensità del colore (saturazione)" -#: f.widgets.cc:299 +#: f.widgets.cc:300 msgid "Adjust color using RGB or CMY colors" msgstr "Regola colori usando RGB o CMY" -#: f.widgets.cc:300 +#: f.widgets.cc:301 msgid "Adjust color using HSL colors" msgstr "Regola colori usando HSL" -#: f.widgets.cc:301 +#: f.widgets.cc:302 msgid "Adjust color in selected image areas" msgstr "Regola il colore in aree selezionate" -#: f.widgets.cc:302 +#: f.widgets.cc:303 msgid "Match colors on one image with another" msgstr "Allinea il colore di un'immagine con un'altra" -#: f.widgets.cc:303 +#: f.widgets.cc:304 msgid "Convert to another color profile" msgstr "Converte a un altro profilo di colore" -#: f.widgets.cc:304 +#: f.widgets.cc:305 msgid "Remove dust spots from scanned slides" msgstr "Elimina le macchie di polvere da diapositive scansionate" -#: f.widgets.cc:305 +#: f.widgets.cc:306 msgid "Smoothen edges with jaggies" msgstr "Sfuoca bordi sgranati" -#: f.widgets.cc:306 +#: f.widgets.cc:307 msgid "Reduce Chromatic Abberation" msgstr "Corregge le barre colorate estranee alla foto" -#: f.widgets.cc:307 +#: f.widgets.cc:308 msgid "Erase known hot and dark pixels" msgstr "" "Cancella pixel difettosi della fotocamera, detti Hot-caldi o Dark-scuri " -#: f.widgets.cc:310 +#: f.widgets.cc:311 msgid "Remove curvature, esp. panoramas" msgstr "Elimina la curvatura, specialmente da panorama" -#: f.widgets.cc:311 +#: f.widgets.cc:312 msgid "Straighten objects seen from an angle" msgstr "Raddrizza oggetti visti da un angolo" -#: f.widgets.cc:312 +#: f.widgets.cc:313 msgid "Distort image areas using the mouse" msgstr "Distorci un'area usando il mouse" -#: f.widgets.cc:313 f.widgets.cc:314 f.widgets.cc:315 +#: f.widgets.cc:314 f.widgets.cc:315 f.widgets.cc:316 msgid "Distort the whole image using the mouse" msgstr "Distorci l'intera foto usando il mouse" -#: f.widgets.cc:316 +#: f.widgets.cc:317 msgid "Flatten a photographed book page" msgstr "Appiattisce la foto della pagina di un libro" -#: f.widgets.cc:317 +#: f.widgets.cc:318 msgid "Make a spherical projection of an image" msgstr "Produce una proiezione sferica di un'immagine" -#: f.widgets.cc:318 +#: f.widgets.cc:319 msgid "Rescale image outside selected areas" msgstr "Scalatura escludendo parti selezionate dell'immagine" -#: f.widgets.cc:321 +#: f.widgets.cc:322 msgid "Reduce color depth (posterize)" msgstr "Riduce la risoluzione dei colori (poster)" -#: f.widgets.cc:322 +#: f.widgets.cc:323 msgid "Convert to pencil sketch" msgstr "Converte in disegno a matita" -#: f.widgets.cc:323 +#: f.widgets.cc:324 msgid "Convert image into a cartoon drawing" msgstr "" -#: f.widgets.cc:324 +#: f.widgets.cc:325 msgid "Convert to line drawing (edge detection)" msgstr "Converte in disegno a linee (riconoscimento bordi)" -#: f.widgets.cc:325 +#: f.widgets.cc:326 msgid "Convert to solid color drawing" msgstr "Converte in disegno con colori piatti" -#: f.widgets.cc:326 +#: f.widgets.cc:327 msgid "Graduated Blur depending on contrast" msgstr "Sfumatura graduale basata sul contrasto" -#: f.widgets.cc:327 +#: f.widgets.cc:328 msgid "Create an embossed or 3D appearance" msgstr "Crea un effetto scolpito o 3D" -#: f.widgets.cc:328 +#: f.widgets.cc:329 msgid "Convert to square tiles" msgstr "Crea un effetto piastrellato" -#: f.widgets.cc:329 +#: f.widgets.cc:330 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Crea un effetto puntinato (Roy Lichtenstein)" -#: f.widgets.cc:330 +#: f.widgets.cc:331 msgid "Convert into a simulated painting" msgstr "Crea un effetto di dipinto a olio" -#: f.widgets.cc:331 +#: f.widgets.cc:332 msgid "Change brightness or color radially" msgstr "Cambia luminosità o contrasto in modo radiale" -#: f.widgets.cc:332 +#: f.widgets.cc:333 msgid "Add texture to an image" msgstr "Aggiungi un motivo (texture)" -#: f.widgets.cc:333 +#: f.widgets.cc:334 msgid "Tile image with a repeating pattern" msgstr "Sovraimprime all'immagine un motivo ripetuto" -#: f.widgets.cc:334 +#: f.widgets.cc:335 msgid "Create a mosaic with tiles made from all images" msgstr "Crea un mosaico con tessere da tutte le immagini" -#: f.widgets.cc:335 +#: f.widgets.cc:336 msgid "Process an image using a custom kernel" msgstr "Elabora un'immagine applicando una matrice utente" -#: f.widgets.cc:336 +#: f.widgets.cc:337 msgid "Warp an image with a wave pattern" msgstr "Distorce immagine con motivo di onde" -#: f.widgets.cc:337 +#: f.widgets.cc:338 msgid "Blur an image in the direction of mouse drags" msgstr "Sfuma un'immagine in direzione dei trascinamenti col mouse" -#: f.widgets.cc:338 +#: f.widgets.cc:339 msgid "Increasing blur with distance from selected areas" msgstr "Accentua la sfumatura con la distanza dalle aree selezionate" -#: f.widgets.cc:341 +#: f.widgets.cc:342 msgid "Combine bright/dark images for better detail" msgstr "Combina immagini chiare/scure per guadagnare in dettaglio" -#: f.widgets.cc:342 +#: f.widgets.cc:343 msgid "Combine near/far focus images for deeper focus" msgstr "Combina immagini con profondità diverse per ampliare la messa a fuoco" -#: f.widgets.cc:343 +#: f.widgets.cc:344 msgid "Combine images to erase passing people, etc." msgstr "Combina immagini per eliminare oggetti (es. passanti, automobili...)" -#: f.widgets.cc:344 +#: f.widgets.cc:345 msgid "Combine noisy images into a low-noise image" msgstr "Combina immagini disturbate in una con minor disturbo" -#: f.widgets.cc:345 +#: f.widgets.cc:346 msgid "Combine images into a panorama" msgstr "Combina immagini lato a lato per creare un panorama" -#: f.widgets.cc:346 +#: f.widgets.cc:347 msgid "Combine images into a vertical panorama" msgstr "Combina immagini in un panorama verticale" -#: f.widgets.cc:347 +#: f.widgets.cc:348 msgid "Combine images into a panorama (panorama tools)" msgstr "Combina immagini lato a lato per creare un panorama (panorama tools)" -#: f.widgets.cc:348 +#: f.widgets.cc:349 msgid "Arrange images and text in a layout (montage)" msgstr "Dispone immagini e testi in un collage" -#: f.widgets.cc:351 +#: f.widgets.cc:352 msgid "Index new files and make thumbnails" msgstr "Aggiorna indici e miniature di nuovi file" -#: f.widgets.cc:352 +#: f.widgets.cc:353 msgid "Change user preferences" msgstr "Modifica le preferenze" -#: f.widgets.cc:353 +#: f.widgets.cc:354 msgid "Change Keyboard Shortcut Keys" msgstr "Modifica le scorciatoie da tastiera" -#: f.widgets.cc:354 +#: f.widgets.cc:355 msgid "Show a brightness distribution graph" msgstr "Mostra il grafico di distribuzione della luminosità" -#: f.widgets.cc:355 +#: f.widgets.cc:356 msgid "Show or revise grid lines" msgstr "Mostra o cambia la griglia" -#: f.widgets.cc:356 +#: f.widgets.cc:357 msgid "Change color of foreground lines" msgstr "Cambia colore delle linee in primo piano" -#: f.widgets.cc:357 +#: f.widgets.cc:358 msgid "Show RGB colors at mouse click" msgstr "Mostra i componenti colore RGB al clic" -#: f.widgets.cc:358 +#: f.widgets.cc:359 msgid "Magnify image around the mouse position" msgstr "Ingrandisce temporaneamente una porzione d'immagine" -#: f.widgets.cc:359 +#: f.widgets.cc:360 msgid "Highlight darkest and brightest pixels" msgstr "Individua i pixel di luminosità estrema" -#: f.widgets.cc:360 +#: f.widgets.cc:361 msgid "Chart to adjust monitor color" msgstr "Grafico per regolare il colore dello schermo" -#: f.widgets.cc:361 +#: f.widgets.cc:362 msgid "Chart to adjust monitor gamma" msgstr "Grafico per regolare la gamma dello schermo" -#: f.widgets.cc:362 +#: f.widgets.cc:363 msgid "Change the GUI language" msgstr "Cambia la lingua dell'interfaccia" -#: f.widgets.cc:363 +#: f.widgets.cc:364 msgid "Report missing translations" msgstr "Segnala traduzioni mancanti" -#: f.widgets.cc:364 +#: f.widgets.cc:365 msgid "Calibrate printer colors" msgstr "" "Esegue una procedura per regolare la stampante e migliorare la resa dei " "colori" -#: f.widgets.cc:365 +#: f.widgets.cc:366 msgid "Memory and CPU (to terminal/logfile)" msgstr "Memoria e CPU (al terminale/giornale)" -#: f.widgets.cc:369 +#: f.widgets.cc:370 msgid "Rename/convert/resize/move multiple files" msgstr "Rinomina/converte/ridimensiona/sposta file multipli" -#: f.widgets.cc:370 +#: f.widgets.cc:371 msgid "Upright multiple rotated image files" msgstr "Raddrizza immagini in massa" -#: f.widgets.cc:371 +#: f.widgets.cc:372 msgid "Delete or Trash multiple files" msgstr "Elimina o cestina più immagini" -#: f.widgets.cc:372 -msgid "Convert camera RAW files using DCraw" -msgstr "Converte file RAW usando DCraw" - #: f.widgets.cc:373 +msgid "Convert camera RAW files using libraw" +msgstr "Converte file RAW usando libraw" + +#: f.widgets.cc:374 msgid "Convert camera RAW files using Raw Therapee" msgstr "Converte file RAW usando Raw Therapee" -#: f.widgets.cc:374 +#: f.widgets.cc:375 msgid "Build and run edit script files" msgstr "Compone ed esegue file script" -#: f.widgets.cc:375 +#: f.widgets.cc:376 msgid "Burn selected image files to DVD/BlueRay disc" msgstr "" -#: f.widgets.cc:376 +#: f.widgets.cc:377 msgid "Search all image files and report duplicates" msgstr "Analizza tutte le immagini e segnala i duplicati" -#: f.widgets.cc:381 +#: f.widgets.cc:382 msgid "Quick Start mini-guide" msgstr "Miniguida rapida" -#: f.widgets.cc:382 +#: f.widgets.cc:383 msgid "Read the user guide" msgstr "Visualizza la guida utente" -#: f.widgets.cc:383 +#: f.widgets.cc:384 msgid "Recent user guide changes" msgstr "Visualizza gli ultimi cambiamenti alla guida utente" -#: f.widgets.cc:384 +#: f.widgets.cc:385 msgid "Summary of image edit functions" msgstr "Visualizza un sommario delle funzioni disponibili" -#: f.widgets.cc:385 +#: f.widgets.cc:386 msgid "Technical installation notes" msgstr "Mostra note tecniche aggiuntive su Fotoxx" -#: f.widgets.cc:386 +#: f.widgets.cc:387 msgid "List updates by Fotoxx version" msgstr "Mostra la storia delle versioni e loro contenuti" -#: f.widgets.cc:387 +#: f.widgets.cc:388 msgid "View the log file and error messages" msgstr "Mostra il file di log: i messaggi generati durante l'avviamento" -#: f.widgets.cc:388 +#: f.widgets.cc:389 msgid "How to do Fotoxx translations" msgstr "Mostra come fare la traduzione in altre lingue" -#: f.widgets.cc:389 +#: f.widgets.cc:390 msgid "Show the Fotoxx web page" msgstr "Mostra la home page internet di fotoxx" -#: f.widgets.cc:390 +#: f.widgets.cc:391 msgid "Version, license, contact, credits" msgstr "Versione, licenza, contatti, riconoscimenti" -#: f.widgets.cc:393 +#: f.widgets.cc:394 msgid "Organize images into albums" msgstr "Organizza immagini in album" -#: f.widgets.cc:394 +#: f.widgets.cc:395 msgid "Start a slide show" msgstr "Inizia uno slideshow " -#: f.widgets.cc:395 +#: f.widgets.cc:396 msgid "Set desktop wallpaper from current Fotoxx image" msgstr "Usa l'immagine corrente come sfondo del desktop" -#: f.widgets.cc:396 +#: f.widgets.cc:397 msgid "Cycle desktop wallpaper from a Fotoxx album" msgstr "Cicla sfondo del desktop da un album di Fotoxx" -#: f.widgets.cc:419 +#: f.widgets.cc:420 msgid "New Window" msgstr "Nuova finestra" -#: f.widgets.cc:421 +#: f.widgets.cc:422 msgid "Recently Seen Images" msgstr "Immagini viste di recente" -#: f.widgets.cc:422 +#: f.widgets.cc:423 msgid "Newest Images" msgstr "Immagini più nuove" -#: f.widgets.cc:424 +#: f.widgets.cc:425 msgid "Open Previous File" msgstr "Apri l'immagine precedente" -#: f.widgets.cc:425 -msgid "Open RAW (ufraw)" -msgstr "Apre file RAW (con ufraw)" - #: f.widgets.cc:426 msgid "Open RAW (Raw Therapee)" msgstr "Apre file RAW (con Raw Therapee)" @@ -4547,7 +4512,7 @@ msgid "New Blank Image" msgstr "Nuova immagine" -#: f.widgets.cc:429 f.widgets.cc:727 +#: f.widgets.cc:429 f.widgets.cc:729 msgid "Copy/Move to Location" msgstr "Copia/sposta altrove" @@ -4563,7 +4528,7 @@ msgid "Print Calibrated Image" msgstr "Stampa immagine calibrata" -#: f.widgets.cc:433 f.widgets.cc:585 +#: f.widgets.cc:433 f.widgets.cc:587 msgid "Set Desktop Wallpaper" msgstr "Imposta sfondo del desktop" @@ -4579,19 +4544,19 @@ msgid "Show Captions on Image" msgstr "Mostra/nasconde titoli e commenti in sovrimpressione" -#: f.widgets.cc:444 f.widgets.cc:575 +#: f.widgets.cc:444 f.widgets.cc:577 msgid "Batch Rename Tags" msgstr "Rinomina etichette in massa" -#: f.widgets.cc:445 f.widgets.cc:576 +#: f.widgets.cc:445 f.widgets.cc:578 msgid "Batch Add/Change Metadata" msgstr "Aggiunge/Modifica metadati in massa" -#: f.widgets.cc:448 f.widgets.cc:580 f.widgets.cc:658 f.widgets.cc:670 +#: f.widgets.cc:448 f.widgets.cc:582 f.widgets.cc:660 f.widgets.cc:672 msgid "Search Images" msgstr "Ricerca immagini" -#: f.widgets.cc:449 f.widgets.cc:579 f.widgets.cc:657 f.widgets.cc:669 +#: f.widgets.cc:449 f.widgets.cc:581 f.widgets.cc:659 f.widgets.cc:671 msgid "Images by Geotag" msgstr "Immagini tramite Geotag" @@ -4599,359 +4564,359 @@ msgid "Select" msgstr "Seleziona" -#: f.widgets.cc:453 fotoxx.h:1183 +#: f.widgets.cc:453 +msgid "Find Gap" +msgstr "" + +#: f.widgets.cc:454 +msgid "Select Hairy" +msgstr "" + +#: f.widgets.cc:455 fotoxx.h:1183 msgid "Show" msgstr "Visualizza" -#: f.widgets.cc:454 fotoxx.h:1136 +#: f.widgets.cc:456 fotoxx.h:1137 msgid "Hide" msgstr "Nascondi" -#: f.widgets.cc:455 fotoxx.h:1123 +#: f.widgets.cc:457 fotoxx.h:1124 msgid "Enable" msgstr "Abilita" -#: f.widgets.cc:456 fotoxx.h:1119 +#: f.widgets.cc:458 fotoxx.h:1120 msgid "Disable" msgstr "Disabilita" -#: f.widgets.cc:457 fotoxx.h:1139 +#: f.widgets.cc:459 fotoxx.h:1140 msgid "Invert" msgstr "Inverti" -#: f.widgets.cc:458 fotoxx.h:1197 +#: f.widgets.cc:460 fotoxx.h:1197 msgid "Unselect" msgstr "Deseleziona" -#: f.widgets.cc:459 -msgid "Copy Area" -msgstr "Copia area" - -#: f.widgets.cc:460 +#: f.widgets.cc:462 msgid "Paste Area" msgstr "Incolla area" -#: f.widgets.cc:461 +#: f.widgets.cc:463 msgid "Open Area File" msgstr "Apri file di area" -#: f.widgets.cc:462 -msgid "Save Area File" -msgstr "Salva file di area" - -#: f.widgets.cc:467 +#: f.widgets.cc:469 msgid "Voodoo 1" msgstr "Voodoo 1" -#: f.widgets.cc:468 +#: f.widgets.cc:470 msgid "Voodoo 2" msgstr "Voodoo 2" -#: f.widgets.cc:470 f.widgets.cc:741 +#: f.widgets.cc:472 f.widgets.cc:743 msgid "Edit Brightness" msgstr "Modifica luminosità" -#: f.widgets.cc:471 f.widgets.cc:742 +#: f.widgets.cc:473 f.widgets.cc:744 msgid "Zonal Flatten" msgstr "Appiattimento a zone" -#: f.widgets.cc:475 +#: f.widgets.cc:477 msgid "Add Text" msgstr "Aggiungi scritte" -#: f.widgets.cc:476 +#: f.widgets.cc:478 msgid "Add Lines" msgstr "Aggiunge linee" -#: f.widgets.cc:479 +#: f.widgets.cc:481 msgid "Plugins" msgstr "Plugin" -#: f.widgets.cc:484 +#: f.widgets.cc:486 msgid "Denoise" msgstr "Riduci disturbo" -#: f.widgets.cc:486 +#: f.widgets.cc:488 msgid "Red Eyes" msgstr "Rimuovi occhi rossi" -#: f.widgets.cc:493 +#: f.widgets.cc:495 msgid "Adjust RGB/CMY" msgstr "Regola RGB/CMY" -#: f.widgets.cc:494 +#: f.widgets.cc:496 msgid "Adjust HSL" msgstr "Regola HSL" -#: f.widgets.cc:495 +#: f.widgets.cc:497 msgid "Ramp Brightness" msgstr "Rampa di luminosità" -#: f.widgets.cc:496 +#: f.widgets.cc:498 msgid "Ramp Color" msgstr "Rampa di colore" -#: f.widgets.cc:497 +#: f.widgets.cc:499 msgid "Match Colors" msgstr "Allinea colori" -#: f.widgets.cc:498 +#: f.widgets.cc:500 msgid "Color Profile" msgstr "Profilo di colore" -#: f.widgets.cc:500 +#: f.widgets.cc:502 msgid "Anti-Alias" msgstr "Anti-Alias" -#: f.widgets.cc:506 +#: f.widgets.cc:508 msgid "Fix Perspective" msgstr "Correggi prospettiva" -#: f.widgets.cc:511 +#: f.widgets.cc:513 msgid "Flatten Book Page" msgstr "Appiattisci pagina" -#: f.widgets.cc:516 +#: f.widgets.cc:518 msgid "Color Depth" msgstr "Risoluzione del colore" -#: f.widgets.cc:517 +#: f.widgets.cc:519 msgid "Sketch" msgstr "Schizzo" -#: f.widgets.cc:518 +#: f.widgets.cc:520 msgid "Cartoon" msgstr "" -#: f.widgets.cc:522 +#: f.widgets.cc:524 msgid "Embossing" msgstr "Bassorilievo" -#: f.widgets.cc:524 +#: f.widgets.cc:526 msgid "Dots" msgstr "Puntinismo" -#: f.widgets.cc:525 +#: f.widgets.cc:527 msgid "Painting" msgstr "Dipinto" -#: f.widgets.cc:527 +#: f.widgets.cc:529 msgid "Texture" msgstr "Aggiungi disturbo" -#: f.widgets.cc:529 +#: f.widgets.cc:531 msgid "Mosaic" msgstr "Mosaico" -#: f.widgets.cc:536 +#: f.widgets.cc:538 msgid "High Dynamic Range" msgstr "Combina immagini (alta dinamica - HDR)" -#: f.widgets.cc:537 +#: f.widgets.cc:539 msgid "High Depth of Field" msgstr "Combina immagini (grande profondità - HDF)" -#: f.widgets.cc:538 +#: f.widgets.cc:540 msgid "Stack/Paint" msgstr "Sovrapponi (interattivo con mouse)" -#: f.widgets.cc:539 +#: f.widgets.cc:541 msgid "Stack/Noise" msgstr "Sovrapponi (rimozione disturbo)" -#: f.widgets.cc:540 +#: f.widgets.cc:542 msgid "Panorama" msgstr "Crea un panorama" -#: f.widgets.cc:541 +#: f.widgets.cc:543 msgid "Vertical Panorama" msgstr "Panorama verticale" -#: f.widgets.cc:542 +#: f.widgets.cc:544 msgid "PT Panorama" msgstr "Panorama (usa pano tools)" -#: f.widgets.cc:543 +#: f.widgets.cc:545 msgid "Mashup" msgstr "Collage" -#: f.widgets.cc:549 +#: f.widgets.cc:551 msgid "Brightness Graph" msgstr "Grafico delle distribuzione della luminosità" -#: f.widgets.cc:554 +#: f.widgets.cc:556 msgid "Dark/Bright Pixels" msgstr "Punti chiari/scuri" -#: f.widgets.cc:555 +#: f.widgets.cc:557 msgid "Monitor Color" msgstr "Colore monitor" -#: f.widgets.cc:557 +#: f.widgets.cc:559 msgid "Change Language" msgstr "Cambia lingua del programma" -#: f.widgets.cc:558 +#: f.widgets.cc:560 msgid "Missing Translations" msgstr "Traduzioni mancanti" -#: f.widgets.cc:560 +#: f.widgets.cc:562 msgid "Resources" msgstr "Mostra risorse (nel terminale)" -#: f.widgets.cc:567 -msgid "Batch RAW (DCraw)" -msgstr "Conversione RAW (DCraw) in massa" - -#: f.widgets.cc:568 -msgid "Batch RAW (Raw Therapee)" -msgstr "Conversione RAW (Raw Therapee) in massa" - #: f.widgets.cc:569 +msgid "Batch RAW" +msgstr "Conversione RAW in massa" + +#: f.widgets.cc:570 +msgid "Batch Raw Therapee" +msgstr "Conversione RAW in massa (Raw Therapee)" + +#: f.widgets.cc:571 msgid "Script Files" msgstr "File script" -#: f.widgets.cc:572 +#: f.widgets.cc:574 msgid "Create File of Image Files" msgstr "" -#: f.widgets.cc:586 +#: f.widgets.cc:588 msgid "Cycle Desktop Wallpaper" msgstr "Cicla sfondo del deskto" -#: f.widgets.cc:603 f.widgets.cc:627 f.widgets.cc:651 f.widgets.cc:665 +#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 msgid "Gallery" msgstr "Galleria" -#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 +#: f.widgets.cc:606 f.widgets.cc:630 f.widgets.cc:654 f.widgets.cc:668 msgid "World Maps" msgstr "Mappe del mondo" -#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 +#: f.widgets.cc:607 f.widgets.cc:631 f.widgets.cc:655 f.widgets.cc:669 msgid "OSM Maps" msgstr "Mappe di OpenStreetMap" -#: f.widgets.cc:607 f.widgets.cc:631 +#: f.widgets.cc:609 f.widgets.cc:633 msgid "Favorites" msgstr "Preferiti" -#: f.widgets.cc:609 fotoxx.h:1177 +#: f.widgets.cc:611 fotoxx.h:1178 msgid "Save" msgstr "Salva" -#: f.widgets.cc:610 +#: f.widgets.cc:612 msgid "Prev/Next" msgstr "Prec./Pross." -#: f.widgets.cc:612 +#: f.widgets.cc:614 msgid "Areas" msgstr "Aree" -#: f.widgets.cc:613 fotoxx.h:1122 +#: f.widgets.cc:615 fotoxx.h:1123 msgid "Edit" msgstr "Modifica" -#: f.widgets.cc:614 +#: f.widgets.cc:616 msgid "Repair" msgstr "Correggi" -#: f.widgets.cc:615 +#: f.widgets.cc:617 msgid "Bend" msgstr "Deforma" -#: f.widgets.cc:616 +#: f.widgets.cc:618 msgid "Effects" msgstr "Effetti" -#: f.widgets.cc:617 +#: f.widgets.cc:619 msgid "Combine" msgstr "Combina" -#: f.widgets.cc:618 +#: f.widgets.cc:620 msgid "Undo/Redo" msgstr "Annulla/ripeti" -#: f.widgets.cc:619 +#: f.widgets.cc:621 msgid "Tools" msgstr "Strumenti" -#: f.widgets.cc:633 +#: f.widgets.cc:635 msgid "Albums" msgstr "Album" -#: f.widgets.cc:634 +#: f.widgets.cc:636 msgid "Bookmarks" msgstr "Segnalibri" -#: f.widgets.cc:643 +#: f.widgets.cc:645 msgid "Batch" msgstr "In massa" -#: f.widgets.cc:655 +#: f.widgets.cc:657 msgid "Choose Map" msgstr "Scegliere mappa" -#: f.widgets.cc:656 +#: f.widgets.cc:658 msgid "Search Range" msgstr "Distanza di ricerca" -#: f.widgets.cc:676 fotoxx.h:1195 +#: f.widgets.cc:678 fotoxx.h:1195 msgid "Undo" msgstr "Annulla" -#: f.widgets.cc:677 fotoxx.h:1168 +#: f.widgets.cc:679 fotoxx.h:1169 msgid "Redo" msgstr "Ripeti" -#: f.widgets.cc:678 +#: f.widgets.cc:680 msgid "Save File Version" msgstr "Salva file con versione" -#: f.widgets.cc:722 +#: f.widgets.cc:724 msgid "Popup Image" msgstr "Comparsa immagine" -#: f.widgets.cc:726 fotoxx.h:1171 +#: f.widgets.cc:728 fotoxx.h:1172 msgid "Rename" msgstr "Rinomina" -#: f.widgets.cc:728 +#: f.widgets.cc:730 msgid "Copy to Clipboard" msgstr "Copia negli appunti" -#: f.widgets.cc:729 +#: f.widgets.cc:731 msgid "Remove from Album" msgstr "Rimuovere dall'album" -#: f.widgets.cc:730 +#: f.widgets.cc:732 msgid "Cut to Image Cache" msgstr "Taglia verso verso il deposito immagini" -#: f.widgets.cc:731 +#: f.widgets.cc:733 msgid "Copy to Image Cache" msgstr "Copia nel deposito immagini" -#: f.widgets.cc:732 +#: f.widgets.cc:734 msgid "Paste Image Cache Here (clear)" msgstr "Incolla il deposito immagini qui (svuota)" -#: f.widgets.cc:733 +#: f.widgets.cc:735 msgid "Paste Image Cache Here (keep)" msgstr "Incolla il deposito immagini qui (mantiene)" -#: f.widgets.cc:734 +#: f.widgets.cc:736 msgid "Paste Current Image File Here" msgstr "Incolla qui l'immagine corrente" -#: f.widgets.cc:744 +#: f.widgets.cc:746 msgid "Select Area" msgstr "Seleziona area" -#: f.widgets.cc:747 +#: f.widgets.cc:748 msgid "Show on OSM Map" msgstr "Mostra nella mappa OSM" -#: f.widgets.cc:748 +#: f.widgets.cc:749 msgid "Delete/Trash" msgstr "Elimina/cestina" @@ -4959,59 +4924,59 @@ msgid "Image Locations" msgstr "Locazioni delle immagini" -#: fotoxx-16.06.cc:392 +#: fotoxx-16.07.cc:387 msgid "Please install missing programs:" msgstr "Installa i programmi mancanti:" -#: fotoxx-16.06.cc:683 +#: fotoxx-16.07.cc:675 msgid "Kill active dialog?" msgstr "Terminare il dialogo corrente?" -#: fotoxx-16.06.cc:764 +#: fotoxx-16.07.cc:756 msgid "(reduced)" msgstr "(ridotto)" -#: fotoxx-16.06.cc:765 +#: fotoxx-16.07.cc:757 msgid "area active" msgstr "area attiva" -#: fotoxx-16.06.cc:766 +#: fotoxx-16.07.cc:758 msgid "dialog open" msgstr "dialogo aperto" -#: fotoxx-16.06.cc:767 +#: fotoxx-16.07.cc:759 msgid "blocked" msgstr "bloccato" -#: fotoxx-16.06.cc:818 +#: fotoxx-16.07.cc:810 msgid "edits" msgstr "modifiche" -#: fotoxx-16.06.cc:2921 +#: fotoxx-16.07.cc:2932 msgid "Exceed 50 anchor points" msgstr "Superati 50 punti di ancoraggio" -#: fotoxx-16.06.cc:3141 +#: fotoxx-16.07.cc:3152 msgid "load curve from a file" msgstr "carica curva da file" -#: fotoxx-16.06.cc:3207 +#: fotoxx-16.07.cc:3218 msgid "curve file is invalid" msgstr "File della curva invalido" -#: fotoxx-16.06.cc:3221 +#: fotoxx-16.07.cc:3232 msgid "save curve to a file" msgstr "salva curva in un file" -#: fotoxx-16.06.cc:3293 +#: fotoxx-16.07.cc:3304 msgid "Too many edits, please save image" msgstr "Troppe modifiche: salva l'immagine" -#: fotoxx-16.06.cc:3298 +#: fotoxx-16.07.cc:3309 msgid "this function cannot be scripted" msgstr "Questa funzione non può essere usata in uno script" -#: fotoxx-16.06.cc:3315 +#: fotoxx-16.07.cc:3326 msgid "" "Select area not active.\n" "Continue?" @@ -5019,27 +4984,27 @@ "Selezione di area non attiva.\n" "Continuare?" -#: fotoxx-16.06.cc:3630 +#: fotoxx-16.07.cc:3641 msgid "file data does not fit dialog" msgstr "I dati del file non si adattano alla finestra" -#: fotoxx-16.06.cc:3640 +#: fotoxx-16.07.cc:3651 msgid "Save settings to a file" msgstr "Salva impostazioni in un file" -#: fotoxx-16.06.cc:3993 +#: fotoxx-16.07.cc:4004 msgid "This action will discard changes to current image" msgstr "Questa azione annullerà le modifiche all'immagine" -#: fotoxx-16.06.cc:3994 +#: fotoxx-16.07.cc:4005 msgid "prior function still active" msgstr "Funzione precedente ancora attiva" -#: fotoxx-16.06.cc:3995 fotoxx.h:1140 +#: fotoxx-16.07.cc:4006 fotoxx.h:1141 msgid "Keep" msgstr "Mantieni modifiche" -#: fotoxx-16.06.cc:3996 +#: fotoxx-16.07.cc:4007 msgid "Discard" msgstr "Perdi modifiche" @@ -5075,7 +5040,7 @@ msgid "Blend Width" msgstr "Larghezza di sfumatura" -#: fotoxx.h:1103 zfuncs.cc:10576 +#: fotoxx.h:1103 zfuncs.cc:10518 msgid "bottom" msgstr "Basso" @@ -5104,206 +5069,198 @@ msgstr "Colore" #: fotoxx.h:1111 +msgid "COMPLETED" +msgstr "COMPLETATO" + +#: fotoxx.h:1112 msgid "continue" msgstr "continua" -#: fotoxx.h:1113 +#: fotoxx.h:1114 msgid "Copy" msgstr "Copia" -#: fotoxx.h:1114 +#: fotoxx.h:1115 msgid "Create" msgstr "Creare" -#: fotoxx.h:1115 +#: fotoxx.h:1116 msgid "Curve File:" msgstr "File di curve:" -#: fotoxx.h:1116 +#: fotoxx.h:1117 msgid "Cut" msgstr "Taglia" -#: fotoxx.h:1117 +#: fotoxx.h:1118 msgid "Deband" msgstr "Elimina bande" -#: fotoxx.h:1118 +#: fotoxx.h:1119 msgid "Delete" msgstr "Elimina" -#: fotoxx.h:1120 +#: fotoxx.h:1121 msgid "Done" msgstr "Fatto" -#: fotoxx.h:1121 +#: fotoxx.h:1122 msgid "edge" msgstr "bordo:" -#: fotoxx.h:1124 +#: fotoxx.h:1125 msgid "Erase" msgstr "Esegui cancellatura" -#: fotoxx.h:1125 +#: fotoxx.h:1126 msgid "Fetch" msgstr "Prendi" -#: fotoxx.h:1126 +#: fotoxx.h:1127 msgid "output file already exists" msgstr "Il file di uscita esiste già" -#: fotoxx.h:1127 +#: fotoxx.h:1128 #, c-format msgid "%d files selected" msgstr "%d file selezionati" -#: fotoxx.h:1128 +#: fotoxx.h:1129 msgid "Find" msgstr "Cerca" -#: fotoxx.h:1129 +#: fotoxx.h:1130 msgid "Finish" msgstr "Termina" -#: fotoxx.h:1130 -msgid "Flatten" -msgstr "Quantità" - -#: fotoxx.h:1131 +#: fotoxx.h:1132 msgid "Font" msgstr "Font" -#: fotoxx.h:1133 +#: fotoxx.h:1134 msgid "Grid" msgstr "Griglia" -#: fotoxx.h:1134 +#: fotoxx.h:1135 msgid "Height" msgstr "Altezza" -#: fotoxx.h:1137 +#: fotoxx.h:1138 msgid "Images" msgstr "Immagini" -#: fotoxx.h:1138 +#: fotoxx.h:1139 msgid "Insert" msgstr "Incolla" -#: fotoxx.h:1141 zfuncs.cc:10580 +#: fotoxx.h:1142 zfuncs.cc:10522 msgid "left" msgstr "Sinistra" -#: fotoxx.h:1142 +#: fotoxx.h:1143 msgid "limit" msgstr "limite" -#: fotoxx.h:1143 +#: fotoxx.h:1144 msgid "Load" msgstr "Carica" -#: fotoxx.h:1144 +#: fotoxx.h:1145 msgid "Make" msgstr "Produci" -#: fotoxx.h:1146 +#: fotoxx.h:1147 msgid "Map" msgstr "Mappa" -#: fotoxx.h:1147 -msgid "Match Level" -msgstr "Soglia d'intervento" - -#: fotoxx.h:1148 +#: fotoxx.h:1149 msgid "Max" msgstr "Massimo" -#: fotoxx.h:1149 +#: fotoxx.h:1150 msgid "Negative" msgstr "Negativo" -#: fotoxx.h:1150 +#: fotoxx.h:1151 msgid "New" msgstr "Nuovo" -#: fotoxx.h:1151 +#: fotoxx.h:1152 msgid "Next" msgstr "Prossima" -#: fotoxx.h:1152 zfuncs.cc:9658 +#: fotoxx.h:1153 zfuncs.cc:9600 msgid "No" msgstr "No" -#: fotoxx.h:1153 +#: fotoxx.h:1154 msgid "no images" msgstr "nessuna immagine" -#: fotoxx.h:1155 +#: fotoxx.h:1156 msgid "no selection" msgstr "nessuna selezione" -#: fotoxx.h:1156 +#: fotoxx.h:1157 msgid "OK" msgstr "Ok" -#: fotoxx.h:1158 +#: fotoxx.h:1159 msgid "Paste" msgstr "Incolla" -#: fotoxx.h:1159 +#: fotoxx.h:1160 msgid "Pause" msgstr "Sospendi" -#: fotoxx.h:1160 +#: fotoxx.h:1161 msgid "Percent" msgstr "Percentuale" -#: fotoxx.h:1162 +#: fotoxx.h:1163 msgid "Presets" msgstr "Fisse: " -#: fotoxx.h:1163 +#: fotoxx.h:1164 msgid "Prev" msgstr "Preced." -#: fotoxx.h:1164 +#: fotoxx.h:1165 msgid "Proceed" msgstr "Prosegui" -#: fotoxx.h:1166 +#: fotoxx.h:1167 msgid "range" msgstr "intervallo" -#: fotoxx.h:1169 +#: fotoxx.h:1170 msgid "Reduce" msgstr "Riduci" -#: fotoxx.h:1170 +#: fotoxx.h:1171 msgid "Remove" msgstr "Elimina" -#: fotoxx.h:1172 +#: fotoxx.h:1173 msgid "Replace" msgstr "Rimpiazza" -#: fotoxx.h:1173 +#: fotoxx.h:1174 msgid "Reserved" msgstr "Riservato" -#: fotoxx.h:1174 +#: fotoxx.h:1175 msgid "Reset" msgstr "Azzera" -#: fotoxx.h:1175 zfuncs.cc:10584 +#: fotoxx.h:1176 zfuncs.cc:10526 msgid "right" msgstr "Destra" -#: fotoxx.h:1176 +#: fotoxx.h:1177 msgid "Rotate" msgstr "Ruota" -#: fotoxx.h:1178 -msgid "Unknown file type, save as tiff/jpeg/png to edit" -msgstr "Tipo di file sconosciuto. Salvarlo come TIFF/JPEG/PNG per modificarlo" - #: fotoxx.h:1179 msgid "Search" msgstr "Ricerca" @@ -5333,7 +5290,7 @@ msgid "exceed %d files" msgstr "più di %d file" -#: fotoxx.h:1189 zfuncs.cc:10572 +#: fotoxx.h:1189 zfuncs.cc:10514 msgid "top" msgstr "alto" @@ -5381,11 +5338,11 @@ msgid "y-offset" msgstr "Origine Y:" -#: fotoxx.h:1204 zfuncs.cc:9658 +#: fotoxx.h:1204 zfuncs.cc:9600 msgid "Yes" msgstr "Si" -#: zfuncs.cc:1687 +#: zfuncs.cc:1693 #, c-format msgid "" "create directory? \n" @@ -5394,149 +5351,190 @@ "creare directory? \n" " %s" -#: zfuncs.cc:4530 +#: zfuncs.cc:4535 msgid "user guide not found" msgstr "Guida utente non trovata" -#: zfuncs.cc:5345 +#: zfuncs.cc:5287 #, c-format msgid "cannot open file %s" msgstr "non riesco ad aprire il file %s" -#: zfuncs.cc:5381 +#: zfuncs.cc:5323 msgid "save screen to file" msgstr "Salva schermo in un file" -#: zfuncs.cc:9744 zfuncs.cc:10239 zfuncs.cc:10559 +#: zfuncs.cc:9686 zfuncs.cc:10181 zfuncs.cc:10501 msgid "cancel" msgstr "Annulla" -#: zfuncs.cc:10200 +#: zfuncs.cc:10142 msgid "choose file" msgstr "Scegli file" -#: zfuncs.cc:10205 +#: zfuncs.cc:10147 msgid "choose files" msgstr "Scegli i file" -#: zfuncs.cc:10210 +#: zfuncs.cc:10152 msgid "save" msgstr "Salva" -#: zfuncs.cc:10216 +#: zfuncs.cc:10158 msgid "choose folder" msgstr "Scegli cartella" -#: zfuncs.cc:10221 +#: zfuncs.cc:10163 msgid "choose folders" msgstr "Scegli cartelle" -#: zfuncs.cc:10226 +#: zfuncs.cc:10168 msgid "create folder" msgstr "Crea cartella" -#: zfuncs.cc:10233 +#: zfuncs.cc:10175 msgid "hidden" msgstr "Nascosto" -#: zfuncs.cc:10559 +#: zfuncs.cc:10501 msgid "done" msgstr "Fatto" -#: zfuncs.cc:10559 zfuncs.cc:10568 +#: zfuncs.cc:10501 zfuncs.cc:10510 msgid "margins" msgstr "Margini" -#: zfuncs.cc:10589 +#: zfuncs.cc:10531 msgid "image scale" msgstr "Riscala immagine" -#: zfuncs.cc:10591 +#: zfuncs.cc:10533 msgid "percent" msgstr "percento" -#: zfuncs.cc:10598 +#: zfuncs.cc:10540 msgid "image" msgstr "immagine" -#: zfuncs.cc:10602 +#: zfuncs.cc:10544 msgid "width" msgstr "larghezza" -#: zfuncs.cc:10606 +#: zfuncs.cc:10548 msgid "height" msgstr "altezza" -#~ msgid "select area within mouse" -#~ msgstr "Seleziona area col mouse" +#~ msgid "extend to corner:" +#~ msgstr "estendi agli angoli:" -#~ msgid "select one matching color within mouse" -#~ msgstr "Seleziona un colore simile col mouse" +#~ msgid "searching" +#~ msgstr "in ricerca" -#~ msgid "select all matching colors within mouse" -#~ msgstr "Seleziona tutti i colori entro il mouse" +#~ msgid "success" +#~ msgstr "Successo" -#~ msgid "firewall" -#~ msgstr "Confinamento" +#~ msgid "UFraw not installed" +#~ msgstr "UFraw not installed" -#~ msgid "" -#~ "Click one time inside each enclosed area \n" -#~ "(possible gaps in the outline will be found). \n" -#~ "Press F1 for help." +#~ msgid "Open RAW file (ufraw)" +#~ msgstr "Apri file RAW (ufraw)" + +#~ msgid "Cannot create desktop trash folder: %s" +#~ msgstr "Impossibile creare un cestino sul desktop: %s" + +#~ msgid "error: %s" +#~ msgstr "errore: %s" + +#~ msgid "Flatten 1" +#~ msgstr "Appiattimento 1" + +#~ msgid "Flatten 2" +#~ msgstr "Appiattimento 2" + +#~ msgid "Open RAW (ufraw)" +#~ msgstr "Apre file RAW (con ufraw)" + +#~ msgid "Unknown file type, save as tiff/jpeg/png to edit" #~ msgstr "" -#~ "Clicca ogni singola area chiusa: \n" -#~ "eventuali interruzioni nel contorno saranno rilevate. \n" -#~ "Premi F1 per l'aiuto" +#~ "Tipo di file sconosciuto. Salvarlo come TIFF/JPEG/PNG per modificarlo" -#~ msgid "linear" -#~ msgstr "Lineare" +#~ msgid "edit geotags (location data)" +#~ msgstr "Gestisce i geotag (dati sulla locazione fisica)" -#~ msgid "curved" -#~ msgstr "Curvato" +#~ msgid "Edit Geotags" +#~ msgstr "Modifica i Geotags" -#~ msgid "auto-trim" -#~ msgstr "Autoritaglio" +#~ msgid "Geocoding web service courtesy of" +#~ msgstr "Il servizio web Geocoding è cortesia di" -#~ msgid "Copy Image File" -#~ msgstr "Copia file" +#~ msgid "case-sensitive match" +#~ msgstr "Considera maiuscole e minuscole" -#~ msgid "Move Image File" -#~ msgstr "Sposta file" +#~ msgid "other criteria" +#~ msgstr "altri criteri" -#~ msgid "new location" -#~ msgstr "nuova destinazione" +#~ msgid "Add Geotags Search Criteria" +#~ msgstr "Aggiungi criteri di ricerca Geotags" -#~ msgid "Trash Image File" -#~ msgstr "Cestina l'immagine" +#~ msgid "range (km)" +#~ msgstr "distanza (km)" -#~ msgid "(automatic step to next image)" -#~ msgstr "(avanzamento automatico alla prossima foto)" +#~ msgid "error in latitude/longitude/range" +#~ msgstr "errore nella specifica di latitudine/longitudine/distanza" -#~ msgid "" -#~ "Linux standard trash does not work. \n" -#~ "Desktop trash folder will be created." -#~ msgstr "" -#~ "Il cestino standard di Linux non funziona. \n" -#~ "Verrà creato un cestino nel desktop" +#~ msgid "search will use only latitude/longitude" +#~ msgstr "La ricerca userà solo latitudine/longitudine" -#~ msgid "" -#~ "Linux and Desktop trash do not work. \n" -#~ "Permanently delete the image file?" -#~ msgstr "" -#~ "I cestini (di Linux e sul desktop) non funzionano. \n" -#~ "Eliminare definitivamente il file?" +#~ msgid "Geotags" +#~ msgstr "Geotags" -#~ msgid "Cannot create trash folder: %s" -#~ msgstr "Impossible creare il cestino: %s" +#~ msgid "newest" +#~ msgstr "più nuovo" -#~ msgid "Move read-only file to trash?" -#~ msgstr "Spostare il file in sola lettura nel cestino?" +#~ msgid "recent" +#~ msgstr "recente" -#~ msgid "Delete Image File - CANNOT BE REVERSED" -#~ msgstr "Cancella file - NON SI PUO' ANNULLARE" +#~ msgid "Voodoo Enhance" +#~ msgstr "Miglioramento magico Voodoo" -#~ msgid "Undo Memory %d%c" -#~ msgstr "Memoria per Annulla %d%c" +#~ msgid "Move to Location" +#~ msgstr "Sposta a una posizione" + +#~ msgid "Copy to Location" +#~ msgstr "Copia in una posizione" + +#~ msgid "Show Brightness Dist." +#~ msgstr "Mostra distribuzione luminosità" + +#~ msgid "Brightness Ramp" +#~ msgstr "Rampe di luce/colore" + +#~ msgid "Brightness Dist." +#~ msgstr "Dist. della luminosità" + +#~ msgid "Delete Image File" +#~ msgstr "Elimina file" + +#~ msgid "Adjust brightness distribution" +#~ msgstr "Regola distribuzione della luminosità" + +#~ msgid "Edit image location and geotags" +#~ msgstr "Modifica luogo e Geotags dell'immagine" + +#~ msgid "Edit image tags/caption/rating ..." +#~ msgstr "Modifica etichette/titolo/votazione..." + +#~ msgid "Permanently delete image file" +#~ msgstr "Elimina permanentemente il file" + +#~ msgid "Move image file to Trash" +#~ msgstr "Sposta il file nel cestino" + +#~ msgid "File: Open, RAW, Rename, Trash, Print" +#~ msgstr "File: apri, RAW, Rinomina, Cestina, Stampa" + +#~ msgid "Image color to match and adjust:" +#~ msgstr "Colore selezionato per la regolazione" #~ msgid "" #~ "Undo memory limit has been reached. \n" @@ -5545,80 +5543,109 @@ #~ "La memoria per Annulla è finita. \n" #~ "Salva con [Fatto], poi riprendi il lavoro." -#~ msgid "Image color to match and adjust:" -#~ msgstr "Colore selezionato per la regolazione" +#~ msgid "Undo Memory %d%c" +#~ msgstr "Memoria per Annulla %d%c" -#~ msgid "File: Open, RAW, Rename, Trash, Print" -#~ msgstr "File: apri, RAW, Rinomina, Cestina, Stampa" +#~ msgid "Delete Image File - CANNOT BE REVERSED" +#~ msgstr "Cancella file - NON SI PUO' ANNULLARE" -#~ msgid "Move image file to Trash" -#~ msgstr "Sposta il file nel cestino" +#~ msgid "Move read-only file to trash?" +#~ msgstr "Spostare il file in sola lettura nel cestino?" -#~ msgid "Permanently delete image file" -#~ msgstr "Elimina permanentemente il file" +#~ msgid "Cannot create trash folder: %s" +#~ msgstr "Impossible creare il cestino: %s" -#~ msgid "Edit image tags/caption/rating ..." -#~ msgstr "Modifica etichette/titolo/votazione..." +#~ msgid "" +#~ "Linux and Desktop trash do not work. \n" +#~ "Permanently delete the image file?" +#~ msgstr "" +#~ "I cestini (di Linux e sul desktop) non funzionano. \n" +#~ "Eliminare definitivamente il file?" -#~ msgid "Edit image location and geotags" -#~ msgstr "Modifica luogo e Geotags dell'immagine" +#~ msgid "" +#~ "Linux standard trash does not work. \n" +#~ "Desktop trash folder will be created." +#~ msgstr "" +#~ "Il cestino standard di Linux non funziona. \n" +#~ "Verrà creato un cestino nel desktop" -#~ msgid "Adjust brightness distribution" -#~ msgstr "Regola distribuzione della luminosità" +#~ msgid "(automatic step to next image)" +#~ msgstr "(avanzamento automatico alla prossima foto)" -#~ msgid "Delete Image File" -#~ msgstr "Elimina file" +#~ msgid "Trash Image File" +#~ msgstr "Cestina l'immagine" -#~ msgid "Brightness Dist." -#~ msgstr "Dist. della luminosità" +#~ msgid "new location" +#~ msgstr "nuova destinazione" -#~ msgid "Brightness Ramp" -#~ msgstr "Rampe di luce/colore" +#~ msgid "Move Image File" +#~ msgstr "Sposta file" -#~ msgid "Show Brightness Dist." -#~ msgstr "Mostra distribuzione luminosità" +#~ msgid "Copy Image File" +#~ msgstr "Copia file" -#~ msgid "Copy to Location" -#~ msgstr "Copia in una posizione" +#~ msgid "auto-trim" +#~ msgstr "Autoritaglio" -#~ msgid "Move to Location" -#~ msgstr "Sposta a una posizione" +#~ msgid "curved" +#~ msgstr "Curvato" -#~ msgid "Voodoo Enhance" -#~ msgstr "Miglioramento magico Voodoo" +#~ msgid "linear" +#~ msgstr "Lineare" -#~ msgid "recent" -#~ msgstr "recente" +#~ msgid "" +#~ "Click one time inside each enclosed area \n" +#~ "(possible gaps in the outline will be found). \n" +#~ "Press F1 for help." +#~ msgstr "" +#~ "Clicca ogni singola area chiusa: \n" +#~ "eventuali interruzioni nel contorno saranno rilevate. \n" +#~ "Premi F1 per l'aiuto" -#~ msgid "newest" -#~ msgstr "più nuovo" +#~ msgid "firewall" +#~ msgstr "Confinamento" -#~ msgid "Geotags" -#~ msgstr "Geotags" +#~ msgid "select all matching colors within mouse" +#~ msgstr "Seleziona tutti i colori entro il mouse" -#~ msgid "search will use only latitude/longitude" -#~ msgstr "La ricerca userà solo latitudine/longitudine" +#~ msgid "select one matching color within mouse" +#~ msgstr "Seleziona un colore simile col mouse" -#~ msgid "error in latitude/longitude/range" -#~ msgstr "errore nella specifica di latitudine/longitudine/distanza" +#~ msgid "select area within mouse" +#~ msgstr "Seleziona area col mouse" -#~ msgid "range (km)" -#~ msgstr "distanza (km)" +#~ msgid "RAW command" +#~ msgstr "Comando RAW" -#~ msgid "Add Geotags Search Criteria" -#~ msgstr "Aggiungi criteri di ricerca Geotags" +#~ msgid "defaults" +#~ msgstr "Standard" -#~ msgid "other criteria" -#~ msgstr "altri criteri" +#~ msgid "default" +#~ msgstr "Standard" -#~ msgid "case-sensitive match" -#~ msgstr "Considera maiuscole e minuscole" +#~ msgid "calculated" +#~ msgstr "calcolata" -#~ msgid "Geocoding web service courtesy of" -#~ msgstr "Il servizio web Geocoding è cortesia di" +#~ msgid "fixed" +#~ msgstr "fissa" -#~ msgid "Edit Geotags" -#~ msgstr "Modifica i Geotags" +#~ msgid "camera" +#~ msgstr "fotocamera" -#~ msgid "edit geotags (location data)" -#~ msgstr "Gestisce i geotag (dati sulla locazione fisica)" +#~ msgid "gamma curve" +#~ msgstr "curva del gamma" + +#~ msgid "color space" +#~ msgstr "spazio di colore" + +#~ msgid "interpolation" +#~ msgstr "interpolazione" + +#~ msgid "white balance" +#~ msgstr "bilanciamento del bianco" + +#~ msgid "libraw not installed" +#~ msgstr "Programma libraw non installato" + +#~ msgid "Batch Convert RAW Files (libraw)" +#~ msgstr "Convertire immagini RAW (libraw) in blocco" diff -Nru fotoxx-16.06/locales/translate-nl.po fotoxx-16.07/locales/translate-nl.po --- fotoxx-16.06/locales/translate-nl.po 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/locales/translate-nl.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,5600 +0,0 @@ -# Translation of fotoxx-nl.po to dutch (nl) -# -msgid "" -msgstr "" -"Project-Id-Version: fotoxx 14.08\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-31 15:14+0200\n" -"PO-Revision-Date: 2014-08-13 17:52+0100\n" -"Last-Translator: Arthur Kalverboer \n" -"Language-Team: Dutch\n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Poedit-Language: Dutch\n" -"X-Poedit-Country: NETHERLANDS\n" - -#: f.albums.cc:87 -msgid "" -"Right-click album thumbnail to cut/copy \n" -"to cache, insert from cache, or remove." -msgstr "" - -#: f.albums.cc:89 -msgid "Drag album thumbnail to new position." -msgstr "" - -#: f.albums.cc:118 f.widgets.cc:583 -msgid "Manage Albums" -msgstr "" - -#: f.albums.cc:129 f.albums.cc:266 -msgid "Create or replace an album" -msgstr "" - -#: f.albums.cc:131 -msgid "Album to view or edit" -msgstr "" - -#: f.albums.cc:133 -msgid "Select images, add to cache" -msgstr "Selecteer afbeeldingen, aan cache toevoegen" - -#: f.albums.cc:135 -msgid "Clear image cache" -msgstr "Schonen afbeeldings cache" - -#: f.albums.cc:137 f.albums.cc:159 -msgid "Delete an album" -msgstr "" - -#: f.albums.cc:158 -msgid "Choose Album" -msgstr "" - -#: f.albums.cc:160 -#, c-format -msgid "Image cache has %d images" -msgstr "" - -#: f.albums.cc:161 -msgid "cache added to empty album" -msgstr "" - -#: f.albums.cc:215 -#, c-format -msgid "delete %s ?" -msgstr "verwijder %s ?" - -#: f.albums.cc:250 -#, c-format -msgid "fill from image cache (%d images)" -msgstr "vullen vanuit afbeeldings cache (%d afbeeldingen)" - -#: f.albums.cc:268 f.albums.cc:305 -msgid "Album Name" -msgstr "" - -#: f.albums.cc:274 -msgid "make an initially empty album" -msgstr "" - -#: f.albums.cc:276 -msgid "fill from current gallery" -msgstr "vullen vanuit huidige galerie" - -#: f.albums.cc:319 -msgid "enter an album name" -msgstr "" - -#: f.albums.cc:346 -msgid "gallery is empty" -msgstr "galerie is leeg" - -#: f.albums.cc:373 -msgid "new album created" -msgstr "" - -#: f.albums.cc:1157 -msgid "instant" -msgstr "moment" - -#: f.albums.cc:1158 -msgid "fade-in" -msgstr "fade-in" - -#: f.albums.cc:1159 -msgid "roll-right" -msgstr "rol-rechts" - -#: f.albums.cc:1160 -msgid "roll-down" -msgstr "rol-neer" - -#: f.albums.cc:1161 -msgid "venetian" -msgstr "venetiaan" - -#: f.albums.cc:1162 -msgid "grate" -msgstr "tralie" - -#: f.albums.cc:1163 -msgid "rectangle" -msgstr "rechthoek" - -#: f.albums.cc:1164 -msgid "implode" -msgstr "" - -#: f.albums.cc:1165 -msgid "explode" -msgstr "" - -#: f.albums.cc:1166 -msgid "radar" -msgstr "radar" - -#: f.albums.cc:1167 -msgid "spiral" -msgstr "" - -#: f.albums.cc:1168 -msgid "Japanese-fan" -msgstr "" - -#: f.albums.cc:1169 -msgid "jaws" -msgstr "kaken" - -#: f.albums.cc:1170 -msgid "ellipse" -msgstr "ellips" - -#: f.albums.cc:1171 -msgid "raindrops" -msgstr "regendruppels" - -#: f.albums.cc:1172 -msgid "doubledoor" -msgstr "nieuw transitie type" - -#: f.albums.cc:1173 -msgid "rotate" -msgstr "draaien" - -#: f.albums.cc:1174 -msgid "fallover" -msgstr "" - -#: f.albums.cc:1175 -msgid "spheroid" -msgstr "" - -#: f.albums.cc:1176 -msgid "turn-page" -msgstr "" - -#: f.albums.cc:1177 -msgid "french-door" -msgstr "" - -#: f.albums.cc:1197 f.widgets.cc:584 -msgid "Slide Show" -msgstr "Diashow starten" - -#: f.albums.cc:1208 -msgid "Clip Limit" -msgstr "Clip Limiet" - -#: f.albums.cc:1212 -msgid "Music File" -msgstr "Muziek Bestand" - -#: f.albums.cc:1217 -msgid "Full Screen" -msgstr "Full Screen" - -#: f.albums.cc:1218 -msgid "Auto-replay" -msgstr "" - -#: f.albums.cc:1219 -msgid "KB functions" -msgstr "" - -#: f.albums.cc:1222 -msgid "Customize:" -msgstr "Aanpassen:" - -#: f.albums.cc:1223 -msgid "transitions" -msgstr "transities" - -#: f.albums.cc:1224 -msgid "image files" -msgstr "afbeeldings bestanden" - -#: f.albums.cc:1229 f.albums.cc:1356 -#, c-format -msgid "%d images" -msgstr "%d afbeeldingen" - -#: f.albums.cc:1251 f.albums.cc:1326 f.albums.cc:1422 f.albums.cc:1661 -#: f.albums.cc:1946 f.albums.cc:1963 f.albums.cc:2177 -msgid "invalid album" -msgstr "" - -#: f.albums.cc:1340 -msgid "open album" -msgstr "" - -#: f.albums.cc:1372 -msgid "Select music file" -msgstr "" - -#: f.albums.cc:1401 -msgid "select random (if 2+ enabled)" -msgstr "selecteer random (als 2+ geactiveerd)" - -#: f.albums.cc:1426 -msgid "Transition Preferences" -msgstr "Transitie Voorkeuren" - -#: f.albums.cc:1429 f.edit.cc:2008 -msgid "Settings File" -msgstr "Instellingen Bestand" - -#: f.albums.cc:1439 -msgid "transition" -msgstr "transitie" - -#: f.albums.cc:1440 -msgid "enabled" -msgstr "geactiveerd" - -#: f.albums.cc:1441 -msgid "slowdown" -msgstr "vertraging" - -#: f.albums.cc:1442 -msgid "preference" -msgstr "voorkeur" - -#: f.albums.cc:1517 f.albums.cc:1556 -msgid "invalid file" -msgstr "" - -#: f.albums.cc:1610 f.albums.cc:2162 -#, c-format -msgid "" -"file format error: \n" -" %s" -msgstr "" - -#: f.albums.cc:1667 -msgid "Image Preferences" -msgstr "Afbeeldings Voorkeuren" - -#: f.albums.cc:1671 f.edit.cc:1338 f.file.cc:1166 f.file.cc:1427 f.meta.cc:617 -#: f.meta.cc:1414 -msgid "Image File:" -msgstr "Afbeeldingsbestand:" - -#: f.albums.cc:1675 -msgid "Play tone when image shows" -msgstr "" - -#: f.albums.cc:1678 -msgid "Show image caption" -msgstr "" - -#: f.albums.cc:1683 -msgid "Show image comments" -msgstr "" - -#: f.albums.cc:1688 -msgid "Wait before zoom" -msgstr "" - -#: f.albums.cc:1693 -msgid "Zoom type:" -msgstr "" - -#: f.albums.cc:1694 -msgid "none" -msgstr "" - -#: f.albums.cc:1695 -msgid "zoom-in" -msgstr "" - -#: f.albums.cc:1696 -msgid "zoom-out" -msgstr "" - -#: f.albums.cc:1699 -msgid "Zoom size (x)" -msgstr "" - -#: f.albums.cc:1702 -msgid "Steps" -msgstr "Stappen" - -#: f.albums.cc:1706 -msgid "Zoom Center" -msgstr "" - -#: f.albums.cc:1710 -msgid "Wait after zoom" -msgstr "" - -#: f.albums.cc:1715 -msgid "Transition to next image" -msgstr "" - -#: f.albums.cc:1718 f.albums.cc:1821 -msgid "next" -msgstr "volgende" - -#: f.albums.cc:1811 -msgid "click on thumbnail to set zoom center" -msgstr "" - -#: f.area.cc:81 -msgid "Select Area for Edits" -msgstr "Uitsnede om te bewerken" - -#: f.area.cc:82 f.edit.cc:5919 -msgid "Press F1 for help" -msgstr "Druk F1 voor help" - -#: f.area.cc:91 -msgid "" -"Select Area not supported \n" -"by this edit function" -msgstr "" -"Uitsnede niet ondersteund \n" -"door deze bewerkingsfunctie" - -#: f.area.cc:121 -msgid "select rectangle" -msgstr "selecteer rechthoek" - -#: f.area.cc:122 -msgid "select ellipse" -msgstr "selecteer ellips" - -#: f.area.cc:125 -msgid "freehand draw" -msgstr "vrijehand tekenen" - -#: f.area.cc:126 -msgid "follow edge" -msgstr "rand volgen" - -#: f.area.cc:127 -msgid "draw/replace" -msgstr "tekenen/vervangen" - -#: f.area.cc:130 -msgid "select area within mouse circle" -msgstr "" - -#: f.area.cc:133 -msgid "select one matching color within mouse circle:" -msgstr "" - -#: f.area.cc:135 -msgid "" -"first select the checkbox, then \n" -"shift+click on image to set the color" -msgstr "" - -#: f.area.cc:139 -msgid "select all matching colors within mouse circle" -msgstr "" - -#: f.area.cc:143 f.edit.cc:5961 -msgid "mouse radius" -msgstr "muis straal" - -#: f.area.cc:146 -msgid "match level %" -msgstr "match nivo %" - -#: f.area.cc:151 -msgid "search range" -msgstr "zoek bereik" - -#: f.area.cc:155 -msgid "Area Edge Blend Width" -msgstr "Uitsnede Rand Meng Breedte" - -#: f.area.cc:158 -msgid "Edge Creep" -msgstr "Rand Vernauwen/Verwijden" - -#: f.area.cc:163 -msgid "Line Color:" -msgstr "" - -#: f.area.cc:183 f.area.cc:184 -msgid "area edits fade away within edge distance" -msgstr "uitsnede bewerkingen vervagen binnen rand afstand" - -#: f.area.cc:356 f.area.cc:539 -#, c-format -msgid "exceed %d edits" -msgstr "overschrijding %d bewerkingen" - -#: f.area.cc:1361 -msgid "" -"Click one time inside each enclosed area \n" -"(possible gaps in the outline will be found). \n" -"Press [Done] when finished. Press F1 for help." -msgstr "" - -#: f.area.cc:1389 -msgid "finish area" -msgstr "gereedmaken uitsnede" - -#: f.area.cc:1397 -msgid "extend to corner:" -msgstr "" - -#: f.area.cc:1438 -msgid "searching" -msgstr "bezig met zoeken" - -#: f.area.cc:1469 -msgid "outline has a gap" -msgstr "contour heeft een gat" - -#: f.area.cc:1473 -msgid "success" -msgstr "succes" - -#: f.area.cc:1618 f.area.cc:1645 -#, c-format -msgid "found %d pixels" -msgstr "gevonden %d pixels" - -#: f.area.cc:1940 f.area.cc:1957 f.area.cc:1977 f.area.cc:2301 f.area.cc:2378 -#: f.area.cc:2484 -msgid "the area is not finished" -msgstr "de uitsnede is niet gereed" - -#: f.area.cc:2066 -msgid "Edge calculation in progress" -msgstr "Berekening rand bezig" - -#: f.area.cc:2075 -msgid "Area Edge Calc" -msgstr "Randberekening van uitsnede" - -#: f.area.cc:2519 -msgid "save area as a PNG file" -msgstr "" - -#: f.area.cc:2551 -msgid "load area from a file" -msgstr "" - -#: f.area.cc:2594 -msgid "position with mouse click/drag" -msgstr "positioneer met muis klik/sleep" - -#: f.area.cc:2634 -msgid "Paste Image" -msgstr "Afbeelding plakken" - -#: f.area.cc:2639 f.batch.cc:1360 f.batch.cc:1847 -msgid "resize" -msgstr "herschalen" - -#: f.batch.cc:126 f.widgets.cc:564 -msgid "Batch Convert" -msgstr "Batchgewijs Converteren" - -#: f.batch.cc:133 f.file.cc:940 -msgid "New Name" -msgstr "nieuwe naam" - -#: f.batch.cc:138 -msgid "Sequence Numbers" -msgstr "" - -#: f.batch.cc:140 -msgid "base" -msgstr "basis" - -#: f.batch.cc:143 -msgid "adder" -msgstr "toevoeging" - -#: f.batch.cc:148 -msgid "New Location" -msgstr "Nieuwe Locatie" - -#: f.batch.cc:153 -msgid "New File Type" -msgstr "Nieuw Bestands Type" - -#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4389 -msgid "no change" -msgstr "geen verandering" - -#: f.batch.cc:160 -msgid "max. Width" -msgstr "max. Breedte" - -#: f.batch.cc:169 -msgid "Delete Originals" -msgstr "Verwijder Originelen" - -#: f.batch.cc:170 f.batch.cc:746 -msgid "Copy Metadata" -msgstr "Kopieren Metadata" - -#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:466 -#: f.widgets.cc:737 -msgid "Upright" -msgstr "Rechtop" - -#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1369 f.batch.cc:1856 -#: f.repair.cc:125 f.widgets.cc:482 -msgid "Sharpen" -msgstr "Afbeelding verscherpen" - -#: f.batch.cc:184 f.batch.cc:749 -msgid "Overlay Image" -msgstr "" - -#: f.batch.cc:187 -msgid "Width %" -msgstr "" - -#: f.batch.cc:192 -msgid "Position" -msgstr "" - -#: f.batch.cc:204 -msgid "Make constant size for screen:" -msgstr "" - -#: f.batch.cc:339 -msgid "file type not supported" -msgstr "bestandstype niet ondersteund" - -#: f.batch.cc:468 -msgid "cannot create new file" -msgstr "kan nieuw bestand niet aanmaken" - -#: f.batch.cc:514 -msgid "updating albums ..." -msgstr "" - -#: f.batch.cc:591 f.batch.cc:1642 f.batch.cc:2044 f.file.cc:1217 -msgid "Select directory" -msgstr "Selecteer map" - -#: f.batch.cc:665 -msgid "" -"new name/base/adder unreasonable\n" -" e.g. newname ### 100 10\n" -" or ... [oldname] ..." -msgstr "" - -#: f.batch.cc:689 -#, c-format -msgid "max. size %d x %d is not reasonable" -msgstr "max. grootte %d x %d is niet logisch" - -#: f.batch.cc:696 -msgid "specify overlay image file" -msgstr "" - -#: f.batch.cc:712 -msgid "specify overlay position" -msgstr "" - -#: f.batch.cc:740 -#, c-format -msgid "Convert %d image files" -msgstr "Converteren %d afbeeldingen" - -#: f.batch.cc:741 -msgid "Rename to" -msgstr "Hernoemen naar" - -#: f.batch.cc:742 -msgid "Convert to" -msgstr "Converteren naar" - -#: f.batch.cc:743 -msgid "Resize within" -msgstr "Herschalen in" - -#: f.batch.cc:744 -msgid "Output to" -msgstr "Uitvoer naar" - -#: f.batch.cc:750 -msgid "*** Delete Originals ***" -msgstr "" - -#: f.batch.cc:751 -msgid "*** Replace Originals ***" -msgstr "" - -#: f.batch.cc:752 -msgid "PROCEED?" -msgstr "DOORGAAN?" - -#: f.batch.cc:907 f.widgets.cc:565 -msgid "Batch Upright" -msgstr "Batchgewijs Rechtop" - -#: f.batch.cc:913 -msgid "Survey all files" -msgstr "" - -#: f.batch.cc:968 -msgid "file cannot be read" -msgstr "" - -#: f.batch.cc:1086 -msgid "cannot select both options" -msgstr "" - -#: f.batch.cc:1130 f.widgets.cc:566 -msgid "Batch Delete/Trash" -msgstr "" - -#: f.batch.cc:1135 -msgid "delete" -msgstr "" - -#: f.batch.cc:1138 -msgid "trash" -msgstr "" - -#: f.batch.cc:1302 -msgid "Batch Convert RAW Files (DCraw)" -msgstr "Batchgewijs Converteren RAW Bestanden (DCraw)" - -#: f.batch.cc:1312 -msgid "DCraw not installed" -msgstr "DCraw niet geinstalleerd" - -#: f.batch.cc:1347 f.batch.cc:1834 -msgid "output location" -msgstr "uitvoer locatie" - -#: f.batch.cc:1352 f.batch.cc:1839 -msgid "output file type" -msgstr "output bestandstype" - -#: f.batch.cc:1371 f.batch.cc:1858 -msgid "amount" -msgstr "hoeveelheid" - -#: f.batch.cc:1374 f.batch.cc:1861 -msgid "threshold" -msgstr "drempel" - -#: f.batch.cc:1383 -msgid "white balance" -msgstr "witbalans" - -#: f.batch.cc:1384 -msgid "interpolation" -msgstr "interpolatie" - -#: f.batch.cc:1385 -msgid "color space" -msgstr "kleurruimte" - -#: f.batch.cc:1386 -msgid "gamma curve" -msgstr "gamma curve" - -#: f.batch.cc:1389 -msgid "camera" -msgstr "camera" - -#: f.batch.cc:1390 -msgid "fixed" -msgstr "vast" - -#: f.batch.cc:1391 -msgid "calculated" -msgstr "berekend" - -#: f.batch.cc:1408 -msgid "default" -msgstr "default" - -#: f.batch.cc:1414 -msgid "defaults" -msgstr "defaults" - -#: f.batch.cc:1796 -msgid "Batch Convert RAW Files (Raw Therapee)" -msgstr "Batch Converteren RAW Bestanden (Raw Therapee)" - -#: f.batch.cc:1806 f.file.cc:426 -msgid "Raw Therapee not installed" -msgstr "Raw Therapee not installed" - -#: f.batch.cc:2141 -msgid "start" -msgstr "" - -#: f.batch.cc:2142 -msgid "begin making a script file" -msgstr "" - -#: f.batch.cc:2144 -msgid "close" -msgstr "" - -#: f.batch.cc:2145 -msgid "finish making a script file" -msgstr "" - -#: f.batch.cc:2147 -msgid "run" -msgstr "" - -#: f.batch.cc:2148 -msgid "execute a script file" -msgstr "" - -#: f.batch.cc:2202 -msgid "script already started" -msgstr "" - -#: f.batch.cc:2206 -msgid "open new script file" -msgstr "" - -#: f.batch.cc:2238 -msgid "script file error" -msgstr "" - -#: f.batch.cc:2243 -#, c-format -msgid "%s added to script" -msgstr "" - -#: f.batch.cc:2256 -msgid "no script file was started" -msgstr "" - -#: f.batch.cc:2264 -msgid "script file closed" -msgstr "" - -#: f.batch.cc:2283 -msgid "script file is not closed" -msgstr "" - -#: f.batch.cc:2287 -msgid "select script file to run" -msgstr "" - -#: f.batch.cc:2289 -msgid "open script file" -msgstr "" - -#: f.batch.cc:2296 -msgid "unknown script file" -msgstr "" - -#: f.batch.cc:2303 -#, c-format -msgid "" -"script file: %s \n" -" %s" -msgstr "" - -#: f.batch.cc:2314 -msgid "select image files to be processed" -msgstr "" - -#: f.batch.cc:2326 f.batch.cc:2375 -#, c-format -msgid "" -"open failure: %s \n" -" %s" -msgstr "" - -#: f.batch.cc:2347 -#, c-format -msgid "unknown edit function: %s" -msgstr "" - -#: f.batch.cc:2356 -#, c-format -msgid "load widgets failed: %s" -msgstr "" - -#: f.batch.cc:2385 -#, c-format -msgid "script file format error: %s" -msgstr "" - -#: f.batch.cc:2430 -msgid "growisofs not installed" -msgstr "" - -#: f.batch.cc:2482 -msgid "no DVD/BlueRay device found" -msgstr "" - -#: f.batch.cc:2505 f.widgets.cc:570 -msgid "Burn Images to DVD/BlueRay" -msgstr "" - -#: f.batch.cc:2510 -msgid "Select device" -msgstr "" - -#: f.batch.cc:2635 f.widgets.cc:571 -msgid "Find Duplicate Images" -msgstr "" - -#: f.batch.cc:2637 f.tools.cc:1012 -msgid "Thumbnail size" -msgstr "" - -#: f.batch.cc:2640 -msgid "pixel difference" -msgstr "" - -#: f.batch.cc:2643 -msgid "pixel count" -msgstr "" - -#: f.batch.cc:2646 -msgid "Images:" -msgstr "" - -#: f.batch.cc:2647 -msgid "searching ..." -msgstr "" - -#: f.batch.cc:2649 -msgid "Duplicates:" -msgstr "" - -#: f.batch.cc:2667 -#, c-format -msgid "only %d image thumbnails found" -msgstr "" - -#: f.batch.cc:2875 f.widgets.cc:377 -msgid "Create a file of selected image files" -msgstr "" - -#: f.batch.cc:2899 f.batch.cc:2969 -msgid "Output File" -msgstr "" - -#: f.batch.cc:2918 -msgid "no input files selected" -msgstr "" - -#: f.batch.cc:2923 -msgid "no output file selected" -msgstr "" - -#: f.batch.cc:2937 f.tools.cc:643 -msgid "COMPLETED" -msgstr "VOLTOOID" - -#: f.bend.cc:92 f.widgets.cc:505 -msgid "Unbend" -msgstr "Ontkrommen" - -#: f.bend.cc:369 -msgid "" -" Click the four corners of a tetragon area. Press [apply]. \n" -" The image is warped to make the tetragon into a rectangle." -msgstr "" -"Klik op de hoeken van een vierhoek. Druk [Toepassen]. \n" -"De afbeelding wordt vervormd zodat de vierhoek in een \n" -"rechthoek veranderd. " - -#: f.bend.cc:386 -msgid "Perspective Correction" -msgstr "Perspectief Correctie" - -#: f.bend.cc:621 -msgid "must have 4 corners" -msgstr "4 hoeken verplicht" - -#: f.bend.cc:743 -msgid "" -" Select an area to warp using select area function. \n" -" Press [start warp] and pull area with mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, select another area or press [done]." -msgstr "" -" Selecteer een uitsnede met menu-functie [Uitsnede selecteren]. \n" -" Druk [start kromtrekken] en sleep uitsnede met de muis. \n" -" Herhalen tot het gewenste resultaat. \n" -" Indien gereed, een andere uitsnede selecteren of druk [Klaar]." - -#: f.bend.cc:756 f.widgets.cc:507 -msgid "Warp area" -msgstr "Kromtrekken uitsnede" - -#: f.bend.cc:761 -msgid "start warp" -msgstr "Start kromtrekken" - -#: f.bend.cc:819 f.effects.cc:5686 -msgid "no active Select Area" -msgstr "geen actieve Uitsnede" - -#: f.bend.cc:1160 f.bend.cc:1474 -msgid "" -" Pull an image position using the mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, press [done]." -msgstr "" -" Sleep de plaats van een afbeelding met de muis. \n" -" Herhalen tot het gewenste resultaat. \n" -" Indien gereed, druk [Klaar]." - -#: f.bend.cc:1178 f.widgets.cc:508 -msgid "Warp curved" -msgstr "Kromtrekken gebogen" - -#: f.bend.cc:1187 f.mashup.cc:1845 -msgid "warp span" -msgstr "kromtrekken spanwijdte" - -#: f.bend.cc:1492 f.widgets.cc:509 -msgid "Warp linear" -msgstr "Kromtrekken lineair" - -#: f.bend.cc:1807 -msgid "" -" Pull on an image corner using the mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, press [done]." -msgstr "" -" Sleep een hoek van de afbeelding. \n" -" Herhalen tot het gewenste resultaat. \n" -" Indien gereed, druk [Klaar]." - -#: f.bend.cc:1823 f.widgets.cc:510 -msgid "Warp affine" -msgstr "Kromtrekken affine" - -#: f.bend.cc:2169 -msgid "Flatten Book Page Photo" -msgstr "Platstrijken Foto van Pagina" - -#: f.bend.cc:2170 -msgid "" -"Trim image to isolate one page. \n" -"Map top and bottom edges with \n" -"4+ mouse clicks, then flatten: " -msgstr "" -"Bijsnijden om een pagina te isoleren. \n" -"Markeer bovenste en onderste randen \n" -"met 4+ muisklikken, dan platstrijken:" - -#: f.bend.cc:2173 -msgid "Stretch curved-down surfaces:" -msgstr "Strekken gekromde oppervlakken:" - -#: f.bend.cc:2228 -msgid "top:" -msgstr "boven:" - -#: f.bend.cc:2231 -msgid "bottom:" -msgstr "onder:" - -#: f.bend.cc:2614 f.widgets.cc:512 -msgid "Spherical Projection" -msgstr "" - -#: f.bend.cc:2658 -msgid "Magnify" -msgstr "" - -#: f.bend.cc:2834 -msgid "" -" Select areas to remain unchanged. \n" -" Pull image from upper left corner. \n" -" When finished, press [done]." -msgstr "" - -#: f.bend.cc:2850 f.widgets.cc:513 -msgid "Selective Rescale" -msgstr "" - -#: f.bend.cc:2875 -msgid "select areas first" -msgstr "" - -#: f.combine.cc:2105 f.combine.cc:2737 f.combine.cc:3393 f.combine.cc:3925 -msgid "Select 2 to 9 files" -msgstr "Selecteer 2 tot 9 bestanden" - -#: f.combine.cc:2126 f.combine.cc:2758 f.combine.cc:3414 f.combine.cc:3946 -msgid "Images are not all the same size" -msgstr "Afbeeldingen hebben niet dezelfde grootte" - -#: f.combine.cc:2470 -msgid "Adjust Image Contributions" -msgstr "Instellen helderheidsbijdragen per afbeelding" - -#: f.combine.cc:2474 -msgid "dark pixels" -msgstr "donkere pixels" - -#: f.combine.cc:2476 -msgid "light pixels" -msgstr "heldere pixels" - -#: f.combine.cc:2478 -msgid "file:" -msgstr "bestand:" - -#: f.combine.cc:2994 -msgid "Paint and Warp Image" -msgstr "Schilderen en kromtrekken afbeelding" - -#: f.combine.cc:2998 f.combine.cc:3643 f.combine.cc:6252 f.effects.cc:4413 -#: f.widgets.cc:602 f.widgets.cc:626 f.widgets.cc:650 f.widgets.cc:664 -msgid "Image" -msgstr "Afbeelding" - -#: f.combine.cc:3002 -msgid "paint" -msgstr "schilderen" - -#: f.combine.cc:3003 -msgid "warp" -msgstr "kromtrekken" - -#: f.combine.cc:3641 -msgid "Select and Paint Image" -msgstr "Selecteer en schilder afbeelding" - -#: f.combine.cc:4117 -msgid "Adjust Pixel Composition" -msgstr "Instellen Pixel Samenstelling" - -#: f.combine.cc:4119 -msgid "use average" -msgstr "gebruik gemiddelde" - -#: f.combine.cc:4120 -msgid "use median" -msgstr "gebruik mediaan" - -#: f.combine.cc:4122 -msgid "omit low pixel" -msgstr "weglaten lage pixels" - -#: f.combine.cc:4123 -msgid "omit high pixel" -msgstr "weglaten hoge pixels" - -#: f.combine.cc:4386 f.combine.cc:5501 -msgid "Select 2 to 4 files" -msgstr "Selecteer 2 tot 4 bestanden" - -#: f.combine.cc:4461 -msgid "" -"Drag images into rough alignment.\n" -"To rotate, drag from lower edge." -msgstr "" -"Sleep afbeeldingen voor ruwe uitlijning.\n" -"Om te draaien, sleep de onderste rand." - -#: f.combine.cc:4463 f.combine.cc:5578 -msgid "no curve (scanned image)" -msgstr "geen curve (gescande afbeelding)" - -#: f.combine.cc:4464 f.combine.cc:5579 -msgid "Search for lens mm" -msgstr "Zoeken naar brandpuntsafstand" - -#: f.combine.cc:4465 f.combine.cc:5580 -msgid "Save lens mm → image EXIF" -msgstr "Bewaar lens mm → afbeelding EXIF" - -#: f.combine.cc:4527 f.combine.cc:5642 -msgid "Pre-align Images" -msgstr "Afbeelding globaal positioneren" - -#: f.combine.cc:4531 f.combine.cc:5646 -msgid "lens mm" -msgstr "brandpuntsafstand mm" - -#: f.combine.cc:4536 f.combine.cc:5651 -msgid "no auto warp" -msgstr "geen auto kromtrekken" - -#: f.combine.cc:4538 f.combine.cc:5653 -msgid "manual align" -msgstr "" - -#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:473 f.widgets.cc:736 -msgid "Resize" -msgstr "Herschalen" - -#: f.combine.cc:4541 f.combine.cc:5656 -msgid "resize window" -msgstr "herschalen venster" - -#: f.combine.cc:4549 f.combine.cc:5664 -msgid "do not warp images during auto-alignment" -msgstr "niet kromtrekken gedurende auto-uitlijning" - -#: f.combine.cc:4597 f.combine.cc:5712 -msgid "use two images only" -msgstr "gebruik slechts twee afbeeldingen" - -#: f.combine.cc:4625 f.combine.cc:4829 f.combine.cc:5017 f.combine.cc:5738 -#: f.combine.cc:5942 f.combine.cc:6130 -msgid "Too little overlap, cannot align" -msgstr "Te weinig overlap, uitlijnen niet mogelijk" - -#: f.combine.cc:5095 f.combine.cc:6208 -msgid "Match Brightness and Color" -msgstr "Match helderheid en kleur" - -#: f.combine.cc:5140 -msgid "Select image" -msgstr "Selecteer afbeelding" - -#: f.combine.cc:5155 f.combine.cc:6267 -msgid "auto color" -msgstr "auto kleur" - -#: f.combine.cc:5156 f.combine.cc:6268 -msgid "file color" -msgstr "bestand kleur" - -#: f.combine.cc:5162 f.combine.cc:6274 -msgid "mouse warp" -msgstr "muis kromtrekken" - -#: f.combine.cc:5165 -msgid "curved image" -msgstr "" - -#: f.combine.cc:5576 -msgid "" -"Drag images into rough alignment.\n" -"To rotate, drag from right edge." -msgstr "" -"Sleep afbeeldingen voor ruwe uitlijning.\n" -"Om te draaien, sleep de rechter rand." - -#: f.combine.cc:6483 -msgid "pano tools (hugin) not installed" -msgstr "" - -#: f.combine.cc:6492 -msgid "Select at least 2 files" -msgstr "" - -#: f.edit.cc:95 -msgid "Trim: drag middle to move, drag corners to resize" -msgstr "" -"Bijsnijden: sleep midden om te verplaatsen, sleep hoeken om te herschalen" - -#: f.edit.cc:96 -msgid "Minor rotate: drag right edge with mouse" -msgstr "Kleine draaiing: sleep rechter rand met de muis" - -#: f.edit.cc:162 f.widgets.cc:465 f.widgets.cc:735 -msgid "Trim/Rotate" -msgstr "Bijsnijden/Draaien" - -#: f.edit.cc:174 f.edit.cc:576 -msgid "ratio" -msgstr "ratio" - -#: f.edit.cc:178 -msgid "trim size:" -msgstr "bijsnijd grootte:" - -#: f.edit.cc:183 -msgid "Lock Ratio" -msgstr "verhoudingen vasthouden" - -#: f.edit.cc:185 -msgid "maximize trim box" -msgstr "" - -#: f.edit.cc:186 -msgid "use previous size" -msgstr "" - -#: f.edit.cc:187 -msgid "invert width/height" -msgstr "" - -#: f.edit.cc:188 -msgid "trim transparent edges" -msgstr "" - -#: f.edit.cc:189 -msgid "lock width/height ratio" -msgstr "" - -#: f.edit.cc:194 -msgid "Customize" -msgstr "Aanpassen" - -#: f.edit.cc:200 -msgid "level" -msgstr "" - -#: f.edit.cc:201 -msgid "use EXIF data if available" -msgstr "" - -#: f.edit.cc:204 -msgid "Rotate: degrees" -msgstr "Draaien: graden" - -#: f.edit.cc:572 -msgid "Trim Buttons" -msgstr "Bijsnijd knoppen" - -#: f.edit.cc:575 -msgid "label" -msgstr "label" - -#: f.edit.cc:1335 -msgid "Upright Image" -msgstr "" - -#: f.edit.cc:1396 -msgid "rotation unknown" -msgstr "" - -#: f.edit.cc:1957 f.widgets.cc:469 f.widgets.cc:740 -msgid "Retouch Combo" -msgstr "Retoucheer Combo" - -#: f.edit.cc:1978 -msgid "Amplifier" -msgstr "Versterker" - -#: f.edit.cc:1979 fotoxx.h:1104 -msgid "Brightness" -msgstr "helderheid" - -#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1112 -msgid "Contrast" -msgstr "Contrast" - -#: f.edit.cc:1981 -msgid "Low Color" -msgstr "Laag Kleur" - -#: f.edit.cc:1982 -msgid "Warmer" -msgstr "Warmer" - -#: f.edit.cc:1983 f.effects.cc:1511 -msgid "Dark Areas" -msgstr "Donkere gebieden" - -#: f.edit.cc:1992 -msgid "Max." -msgstr "Max." - -#: f.edit.cc:1993 f.edit.cc:1994 f.edit.cc:1995 -msgid "High" -msgstr "Hoog" - -#: f.edit.cc:1996 -msgid "Cooler" -msgstr "Koeler" - -#: f.edit.cc:1997 -msgid "Bright" -msgstr "Licht" - -#: f.edit.cc:2000 f.tools.cc:1767 -msgid "Brightness Distribution" -msgstr "Helderheids Verdeling" - -#: f.edit.cc:2003 -msgid "Click for white balance or black level" -msgstr "Klik voor witbalans of zwart nivo" - -#: f.edit.cc:2004 -msgid "" -"check the box, then click on white or dark \n" -"area to calibrate image white or black color" -msgstr "" - -#: f.edit.cc:2012 -msgid "recall previous settings used" -msgstr "terughalen hiervoor gebruikte instellingen" - -#: f.edit.cc:2682 -msgid "Adjust Brightness Distribution" -msgstr "Instellen Helderheids Verdeling" - -#: f.edit.cc:2721 -msgid "Low Cutoff" -msgstr "" - -#: f.edit.cc:2722 -msgid "High Cutoff" -msgstr "" - -#: f.edit.cc:2723 -msgid "Low Flatten" -msgstr "" - -#: f.edit.cc:2724 -msgid "Mid Flatten" -msgstr "" - -#: f.edit.cc:2725 -msgid "High Flatten" -msgstr "" - -#: f.edit.cc:2726 -msgid "Low Stretch" -msgstr "" - -#: f.edit.cc:2727 -msgid "Mid Stretch" -msgstr "" - -#: f.edit.cc:2728 -msgid "High Stretch" -msgstr "" - -#: f.edit.cc:3058 -msgid "Zonal Flatten Brightness" -msgstr "" - -#: f.edit.cc:3109 -msgid "Zones" -msgstr "" - -#: f.edit.cc:3116 -msgid "Deband Dark" -msgstr "" - -#: f.edit.cc:3119 -msgid "Deband Bright" -msgstr "" - -#: f.edit.cc:3570 f.widgets.cc:472 f.widgets.cc:743 -msgid "Tone Mapping" -msgstr "Tone mapping instellen" - -#: f.edit.cc:3601 -msgid "low" -msgstr "laag" - -#: f.edit.cc:3603 -msgid "high" -msgstr "hoog" - -#: f.edit.cc:3606 -msgid "Amplify" -msgstr "Versterken" - -#: f.edit.cc:4010 -msgid "Resize Image" -msgstr "Herschalen Afbeelding" - -#: f.edit.cc:4035 -msgid "W/H Ratio:" -msgstr "" - -#: f.edit.cc:4037 -msgid "Lock" -msgstr "" - -#: f.edit.cc:4039 -msgid "use previous settings" -msgstr "" - -#: f.edit.cc:4236 f.widgets.cc:474 -msgid "Flip" -msgstr "Afbeelding spiegelen" - -#: f.edit.cc:4240 f.effects.cc:5222 -msgid "horizontal" -msgstr "horizontaal" - -#: f.edit.cc:4241 f.effects.cc:5226 -msgid "vertical" -msgstr "verticaal" - -#: f.edit.cc:4334 -msgid "+Version" -msgstr "" - -#: f.edit.cc:4357 -msgid "Write Text on Image" -msgstr "Schrijf Tekst op Afbeelding" - -#: f.edit.cc:4358 -msgid "Enter text, click/drag on image, right click to remove" -msgstr "" -"Invoeren tekst, klik/sleep in afbeelding, rechter klik om te verwijderen" - -#: f.edit.cc:4407 f.mashup.cc:2446 -msgid "Text" -msgstr "Tekst" - -#: f.edit.cc:4412 -msgid "Use metadata key" -msgstr "" - -#: f.edit.cc:4417 -msgid "Use text file" -msgstr "" - -#: f.edit.cc:4436 f.mashup.cc:2464 -msgid "text" -msgstr "tekst" - -#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2807 -msgid "backing" -msgstr "achtergrondkleur" - -#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2808 -msgid "outline" -msgstr "contour" - -#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2809 -msgid "shadow" -msgstr "schaduw" - -#: f.edit.cc:4465 -msgid "save to current file" -msgstr "" - -#: f.edit.cc:4466 f.file.cc:1835 -msgid "save as new file version" -msgstr "bewaren als nieuwe bestandsversie" - -#: f.edit.cc:4467 -msgid "" -"save to current file \n" -"open next file with same text" -msgstr "" - -#: f.edit.cc:4628 f.mashup.cc:2566 f.tools.cc:1167 -msgid "select font" -msgstr "selecteer font" - -#: f.edit.cc:4898 -msgid "text file is defective" -msgstr "tekstbestand is beschadigd" - -#: f.edit.cc:5239 -msgid "" -"Enter line or arrow properties in dialog, \n" -"click/drag on image, right click to remove" -msgstr "" -"Invoeren lijn of pijl eigenschappen in dialoog, \n" -"klik/sleep op afbeelding, rechterklik om te verwijderen" - -#: f.edit.cc:5270 -msgid "Write Line or Arrow on Image" -msgstr "Schrijf Lijn of Pijl op Afbeelding" - -#: f.edit.cc:5278 f.mashup.cc:2786 -msgid "Line length" -msgstr "Lijn lengte" - -#: f.edit.cc:5285 f.mashup.cc:2793 -msgid "Arrow head" -msgstr "Pijlpunt" - -#: f.edit.cc:5298 f.mashup.cc:2806 -msgid "line" -msgstr "lijn" - -#: f.edit.cc:5327 -msgid "" -"fix line/arrow in layout \n" -" start new line/arrow" -msgstr "" -"fix lijn/pijl in layout \n" -" begin nieuwe lijn/pijl" - -#: f.edit.cc:5918 f.widgets.cc:477 -msgid "Paint Edits" -msgstr "Veranderingen schilderen" - -#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.06.cc:3307 -msgid "" -"Select area cannot be kept.\n" -"Continue?" -msgstr "" -"Uitsnede kan niet bewaard worden.\n" -"Doorgaan?" - -#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2293 -msgid "Edit function must be active" -msgstr "Bewerkingsfunctie moet actief zijn" - -#: f.edit.cc:5938 -msgid "Cannot use Paint Edits" -msgstr "" - -#: f.edit.cc:5964 -msgid "power: center" -msgstr "kracht: centrum" - -#: f.edit.cc:5969 -msgid "reset area" -msgstr "reset uitsnede" - -#: f.edit.cc:6144 f.widgets.cc:478 -msgid "Leverage Edits" -msgstr "Veranderingen versterken" - -#: f.edit.cc:6145 -msgid "Edit Function Amplifier" -msgstr "Versterker functie wijzigen" - -#: f.edit.cc:6164 -msgid "Cannot use Leverage Edits" -msgstr "" - -#: f.edit.cc:6194 -msgid "minimum" -msgstr "minimum" - -#: f.edit.cc:6196 -msgid "maximum" -msgstr "maximum" - -#: f.edit.cc:6497 -msgid "Edit Plugins" -msgstr "Plugins aanpassen" - -#: f.edit.cc:6498 -msgid "Edit plugins menu" -msgstr "" - -#: f.edit.cc:6506 -msgid "Run as Fotoxx edit function" -msgstr "Uitvoeren als Fotoxx bewerkingsfunctie" - -#: f.edit.cc:6744 -msgid "Plugin working ..." -msgstr "Plugin bezig ..." - -#: f.edit.cc:6753 -msgid "plugin failed" -msgstr "plugin werkt niet" - -#: f.effects.cc:65 -msgid "Set color depth to 1-16 bits" -msgstr "Instellen kleurdiepte op 1-16 bits" - -#: f.effects.cc:77 -msgid "Set Color Depth" -msgstr "Instellen Kleurdiepte" - -#: f.effects.cc:221 -msgid "Convert to Sketch" -msgstr "Converteren naar Schets" - -#: f.effects.cc:297 -msgid "Clip Level" -msgstr "Clip Nivo" - -#: f.effects.cc:301 -msgid "Algorithm" -msgstr "Algoritme" - -#: f.effects.cc:306 -msgid "Foreground" -msgstr "" - -#: f.effects.cc:309 -msgid "Background" -msgstr "" - -#: f.effects.cc:1214 f.widgets.cc:519 -msgid "Line Drawing" -msgstr "Lijn Tekenen" - -#: f.effects.cc:1227 -msgid "black/white" -msgstr "zwart/wit" - -#: f.effects.cc:1505 f.widgets.cc:520 -msgid "Color Drawing" -msgstr "Kleur Tekenen" - -#: f.effects.cc:1512 -msgid "Bright Areas" -msgstr "Heldere Uitsnedes" - -#: f.effects.cc:1766 f.widgets.cc:521 -msgid "Graduated Blur" -msgstr "Graduele Vervaging" - -#: f.effects.cc:1770 -msgid "Contrast Limit" -msgstr "Contrast limiet" - -#: f.effects.cc:1773 f.repair.cc:934 -msgid "Blur Radius" -msgstr "Vervagingsstraal" - -#: f.effects.cc:1988 -msgid "Simulate Embossing" -msgstr "Reliefdruk nabootsen" - -#: f.effects.cc:2005 -msgid "depth" -msgstr "diepte" - -#: f.effects.cc:2207 -msgid "Simulate Tiles" -msgstr "Tegels nabootsen" - -#: f.effects.cc:2211 -msgid "tile size" -msgstr "tegelgrootte" - -#: f.effects.cc:2214 -msgid "tile gap" -msgstr "voegbreedte" - -#: f.effects.cc:2217 -msgid "3D depth" -msgstr "3D diepte" - -#: f.effects.cc:2441 -msgid "Convert Image to Dots" -msgstr "Converteer naar krantendruk" - -#: f.effects.cc:2445 -msgid "dot size" -msgstr "stip grootte" - -#: f.effects.cc:2670 -msgid "Simulate Painting" -msgstr "Schilderen Nabootsen" - -#: f.effects.cc:2674 -msgid "color depth" -msgstr "kleurdiepte" - -#: f.effects.cc:2678 -msgid "patch area goal" -msgstr "vlekgrootte doel" - -#: f.effects.cc:2682 -msgid "req. color match" -msgstr "vereiste kleur aanpassing" - -#: f.effects.cc:2686 -msgid "borders" -msgstr "randen" - -#: f.effects.cc:3259 f.widgets.cc:526 -msgid "Vignette" -msgstr "Vignette" - -#: f.effects.cc:3608 -msgid "Add Texture" -msgstr "Toevoegen Textuur " - -#: f.effects.cc:3825 -msgid "Background Pattern" -msgstr "Achtergrond Patroon" - -#: f.effects.cc:3829 -msgid "Pattern File:" -msgstr "Patroon Bestand:" - -#: f.effects.cc:3834 -msgid "Zoom" -msgstr "Zoom" - -#: f.effects.cc:3837 -msgid "Geometry" -msgstr "Geometrie" - -#: f.effects.cc:3838 -msgid "Calculate" -msgstr "Bereken" - -#: f.effects.cc:3848 f.widgets.cc:528 -msgid "Pattern" -msgstr "Patroon" - -#: f.effects.cc:3855 -msgid "Overlap" -msgstr "Overlap" - -#: f.effects.cc:3862 -msgid "Opacity" -msgstr "Ondoorzichtigheid" - -#: f.effects.cc:3930 -msgid "choose pattern tile" -msgstr "kies tegel patroon" - -#: f.effects.cc:4317 -msgid "Create Mosaic" -msgstr "Maken Mozaiek" - -#: f.effects.cc:4403 -msgid "Tile" -msgstr "Tegel" - -#: f.effects.cc:4411 f.widgets.cc:523 -msgid "Tiles" -msgstr "Tegels" - -#: f.effects.cc:4417 -msgid "Tile blending" -msgstr "Tegel vermenging" - -#: f.effects.cc:4497 -#, c-format -msgid "exceeded max. tiles: %d" -msgstr "overschreden max. tegels: %d" - -#: f.effects.cc:4512 -#, c-format -msgid "only %d tile images found" -msgstr "maar %d tegel afbeeldingen gevonden" - -#: f.effects.cc:4905 f.widgets.cc:530 -msgid "Custom Kernel" -msgstr "Custom Kernel" - -#: f.effects.cc:4909 -msgid "Kernel size" -msgstr "Kernel grootte" - -#: f.effects.cc:4912 -msgid "Divisor" -msgstr "Deler" - -#: f.effects.cc:4915 -msgid "Data file" -msgstr "Gegevens bestand" - -#: f.effects.cc:4951 fotoxx-16.06.cc:3571 -msgid "Load settings from file" -msgstr "Laad Instellingen bestand" - -#: f.effects.cc:5212 f.widgets.cc:531 -msgid "Make Waves" -msgstr "Maak Golven" - -#: f.effects.cc:5219 -msgid "wavelength" -msgstr "golflengte" - -#: f.effects.cc:5220 -msgid "amplitude" -msgstr "amplitude" - -#: f.effects.cc:5221 -msgid "variance" -msgstr "" - -#: f.effects.cc:5232 -msgid "perspective" -msgstr "" - -#: f.effects.cc:5406 -msgid "Pull image using the mouse." -msgstr "" - -#: f.effects.cc:5427 f.widgets.cc:532 -msgid "Directed Blur" -msgstr "" - -#: f.effects.cc:5431 -msgid "blur span" -msgstr "" - -#: f.effects.cc:5434 -msgid "intensity" -msgstr "" - -#: f.effects.cc:5638 f.widgets.cc:533 -msgid "Blur Background" -msgstr "" - -#: f.effects.cc:5642 -msgid "constant blur" -msgstr "" - -#: f.effects.cc:5645 -msgid "increase blur with distance" -msgstr "" - -#: f.effects.cc:5647 -msgid "min. blur radius" -msgstr "" - -#: f.effects.cc:5650 -msgid "max. blur radius" -msgstr "" - -#: f.file.cc:182 -msgid "" -"use EXIF photo date or \n" -" file modification date" -msgstr "" - -#: f.file.cc:199 f.widgets.cc:608 -msgid "File" -msgstr "Bestand" - -#: f.file.cc:355 -msgid "UFraw not installed" -msgstr "UFraw niet geinstalleerd" - -#: f.file.cc:371 f.widgets.cc:745 -msgid "Open RAW file (ufraw)" -msgstr "Open RAW bestand (ufraw)" - -#: f.file.cc:376 f.file.cc:447 -msgid "RAW type not registered in User Settings" -msgstr "RAW type niet vastgelegd in Instellingen" - -#: f.file.cc:442 f.widgets.cc:746 -msgid "Open RAW file (Raw Therapee)" -msgstr "Open RAW bestand (Raw Therapee)" - -#: f.file.cc:534 f.widgets.cc:423 -msgid "Open Image File" -msgstr "Openen ..." - -#: f.file.cc:553 -msgid "unknown file type" -msgstr "onbekend bestandstype" - -#: f.file.cc:747 -msgid "Create Blank Image" -msgstr "Lege afbeelding maken" - -#: f.file.cc:749 -msgid "file name" -msgstr "bestandsnaam" - -#: f.file.cc:782 -msgid "supply a file name" -msgstr "" - -#: f.file.cc:932 f.widgets.cc:428 -msgid "Rename Image File" -msgstr "Hernoemen bestand..." - -#: f.file.cc:939 -msgid "Old Name" -msgstr "oude naam" - -#: f.file.cc:949 -msgid "previous name" -msgstr "vorige naam" - -#: f.file.cc:950 -msgid "add 1" -msgstr "toevoegen 1" - -#: f.file.cc:1129 -msgid "Copy or Move Image File" -msgstr "" - -#: f.file.cc:1171 -msgid "New Location:" -msgstr "" - -#: f.file.cc:1176 -msgid "copy (duplicate file)" -msgstr "" - -#: f.file.cc:1178 -msgid "move (remove original)" -msgstr "" - -#: f.file.cc:1257 -msgid "new location is not a directory" -msgstr "nieuwe locatie is geen map" - -#: f.file.cc:1297 f.file.cc:1511 -#, c-format -msgid "" -"delete failed: \n" -" %s" -msgstr "" -"verwijderen mislukt: \n" -" %s" - -#: f.file.cc:1393 -msgid "Delete or Trash Image File" -msgstr "" - -#: f.file.cc:1460 -msgid "" -"GTK g_file_trash() function failed. \n" -"Desktop trash folder will be used." -msgstr "" - -#: f.file.cc:1463 -#, c-format -msgid "Cannot create desktop trash folder: %s" -msgstr "" - -#: f.file.cc:1483 -msgid "not a known image file" -msgstr "" - -#: f.file.cc:1489 -msgid "Delete read-only file?" -msgstr "" - -#: f.file.cc:1491 -msgid "Trash read-only file?" -msgstr "" - -#: f.file.cc:1564 -#, c-format -msgid "error: %s" -msgstr "fout: %s" - -#: f.file.cc:1589 -msgid "no more images" -msgstr "geen afbeeldingen meer" - -#: f.file.cc:1817 -msgid "Save Image File" -msgstr "Bewaar Afbeeldingsbestand" - -#: f.file.cc:1827 -msgid "new version" -msgstr "nieuwe versie" - -#: f.file.cc:1828 -msgid "new file" -msgstr "nieuw bestand" - -#: f.file.cc:1829 -msgid "replace file" -msgstr "bestand vervangen" - -#: f.file.cc:1836 f.file.cc:2255 -msgid "save as new file name or type" -msgstr "bewaren als nieuw bestandsnaam of type " - -#: f.file.cc:1838 -msgid "replace old file (OVERWRITE)" -msgstr "oud bestand vervangen (OVERSCHRIJVEN)" - -#: f.file.cc:1877 f.file.cc:2020 -msgid "cannot save as RAW type" -msgstr "bewaren als RAW type niet mogelijk" - -#: f.file.cc:1973 -msgid "too many file versions: 99" -msgstr "" - -#: f.file.cc:2014 -msgid "" -"Transparency map will be lost.\n" -"save to PNG file to retain." -msgstr "" - -#: f.file.cc:2098 -msgid "save anyway" -msgstr "" - -#: f.file.cc:2164 -msgid "Unable to copy EXIF/IPTC data" -msgstr "Kan EXIF/IPTC gegevens niet kopieren" - -#: f.file.cc:2273 f.file.cc:2276 -msgid "make current" -msgstr "maak actueel" - -#: f.file.cc:2274 -msgid "(new file becomes current file)" -msgstr "" - -#: f.file.cc:2387 -#, c-format -msgid "" -"Overwrite file? \n" -" %s" -msgstr "" -"Bestand overschrijven? \n" -" %s" - -#: f.file.cc:2478 -msgid "Start of gallery, next: preceding gallery." -msgstr "" - -#: f.file.cc:2479 -msgid "End of gallery, next: following gallery." -msgstr "" - -#: f.file.cc:2480 -msgid "" -"The next preceding gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" - -#: f.file.cc:2482 -msgid "" -"The next following gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" - -#: f.file.cc:2556 f.widgets.cc:589 -msgid "Quick Start" -msgstr "Snel Start" - -#: f.file.cc:2559 f.widgets.cc:590 -msgid "User Guide" -msgstr "Gebruikershandleiding" - -#: f.file.cc:2562 f.widgets.cc:591 -msgid "User Guide Changes" -msgstr "Gebruikershandleiding Veranderingen" - -#: f.file.cc:2565 f.widgets.cc:593 -msgid "README" -msgstr "README" - -#: f.file.cc:2568 f.widgets.cc:592 -msgid "Edit Functions Summary" -msgstr "Opsomming Bewerkingsfuncties" - -#: f.file.cc:2571 f.widgets.cc:594 -msgid "Change Log" -msgstr "Veranderingslogboek" - -#: f.file.cc:2574 f.widgets.cc:595 -msgid "Log File" -msgstr "Log Bestand" - -#: f.file.cc:2577 f.widgets.cc:596 -msgid "Translations" -msgstr "Vertalingen" - -#: f.file.cc:2580 f.widgets.cc:597 -msgid "Home Page" -msgstr "Homepage" - -#: f.file.cc:2583 f.widgets.cc:598 -msgid "About" -msgstr "Over fotoxx" - -#: f.file.cc:2587 f.widgets.cc:620 f.widgets.cc:644 fotoxx.h:1135 -msgid "Help" -msgstr "Help" - -#: f.file.cc:2742 f.file.cc:2812 -#, c-format -msgid "file not found: %s" -msgstr "bestand niet gevonden: %s" - -#: f.file.cc:2748 f.file.cc:2818 -#, c-format -msgid "file type not supported: %s" -msgstr "bestandstype niet ondersteund: %s" - -#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:642 -msgid "Scroll" -msgstr "Scroll" - -#: f.gallery.cc:940 f.widgets.cc:420 f.widgets.cc:632 -msgid "Sync Gallery" -msgstr "" - -#: f.gallery.cc:950 f.repair.cc:6658 f.repair.cc:6663 fotoxx.h:1157 -msgid "Open" -msgstr "Openen" - -#: f.gallery.cc:951 -msgid "change directory" -msgstr "verander map" - -#: f.gallery.cc:959 -msgid "GoTo" -msgstr "GaNaar" - -#: f.gallery.cc:965 f.widgets.cc:637 -msgid "Sort" -msgstr "Sorteren" - -#: f.gallery.cc:971 f.gallery.cc:1540 f.gallery.cc:1541 f.gallery.cc:1543 -#: f.widgets.cc:635 -msgid "Zoom+" -msgstr "Zoom+" - -#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:636 -msgid "Zoom-" -msgstr "Zoom-" - -#: f.gallery.cc:993 f.gallery.cc:1548 -msgid "Row↑" -msgstr "Rij↑" - -#: f.gallery.cc:1001 f.gallery.cc:1549 -msgid "Row↓" -msgstr "Rij↓" - -#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:640 -msgid "Page↑" -msgstr "Pagina↑" - -#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:641 -msgid "Page↓" -msgstr "Pagina↓" - -#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:638 -msgid "First" -msgstr "Eerste" - -#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:639 -msgid "Last" -msgstr "Laatste" - -#: f.gallery.cc:1145 -msgid "Choose image directory" -msgstr "Kies afbeeldingsmap" - -#: f.gallery.cc:1152 f.gallery.cc:1165 -msgid "recent images" -msgstr "" - -#: f.gallery.cc:1153 f.gallery.cc:1170 -msgid "newest images" -msgstr "" - -#: f.gallery.cc:1234 -msgid "no albums found" -msgstr "" - -#: f.gallery.cc:1241 -msgid "Choose album" -msgstr "" - -#: f.gallery.cc:1288 f.tools.cc:986 -msgid "Gallery Sort" -msgstr "Galerie Sortering " - -#: f.gallery.cc:1292 -msgid "File Name" -msgstr "Bestandsnaam" - -#: f.gallery.cc:1293 -msgid "File Mod Date/Time" -msgstr "Bestand wijz datum/tijd" - -#: f.gallery.cc:1294 -msgid "Photo Date/Time (EXIF)" -msgstr "Foto Datum/Tijd (EXIF)" - -#: f.gallery.cc:1296 -msgid "ascending" -msgstr "oplopend" - -#: f.gallery.cc:1297 -msgid "descending" -msgstr "aflopend" - -#: f.gallery.cc:2373 fotoxx.h:1182 -msgid "Select Files" -msgstr "Selecteer bestanden" - -#: f.gallery.cc:2838 -msgid "Click list position. Click thumbnail to add." -msgstr "Klik regel in lijst. Om toe te voegen klik miniatuur." - -#: f.gallery.cc:2864 f.gallery.cc:3112 -msgid "Edit Bookmarks" -msgstr "Bewerken bladwijzers" - -#: f.gallery.cc:3039 -msgid "unable to save bookmarks file" -msgstr "kan bladwijzer bestand niet bewaren" - -#: f.gallery.cc:3112 -msgid "Go To Bookmark" -msgstr "Ga Naar Bladwijzer" - -#: f.gallery.cc:3169 f.meta.cc:3528 f.repair.cc:8279 -msgid "file not found" -msgstr "bestand niet gevonden" - -#: f.mashup.cc:170 -msgid "Mashup layout and background image" -msgstr "Mashup layout en achtergrond afbeelding" - -#: f.mashup.cc:213 -msgid "choose an image file" -msgstr "kies een afbeeldingsbestand" - -#: f.mashup.cc:214 -msgid "use current image file" -msgstr "gebruik huidig afbeeldingsbestand" - -#: f.mashup.cc:215 -msgid "specify layout size and color" -msgstr "specificeer layout grootte en kleur" - -#: f.mashup.cc:216 -msgid "open a Mashup project file" -msgstr "open een Mashup project bestand" - -#: f.mashup.cc:241 -msgid "choose layout file" -msgstr "kies layout bestand" - -#: f.mashup.cc:259 -msgid "no current file" -msgstr "" - -#: f.mashup.cc:291 -msgid "Make Layout Image" -msgstr "" - -#: f.mashup.cc:293 -msgid "project name" -msgstr "" - -#: f.mashup.cc:319 -msgid "supply a project name" -msgstr "" - -#: f.mashup.cc:417 -msgid "Edit Images" -msgstr "Bewerken Afbeeldingen" - -#: f.mashup.cc:418 f.mashup.cc:2441 -msgid "Edit Text" -msgstr "Bewerken Tekst" - -#: f.mashup.cc:419 -msgid "Edit Line" -msgstr "Bewerken Lijn" - -#: f.mashup.cc:420 -msgid "Rescale" -msgstr "" - -#: f.mashup.cc:423 -msgid "add or edit images" -msgstr "toevoegen of bewerken afbeeldingen " - -#: f.mashup.cc:424 -msgid "add or edit text" -msgstr "toevoegen of bewerken tekst" - -#: f.mashup.cc:425 -msgid "add or edit lines/arrows" -msgstr "toevoegen of bewerken lijnen/pijlen" - -#: f.mashup.cc:426 -msgid "change project scale" -msgstr "" - -#: f.mashup.cc:427 -msgid "project complete" -msgstr "project gereed" - -#: f.mashup.cc:428 -msgid "cancel project" -msgstr "annuleren project" - -#: f.mashup.cc:446 -msgid "rescale project" -msgstr "" - -#: f.mashup.cc:501 -msgid "save Mashup output file" -msgstr "" - -#: f.mashup.cc:521 -msgid "save Mashup project file?" -msgstr "" - -#: f.mashup.cc:533 -msgid "delete Mashup project file?" -msgstr "" - -#: f.mashup.cc:592 -msgid "Open Project" -msgstr "Open Project" - -#: f.mashup.cc:621 -#, c-format -msgid "" -"layout image file missing: \n" -" %s" -msgstr "" -"layout afbeeldingsbestand ontbreekt: \n" -" %s" - -#: f.mashup.cc:678 -#, c-format -msgid "" -"overlay image file missing: \n" -" %s" -msgstr "" -"overlay afbeeldingsbestand ontbreekt: \n" -" %s" - -#: f.mashup.cc:983 -msgid "project file is defective" -msgstr "project bestand is beschadigd" - -#: f.mashup.cc:1013 -msgid "Save Project" -msgstr "Bewaren Project" - -#: f.mashup.cc:1154 -msgid "layout exceeds 2 gigabytes" -msgstr "" - -#: f.mashup.cc:1228 -msgid "Click image to select, drag image to move." -msgstr "Klik afbeelding om te selecteren, sleep afbeelding om te verplaatsen" - -#: f.mashup.cc:1229 -msgid "Make black margins transparent" -msgstr "" - -#: f.mashup.cc:1268 -msgid "Current image:" -msgstr "" - -#: f.mashup.cc:1272 -msgid "Cycle through images:" -msgstr "" - -#: f.mashup.cc:1279 -msgid "Scale" -msgstr "Schaal" - -#: f.mashup.cc:1288 -msgid "Stacking Order" -msgstr "Stapel Volgorde" - -#: f.mashup.cc:1289 -msgid "raise" -msgstr "verhogen" - -#: f.mashup.cc:1290 -msgid "lower" -msgstr "lager" - -#: f.mashup.cc:1293 -msgid "Base Transparency" -msgstr "Basis Doorzichtigheid" - -#: f.mashup.cc:1297 -msgid "Var. Transparency" -msgstr "Var. Doorzichtigheid" - -#: f.mashup.cc:1298 -msgid "Paint" -msgstr "" - -#: f.mashup.cc:1301 -msgid "Bend and fine-align" -msgstr "" - -#: f.mashup.cc:1302 -msgid "Warp" -msgstr "" - -#: f.mashup.cc:1311 -msgid "Margins" -msgstr "" - -#: f.mashup.cc:1312 -msgid "Hard" -msgstr "" - -#: f.mashup.cc:1313 f.repair.cc:6252 -msgid "Blend" -msgstr "Mengen" - -#: f.mashup.cc:1327 -msgid "add images to layout" -msgstr "toevoegen afbeeldingen aan layout" - -#: f.mashup.cc:1566 -msgid "Paint Image Transparencies" -msgstr "Schilderen Afbeeldings Doorzichtigheid" - -#: f.mashup.cc:1584 -msgid "Gradual" -msgstr "Geleidelijk" - -#: f.mashup.cc:1589 fotoxx.h:1161 -msgid "Power" -msgstr "Sterkte" - -#: f.mashup.cc:1823 -msgid "Pull on the image with the mouse." -msgstr "" - -#: f.mashup.cc:1839 -msgid "Warp Image" -msgstr "" - -#: f.mashup.cc:2272 -#, c-format -msgid "exceeded %d images" -msgstr "%d afbeeldingen overschreden" - -#: f.mashup.cc:2414 -msgid "Enter text, [Add] to layout, edit properties." -msgstr "" - -#: f.mashup.cc:2494 -msgid "Text File:" -msgstr "Textbestand:" - -#: f.mashup.cc:2498 -msgid "add entered text to layout" -msgstr "toevoegen ingevoerde tekst aan layout " - -#: f.mashup.cc:2627 -msgid "click position to add text" -msgstr "" - -#: f.mashup.cc:2633 -#, c-format -msgid "exceeded %d text entries" -msgstr "%d tekst entries overschreden" - -#: f.mashup.cc:2756 -msgid "Set line properties, [Add] to layout, edit." -msgstr "" - -#: f.mashup.cc:2780 -msgid "Edit Line/Arrow" -msgstr "Bewerken Lijn/Pijl" - -#: f.mashup.cc:2835 -msgid "add line/arrow to layout" -msgstr "toevoegen lijn/pijl aan layout" - -#: f.mashup.cc:2928 -msgid "click position to add line" -msgstr "" - -#: f.mashup.cc:2934 -#, c-format -msgid "exceeded %d line entries" -msgstr "overschreden %d lijn entries" - -#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:723 -msgid "View Metadata" -msgstr "Bekijken Metadata" - -#: f.meta.cc:548 -msgid "Geocoding service by MapQuest" -msgstr "" - -#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:724 -msgid "Edit Metadata" -msgstr "Bewerken Metadata" - -#: f.meta.cc:613 -msgid "save metadata to file" -msgstr "" - -#: f.meta.cc:622 -msgid "Image Date" -msgstr "Datum Afbeelding" - -#: f.meta.cc:625 -msgid "Time" -msgstr "Tijd" - -#: f.meta.cc:633 -msgid "Rating (stars):" -msgstr "" - -#: f.meta.cc:645 -msgid "Caption" -msgstr "Onderschrift" - -#: f.meta.cc:651 -msgid "Comments" -msgstr "Commentaar" - -#: f.meta.cc:659 f.meta.cc:3618 -msgid "city" -msgstr "stad" - -#: f.meta.cc:662 f.meta.cc:3621 -msgid "country" -msgstr "land" - -#: f.meta.cc:684 -msgid "Image Tags" -msgstr "Afbeeldings Tags" - -#: f.meta.cc:690 -msgid "Recent Tags" -msgstr "recente tags" - -#: f.meta.cc:696 -msgid "Enter New Tag" -msgstr "" - -#: f.meta.cc:703 f.meta.cc:5459 -msgid "Matching Tags" -msgstr "" - -#: f.meta.cc:712 f.meta.cc:1708 f.meta.cc:5466 -msgid "Defined Tags Category" -msgstr "" - -#: f.meta.cc:719 -msgid "search known locations" -msgstr "" - -#: f.meta.cc:720 -msgid "search using web service" -msgstr "" - -#: f.meta.cc:721 -msgid "create tag categories and tags" -msgstr "" - -#: f.meta.cc:936 f.meta.cc:3778 -msgid "city not found" -msgstr "stad niet gevonden" - -#: f.meta.cc:1214 f.meta.cc:3836 f.meta.cc:4352 -#, c-format -msgid "bad latitude/longitude: %s %s" -msgstr "verkeerde breedtegraad/lengtegraad: %s %s" - -#: f.meta.cc:1248 fotoxx.h:1145 -msgid "Manage Tags" -msgstr "Tags beheren" - -#: f.meta.cc:1248 -msgid "orphan tags" -msgstr "verweesde tags" - -#: f.meta.cc:1252 -msgid "category" -msgstr "categorie" - -#: f.meta.cc:1255 -msgid "tag" -msgstr "tag" - -#: f.meta.cc:1262 -msgid "Defined Tags:" -msgstr "gedefineerde tags:" - -#: f.meta.cc:1404 f.widgets.cc:441 f.widgets.cc:725 -msgid "Edit Any Metadata" -msgstr "Bewerken Metadata" - -#: f.meta.cc:1404 f.meta.cc:2148 -msgid "Full List" -msgstr "" - -#: f.meta.cc:1409 f.meta.cc:2153 -msgid "click to select" -msgstr "" - -#: f.meta.cc:1418 f.meta.cc:2164 -msgid "key name" -msgstr "sleutel naam" - -#: f.meta.cc:1420 f.meta.cc:2165 -msgid "key value" -msgstr "sleutel waarde" - -#: f.meta.cc:1506 f.meta.cc:2308 -msgid "" -"The command: $ man Image::ExifTool::TagNames \n" -"will show over 15000 \"standard\" tag names" -msgstr "" - -#: f.meta.cc:1579 f.widgets.cc:442 -msgid "Delete Metadata" -msgstr "Verwijderen Metadata" - -#: f.meta.cc:1581 fotoxx.h:1095 -msgid "All" -msgstr "Alles" - -#: f.meta.cc:1582 -msgid "One Key:" -msgstr "Een Sleutel:" - -#: f.meta.cc:1685 f.widgets.cc:443 f.widgets.cc:574 -msgid "Batch Add/Remove Tags" -msgstr "Batchgewijs Toevoegen/Verwijderen Tags" - -#: f.meta.cc:1696 -msgid "tags to add" -msgstr "tags om toe te voegen" - -#: f.meta.cc:1697 -msgid "tags to remove" -msgstr "tags om te verwijderen" - -#: f.meta.cc:1782 -#, c-format -msgid "" -"%s \n" -" too many tags" -msgstr "" -"%s \n" -" te veel tags" - -#: f.meta.cc:1897 -msgid "specify files and tags" -msgstr "specificeer bestanden en tags" - -#: f.meta.cc:1957 -msgid "tag names file" -msgstr "" - -#: f.meta.cc:2031 -#, c-format -msgid "" -"%d tags to rename \n" -"in %d image files. \n" -"Proceed?" -msgstr "" - -#: f.meta.cc:2148 -msgid "Batch Change Metadata" -msgstr "" - -#: f.meta.cc:2222 -msgid "enter key names" -msgstr "" - -#: f.meta.cc:2228 f.meta.cc:2422 fotoxx.h:1154 -msgid "no files selected" -msgstr "geen bestanden geselecteerd" - -#: f.meta.cc:2407 f.widgets.cc:446 f.widgets.cc:577 -msgid "Batch Report Metadata" -msgstr "" - -#: f.meta.cc:2580 -msgid "date format is YYYY-MM-DD" -msgstr "datum formaat is YYYY-MM-DD" - -#: f.meta.cc:2584 -msgid "date is invalid" -msgstr "datum is ongeldig" - -#: f.meta.cc:2618 -msgid "time format is HH:MM [:SS]" -msgstr "tijd formaat is HH:MM [:SS]" - -#: f.meta.cc:2622 -msgid "time is invalid" -msgstr "tijd is ongeldig" - -#: f.meta.cc:3587 f.widgets.cc:447 f.widgets.cc:578 -msgid "Batch Add Geotags" -msgstr "Batchgewijs Toevoegen Geotags" - -#: f.meta.cc:3824 -msgid "" -"data is incomplete \n" -" proceed?" -msgstr "" -"gegevens zijn onvolledig \n" -" doorgaan?" - -#: f.meta.cc:3874 -msgid "choose city" -msgstr "kies stad" - -#: f.meta.cc:3961 -msgid "not found" -msgstr "niet gevonden" - -#: f.meta.cc:3962 -msgid "city and country required" -msgstr "stad en land verplicht" - -#: f.meta.cc:4465 f.meta.cc:5003 f.meta.cc:5347 f.meta.cc:6504 -msgid "-noindex in use, disabled" -msgstr "" - -#: f.meta.cc:4483 -msgid "choose map file" -msgstr "" - -#: f.meta.cc:4624 -msgid "" -"fotoxx-maps package not installed \n" -"(see http://kornelix.net/packages and /tarballs)" -msgstr "" - -#: f.meta.cc:4629 -#, c-format -msgid "map file %s is missing" -msgstr "" - -#: f.meta.cc:4633 -#, c-format -msgid "" -"map latitude/longitude data unreasonable \n" -" %.3f %.3f %.3f %.3f" -msgstr "" - -#: f.meta.cc:4662 -msgid "search range (km)" -msgstr "zoekbereik (km)" - -#: f.meta.cc:4940 f.meta.cc:5282 -msgid "No matching images found" -msgstr "Geen matchende afbeeldingen gevonden" - -#: f.meta.cc:5118 -msgid "image file has no latitude/longitude" -msgstr "" - -#: f.meta.cc:5384 -msgid "Search Image Metadata" -msgstr "Doorzoeken Afbeelding Metadata" - -#: f.meta.cc:5388 -msgid "images to search:" -msgstr "te zoeken afbeeldingen:" - -#: f.meta.cc:5389 -msgid "all" -msgstr "alles" - -#: f.meta.cc:5390 -msgid "current set only" -msgstr "alleen huidige verzameling " - -#: f.meta.cc:5393 -msgid "matching images:" -msgstr "matchende afbeeldingen:" - -#: f.meta.cc:5394 -msgid "new set" -msgstr "nieuwe verzameling" - -#: f.meta.cc:5395 -msgid "add to set" -msgstr "toevoegen aan verzameling" - -#: f.meta.cc:5396 -msgid "remove" -msgstr "verwijderen" - -#: f.meta.cc:5399 -msgid "report type:" -msgstr "rapport type:" - -#: f.meta.cc:5400 -msgid "gallery" -msgstr "galerie" - -#: f.meta.cc:5407 -msgid "date range" -msgstr "datum van/tot" - -#: f.meta.cc:5408 -msgid "stars range" -msgstr "sterren van/tot" - -#: f.meta.cc:5409 -msgid "search tags" -msgstr "doorzoeken tags" - -#: f.meta.cc:5410 -msgid "search text" -msgstr "doorzoeken tekst" - -#: f.meta.cc:5411 -msgid "search files" -msgstr "doorzoeken bestanden" - -#: f.meta.cc:5416 -msgid "(yyyymmdd)" -msgstr "(jjjjmmmdd)" - -#: f.meta.cc:5421 -msgid "last version only" -msgstr "" - -#: f.meta.cc:5423 -msgid "all/any" -msgstr "alle/enkele" - -#: f.meta.cc:5442 -msgid "search locations" -msgstr "" - -#: f.meta.cc:5448 -msgid "search other metadata" -msgstr "" - -#: f.meta.cc:5455 -msgid "Enter Search Tag" -msgstr "" - -#: f.meta.cc:5737 -#, c-format -msgid "not a defined tag: %s" -msgstr "" - -#: f.meta.cc:5768 -msgid "" -"to remove images from current set, \n" -"search current set" -msgstr "" -"doorzoek huidige verzameling om afbeeldingen \n" -"te verwijderen uit huidige verzameling " - -#: f.meta.cc:5775 -msgid "" -"to add images to current set, \n" -"search all images" -msgstr "" -"doorzoek alle afbeeldingen om afbeeldingen \n" -"toe te voegen aan huidige verzameling " - -#: f.meta.cc:5820 -#, c-format -msgid "" -"search dates not reasonable \n" -" %s %s" -msgstr "" - -#: f.meta.cc:5838 -msgid "stars range not reasonable" -msgstr "" - -#: f.meta.cc:6082 -#, c-format -msgid "images added: %d removed: %d new count: %d" -msgstr "afbeeldingen toegevoegd: %d verwijderd: %d nieuwe telling: %d" - -#: f.meta.cc:6085 -msgid "no changes made" -msgstr "geen veranderingen gemaakt" - -#: f.meta.cc:6237 -msgid "" -"These items are always reported: \n" -"date, stars, tags, caption, comment" -msgstr "" -"Deze items worden altijd gerapporteerd: \n" -"datum, sterren, tags, onderschrift, commentaar" - -#: f.meta.cc:6261 -msgid "Additional Items for Report" -msgstr "Toegevoegde Items voor Rapport" - -#: f.meta.cc:6267 -msgid "Keyword" -msgstr "Sleutelwoord" - -#: f.meta.cc:6274 -msgid "Match Criteria" -msgstr "Match Criteria" - -#: f.meta.cc:6519 -msgid "Report Geotag Groups" -msgstr "Rapport Geotag Groepen" - -#: f.meta.cc:6520 -msgid "Group by country" -msgstr "Groepeer per land" - -#: f.meta.cc:6521 -msgid "Group by country/city" -msgstr "Groepeer per land/stad" - -#: f.meta.cc:6522 -msgid "Group by country/city/date" -msgstr "Groepeer per land/stad/datum" - -#: f.meta.cc:6525 -msgid "Combine within" -msgstr "Samenvoegen binnen" - -#: f.meta.cc:6527 -msgid "days" -msgstr "dagen" - -#: f.meta.cc:6643 -msgid "geotag groups" -msgstr "geotag groepen" - -#: f.meta.cc:7241 -msgid "image index is missing" -msgstr "afbeeldings index ontbreekt" - -#: f.repair.cc:168 -msgid "dark" -msgstr "" - -#: f.repair.cc:169 -msgid "light" -msgstr "" - -#: f.repair.cc:1200 -msgid "Apply repeatedly while watching the image." -msgstr "" - -#: f.repair.cc:1201 -msgid "Measure" -msgstr "" - -#: f.repair.cc:1237 -msgid "Noise Reduction" -msgstr "Ruis vermindering" - -#: f.repair.cc:1258 -msgid "Flatten 1" -msgstr "" - -#: f.repair.cc:1259 -msgid "Flatten 2" -msgstr "" - -#: f.repair.cc:1260 -msgid "Median" -msgstr "" - -#: f.repair.cc:1280 -msgid "dark areas" -msgstr "" - -#: f.repair.cc:1282 -msgid "all areas" -msgstr "" - -#: f.repair.cc:2174 -msgid "Measure Noise" -msgstr "" - -#: f.repair.cc:2175 -msgid "Click on a monotone image area." -msgstr "" - -#: f.repair.cc:2338 -msgid "" -"1. Drag mouse to select. \n" -"2. Erase. 3. Repeat. " -msgstr "" -"1. Sleep met de muis om uitsnede te definieren. \n" -"2. Druk [verwijderen]. \n" -"3. Herhaal met nieuwe uitsnede. " - -#: f.repair.cc:2360 f.widgets.cc:485 -msgid "Smart Erase" -msgstr "Slim verwijderen" - -#: f.repair.cc:2365 fotoxx.h:1165 -msgid "Radius" -msgstr "straal" - -#: f.repair.cc:2367 f.widgets.cc:483 -msgid "Blur" -msgstr "Afbeelding vervagen" - -#: f.repair.cc:2370 -msgid "New Area" -msgstr "Nieuwe uitsnede" - -#: f.repair.cc:2719 -msgid "" -"Method 1:\n" -" Left-click on red-eye to darken.\n" -"Method 2:\n" -" Drag down and right to enclose red-eye.\n" -" Left-click on red-eye to darken.\n" -"Undo red-eye:\n" -" Right-click on red-eye." -msgstr "" -"Methode 1:\n" -" Linkerklik in het rode oog om te corrigeren.\n" -"Methode 2:\n" -" Sleep met de muis naar rechts om het rode oog te markeren.\n" -" Linkerklik in het rode oog om te corrigeren.\n" -"Ongedaan maken:\n" -" Rechterklik in het rode oog." - -#: f.repair.cc:2735 -msgid "Red Eye Reduction" -msgstr "Rode ogen correctie" - -#: f.repair.cc:3200 -msgid "" -"shift + left click: pick color or image position \n" -"left click or drag: paint color or copy image \n" -"right click or drag: remove color or image" -msgstr "" -"shift + linkerklik: kies kleur of afbeeldings positie \n" -"linkerklik of sleep: verf kleur of copieer afbeelding \n" -"rechterklik of sleep: verwijder kleur of afbeelding" - -#: f.repair.cc:3233 f.widgets.cc:487 -msgid "Paint/Clone" -msgstr "Pixels Schilderen/Klonen" - -#: f.repair.cc:3237 -msgid "paint color" -msgstr "schilder kleur" - -#: f.repair.cc:3240 -msgid "copy from image" -msgstr "copieer van afbeelding" - -#: f.repair.cc:3247 f.repair.cc:3837 -msgid "paintbrush radius" -msgstr "straal penseelcirkel" - -#: f.repair.cc:3248 -msgid "transparency center" -msgstr "doorzichtigheid midden" - -#: f.repair.cc:3249 -msgid "transparency edge" -msgstr "doorzichtigheid rand" - -#: f.repair.cc:3256 f.repair.cc:3844 -msgid "gradual paint" -msgstr "gradueel schilderen" - -#: f.repair.cc:3257 -msgid "paint over transparent areas" -msgstr "" - -#: f.repair.cc:3797 -msgid "" -"left drag: add transparency \n" -"right drag: add opacity" -msgstr "" - -#: f.repair.cc:3829 f.widgets.cc:488 -msgid "Paint Transparency" -msgstr "" - -#: f.repair.cc:3838 -msgid "strength center" -msgstr "" - -#: f.repair.cc:3839 -msgid "strength edge" -msgstr "" - -#: f.repair.cc:4094 f.widgets.cc:489 -msgid "Add Transparency" -msgstr "" - -#: f.repair.cc:4098 -msgid "Match Brightness" -msgstr "" - -#: f.repair.cc:4103 -msgid "Match Color" -msgstr "" - -#: f.repair.cc:4105 -msgid "click on image to select color" -msgstr "" - -#: f.repair.cc:4108 f.repair.cc:5318 -msgid "Match using:" -msgstr "" - -#: f.repair.cc:4114 f.repair.cc:5324 -msgid "Match Level:" -msgstr "" - -#: f.repair.cc:4121 -msgid "Invert Match" -msgstr "" - -#: f.repair.cc:4124 fotoxx.h:1190 -msgid "Transparency" -msgstr "Doorzichtigheid" - -#: f.repair.cc:4386 f.widgets.cc:490 -msgid "Color Mode" -msgstr "Kleur Mode" - -#: f.repair.cc:4390 -msgid "black/white positive" -msgstr "zwart/wit positief" - -#: f.repair.cc:4391 -msgid "black/white negative" -msgstr "zwart/wit negatief" - -#: f.repair.cc:4392 -msgid "color positive" -msgstr "kleur positief" - -#: f.repair.cc:4393 -msgid "color negative" -msgstr "kleur negatief" - -#: f.repair.cc:4394 -msgid "sepia" -msgstr "sepia" - -#: f.repair.cc:4574 f.widgets.cc:491 -msgid "Shift Colors" -msgstr "Verschuiven Kleuren" - -#: f.repair.cc:4810 f.widgets.cc:492 -msgid "Color Saturation" -msgstr "" - -#: f.repair.cc:4998 -msgid "+Brightness" -msgstr "+Helderheid" - -#: f.repair.cc:4999 -msgid "+Red -Cyan" -msgstr "+Rood -Cyaan" - -#: f.repair.cc:5000 -msgid "+Green -Magenta" -msgstr "+Groen -Magenta" - -#: f.repair.cc:5001 -msgid "+Blue -Yellow" -msgstr "+Blauw -Geel" - -#: f.repair.cc:5007 fotoxx.h:1167 -msgid "Red" -msgstr "Rood" - -#: f.repair.cc:5008 fotoxx.h:1132 -msgid "Green" -msgstr "Groen" - -#: f.repair.cc:5009 fotoxx.h:1102 -msgid "Blue" -msgstr "Blauw" - -#: f.repair.cc:5313 -msgid "Input color to match and adjust:" -msgstr "" - -#: f.repair.cc:5315 -msgid "shift+click on image to select color" -msgstr "" - -#: f.repair.cc:5319 -msgid "Hue" -msgstr "" - -#: f.repair.cc:5320 f.repair.cc:5352 -msgid "Saturation" -msgstr "" - -#: f.repair.cc:5321 f.repair.cc:5353 -msgid "Lightness" -msgstr "" - -#: f.repair.cc:5331 -msgid "Output Color" -msgstr "" - -#: f.repair.cc:5351 -msgid "Color Hue" -msgstr "" - -#: f.repair.cc:5354 -msgid "Adjustment" -msgstr "" - -#: f.repair.cc:5839 -msgid "Ramp brightness across image" -msgstr "Helderheidsverspreiding horizontaal/verticaal" - -#: f.repair.cc:6163 f.tools.cc:2184 -msgid "Click image to select pixels." -msgstr "Klik in afbeelding om pixels te selecteren" - -#: f.repair.cc:6194 -msgid "Color Ramp" -msgstr "" - -#: f.repair.cc:6205 -msgid "Metric:" -msgstr "Metriek:" - -#: f.repair.cc:6630 -msgid "Color Match Images" -msgstr "Kleuren Match Afbeeldingen" - -#: f.repair.cc:6656 -msgid "mouse radius for color sample" -msgstr "straal cirkel voor kleurmonster" - -#: f.repair.cc:6659 -msgid "image for source color" -msgstr "afbeelding voor kleur-selectie" - -#: f.repair.cc:6661 -msgid "click on image to get source color" -msgstr "klik in afbeelding voor kleur-selectie" - -#: f.repair.cc:6664 -msgid "image to set matching color" -msgstr "afbeelding om matchende kleur te veranderen" - -#: f.repair.cc:6666 -msgid "click on image to set matching color" -msgstr "klik op afbeelding om matchende kleur te veranderen" - -#: f.repair.cc:6727 -msgid "select source image color first" -msgstr "kies eerst kleur in afbeelding" - -#: f.repair.cc:6912 -msgid "Change Color Profile" -msgstr "Wijzigen Kleurprofiel" - -#: f.repair.cc:6916 -msgid "input profile" -msgstr "input profiel" - -#: f.repair.cc:6920 -msgid "output profile" -msgstr "output profiel" - -#: f.repair.cc:6936 -msgid "color profile" -msgstr "kleurprofiel" - -#: f.repair.cc:6982 f.repair.cc:6988 -#, c-format -msgid "unknown cms profile %s" -msgstr "onbekend cms profiel %s" - -#: f.repair.cc:7120 f.widgets.cc:499 -msgid "Remove Dust" -msgstr "Stofspikkels verwijderen" - -#: f.repair.cc:7124 -msgid "spot size limit" -msgstr "stip grootte limiet" - -#: f.repair.cc:7127 -msgid "max. brightness" -msgstr "max. helderheid" - -#: f.repair.cc:7130 -msgid "min. contrast" -msgstr "min. contrast" - -#: f.repair.cc:7904 -msgid "" -" Adjust each RGB color to minimize \n" -" color fringes at the image extremes. " -msgstr "" -"Instellen van elke RGB om kleur-franjes op \n" -"de afbeeldings-extremen te verminderen " - -#: f.repair.cc:7927 f.widgets.cc:501 -msgid "Color Fringes" -msgstr "" - -#: f.repair.cc:8126 f.widgets.cc:502 -msgid "Stuck Pixels" -msgstr "" - -#: f.repair.cc:8132 -msgid "pixel group" -msgstr "pixel groep" - -#: f.repair.cc:8140 f.repair.cc:8208 -msgid "stuck pixels:" -msgstr "defecte pixels:" - -#: f.repair.cc:8236 -msgid "Load Stuck Pixels" -msgstr "Laden Defecte Pixels" - -#: f.repair.cc:8238 -msgid "File:" -msgstr "Bestand:" - -#: f.repair.cc:8263 f.repair.cc:8320 -msgid "Stuck Pixels file" -msgstr "Defecte Pixels bestand" - -#: f.repair.cc:8300 f.tools.cc:3656 -msgid "file format error" -msgstr "fout in bestandsformaat" - -#: f.tools.cc:70 -msgid "" -"Select directories containing image files \n" -"(subdirectories are included automatically)." -msgstr "" - -#: f.tools.cc:72 -msgid "Select to add, click on X to delete." -msgstr "" - -#: f.tools.cc:73 -msgid "Select directory for thumbnails." -msgstr "" - -#: f.tools.cc:74 -msgid "" -"Index function terminated. Fotoxx will close. \n" -"Indexing is required for search and map functions \n" -"and to make the gallery pages acceptably fast." -msgstr "" - -#: f.tools.cc:106 f.widgets.cc:546 -msgid "Index Image Files" -msgstr "Indexering Afbeeldingen" - -#: f.tools.cc:255 -msgid "Choose top image directories" -msgstr "Selecteer hoogste afbeeldingsmap" - -#: f.tools.cc:256 -msgid "Choose thumbnail directory" -msgstr "Kies miniaturen map" - -#: f.tools.cc:329 -msgid "" -"No image file index was found.\n" -"An image file index will be created.\n" -"Your image files will not be changed.\n" -"This may need considerable time if you \n" -"have many thousands of image files." -msgstr "" - -#: f.tools.cc:335 -#, c-format -msgid "" -"Invalid directory: \n" -" %s \n" -"Please remove." -msgstr "" - -#: f.tools.cc:338 -#, c-format -msgid "" -"Thumbnails directory: \n" -" %s \n" -"must be named .../thumbnails" -msgstr "" - -#: f.tools.cc:341 -#, c-format -msgid "" -"Duplicate directory: \n" -" %s \n" -"Please remove." -msgstr "" - -#: f.tools.cc:391 -msgid "no thumbnails directory defined" -msgstr "geen miniaturen map gedefinieerd" - -#: f.tools.cc:523 -msgid "Top directories have no images" -msgstr "" - -#: f.tools.cc:846 -msgid "Indexing is required for first-time startup." -msgstr "" - -#: f.tools.cc:912 -msgid "Recent Files Gallery" -msgstr "Laatst bekeken galerie" - -#: f.tools.cc:913 -msgid "Newest Files Gallery" -msgstr "Nieuwste Bestanden Galerie" - -#: f.tools.cc:914 -msgid "Previous Gallery" -msgstr "Vorige Galerie" - -#: f.tools.cc:915 -msgid "Previous Image" -msgstr "Vorige Afbeelding" - -#: f.tools.cc:916 -msgid "Blank Window" -msgstr "Leeg Venster" - -#: f.tools.cc:917 -msgid "Directory" -msgstr "" - -#: f.tools.cc:918 -msgid "Image File" -msgstr "Afbeeldingsbestand" - -#: f.tools.cc:964 f.widgets.cc:547 -msgid "User Options" -msgstr "" - -#: f.tools.cc:967 -msgid "Startup Display" -msgstr "Tonen bij Opstart" - -#: f.tools.cc:978 -msgid "Menu Style" -msgstr "Menu Stijl" - -#: f.tools.cc:979 -msgid "Icons" -msgstr "Pictogrammen" - -#: f.tools.cc:980 -msgid "Icons + Text" -msgstr "Pictogrammen + Tekst" - -#: f.tools.cc:982 -msgid "Icon size" -msgstr "Pictogram grootte" - -#: f.tools.cc:987 -msgid "alphabetic" -msgstr "" - -#: f.tools.cc:988 -msgid "file mod date" -msgstr "" - -#: f.tools.cc:989 -msgid "photo date" -msgstr "" - -#: f.tools.cc:992 -msgid "Dialog font and size" -msgstr "" - -#: f.tools.cc:997 -msgid "Image Pan/scroll:" -msgstr "" - -#: f.tools.cc:1000 -msgid "Zooms for 2x" -msgstr "Zooms voor 2x" - -#: f.tools.cc:1009 -msgid "JPEG save quality" -msgstr "JPEG kwaliteit" - -#: f.tools.cc:1016 -msgid "Curve node capture distance" -msgstr "" - -#: f.tools.cc:1020 -msgid "Map marker size" -msgstr "" - -#: f.tools.cc:1024 -msgid "show hidden directories in gallery view" -msgstr "" - -#: f.tools.cc:1027 -msgid "prev/next shows last file version only" -msgstr "" - -#: f.tools.cc:1030 -msgid "shift image to right margin" -msgstr "" - -#: f.tools.cc:1033 -msgid "RAW command" -msgstr "RAW opdracht" - -#: f.tools.cc:1037 -msgid "RAW file types" -msgstr "RAW bestandstype" - -#: f.tools.cc:1128 -msgid "Delete present thumbnails to make effective" -msgstr "" - -#: f.tools.cc:1150 -msgid "Select startup directory" -msgstr "Kies opstart map" - -#: f.tools.cc:1157 -msgid "Select startup image file" -msgstr "Kies opstart afbeeldingsbestand" - -#: f.tools.cc:1194 -msgid "startup directory is invalid" -msgstr "opstart map is ongeldig" - -#: f.tools.cc:1205 -msgid "startup file is invalid" -msgstr "opstart bestand is ongeldig" - -#: f.tools.cc:1332 f.widgets.cc:548 -msgid "Keyboard Shortcuts" -msgstr "Keyboard Shortcuts" - -#: f.tools.cc:1404 -msgid "Edit KB Shortcuts" -msgstr "Bewerk KB Shortcuts" - -#: f.tools.cc:1409 -msgid "shortcut key:" -msgstr "shortcut toets:" - -#: f.tools.cc:1410 -msgid "(enter key)" -msgstr "(enter toets)" - -#: f.tools.cc:1536 -#, c-format -msgid "\"%s\" Reserved, cannot be used" -msgstr "\"%s\" Gereserveerd, kan niet gebruikt worden" - -#: f.tools.cc:1669 -msgid "unable to save KB-shortcuts file" -msgstr "kan KB-shortcuts bestand niet bewaren" - -#: f.tools.cc:1973 f.widgets.cc:550 -msgid "Grid Lines" -msgstr "Raster instellen" - -#: f.tools.cc:1982 -msgid "x-spacing" -msgstr "x-afstand" - -#: f.tools.cc:1983 -msgid "x-count" -msgstr "x-aantal" - -#: f.tools.cc:1984 -msgid "x-enable" -msgstr "x-activeren" - -#: f.tools.cc:1990 -msgid "y-spacing" -msgstr "y-afstand" - -#: f.tools.cc:1991 -msgid "y-count" -msgstr "y-aantal" - -#: f.tools.cc:1992 -msgid "y-enable" -msgstr "y-activeren" - -#: f.tools.cc:2112 f.tools.cc:2117 f.widgets.cc:551 -msgid "Line Color" -msgstr "Lijn kleur" - -#: f.tools.cc:2114 -msgid "Area Color" -msgstr "Uitsnede kleur" - -#: f.tools.cc:2219 f.widgets.cc:552 -msgid "Show RGB" -msgstr "RGB waarden tonen" - -#: f.tools.cc:2509 -msgid "" -"Drag mouse on image. \n" -"Left click to cancel. \n" -"Key X to toggle dialog." -msgstr "" - -#: f.tools.cc:2535 f.widgets.cc:553 -msgid "Magnify Image" -msgstr "" - -#: f.tools.cc:2544 -msgid "X-size" -msgstr "" - -#: f.tools.cc:2789 -msgid "Darkest and Brightest Pixels" -msgstr "Donkerste en Lichtste Pixels" - -#: f.tools.cc:2812 -msgid "Dark Limit" -msgstr "Donkere Limiet" - -#: f.tools.cc:2813 -msgid "Bright Limit" -msgstr "Lichte Limiet" - -#: f.tools.cc:2908 -msgid "" -"Brightness should show a gradual ramp \n" -"extending all the way to the edges." -msgstr "" -"Helderheid moet een geleidelijke verandering laten \n" -"zien, zich geheel uitstrekkend naar de randen." - -#: f.tools.cc:3004 f.widgets.cc:556 -msgid "Monitor Gamma" -msgstr "Gamma waarde monitor" - -#: f.tools.cc:3064 -msgid "Available Translations" -msgstr "Beschikbare vertalingen" - -#: f.tools.cc:3068 -msgid "Set Language" -msgstr "Instellen taal" - -#: f.tools.cc:3206 f.widgets.cc:559 -msgid "Calibrate Printer" -msgstr "" - -#: f.tools.cc:3231 -msgid "print color chart" -msgstr "" - -#: f.tools.cc:3232 -msgid "scan and save color chart" -msgstr "" - -#: f.tools.cc:3233 -msgid "align and trim color chart" -msgstr "" - -#: f.tools.cc:3234 -msgid "open and process color chart" -msgstr "" - -#: f.tools.cc:3235 -msgid "print image with revised colors" -msgstr "" - -#: f.tools.cc:3378 -#, c-format -msgid "" -"Scan the printed color chart. \n" -"The darkest row is at the top. \n" -"Save in %s/" -msgstr "" - -#: f.tools.cc:3393 -msgid "" -"Open and edit the scanned color chart file. \n" -"Remove any skew or rotation from scanning. \n" -"(Use the Fix Perspective function for this). \n" -"Cut off the thin green margin ACCURATELY." -msgstr "" - -#: f.tools.cc:3425 -msgid "Open the trimmed color chart file" -msgstr "" - -#: f.tools.cc:3558 -msgid "" -"Set the name for the output calibration file \n" -"[your calibration name].dat" -msgstr "" - -#: f.tools.cc:3598 -msgid "Color map file to use" -msgstr "" - -#: f.tools.cc:3615 -msgid "Select the image file to print." -msgstr "" - -#: f.tools.cc:3680 -msgid "converting colors..." -msgstr "" - -#: f.tools.cc:3780 -msgid "Image colors are converted for printing." -msgstr "" - -#: f.widgets.cc:112 -msgid "Album" -msgstr "" - -#: f.widgets.cc:114 -msgid "TOP" -msgstr "TOP" - -#: f.widgets.cc:178 -msgid "Current Image File (key F)" -msgstr "" - -#: f.widgets.cc:179 -msgid "Thumbnail Gallery (key G)" -msgstr "" - -#: f.widgets.cc:180 -msgid "World Maps (key W)" -msgstr "" - -#: f.widgets.cc:181 -msgid "OSM Maps (key M)" -msgstr "" - -#: f.widgets.cc:184 -msgid "Favorite Functions" -msgstr "Favoriete Functies" - -#: f.widgets.cc:185 -msgid "File: Open, RAW, Rename, Delete, Print" -msgstr "" - -#: f.widgets.cc:186 -msgid "Save modified image file to disk" -msgstr "Bewaar gewijzigd afbeeldingsbestand" - -#: f.widgets.cc:187 -msgid "Open previous or next file (left/right mouse click)" -msgstr "Open vorig of volgend bestand (linker/rechter muisklik)" - -#: f.widgets.cc:188 -msgid "Metadata: Captions, Tags, Ratings, Geotags, Search ... " -msgstr "Metadata: Onderschriften, Tags, Geotags, Zoeken ..." - -#: f.widgets.cc:189 -msgid "Areas: Select areas to edit, copy and paste" -msgstr "Uitsnedes: Selecteer uitsnedes om te wijzigen, copieren en plakken." - -#: f.widgets.cc:190 -msgid "Edit: Trim, Rotate, Resize, Brightness, Contrast, Text ..." -msgstr "" -"Bewerken: Bijsnijden, Draaien, Herschalen, Helderheid, Contrast, Tekst ..." - -#: f.widgets.cc:191 -msgid "Repair: Sharpen, Noise, Red-eyes, Color, Paint, Clone ..." -msgstr "Repareren: Verscherpen, Ruis, Rode ogen, Kleur, Schilderen, Klonen ..." - -#: f.widgets.cc:192 -msgid "Bend: Fix Perspective, Bend/Warp image ..." -msgstr "Krommen: Fix Perspectief, Krommen/Kromtrekken afbeelding ..." - -#: f.widgets.cc:193 -msgid "Effects: Special Effects, Arty Transforms" -msgstr "Effecten: Speciale Effecten, Artistieke Transformaties" - -#: f.widgets.cc:194 -msgid "Combine: HDR, HDF, Panorama, Stack, Mashup" -msgstr "Samenvoegen: HDR, HDF, Panorama, Stapel, Mashup" - -#: f.widgets.cc:195 -msgid "" -"left/right click: undo/redo 1 edit \n" -" with key A: undo/redo all edits \n" -" middle click: go to any prior edit" -msgstr "" - -#: f.widgets.cc:198 -msgid "Tools: Index, Options, Shortcuts, Magnify ..." -msgstr "" - -#: f.widgets.cc:199 -msgid "Help: Quick Start, User Guide, Recent Changes ..." -msgstr "Help: Snel Start, Gebruikershandleiding, Recente veranderingen ..." - -#: f.widgets.cc:202 -msgid "Set gallery from current image file" -msgstr "Instellen galerie van huidige afbeelding" - -#: f.widgets.cc:203 -msgid "Albums: Manage Albums, Slide Show, Desktop Wallpaper" -msgstr "" - -#: f.widgets.cc:204 -msgid "go to bookmarked image" -msgstr "ga naar afbeelding van bladwijzer" - -#: f.widgets.cc:205 -msgid "increase thumbnail size" -msgstr "vergroten miniaturen" - -#: f.widgets.cc:206 -msgid "reduce thumbnail size" -msgstr "verkleinen miniaturen" - -#: f.widgets.cc:207 -msgid "change sort order" -msgstr "verander sorteer volgorde" - -#: f.widgets.cc:208 -msgid "jump to beginning (top)" -msgstr "spring naar begin (boven)" - -#: f.widgets.cc:209 -msgid "jump to end (bottom)" -msgstr "spring naar eind (onder)" - -#: f.widgets.cc:210 -msgid "previous page" -msgstr "vorige pagina" - -#: f.widgets.cc:211 -msgid "next page" -msgstr "volgende pagina" - -#: f.widgets.cc:212 -msgid "slow scroll" -msgstr "langzame scroll" - -#: f.widgets.cc:213 -msgid "Batch conversion, metadata, RAW processing" -msgstr "" - -#: f.widgets.cc:216 -msgid "Choose a map for image locations" -msgstr "" - -#: f.widgets.cc:217 -msgid "Set image search radius for map click" -msgstr "" - -#: f.widgets.cc:218 -msgid "Find images meeting select criteria" -msgstr "Zoek afbeeldingen volgens selectie criteria" - -#: f.widgets.cc:219 -msgid "Find all images for a location [date]" -msgstr "Zoek alle afbeeldingen voor een locatie [datum]" - -#: f.widgets.cc:226 -msgid "Open another window" -msgstr "Open nog een venster" - -#: f.widgets.cc:227 -msgid "Open a new image file" -msgstr "Open nieuwe afbeelding" - -#: f.widgets.cc:228 -msgid "Open the previously seen file" -msgstr "Open vorig getoond bestand" - -#: f.widgets.cc:229 -msgid "Open a recently seen file" -msgstr "Open een onlangs getoond bestand" - -#: f.widgets.cc:230 -msgid "Open a newly added file" -msgstr "Open een nieuw toegevoegd bestand" - -#: f.widgets.cc:231 f.widgets.cc:232 -msgid "Open and edit a camera RAW file" -msgstr "Open en bewerk een RAW bestand" - -#: f.widgets.cc:233 -msgid "Change the image file name" -msgstr "Wijzig naam van het afbeeldingsbestand" - -#: f.widgets.cc:234 -msgid "Copy or Move an image file to a new location" -msgstr "" - -#: f.widgets.cc:235 -msgid "Create a blank image" -msgstr "Maak een lege afbeelding" - -#: f.widgets.cc:236 -msgid "Delete or trash image file" -msgstr "" - -#: f.widgets.cc:237 -msgid "Print the current image" -msgstr "Afdrukken actuele afbeelding" - -#: f.widgets.cc:238 -msgid "Print current image with adjusted colors" -msgstr "" - -#: f.widgets.cc:239 f.widgets.cc:434 -msgid "Quit Fotoxx" -msgstr "Verlaat Fotoxx" - -#: f.widgets.cc:242 -msgid "List a few key metadata items" -msgstr "Belangrijkste metadata opsommen" - -#: f.widgets.cc:243 -msgid "List all metadata items" -msgstr "Opsommen alle metadata items" - -#: f.widgets.cc:244 -msgid "(Toggle) show captions and comments" -msgstr "(Wissel) toon onderschriften en commentaar" - -#: f.widgets.cc:245 -msgid "Edit image tags/geotags/caption/rating ..." -msgstr "" - -#: f.widgets.cc:246 -msgid "Edit any image metadata" -msgstr "Bewerken metadata van afbeelding" - -#: f.widgets.cc:247 -msgid "Remove all metadata from an image" -msgstr "Verwijder alle metadata van een afbeelding" - -#: f.widgets.cc:248 -msgid "Add/remove tags for multiple images" -msgstr "Toevoegen/verwijderen tags voor meerdere afbeeldingen" - -#: f.widgets.cc:249 -msgid "Convert tag names for all images" -msgstr "" - -#: f.widgets.cc:250 -msgid "Add/change/delete metadata for multiple images" -msgstr "" - -#: f.widgets.cc:251 -msgid "Report metadata for multiple images" -msgstr "" - -#: f.widgets.cc:252 -msgid "Add/revise geotags for multiple images" -msgstr "" - -#: f.widgets.cc:257 -msgid "Select object or area for editing" -msgstr "Selecteer object of uitsnede om te bewerken" - -#: f.widgets.cc:258 -msgid "Show (outline) existing area" -msgstr "Toon (contour) bestaande uitsnede" - -#: f.widgets.cc:259 -msgid "Hide existing area" -msgstr "Verberg bestaande uitsnede" - -#: f.widgets.cc:260 -msgid "Enable area for editing" -msgstr "Activeer uitsnede om te bewerken" - -#: f.widgets.cc:261 -msgid "Disable area for editing" -msgstr "Deactiveer uitsnede om te bewerken" - -#: f.widgets.cc:262 -msgid "Reverse existing area" -msgstr "Bestaande uitsnede omkeren" - -#: f.widgets.cc:263 -msgid "Erase existing area" -msgstr "Verwijder bestaande uitsnede" - -#: f.widgets.cc:264 -msgid "Copy area for later pasting into image" -msgstr "" - -#: f.widgets.cc:265 -msgid "Paste previously copied area into image" -msgstr "" - -#: f.widgets.cc:266 -msgid "Open a file and paste as area into image" -msgstr "" - -#: f.widgets.cc:267 -msgid "Save area to a file with transparency" -msgstr "" - -#: f.widgets.cc:270 -msgid "Trim/Crop margins and/or Rotate" -msgstr "Bijsnijden marges en/of Draaien" - -#: f.widgets.cc:271 -msgid "Upright a rotated image" -msgstr "" - -#: f.widgets.cc:272 f.widgets.cc:273 -msgid "Fast auto enhance that may work OK" -msgstr "Snelle auto-verbetering dat mogelijk goed werkt" - -#: f.widgets.cc:274 -msgid "Adjust brightness, contrast, color" -msgstr "Instellen helderheid, contrast, kleur" - -#: f.widgets.cc:275 -msgid "Add local contrast, enhance details" -msgstr "Toevoegen lokaal contrast, verbeter details" - -#: f.widgets.cc:276 -msgid "Edit brightness distribution" -msgstr "" - -#: f.widgets.cc:277 -msgid "Flatten zonal brightness distribution" -msgstr "" - -#: f.widgets.cc:278 -msgid "Change pixel dimensions" -msgstr "Verander pixel dimensies" - -#: f.widgets.cc:279 -msgid "Mirror image horizontally or vertically" -msgstr "Spiegel afbeelding horizontaal of verticaal" - -#: f.widgets.cc:280 -msgid "Write text on image" -msgstr "Schrijf tekst op afbeelding" - -#: f.widgets.cc:281 -msgid "Write lines or arrows on image" -msgstr "Schrijf lijnen of pijlen op afbeelding" - -#: f.widgets.cc:282 -msgid "Fix brightness uniformity across image" -msgstr "Repareren helderheidsverdeling over de afbeelding" - -#: f.widgets.cc:283 -msgid "Paint edit function gradually with mouse" -msgstr "Bewerkingsfunctie geleidelijk met muis schilderen " - -#: f.widgets.cc:284 -msgid "Leverage edits by brightness or color" -msgstr "Veranderingen versterken met helderheid of kleur" - -#: f.widgets.cc:285 -msgid "Edit plugins menu or run a plugin function" -msgstr "" - -#: f.widgets.cc:288 -msgid "Make the image look sharper" -msgstr "Laat de afbeelding er scherper uitzien" - -#: f.widgets.cc:289 -msgid "Make the image look fuzzy" -msgstr "Laat de afbeelding er nevelig uitzien" - -#: f.widgets.cc:290 -msgid "Filter noise from low-light photos" -msgstr "Filter ruis van laag belichte foto's" - -#: f.widgets.cc:291 -msgid "Remove unwanted objects" -msgstr "Verwijder ongewenste objecten" - -#: f.widgets.cc:292 -msgid "Fix red-eyes from electronic flash" -msgstr "Repareren rode-ogen door electronisch flitslicht" - -#: f.widgets.cc:293 -msgid "Paint image pixels using the mouse" -msgstr "Schilderen afbeeldings pixels met de muis" - -#: f.widgets.cc:294 -msgid "Paint image transparency using the mouse" -msgstr "" - -#: f.widgets.cc:295 -msgid "Add image transparency based on image attributes" -msgstr "" - -#: f.widgets.cc:296 -msgid "Make BW/color, negative/positive, sepia" -msgstr "Maak BW/kleur, negatief/positief, sepia" - -#: f.widgets.cc:297 -msgid "Shift/convert colors into other colors" -msgstr "Verschuiven/converteren kleuren naar andere kleuren" - -#: f.widgets.cc:298 -msgid "Adjust color intensity (saturation)" -msgstr "" - -#: f.widgets.cc:299 -msgid "Adjust color using RGB or CMY colors" -msgstr "" - -#: f.widgets.cc:300 -msgid "Adjust color using HSL colors" -msgstr "" - -#: f.widgets.cc:301 -msgid "Adjust color in selected image areas" -msgstr "Instellen kleur in geselecteerde uitsnedes" - -#: f.widgets.cc:302 -msgid "Match colors on one image with another" -msgstr "Match kleuren van twee afbeeldingen" - -#: f.widgets.cc:303 -msgid "Convert to another color profile" -msgstr "Omzetten naar ander kleurprofiel" - -#: f.widgets.cc:304 -msgid "Remove dust spots from scanned slides" -msgstr "Verwijderen stofspikkels van gescande dia's" - -#: f.widgets.cc:305 -msgid "Smoothen edges with jaggies" -msgstr "Glad maken randen met randjes" - -#: f.widgets.cc:306 -msgid "Reduce Chromatic Abberation" -msgstr "Verminderen Chromatische Aberratie" - -#: f.widgets.cc:307 -msgid "Erase known hot and dark pixels" -msgstr "Verwijderen bekende hete en donkere pixels" - -#: f.widgets.cc:310 -msgid "Remove curvature, esp. panoramas" -msgstr "Verwijder kromming, met name panorama's" - -#: f.widgets.cc:311 -msgid "Straighten objects seen from an angle" -msgstr "Rechttrekken objecten gezien vanuit een hoek" - -#: f.widgets.cc:312 -msgid "Distort image areas using the mouse" -msgstr "Verdraai uitsnede met de muis" - -#: f.widgets.cc:313 f.widgets.cc:314 f.widgets.cc:315 -msgid "Distort the whole image using the mouse" -msgstr "Verdraai hele afbeelding met de muis" - -#: f.widgets.cc:316 -msgid "Flatten a photographed book page" -msgstr "Platstrijken foto van pagina" - -#: f.widgets.cc:317 -msgid "Make a spherical projection of an image" -msgstr "" - -#: f.widgets.cc:318 -msgid "Rescale image outside selected areas" -msgstr "" - -#: f.widgets.cc:321 -msgid "Reduce color depth (posterize)" -msgstr "Verminderen kleurdiepte (minder schakeringen)" - -#: f.widgets.cc:322 -msgid "Convert to pencil sketch" -msgstr "Converteer naar potlood schets" - -#: f.widgets.cc:323 -msgid "Convert image into a cartoon drawing" -msgstr "" - -#: f.widgets.cc:324 -msgid "Convert to line drawing (edge detection)" -msgstr "Converteren naar lijn tekenen (rand detectie)" - -#: f.widgets.cc:325 -msgid "Convert to solid color drawing" -msgstr "Converteer naar effen kleur tekenen" - -#: f.widgets.cc:326 -msgid "Graduated Blur depending on contrast" -msgstr "Graduele Vervaging afhankelijk van contrast" - -#: f.widgets.cc:327 -msgid "Create an embossed or 3D appearance" -msgstr "Maak een relief of 3D verschijning" - -#: f.widgets.cc:328 -msgid "Convert to square tiles" -msgstr "Converteren naar vierkante tegels" - -#: f.widgets.cc:329 -msgid "Convert to dots (Roy Lichtenstein effect)" -msgstr "Converteren naar stippen (Roy Lichtenstein effect)" - -#: f.widgets.cc:330 -msgid "Convert into a simulated painting" -msgstr "Converteren naar nagebootst schilderij" - -#: f.widgets.cc:331 -msgid "Change brightness or color radially" -msgstr "Verander helderheid of kleur radiaal" - -#: f.widgets.cc:332 -msgid "Add texture to an image" -msgstr "Toevoegen textuur aan afbeelding" - -#: f.widgets.cc:333 -msgid "Tile image with a repeating pattern" -msgstr "Tegel afbeelding met een herhaald patroon" - -#: f.widgets.cc:334 -msgid "Create a mosaic with tiles made from all images" -msgstr "Creeer een mozaiek met tegels gemaakt van alle afbeeldingen" - -#: f.widgets.cc:335 -msgid "Process an image using a custom kernel" -msgstr "Verwerken afbeelding met aangepaste kernel" - -#: f.widgets.cc:336 -msgid "Warp an image with a wave pattern" -msgstr "Kromtrekken afbeelding met een golf patroon" - -#: f.widgets.cc:337 -msgid "Blur an image in the direction of mouse drags" -msgstr "" - -#: f.widgets.cc:338 -msgid "Increasing blur with distance from selected areas" -msgstr "" - -#: f.widgets.cc:341 -msgid "Combine bright/dark images for better detail" -msgstr "Samenvoegen licht/donker afbeeldingen voor beter detail" - -#: f.widgets.cc:342 -msgid "Combine near/far focus images for deeper focus" -msgstr "Samenvoegen dichtbij/veraf afbeeldingen voor meer scherptediepte" - -#: f.widgets.cc:343 -msgid "Combine images to erase passing people, etc." -msgstr "Samenvoegen afbeeldingen om voorbijgangers etc. te verwijderen " - -#: f.widgets.cc:344 -msgid "Combine noisy images into a low-noise image" -msgstr "Samenvoegen ruis afbeeldingen naar lagere-ruis afbeelding" - -#: f.widgets.cc:345 -msgid "Combine images into a panorama" -msgstr "Samenvoegen afbeeldingen in een panorama" - -#: f.widgets.cc:346 -msgid "Combine images into a vertical panorama" -msgstr "Samenvoegen afbeeldingen in een verticaal panorama" - -#: f.widgets.cc:347 -msgid "Combine images into a panorama (panorama tools)" -msgstr "Samenvoegen afbeeldingen in een panorama (panorama tools)" - -#: f.widgets.cc:348 -msgid "Arrange images and text in a layout (montage)" -msgstr "" - -#: f.widgets.cc:351 -msgid "Index new files and make thumbnails" -msgstr "Indexeer nieuwe bestanden en maak miniaturen" - -#: f.widgets.cc:352 -msgid "Change user preferences" -msgstr "Verander gebruikersvoorkeuren" - -#: f.widgets.cc:353 -msgid "Change Keyboard Shortcut Keys" -msgstr "Wijzig Keyboard Shortcut Toetsen" - -#: f.widgets.cc:354 -msgid "Show a brightness distribution graph" -msgstr "Toon helderheids verdeling grafiek" - -#: f.widgets.cc:355 -msgid "Show or revise grid lines" -msgstr "Toon of herstel raster lijnen" - -#: f.widgets.cc:356 -msgid "Change color of foreground lines" -msgstr "Verander kleur van voorgrond lijnen" - -#: f.widgets.cc:357 -msgid "Show RGB colors at mouse click" -msgstr "Toon RGB kleuren bij muisklik" - -#: f.widgets.cc:358 -msgid "Magnify image around the mouse position" -msgstr "" - -#: f.widgets.cc:359 -msgid "Highlight darkest and brightest pixels" -msgstr "Markeer donkerste en lichtste pixels" - -#: f.widgets.cc:360 -msgid "Chart to adjust monitor color" -msgstr "Grafiek instellen monitor kleur" - -#: f.widgets.cc:361 -msgid "Chart to adjust monitor gamma" -msgstr "Grafiek instellen monitor gamma" - -#: f.widgets.cc:362 -msgid "Change the GUI language" -msgstr "Verander de GUI taal" - -#: f.widgets.cc:363 -msgid "Report missing translations" -msgstr "Rapport ontbrekende vertalingen" - -#: f.widgets.cc:364 -msgid "Calibrate printer colors" -msgstr "" - -#: f.widgets.cc:365 -msgid "Memory and CPU (to terminal/logfile)" -msgstr "Geheugen en CPU (naar beeldscherm/logfile)" - -#: f.widgets.cc:369 -msgid "Rename/convert/resize/move multiple files" -msgstr "Hernoemen/Converteren/Herschalen/Verplaatsen meerdere bestanden" - -#: f.widgets.cc:370 -msgid "Upright multiple rotated image files" -msgstr "" - -#: f.widgets.cc:371 -msgid "Delete or Trash multiple files" -msgstr "" - -#: f.widgets.cc:372 -msgid "Convert camera RAW files using DCraw" -msgstr "Converteren camera RAW bestanden met DCraw" - -#: f.widgets.cc:373 -msgid "Convert camera RAW files using Raw Therapee" -msgstr "Converteren camera RAW bestanden met Raw Therapee" - -#: f.widgets.cc:374 -msgid "Build and run edit script files" -msgstr "" - -#: f.widgets.cc:375 -msgid "Burn selected image files to DVD/BlueRay disc" -msgstr "" - -#: f.widgets.cc:376 -msgid "Search all image files and report duplicates" -msgstr "" - -#: f.widgets.cc:381 -msgid "Quick Start mini-guide" -msgstr "Snel Start mini-handleiding" - -#: f.widgets.cc:382 -msgid "Read the user guide" -msgstr "Lees de gebruikershandleiding" - -#: f.widgets.cc:383 -msgid "Recent user guide changes" -msgstr "Recente veranderingen gebruikershandleiding" - -#: f.widgets.cc:384 -msgid "Summary of image edit functions" -msgstr "Opsomming van bewerkingsfuncties voor afbeeldingen" - -#: f.widgets.cc:385 -msgid "Technical installation notes" -msgstr "Opmerkingen Technische Installatie" - -#: f.widgets.cc:386 -msgid "List updates by Fotoxx version" -msgstr "Opsomming updates per Fotoxx versie" - -#: f.widgets.cc:387 -msgid "View the log file and error messages" -msgstr "Bekijk het log bestand en foutboodschappen" - -#: f.widgets.cc:388 -msgid "How to do Fotoxx translations" -msgstr "Hoe Fotoxx vertalen" - -#: f.widgets.cc:389 -msgid "Show the Fotoxx web page" -msgstr "Toon de Fotoxx webpagina" - -#: f.widgets.cc:390 -msgid "Version, license, contact, credits" -msgstr "Versie, licentie, contact, bijdragen" - -#: f.widgets.cc:393 -msgid "Organize images into albums" -msgstr "" - -#: f.widgets.cc:394 -msgid "Start a slide show" -msgstr "Start een diashow" - -#: f.widgets.cc:395 -msgid "Set desktop wallpaper from current Fotoxx image" -msgstr "" - -#: f.widgets.cc:396 -msgid "Cycle desktop wallpaper from a Fotoxx album" -msgstr "" - -#: f.widgets.cc:419 -msgid "New Window" -msgstr "Nieuw Venster" - -#: f.widgets.cc:421 -msgid "Recently Seen Images" -msgstr "Onlangs Bekeken Afbeeldingen" - -#: f.widgets.cc:422 -msgid "Newest Images" -msgstr "Nieuwste Afbeeldingen" - -#: f.widgets.cc:424 -msgid "Open Previous File" -msgstr "Open vorig bestand" - -#: f.widgets.cc:425 -msgid "Open RAW (ufraw)" -msgstr "" - -#: f.widgets.cc:426 -msgid "Open RAW (Raw Therapee)" -msgstr "" - -#: f.widgets.cc:427 -msgid "New Blank Image" -msgstr "Nieuwe Lege Afbeelding" - -#: f.widgets.cc:429 f.widgets.cc:727 -msgid "Copy/Move to Location" -msgstr "" - -#: f.widgets.cc:430 -msgid "Delete/Trash Image File" -msgstr "" - -#: f.widgets.cc:431 -msgid "Print Image" -msgstr "Afdrukken Afbeelding" - -#: f.widgets.cc:432 -msgid "Print Calibrated Image" -msgstr "" - -#: f.widgets.cc:433 f.widgets.cc:585 -msgid "Set Desktop Wallpaper" -msgstr "" - -#: f.widgets.cc:437 -msgid "View Metadata (short)" -msgstr "Tonen Metadata (kort)" - -#: f.widgets.cc:438 -msgid "View Metadata (long)" -msgstr "Toon Metadata (lang)" - -#: f.widgets.cc:439 -msgid "Show Captions on Image" -msgstr "Toon Onderschriften op Afbeelding" - -#: f.widgets.cc:444 f.widgets.cc:575 -msgid "Batch Rename Tags" -msgstr "" - -#: f.widgets.cc:445 f.widgets.cc:576 -msgid "Batch Add/Change Metadata" -msgstr "" - -#: f.widgets.cc:448 f.widgets.cc:580 f.widgets.cc:658 f.widgets.cc:670 -msgid "Search Images" -msgstr "Afbeeldingen doorzoeken" - -#: f.widgets.cc:449 f.widgets.cc:579 f.widgets.cc:657 f.widgets.cc:669 -msgid "Images by Geotag" -msgstr "" - -#: f.widgets.cc:452 fotoxx.h:1181 -msgid "Select" -msgstr "Selecteren" - -#: f.widgets.cc:453 fotoxx.h:1183 -msgid "Show" -msgstr "Tonen" - -#: f.widgets.cc:454 fotoxx.h:1136 -msgid "Hide" -msgstr "Verbergen" - -#: f.widgets.cc:455 fotoxx.h:1123 -msgid "Enable" -msgstr "Uitsnede activeren" - -#: f.widgets.cc:456 fotoxx.h:1119 -msgid "Disable" -msgstr "Uitsnede deactiveren" - -#: f.widgets.cc:457 fotoxx.h:1139 -msgid "Invert" -msgstr "Uitsnede inverteren" - -#: f.widgets.cc:458 fotoxx.h:1197 -msgid "Unselect" -msgstr "Deselecteren" - -#: f.widgets.cc:459 -msgid "Copy Area" -msgstr "" - -#: f.widgets.cc:460 -msgid "Paste Area" -msgstr "" - -#: f.widgets.cc:461 -msgid "Open Area File" -msgstr "" - -#: f.widgets.cc:462 -msgid "Save Area File" -msgstr "" - -#: f.widgets.cc:467 -msgid "Voodoo 1" -msgstr "" - -#: f.widgets.cc:468 -msgid "Voodoo 2" -msgstr "" - -#: f.widgets.cc:470 f.widgets.cc:741 -msgid "Edit Brightness" -msgstr "" - -#: f.widgets.cc:471 f.widgets.cc:742 -msgid "Zonal Flatten" -msgstr "" - -#: f.widgets.cc:475 -msgid "Add Text" -msgstr "Schrijf Tekst" - -#: f.widgets.cc:476 -msgid "Add Lines" -msgstr "Toevoegen Lijnen" - -#: f.widgets.cc:479 -msgid "Plugins" -msgstr "Plugins" - -#: f.widgets.cc:484 -msgid "Denoise" -msgstr "Ruis verminderen" - -#: f.widgets.cc:486 -msgid "Red Eyes" -msgstr "Rode ogen corrigeren" - -#: f.widgets.cc:493 -msgid "Adjust RGB/CMY" -msgstr "" - -#: f.widgets.cc:494 -msgid "Adjust HSL" -msgstr "" - -#: f.widgets.cc:495 -msgid "Ramp Brightness" -msgstr "" - -#: f.widgets.cc:496 -msgid "Ramp Color" -msgstr "" - -#: f.widgets.cc:497 -msgid "Match Colors" -msgstr "Match Kleuren" - -#: f.widgets.cc:498 -msgid "Color Profile" -msgstr "Kleurprofiel" - -#: f.widgets.cc:500 -msgid "Anti-Alias" -msgstr "Anti-Alias" - -#: f.widgets.cc:506 -msgid "Fix Perspective" -msgstr "Fix Perspectief" - -#: f.widgets.cc:511 -msgid "Flatten Book Page" -msgstr "Platstrijken Pagina van Boek" - -#: f.widgets.cc:516 -msgid "Color Depth" -msgstr "Kleurdiepte instellen" - -#: f.widgets.cc:517 -msgid "Sketch" -msgstr "Schets" - -#: f.widgets.cc:518 -msgid "Cartoon" -msgstr "" - -#: f.widgets.cc:522 -msgid "Embossing" -msgstr "Reliefdruk" - -#: f.widgets.cc:524 -msgid "Dots" -msgstr "Krantendruk" - -#: f.widgets.cc:525 -msgid "Painting" -msgstr "Schilderij" - -#: f.widgets.cc:527 -msgid "Texture" -msgstr "Textuur" - -#: f.widgets.cc:529 -msgid "Mosaic" -msgstr "Mozaiek" - -#: f.widgets.cc:536 -msgid "High Dynamic Range" -msgstr "Hoog dynamisch bereik (HDR)" - -#: f.widgets.cc:537 -msgid "High Depth of Field" -msgstr "Hoge scherptediepte (HDF)" - -#: f.widgets.cc:538 -msgid "Stack/Paint" -msgstr "Stapelen/Schilderen" - -#: f.widgets.cc:539 -msgid "Stack/Noise" -msgstr "Stapelen/Ruis verminderen" - -#: f.widgets.cc:540 -msgid "Panorama" -msgstr "Panorama maken" - -#: f.widgets.cc:541 -msgid "Vertical Panorama" -msgstr "Verticaal panorama" - -#: f.widgets.cc:542 -msgid "PT Panorama" -msgstr "" - -#: f.widgets.cc:543 -msgid "Mashup" -msgstr "Mashup" - -#: f.widgets.cc:549 -msgid "Brightness Graph" -msgstr "" - -#: f.widgets.cc:554 -msgid "Dark/Bright Pixels" -msgstr "Donker/Licht Pixels" - -#: f.widgets.cc:555 -msgid "Monitor Color" -msgstr "Monitor Kleur " - -#: f.widgets.cc:557 -msgid "Change Language" -msgstr "Taal veranderen" - -#: f.widgets.cc:558 -msgid "Missing Translations" -msgstr "Ontbrekende Vertalingen" - -#: f.widgets.cc:560 -msgid "Resources" -msgstr "Hulpbronnen" - -#: f.widgets.cc:567 -msgid "Batch RAW (DCraw)" -msgstr "Batchgewijs RAW (DCraw)" - -#: f.widgets.cc:568 -msgid "Batch RAW (Raw Therapee)" -msgstr "Batchgewijs RAW (Raw Therapee)" - -#: f.widgets.cc:569 -msgid "Script Files" -msgstr "" - -#: f.widgets.cc:572 -msgid "Create File of Image Files" -msgstr "" - -#: f.widgets.cc:586 -msgid "Cycle Desktop Wallpaper" -msgstr "" - -#: f.widgets.cc:603 f.widgets.cc:627 f.widgets.cc:651 f.widgets.cc:665 -msgid "Gallery" -msgstr "Galerie" - -#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 -msgid "World Maps" -msgstr "" - -#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 -msgid "OSM Maps" -msgstr "" - -#: f.widgets.cc:607 f.widgets.cc:631 -msgid "Favorites" -msgstr "Favorieten" - -#: f.widgets.cc:609 fotoxx.h:1177 -msgid "Save" -msgstr "Opslaan" - -#: f.widgets.cc:610 -msgid "Prev/Next" -msgstr "Vorig/Volgend" - -#: f.widgets.cc:612 -msgid "Areas" -msgstr "Uitsnedes" - -#: f.widgets.cc:613 fotoxx.h:1122 -msgid "Edit" -msgstr "Bewerken" - -#: f.widgets.cc:614 -msgid "Repair" -msgstr "Repareren" - -#: f.widgets.cc:615 -msgid "Bend" -msgstr "Krommen" - -#: f.widgets.cc:616 -msgid "Effects" -msgstr "Effecten" - -#: f.widgets.cc:617 -msgid "Combine" -msgstr "Samenvoegen" - -#: f.widgets.cc:618 -msgid "Undo/Redo" -msgstr "Herstel/Opnieuw" - -#: f.widgets.cc:619 -msgid "Tools" -msgstr "Gereedschap" - -#: f.widgets.cc:633 -msgid "Albums" -msgstr "" - -#: f.widgets.cc:634 -msgid "Bookmarks" -msgstr "" - -#: f.widgets.cc:643 -msgid "Batch" -msgstr "" - -#: f.widgets.cc:655 -msgid "Choose Map" -msgstr "" - -#: f.widgets.cc:656 -msgid "Search Range" -msgstr "" - -#: f.widgets.cc:676 fotoxx.h:1195 -msgid "Undo" -msgstr "Ongedaan maken" - -#: f.widgets.cc:677 fotoxx.h:1168 -msgid "Redo" -msgstr "Opnieuw" - -#: f.widgets.cc:678 -msgid "Save File Version" -msgstr "" - -#: f.widgets.cc:722 -msgid "Popup Image" -msgstr "Popup Afbeelding" - -#: f.widgets.cc:726 fotoxx.h:1171 -msgid "Rename" -msgstr "Hernoemen" - -#: f.widgets.cc:728 -msgid "Copy to Clipboard" -msgstr "Copieer naar Klembord" - -#: f.widgets.cc:729 -msgid "Remove from Album" -msgstr "" - -#: f.widgets.cc:730 -msgid "Cut to Image Cache" -msgstr "Verplaatsen naar Afbeeldings Cache" - -#: f.widgets.cc:731 -msgid "Copy to Image Cache" -msgstr "Copieer naar Afbeeldings Cache" - -#: f.widgets.cc:732 -msgid "Paste Image Cache Here (clear)" -msgstr "Plakken Afbeeldings Cache Hier (schonen)" - -#: f.widgets.cc:733 -msgid "Paste Image Cache Here (keep)" -msgstr "Plakken Afbeeldings Cache Hier (bewaren)" - -#: f.widgets.cc:734 -msgid "Paste Current Image File Here" -msgstr "" - -#: f.widgets.cc:744 -msgid "Select Area" -msgstr "Uitsnede" - -#: f.widgets.cc:747 -msgid "Show on OSM Map" -msgstr "" - -#: f.widgets.cc:748 -msgid "Delete/Trash" -msgstr "" - -#: f.widgets.cc:963 f.widgets.cc:985 -msgid "Image Locations" -msgstr "Afbeeldings Locaties" - -#: fotoxx-16.06.cc:392 -msgid "Please install missing programs:" -msgstr "Ontbrekende programma's installeren" - -#: fotoxx-16.06.cc:683 -msgid "Kill active dialog?" -msgstr "Afsluiten actieve dialoog?" - -#: fotoxx-16.06.cc:764 -msgid "(reduced)" -msgstr "(gereduceerd)" - -#: fotoxx-16.06.cc:765 -msgid "area active" -msgstr "uitsnede actief" - -#: fotoxx-16.06.cc:766 -msgid "dialog open" -msgstr "dialoog open" - -#: fotoxx-16.06.cc:767 -msgid "blocked" -msgstr "" - -#: fotoxx-16.06.cc:818 -msgid "edits" -msgstr "wijzigingen" - -#: fotoxx-16.06.cc:2921 -msgid "Exceed 50 anchor points" -msgstr "50 ankerpunten overschreden" - -#: fotoxx-16.06.cc:3141 -msgid "load curve from a file" -msgstr "laad curve vanuit bestand" - -#: fotoxx-16.06.cc:3207 -msgid "curve file is invalid" -msgstr "" - -#: fotoxx-16.06.cc:3221 -msgid "save curve to a file" -msgstr "bewaar curve in een bestand" - -#: fotoxx-16.06.cc:3293 -msgid "Too many edits, please save image" -msgstr "Te veel aanpassingen, graag afbeelding opslaan" - -#: fotoxx-16.06.cc:3298 -msgid "this function cannot be scripted" -msgstr "" - -#: fotoxx-16.06.cc:3315 -msgid "" -"Select area not active.\n" -"Continue?" -msgstr "" -"Uitsnede niet actief.\n" -"Doorgaan?" - -#: fotoxx-16.06.cc:3630 -msgid "file data does not fit dialog" -msgstr "bestands gegevens niet passend bij dialoog" - -#: fotoxx-16.06.cc:3640 -msgid "Save settings to a file" -msgstr "Bewaren Instellingen bestand" - -#: fotoxx-16.06.cc:3993 -msgid "This action will discard changes to current image" -msgstr "Deze actie zal veranderingen weggooien van huidige afbeelding" - -#: fotoxx-16.06.cc:3994 -msgid "prior function still active" -msgstr "vorige functie nog actief" - -#: fotoxx-16.06.cc:3995 fotoxx.h:1140 -msgid "Keep" -msgstr "Handhaven" - -#: fotoxx-16.06.cc:3996 -msgid "Discard" -msgstr "Weggooien" - -#: fotoxx.h:1093 -msgid "Add" -msgstr "Toevoegen" - -#: fotoxx.h:1094 -msgid "Add All" -msgstr "Alles toevoegen" - -#: fotoxx.h:1096 -msgid "Amount" -msgstr "waarde" - -#: fotoxx.h:1097 -msgid "Angle" -msgstr "Hoek" - -#: fotoxx.h:1098 -msgid "Apply" -msgstr "Toepassen" - -#: fotoxx.h:1099 -msgid "Auto" -msgstr "" - -#: fotoxx.h:1100 -msgid "Black" -msgstr "Zwart" - -#: fotoxx.h:1101 -msgid "Blend Width" -msgstr "Meng breedte" - -#: fotoxx.h:1103 zfuncs.cc:10576 -msgid "bottom" -msgstr "onder" - -#: fotoxx.h:1105 -msgid "Browse" -msgstr "Zoeken" - -#: fotoxx.h:1106 -msgid "Cancel" -msgstr "Annuleren" - -#: fotoxx.h:1107 -msgid "Center" -msgstr "centrum" - -#: fotoxx.h:1108 -msgid "Choose" -msgstr "Kiezen" - -#: fotoxx.h:1109 -msgid "Clear" -msgstr "Herstellen" - -#: fotoxx.h:1110 -msgid "Color" -msgstr "Kleur" - -#: fotoxx.h:1111 -msgid "continue" -msgstr "" - -#: fotoxx.h:1113 -msgid "Copy" -msgstr "Uitsnede kopieren" - -#: fotoxx.h:1114 -msgid "Create" -msgstr "Maken" - -#: fotoxx.h:1115 -msgid "Curve File:" -msgstr "Curve bestand:" - -#: fotoxx.h:1116 -msgid "Cut" -msgstr "Knippen" - -#: fotoxx.h:1117 -msgid "Deband" -msgstr "Ontstrepen" - -#: fotoxx.h:1118 -msgid "Delete" -msgstr "Uitsnede verwijderen" - -#: fotoxx.h:1120 -msgid "Done" -msgstr "Klaar" - -#: fotoxx.h:1121 -msgid "edge" -msgstr "rand" - -#: fotoxx.h:1124 -msgid "Erase" -msgstr "Verwijderen" - -#: fotoxx.h:1125 -msgid "Fetch" -msgstr "Ophalen" - -#: fotoxx.h:1126 -msgid "output file already exists" -msgstr "" - -#: fotoxx.h:1127 -#, c-format -msgid "%d files selected" -msgstr "%d bestanden geselecteerd" - -#: fotoxx.h:1128 -msgid "Find" -msgstr "Zoeken" - -#: fotoxx.h:1129 -msgid "Finish" -msgstr "Gereed" - -#: fotoxx.h:1130 -msgid "Flatten" -msgstr "Afvlakken" - -#: fotoxx.h:1131 -msgid "Font" -msgstr "Font" - -#: fotoxx.h:1133 -msgid "Grid" -msgstr "Raster" - -#: fotoxx.h:1134 -msgid "Height" -msgstr "hoogte" - -#: fotoxx.h:1137 -msgid "Images" -msgstr "Afbeeldingen" - -#: fotoxx.h:1138 -msgid "Insert" -msgstr "Invoegen" - -#: fotoxx.h:1141 zfuncs.cc:10580 -msgid "left" -msgstr "links" - -#: fotoxx.h:1142 -msgid "limit" -msgstr "limiet" - -#: fotoxx.h:1143 -msgid "Load" -msgstr "Laden" - -#: fotoxx.h:1144 -msgid "Make" -msgstr "Maken" - -#: fotoxx.h:1146 -msgid "Map" -msgstr "Kaart" - -#: fotoxx.h:1147 -msgid "Match Level" -msgstr "" - -#: fotoxx.h:1148 -msgid "Max" -msgstr "Max" - -#: fotoxx.h:1149 -msgid "Negative" -msgstr "Negatief" - -#: fotoxx.h:1150 -msgid "New" -msgstr "Nieuw" - -#: fotoxx.h:1151 -msgid "Next" -msgstr "Volgende" - -#: fotoxx.h:1152 zfuncs.cc:9658 -msgid "No" -msgstr "Nee" - -#: fotoxx.h:1153 -msgid "no images" -msgstr "geen afbeeldingen" - -#: fotoxx.h:1155 -msgid "no selection" -msgstr "geen selectie" - -#: fotoxx.h:1156 -msgid "OK" -msgstr "OK" - -#: fotoxx.h:1158 -msgid "Paste" -msgstr "Uitsnede plakken" - -#: fotoxx.h:1159 -msgid "Pause" -msgstr "Pauze" - -#: fotoxx.h:1160 -msgid "Percent" -msgstr "percentage" - -#: fotoxx.h:1162 -msgid "Presets" -msgstr "Voorinstelling" - -#: fotoxx.h:1163 -msgid "Prev" -msgstr "Vorige" - -#: fotoxx.h:1164 -msgid "Proceed" -msgstr "Doorgaan" - -#: fotoxx.h:1166 -msgid "range" -msgstr "bereik" - -#: fotoxx.h:1169 -msgid "Reduce" -msgstr "verminderen" - -#: fotoxx.h:1170 -msgid "Remove" -msgstr "Verwijderen" - -#: fotoxx.h:1172 -msgid "Replace" -msgstr "" - -#: fotoxx.h:1173 -msgid "Reserved" -msgstr "" - -#: fotoxx.h:1174 -msgid "Reset" -msgstr "Reset" - -#: fotoxx.h:1175 zfuncs.cc:10584 -msgid "right" -msgstr "rechts" - -#: fotoxx.h:1176 -msgid "Rotate" -msgstr "Draaien" - -#: fotoxx.h:1178 -msgid "Unknown file type, save as tiff/jpeg/png to edit" -msgstr "Bestandstype onbekend, om te bewerken opslaan als tiff/jpeg/png" - -#: fotoxx.h:1179 -msgid "Search" -msgstr "Zoeken" - -#: fotoxx.h:1180 -msgid "Seconds" -msgstr "Seconden" - -#: fotoxx.h:1184 -msgid "Size" -msgstr "Grootte" - -#: fotoxx.h:1185 -msgid "Start" -msgstr "Starten" - -#: fotoxx.h:1186 -msgid "Strength" -msgstr "Sterkte" - -#: fotoxx.h:1187 -msgid "Threshold" -msgstr "drempel" - -#: fotoxx.h:1188 -#, c-format -msgid "exceed %d files" -msgstr "overschrijding %d bestanden " - -#: fotoxx.h:1189 zfuncs.cc:10572 -msgid "top" -msgstr "boven" - -#: fotoxx.h:1191 -msgid "Trash" -msgstr "Prullenbak" - -#: fotoxx.h:1192 -msgid "Trim" -msgstr "Bijsnijden" - -#: fotoxx.h:1193 -msgid "Undo All" -msgstr "Alles ongedaan maken" - -#: fotoxx.h:1194 -msgid "Undo Last" -msgstr "Laatste ongedaan maken" - -#: fotoxx.h:1196 -msgid "Unfinish" -msgstr "Unfinish" - -#: fotoxx.h:1198 -msgid "View" -msgstr "Beeld" - -#: fotoxx.h:1199 -msgid "Web" -msgstr "Web" - -#: fotoxx.h:1200 -msgid "White" -msgstr "Wit" - -#: fotoxx.h:1201 -msgid "Width" -msgstr "breedte" - -#: fotoxx.h:1202 -msgid "x-offset" -msgstr "x-verschuiving" - -#: fotoxx.h:1203 -msgid "y-offset" -msgstr "y-verschuiving" - -#: fotoxx.h:1204 zfuncs.cc:9658 -msgid "Yes" -msgstr "Ja" - -#: zfuncs.cc:1687 -#, c-format -msgid "" -"create directory? \n" -" %s" -msgstr "" -"aanmaken map? \n" -" %s" - -#: zfuncs.cc:4530 -msgid "user guide not found" -msgstr "gebruikershandleiding niet gevonden" - -#: zfuncs.cc:5345 -#, c-format -msgid "cannot open file %s" -msgstr "kan bestand niet openen %s" - -#: zfuncs.cc:5381 -msgid "save screen to file" -msgstr "schrijf scherm naar bestand" - -#: zfuncs.cc:9744 zfuncs.cc:10239 zfuncs.cc:10559 -msgid "cancel" -msgstr "Annuleren" - -#: zfuncs.cc:10200 -msgid "choose file" -msgstr "kies bestand" - -#: zfuncs.cc:10205 -msgid "choose files" -msgstr "kies bestanden" - -#: zfuncs.cc:10210 -msgid "save" -msgstr "opslaan" - -#: zfuncs.cc:10216 -msgid "choose folder" -msgstr "kies map" - -#: zfuncs.cc:10221 -msgid "choose folders" -msgstr "kies mappen" - -#: zfuncs.cc:10226 -msgid "create folder" -msgstr "aanmaken map" - -#: zfuncs.cc:10233 -msgid "hidden" -msgstr "verborgen" - -#: zfuncs.cc:10559 -msgid "done" -msgstr "klaar" - -#: zfuncs.cc:10559 zfuncs.cc:10568 -msgid "margins" -msgstr "marges" - -#: zfuncs.cc:10589 -msgid "image scale" -msgstr "afbeeldingsschaal" - -#: zfuncs.cc:10591 -msgid "percent" -msgstr "percentage" - -#: zfuncs.cc:10598 -msgid "image" -msgstr "afbeelding" - -#: zfuncs.cc:10602 -msgid "width" -msgstr "breedte" - -#: zfuncs.cc:10606 -msgid "height" -msgstr "hoogte" - -#~ msgid "select area within mouse" -#~ msgstr "uitsnede maken binnen muis" - -#~ msgid "select one matching color within mouse" -#~ msgstr "selecteer een matchende kleur in muis" - -#~ msgid "select all matching colors within mouse" -#~ msgstr "selecteer alle matchende kleuren binnen muis" - -#~ msgid "firewall" -#~ msgstr "firewall" - -#~ msgid "" -#~ "Click one time inside each enclosed area \n" -#~ "(possible gaps in the outline will be found). \n" -#~ "Press F1 for help." -#~ msgstr "" -#~ "Klik eenmalig in elke uitsnede \n" -#~ "(mogelijke gaten in de contouren worden gezocht). \n" -#~ "Druk F1 voor help." - -#~ msgid "linear" -#~ msgstr "lineair" - -#~ msgid "curved" -#~ msgstr "gebogen" - -#~ msgid "auto-trim" -#~ msgstr "auto-bijsnijden" - -#~ msgid "Copy Image File" -#~ msgstr "Kopieer Afbeelding" - -#~ msgid "Move Image File" -#~ msgstr "Verplaats Afbeeldingsbestand" - -#~ msgid "new location" -#~ msgstr "nieuwe locatie" - -#~ msgid "Trash Image File" -#~ msgstr "Afbeeldingsbestand naar prullenbak" - -#~ msgid "(automatic step to next image)" -#~ msgstr "(automatische stap naar volgende afbeelding)" - -#~ msgid "" -#~ "Linux standard trash does not work. \n" -#~ "Desktop trash folder will be created." -#~ msgstr "" -#~ "Linux standaard prullenbak wordt niet ondersteund. \n" -#~ "Desktop prullenbak zal worden aangemaakt." - -#~ msgid "" -#~ "Linux and Desktop trash do not work. \n" -#~ "Permanently delete the image file?" -#~ msgstr "" -#~ "Linux en Desktop prullenbak werken niet. \n" -#~ "Afbeeldingsbestand definitief verwijderen?" - -#~ msgid "Cannot create trash folder: %s" -#~ msgstr "Kan niet map voor prullenbak maken: %s" - -#~ msgid "Move read-only file to trash?" -#~ msgstr "Alleen-lezen bestand naar prullenbak?" - -#~ msgid "Delete Image File - CANNOT BE REVERSED" -#~ msgstr "Verwijder Afbeeldingsbestand - NIET OMKEERBAAR" - -#~ msgid "Undo Memory %d%c" -#~ msgstr "Geheugen voor ongedaan maken %d%c" - -#~ msgid "" -#~ "Undo memory limit has been reached. \n" -#~ "Save work with [done], then resume painting." -#~ msgstr "" -#~ "Herstel geheugen limiet is bereikt \n" -#~ "Bewaar werk met [Klaar], dan schilderen hervatten. " - -#~ msgid "Move image file to Trash" -#~ msgstr "Verplaats afbeeldingsbestand naar prullenbak" - -#~ msgid "Permanently delete image file" -#~ msgstr "Definitief verwijderen afbeeldings bestand" - -#~ msgid "Edit image tags/caption/rating ..." -#~ msgstr "Bewerken afbeeldings tags/onderschrift/rating ..." - -#~ msgid "Edit image location and geotags" -#~ msgstr "Bewerken afbeeldings locatie en geotags" - -#~ msgid "Adjust brightness distribution" -#~ msgstr "Instellen helderheids verdeling" - -#~ msgid "Delete Image File" -#~ msgstr "Verwijder Afbeeldings Bestand" - -#~ msgid "Brightness Dist." -#~ msgstr "Helderheids Verdeling" - -#~ msgid "Brightness Ramp" -#~ msgstr "Helderheidsverspreiding instellen" - -#~ msgid "Show Brightness Dist." -#~ msgstr "Toon Helderheids Verdeling" - -#~ msgid "Copy to Location" -#~ msgstr "Kopieren naar Locatie" - -#~ msgid "Move to Location" -#~ msgstr "Verplaatsen naar Locatie" - -#~ msgid "Voodoo Enhance" -#~ msgstr "Voodoo Verbeteren" - -#~ msgid "recent" -#~ msgstr "recent" - -#~ msgid "newest" -#~ msgstr "nieuwste" - -#~ msgid "Brasero not installed" -#~ msgstr "Brasero niet geinstalleerd" - -#~ msgid "Burn selected image files to CD or DVD" -#~ msgstr "Brand geselecteerde afbeeldingsbestanden naar CD of DVD" - -#~ msgid "Burn Images to CD/DVD" -#~ msgstr "Afbeelding op CD/DVD branden" - -#~ msgid "Sync.G" -#~ msgstr "Sync.G" - -#~ msgid "(0 images)" -#~ msgstr "(0 afbeeldingen)" - -#~ msgid "(%d images)" -#~ msgstr "(%d afbeeldingen)" - -#~ msgid "jpeg quality must be 1-100" -#~ msgstr "jpeg kwaliteit moet 1-100 zijn" - -#~ msgid "" -#~ "new name/base/adder unreasonable\n" -#~ " e.g. newname ### 100 10" -#~ msgstr "" -#~ "nieuwe naam/basis/toevoeging niet logisch\n" -#~ " bijv. naam ### 100 10" - -#~ msgid "unsharp mask" -#~ msgstr "unsharp masking" - -#~ msgid "brightness gradient" -#~ msgstr "helderheids gradient" - -#~ msgid "Kuwahara method" -#~ msgstr "Kuwahara methode" - -#~ msgid "Flatten Outliers 1" -#~ msgstr "Uitschieters Afvlakken 1" - -#~ msgid "Flatten Outliers 2" -#~ msgstr "Uitschieters Afvlakken 2" - -#~ msgid "Median Brightness" -#~ msgstr "Mediane helderheid" - -#~ msgid "Lock aspect ratio" -#~ msgstr "lengte:breedte verhouding vasthouden" - -#~ msgid "Metadata" -#~ msgstr "Metadata" - -#~ msgid "" -#~ "Undo or Redo one edit (left/right mouse click) \n" -#~ " hold key A to include all edits" -#~ msgstr "" -#~ "Herstel of Opnieuw een bewerking (linker/rechter muisklik) \n" -#~ " toets A ingedrukt houden om alle bewerkingen mee te nemen " - -#~ msgid "other" -#~ msgstr "ander" - -#~ msgid "metadata" -#~ msgstr "metadata" - -#~ msgid "Press ESC to exit slide show" -#~ msgstr "Druk ESC om diashow te stoppen" - -#~ msgid "Geotags" -#~ msgstr "Geotags" - -#~ msgid "error in latitude/longitude/range" -#~ msgstr "fout in breedtegraad/lengtegraad/bereik" - -#~ msgid "range (km)" -#~ msgstr "bereik (km)" - -#~ msgid "Add Geotags Search Criteria" -#~ msgstr "Toevoegen Geotags Zoek Criteria" - -#~ msgid "other criteria" -#~ msgstr "andere criteria" - -#~ msgid "Geocoding web service courtesy of" -#~ msgstr "Geocoding web service dienstbaarheid van" - -#~ msgid "Edit Geotags" -#~ msgstr "Bewerken Geotags" diff -Nru fotoxx-16.06/locales/translate-pt.po fotoxx-16.07/locales/translate-pt.po --- fotoxx-16.06/locales/translate-pt.po 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/locales/translate-pt.po 2016-07-01 10:19:38.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: fotoxx-15.07\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-31 15:14+0200\n" -"PO-Revision-Date: 2016-05-26 20:32-0300\n" +"POT-Creation-Date: 2016-06-30 10:59+0200\n" +"PO-Revision-Date: 2016-06-29 19:10-0300\n" "Last-Translator: André Campos Rodovalho \n" "Language-Team: Portuguese\n" "Language: pt\n" @@ -17,7 +17,7 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.5.4\n" -#: f.albums.cc:87 +#: f.albums.cc:93 msgid "" "Right-click album thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -25,252 +25,252 @@ "Clique com o botão direito do mouse na miniatura do álbum para \n" "recortar/colar na reserva, inserir a partir da reserva, ou remover." -#: f.albums.cc:89 +#: f.albums.cc:95 msgid "Drag album thumbnail to new position." msgstr "Arrastar miniatura de álbum" -#: f.albums.cc:118 f.widgets.cc:583 +#: f.albums.cc:124 f.widgets.cc:585 msgid "Manage Albums" msgstr "Gerenciar Álbuns" -#: f.albums.cc:129 f.albums.cc:266 +#: f.albums.cc:136 f.albums.cc:273 msgid "Create or replace an album" msgstr "Criar ou substituir um álbum" -#: f.albums.cc:131 +#: f.albums.cc:138 msgid "Album to view or edit" msgstr "Álbum para visualizar ou editar" -#: f.albums.cc:133 +#: f.albums.cc:140 msgid "Select images, add to cache" msgstr "Selecionar imagens, adicionar à reserva" -#: f.albums.cc:135 +#: f.albums.cc:142 msgid "Clear image cache" msgstr "Limpar reserva de imagens" -#: f.albums.cc:137 f.albums.cc:159 +#: f.albums.cc:144 f.albums.cc:164 msgid "Delete an album" msgstr "Eliminar um álbum" -#: f.albums.cc:158 +#: f.albums.cc:163 msgid "Choose Album" msgstr "Escolher Álbum" -#: f.albums.cc:160 +#: f.albums.cc:165 #, c-format msgid "Image cache has %d images" msgstr "Cache de imagem tem %d imagens" -#: f.albums.cc:161 +#: f.albums.cc:166 msgid "cache added to empty album" msgstr "reservar adicionadas em um álbum vazio" -#: f.albums.cc:215 +#: f.albums.cc:220 #, c-format msgid "delete %s ?" msgstr "excluir %s ?" -#: f.albums.cc:250 +#: f.albums.cc:257 #, c-format msgid "fill from image cache (%d images)" msgstr "preencher com imagens reservadas (%d imagens)" -#: f.albums.cc:268 f.albums.cc:305 +#: f.albums.cc:275 f.albums.cc:312 msgid "Album Name" msgstr "Nome do Álbum" -#: f.albums.cc:274 +#: f.albums.cc:281 msgid "make an initially empty album" msgstr "criar um álbum inicialmente vazio" -#: f.albums.cc:276 +#: f.albums.cc:283 msgid "fill from current gallery" msgstr "preencher usando galeria atual" -#: f.albums.cc:319 +#: f.albums.cc:326 msgid "enter an album name" msgstr "inserir um nome para o álbum" -#: f.albums.cc:346 +#: f.albums.cc:353 msgid "gallery is empty" msgstr "galeria vazia" -#: f.albums.cc:373 +#: f.albums.cc:380 msgid "new album created" msgstr "novo álbum criado" -#: f.albums.cc:1157 +#: f.albums.cc:1211 msgid "instant" msgstr "imediato" -#: f.albums.cc:1158 +#: f.albums.cc:1212 msgid "fade-in" msgstr "esmaecer" -#: f.albums.cc:1159 +#: f.albums.cc:1213 msgid "roll-right" msgstr "rolar para direita" -#: f.albums.cc:1160 +#: f.albums.cc:1214 msgid "roll-down" msgstr "rolar para baixo" -#: f.albums.cc:1161 +#: f.albums.cc:1215 msgid "venetian" msgstr "veneziano" -#: f.albums.cc:1162 +#: f.albums.cc:1216 msgid "grate" msgstr "grade" -#: f.albums.cc:1163 +#: f.albums.cc:1217 msgid "rectangle" msgstr "retângulo" -#: f.albums.cc:1164 +#: f.albums.cc:1218 msgid "implode" msgstr "implodir" -#: f.albums.cc:1165 +#: f.albums.cc:1219 msgid "explode" msgstr "explodir" -#: f.albums.cc:1166 +#: f.albums.cc:1220 msgid "radar" msgstr "radar" -#: f.albums.cc:1167 +#: f.albums.cc:1221 msgid "spiral" msgstr "espiral" -#: f.albums.cc:1168 +#: f.albums.cc:1222 msgid "Japanese-fan" msgstr "Leque-Japonês" -#: f.albums.cc:1169 +#: f.albums.cc:1223 msgid "jaws" msgstr "maxilas" -#: f.albums.cc:1170 +#: f.albums.cc:1224 msgid "ellipse" msgstr "elipse" -#: f.albums.cc:1171 +#: f.albums.cc:1225 msgid "raindrops" msgstr "gotas de chuva" -#: f.albums.cc:1172 +#: f.albums.cc:1226 msgid "doubledoor" msgstr "doubledoor" -#: f.albums.cc:1173 +#: f.albums.cc:1227 msgid "rotate" msgstr "rotacionar" -#: f.albums.cc:1174 +#: f.albums.cc:1228 msgid "fallover" msgstr "tombar" -#: f.albums.cc:1175 +#: f.albums.cc:1229 msgid "spheroid" msgstr "esferóide" -#: f.albums.cc:1176 +#: f.albums.cc:1230 msgid "turn-page" msgstr "vira-página" -#: f.albums.cc:1177 +#: f.albums.cc:1231 msgid "french-door" msgstr "porta de entrada" -#: f.albums.cc:1197 f.widgets.cc:584 +#: f.albums.cc:1251 f.widgets.cc:586 msgid "Slide Show" msgstr "Apresentação" -#: f.albums.cc:1208 +#: f.albums.cc:1262 msgid "Clip Limit" msgstr "Limite de Corte" -#: f.albums.cc:1212 +#: f.albums.cc:1266 msgid "Music File" msgstr "Arquivo de Música" -#: f.albums.cc:1217 +#: f.albums.cc:1271 msgid "Full Screen" msgstr "Tela cheia" -#: f.albums.cc:1218 +#: f.albums.cc:1272 msgid "Auto-replay" msgstr "Auto-repetição" -#: f.albums.cc:1219 +#: f.albums.cc:1273 msgid "KB functions" msgstr "Funções do teclado" -#: f.albums.cc:1222 +#: f.albums.cc:1276 msgid "Customize:" msgstr "Customizar:" -#: f.albums.cc:1223 +#: f.albums.cc:1277 msgid "transitions" msgstr "transições" -#: f.albums.cc:1224 +#: f.albums.cc:1278 msgid "image files" msgstr "arquivos de imagem" -#: f.albums.cc:1229 f.albums.cc:1356 +#: f.albums.cc:1283 f.albums.cc:1410 #, c-format msgid "%d images" msgstr "%d imagens" -#: f.albums.cc:1251 f.albums.cc:1326 f.albums.cc:1422 f.albums.cc:1661 -#: f.albums.cc:1946 f.albums.cc:1963 f.albums.cc:2177 +#: f.albums.cc:1305 f.albums.cc:1380 f.albums.cc:1476 f.albums.cc:1715 +#: f.albums.cc:2000 f.albums.cc:2017 f.albums.cc:2231 msgid "invalid album" msgstr "álbum inválido" -#: f.albums.cc:1340 +#: f.albums.cc:1394 msgid "open album" msgstr "abrir álbum" -#: f.albums.cc:1372 +#: f.albums.cc:1426 msgid "Select music file" msgstr "Selecionar arquivo de música" -#: f.albums.cc:1401 +#: f.albums.cc:1455 msgid "select random (if 2+ enabled)" msgstr "selecionar aleatoriamente (se 2+ habilitadas)" -#: f.albums.cc:1426 +#: f.albums.cc:1480 msgid "Transition Preferences" msgstr "Preferências de Transição" -#: f.albums.cc:1429 f.edit.cc:2008 +#: f.albums.cc:1483 f.edit.cc:2008 msgid "Settings File" msgstr "Arquivos de Configuração" -#: f.albums.cc:1439 +#: f.albums.cc:1493 msgid "transition" msgstr "transição" -#: f.albums.cc:1440 +#: f.albums.cc:1494 msgid "enabled" msgstr "habilitado" -#: f.albums.cc:1441 +#: f.albums.cc:1495 msgid "slowdown" msgstr "desacelerar" -#: f.albums.cc:1442 +#: f.albums.cc:1496 msgid "preference" msgstr "preferência" -#: f.albums.cc:1517 f.albums.cc:1556 +#: f.albums.cc:1571 f.albums.cc:1610 msgid "invalid file" msgstr "arquivo inválido" -#: f.albums.cc:1610 f.albums.cc:2162 +#: f.albums.cc:1664 f.albums.cc:2216 #, c-format msgid "" "file format error: \n" @@ -279,84 +279,84 @@ "error no formato de arquivo: \n" " %s" -#: f.albums.cc:1667 +#: f.albums.cc:1721 msgid "Image Preferences" msgstr "Preferências de Imagem" -#: f.albums.cc:1671 f.edit.cc:1338 f.file.cc:1166 f.file.cc:1427 f.meta.cc:617 -#: f.meta.cc:1414 +#: f.albums.cc:1725 f.edit.cc:1338 f.file.cc:1091 f.file.cc:1352 f.meta.cc:617 +#: f.meta.cc:1412 msgid "Image File:" msgstr "Arquivo de Imagem:" -#: f.albums.cc:1675 +#: f.albums.cc:1729 msgid "Play tone when image shows" msgstr "Tocar áudio quando imagem aparecer" -#: f.albums.cc:1678 +#: f.albums.cc:1732 msgid "Show image caption" msgstr "Mostrar legenda de imagem" -#: f.albums.cc:1683 +#: f.albums.cc:1737 msgid "Show image comments" msgstr "Mostrar comentários de imagem" -#: f.albums.cc:1688 +#: f.albums.cc:1742 msgid "Wait before zoom" msgstr "Atraso antes do Zoom" -#: f.albums.cc:1693 +#: f.albums.cc:1747 msgid "Zoom type:" msgstr "Tipo de Zoom:" -#: f.albums.cc:1694 +#: f.albums.cc:1748 msgid "none" msgstr "nenhum" -#: f.albums.cc:1695 +#: f.albums.cc:1749 msgid "zoom-in" msgstr "aproximar" -#: f.albums.cc:1696 +#: f.albums.cc:1750 msgid "zoom-out" msgstr "afastar" -#: f.albums.cc:1699 +#: f.albums.cc:1753 msgid "Zoom size (x)" msgstr "Tamanho do Zoom (x)" -#: f.albums.cc:1702 +#: f.albums.cc:1756 msgid "Steps" msgstr "Passos" -#: f.albums.cc:1706 +#: f.albums.cc:1760 msgid "Zoom Center" msgstr "Zoom Centralizado" -#: f.albums.cc:1710 +#: f.albums.cc:1764 msgid "Wait after zoom" msgstr "Atraso depois do Zoom" -#: f.albums.cc:1715 +#: f.albums.cc:1769 msgid "Transition to next image" msgstr "Transição para a próxima imagem" -#: f.albums.cc:1718 f.albums.cc:1821 +#: f.albums.cc:1772 f.albums.cc:1875 msgid "next" msgstr "próximo" -#: f.albums.cc:1811 +#: f.albums.cc:1865 msgid "click on thumbnail to set zoom center" msgstr "clique na miniatura para configurar centralização e zoom" -#: f.area.cc:81 +#: f.area.cc:82 msgid "Select Area for Edits" msgstr "Selecionar área para edições" -#: f.area.cc:82 f.edit.cc:5919 +#: f.area.cc:83 f.edit.cc:5919 msgid "Press F1 for help" msgstr "Pressione F1 para ajuda" -#: f.area.cc:91 +#: f.area.cc:92 msgid "" "Select Area not supported \n" "by this edit function" @@ -364,35 +364,35 @@ "Seleção de Área não suportada \n" "por esta função de edição" -#: f.area.cc:121 +#: f.area.cc:122 msgid "select rectangle" msgstr "seleção retangular" -#: f.area.cc:122 +#: f.area.cc:123 msgid "select ellipse" msgstr "seleção elíptica" -#: f.area.cc:125 +#: f.area.cc:126 msgid "freehand draw" msgstr "desenho a mão livre" -#: f.area.cc:126 +#: f.area.cc:127 msgid "follow edge" msgstr "seguir borda" -#: f.area.cc:127 +#: f.area.cc:128 msgid "draw/replace" msgstr "desenho/substituir" -#: f.area.cc:130 +#: f.area.cc:131 msgid "select area within mouse circle" msgstr "selecionar a área dentro do círculo do mouse" -#: f.area.cc:133 +#: f.area.cc:134 msgid "select one matching color within mouse circle:" msgstr "selecionar uma cor correspondente dentro do círculo do mouse:" -#: f.area.cc:135 +#: f.area.cc:136 msgid "" "first select the checkbox, then \n" "shift+click on image to set the color" @@ -400,116 +400,156 @@ "primeiro marque na caixa de seleção, depois \n" "Shift+Clique na imagem para definir a cor" -#: f.area.cc:139 +#: f.area.cc:140 msgid "select all matching colors within mouse circle" msgstr "selecionar todas cores correspondentes dentro do círculo do mouse:" -#: f.area.cc:143 f.edit.cc:5961 +#: f.area.cc:144 f.edit.cc:5961 msgid "mouse radius" msgstr "raio do mouse" -#: f.area.cc:146 +#: f.area.cc:147 msgid "match level %" msgstr "nível de correspondência %" -#: f.area.cc:151 +#: f.area.cc:152 msgid "search range" msgstr "intervalo de procura" -#: f.area.cc:155 +#: f.area.cc:156 msgid "Area Edge Blend Width" msgstr "Largura da Área de Borda da Mistura " -#: f.area.cc:158 +#: f.area.cc:159 msgid "Edge Creep" msgstr "Deslizamento de Borda" -#: f.area.cc:163 +#: f.area.cc:164 msgid "Line Color:" msgstr "Cor de Linha:" -#: f.area.cc:183 f.area.cc:184 +#: f.area.cc:184 f.area.cc:185 msgid "area edits fade away within edge distance" msgstr "edições na área esmaecem dentre as distâncias de borda" -#: f.area.cc:356 f.area.cc:539 +#: f.area.cc:357 f.area.cc:540 #, c-format msgid "exceed %d edits" msgstr "excedeu %d edições" -#: f.area.cc:1361 +#: f.area.cc:1358 f.area.cc:1668 msgid "" -"Click one time inside each enclosed area \n" -"(possible gaps in the outline will be found). \n" -"Press [Done] when finished. Press F1 for help." +"Click one time inside each enclosed area. \n" +"Possible gaps in the outline will be found. \n" +"Press F1 for help." msgstr "" -"Clique uma vez dentro de cada área delimitada \n" -" (possíveis lacunas no contorno serão encontradas). \n" -"Pressione [pronto] quando terminar. Pressione F1 para acessar ajuda." +"Clique uma vez dentro de cada área delimitada. \n" +"Possíveis lacunas no contorno serão encontradas. \n" +"Pressione F1 para acessar ajuda." -#: f.area.cc:1389 +#: f.area.cc:1385 msgid "finish area" msgstr "finalize a área" -#: f.area.cc:1397 -msgid "extend to corner:" -msgstr "estender até canto:" - -#: f.area.cc:1438 -msgid "searching" -msgstr "procurando" +#: f.area.cc:1411 f.area.cc:1563 +#, c-format +msgid "found %d pixels" +msgstr "encontrados %d pixels" + +#: f.area.cc:1693 +msgid "find outline gap" +msgstr "procurar lacuna de contorno" + +#: f.area.cc:1775 +msgid "cannot find area outline" +msgstr "não foi possível encontrar área de contorno" -#: f.area.cc:1469 +#: f.area.cc:1846 msgid "outline has a gap" msgstr "contorno tem uma fenda" -#: f.area.cc:1473 -msgid "success" -msgstr "sucesso" - -#: f.area.cc:1618 f.area.cc:1645 -#, c-format -msgid "found %d pixels" -msgstr "encontrados %d pixels" +#: f.area.cc:1881 +msgid "Select Hairy Edge" +msgstr "Selecionar Contorno Impreciso" + +#: f.area.cc:1882 +msgid "" +"Click on colors to match. \n" +"Drag along edge to select. \n" +"Adjust match level as needed. \n" +"Copy or Save area when done." +msgstr "" +"Clique em cores a equiparar. \n" +"Arraste ao longo da borda para selecionar. \n" +"Ajuste o nível de correspondência conforme necessário. \n" +"Copie ou Salve a área quando estiver pronto." + +#: f.area.cc:1893 +msgid "select the area first" +msgstr "selecione a área primeiro" -#: f.area.cc:1940 f.area.cc:1957 f.area.cc:1977 f.area.cc:2301 f.area.cc:2378 -#: f.area.cc:2484 +#: f.area.cc:1898 f.area.cc:2365 f.area.cc:2382 f.area.cc:2402 f.area.cc:2726 +#: f.area.cc:2815 msgid "the area is not finished" msgstr "a área não está finalizada" -#: f.area.cc:2066 +#: f.area.cc:1944 +msgid "Mouse Radius" +msgstr "Raio do Mouse" + +#: f.area.cc:1949 fotoxx.h:1148 +msgid "Match Level" +msgstr "Combinar Nivelamento" + +#: f.area.cc:1950 +msgid "select" +msgstr "" + +#: f.area.cc:1951 +msgid "deselect" +msgstr "" + +#: f.area.cc:2491 msgid "Edge calculation in progress" msgstr "Cálculo de borda em andamento" -#: f.area.cc:2075 +#: f.area.cc:2500 msgid "Area Edge Calc" msgstr "Calc. área de borda" -#: f.area.cc:2519 +#: f.area.cc:2801 f.area.cc:2850 f.widgets.cc:461 +msgid "Copy Area" +msgstr "Copiar Área" + +#: f.area.cc:2804 f.widgets.cc:464 +msgid "Save Area File" +msgstr "Salvar Arquivo de Área" + +#: f.area.cc:2856 msgid "save area as a PNG file" msgstr "salvar área como um arquivo PNG" -#: f.area.cc:2551 +#: f.area.cc:2888 msgid "load area from a file" msgstr "carregar área a partir de arquivo" -#: f.area.cc:2594 +#: f.area.cc:2980 msgid "position with mouse click/drag" msgstr "posicione o mouse clique/arraste" -#: f.area.cc:2634 +#: f.area.cc:3026 msgid "Paste Image" msgstr "Colar Imagem" -#: f.area.cc:2639 f.batch.cc:1360 f.batch.cc:1847 +#: f.area.cc:3031 f.batch.cc:1347 f.batch.cc:1654 msgid "resize" msgstr "redimensionar" -#: f.batch.cc:126 f.widgets.cc:564 +#: f.batch.cc:126 f.widgets.cc:566 msgid "Batch Convert" msgstr "Conversão em Lote" -#: f.batch.cc:133 f.file.cc:940 +#: f.batch.cc:133 f.file.cc:866 msgid "New Name" msgstr "novo nome" @@ -533,7 +573,7 @@ msgid "New File Type" msgstr "Novo Tipo de Arquivo" -#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4389 +#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4083 msgid "no change" msgstr "sem mudanças" @@ -549,13 +589,13 @@ msgid "Copy Metadata" msgstr "Copiar Metadados" -#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:466 -#: f.widgets.cc:737 +#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:468 +#: f.widgets.cc:739 msgid "Upright" msgstr "Orientar" -#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1369 f.batch.cc:1856 -#: f.repair.cc:125 f.widgets.cc:482 +#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1356 f.batch.cc:1663 +#: f.repair.cc:125 f.widgets.cc:484 msgid "Sharpen" msgstr "Aguçar" @@ -587,7 +627,7 @@ msgid "updating albums ..." msgstr "atualizando álbuns ..." -#: f.batch.cc:591 f.batch.cc:1642 f.batch.cc:2044 f.file.cc:1217 +#: f.batch.cc:591 f.batch.cc:1522 f.batch.cc:1851 f.file.cc:1142 msgid "Select directory" msgstr "Selecionar pasta" @@ -647,7 +687,7 @@ msgid "PROCEED?" msgstr "PROCEDER?" -#: f.batch.cc:907 f.widgets.cc:565 +#: f.batch.cc:907 f.widgets.cc:567 msgid "Batch Upright" msgstr "Orientação em Lote" @@ -663,7 +703,7 @@ msgid "cannot select both options" msgstr "não é possível selecionar ambas as opções" -#: f.batch.cc:1130 f.widgets.cc:566 +#: f.batch.cc:1130 f.widgets.cc:568 msgid "Batch Delete/Trash" msgstr "Excluir/Descartar em Lote" @@ -675,140 +715,100 @@ msgid "trash" msgstr "lixo" -#: f.batch.cc:1302 -msgid "Batch Convert RAW Files (DCraw)" -msgstr "Conversão em Lote de Arquivos RAW (DCraw)" - -#: f.batch.cc:1312 -msgid "DCraw not installed" -msgstr "DCraw não instalado" +#: f.batch.cc:1301 +msgid "Batch Convert RAW Files" +msgstr "Conversão em Lote de Arquivos RAW" -#: f.batch.cc:1347 f.batch.cc:1834 +#: f.batch.cc:1334 f.batch.cc:1641 msgid "output location" msgstr "localização de saída" -#: f.batch.cc:1352 f.batch.cc:1839 +#: f.batch.cc:1339 f.batch.cc:1646 msgid "output file type" msgstr "tipo de arquivo de saída" -#: f.batch.cc:1371 f.batch.cc:1858 +#: f.batch.cc:1358 f.batch.cc:1665 msgid "amount" msgstr "quantia" -#: f.batch.cc:1374 f.batch.cc:1861 +#: f.batch.cc:1361 f.batch.cc:1668 msgid "threshold" msgstr "limiar" -#: f.batch.cc:1383 -msgid "white balance" -msgstr "balanço de branco" - -#: f.batch.cc:1384 -msgid "interpolation" -msgstr "interpolação" - -#: f.batch.cc:1385 -msgid "color space" -msgstr "espaço de cor" - -#: f.batch.cc:1386 -msgid "gamma curve" -msgstr "curva de gama" - -#: f.batch.cc:1389 -msgid "camera" -msgstr "camera" - -#: f.batch.cc:1390 -msgid "fixed" -msgstr "fixado" - -#: f.batch.cc:1391 -msgid "calculated" -msgstr "calculado" - -#: f.batch.cc:1408 -msgid "default" -msgstr "padrão" - -#: f.batch.cc:1414 -msgid "defaults" -msgstr "padrões" - -#: f.batch.cc:1796 +#: f.batch.cc:1603 msgid "Batch Convert RAW Files (Raw Therapee)" msgstr "Conversão em Lote de Arquivos RAW (RAW Therapee)" -#: f.batch.cc:1806 f.file.cc:426 +#: f.batch.cc:1613 f.file.cc:352 msgid "Raw Therapee not installed" msgstr "Raw Therapee não instalado" -#: f.batch.cc:2141 +#: f.batch.cc:1948 msgid "start" msgstr "iniciar" -#: f.batch.cc:2142 +#: f.batch.cc:1949 msgid "begin making a script file" msgstr "iniciar a criação de um arquivo de rotina" -#: f.batch.cc:2144 +#: f.batch.cc:1951 msgid "close" msgstr "fechar" -#: f.batch.cc:2145 +#: f.batch.cc:1952 msgid "finish making a script file" msgstr "terminar a criação do arquivo de rotina" -#: f.batch.cc:2147 +#: f.batch.cc:1954 msgid "run" msgstr "executar" -#: f.batch.cc:2148 +#: f.batch.cc:1955 msgid "execute a script file" msgstr "executar o arquivo de rotina" -#: f.batch.cc:2202 +#: f.batch.cc:2009 msgid "script already started" msgstr "rotina já foi iniciada" -#: f.batch.cc:2206 +#: f.batch.cc:2013 msgid "open new script file" msgstr "abrir novo arquivo de rotina" -#: f.batch.cc:2238 +#: f.batch.cc:2045 msgid "script file error" msgstr "erro no arquivo de rotina" -#: f.batch.cc:2243 +#: f.batch.cc:2050 #, c-format msgid "%s added to script" msgstr "%s adicionado a rotina" -#: f.batch.cc:2256 +#: f.batch.cc:2063 msgid "no script file was started" msgstr "nenhum arquivo de rotina foi iniciado" -#: f.batch.cc:2264 +#: f.batch.cc:2071 msgid "script file closed" msgstr "arquivo de rotina finalizado" -#: f.batch.cc:2283 +#: f.batch.cc:2090 msgid "script file is not closed" msgstr "arquivo de rotina não finalizado" -#: f.batch.cc:2287 +#: f.batch.cc:2094 msgid "select script file to run" msgstr "selecione o arquivo de rotina a executar" -#: f.batch.cc:2289 +#: f.batch.cc:2096 msgid "open script file" msgstr "abrir arquivo de rotina" -#: f.batch.cc:2296 +#: f.batch.cc:2103 msgid "unknown script file" msgstr "arquivo de rotina desconhecido" -#: f.batch.cc:2303 +#: f.batch.cc:2110 #, c-format msgid "" "script file: %s \n" @@ -817,11 +817,11 @@ "arquivo de rotina: %s \n" " %s" -#: f.batch.cc:2314 +#: f.batch.cc:2121 msgid "select image files to be processed" msgstr "selecione arquivos de imagem para serem processados" -#: f.batch.cc:2326 f.batch.cc:2375 +#: f.batch.cc:2133 f.batch.cc:2182 #, c-format msgid "" "open failure: %s \n" @@ -830,91 +830,87 @@ "erro ao abrir: %s \n" " %s" -#: f.batch.cc:2347 +#: f.batch.cc:2154 #, c-format msgid "unknown edit function: %s" msgstr "função de edição desconhecida: %s" -#: f.batch.cc:2356 +#: f.batch.cc:2163 #, c-format msgid "load widgets failed: %s" msgstr "carregamento de dispositivo falhou: %s" -#: f.batch.cc:2385 +#: f.batch.cc:2192 #, c-format msgid "script file format error: %s" msgstr "erro no formato do arquivo de rotina: %s" -#: f.batch.cc:2430 +#: f.batch.cc:2237 msgid "growisofs not installed" msgstr "growisofs não instalado" -#: f.batch.cc:2482 +#: f.batch.cc:2289 msgid "no DVD/BlueRay device found" msgstr "nenhum dispositivo DVD/BluRay encontrado" -#: f.batch.cc:2505 f.widgets.cc:570 +#: f.batch.cc:2312 f.widgets.cc:572 msgid "Burn Images to DVD/BlueRay" msgstr "Gravar Imagens em DVD/BluRay" -#: f.batch.cc:2510 +#: f.batch.cc:2317 msgid "Select device" msgstr "Selecionar dispositivo" -#: f.batch.cc:2635 f.widgets.cc:571 +#: f.batch.cc:2442 f.widgets.cc:573 msgid "Find Duplicate Images" msgstr "Encontrar imagens Duplicadas" -#: f.batch.cc:2637 f.tools.cc:1012 +#: f.batch.cc:2444 f.tools.cc:1017 msgid "Thumbnail size" msgstr "Tamanho de miniatura" -#: f.batch.cc:2640 +#: f.batch.cc:2447 msgid "pixel difference" msgstr "diferença de pixel" -#: f.batch.cc:2643 +#: f.batch.cc:2450 msgid "pixel count" msgstr "contagem de pixel" -#: f.batch.cc:2646 +#: f.batch.cc:2453 msgid "Images:" msgstr "Imagens:" -#: f.batch.cc:2647 +#: f.batch.cc:2454 msgid "searching ..." msgstr "procurando ..." -#: f.batch.cc:2649 +#: f.batch.cc:2456 msgid "Duplicates:" msgstr "Duplicidades:" -#: f.batch.cc:2667 +#: f.batch.cc:2474 #, c-format msgid "only %d image thumbnails found" msgstr "apenas %d miniaturas de imagem encontrados" -#: f.batch.cc:2875 f.widgets.cc:377 +#: f.batch.cc:2682 f.widgets.cc:378 msgid "Create a file of selected image files" msgstr "Criar um arquivo com imagens selecionadas" -#: f.batch.cc:2899 f.batch.cc:2969 +#: f.batch.cc:2706 f.batch.cc:2776 msgid "Output File" msgstr "Arquivo de saída" -#: f.batch.cc:2918 +#: f.batch.cc:2725 msgid "no input files selected" msgstr "nenhum arquivo de entrada selecionado" -#: f.batch.cc:2923 +#: f.batch.cc:2730 msgid "no output file selected" msgstr "nenhum arquivo de saída selecionado" -#: f.batch.cc:2937 f.tools.cc:643 -msgid "COMPLETED" -msgstr "COMPLETO" - -#: f.bend.cc:92 f.widgets.cc:505 +#: f.bend.cc:92 f.widgets.cc:507 msgid "Unbend" msgstr "Desempenar" @@ -946,7 +942,7 @@ " Faça vários ajustes até que esteja satisfeito. \n" " Quando terminar, selecione outra área e precione [pronto]." -#: f.bend.cc:756 f.widgets.cc:507 +#: f.bend.cc:756 f.widgets.cc:509 msgid "Warp area" msgstr "Distorcer área" @@ -968,7 +964,7 @@ " Faça vários ajustes até que esteja satisfeito. \n" " Quando terminar, precione [pronto]." -#: f.bend.cc:1178 f.widgets.cc:508 +#: f.bend.cc:1178 f.widgets.cc:510 msgid "Warp curved" msgstr "Distorção curva" @@ -976,7 +972,7 @@ msgid "warp span" msgstr "distorção em alcance" -#: f.bend.cc:1492 f.widgets.cc:509 +#: f.bend.cc:1492 f.widgets.cc:511 msgid "Warp linear" msgstr "Distorção linear" @@ -990,7 +986,7 @@ " Faça vários ajustes até que esteja satisfeito. \n" " Quando terminar, precione [pronto]." -#: f.bend.cc:1823 f.widgets.cc:510 +#: f.bend.cc:1823 f.widgets.cc:512 msgid "Warp affine" msgstr "Distorção afim" @@ -1020,7 +1016,7 @@ msgid "bottom:" msgstr "rodapé:" -#: f.bend.cc:2614 f.widgets.cc:512 +#: f.bend.cc:2614 f.widgets.cc:514 msgid "Spherical Projection" msgstr "Projeção Esférica" @@ -1038,7 +1034,7 @@ "Arraste a imagem através canto superior esquerdo. \n" "Quando terminar, pressione [pronto]." -#: f.bend.cc:2850 f.widgets.cc:513 +#: f.bend.cc:2850 f.widgets.cc:515 msgid "Selective Rescale" msgstr "Redimensionamento Seletivo" @@ -1075,7 +1071,7 @@ msgstr "Pintar e distorcer imagem" #: f.combine.cc:2998 f.combine.cc:3643 f.combine.cc:6252 f.effects.cc:4413 -#: f.widgets.cc:602 f.widgets.cc:626 f.widgets.cc:650 f.widgets.cc:664 +#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 msgid "Image" msgstr "Imagem" @@ -1151,7 +1147,7 @@ msgid "manual align" msgstr "alinhar manualmente" -#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:473 f.widgets.cc:736 +#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:475 f.widgets.cc:738 msgid "Resize" msgstr "Redimensionar" @@ -1221,7 +1217,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Pequena rotação: arrastar margem direita com o mouse" -#: f.edit.cc:162 f.widgets.cc:465 f.widgets.cc:735 +#: f.edit.cc:162 f.widgets.cc:467 f.widgets.cc:737 msgid "Trim/Rotate" msgstr "Recortar/Rodar" @@ -1239,7 +1235,7 @@ #: f.edit.cc:185 msgid "maximize trim box" -msgstr "" +msgstr "maximizar caixa de recorte" #: f.edit.cc:186 msgid "use previous size" @@ -1289,7 +1285,7 @@ msgid "rotation unknown" msgstr "rotação desconhecida" -#: f.edit.cc:1957 f.widgets.cc:469 f.widgets.cc:740 +#: f.edit.cc:1957 f.widgets.cc:471 f.widgets.cc:742 msgid "Retouch Combo" msgstr "Kit Retoque" @@ -1301,7 +1297,7 @@ msgid "Brightness" msgstr "Briho" -#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1112 +#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1113 msgid "Contrast" msgstr "Contraste" @@ -1333,7 +1329,7 @@ msgid "Bright" msgstr "Brilho" -#: f.edit.cc:2000 f.tools.cc:1767 +#: f.edit.cc:2000 f.tools.cc:1775 msgid "Brightness Distribution" msgstr "Distribuição de Brilho" @@ -1405,7 +1401,7 @@ msgid "Deband Bright" msgstr "Debandar Claridade" -#: f.edit.cc:3570 f.widgets.cc:472 f.widgets.cc:743 +#: f.edit.cc:3570 f.widgets.cc:474 f.widgets.cc:745 msgid "Tone Mapping" msgstr "Mapeamento Tonal" @@ -1437,7 +1433,7 @@ msgid "use previous settings" msgstr "usar configurações prévias" -#: f.edit.cc:4236 f.widgets.cc:474 +#: f.edit.cc:4236 f.widgets.cc:476 msgid "Flip" msgstr "Virar" @@ -1479,15 +1475,15 @@ msgid "text" msgstr "texto" -#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2807 +#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2814 msgid "backing" msgstr "fundo" -#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2808 +#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2815 msgid "outline" msgstr "contorno" -#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2809 +#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2816 msgid "shadow" msgstr "sombra" @@ -1495,7 +1491,7 @@ msgid "save to current file" msgstr "salvar em arquivo atual" -#: f.edit.cc:4466 f.file.cc:1835 +#: f.edit.cc:4466 f.file.cc:1706 msgid "save as new file version" msgstr "salvar como nova versão de arquivo" @@ -1507,7 +1503,7 @@ "salvar para arquivo atual \n" "abrir próximo arquivo com o mesmo texto" -#: f.edit.cc:4628 f.mashup.cc:2566 f.tools.cc:1167 +#: f.edit.cc:4628 f.mashup.cc:2573 f.tools.cc:1172 msgid "select font" msgstr "selecionar fonte" @@ -1527,15 +1523,15 @@ msgid "Write Line or Arrow on Image" msgstr "Gravar Linha ou Seta na Imagem" -#: f.edit.cc:5278 f.mashup.cc:2786 +#: f.edit.cc:5278 f.mashup.cc:2793 msgid "Line length" msgstr "Comprimento de linha" -#: f.edit.cc:5285 f.mashup.cc:2793 +#: f.edit.cc:5285 f.mashup.cc:2800 msgid "Arrow head" msgstr "Ponta de seta" -#: f.edit.cc:5298 f.mashup.cc:2806 +#: f.edit.cc:5298 f.mashup.cc:2813 msgid "line" msgstr "linha" @@ -1547,11 +1543,11 @@ "fixar linha/seta no leiaute \n" " começar nova linha/seta" -#: f.edit.cc:5918 f.widgets.cc:477 +#: f.edit.cc:5918 f.widgets.cc:479 msgid "Paint Edits" msgstr "Primir Edições" -#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.06.cc:3307 +#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.07.cc:3318 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -1559,7 +1555,7 @@ "Área selecionada não pode ser capturada.\n" "Continuar?" -#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2293 +#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2301 msgid "Edit function must be active" msgstr "Função Editar tem de estar ativada" @@ -1575,7 +1571,7 @@ msgid "reset area" msgstr "redefinir área" -#: f.edit.cc:6144 f.widgets.cc:478 +#: f.edit.cc:6144 f.widgets.cc:480 msgid "Leverage Edits" msgstr "Influenciar Edições" @@ -1643,7 +1639,7 @@ msgid "Background" msgstr "Plano de Fundo" -#: f.effects.cc:1214 f.widgets.cc:519 +#: f.effects.cc:1214 f.widgets.cc:521 msgid "Line Drawing" msgstr "Desenho de linha" @@ -1651,7 +1647,7 @@ msgid "black/white" msgstr "preto/branco" -#: f.effects.cc:1505 f.widgets.cc:520 +#: f.effects.cc:1505 f.widgets.cc:522 msgid "Color Drawing" msgstr "Desenho de Cores" @@ -1659,7 +1655,7 @@ msgid "Bright Areas" msgstr "Áreas claras" -#: f.effects.cc:1766 f.widgets.cc:521 +#: f.effects.cc:1766 f.widgets.cc:523 msgid "Graduated Blur" msgstr "Desfoque Graduado" @@ -1723,7 +1719,7 @@ msgid "borders" msgstr "bordas" -#: f.effects.cc:3259 f.widgets.cc:526 +#: f.effects.cc:3259 f.widgets.cc:528 msgid "Vignette" msgstr "Vinheta" @@ -1751,7 +1747,7 @@ msgid "Calculate" msgstr "Calcular" -#: f.effects.cc:3848 f.widgets.cc:528 +#: f.effects.cc:3848 f.widgets.cc:530 msgid "Pattern" msgstr "Padrão" @@ -1775,7 +1771,7 @@ msgid "Tile" msgstr "Ladrilho" -#: f.effects.cc:4411 f.widgets.cc:523 +#: f.effects.cc:4411 f.widgets.cc:525 msgid "Tiles" msgstr "Ladrilhos" @@ -1793,7 +1789,7 @@ msgid "only %d tile images found" msgstr "apenas %d imagens de ladrilho encontradas" -#: f.effects.cc:4905 f.widgets.cc:530 +#: f.effects.cc:4905 f.widgets.cc:532 msgid "Custom Kernel" msgstr "Customizar Núcleo" @@ -1809,11 +1805,11 @@ msgid "Data file" msgstr "Arquivo de Dados" -#: f.effects.cc:4951 fotoxx-16.06.cc:3571 +#: f.effects.cc:4951 fotoxx-16.07.cc:3582 msgid "Load settings from file" msgstr "Carregar configurações de um arquivo" -#: f.effects.cc:5212 f.widgets.cc:531 +#: f.effects.cc:5212 f.widgets.cc:533 msgid "Make Waves" msgstr "Criar Ondas" @@ -1837,7 +1833,7 @@ msgid "Pull image using the mouse." msgstr "Puxe a imagem utilizando o mouse." -#: f.effects.cc:5427 f.widgets.cc:532 +#: f.effects.cc:5427 f.widgets.cc:534 msgid "Directed Blur" msgstr "Desfoque Direcionado" @@ -1849,7 +1845,7 @@ msgid "intensity" msgstr "intensidade" -#: f.effects.cc:5638 f.widgets.cc:533 +#: f.effects.cc:5638 f.widgets.cc:535 msgid "Blur Background" msgstr "Desfocar Plano de Fundo" @@ -1869,7 +1865,7 @@ msgid "max. blur radius" msgstr "raio máximo de desfoque" -#: f.file.cc:182 +#: f.file.cc:181 msgid "" "use EXIF photo date or \n" " file modification date" @@ -1877,83 +1873,75 @@ "usar dados EXIF da foto ou \n" " data de modificação do arquivo" -#: f.file.cc:199 f.widgets.cc:608 +#: f.file.cc:198 f.widgets.cc:610 msgid "File" msgstr "Arquivo" -#: f.file.cc:355 -msgid "UFraw not installed" -msgstr "UFraw não instalado" - -#: f.file.cc:371 f.widgets.cc:745 -msgid "Open RAW file (ufraw)" -msgstr "Abrir arquivo RAW (ufraw)" +#: f.file.cc:368 f.widgets.cc:747 +msgid "Open RAW file (Raw Therapee)" +msgstr "Abrir arquivo RAW (Raw Therapee)" -#: f.file.cc:376 f.file.cc:447 +#: f.file.cc:373 msgid "RAW type not registered in User Settings" msgstr "Tipo RAW não reconhecido nas Configurações de Usuário" -#: f.file.cc:442 f.widgets.cc:746 -msgid "Open RAW file (Raw Therapee)" -msgstr "Abrir arquivo RAW (Raw Therapee)" - -#: f.file.cc:534 f.widgets.cc:423 +#: f.file.cc:460 f.widgets.cc:424 msgid "Open Image File" msgstr "Abrir arquivo" -#: f.file.cc:553 +#: f.file.cc:479 msgid "unknown file type" msgstr "tipo de arquivo desconhecido" -#: f.file.cc:747 +#: f.file.cc:673 msgid "Create Blank Image" msgstr "Criar imagem em branco" -#: f.file.cc:749 +#: f.file.cc:675 msgid "file name" msgstr "nome do arquvo" -#: f.file.cc:782 +#: f.file.cc:708 msgid "supply a file name" msgstr "forneça um nome de arquivo" -#: f.file.cc:932 f.widgets.cc:428 +#: f.file.cc:858 f.widgets.cc:428 msgid "Rename Image File" msgstr "Renomear arquivo" -#: f.file.cc:939 +#: f.file.cc:865 msgid "Old Name" msgstr "nome antigo" -#: f.file.cc:949 +#: f.file.cc:875 msgid "previous name" msgstr "nome anterior" -#: f.file.cc:950 +#: f.file.cc:876 msgid "add 1" msgstr "adicionar 1" -#: f.file.cc:1129 +#: f.file.cc:1054 msgid "Copy or Move Image File" msgstr "Copiar ou Mover arquivo de imagem" -#: f.file.cc:1171 +#: f.file.cc:1096 msgid "New Location:" msgstr "Nova Localidade:" -#: f.file.cc:1176 +#: f.file.cc:1101 msgid "copy (duplicate file)" msgstr "copiar (duplicar arquivo)" -#: f.file.cc:1178 +#: f.file.cc:1103 msgid "move (remove original)" msgstr "mover (remove arquivo original)" -#: f.file.cc:1257 +#: f.file.cc:1182 msgid "new location is not a directory" msgstr "nova localidade não é um diretório" -#: f.file.cc:1297 f.file.cc:1511 +#: f.file.cc:1222 f.file.cc:1431 #, c-format msgid "" "delete failed: \n" @@ -1962,77 +1950,63 @@ "exclusão falhou: \n" " %s" -#: f.file.cc:1393 +#: f.file.cc:1318 msgid "Delete or Trash Image File" msgstr "Excluir ou Descartar Arquivo de Imagem" -#: f.file.cc:1460 -msgid "" -"GTK g_file_trash() function failed. \n" -"Desktop trash folder will be used." -msgstr "" -"Função GTK g_file_trash() falhou. \n" -"Diretório de lixo da Área de Trabalho será usada." - -#: f.file.cc:1463 -#, c-format -msgid "Cannot create desktop trash folder: %s" -msgstr "Não foi possível criar diretório de lixo na Área de Trabalho: %s" +#: f.file.cc:1383 +msgid "GTK g_file_trash() function failed" +msgstr "Função GTK g_file_trash() falhou" -#: f.file.cc:1483 +#: f.file.cc:1404 msgid "not a known image file" msgstr "arquivo de imagem desconhecido" -#: f.file.cc:1489 +#: f.file.cc:1410 msgid "Delete read-only file?" msgstr "Excluir arquivo somente leitura?" -#: f.file.cc:1491 +#: f.file.cc:1412 msgid "Trash read-only file?" msgstr "Descartar arquivos somente leitura?" -#: f.file.cc:1564 -#, c-format -msgid "error: %s" -msgstr "erro: %s" - -#: f.file.cc:1589 +#: f.file.cc:1460 msgid "no more images" msgstr "imagens esgotadas" -#: f.file.cc:1817 +#: f.file.cc:1688 msgid "Save Image File" msgstr "Salvar Arquivo-imagem" -#: f.file.cc:1827 +#: f.file.cc:1698 msgid "new version" msgstr "nova versão" -#: f.file.cc:1828 +#: f.file.cc:1699 msgid "new file" msgstr "novo arquivo" -#: f.file.cc:1829 +#: f.file.cc:1700 msgid "replace file" msgstr "substituir arquivo" -#: f.file.cc:1836 f.file.cc:2255 +#: f.file.cc:1707 f.file.cc:2126 msgid "save as new file name or type" msgstr "salvar com novo nome ou tipo de arquivo" -#: f.file.cc:1838 +#: f.file.cc:1709 msgid "replace old file (OVERWRITE)" msgstr "substituir arquivo antigo (SOBRESCREVER)" -#: f.file.cc:1877 f.file.cc:2020 +#: f.file.cc:1748 f.file.cc:1891 msgid "cannot save as RAW type" msgstr "não foi possível salvar como RAW" -#: f.file.cc:1973 +#: f.file.cc:1844 msgid "too many file versions: 99" msgstr "versões de arquivo extrapolaram: 99" -#: f.file.cc:2014 +#: f.file.cc:1885 msgid "" "Transparency map will be lost.\n" "save to PNG file to retain." @@ -2040,23 +2014,23 @@ "Mapa de Transparência será perdido. \n" "salve em arquivo PNG para mantê-lo." -#: f.file.cc:2098 +#: f.file.cc:1969 msgid "save anyway" msgstr "salvar assim mesmo" -#: f.file.cc:2164 +#: f.file.cc:2035 msgid "Unable to copy EXIF/IPTC data" msgstr "Incapaz de copiar dados EXIF/IPTC" -#: f.file.cc:2273 f.file.cc:2276 +#: f.file.cc:2144 f.file.cc:2147 msgid "make current" msgstr "tornar atual" -#: f.file.cc:2274 +#: f.file.cc:2145 msgid "(new file becomes current file)" msgstr "(novo arquivo se torna arquivo atual)" -#: f.file.cc:2387 +#: f.file.cc:2258 #, c-format msgid "" "Overwrite file? \n" @@ -2065,93 +2039,79 @@ "Sobrescrever arquivo? \n" " %s" -#: f.file.cc:2478 -msgid "Start of gallery, next: preceding gallery." -msgstr "Início de Galeria, próximo: galeria precedente." - -#: f.file.cc:2479 -msgid "End of gallery, next: following gallery." -msgstr "Fim de Galeria, próximo: galeria adiante." - -#: f.file.cc:2480 -msgid "" -"The next preceding gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" -"A próxima galeria precedente não existe ou não contém imagens. \n" -"(Nenhum subdiretório ou diretório adiante foi vasculhado)." +#: f.file.cc:2351 +#, c-format +msgid "Start of gallery, preceding gallery: %s" +msgstr "Início de Galeria, precedente: %s" -#: f.file.cc:2482 -msgid "" -"The next following gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" -"A próxima galeria adiante não existe ou não contém imagens. \n" -"(Nenhum subdiretório ou diretório adiante foi vasculhado)." +#: f.file.cc:2352 +#, c-format +msgid "End of gallery, following gallery: %s" +msgstr "Fim de Galeria, adiante: %s" -#: f.file.cc:2556 f.widgets.cc:589 +#: f.file.cc:2446 f.widgets.cc:591 msgid "Quick Start" msgstr "Guia Rápido" -#: f.file.cc:2559 f.widgets.cc:590 +#: f.file.cc:2449 f.widgets.cc:592 msgid "User Guide" msgstr "Guia de usuário" -#: f.file.cc:2562 f.widgets.cc:591 +#: f.file.cc:2452 f.widgets.cc:593 msgid "User Guide Changes" msgstr "Mudanças no Guia de Usuários" -#: f.file.cc:2565 f.widgets.cc:593 +#: f.file.cc:2455 f.widgets.cc:595 msgid "README" msgstr "LEIAME" -#: f.file.cc:2568 f.widgets.cc:592 +#: f.file.cc:2458 f.widgets.cc:594 msgid "Edit Functions Summary" msgstr "Editar Resumo de Funções" -#: f.file.cc:2571 f.widgets.cc:594 +#: f.file.cc:2461 f.widgets.cc:596 msgid "Change Log" msgstr "Relatório de mudanças" -#: f.file.cc:2574 f.widgets.cc:595 +#: f.file.cc:2464 f.widgets.cc:597 msgid "Log File" msgstr "Arquivo de Log" -#: f.file.cc:2577 f.widgets.cc:596 +#: f.file.cc:2467 f.widgets.cc:598 msgid "Translations" msgstr "Traduções" -#: f.file.cc:2580 f.widgets.cc:597 +#: f.file.cc:2470 f.widgets.cc:599 msgid "Home Page" msgstr "Página na web" -#: f.file.cc:2583 f.widgets.cc:598 +#: f.file.cc:2473 f.widgets.cc:600 msgid "About" msgstr "Sobre" -#: f.file.cc:2587 f.widgets.cc:620 f.widgets.cc:644 fotoxx.h:1135 +#: f.file.cc:2477 f.widgets.cc:622 f.widgets.cc:646 fotoxx.h:1136 msgid "Help" msgstr "Ajuda" -#: f.file.cc:2742 f.file.cc:2812 +#: f.file.cc:2632 f.file.cc:2702 #, c-format msgid "file not found: %s" msgstr "arquivo não encontrado: %s" -#: f.file.cc:2748 f.file.cc:2818 +#: f.file.cc:2638 f.file.cc:2708 #, c-format msgid "file type not supported: %s" msgstr "tipo de arquivo não suportado: %s" -#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:642 +#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:644 msgid "Scroll" msgstr "Rolar" -#: f.gallery.cc:940 f.widgets.cc:420 f.widgets.cc:632 +#: f.gallery.cc:940 f.widgets.cc:421 f.widgets.cc:634 msgid "Sync Gallery" msgstr "Sinc. Galeria" -#: f.gallery.cc:950 f.repair.cc:6658 f.repair.cc:6663 fotoxx.h:1157 +#: f.gallery.cc:950 f.repair.cc:6352 f.repair.cc:6357 fotoxx.h:1158 msgid "Open" msgstr "Abrir" @@ -2163,16 +2123,16 @@ msgid "GoTo" msgstr "IrPara" -#: f.gallery.cc:965 f.widgets.cc:637 +#: f.gallery.cc:965 f.widgets.cc:639 msgid "Sort" msgstr "Ordenar" #: f.gallery.cc:971 f.gallery.cc:1540 f.gallery.cc:1541 f.gallery.cc:1543 -#: f.widgets.cc:635 +#: f.widgets.cc:637 msgid "Zoom+" msgstr "Zoom+" -#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:636 +#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:638 msgid "Zoom-" msgstr "Zoom-" @@ -2184,19 +2144,19 @@ msgid "Row↓" msgstr "Linha↓" -#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:640 +#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:642 msgid "Page↑" msgstr "Página↑" -#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:641 +#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:643 msgid "Page↓" msgstr "Página↓" -#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:638 +#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:640 msgid "First" msgstr "Primeiro" -#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:639 +#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:641 msgid "Last" msgstr "Último" @@ -2220,7 +2180,7 @@ msgid "Choose album" msgstr "Escolher álbum" -#: f.gallery.cc:1288 f.tools.cc:986 +#: f.gallery.cc:1288 f.tools.cc:991 msgid "Gallery Sort" msgstr "Ordenar Galeria" @@ -2244,27 +2204,27 @@ msgid "descending" msgstr "descendente" -#: f.gallery.cc:2373 fotoxx.h:1182 +#: f.gallery.cc:2315 fotoxx.h:1182 msgid "Select Files" msgstr "Selecionar arquivos" -#: f.gallery.cc:2838 +#: f.gallery.cc:2780 msgid "Click list position. Click thumbnail to add." msgstr "Clique na posição da lista. Clique na miniatura para adicionar." -#: f.gallery.cc:2864 f.gallery.cc:3112 +#: f.gallery.cc:2806 f.gallery.cc:3054 msgid "Edit Bookmarks" msgstr "Editar Favoritos" -#: f.gallery.cc:3039 +#: f.gallery.cc:2981 msgid "unable to save bookmarks file" msgstr "incapaz de salvar arquivo de favoritos" -#: f.gallery.cc:3112 +#: f.gallery.cc:3054 msgid "Go To Bookmark" msgstr "Ir para Favorito" -#: f.gallery.cc:3169 f.meta.cc:3528 f.repair.cc:8279 +#: f.gallery.cc:3111 f.meta.cc:3526 f.repair.cc:7973 msgid "file not found" msgstr "arquivo não encontrado" @@ -2458,7 +2418,7 @@ msgid "Hard" msgstr "Rígido" -#: f.mashup.cc:1313 f.repair.cc:6252 +#: f.mashup.cc:1313 f.repair.cc:5946 msgid "Blend" msgstr "Mistura" @@ -2474,7 +2434,7 @@ msgid "Gradual" msgstr "Gradual" -#: f.mashup.cc:1589 fotoxx.h:1161 +#: f.mashup.cc:1589 fotoxx.h:1162 msgid "Power" msgstr "Força" @@ -2503,45 +2463,45 @@ msgid "add entered text to layout" msgstr "adicionar texto inserido ao leiaute" -#: f.mashup.cc:2627 +#: f.mashup.cc:2634 msgid "click position to add text" msgstr "clique na posição para adicionar texto" -#: f.mashup.cc:2633 +#: f.mashup.cc:2640 #, c-format msgid "exceeded %d text entries" msgstr "excederam %d entradas de texto" -#: f.mashup.cc:2756 +#: f.mashup.cc:2763 msgid "Set line properties, [Add] to layout, edit." msgstr "Definir propriedades de linha, [Adicionar] ao leiaute, editar." -#: f.mashup.cc:2780 +#: f.mashup.cc:2787 msgid "Edit Line/Arrow" msgstr "Editar Linha/Seta" -#: f.mashup.cc:2835 +#: f.mashup.cc:2842 msgid "add line/arrow to layout" msgstr "adicionar linha/seta ao leiaute" -#: f.mashup.cc:2928 +#: f.mashup.cc:2935 msgid "click position to add line" msgstr "clique na posição para adicionar linha" -#: f.mashup.cc:2934 +#: f.mashup.cc:2941 #, c-format msgid "exceeded %d line entries" msgstr "excederam%d linhas de entrada" -#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:723 +#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:725 msgid "View Metadata" msgstr "Ver metadados" #: f.meta.cc:548 msgid "Geocoding service by MapQuest" -msgstr "" +msgstr "Serviço de Geocodificação por MapQuest" -#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:724 +#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:726 msgid "Edit Metadata" msgstr "Editar Metadados" @@ -2569,11 +2529,11 @@ msgid "Comments" msgstr "Comentários" -#: f.meta.cc:659 f.meta.cc:3618 -msgid "city" -msgstr "cidade" +#: f.meta.cc:659 f.meta.cc:3616 +msgid "location" +msgstr "localização" -#: f.meta.cc:662 f.meta.cc:3621 +#: f.meta.cc:662 f.meta.cc:3619 msgid "country" msgstr "país" @@ -2589,76 +2549,76 @@ msgid "Enter New Tag" msgstr "Entre com Nova Etiqueta" -#: f.meta.cc:703 f.meta.cc:5459 +#: f.meta.cc:703 f.meta.cc:5446 msgid "Matching Tags" msgstr "Etiquetas Correspondentes" -#: f.meta.cc:712 f.meta.cc:1708 f.meta.cc:5466 +#: f.meta.cc:712 f.meta.cc:1706 f.meta.cc:5453 msgid "Defined Tags Category" msgstr "Categorias de Etiquetas Definidas" #: f.meta.cc:719 msgid "search known locations" -msgstr "" +msgstr "procurar localidades conhecidas" #: f.meta.cc:720 msgid "search using web service" -msgstr "" +msgstr "procurar utilizando web service" #: f.meta.cc:721 msgid "create tag categories and tags" msgstr "criar etiquetas e categorias de etiqueta" -#: f.meta.cc:936 f.meta.cc:3778 -msgid "city not found" -msgstr "cidade não encontrada" +#: f.meta.cc:936 f.meta.cc:3776 +msgid "location not found" +msgstr "localização não encontrada" -#: f.meta.cc:1214 f.meta.cc:3836 f.meta.cc:4352 +#: f.meta.cc:1212 f.meta.cc:3834 f.meta.cc:4337 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "latitude/longitude inválido: %s %s" -#: f.meta.cc:1248 fotoxx.h:1145 +#: f.meta.cc:1246 fotoxx.h:1146 msgid "Manage Tags" msgstr "Gerenciar Etiquetas" -#: f.meta.cc:1248 +#: f.meta.cc:1246 msgid "orphan tags" msgstr "etiquetas órfãs" -#: f.meta.cc:1252 +#: f.meta.cc:1250 msgid "category" msgstr "categoria" -#: f.meta.cc:1255 +#: f.meta.cc:1253 msgid "tag" msgstr "etiqueta" -#: f.meta.cc:1262 +#: f.meta.cc:1260 msgid "Defined Tags:" msgstr "etiquetas definidas:" -#: f.meta.cc:1404 f.widgets.cc:441 f.widgets.cc:725 +#: f.meta.cc:1402 f.widgets.cc:441 f.widgets.cc:727 msgid "Edit Any Metadata" msgstr "Editar qualquer Metadado" -#: f.meta.cc:1404 f.meta.cc:2148 +#: f.meta.cc:1402 f.meta.cc:2146 msgid "Full List" msgstr "Lista Completa" -#: f.meta.cc:1409 f.meta.cc:2153 +#: f.meta.cc:1407 f.meta.cc:2151 msgid "click to select" msgstr "clique para selecionar" -#: f.meta.cc:1418 f.meta.cc:2164 +#: f.meta.cc:1416 f.meta.cc:2162 msgid "key name" msgstr "nome chave" -#: f.meta.cc:1420 f.meta.cc:2165 +#: f.meta.cc:1418 f.meta.cc:2163 msgid "key value" msgstr "valor chave" -#: f.meta.cc:1506 f.meta.cc:2308 +#: f.meta.cc:1504 f.meta.cc:2306 msgid "" "The command: $ man Image::ExifTool::TagNames \n" "will show over 15000 \"standard\" tag names" @@ -2666,31 +2626,31 @@ "O comando: $ man Image::ExifTool::TagNames \n" "mostrará mais de 15000 \"padrões\" para nomes de etiqueta" -#: f.meta.cc:1579 f.widgets.cc:442 +#: f.meta.cc:1577 f.widgets.cc:442 msgid "Delete Metadata" msgstr "Excluir Metadados" -#: f.meta.cc:1581 fotoxx.h:1095 +#: f.meta.cc:1579 fotoxx.h:1095 msgid "All" msgstr "Todos" -#: f.meta.cc:1582 +#: f.meta.cc:1580 msgid "One Key:" msgstr "Uma chave:" -#: f.meta.cc:1685 f.widgets.cc:443 f.widgets.cc:574 +#: f.meta.cc:1683 f.widgets.cc:443 f.widgets.cc:576 msgid "Batch Add/Remove Tags" msgstr "Adicionar/Remover Etiqueras em Lote" -#: f.meta.cc:1696 +#: f.meta.cc:1694 msgid "tags to add" msgstr "etiquetas a adicionar" -#: f.meta.cc:1697 +#: f.meta.cc:1695 msgid "tags to remove" msgstr "etiquetas a remover" -#: f.meta.cc:1782 +#: f.meta.cc:1780 #, c-format msgid "" "%s \n" @@ -2699,15 +2659,15 @@ "%s \n" " etiquetas demasiadas" -#: f.meta.cc:1897 +#: f.meta.cc:1895 msgid "specify files and tags" msgstr "especificar arquivos e etiquetas" -#: f.meta.cc:1957 +#: f.meta.cc:1955 msgid "tag names file" msgstr "arquivo de nomes de etiqueta" -#: f.meta.cc:2031 +#: f.meta.cc:2029 #, c-format msgid "" "%d tags to rename \n" @@ -2718,43 +2678,43 @@ "em %d arquivos de imagem. \n" "Proceder?" -#: f.meta.cc:2148 +#: f.meta.cc:2146 msgid "Batch Change Metadata" msgstr "Alterar Metadados em Lote" -#: f.meta.cc:2222 +#: f.meta.cc:2220 msgid "enter key names" msgstr "inserir nome de chave" -#: f.meta.cc:2228 f.meta.cc:2422 fotoxx.h:1154 +#: f.meta.cc:2226 f.meta.cc:2420 fotoxx.h:1155 msgid "no files selected" msgstr "nenhum arquivo selecionado" -#: f.meta.cc:2407 f.widgets.cc:446 f.widgets.cc:577 +#: f.meta.cc:2405 f.widgets.cc:446 f.widgets.cc:579 msgid "Batch Report Metadata" msgstr "Relatório de Metadados em Lote" -#: f.meta.cc:2580 +#: f.meta.cc:2578 msgid "date format is YYYY-MM-DD" msgstr "formato da data é AAAA-MM-DD" -#: f.meta.cc:2584 +#: f.meta.cc:2582 msgid "date is invalid" msgstr "data inválida" -#: f.meta.cc:2618 +#: f.meta.cc:2616 msgid "time format is HH:MM [:SS]" msgstr "formato da hora é HH:MM [: SS]" -#: f.meta.cc:2622 +#: f.meta.cc:2620 msgid "time is invalid" msgstr "hora inválida" -#: f.meta.cc:3587 f.widgets.cc:447 f.widgets.cc:578 +#: f.meta.cc:3585 f.widgets.cc:447 f.widgets.cc:580 msgid "Batch Add Geotags" msgstr "Adicionar Georreferências em Lote" -#: f.meta.cc:3824 +#: f.meta.cc:3822 msgid "" "data is incomplete \n" " proceed?" @@ -2762,27 +2722,27 @@ "Dados incompletos \n" " continuar?" -#: f.meta.cc:3874 -msgid "choose city" -msgstr "escolher cidade" +#: f.meta.cc:3872 +msgid "choose location" +msgstr "escolher localização" -#: f.meta.cc:3961 +#: f.meta.cc:3959 msgid "not found" msgstr "não encontrado" -#: f.meta.cc:3962 -msgid "city and country required" -msgstr "cidade e país requerido" +#: f.meta.cc:3960 +msgid "location and country required" +msgstr "localização e país requerido" -#: f.meta.cc:4465 f.meta.cc:5003 f.meta.cc:5347 f.meta.cc:6504 +#: f.meta.cc:4450 f.meta.cc:4988 f.meta.cc:5334 f.meta.cc:6559 msgid "-noindex in use, disabled" msgstr "-noindex em uso, desabilitado" -#: f.meta.cc:4483 +#: f.meta.cc:4468 msgid "choose map file" msgstr "escolher arquivo de mapa" -#: f.meta.cc:4624 +#: f.meta.cc:4609 msgid "" "fotoxx-maps package not installed \n" "(see http://kornelix.net/packages and /tarballs)" @@ -2790,12 +2750,12 @@ "pacote fotoxx-maps não instalado \n" "(http://kornelix.net/packages e /tarballs)" -#: f.meta.cc:4629 +#: f.meta.cc:4614 #, c-format msgid "map file %s is missing" msgstr "arquivo de mapa file %s faltando" -#: f.meta.cc:4633 +#: f.meta.cc:4618 #, c-format msgid "" "map latitude/longitude data unreasonable \n" @@ -2804,108 +2764,108 @@ "dados latitude/longitude do mapa não fazem sentido \n" " %.3f %.3f %.3f %.3f" -#: f.meta.cc:4662 +#: f.meta.cc:4647 msgid "search range (km)" msgstr "procurar distância (km)" -#: f.meta.cc:4940 f.meta.cc:5282 +#: f.meta.cc:4925 f.meta.cc:5267 msgid "No matching images found" msgstr "Nenhuma imagem encontrada" -#: f.meta.cc:5118 +#: f.meta.cc:5103 msgid "image file has no latitude/longitude" msgstr "arquivo de imagem não possui latitude/longitude" -#: f.meta.cc:5384 +#: f.meta.cc:5371 msgid "Search Image Metadata" msgstr "Procurar por Metadados de Imagem" -#: f.meta.cc:5388 +#: f.meta.cc:5375 msgid "images to search:" msgstr "imagens para busca:" -#: f.meta.cc:5389 +#: f.meta.cc:5376 msgid "all" msgstr "todos" -#: f.meta.cc:5390 +#: f.meta.cc:5377 msgid "current set only" msgstr "configuração atual apenas" -#: f.meta.cc:5393 +#: f.meta.cc:5380 msgid "matching images:" msgstr "imagens correspondentes:" -#: f.meta.cc:5394 +#: f.meta.cc:5381 msgid "new set" msgstr "nova configuração" -#: f.meta.cc:5395 +#: f.meta.cc:5382 msgid "add to set" msgstr "adicionar à configuração" -#: f.meta.cc:5396 +#: f.meta.cc:5383 msgid "remove" msgstr "remover" -#: f.meta.cc:5399 +#: f.meta.cc:5386 msgid "report type:" msgstr "tipo relatório:" -#: f.meta.cc:5400 +#: f.meta.cc:5387 msgid "gallery" msgstr "galeria" -#: f.meta.cc:5407 +#: f.meta.cc:5394 msgid "date range" msgstr "variação de data" -#: f.meta.cc:5408 +#: f.meta.cc:5395 msgid "stars range" msgstr "variação de estrelas" -#: f.meta.cc:5409 +#: f.meta.cc:5396 msgid "search tags" msgstr "procurar etiquetas" -#: f.meta.cc:5410 +#: f.meta.cc:5397 msgid "search text" msgstr "procurar texto" -#: f.meta.cc:5411 +#: f.meta.cc:5398 msgid "search files" msgstr "procurar arquivos" -#: f.meta.cc:5416 +#: f.meta.cc:5403 msgid "(yyyymmdd)" msgstr "(aaaammdd)" -#: f.meta.cc:5421 +#: f.meta.cc:5408 msgid "last version only" msgstr "última versão apenas" -#: f.meta.cc:5423 +#: f.meta.cc:5410 msgid "all/any" msgstr "todos/qualquer" -#: f.meta.cc:5442 +#: f.meta.cc:5429 msgid "search locations" -msgstr "" +msgstr "procurar localidades" -#: f.meta.cc:5448 +#: f.meta.cc:5435 msgid "search other metadata" -msgstr "" +msgstr "procurar outros metadados" -#: f.meta.cc:5455 +#: f.meta.cc:5442 msgid "Enter Search Tag" msgstr "Entre com a Etiqueta de Busca" -#: f.meta.cc:5737 +#: f.meta.cc:5724 #, c-format msgid "not a defined tag: %s" msgstr "não é etiqueta definida: %s" -#: f.meta.cc:5768 +#: f.meta.cc:5755 msgid "" "to remove images from current set, \n" "search current set" @@ -2913,7 +2873,7 @@ "para remover imagens da configuração atual, \n" "busque na configuração atual" -#: f.meta.cc:5775 +#: f.meta.cc:5762 msgid "" "to add images to current set, \n" "search all images" @@ -2921,7 +2881,7 @@ "para adicionar imagens à configuração atual, \n" "busque todas as imagens" -#: f.meta.cc:5820 +#: f.meta.cc:5807 #, c-format msgid "" "search dates not reasonable \n" @@ -2930,20 +2890,20 @@ "datas de procura não fazem sentido \n" " %s %s" -#: f.meta.cc:5838 +#: f.meta.cc:5825 msgid "stars range not reasonable" msgstr "varição de avaliação não é razoável" -#: f.meta.cc:6082 +#: f.meta.cc:6069 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "imagens adicionadas: %d removidas: %d nova contagem: %d" -#: f.meta.cc:6085 +#: f.meta.cc:6072 msgid "no changes made" msgstr "nenhuma mudança feita" -#: f.meta.cc:6237 +#: f.meta.cc:6224 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2951,47 +2911,52 @@ "Esses itens são sempre relatados: \n" "data, estrelas, etiquetas, legenda, comentário" -#: f.meta.cc:6261 +#: f.meta.cc:6249 msgid "Additional Items for Report" msgstr "Itens Adicionais para Relatar" -#: f.meta.cc:6267 +#: f.meta.cc:6256 msgid "Keyword" msgstr "Palavra chave" -#: f.meta.cc:6274 +#: f.meta.cc:6270 msgid "Match Criteria" msgstr "Equiparar Critério" -#: f.meta.cc:6519 +#: f.meta.cc:6366 +#, c-format +msgid "bad number: %s" +msgstr "número ruim: %s" + +#: f.meta.cc:6574 msgid "Report Geotag Groups" msgstr "Relatório de Grupos de Georreferências" -#: f.meta.cc:6520 +#: f.meta.cc:6575 msgid "Group by country" msgstr "Agrupar por país" -#: f.meta.cc:6521 -msgid "Group by country/city" -msgstr "Agrupar por país/cidade" - -#: f.meta.cc:6522 -msgid "Group by country/city/date" -msgstr "Agrupar por país/cidade/data" +#: f.meta.cc:6576 +msgid "Group by country/location" +msgstr "Agrupar por país/localização" + +#: f.meta.cc:6577 +msgid "Group by country/location/date" +msgstr "Agrupar por país/localização/data" -#: f.meta.cc:6525 +#: f.meta.cc:6580 msgid "Combine within" msgstr "Combinar interiormente" -#: f.meta.cc:6527 +#: f.meta.cc:6582 msgid "days" msgstr "dias" -#: f.meta.cc:6643 +#: f.meta.cc:6702 msgid "geotag groups" msgstr "grupos de georreferência" -#: f.meta.cc:7241 +#: f.meta.cc:7316 msgid "image index is missing" msgstr "índice de imagem faltando" @@ -3011,39 +2976,35 @@ msgid "Measure" msgstr "Mensurar" -#: f.repair.cc:1237 +#: f.repair.cc:1235 msgid "Noise Reduction" msgstr "Redução de ruído" -#: f.repair.cc:1258 -msgid "Flatten 1" -msgstr "Achatamento 1" - -#: f.repair.cc:1259 -msgid "Flatten 2" -msgstr "Achatamento 2" +#: f.repair.cc:1254 fotoxx.h:1131 +msgid "Flatten" +msgstr "Abrandar" -#: f.repair.cc:1260 +#: f.repair.cc:1255 msgid "Median" msgstr "Mediano" -#: f.repair.cc:1280 +#: f.repair.cc:1270 msgid "dark areas" msgstr "áreas escuras" -#: f.repair.cc:1282 +#: f.repair.cc:1272 msgid "all areas" msgstr "todas as áreas" -#: f.repair.cc:2174 +#: f.repair.cc:1868 msgid "Measure Noise" msgstr "Mensurar Ruído" -#: f.repair.cc:2175 +#: f.repair.cc:1869 msgid "Click on a monotone image area." msgstr "Clique em uma área monocórdica na imagem." -#: f.repair.cc:2338 +#: f.repair.cc:2032 msgid "" "1. Drag mouse to select. \n" "2. Erase. 3. Repeat. " @@ -3051,23 +3012,23 @@ "1. Arraste o mouse para selecionar. \n" "2. Apague. 3. Repita. " -#: f.repair.cc:2360 f.widgets.cc:485 +#: f.repair.cc:2054 f.widgets.cc:487 msgid "Smart Erase" msgstr "Apagador inteligente" -#: f.repair.cc:2365 fotoxx.h:1165 +#: f.repair.cc:2059 fotoxx.h:1166 msgid "Radius" msgstr "Raio" -#: f.repair.cc:2367 f.widgets.cc:483 +#: f.repair.cc:2061 f.widgets.cc:485 msgid "Blur" msgstr "Embaçar" -#: f.repair.cc:2370 +#: f.repair.cc:2064 msgid "New Area" msgstr "Nova Área" -#: f.repair.cc:2719 +#: f.repair.cc:2413 msgid "" "Method 1:\n" " Left-click on red-eye to darken.\n" @@ -3085,11 +3046,11 @@ "Retornar ao olho vermelho:\n" " Clique com o botão direito no olho vermelho." -#: f.repair.cc:2735 +#: f.repair.cc:2429 msgid "Red Eye Reduction" msgstr "Redução de olhos vermelhos" -#: f.repair.cc:3200 +#: f.repair.cc:2894 msgid "" "shift + left click: pick color or image position \n" "left click or drag: paint color or copy image \n" @@ -3099,39 +3060,39 @@ "clique esquerdo ou arrastar: cor da pintura ou copiar imagem \n" "clique direito ou arrastar: remover cor ou imagem" -#: f.repair.cc:3233 f.widgets.cc:487 +#: f.repair.cc:2927 f.widgets.cc:489 msgid "Paint/Clone" msgstr "Pintar Pixels" -#: f.repair.cc:3237 +#: f.repair.cc:2931 msgid "paint color" msgstr "cor da pintura" -#: f.repair.cc:3240 +#: f.repair.cc:2934 msgid "copy from image" msgstr "copiar da imagem" -#: f.repair.cc:3247 f.repair.cc:3837 +#: f.repair.cc:2941 f.repair.cc:3531 msgid "paintbrush radius" msgstr "raio do pincel" -#: f.repair.cc:3248 +#: f.repair.cc:2942 msgid "transparency center" msgstr "centro de transparência" -#: f.repair.cc:3249 +#: f.repair.cc:2943 msgid "transparency edge" msgstr "borda de transparência" -#: f.repair.cc:3256 f.repair.cc:3844 +#: f.repair.cc:2950 f.repair.cc:3538 msgid "gradual paint" msgstr "pintura gradual" -#: f.repair.cc:3257 +#: f.repair.cc:2951 msgid "paint over transparent areas" msgstr "pintar sobre áreas transparentes" -#: f.repair.cc:3797 +#: f.repair.cc:3491 msgid "" "left drag: add transparency \n" "right drag: add opacity" @@ -3139,224 +3100,224 @@ "arrasto com botão esquerdo: adiciona transparência \n" "arrasto com botão direito: adiciona opacidade" -#: f.repair.cc:3829 f.widgets.cc:488 +#: f.repair.cc:3523 f.widgets.cc:490 msgid "Paint Transparency" msgstr "Aplicar Transparência" -#: f.repair.cc:3838 +#: f.repair.cc:3532 msgid "strength center" msgstr "fortalecer centro" -#: f.repair.cc:3839 +#: f.repair.cc:3533 msgid "strength edge" msgstr "fortalecer borda" -#: f.repair.cc:4094 f.widgets.cc:489 +#: f.repair.cc:3788 f.widgets.cc:491 msgid "Add Transparency" msgstr "Adicionar Transparência" -#: f.repair.cc:4098 +#: f.repair.cc:3792 msgid "Match Brightness" msgstr "Combinar Brilho" -#: f.repair.cc:4103 +#: f.repair.cc:3797 msgid "Match Color" msgstr "Combinar Cor" -#: f.repair.cc:4105 +#: f.repair.cc:3799 msgid "click on image to select color" msgstr "clique na imagem para selecionar cor" -#: f.repair.cc:4108 f.repair.cc:5318 +#: f.repair.cc:3802 f.repair.cc:5012 msgid "Match using:" msgstr "Comparar usando:" -#: f.repair.cc:4114 f.repair.cc:5324 +#: f.repair.cc:3808 f.repair.cc:5018 msgid "Match Level:" msgstr "Nível de Correspondência:" -#: f.repair.cc:4121 +#: f.repair.cc:3815 msgid "Invert Match" msgstr "Inverter combinação" -#: f.repair.cc:4124 fotoxx.h:1190 +#: f.repair.cc:3818 fotoxx.h:1190 msgid "Transparency" msgstr "Transparência" -#: f.repair.cc:4386 f.widgets.cc:490 +#: f.repair.cc:4080 f.widgets.cc:492 msgid "Color Mode" msgstr "Modos de Cores" -#: f.repair.cc:4390 +#: f.repair.cc:4084 msgid "black/white positive" msgstr "preto/branco positivo" -#: f.repair.cc:4391 +#: f.repair.cc:4085 msgid "black/white negative" msgstr "preto/branco negativo" -#: f.repair.cc:4392 +#: f.repair.cc:4086 msgid "color positive" msgstr "cor positiva" -#: f.repair.cc:4393 +#: f.repair.cc:4087 msgid "color negative" msgstr "cor negativa" -#: f.repair.cc:4394 +#: f.repair.cc:4088 msgid "sepia" msgstr "sepia" -#: f.repair.cc:4574 f.widgets.cc:491 +#: f.repair.cc:4268 f.widgets.cc:493 msgid "Shift Colors" msgstr "Deslocar Cores" -#: f.repair.cc:4810 f.widgets.cc:492 +#: f.repair.cc:4504 f.widgets.cc:494 msgid "Color Saturation" msgstr "Saturação de Cor" -#: f.repair.cc:4998 +#: f.repair.cc:4692 msgid "+Brightness" msgstr "+Brilho" -#: f.repair.cc:4999 +#: f.repair.cc:4693 msgid "+Red -Cyan" msgstr "+Vermelho -Ciano" -#: f.repair.cc:5000 +#: f.repair.cc:4694 msgid "+Green -Magenta" msgstr "+Verde -Magenta" -#: f.repair.cc:5001 +#: f.repair.cc:4695 msgid "+Blue -Yellow" msgstr "+Azul -Amarelo" -#: f.repair.cc:5007 fotoxx.h:1167 +#: f.repair.cc:4701 fotoxx.h:1168 msgid "Red" msgstr "Vermelho" -#: f.repair.cc:5008 fotoxx.h:1132 +#: f.repair.cc:4702 fotoxx.h:1133 msgid "Green" msgstr "Verde" -#: f.repair.cc:5009 fotoxx.h:1102 +#: f.repair.cc:4703 fotoxx.h:1102 msgid "Blue" msgstr "Azul" -#: f.repair.cc:5313 +#: f.repair.cc:5007 msgid "Input color to match and adjust:" msgstr "Cor de Entrada a buscar e ajustar" -#: f.repair.cc:5315 +#: f.repair.cc:5009 msgid "shift+click on image to select color" msgstr "shift+clique na imagem para selecionar cor" -#: f.repair.cc:5319 +#: f.repair.cc:5013 msgid "Hue" msgstr "Matiz" -#: f.repair.cc:5320 f.repair.cc:5352 +#: f.repair.cc:5014 f.repair.cc:5046 msgid "Saturation" msgstr "Saturação" -#: f.repair.cc:5321 f.repair.cc:5353 +#: f.repair.cc:5015 f.repair.cc:5047 msgid "Lightness" msgstr "Luminosidade" -#: f.repair.cc:5331 +#: f.repair.cc:5025 msgid "Output Color" msgstr "Cor de Saída" -#: f.repair.cc:5351 +#: f.repair.cc:5045 msgid "Color Hue" msgstr "Matiz de Cor" -#: f.repair.cc:5354 +#: f.repair.cc:5048 msgid "Adjustment" msgstr "Ajuste" -#: f.repair.cc:5839 +#: f.repair.cc:5533 msgid "Ramp brightness across image" msgstr "Curva de Brilho sobre a imagem" -#: f.repair.cc:6163 f.tools.cc:2184 +#: f.repair.cc:5857 f.tools.cc:2192 msgid "Click image to select pixels." msgstr "Clique na imagem para selecionar pixels." -#: f.repair.cc:6194 +#: f.repair.cc:5888 msgid "Color Ramp" msgstr "Paleta de Cores" -#: f.repair.cc:6205 +#: f.repair.cc:5899 msgid "Metric:" msgstr "Métrica:" -#: f.repair.cc:6630 +#: f.repair.cc:6324 msgid "Color Match Images" msgstr "Imagens para mesclagem de cor" -#: f.repair.cc:6656 +#: f.repair.cc:6350 msgid "mouse radius for color sample" msgstr "raio do mouse para a amostra de cor" -#: f.repair.cc:6659 +#: f.repair.cc:6353 msgid "image for source color" msgstr "imagem para fonte de cor" -#: f.repair.cc:6661 +#: f.repair.cc:6355 msgid "click on image to get source color" msgstr "clique na imagem para obter a cor fonte" -#: f.repair.cc:6664 +#: f.repair.cc:6358 msgid "image to set matching color" msgstr "imagem para mesclagem de cor" -#: f.repair.cc:6666 +#: f.repair.cc:6360 msgid "click on image to set matching color" msgstr "clique na imagem para aplicar mesclagem de cor" -#: f.repair.cc:6727 +#: f.repair.cc:6421 msgid "select source image color first" msgstr "selecione imagem para fonte de cor primeiro" -#: f.repair.cc:6912 +#: f.repair.cc:6606 msgid "Change Color Profile" msgstr "Mudar Perfil de Cores" -#: f.repair.cc:6916 +#: f.repair.cc:6610 msgid "input profile" msgstr "perfil de entrada" -#: f.repair.cc:6920 +#: f.repair.cc:6614 msgid "output profile" msgstr "perfil de saída" -#: f.repair.cc:6936 +#: f.repair.cc:6630 msgid "color profile" msgstr "perfil de cor" -#: f.repair.cc:6982 f.repair.cc:6988 +#: f.repair.cc:6676 f.repair.cc:6682 #, c-format msgid "unknown cms profile %s" msgstr "perfil cms desconhecido %s" -#: f.repair.cc:7120 f.widgets.cc:499 +#: f.repair.cc:6814 f.widgets.cc:501 msgid "Remove Dust" msgstr "Remover Sujeira" -#: f.repair.cc:7124 +#: f.repair.cc:6818 msgid "spot size limit" msgstr "limite de tamanho de mancha" -#: f.repair.cc:7127 +#: f.repair.cc:6821 msgid "max. brightness" msgstr "brilho máximo" -#: f.repair.cc:7130 +#: f.repair.cc:6824 msgid "min. contrast" msgstr "contraste mínimo" -#: f.repair.cc:7904 +#: f.repair.cc:7598 msgid "" " Adjust each RGB color to minimize \n" " color fringes at the image extremes. " @@ -3364,35 +3325,35 @@ " Ajustar cada cor RGB para minimizar \n" " franjas púrpuras nas extremidades da imagem. " -#: f.repair.cc:7927 f.widgets.cc:501 +#: f.repair.cc:7621 f.widgets.cc:503 msgid "Color Fringes" msgstr "Franjas Púrpuras" -#: f.repair.cc:8126 f.widgets.cc:502 +#: f.repair.cc:7820 f.widgets.cc:504 msgid "Stuck Pixels" msgstr "Pixels Presos" -#: f.repair.cc:8132 +#: f.repair.cc:7826 msgid "pixel group" msgstr "grupo de pixels" -#: f.repair.cc:8140 f.repair.cc:8208 +#: f.repair.cc:7834 f.repair.cc:7902 msgid "stuck pixels:" msgstr "pixels presos:" -#: f.repair.cc:8236 +#: f.repair.cc:7930 msgid "Load Stuck Pixels" msgstr "Carregar Pixels Presos" -#: f.repair.cc:8238 +#: f.repair.cc:7932 msgid "File:" msgstr "Arquivo:" -#: f.repair.cc:8263 f.repair.cc:8320 +#: f.repair.cc:7957 f.repair.cc:8014 msgid "Stuck Pixels file" msgstr "Arquvio de Pixels Presos" -#: f.repair.cc:8300 f.tools.cc:3656 +#: f.repair.cc:7994 f.tools.cc:3665 msgid "file format error" msgstr "erro de formato de arquivo" @@ -3422,7 +3383,7 @@ "A indexação é necessário para funções de busca e mapeamento \n" "e para tornar as páginas da galeria aceitavelmente ágeis." -#: f.tools.cc:106 f.widgets.cc:546 +#: f.tools.cc:106 f.widgets.cc:548 msgid "Index Image Files" msgstr "Arquivos de Índice de imagens" @@ -3521,172 +3482,172 @@ msgid "Image File" msgstr "Arquivo de Imagem" -#: f.tools.cc:964 f.widgets.cc:547 +#: f.tools.cc:965 f.widgets.cc:549 msgid "User Options" msgstr "Opções de Usuário" -#: f.tools.cc:967 +#: f.tools.cc:968 msgid "Startup Display" msgstr "Exibição Inicial" -#: f.tools.cc:978 +#: f.tools.cc:979 msgid "Menu Style" msgstr "Estilo de Menu" -#: f.tools.cc:979 +#: f.tools.cc:980 msgid "Icons" msgstr "Ícones" -#: f.tools.cc:980 +#: f.tools.cc:981 msgid "Icons + Text" msgstr "Ícones + Texto" -#: f.tools.cc:982 +#: f.tools.cc:983 msgid "Icon size" msgstr "Tamanho de ícone" #: f.tools.cc:987 +msgid "Window background color" +msgstr "Cor de fundo da janela" + +#: f.tools.cc:992 msgid "alphabetic" msgstr "alfabética" -#: f.tools.cc:988 +#: f.tools.cc:993 msgid "file mod date" msgstr "data de alteração do arquivo" -#: f.tools.cc:989 +#: f.tools.cc:994 msgid "photo date" msgstr "data da foto" -#: f.tools.cc:992 +#: f.tools.cc:997 msgid "Dialog font and size" msgstr "Tamanho de fonte da caixa de Diálogo" -#: f.tools.cc:997 +#: f.tools.cc:1002 msgid "Image Pan/scroll:" msgstr "Deslocamento de Imagem Horizontal:" -#: f.tools.cc:1000 +#: f.tools.cc:1005 msgid "Zooms for 2x" msgstr "Zoom para 2x" -#: f.tools.cc:1009 +#: f.tools.cc:1014 msgid "JPEG save quality" msgstr "Qualidade para JPEG" -#: f.tools.cc:1016 +#: f.tools.cc:1021 msgid "Curve node capture distance" msgstr "Distância de captura de nó da curva" -#: f.tools.cc:1020 +#: f.tools.cc:1025 msgid "Map marker size" msgstr "Tamanho do marcador de mapa" -#: f.tools.cc:1024 +#: f.tools.cc:1029 msgid "show hidden directories in gallery view" msgstr "mostrar diretórios ocultos na visão de galeria" -#: f.tools.cc:1027 +#: f.tools.cc:1032 msgid "prev/next shows last file version only" msgstr "prox./ant. mostra apenas a última versão do arquivo" -#: f.tools.cc:1030 +#: f.tools.cc:1035 msgid "shift image to right margin" msgstr "deslocar imagem para margem direita" -#: f.tools.cc:1033 -msgid "RAW command" -msgstr "comando RAW" - -#: f.tools.cc:1037 +#: f.tools.cc:1038 msgid "RAW file types" msgstr "Tipos de arquivos RAW" -#: f.tools.cc:1128 +#: f.tools.cc:1133 msgid "Delete present thumbnails to make effective" msgstr "Excluir miniaturas presentes para efetivar" -#: f.tools.cc:1150 +#: f.tools.cc:1155 msgid "Select startup directory" msgstr "Selecionar diretório de inicialização" -#: f.tools.cc:1157 +#: f.tools.cc:1162 msgid "Select startup image file" msgstr "Selecionar arquivo de imagem inicial" -#: f.tools.cc:1194 +#: f.tools.cc:1199 msgid "startup directory is invalid" msgstr "diretório de iniciação é inválido" -#: f.tools.cc:1205 +#: f.tools.cc:1210 msgid "startup file is invalid" msgstr "arquivo de iniação é inválido" -#: f.tools.cc:1332 f.widgets.cc:548 +#: f.tools.cc:1340 f.widgets.cc:550 msgid "Keyboard Shortcuts" msgstr "Teclas de Atalho" -#: f.tools.cc:1404 +#: f.tools.cc:1412 msgid "Edit KB Shortcuts" msgstr "Editar Atalhos" -#: f.tools.cc:1409 +#: f.tools.cc:1417 msgid "shortcut key:" msgstr "tecla de atalho:" -#: f.tools.cc:1410 +#: f.tools.cc:1418 msgid "(enter key)" msgstr "(tecla enter)" -#: f.tools.cc:1536 +#: f.tools.cc:1544 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Reservado, não pode ser usado" -#: f.tools.cc:1669 +#: f.tools.cc:1677 msgid "unable to save KB-shortcuts file" msgstr "incapaz de salvar arquivo de atalhos do teclado" -#: f.tools.cc:1973 f.widgets.cc:550 +#: f.tools.cc:1981 f.widgets.cc:552 msgid "Grid Lines" msgstr "Linhas de grade" -#: f.tools.cc:1982 +#: f.tools.cc:1990 msgid "x-spacing" msgstr "espaçamento-x" -#: f.tools.cc:1983 +#: f.tools.cc:1991 msgid "x-count" msgstr "contagem-x" -#: f.tools.cc:1984 +#: f.tools.cc:1992 msgid "x-enable" msgstr "x-habilitado" -#: f.tools.cc:1990 +#: f.tools.cc:1998 msgid "y-spacing" msgstr "espaçamento-y" -#: f.tools.cc:1991 +#: f.tools.cc:1999 msgid "y-count" msgstr "contagem-y" -#: f.tools.cc:1992 +#: f.tools.cc:2000 msgid "y-enable" msgstr "y-habilitado" -#: f.tools.cc:2112 f.tools.cc:2117 f.widgets.cc:551 +#: f.tools.cc:2120 f.tools.cc:2125 f.widgets.cc:553 msgid "Line Color" msgstr "Cor da linha" -#: f.tools.cc:2114 +#: f.tools.cc:2122 msgid "Area Color" msgstr "Cor da área" -#: f.tools.cc:2219 f.widgets.cc:552 +#: f.tools.cc:2227 f.widgets.cc:554 msgid "Show RGB" msgstr "Mostrar RGB" -#: f.tools.cc:2509 +#: f.tools.cc:2518 msgid "" "Drag mouse on image. \n" "Left click to cancel. \n" @@ -3696,27 +3657,27 @@ "Clique com botão esquerdo para cancelar. \n" "Tecla X alterna a caixa de diálogo." -#: f.tools.cc:2535 f.widgets.cc:553 +#: f.tools.cc:2544 f.widgets.cc:555 msgid "Magnify Image" msgstr "Ampliar Imagens" -#: f.tools.cc:2544 +#: f.tools.cc:2553 msgid "X-size" msgstr "Tamanho-X" -#: f.tools.cc:2789 +#: f.tools.cc:2798 msgid "Darkest and Brightest Pixels" msgstr "Pixels mais Escuros e Brilhantes" -#: f.tools.cc:2812 +#: f.tools.cc:2821 msgid "Dark Limit" msgstr "Limite Escuro" -#: f.tools.cc:2813 +#: f.tools.cc:2822 msgid "Bright Limit" msgstr "Limite Claro" -#: f.tools.cc:2908 +#: f.tools.cc:2917 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3724,43 +3685,43 @@ "Brilho deveria mostrar uma inclinação gradual \n" "estendendo-se até as bordas." -#: f.tools.cc:3004 f.widgets.cc:556 +#: f.tools.cc:3013 f.widgets.cc:558 msgid "Monitor Gamma" msgstr "Monitor Gamma" -#: f.tools.cc:3064 +#: f.tools.cc:3073 msgid "Available Translations" msgstr "Traduções disponíveis" -#: f.tools.cc:3068 +#: f.tools.cc:3077 msgid "Set Language" msgstr "Configurar língua" -#: f.tools.cc:3206 f.widgets.cc:559 +#: f.tools.cc:3215 f.widgets.cc:561 msgid "Calibrate Printer" msgstr "Calibrar Impressora" -#: f.tools.cc:3231 +#: f.tools.cc:3240 msgid "print color chart" msgstr "imprimir gráfico de cores" -#: f.tools.cc:3232 +#: f.tools.cc:3241 msgid "scan and save color chart" msgstr "digitalizar e salvar gráfico de cores" -#: f.tools.cc:3233 +#: f.tools.cc:3242 msgid "align and trim color chart" msgstr "alinhar e aparar gráfico de cores" -#: f.tools.cc:3234 +#: f.tools.cc:3243 msgid "open and process color chart" msgstr "abrir e processar gráfico de cores" -#: f.tools.cc:3235 +#: f.tools.cc:3244 msgid "print image with revised colors" msgstr "imprimir imagem com cores revisadas" -#: f.tools.cc:3378 +#: f.tools.cc:3387 #, c-format msgid "" "Scan the printed color chart. \n" @@ -3771,7 +3732,7 @@ "A fileira mais escura está no topo. \n" "Salvar em %s/" -#: f.tools.cc:3393 +#: f.tools.cc:3402 msgid "" "Open and edit the scanned color chart file. \n" "Remove any skew or rotation from scanning. \n" @@ -3783,11 +3744,11 @@ "(Utilize a função Corrigir Perspectiva para isso). \n" "Corte retirando a margem verde e fina PRECISAMENTE." -#: f.tools.cc:3425 +#: f.tools.cc:3434 msgid "Open the trimmed color chart file" msgstr "Abrir arquivo de gráfico de cores aparado" -#: f.tools.cc:3558 +#: f.tools.cc:3567 msgid "" "Set the name for the output calibration file \n" "[your calibration name].dat" @@ -3795,19 +3756,19 @@ "Insira o nome para o arquivo de saída de calibração \n" "[seu nome para calibração].dat" -#: f.tools.cc:3598 +#: f.tools.cc:3607 msgid "Color map file to use" msgstr "Arquivo de mapa de cores a usar" -#: f.tools.cc:3615 +#: f.tools.cc:3624 msgid "Select the image file to print." msgstr "Selecione o arquivo de imagem para imprimir." -#: f.tools.cc:3680 +#: f.tools.cc:3689 msgid "converting colors..." msgstr "convertendo cores..." -#: f.tools.cc:3780 +#: f.tools.cc:3789 msgid "Image colors are converted for printing." msgstr "Cores da imagem foram convertidas para impressão." @@ -3982,566 +3943,570 @@ msgid "Open a newly added file" msgstr "Abrir arquivo adicionado recentemente" -#: f.widgets.cc:231 f.widgets.cc:232 +#: f.widgets.cc:231 msgid "Open and edit a camera RAW file" msgstr "Abrir e editar um arquivo RAW da câmera" -#: f.widgets.cc:233 +#: f.widgets.cc:232 msgid "Change the image file name" msgstr "Mudar nome do arquivo" -#: f.widgets.cc:234 +#: f.widgets.cc:233 msgid "Copy or Move an image file to a new location" msgstr "Copiar ou Mover um arquivo de imagem para uma nova localidade" -#: f.widgets.cc:235 +#: f.widgets.cc:234 msgid "Create a blank image" msgstr "Criar uma imagem em branco" -#: f.widgets.cc:236 +#: f.widgets.cc:235 msgid "Delete or trash image file" msgstr "Excluir ou descartar arquivo de imagem" -#: f.widgets.cc:237 +#: f.widgets.cc:236 msgid "Print the current image" msgstr "Imprimir imagem atual" -#: f.widgets.cc:238 +#: f.widgets.cc:237 msgid "Print current image with adjusted colors" msgstr "Imprimir imagem atual com cores ajustadas" -#: f.widgets.cc:239 f.widgets.cc:434 +#: f.widgets.cc:238 f.widgets.cc:434 msgid "Quit Fotoxx" msgstr "Fechar Fotoxx" -#: f.widgets.cc:242 +#: f.widgets.cc:241 msgid "List a few key metadata items" msgstr "Listar poucos ítens de metadados chave" -#: f.widgets.cc:243 +#: f.widgets.cc:242 msgid "List all metadata items" msgstr "Listar todos ítens de metadados" -#: f.widgets.cc:244 +#: f.widgets.cc:243 msgid "(Toggle) show captions and comments" msgstr "(Comutativo) mostrar legendas e comentários" -#: f.widgets.cc:245 +#: f.widgets.cc:244 msgid "Edit image tags/geotags/caption/rating ..." msgstr "Editar etiquetas de imagem/georreferências/legendas/avaliações ..." -#: f.widgets.cc:246 +#: f.widgets.cc:245 msgid "Edit any image metadata" msgstr "Edita qualquer metadados de uma imagem" -#: f.widgets.cc:247 +#: f.widgets.cc:246 msgid "Remove all metadata from an image" msgstr "Remover todos metadados de uma imagem" -#: f.widgets.cc:248 +#: f.widgets.cc:247 msgid "Add/remove tags for multiple images" msgstr "Adicionar/remover etiquetas para múltiplas imagens" -#: f.widgets.cc:249 +#: f.widgets.cc:248 msgid "Convert tag names for all images" msgstr "Converter nome de etiqueta para todas as imagens" -#: f.widgets.cc:250 +#: f.widgets.cc:249 msgid "Add/change/delete metadata for multiple images" msgstr "Adicionar/Mudar/Excluir metadados em várias imagens" -#: f.widgets.cc:251 +#: f.widgets.cc:250 msgid "Report metadata for multiple images" msgstr "Relatório de metadados para várias imagens" -#: f.widgets.cc:252 +#: f.widgets.cc:251 msgid "Add/revise geotags for multiple images" msgstr "Adicionar/Revisar georeferências para várias imagens" -#: f.widgets.cc:257 +#: f.widgets.cc:256 msgid "Select object or area for editing" msgstr "Selecionar objeto ou área para edição" +#: f.widgets.cc:257 +msgid "Find a gap in an area outline" +msgstr "Procurar lacuna em área de contorno" + #: f.widgets.cc:258 +msgid "Select hairy or irregular edge" +msgstr "Selecione contorno irregular ou felpudo" + +#: f.widgets.cc:259 msgid "Show (outline) existing area" msgstr "Mostrar (traçado) de área existente" -#: f.widgets.cc:259 +#: f.widgets.cc:260 msgid "Hide existing area" msgstr "Esconder área existente" -#: f.widgets.cc:260 +#: f.widgets.cc:261 msgid "Enable area for editing" msgstr "Habilitar área para edição" -#: f.widgets.cc:261 +#: f.widgets.cc:262 msgid "Disable area for editing" msgstr "Desabilitar área para edição" -#: f.widgets.cc:262 +#: f.widgets.cc:263 msgid "Reverse existing area" msgstr "Inverter área existente" -#: f.widgets.cc:263 +#: f.widgets.cc:264 msgid "Erase existing area" msgstr "Apagar área existente" -#: f.widgets.cc:264 +#: f.widgets.cc:265 msgid "Copy area for later pasting into image" msgstr "Copiar área para posterior colagem em imagem" -#: f.widgets.cc:265 -msgid "Paste previously copied area into image" -msgstr "Colar área previamente copiada em imagem" - #: f.widgets.cc:266 +msgid "Save area to a file with transparency" +msgstr "Salvar área em arquivo com transparência" + +#: f.widgets.cc:267 msgid "Open a file and paste as area into image" msgstr "Abrir um arquivo e colar como área na imagem" -#: f.widgets.cc:267 -msgid "Save area to a file with transparency" -msgstr "Salvar área em arquivo com transparência" +#: f.widgets.cc:268 +msgid "Paste previously copied area into image" +msgstr "Colar área previamente copiada em imagem" -#: f.widgets.cc:270 +#: f.widgets.cc:271 msgid "Trim/Crop margins and/or Rotate" msgstr "Recortar/Aparar margens e/ou Rodar" -#: f.widgets.cc:271 +#: f.widgets.cc:272 msgid "Upright a rotated image" msgstr "Orientar imagem rotacionada" -#: f.widgets.cc:272 f.widgets.cc:273 +#: f.widgets.cc:273 f.widgets.cc:274 msgid "Fast auto enhance that may work OK" msgstr "Realce automático rápido que deve funcionar bem" -#: f.widgets.cc:274 +#: f.widgets.cc:275 msgid "Adjust brightness, contrast, color" msgstr "Ajusta brilho, contraste, cor" -#: f.widgets.cc:275 +#: f.widgets.cc:276 msgid "Add local contrast, enhance details" msgstr "Adicionar contraste local, realçar detalhes" -#: f.widgets.cc:276 +#: f.widgets.cc:277 msgid "Edit brightness distribution" msgstr "Editar distribuição de brilho" -#: f.widgets.cc:277 +#: f.widgets.cc:278 msgid "Flatten zonal brightness distribution" msgstr "Achatar distribuição de brilho zonal" -#: f.widgets.cc:278 +#: f.widgets.cc:279 msgid "Change pixel dimensions" msgstr "Mudar dimensões de pixel" -#: f.widgets.cc:279 +#: f.widgets.cc:280 msgid "Mirror image horizontally or vertically" msgstr "Espelhar imagem horizontalmente ou verticalmente" -#: f.widgets.cc:280 +#: f.widgets.cc:281 msgid "Write text on image" msgstr "Escrever texto em imagem" -#: f.widgets.cc:281 +#: f.widgets.cc:282 msgid "Write lines or arrows on image" msgstr "Gravar linhas ou setas na imagem" -#: f.widgets.cc:282 +#: f.widgets.cc:283 msgid "Fix brightness uniformity across image" msgstr "Corrigir uniformidade de brilho por toda imagem" -#: f.widgets.cc:283 +#: f.widgets.cc:284 msgid "Paint edit function gradually with mouse" msgstr "Função de pintura gradual com o mouse" -#: f.widgets.cc:284 +#: f.widgets.cc:285 msgid "Leverage edits by brightness or color" msgstr "Influenciar edições por brilho ou cor" -#: f.widgets.cc:285 +#: f.widgets.cc:286 msgid "Edit plugins menu or run a plugin function" msgstr "Editar menu de plugins ou executar uma função de plugin" -#: f.widgets.cc:288 +#: f.widgets.cc:289 msgid "Make the image look sharper" msgstr "Tornar a imagem mais nítida" -#: f.widgets.cc:289 +#: f.widgets.cc:290 msgid "Make the image look fuzzy" msgstr "Deixam a imagem difusa" -#: f.widgets.cc:290 +#: f.widgets.cc:291 msgid "Filter noise from low-light photos" msgstr "Filtrar ruído de fotos com pouca luz" -#: f.widgets.cc:291 +#: f.widgets.cc:292 msgid "Remove unwanted objects" msgstr "Remover objetos indesejados" -#: f.widgets.cc:292 +#: f.widgets.cc:293 msgid "Fix red-eyes from electronic flash" msgstr "Corrigir olhos vermelhos por flash eletrônico" -#: f.widgets.cc:293 +#: f.widgets.cc:294 msgid "Paint image pixels using the mouse" msgstr "Pintar pixels de imagem utilizando o mouse" -#: f.widgets.cc:294 +#: f.widgets.cc:295 msgid "Paint image transparency using the mouse" msgstr "Aplicar transparência de imagem usando o mouse" -#: f.widgets.cc:295 +#: f.widgets.cc:296 msgid "Add image transparency based on image attributes" msgstr "Adicionar transparência baseando-se em atributos da imagem" -#: f.widgets.cc:296 +#: f.widgets.cc:297 msgid "Make BW/color, negative/positive, sepia" msgstr "Fazer PB/colorido, negativo/positivo, sepia" -#: f.widgets.cc:297 +#: f.widgets.cc:298 msgid "Shift/convert colors into other colors" msgstr "Deslocar/converter cores em outras" -#: f.widgets.cc:298 +#: f.widgets.cc:299 msgid "Adjust color intensity (saturation)" msgstr "Ajustar intensidade de cor (saturação)" -#: f.widgets.cc:299 +#: f.widgets.cc:300 msgid "Adjust color using RGB or CMY colors" msgstr "Ajustar cor usando cores RGB ou CMY" -#: f.widgets.cc:300 +#: f.widgets.cc:301 msgid "Adjust color using HSL colors" msgstr "Ajustar cor usando cores HSL" -#: f.widgets.cc:301 +#: f.widgets.cc:302 msgid "Adjust color in selected image areas" msgstr "Ajustar cor em áreas selecionadas da imagem" -#: f.widgets.cc:302 +#: f.widgets.cc:303 msgid "Match colors on one image with another" msgstr "Equiparar cores de uma imagem com outra" -#: f.widgets.cc:303 +#: f.widgets.cc:304 msgid "Convert to another color profile" msgstr "Converter para outro perfil de cores" -#: f.widgets.cc:304 +#: f.widgets.cc:305 msgid "Remove dust spots from scanned slides" msgstr "Remover pontos de sujeira de digitalizações" -#: f.widgets.cc:305 +#: f.widgets.cc:306 msgid "Smoothen edges with jaggies" msgstr "Suavisar contornos irregulares" -#: f.widgets.cc:306 +#: f.widgets.cc:307 msgid "Reduce Chromatic Abberation" msgstr "Reduzir Aberrações Cromáticas" -#: f.widgets.cc:307 +#: f.widgets.cc:308 msgid "Erase known hot and dark pixels" msgstr "Apagar pixels quentes ou escuros conhecidos" -#: f.widgets.cc:310 +#: f.widgets.cc:311 msgid "Remove curvature, esp. panoramas" msgstr "Remover curvatura, esp. panoramas" -#: f.widgets.cc:311 +#: f.widgets.cc:312 msgid "Straighten objects seen from an angle" msgstr "Endireitar objetos vistos a um ângulo" -#: f.widgets.cc:312 +#: f.widgets.cc:313 msgid "Distort image areas using the mouse" msgstr "Distorcer as áreas da imagem usando o mouse" -#: f.widgets.cc:313 f.widgets.cc:314 f.widgets.cc:315 +#: f.widgets.cc:314 f.widgets.cc:315 f.widgets.cc:316 msgid "Distort the whole image using the mouse" msgstr "Distorcer toda a imagem utilizando o mouse" -#: f.widgets.cc:316 +#: f.widgets.cc:317 msgid "Flatten a photographed book page" msgstr "Achatar uma página fotografada de um book" -#: f.widgets.cc:317 +#: f.widgets.cc:318 msgid "Make a spherical projection of an image" msgstr "Criar uma projeção esférica de uma imagem" -#: f.widgets.cc:318 +#: f.widgets.cc:319 msgid "Rescale image outside selected areas" msgstr "Redimensionar imagem por fora de áreas selecionadas" -#: f.widgets.cc:321 +#: f.widgets.cc:322 msgid "Reduce color depth (posterize)" msgstr "Reduzir profundidade de cor (posterizar)" -#: f.widgets.cc:322 +#: f.widgets.cc:323 msgid "Convert to pencil sketch" msgstr "Converter para esboço a lápis" -#: f.widgets.cc:323 +#: f.widgets.cc:324 msgid "Convert image into a cartoon drawing" msgstr "Converter imagem em um desenho cartoon" -#: f.widgets.cc:324 +#: f.widgets.cc:325 msgid "Convert to line drawing (edge detection)" msgstr "Converter para desenho de contorno (detecção de borda)" -#: f.widgets.cc:325 +#: f.widgets.cc:326 msgid "Convert to solid color drawing" msgstr "Converter em desenho de cor sólida" -#: f.widgets.cc:326 +#: f.widgets.cc:327 msgid "Graduated Blur depending on contrast" msgstr "Desfoque Graduado dependente do contraste" -#: f.widgets.cc:327 +#: f.widgets.cc:328 msgid "Create an embossed or 3D appearance" msgstr "Criar relevo ou aparência de 3D" -#: f.widgets.cc:328 +#: f.widgets.cc:329 msgid "Convert to square tiles" msgstr "Converter para ladrilhos quadrados" -#: f.widgets.cc:329 +#: f.widgets.cc:330 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Converter para pontos (efeito Roy Lichtenstein)" -#: f.widgets.cc:330 +#: f.widgets.cc:331 msgid "Convert into a simulated painting" msgstr "Converter em uma pintura simulada" -#: f.widgets.cc:331 +#: f.widgets.cc:332 msgid "Change brightness or color radially" msgstr "Alterar o brilho ou cor radialmente" -#: f.widgets.cc:332 +#: f.widgets.cc:333 msgid "Add texture to an image" msgstr "Adicionar textura a uma imagem" -#: f.widgets.cc:333 +#: f.widgets.cc:334 msgid "Tile image with a repeating pattern" msgstr "Ladrilhar imagem com um padrão repetitivo" -#: f.widgets.cc:334 +#: f.widgets.cc:335 msgid "Create a mosaic with tiles made from all images" msgstr "Criar um mosaico com ladrilhos feitos de todas as imagens" -#: f.widgets.cc:335 +#: f.widgets.cc:336 msgid "Process an image using a custom kernel" msgstr "Processar uma imagem usando um núcleo customizado" -#: f.widgets.cc:336 +#: f.widgets.cc:337 msgid "Warp an image with a wave pattern" msgstr "Distorce uma imagem com um padrão de onda" -#: f.widgets.cc:337 +#: f.widgets.cc:338 msgid "Blur an image in the direction of mouse drags" msgstr "Desfocar uma imagem na direção dos arrastes com o mouse" -#: f.widgets.cc:338 +#: f.widgets.cc:339 msgid "Increasing blur with distance from selected areas" msgstr "Intensificar desfoque com a distância de áreas selecionadas" -#: f.widgets.cc:341 +#: f.widgets.cc:342 msgid "Combine bright/dark images for better detail" msgstr "Combine imagens claras/escuras para melhores detalhes" -#: f.widgets.cc:342 +#: f.widgets.cc:343 msgid "Combine near/far focus images for deeper focus" msgstr "Combinar imagens de foco perto/longe para foco profundo" -#: f.widgets.cc:343 +#: f.widgets.cc:344 msgid "Combine images to erase passing people, etc." msgstr "Combinar imagens para apagar pessoas que passam, etc" -#: f.widgets.cc:344 +#: f.widgets.cc:345 msgid "Combine noisy images into a low-noise image" msgstr "Combinar imagens cheias de ruído em uma imagem com baixo ruído" -#: f.widgets.cc:345 +#: f.widgets.cc:346 msgid "Combine images into a panorama" msgstr "Combinar imagens em um panorama" -#: f.widgets.cc:346 +#: f.widgets.cc:347 msgid "Combine images into a vertical panorama" msgstr "Combinar imagens em um panorama vertical" -#: f.widgets.cc:347 +#: f.widgets.cc:348 msgid "Combine images into a panorama (panorama tools)" msgstr "Combinar imagens em um panorama (panorama tools)" -#: f.widgets.cc:348 +#: f.widgets.cc:349 msgid "Arrange images and text in a layout (montage)" msgstr "Arranjar imagens e texto em um leiaute (montagem)" -#: f.widgets.cc:351 +#: f.widgets.cc:352 msgid "Index new files and make thumbnails" msgstr "Indexar novos arquivos gerar miniaturas" -#: f.widgets.cc:352 +#: f.widgets.cc:353 msgid "Change user preferences" msgstr "Mudar preferências de usuário" -#: f.widgets.cc:353 +#: f.widgets.cc:354 msgid "Change Keyboard Shortcut Keys" msgstr "Mudar Atalhos de Teclado" -#: f.widgets.cc:354 +#: f.widgets.cc:355 msgid "Show a brightness distribution graph" msgstr "Mostrar gráfico de distribuição de brilho" -#: f.widgets.cc:355 +#: f.widgets.cc:356 msgid "Show or revise grid lines" msgstr "Mostrar ou corrigir linhas de grade" -#: f.widgets.cc:356 +#: f.widgets.cc:357 msgid "Change color of foreground lines" msgstr "Mudar cor de linhas de primeiro plano" -#: f.widgets.cc:357 +#: f.widgets.cc:358 msgid "Show RGB colors at mouse click" msgstr "Mostrar cores RGB ao clique do mouse" -#: f.widgets.cc:358 +#: f.widgets.cc:359 msgid "Magnify image around the mouse position" msgstr "Ampliar imagem em torno da posição do mouse" -#: f.widgets.cc:359 +#: f.widgets.cc:360 msgid "Highlight darkest and brightest pixels" msgstr "Destacar pixels mais escuros e mais brilhantes" -#: f.widgets.cc:360 +#: f.widgets.cc:361 msgid "Chart to adjust monitor color" msgstr "Gráfico para ajustar cores do monitor" -#: f.widgets.cc:361 +#: f.widgets.cc:362 msgid "Chart to adjust monitor gamma" msgstr "Gráfico para ajustar gama do monitor" -#: f.widgets.cc:362 +#: f.widgets.cc:363 msgid "Change the GUI language" msgstr "Mudar a língua da GUI" -#: f.widgets.cc:363 +#: f.widgets.cc:364 msgid "Report missing translations" msgstr "Relatar tradução em falta" -#: f.widgets.cc:364 +#: f.widgets.cc:365 msgid "Calibrate printer colors" msgstr "Calibrar cores de impressora" -#: f.widgets.cc:365 +#: f.widgets.cc:366 msgid "Memory and CPU (to terminal/logfile)" msgstr "Memória e CPU (para terminal/arquivo log)" -#: f.widgets.cc:369 +#: f.widgets.cc:370 msgid "Rename/convert/resize/move multiple files" msgstr "Renomear/converter/redimensionar/mover vários arquivos" -#: f.widgets.cc:370 +#: f.widgets.cc:371 msgid "Upright multiple rotated image files" msgstr "Orientar múltiplos arquivos de imagem rotacionados" -#: f.widgets.cc:371 +#: f.widgets.cc:372 msgid "Delete or Trash multiple files" msgstr "Excluir ou Remover vários arquivos" -#: f.widgets.cc:372 -msgid "Convert camera RAW files using DCraw" -msgstr "Converter arquivos RAW da camera usando o DCRaw" - #: f.widgets.cc:373 +msgid "Convert camera RAW files using libraw" +msgstr "Converter arquivos RAW da camera usando o libraw" + +#: f.widgets.cc:374 msgid "Convert camera RAW files using Raw Therapee" msgstr "Converter arquivos RAW da camera usando o Raw Therapee" -#: f.widgets.cc:374 +#: f.widgets.cc:375 msgid "Build and run edit script files" msgstr "Criar, editar e executar arquivo de rotina" -#: f.widgets.cc:375 +#: f.widgets.cc:376 msgid "Burn selected image files to DVD/BlueRay disc" msgstr "Gravar arquivos de imagens selecionadas em disco DVD/BluRay" -#: f.widgets.cc:376 +#: f.widgets.cc:377 msgid "Search all image files and report duplicates" msgstr "Procurar em todas os arquivos de imagem e relatar duplicidades" -#: f.widgets.cc:381 +#: f.widgets.cc:382 msgid "Quick Start mini-guide" msgstr "Mini-guia resumido" -#: f.widgets.cc:382 +#: f.widgets.cc:383 msgid "Read the user guide" msgstr "Leia o Guia de Usuários" -#: f.widgets.cc:383 +#: f.widgets.cc:384 msgid "Recent user guide changes" msgstr "Mudanças recentes no Guia de Usuários" -#: f.widgets.cc:384 +#: f.widgets.cc:385 msgid "Summary of image edit functions" msgstr "Resumo das funções de edição de imagem" -#: f.widgets.cc:385 +#: f.widgets.cc:386 msgid "Technical installation notes" msgstr "Notas técnicas da instalação do Fotoxx" -#: f.widgets.cc:386 +#: f.widgets.cc:387 msgid "List updates by Fotoxx version" msgstr "Listar atualizações por versão do Fotoxx" -#: f.widgets.cc:387 +#: f.widgets.cc:388 msgid "View the log file and error messages" msgstr "Ver arquivo de log e mensagens de erro" -#: f.widgets.cc:388 +#: f.widgets.cc:389 msgid "How to do Fotoxx translations" msgstr "Como fazer traduções para o Fotoxx" -#: f.widgets.cc:389 +#: f.widgets.cc:390 msgid "Show the Fotoxx web page" msgstr "Mostrar a página do Fotoxx na web" -#: f.widgets.cc:390 +#: f.widgets.cc:391 msgid "Version, license, contact, credits" msgstr "Versão, licença, contato, créditos" -#: f.widgets.cc:393 +#: f.widgets.cc:394 msgid "Organize images into albums" msgstr "Organizar imagens em Álbuns" -#: f.widgets.cc:394 +#: f.widgets.cc:395 msgid "Start a slide show" msgstr "Iniciar Apresentação de Slides" -#: f.widgets.cc:395 +#: f.widgets.cc:396 msgid "Set desktop wallpaper from current Fotoxx image" msgstr "Configurar plano de fundo com a imagem atual no Fotoxx" -#: f.widgets.cc:396 +#: f.widgets.cc:397 msgid "Cycle desktop wallpaper from a Fotoxx album" msgstr "Criar rodízio de imagens a partir de álbum do Fotoxx" -#: f.widgets.cc:419 +#: f.widgets.cc:420 msgid "New Window" msgstr "Nova Janela" -#: f.widgets.cc:421 +#: f.widgets.cc:422 msgid "Recently Seen Images" msgstr "Imagens vistas recentemente" -#: f.widgets.cc:422 +#: f.widgets.cc:423 msgid "Newest Images" msgstr "Imagens mais Novas" -#: f.widgets.cc:424 +#: f.widgets.cc:425 msgid "Open Previous File" msgstr "Abrir arquivo anterior" -#: f.widgets.cc:425 -msgid "Open RAW (ufraw)" -msgstr "Abrir RAW (ufraw)" - #: f.widgets.cc:426 msgid "Open RAW (Raw Therapee)" msgstr "Abrir RAW (Raw Therapee)" @@ -4550,7 +4515,7 @@ msgid "New Blank Image" msgstr "Nova Imagem em Branco" -#: f.widgets.cc:429 f.widgets.cc:727 +#: f.widgets.cc:429 f.widgets.cc:729 msgid "Copy/Move to Location" msgstr "Copiar/Mover para Localidade" @@ -4566,7 +4531,7 @@ msgid "Print Calibrated Image" msgstr "Imprimir Imagem Calibrada" -#: f.widgets.cc:433 f.widgets.cc:585 +#: f.widgets.cc:433 f.widgets.cc:587 msgid "Set Desktop Wallpaper" msgstr "Configurar Plano de Fundo" @@ -4582,19 +4547,19 @@ msgid "Show Captions on Image" msgstr "Mostrar Legendas na Imagem" -#: f.widgets.cc:444 f.widgets.cc:575 +#: f.widgets.cc:444 f.widgets.cc:577 msgid "Batch Rename Tags" msgstr "Renomear Etiquetas em Lote" -#: f.widgets.cc:445 f.widgets.cc:576 +#: f.widgets.cc:445 f.widgets.cc:578 msgid "Batch Add/Change Metadata" msgstr "Adicionar/Modificar Metadados em Lote" -#: f.widgets.cc:448 f.widgets.cc:580 f.widgets.cc:658 f.widgets.cc:670 +#: f.widgets.cc:448 f.widgets.cc:582 f.widgets.cc:660 f.widgets.cc:672 msgid "Search Images" msgstr "Procurar Imagens" -#: f.widgets.cc:449 f.widgets.cc:579 f.widgets.cc:657 f.widgets.cc:669 +#: f.widgets.cc:449 f.widgets.cc:581 f.widgets.cc:659 f.widgets.cc:671 msgid "Images by Geotag" msgstr "Imagens por Georreferência" @@ -4602,359 +4567,359 @@ msgid "Select" msgstr "Selecionar" -#: f.widgets.cc:453 fotoxx.h:1183 +#: f.widgets.cc:453 +msgid "Find Gap" +msgstr "Busca Lacuna" + +#: f.widgets.cc:454 +msgid "Select Hairy" +msgstr "Seleção Irregular" + +#: f.widgets.cc:455 fotoxx.h:1183 msgid "Show" msgstr "Mostrar" -#: f.widgets.cc:454 fotoxx.h:1136 +#: f.widgets.cc:456 fotoxx.h:1137 msgid "Hide" msgstr "Ocultar" -#: f.widgets.cc:455 fotoxx.h:1123 +#: f.widgets.cc:457 fotoxx.h:1124 msgid "Enable" msgstr "Habilitar" -#: f.widgets.cc:456 fotoxx.h:1119 +#: f.widgets.cc:458 fotoxx.h:1120 msgid "Disable" msgstr "Desabilitar" -#: f.widgets.cc:457 fotoxx.h:1139 +#: f.widgets.cc:459 fotoxx.h:1140 msgid "Invert" msgstr "Inverter" -#: f.widgets.cc:458 fotoxx.h:1197 +#: f.widgets.cc:460 fotoxx.h:1197 msgid "Unselect" msgstr "Deselecionar" -#: f.widgets.cc:459 -msgid "Copy Area" -msgstr "Copiar Área" - -#: f.widgets.cc:460 +#: f.widgets.cc:462 msgid "Paste Area" msgstr "Colar Área" -#: f.widgets.cc:461 +#: f.widgets.cc:463 msgid "Open Area File" msgstr "Abrir Arquivo de Área" -#: f.widgets.cc:462 -msgid "Save Area File" -msgstr "Salvar Arquivo de Área" - -#: f.widgets.cc:467 +#: f.widgets.cc:469 msgid "Voodoo 1" msgstr "Voodoo 1" -#: f.widgets.cc:468 +#: f.widgets.cc:470 msgid "Voodoo 2" msgstr "Voodoo 2" -#: f.widgets.cc:470 f.widgets.cc:741 +#: f.widgets.cc:472 f.widgets.cc:743 msgid "Edit Brightness" msgstr "Editar Brilho" -#: f.widgets.cc:471 f.widgets.cc:742 +#: f.widgets.cc:473 f.widgets.cc:744 msgid "Zonal Flatten" msgstr "Achatamento Zonal" -#: f.widgets.cc:475 +#: f.widgets.cc:477 msgid "Add Text" msgstr "Escrever Texto" -#: f.widgets.cc:476 +#: f.widgets.cc:478 msgid "Add Lines" msgstr "Adicionar Linhas" -#: f.widgets.cc:479 +#: f.widgets.cc:481 msgid "Plugins" msgstr "Extensões" -#: f.widgets.cc:484 +#: f.widgets.cc:486 msgid "Denoise" msgstr "Reduzir ruído" -#: f.widgets.cc:486 +#: f.widgets.cc:488 msgid "Red Eyes" msgstr "Olhos vermelhos" -#: f.widgets.cc:493 +#: f.widgets.cc:495 msgid "Adjust RGB/CMY" msgstr "Ajustar RGB/CMY" -#: f.widgets.cc:494 +#: f.widgets.cc:496 msgid "Adjust HSL" msgstr "Ajustar HSL" -#: f.widgets.cc:495 +#: f.widgets.cc:497 msgid "Ramp Brightness" msgstr "Curva de Brilho" -#: f.widgets.cc:496 +#: f.widgets.cc:498 msgid "Ramp Color" msgstr "Curva de Cor" -#: f.widgets.cc:497 +#: f.widgets.cc:499 msgid "Match Colors" msgstr "Mesclar Cores" -#: f.widgets.cc:498 +#: f.widgets.cc:500 msgid "Color Profile" msgstr "Perfil de Cores" -#: f.widgets.cc:500 +#: f.widgets.cc:502 msgid "Anti-Alias" msgstr "Antisserrilhado" -#: f.widgets.cc:506 +#: f.widgets.cc:508 msgid "Fix Perspective" msgstr "Corrigdir perspectiva" -#: f.widgets.cc:511 +#: f.widgets.cc:513 msgid "Flatten Book Page" msgstr "Achatar Página de Book" -#: f.widgets.cc:516 +#: f.widgets.cc:518 msgid "Color Depth" msgstr "Resolução de cor" -#: f.widgets.cc:517 +#: f.widgets.cc:519 msgid "Sketch" msgstr "Esboço" -#: f.widgets.cc:518 +#: f.widgets.cc:520 msgid "Cartoon" msgstr "Cartoon" -#: f.widgets.cc:522 +#: f.widgets.cc:524 msgid "Embossing" msgstr "Alto-relevo" -#: f.widgets.cc:524 +#: f.widgets.cc:526 msgid "Dots" msgstr "Pontos" -#: f.widgets.cc:525 +#: f.widgets.cc:527 msgid "Painting" msgstr "Pintura" -#: f.widgets.cc:527 +#: f.widgets.cc:529 msgid "Texture" msgstr "Textura" -#: f.widgets.cc:529 +#: f.widgets.cc:531 msgid "Mosaic" msgstr "Mosaico" -#: f.widgets.cc:536 +#: f.widgets.cc:538 msgid "High Dynamic Range" msgstr "Grande Alcance Dinâmico (HDR)" -#: f.widgets.cc:537 +#: f.widgets.cc:539 msgid "High Depth of Field" msgstr "Alta Profundidade de Campo (HDF)" -#: f.widgets.cc:538 +#: f.widgets.cc:540 msgid "Stack/Paint" msgstr "Pilha/Pintura" -#: f.widgets.cc:539 +#: f.widgets.cc:541 msgid "Stack/Noise" msgstr "Pilha/Ruído" -#: f.widgets.cc:540 +#: f.widgets.cc:542 msgid "Panorama" msgstr "Panorama" -#: f.widgets.cc:541 +#: f.widgets.cc:543 msgid "Vertical Panorama" msgstr "Panorama Vertical" -#: f.widgets.cc:542 +#: f.widgets.cc:544 msgid "PT Panorama" msgstr "Panorama PT" -#: f.widgets.cc:543 +#: f.widgets.cc:545 msgid "Mashup" msgstr "Mistura" -#: f.widgets.cc:549 +#: f.widgets.cc:551 msgid "Brightness Graph" msgstr "Gráfico de Brilho" -#: f.widgets.cc:554 +#: f.widgets.cc:556 msgid "Dark/Bright Pixels" msgstr "Pixels Claros/Escuros" -#: f.widgets.cc:555 +#: f.widgets.cc:557 msgid "Monitor Color" msgstr "Cores do Monitor" -#: f.widgets.cc:557 +#: f.widgets.cc:559 msgid "Change Language" msgstr "Trocar língua" -#: f.widgets.cc:558 +#: f.widgets.cc:560 msgid "Missing Translations" msgstr "Traduções em falta" -#: f.widgets.cc:560 +#: f.widgets.cc:562 msgid "Resources" msgstr "Recursos" -#: f.widgets.cc:567 -msgid "Batch RAW (DCraw)" -msgstr "RAW em Lote (DCRaw)" +#: f.widgets.cc:569 +msgid "Batch RAW" +msgstr "RAW em Lote" -#: f.widgets.cc:568 -msgid "Batch RAW (Raw Therapee)" +#: f.widgets.cc:570 +msgid "Batch Raw Therapee" msgstr "RAW em Lote (Raw Therapee)" -#: f.widgets.cc:569 +#: f.widgets.cc:571 msgid "Script Files" msgstr "Arquivos de Rotina" -#: f.widgets.cc:572 +#: f.widgets.cc:574 msgid "Create File of Image Files" msgstr "Criar arquivo de Arquivos de Imagem" -#: f.widgets.cc:586 +#: f.widgets.cc:588 msgid "Cycle Desktop Wallpaper" msgstr "Criar rodízio de planos de fundo" -#: f.widgets.cc:603 f.widgets.cc:627 f.widgets.cc:651 f.widgets.cc:665 +#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 msgid "Gallery" msgstr "Galeria" -#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 +#: f.widgets.cc:606 f.widgets.cc:630 f.widgets.cc:654 f.widgets.cc:668 msgid "World Maps" msgstr "Mapas Mundiais" -#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 +#: f.widgets.cc:607 f.widgets.cc:631 f.widgets.cc:655 f.widgets.cc:669 msgid "OSM Maps" msgstr "Mapas OSM" -#: f.widgets.cc:607 f.widgets.cc:631 +#: f.widgets.cc:609 f.widgets.cc:633 msgid "Favorites" msgstr "Favoritos" -#: f.widgets.cc:609 fotoxx.h:1177 +#: f.widgets.cc:611 fotoxx.h:1178 msgid "Save" msgstr "Salvar" -#: f.widgets.cc:610 +#: f.widgets.cc:612 msgid "Prev/Next" msgstr "Ant./Prox." -#: f.widgets.cc:612 +#: f.widgets.cc:614 msgid "Areas" msgstr "Áreas" -#: f.widgets.cc:613 fotoxx.h:1122 +#: f.widgets.cc:615 fotoxx.h:1123 msgid "Edit" msgstr "Editar" -#: f.widgets.cc:614 +#: f.widgets.cc:616 msgid "Repair" msgstr "Reparo" -#: f.widgets.cc:615 +#: f.widgets.cc:617 msgid "Bend" msgstr "Curvar" -#: f.widgets.cc:616 +#: f.widgets.cc:618 msgid "Effects" msgstr "Efeitos" -#: f.widgets.cc:617 +#: f.widgets.cc:619 msgid "Combine" msgstr "Combinar" -#: f.widgets.cc:618 +#: f.widgets.cc:620 msgid "Undo/Redo" msgstr "Desfazer/Refazer" -#: f.widgets.cc:619 +#: f.widgets.cc:621 msgid "Tools" msgstr "Ferramentas" -#: f.widgets.cc:633 +#: f.widgets.cc:635 msgid "Albums" msgstr "Álbuns" -#: f.widgets.cc:634 +#: f.widgets.cc:636 msgid "Bookmarks" msgstr "Favoritos" -#: f.widgets.cc:643 +#: f.widgets.cc:645 msgid "Batch" msgstr "Lote" -#: f.widgets.cc:655 +#: f.widgets.cc:657 msgid "Choose Map" msgstr "Escolher Mapa" -#: f.widgets.cc:656 +#: f.widgets.cc:658 msgid "Search Range" msgstr "Buscar Intervalo" -#: f.widgets.cc:676 fotoxx.h:1195 +#: f.widgets.cc:678 fotoxx.h:1195 msgid "Undo" msgstr "Desfazer" -#: f.widgets.cc:677 fotoxx.h:1168 +#: f.widgets.cc:679 fotoxx.h:1169 msgid "Redo" msgstr "Refazer" -#: f.widgets.cc:678 +#: f.widgets.cc:680 msgid "Save File Version" msgstr "Salvar Versão de Arquivo" -#: f.widgets.cc:722 +#: f.widgets.cc:724 msgid "Popup Image" msgstr "Imagem Popup" -#: f.widgets.cc:726 fotoxx.h:1171 +#: f.widgets.cc:728 fotoxx.h:1172 msgid "Rename" msgstr "Renomear" -#: f.widgets.cc:728 +#: f.widgets.cc:730 msgid "Copy to Clipboard" msgstr "Copiar para Área de Transferência" -#: f.widgets.cc:729 +#: f.widgets.cc:731 msgid "Remove from Album" msgstr "Remover do Álbum" -#: f.widgets.cc:730 +#: f.widgets.cc:732 msgid "Cut to Image Cache" msgstr "Recortar para Reserva de Imagens" -#: f.widgets.cc:731 +#: f.widgets.cc:733 msgid "Copy to Image Cache" msgstr "Copiar para Reserva de Imagens" -#: f.widgets.cc:732 +#: f.widgets.cc:734 msgid "Paste Image Cache Here (clear)" msgstr "Colar Reserva de Imagens aqui (limpar)" -#: f.widgets.cc:733 +#: f.widgets.cc:735 msgid "Paste Image Cache Here (keep)" msgstr "Colar Reserva de Imagens aqui (manter)" -#: f.widgets.cc:734 +#: f.widgets.cc:736 msgid "Paste Current Image File Here" msgstr "Colar Arquivo de Imagem Atual Aqui" -#: f.widgets.cc:744 +#: f.widgets.cc:746 msgid "Select Area" msgstr "Selecionar Área" -#: f.widgets.cc:747 +#: f.widgets.cc:748 msgid "Show on OSM Map" msgstr "Mostrar em Mapa OSM" -#: f.widgets.cc:748 +#: f.widgets.cc:749 msgid "Delete/Trash" msgstr "Excluir/Descartar" @@ -4962,59 +4927,59 @@ msgid "Image Locations" msgstr "Localidade de Imagem" -#: fotoxx-16.06.cc:392 +#: fotoxx-16.07.cc:387 msgid "Please install missing programs:" msgstr "Por favor, instale os programas que faltam:" -#: fotoxx-16.06.cc:683 +#: fotoxx-16.07.cc:675 msgid "Kill active dialog?" msgstr "Fechar caixa de diálogo ativa?" -#: fotoxx-16.06.cc:764 +#: fotoxx-16.07.cc:756 msgid "(reduced)" msgstr "(reduzido)" -#: fotoxx-16.06.cc:765 +#: fotoxx-16.07.cc:757 msgid "area active" msgstr "área ativada" -#: fotoxx-16.06.cc:766 +#: fotoxx-16.07.cc:758 msgid "dialog open" msgstr "caixa de diálogo aberta" -#: fotoxx-16.06.cc:767 +#: fotoxx-16.07.cc:759 msgid "blocked" msgstr "bloqueado" -#: fotoxx-16.06.cc:818 +#: fotoxx-16.07.cc:810 msgid "edits" msgstr "edições" -#: fotoxx-16.06.cc:2921 +#: fotoxx-16.07.cc:2932 msgid "Exceed 50 anchor points" msgstr "Excedeu 50 pontos de ancoragem" -#: fotoxx-16.06.cc:3141 +#: fotoxx-16.07.cc:3152 msgid "load curve from a file" msgstr "carregar curva de arquivo" -#: fotoxx-16.06.cc:3207 +#: fotoxx-16.07.cc:3218 msgid "curve file is invalid" msgstr "arquivo de curva inválido" -#: fotoxx-16.06.cc:3221 +#: fotoxx-16.07.cc:3232 msgid "save curve to a file" msgstr "salvar curva para arquivo" -#: fotoxx-16.06.cc:3293 +#: fotoxx-16.07.cc:3304 msgid "Too many edits, please save image" msgstr "Muitas edições, favor salvar imagem" -#: fotoxx-16.06.cc:3298 +#: fotoxx-16.07.cc:3309 msgid "this function cannot be scripted" msgstr "esta função não pode ser rotinada" -#: fotoxx-16.06.cc:3315 +#: fotoxx-16.07.cc:3326 msgid "" "Select area not active.\n" "Continue?" @@ -5022,27 +4987,27 @@ "Área selecionada não ativa.\n" "Continuar?" -#: fotoxx-16.06.cc:3630 +#: fotoxx-16.07.cc:3641 msgid "file data does not fit dialog" msgstr "dados do arquivo não cabem em caixa de diálogo" -#: fotoxx-16.06.cc:3640 +#: fotoxx-16.07.cc:3651 msgid "Save settings to a file" msgstr "Salvar configurações em arquivo" -#: fotoxx-16.06.cc:3993 +#: fotoxx-16.07.cc:4004 msgid "This action will discard changes to current image" msgstr "Esta ação irá descartar as alterações para a imagem atual" -#: fotoxx-16.06.cc:3994 +#: fotoxx-16.07.cc:4005 msgid "prior function still active" msgstr "função prévia ainda ativa" -#: fotoxx-16.06.cc:3995 fotoxx.h:1140 +#: fotoxx-16.07.cc:4006 fotoxx.h:1141 msgid "Keep" msgstr "Manter" -#: fotoxx-16.06.cc:3996 +#: fotoxx-16.07.cc:4007 msgid "Discard" msgstr "Descartar" @@ -5078,7 +5043,7 @@ msgid "Blend Width" msgstr "Quantidade de mistura" -#: fotoxx.h:1103 zfuncs.cc:10576 +#: fotoxx.h:1103 zfuncs.cc:10518 msgid "bottom" msgstr "rodapé" @@ -5107,206 +5072,198 @@ msgstr "Cor" #: fotoxx.h:1111 +msgid "COMPLETED" +msgstr "COMPLETO" + +#: fotoxx.h:1112 msgid "continue" msgstr "continuar" -#: fotoxx.h:1113 +#: fotoxx.h:1114 msgid "Copy" msgstr "Copiar" -#: fotoxx.h:1114 +#: fotoxx.h:1115 msgid "Create" msgstr "Criar" -#: fotoxx.h:1115 +#: fotoxx.h:1116 msgid "Curve File:" msgstr "Arquivo de curva:" -#: fotoxx.h:1116 +#: fotoxx.h:1117 msgid "Cut" msgstr "Recortar" -#: fotoxx.h:1117 +#: fotoxx.h:1118 msgid "Deband" msgstr "Debandar" -#: fotoxx.h:1118 +#: fotoxx.h:1119 msgid "Delete" msgstr "Exlcuir" -#: fotoxx.h:1120 +#: fotoxx.h:1121 msgid "Done" msgstr "Pronto" -#: fotoxx.h:1121 +#: fotoxx.h:1122 msgid "edge" msgstr "borda" -#: fotoxx.h:1124 +#: fotoxx.h:1125 msgid "Erase" msgstr "Apagar" -#: fotoxx.h:1125 +#: fotoxx.h:1126 msgid "Fetch" msgstr "Buscar" -#: fotoxx.h:1126 +#: fotoxx.h:1127 msgid "output file already exists" msgstr "arquivo de saída já existe" -#: fotoxx.h:1127 +#: fotoxx.h:1128 #, c-format msgid "%d files selected" msgstr "%d arquivos selecionados" -#: fotoxx.h:1128 +#: fotoxx.h:1129 msgid "Find" msgstr "Encontrar" -#: fotoxx.h:1129 +#: fotoxx.h:1130 msgid "Finish" msgstr "Finalizar" -#: fotoxx.h:1130 -msgid "Flatten" -msgstr "Abrandar" - -#: fotoxx.h:1131 +#: fotoxx.h:1132 msgid "Font" msgstr "Fonte" -#: fotoxx.h:1133 +#: fotoxx.h:1134 msgid "Grid" msgstr "Grade" -#: fotoxx.h:1134 +#: fotoxx.h:1135 msgid "Height" msgstr "Altura" -#: fotoxx.h:1137 +#: fotoxx.h:1138 msgid "Images" msgstr "Imagens" -#: fotoxx.h:1138 +#: fotoxx.h:1139 msgid "Insert" msgstr "Inserir" -#: fotoxx.h:1141 zfuncs.cc:10580 +#: fotoxx.h:1142 zfuncs.cc:10522 msgid "left" msgstr "esquerda" -#: fotoxx.h:1142 +#: fotoxx.h:1143 msgid "limit" msgstr "limite" -#: fotoxx.h:1143 +#: fotoxx.h:1144 msgid "Load" msgstr "Carga" -#: fotoxx.h:1144 +#: fotoxx.h:1145 msgid "Make" msgstr "Gerar" -#: fotoxx.h:1146 +#: fotoxx.h:1147 msgid "Map" msgstr "Mapa" -#: fotoxx.h:1147 -msgid "Match Level" -msgstr "Combinar Nivelamento" - -#: fotoxx.h:1148 +#: fotoxx.h:1149 msgid "Max" msgstr "Máximo" -#: fotoxx.h:1149 +#: fotoxx.h:1150 msgid "Negative" msgstr "Negativo" -#: fotoxx.h:1150 +#: fotoxx.h:1151 msgid "New" msgstr "Novo" -#: fotoxx.h:1151 +#: fotoxx.h:1152 msgid "Next" msgstr "Próximo" -#: fotoxx.h:1152 zfuncs.cc:9658 +#: fotoxx.h:1153 zfuncs.cc:9600 msgid "No" msgstr "Não" -#: fotoxx.h:1153 +#: fotoxx.h:1154 msgid "no images" msgstr "não há imagens" -#: fotoxx.h:1155 +#: fotoxx.h:1156 msgid "no selection" msgstr "não há seleção" -#: fotoxx.h:1156 +#: fotoxx.h:1157 msgid "OK" msgstr "OK" -#: fotoxx.h:1158 +#: fotoxx.h:1159 msgid "Paste" msgstr "Colar" -#: fotoxx.h:1159 +#: fotoxx.h:1160 msgid "Pause" msgstr "Pausar" -#: fotoxx.h:1160 +#: fotoxx.h:1161 msgid "Percent" msgstr "Percentagem" -#: fotoxx.h:1162 +#: fotoxx.h:1163 msgid "Presets" msgstr "Predefinições" -#: fotoxx.h:1163 +#: fotoxx.h:1164 msgid "Prev" msgstr "Anterior" -#: fotoxx.h:1164 +#: fotoxx.h:1165 msgid "Proceed" msgstr "Continuar" -#: fotoxx.h:1166 +#: fotoxx.h:1167 msgid "range" msgstr "variação" -#: fotoxx.h:1169 +#: fotoxx.h:1170 msgid "Reduce" msgstr "Reduzir" -#: fotoxx.h:1170 +#: fotoxx.h:1171 msgid "Remove" msgstr "Remover" -#: fotoxx.h:1172 +#: fotoxx.h:1173 msgid "Replace" msgstr "Substituir" -#: fotoxx.h:1173 +#: fotoxx.h:1174 msgid "Reserved" msgstr "Reservados" -#: fotoxx.h:1174 +#: fotoxx.h:1175 msgid "Reset" msgstr "Redefinir" -#: fotoxx.h:1175 zfuncs.cc:10584 +#: fotoxx.h:1176 zfuncs.cc:10526 msgid "right" msgstr "direita" -#: fotoxx.h:1176 +#: fotoxx.h:1177 msgid "Rotate" msgstr "Rotacionar" -#: fotoxx.h:1178 -msgid "Unknown file type, save as tiff/jpeg/png to edit" -msgstr "Tipo de arquivo desconhecido, Salvar como tiff/jpeg/png para editar" - #: fotoxx.h:1179 msgid "Search" msgstr "Buscar" @@ -5336,7 +5293,7 @@ msgid "exceed %d files" msgstr "excedido %d arquivos" -#: fotoxx.h:1189 zfuncs.cc:10572 +#: fotoxx.h:1189 zfuncs.cc:10514 msgid "top" msgstr "topo" @@ -5384,11 +5341,11 @@ msgid "y-offset" msgstr "deslocamento-y" -#: fotoxx.h:1204 zfuncs.cc:9658 +#: fotoxx.h:1204 zfuncs.cc:9600 msgid "Yes" msgstr "Sim" -#: zfuncs.cc:1687 +#: zfuncs.cc:1693 #, c-format msgid "" "create directory? \n" @@ -5397,79 +5354,129 @@ "criar diretório? \n" " %s" -#: zfuncs.cc:4530 +#: zfuncs.cc:4535 msgid "user guide not found" msgstr "guia de usuário não encontrado" -#: zfuncs.cc:5345 +#: zfuncs.cc:5287 #, c-format msgid "cannot open file %s" msgstr "não foi possível abrir arquivo %s" -#: zfuncs.cc:5381 +#: zfuncs.cc:5323 msgid "save screen to file" msgstr "salvar tela para arquivo" -#: zfuncs.cc:9744 zfuncs.cc:10239 zfuncs.cc:10559 +#: zfuncs.cc:9686 zfuncs.cc:10181 zfuncs.cc:10501 msgid "cancel" msgstr "cancelar" -#: zfuncs.cc:10200 +#: zfuncs.cc:10142 msgid "choose file" msgstr "escolher arquivo" -#: zfuncs.cc:10205 +#: zfuncs.cc:10147 msgid "choose files" msgstr "escolher arquivos" -#: zfuncs.cc:10210 +#: zfuncs.cc:10152 msgid "save" msgstr "salvar" -#: zfuncs.cc:10216 +#: zfuncs.cc:10158 msgid "choose folder" msgstr "escolher diretório" -#: zfuncs.cc:10221 +#: zfuncs.cc:10163 msgid "choose folders" msgstr "escolher diretórios" -#: zfuncs.cc:10226 +#: zfuncs.cc:10168 msgid "create folder" msgstr "criar pasta" -#: zfuncs.cc:10233 +#: zfuncs.cc:10175 msgid "hidden" msgstr "oculto" -#: zfuncs.cc:10559 +#: zfuncs.cc:10501 msgid "done" msgstr "pronto" -#: zfuncs.cc:10559 zfuncs.cc:10568 +#: zfuncs.cc:10501 zfuncs.cc:10510 msgid "margins" msgstr "margens" -#: zfuncs.cc:10589 +#: zfuncs.cc:10531 msgid "image scale" msgstr "escala de imagem" -#: zfuncs.cc:10591 +#: zfuncs.cc:10533 msgid "percent" msgstr "porcentagem" -#: zfuncs.cc:10598 +#: zfuncs.cc:10540 msgid "image" msgstr "imagem" -#: zfuncs.cc:10602 +#: zfuncs.cc:10544 msgid "width" msgstr "largura" -#: zfuncs.cc:10606 +#: zfuncs.cc:10548 msgid "height" msgstr "altura" +#~ msgid "" +#~ "The next preceding gallery does not exist or contains no images. \n" +#~ "(No subdirectories and no further directories are searched)." +#~ msgstr "" +#~ "A próxima galeria precedente não existe ou não contém imagens. \n" +#~ "(Nenhum subdiretório ou diretório adiante foi vasculhado)." + +#~ msgid "" +#~ "The next following gallery does not exist or contains no images. \n" +#~ "(No subdirectories and no further directories are searched)." +#~ msgstr "" +#~ "A próxima galeria adiante não existe ou não contém imagens. \n" +#~ "(Nenhum subdiretório ou diretório adiante foi vasculhado)." + +#~ msgid "Batch Convert RAW Files (libraw)" +#~ msgstr "Conversão em Lote de Arquivos RAW (libraw)" + +#~ msgid "libraw not installed" +#~ msgstr "libraw não instalado" + +#~ msgid "white balance" +#~ msgstr "balanço de branco" + +#~ msgid "interpolation" +#~ msgstr "interpolação" + +#~ msgid "color space" +#~ msgstr "espaço de cor" + +#~ msgid "gamma curve" +#~ msgstr "curva de gama" + +#~ msgid "camera" +#~ msgstr "camera" + +#~ msgid "fixed" +#~ msgstr "fixado" + +#~ msgid "calculated" +#~ msgstr "calculado" + +#~ msgid "default" +#~ msgstr "padrão" + +#~ msgid "defaults" +#~ msgstr "padrões" + +#~ msgid "RAW command" +#~ msgstr "comando RAW" + #~ msgid "maximize" #~ msgstr "maximizar" @@ -5622,3 +5629,36 @@ #~ msgid "select area within mouse" #~ msgstr "selecionar área delimitando com o mouse" + +#~ msgid "Unknown file type, save as tiff/jpeg/png to edit" +#~ msgstr "Tipo de arquivo desconhecido, Salvar como tiff/jpeg/png para editar" + +#~ msgid "Open RAW (ufraw)" +#~ msgstr "Abrir RAW (ufraw)" + +#~ msgid "Flatten 2" +#~ msgstr "Achatamento 2" + +#~ msgid "Flatten 1" +#~ msgstr "Achatamento 1" + +#~ msgid "error: %s" +#~ msgstr "erro: %s" + +#~ msgid "Cannot create desktop trash folder: %s" +#~ msgstr "Não foi possível criar diretório de lixo na Área de Trabalho: %s" + +#~ msgid "Open RAW file (ufraw)" +#~ msgstr "Abrir arquivo RAW (ufraw)" + +#~ msgid "UFraw not installed" +#~ msgstr "UFraw não instalado" + +#~ msgid "success" +#~ msgstr "sucesso" + +#~ msgid "searching" +#~ msgstr "procurando" + +#~ msgid "extend to corner:" +#~ msgstr "estender até canto:" diff -Nru fotoxx-16.06/locales/translate-ru.po fotoxx-16.07/locales/translate-ru.po --- fotoxx-16.06/locales/translate-ru.po 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/locales/translate-ru.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,5614 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: fotoxx-13.08.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-31 15:14+0200\n" -"PO-Revision-Date: 2014-09-29 15:54+0300\n" -"Last-Translator: Nikolay Kachulin \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.5.5\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: f.albums.cc:87 -msgid "" -"Right-click album thumbnail to cut/copy \n" -"to cache, insert from cache, or remove." -msgstr "" -"Правый щелчок по иконке альбома чтобы \n" -"вырезать/копировать/вставить в кэш или удалить" - -#: f.albums.cc:89 -msgid "Drag album thumbnail to new position." -msgstr "Перетащите иконку альбома в новое место" - -#: f.albums.cc:118 f.widgets.cc:583 -msgid "Manage Albums" -msgstr "Управление альбомами" - -#: f.albums.cc:129 f.albums.cc:266 -msgid "Create or replace an album" -msgstr "Создать/заместить альбом" - -#: f.albums.cc:131 -msgid "Album to view or edit" -msgstr "Альбом для просмотра/редактирования" - -#: f.albums.cc:133 -msgid "Select images, add to cache" -msgstr "Выбрать изображения, добавить в кэш" - -#: f.albums.cc:135 -msgid "Clear image cache" -msgstr "Очистить кэш изображений" - -#: f.albums.cc:137 f.albums.cc:159 -msgid "Delete an album" -msgstr "Удалить альбом" - -#: f.albums.cc:158 -msgid "Choose Album" -msgstr "Выбрать альбом" - -#: f.albums.cc:160 -#, c-format -msgid "Image cache has %d images" -msgstr "" - -#: f.albums.cc:161 -msgid "cache added to empty album" -msgstr "кэш добавлен к пустому альбому" - -#: f.albums.cc:215 -#, c-format -msgid "delete %s ?" -msgstr "Удалить %s ?" - -#: f.albums.cc:250 -#, c-format -msgid "fill from image cache (%d images)" -msgstr "заполнение из кэша (%d изображений)" - -#: f.albums.cc:268 f.albums.cc:305 -msgid "Album Name" -msgstr "Имя Альбома" - -#: f.albums.cc:274 -msgid "make an initially empty album" -msgstr "создание пустого альбома" - -#: f.albums.cc:276 -msgid "fill from current gallery" -msgstr "заполнение из текущей галереи" - -#: f.albums.cc:319 -msgid "enter an album name" -msgstr "ввод имени альбома" - -#: f.albums.cc:346 -msgid "gallery is empty" -msgstr "галерея пуста" - -#: f.albums.cc:373 -msgid "new album created" -msgstr "создан новый альбом" - -#: f.albums.cc:1157 -msgid "instant" -msgstr "Немедленно" - -#: f.albums.cc:1158 -msgid "fade-in" -msgstr "Проявка" - -#: f.albums.cc:1159 -msgid "roll-right" -msgstr "Скатить вправо" - -#: f.albums.cc:1160 -msgid "roll-down" -msgstr "Скатить вниз" - -#: f.albums.cc:1161 -msgid "venetian" -msgstr "Жалюзи" - -#: f.albums.cc:1162 -msgid "grate" -msgstr "Решетка" - -#: f.albums.cc:1163 -msgid "rectangle" -msgstr "Прямоугольник" - -#: f.albums.cc:1164 -msgid "implode" -msgstr "" - -#: f.albums.cc:1165 -msgid "explode" -msgstr "" - -#: f.albums.cc:1166 -msgid "radar" -msgstr "Радар" - -#: f.albums.cc:1167 -msgid "spiral" -msgstr "" - -#: f.albums.cc:1168 -msgid "Japanese-fan" -msgstr "" - -#: f.albums.cc:1169 -msgid "jaws" -msgstr "Челюсти" - -#: f.albums.cc:1170 -msgid "ellipse" -msgstr "Эллипс" - -#: f.albums.cc:1171 -msgid "raindrops" -msgstr "дождевые капли" - -#: f.albums.cc:1172 -msgid "doubledoor" -msgstr "" - -#: f.albums.cc:1173 -msgid "rotate" -msgstr "поворот" - -#: f.albums.cc:1174 -msgid "fallover" -msgstr "" - -#: f.albums.cc:1175 -msgid "spheroid" -msgstr "" - -#: f.albums.cc:1176 -msgid "turn-page" -msgstr "" - -#: f.albums.cc:1177 -msgid "french-door" -msgstr "" - -#: f.albums.cc:1197 f.widgets.cc:584 -msgid "Slide Show" -msgstr "Слайд-шоу" - -#: f.albums.cc:1208 -msgid "Clip Limit" -msgstr "возможной обрезки" - -#: f.albums.cc:1212 -msgid "Music File" -msgstr "Музыкальный файл" - -#: f.albums.cc:1217 -msgid "Full Screen" -msgstr "На Весь Экран" - -#: f.albums.cc:1218 -msgid "Auto-replay" -msgstr "Автоповтор" - -#: f.albums.cc:1219 -msgid "KB functions" -msgstr "" - -#: f.albums.cc:1222 -msgid "Customize:" -msgstr "Настроить:" - -#: f.albums.cc:1223 -msgid "transitions" -msgstr "Переходы" - -#: f.albums.cc:1224 -msgid "image files" -msgstr "файлы изображений" - -#: f.albums.cc:1229 f.albums.cc:1356 -#, c-format -msgid "%d images" -msgstr "%d изображений" - -#: f.albums.cc:1251 f.albums.cc:1326 f.albums.cc:1422 f.albums.cc:1661 -#: f.albums.cc:1946 f.albums.cc:1963 f.albums.cc:2177 -msgid "invalid album" -msgstr "несуществующий альбом" - -#: f.albums.cc:1340 -msgid "open album" -msgstr "открыть альбом" - -#: f.albums.cc:1372 -msgid "Select music file" -msgstr "Выберите музыкальный файл" - -#: f.albums.cc:1401 -msgid "select random (if 2+ enabled)" -msgstr "произвольный выбор (если отмечено >2)" - -#: f.albums.cc:1426 -msgid "Transition Preferences" -msgstr "Настройка Переходов" - -#: f.albums.cc:1429 f.edit.cc:2008 -msgid "Settings File" -msgstr "Файл установок" - -#: f.albums.cc:1439 -msgid "transition" -msgstr "переход" - -#: f.albums.cc:1440 -msgid "enabled" -msgstr "выбран" - -#: f.albums.cc:1441 -msgid "slowdown" -msgstr "замедление" - -#: f.albums.cc:1442 -msgid "preference" -msgstr "удельный вес" - -#: f.albums.cc:1517 f.albums.cc:1556 -msgid "invalid file" -msgstr "" - -#: f.albums.cc:1610 f.albums.cc:2162 -#, c-format -msgid "" -"file format error: \n" -" %s" -msgstr "" -"ошибка формата файла: \n" -" %s" - -#: f.albums.cc:1667 -msgid "Image Preferences" -msgstr "Настройки Изображения" - -#: f.albums.cc:1671 f.edit.cc:1338 f.file.cc:1166 f.file.cc:1427 f.meta.cc:617 -#: f.meta.cc:1414 -msgid "Image File:" -msgstr "Файл изображения:" - -#: f.albums.cc:1675 -msgid "Play tone when image shows" -msgstr "" - -#: f.albums.cc:1678 -msgid "Show image caption" -msgstr "" - -#: f.albums.cc:1683 -msgid "Show image comments" -msgstr "" - -#: f.albums.cc:1688 -msgid "Wait before zoom" -msgstr "" - -#: f.albums.cc:1693 -msgid "Zoom type:" -msgstr "" - -#: f.albums.cc:1694 -msgid "none" -msgstr "" - -#: f.albums.cc:1695 -msgid "zoom-in" -msgstr "" - -#: f.albums.cc:1696 -msgid "zoom-out" -msgstr "" - -#: f.albums.cc:1699 -msgid "Zoom size (x)" -msgstr "Увеличение (х)" - -#: f.albums.cc:1702 -msgid "Steps" -msgstr "Шагов" - -#: f.albums.cc:1706 -msgid "Zoom Center" -msgstr "" - -#: f.albums.cc:1710 -msgid "Wait after zoom" -msgstr "" - -#: f.albums.cc:1715 -msgid "Transition to next image" -msgstr "" - -#: f.albums.cc:1718 f.albums.cc:1821 -msgid "next" -msgstr "cледующий" - -#: f.albums.cc:1811 -msgid "click on thumbnail to set zoom center" -msgstr "" - -#: f.area.cc:81 -msgid "Select Area for Edits" -msgstr "Выберите область редактирования" - -#: f.area.cc:82 f.edit.cc:5919 -msgid "Press F1 for help" -msgstr "F1 для вызова справки" - -#: f.area.cc:91 -msgid "" -"Select Area not supported \n" -"by this edit function" -msgstr "" -"Выбранная область не поддерживается \n" -"функцией редактирования" - -#: f.area.cc:121 -msgid "select rectangle" -msgstr "Выбрать прямоугольник" - -#: f.area.cc:122 -msgid "select ellipse" -msgstr "Выбрать эллипс" - -#: f.area.cc:125 -msgid "freehand draw" -msgstr "Рисовать от руки" - -#: f.area.cc:126 -msgid "follow edge" -msgstr "Контрастная граница" - -#: f.area.cc:127 -msgid "draw/replace" -msgstr "провести/заменить" - -#: f.area.cc:130 -msgid "select area within mouse circle" -msgstr "" - -#: f.area.cc:133 -msgid "select one matching color within mouse circle:" -msgstr "" - -#: f.area.cc:135 -msgid "" -"first select the checkbox, then \n" -"shift+click on image to set the color" -msgstr "" - -#: f.area.cc:139 -msgid "select all matching colors within mouse circle" -msgstr "" - -#: f.area.cc:143 f.edit.cc:5961 -msgid "mouse radius" -msgstr "Радиус пятна" - -#: f.area.cc:146 -msgid "match level %" -msgstr "Совпадение цвета %" - -#: f.area.cc:151 -msgid "search range" -msgstr "Диапазон поиска" - -#: f.area.cc:155 -msgid "Area Edge Blend Width" -msgstr "Ширина Смешивания Краёв Области" - -#: f.area.cc:158 -msgid "Edge Creep" -msgstr "Сдвиг Границы" - -#: f.area.cc:163 -msgid "Line Color:" -msgstr "" - -#: f.area.cc:183 f.area.cc:184 -msgid "area edits fade away within edge distance" -msgstr "плавность перехода для избегания видимых швов " - -#: f.area.cc:356 f.area.cc:539 -#, c-format -msgid "exceed %d edits" -msgstr "Лимит %d редакций" - -#: f.area.cc:1361 -msgid "" -"Click one time inside each enclosed area \n" -"(possible gaps in the outline will be found). \n" -"Press [Done] when finished. Press F1 for help." -msgstr "" - -#: f.area.cc:1389 -msgid "finish area" -msgstr "Замкнуть область" - -#: f.area.cc:1397 -msgid "extend to corner:" -msgstr "расширить до угла" - -#: f.area.cc:1438 -msgid "searching" -msgstr "Поиск" - -#: f.area.cc:1469 -msgid "outline has a gap" -msgstr "Контур имеет разрыв" - -#: f.area.cc:1473 -msgid "success" -msgstr "Успешно" - -#: f.area.cc:1618 f.area.cc:1645 -#, c-format -msgid "found %d pixels" -msgstr "Найдено %d пикселей" - -#: f.area.cc:1940 f.area.cc:1957 f.area.cc:1977 f.area.cc:2301 f.area.cc:2378 -#: f.area.cc:2484 -msgid "the area is not finished" -msgstr "Область не замкнута" - -#: f.area.cc:2066 -msgid "Edge calculation in progress" -msgstr "Процесс вычисления границы" - -#: f.area.cc:2075 -msgid "Area Edge Calc" -msgstr "Расчет границы области" - -#: f.area.cc:2519 -msgid "save area as a PNG file" -msgstr "" - -#: f.area.cc:2551 -msgid "load area from a file" -msgstr "" - -#: f.area.cc:2594 -msgid "position with mouse click/drag" -msgstr "Укажите мышью новое положение" - -#: f.area.cc:2634 -msgid "Paste Image" -msgstr "Вставить изображение" - -#: f.area.cc:2639 f.batch.cc:1360 f.batch.cc:1847 -msgid "resize" -msgstr "Изменить размер" - -#: f.batch.cc:126 f.widgets.cc:564 -msgid "Batch Convert" -msgstr "Групповое преобразование" - -#: f.batch.cc:133 f.file.cc:940 -msgid "New Name" -msgstr "Новое Имя" - -#: f.batch.cc:138 -msgid "Sequence Numbers" -msgstr "" - -#: f.batch.cc:140 -msgid "base" -msgstr "базовое имя" - -#: f.batch.cc:143 -msgid "adder" -msgstr "модификатор" - -#: f.batch.cc:148 -msgid "New Location" -msgstr "Новое Расположение" - -#: f.batch.cc:153 -msgid "New File Type" -msgstr "Новый тип файла" - -#: f.batch.cc:157 f.batch.cc:165 f.repair.cc:4389 -msgid "no change" -msgstr "без изменения" - -#: f.batch.cc:160 -msgid "max. Width" -msgstr "макс. ширина" - -#: f.batch.cc:169 -msgid "Delete Originals" -msgstr "Удалять оригиналы" - -#: f.batch.cc:170 f.batch.cc:746 -msgid "Copy Metadata" -msgstr "Копировать метаданные" - -#: f.batch.cc:171 f.batch.cc:747 f.edit.cc:1341 f.widgets.cc:466 -#: f.widgets.cc:737 -msgid "Upright" -msgstr "Автоповорот" - -#: f.batch.cc:174 f.batch.cc:748 f.batch.cc:1369 f.batch.cc:1856 -#: f.repair.cc:125 f.widgets.cc:482 -msgid "Sharpen" -msgstr "Увеличить резкость" - -#: f.batch.cc:184 f.batch.cc:749 -msgid "Overlay Image" -msgstr "" - -#: f.batch.cc:187 -msgid "Width %" -msgstr "" - -#: f.batch.cc:192 -msgid "Position" -msgstr "" - -#: f.batch.cc:204 -msgid "Make constant size for screen:" -msgstr "" - -#: f.batch.cc:339 -msgid "file type not supported" -msgstr "формат файла не поддерживается" - -#: f.batch.cc:468 -msgid "cannot create new file" -msgstr "невозможно создать новый файл" - -#: f.batch.cc:514 -msgid "updating albums ..." -msgstr "обновление альбомов" - -#: f.batch.cc:591 f.batch.cc:1642 f.batch.cc:2044 f.file.cc:1217 -msgid "Select directory" -msgstr "Выбрать каталог" - -#: f.batch.cc:665 -msgid "" -"new name/base/adder unreasonable\n" -" e.g. newname ### 100 10\n" -" or ... [oldname] ..." -msgstr "" - -#: f.batch.cc:689 -#, c-format -msgid "max. size %d x %d is not reasonable" -msgstr "Макс.размер %d x %d не приемлем" - -#: f.batch.cc:696 -msgid "specify overlay image file" -msgstr "" - -#: f.batch.cc:712 -msgid "specify overlay position" -msgstr "" - -#: f.batch.cc:740 -#, c-format -msgid "Convert %d image files" -msgstr "Конвертируется %d изображений" - -#: f.batch.cc:741 -msgid "Rename to" -msgstr "Переименовать в" - -#: f.batch.cc:742 -msgid "Convert to" -msgstr "Преобразовать в" - -#: f.batch.cc:743 -msgid "Resize within" -msgstr "Новый размер" - -#: f.batch.cc:744 -msgid "Output to" -msgstr "Записать в" - -#: f.batch.cc:750 -msgid "*** Delete Originals ***" -msgstr "" - -#: f.batch.cc:751 -msgid "*** Replace Originals ***" -msgstr "" - -#: f.batch.cc:752 -msgid "PROCEED?" -msgstr "ПРОДОЛЖИТЬ?" - -#: f.batch.cc:907 f.widgets.cc:565 -msgid "Batch Upright" -msgstr "Пакетное ориентирование" - -#: f.batch.cc:913 -msgid "Survey all files" -msgstr "" - -#: f.batch.cc:968 -msgid "file cannot be read" -msgstr "" - -#: f.batch.cc:1086 -msgid "cannot select both options" -msgstr "" - -#: f.batch.cc:1130 f.widgets.cc:566 -msgid "Batch Delete/Trash" -msgstr "" - -#: f.batch.cc:1135 -msgid "delete" -msgstr "" - -#: f.batch.cc:1138 -msgid "trash" -msgstr "" - -#: f.batch.cc:1302 -msgid "Batch Convert RAW Files (DCraw)" -msgstr "Пакетное преобразование RAW (DCraw)" - -#: f.batch.cc:1312 -msgid "DCraw not installed" -msgstr "DCraw не установлен" - -#: f.batch.cc:1347 f.batch.cc:1834 -msgid "output location" -msgstr "выходная папка" - -#: f.batch.cc:1352 f.batch.cc:1839 -msgid "output file type" -msgstr "тип выходного файла" - -#: f.batch.cc:1371 f.batch.cc:1858 -msgid "amount" -msgstr "сила" - -#: f.batch.cc:1374 f.batch.cc:1861 -msgid "threshold" -msgstr "порог" - -#: f.batch.cc:1383 -msgid "white balance" -msgstr "баланс белого" - -#: f.batch.cc:1384 -msgid "interpolation" -msgstr "интерполяция" - -#: f.batch.cc:1385 -msgid "color space" -msgstr "цветовое пространство" - -#: f.batch.cc:1386 -msgid "gamma curve" -msgstr "гамма-кривая" - -#: f.batch.cc:1389 -msgid "camera" -msgstr "камера" - -#: f.batch.cc:1390 -msgid "fixed" -msgstr "фиксированный" - -#: f.batch.cc:1391 -msgid "calculated" -msgstr "вычисленный" - -#: f.batch.cc:1408 -#, fuzzy -msgid "default" -msgstr "по умолчанию" - -#: f.batch.cc:1414 -msgid "defaults" -msgstr "по умолчанию" - -#: f.batch.cc:1796 -msgid "Batch Convert RAW Files (Raw Therapee)" -msgstr "Пакетное преобразование RAW (RAW Therapee)" - -#: f.batch.cc:1806 f.file.cc:426 -msgid "Raw Therapee not installed" -msgstr "Raw Therapee не установлен" - -#: f.batch.cc:2141 -msgid "start" -msgstr "" - -#: f.batch.cc:2142 -msgid "begin making a script file" -msgstr "" - -#: f.batch.cc:2144 -msgid "close" -msgstr "" - -#: f.batch.cc:2145 -msgid "finish making a script file" -msgstr "" - -#: f.batch.cc:2147 -msgid "run" -msgstr "" - -#: f.batch.cc:2148 -msgid "execute a script file" -msgstr "" - -#: f.batch.cc:2202 -msgid "script already started" -msgstr "" - -#: f.batch.cc:2206 -msgid "open new script file" -msgstr "" - -#: f.batch.cc:2238 -msgid "script file error" -msgstr "" - -#: f.batch.cc:2243 -#, c-format -msgid "%s added to script" -msgstr "" - -#: f.batch.cc:2256 -msgid "no script file was started" -msgstr "" - -#: f.batch.cc:2264 -msgid "script file closed" -msgstr "" - -#: f.batch.cc:2283 -msgid "script file is not closed" -msgstr "" - -#: f.batch.cc:2287 -msgid "select script file to run" -msgstr "" - -#: f.batch.cc:2289 -msgid "open script file" -msgstr "" - -#: f.batch.cc:2296 -msgid "unknown script file" -msgstr "" - -#: f.batch.cc:2303 -#, c-format -msgid "" -"script file: %s \n" -" %s" -msgstr "" - -#: f.batch.cc:2314 -msgid "select image files to be processed" -msgstr "" - -#: f.batch.cc:2326 f.batch.cc:2375 -#, c-format -msgid "" -"open failure: %s \n" -" %s" -msgstr "" - -#: f.batch.cc:2347 -#, c-format -msgid "unknown edit function: %s" -msgstr "" - -#: f.batch.cc:2356 -#, c-format -msgid "load widgets failed: %s" -msgstr "" - -#: f.batch.cc:2385 -#, c-format -msgid "script file format error: %s" -msgstr "" - -#: f.batch.cc:2430 -msgid "growisofs not installed" -msgstr "" - -#: f.batch.cc:2482 -msgid "no DVD/BlueRay device found" -msgstr "" - -#: f.batch.cc:2505 f.widgets.cc:570 -msgid "Burn Images to DVD/BlueRay" -msgstr "" - -#: f.batch.cc:2510 -msgid "Select device" -msgstr "" - -#: f.batch.cc:2635 f.widgets.cc:571 -msgid "Find Duplicate Images" -msgstr "Поиск повторяющихся изображений" - -#: f.batch.cc:2637 f.tools.cc:1012 -msgid "Thumbnail size" -msgstr "Размер иконки" - -#: f.batch.cc:2640 -msgid "pixel difference" -msgstr "попиксельная разница" - -#: f.batch.cc:2643 -msgid "pixel count" -msgstr "количество пикселей" - -#: f.batch.cc:2646 -msgid "Images:" -msgstr "Изображений:" - -#: f.batch.cc:2647 -msgid "searching ..." -msgstr "поиск..." - -#: f.batch.cc:2649 -msgid "Duplicates:" -msgstr "Дублей:" - -#: f.batch.cc:2667 -#, c-format -msgid "only %d image thumbnails found" -msgstr "найдено лишь %d иконок" - -#: f.batch.cc:2875 f.widgets.cc:377 -msgid "Create a file of selected image files" -msgstr "" - -#: f.batch.cc:2899 f.batch.cc:2969 -msgid "Output File" -msgstr "" - -#: f.batch.cc:2918 -msgid "no input files selected" -msgstr "" - -#: f.batch.cc:2923 -msgid "no output file selected" -msgstr "" - -#: f.batch.cc:2937 f.tools.cc:643 -msgid "COMPLETED" -msgstr "ЗАВЕРШЕНО" - -#: f.bend.cc:92 f.widgets.cc:505 -msgid "Unbend" -msgstr "Выпрямить изображение" - -#: f.bend.cc:369 -msgid "" -" Click the four corners of a tetragon area. Press [apply]. \n" -" The image is warped to make the tetragon into a rectangle." -msgstr "" -"Кликните на четырех углах площади четырехугольника. Нажмите [Применить] \n" -"Четырехугольник станет прямоугольником." - -#: f.bend.cc:386 -msgid "Perspective Correction" -msgstr "Коррекция перстпективы" - -#: f.bend.cc:621 -msgid "must have 4 corners" -msgstr "должно быть 4 угла" - -#: f.bend.cc:743 -msgid "" -" Select an area to warp using select area function. \n" -" Press [start warp] and pull area with mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, select another area or press [done]." -msgstr "" -"Выберите область деформации (Меню -> Области -> Выбрать). \n" -"Нажмите [Начать деформацию] и потяните область мышью. \n" -"При необходимости сделайте несколько движений . \n" -"Для завершения выберите другую область или нажмите [Изменить]" - -#: f.bend.cc:756 f.widgets.cc:507 -msgid "Warp area" -msgstr "Деформация области" - -#: f.bend.cc:761 -msgid "start warp" -msgstr "Начать деформацию" - -#: f.bend.cc:819 f.effects.cc:5686 -msgid "no active Select Area" -msgstr "Не выбрана активная область" - -#: f.bend.cc:1160 f.bend.cc:1474 -msgid "" -" Pull an image position using the mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, press [done]." -msgstr "" -"Потяните положение изображения с помощью мыши. \n" -"При необходимости сделайте несколько движений . \n" -"По окончании нажмите [Изменить]." - -#: f.bend.cc:1178 f.widgets.cc:508 -msgid "Warp curved" -msgstr "Деформация в кривых" - -#: f.bend.cc:1187 f.mashup.cc:1845 -msgid "warp span" -msgstr "область искривления" - -#: f.bend.cc:1492 f.widgets.cc:509 -msgid "Warp linear" -msgstr "Деформация линейная" - -#: f.bend.cc:1807 -msgid "" -" Pull on an image corner using the mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, press [done]." -msgstr "" -"Потяните угол изображения с помощью мыши \n" -"При необходимости сделайте несколько движений . \n" -"По окончании нажмите [Изменить]" - -#: f.bend.cc:1823 f.widgets.cc:510 -msgid "Warp affine" -msgstr "Деформация аффинная" - -#: f.bend.cc:2169 -msgid "Flatten Book Page Photo" -msgstr "Выровнять фотографию книжной страницы" - -#: f.bend.cc:2170 -msgid "" -"Trim image to isolate one page. \n" -"Map top and bottom edges with \n" -"4+ mouse clicks, then flatten: " -msgstr "" -"Выровнять выделенную кромку одной страницы. \n" -"Карта верхней и нижней границ в \n" -"4+ клика мыши, затем растянуть: " - -#: f.bend.cc:2173 -msgid "Stretch curved-down surfaces:" -msgstr "Растянуть изогнутые вниз поверхности:" - -#: f.bend.cc:2228 -msgid "top:" -msgstr "Верх:" - -#: f.bend.cc:2231 -msgid "bottom:" -msgstr "Низ:" - -#: f.bend.cc:2614 f.widgets.cc:512 -msgid "Spherical Projection" -msgstr "" - -#: f.bend.cc:2658 -msgid "Magnify" -msgstr "" - -#: f.bend.cc:2834 -msgid "" -" Select areas to remain unchanged. \n" -" Pull image from upper left corner. \n" -" When finished, press [done]." -msgstr "" - -#: f.bend.cc:2850 f.widgets.cc:513 -msgid "Selective Rescale" -msgstr "" - -#: f.bend.cc:2875 -msgid "select areas first" -msgstr "" - -#: f.combine.cc:2105 f.combine.cc:2737 f.combine.cc:3393 f.combine.cc:3925 -msgid "Select 2 to 9 files" -msgstr "Выберите от 2 до 9 файлов" - -#: f.combine.cc:2126 f.combine.cc:2758 f.combine.cc:3414 f.combine.cc:3946 -msgid "Images are not all the same size" -msgstr "Изображения разного размера" - -#: f.combine.cc:2470 -msgid "Adjust Image Contributions" -msgstr "Настройка состава изображения" - -#: f.combine.cc:2474 -msgid "dark pixels" -msgstr "Темные пиксели" - -#: f.combine.cc:2476 -msgid "light pixels" -msgstr "Светлые пиксели" - -#: f.combine.cc:2478 -msgid "file:" -msgstr "Файл:" - -#: f.combine.cc:2994 -msgid "Paint and Warp Image" -msgstr "Окраска и деформация изображения" - -#: f.combine.cc:2998 f.combine.cc:3643 f.combine.cc:6252 f.effects.cc:4413 -#: f.widgets.cc:602 f.widgets.cc:626 f.widgets.cc:650 f.widgets.cc:664 -msgid "Image" -msgstr "Изображение" - -#: f.combine.cc:3002 -msgid "paint" -msgstr "Окраска" - -#: f.combine.cc:3003 -msgid "warp" -msgstr "Деформация" - -#: f.combine.cc:3641 -msgid "Select and Paint Image" -msgstr "Выбор и окраска изображения" - -#: f.combine.cc:4117 -msgid "Adjust Pixel Composition" -msgstr "Настроить попиксельное объединение" - -#: f.combine.cc:4119 -msgid "use average" -msgstr "использовать среднее" - -#: f.combine.cc:4120 -msgid "use median" -msgstr "использовать медиану" - -#: f.combine.cc:4122 -msgid "omit low pixel" -msgstr "пропустить тёмный пиксель" - -#: f.combine.cc:4123 -msgid "omit high pixel" -msgstr "пропустить светлый пиксель" - -#: f.combine.cc:4386 f.combine.cc:5501 -msgid "Select 2 to 4 files" -msgstr "Выберите от 2 до 4 файлов" - -#: f.combine.cc:4461 -msgid "" -"Drag images into rough alignment.\n" -"To rotate, drag from lower edge." -msgstr "" -"Потяните изображение для грубого выравнивания.\n" -"Для вращения потяните за нижний край." - -#: f.combine.cc:4463 f.combine.cc:5578 -msgid "no curve (scanned image)" -msgstr "кривая отсутствует (сканированное изображение)" - -#: f.combine.cc:4464 f.combine.cc:5579 -msgid "Search for lens mm" -msgstr "Поиск фокусного расстояния" - -#: f.combine.cc:4465 f.combine.cc:5580 -msgid "Save lens mm → image EXIF" -msgstr "Сохранить фокусное расстояние в EXIF" - -#: f.combine.cc:4527 f.combine.cc:5642 -msgid "Pre-align Images" -msgstr "Предварительное выравнивание изображений" - -#: f.combine.cc:4531 f.combine.cc:5646 -msgid "lens mm" -msgstr "Фокусное расстояние" - -#: f.combine.cc:4536 f.combine.cc:5651 -msgid "no auto warp" -msgstr "без автодеформации" - -#: f.combine.cc:4538 f.combine.cc:5653 -msgid "manual align" -msgstr "" - -#: f.combine.cc:4540 f.combine.cc:5655 f.widgets.cc:473 f.widgets.cc:736 -msgid "Resize" -msgstr "Изменить размер" - -#: f.combine.cc:4541 f.combine.cc:5656 -msgid "resize window" -msgstr "Изменить размер окна" - -#: f.combine.cc:4549 f.combine.cc:5664 -msgid "do not warp images during auto-alignment" -msgstr "не деформировать изображение при автовыравнивании" - -#: f.combine.cc:4597 f.combine.cc:5712 -msgid "use two images only" -msgstr "Использовать только два изображения" - -#: f.combine.cc:4625 f.combine.cc:4829 f.combine.cc:5017 f.combine.cc:5738 -#: f.combine.cc:5942 f.combine.cc:6130 -msgid "Too little overlap, cannot align" -msgstr "Слишком маленькое наложение, не удается выровнять" - -#: f.combine.cc:5095 f.combine.cc:6208 -msgid "Match Brightness and Color" -msgstr "Подбор яркости и цветности" - -#: f.combine.cc:5140 -msgid "Select image" -msgstr "Выберите изображение" - -#: f.combine.cc:5155 f.combine.cc:6267 -msgid "auto color" -msgstr "Автокоррекция цветов" - -#: f.combine.cc:5156 f.combine.cc:6268 -msgid "file color" -msgstr "Сохранить цвета" - -#: f.combine.cc:5162 f.combine.cc:6274 -msgid "mouse warp" -msgstr "деформация мышью" - -#: f.combine.cc:5165 -msgid "curved image" -msgstr "убрать искажения" - -#: f.combine.cc:5576 -msgid "" -"Drag images into rough alignment.\n" -"To rotate, drag from right edge." -msgstr "" -"Потяните изображение для грубого выравнивания.\n" -"Для вращения потяните за правый край." - -#: f.combine.cc:6483 -msgid "pano tools (hugin) not installed" -msgstr "" - -#: f.combine.cc:6492 -msgid "Select at least 2 files" -msgstr "Выберите не менее 2 файлов" - -#: f.edit.cc:95 -msgid "Trim: drag middle to move, drag corners to resize" -msgstr "Обрезка: перемещение за середину, изменение размера за углы" - -#: f.edit.cc:96 -msgid "Minor rotate: drag right edge with mouse" -msgstr "Плавное вращение перетаскивание за правый край" - -#: f.edit.cc:162 f.widgets.cc:465 f.widgets.cc:735 -msgid "Trim/Rotate" -msgstr "Обрезать/Повернуть" - -#: f.edit.cc:174 f.edit.cc:576 -msgid "ratio" -msgstr "Соотношение" - -#: f.edit.cc:178 -msgid "trim size:" -msgstr "размер обрезки:" - -#: f.edit.cc:183 -msgid "Lock Ratio" -msgstr "Фиксированное соотношение" - -#: f.edit.cc:185 -msgid "maximize trim box" -msgstr "" - -#: f.edit.cc:186 -msgid "use previous size" -msgstr "" - -#: f.edit.cc:187 -msgid "invert width/height" -msgstr "" - -#: f.edit.cc:188 -msgid "trim transparent edges" -msgstr "" - -#: f.edit.cc:189 -msgid "lock width/height ratio" -msgstr "" - -#: f.edit.cc:194 -msgid "Customize" -msgstr "Настройка" - -#: f.edit.cc:200 -msgid "level" -msgstr "" - -#: f.edit.cc:201 -msgid "use EXIF data if available" -msgstr "" - -#: f.edit.cc:204 -msgid "Rotate: degrees" -msgstr "Поворот: градусы" - -#: f.edit.cc:572 -msgid "Trim Buttons" -msgstr "Кнопки обрезки" - -#: f.edit.cc:575 -msgid "label" -msgstr "Метка" - -#: f.edit.cc:1335 -msgid "Upright Image" -msgstr "Вертикальное изображение" - -#: f.edit.cc:1396 -msgid "rotation unknown" -msgstr "ориентация неизвестна" - -#: f.edit.cc:1957 f.widgets.cc:469 f.widgets.cc:740 -msgid "Retouch Combo" -msgstr "Ретушь" - -#: f.edit.cc:1978 -msgid "Amplifier" -msgstr "Усилитель" - -#: f.edit.cc:1979 fotoxx.h:1104 -msgid "Brightness" -msgstr "Яркость" - -#: f.edit.cc:1980 f.effects.cc:3865 fotoxx.h:1112 -msgid "Contrast" -msgstr "Контраст" - -#: f.edit.cc:1981 -msgid "Low Color" -msgstr "Цвет мин" - -#: f.edit.cc:1982 -msgid "Warmer" -msgstr "Теплее" - -#: f.edit.cc:1983 f.effects.cc:1511 -msgid "Dark Areas" -msgstr "Тёмные зоны" - -#: f.edit.cc:1992 -msgid "Max." -msgstr "Макс." - -#: f.edit.cc:1993 f.edit.cc:1994 f.edit.cc:1995 -msgid "High" -msgstr "Макс" - -#: f.edit.cc:1996 -msgid "Cooler" -msgstr "Холоднее" - -#: f.edit.cc:1997 -msgid "Bright" -msgstr "Светлые" - -#: f.edit.cc:2000 f.tools.cc:1767 -msgid "Brightness Distribution" -msgstr "Распределение яркости" - -#: f.edit.cc:2003 -msgid "Click for white balance or black level" -msgstr "Устанавливать ББ и точку чёрного" - -#: f.edit.cc:2004 -msgid "" -"check the box, then click on white or dark \n" -"area to calibrate image white or black color" -msgstr "" - -#: f.edit.cc:2012 -msgid "recall previous settings used" -msgstr "вернут предыдущие установки" - -#: f.edit.cc:2682 -msgid "Adjust Brightness Distribution" -msgstr "Выровнять распределение яркости" - -#: f.edit.cc:2721 -msgid "Low Cutoff" -msgstr "" - -#: f.edit.cc:2722 -msgid "High Cutoff" -msgstr "" - -#: f.edit.cc:2723 -msgid "Low Flatten" -msgstr "" - -#: f.edit.cc:2724 -msgid "Mid Flatten" -msgstr "" - -#: f.edit.cc:2725 -msgid "High Flatten" -msgstr "" - -#: f.edit.cc:2726 -msgid "Low Stretch" -msgstr "" - -#: f.edit.cc:2727 -msgid "Mid Stretch" -msgstr "" - -#: f.edit.cc:2728 -msgid "High Stretch" -msgstr "" - -#: f.edit.cc:3058 -msgid "Zonal Flatten Brightness" -msgstr "" - -#: f.edit.cc:3109 -msgid "Zones" -msgstr "" - -#: f.edit.cc:3116 -msgid "Deband Dark" -msgstr "" - -#: f.edit.cc:3119 -msgid "Deband Bright" -msgstr "" - -#: f.edit.cc:3570 f.widgets.cc:472 f.widgets.cc:743 -msgid "Tone Mapping" -msgstr "Преобразование тона" - -#: f.edit.cc:3601 -msgid "low" -msgstr "Низкий" - -#: f.edit.cc:3603 -msgid "high" -msgstr "Высокий" - -#: f.edit.cc:3606 -msgid "Amplify" -msgstr "Усилить" - -#: f.edit.cc:4010 -msgid "Resize Image" -msgstr "Изменить размер изображения" - -#: f.edit.cc:4035 -msgid "W/H Ratio:" -msgstr "" - -#: f.edit.cc:4037 -msgid "Lock" -msgstr "" - -#: f.edit.cc:4039 -msgid "use previous settings" -msgstr "" - -#: f.edit.cc:4236 f.widgets.cc:474 -msgid "Flip" -msgstr "Отразить зеркально" - -#: f.edit.cc:4240 f.effects.cc:5222 -msgid "horizontal" -msgstr "горизонталь" - -#: f.edit.cc:4241 f.effects.cc:5226 -msgid "vertical" -msgstr "вертикаль" - -#: f.edit.cc:4334 -msgid "+Version" -msgstr "" - -#: f.edit.cc:4357 -msgid "Write Text on Image" -msgstr "Написать текст на изображении" - -#: f.edit.cc:4358 -msgid "Enter text, click/drag on image, right click to remove" -msgstr "" -"Введите текст, кликните/переместите по изображению, клик правой кнопкой для " -"удаления" - -#: f.edit.cc:4407 f.mashup.cc:2446 -msgid "Text" -msgstr "Текст" - -#: f.edit.cc:4412 -msgid "Use metadata key" -msgstr "" - -#: f.edit.cc:4417 -msgid "Use text file" -msgstr "" - -#: f.edit.cc:4436 f.mashup.cc:2464 -msgid "text" -msgstr "Текст" - -#: f.edit.cc:4437 f.edit.cc:5299 f.mashup.cc:2465 f.mashup.cc:2807 -msgid "backing" -msgstr "Фон" - -#: f.edit.cc:4438 f.edit.cc:5300 f.mashup.cc:2466 f.mashup.cc:2808 -msgid "outline" -msgstr "Контур" - -#: f.edit.cc:4439 f.edit.cc:5301 f.mashup.cc:2467 f.mashup.cc:2809 -msgid "shadow" -msgstr "тень" - -#: f.edit.cc:4465 -msgid "save to current file" -msgstr "" - -#: f.edit.cc:4466 f.file.cc:1835 -msgid "save as new file version" -msgstr "сохранить как новую версию" - -#: f.edit.cc:4467 -msgid "" -"save to current file \n" -"open next file with same text" -msgstr "" - -#: f.edit.cc:4628 f.mashup.cc:2566 f.tools.cc:1167 -msgid "select font" -msgstr "Выбрать шрифт" - -#: f.edit.cc:4898 -msgid "text file is defective" -msgstr "текстовый файл повреждён" - -#: f.edit.cc:5239 -msgid "" -"Enter line or arrow properties in dialog, \n" -"click/drag on image, right click to remove" -msgstr "" -"Введите свойства линии/стрелки в диалог \n" -"клик/перемещение по полю, правый клик для удаления" - -#: f.edit.cc:5270 -msgid "Write Line or Arrow on Image" -msgstr "Добавить линию/стрелку на изображение" - -#: f.edit.cc:5278 f.mashup.cc:2786 -msgid "Line length" -msgstr "Длина линии" - -#: f.edit.cc:5285 f.mashup.cc:2793 -msgid "Arrow head" -msgstr "Направление стрелки" - -#: f.edit.cc:5298 f.mashup.cc:2806 -msgid "line" -msgstr "линия" - -#: f.edit.cc:5327 -msgid "" -"fix line/arrow in layout \n" -" start new line/arrow" -msgstr "" -"фиксировать линию/стрелку в размещении \n" -" начать новую линию/стрелку" - -#: f.edit.cc:5918 f.widgets.cc:477 -msgid "Paint Edits" -msgstr "Редактор окраски" - -#: f.edit.cc:5925 f.edit.cc:6151 fotoxx-16.06.cc:3307 -msgid "" -"Select area cannot be kept.\n" -"Continue?" -msgstr "" -"Избранная область не может быть сохранена.\n" -"Продолжить?" - -#: f.edit.cc:5933 f.edit.cc:6159 f.tools.cc:2293 -msgid "Edit function must be active" -msgstr "Функция редактирования должна быть активна" - -#: f.edit.cc:5938 -msgid "Cannot use Paint Edits" -msgstr "" - -#: f.edit.cc:5964 -msgid "power: center" -msgstr "Усиление: центр" - -#: f.edit.cc:5969 -msgid "reset area" -msgstr "Сбросить область" - -#: f.edit.cc:6144 f.widgets.cc:478 -msgid "Leverage Edits" -msgstr "Нелинейное редактирование" - -#: f.edit.cc:6145 -msgid "Edit Function Amplifier" -msgstr "Усилитель функций редактирования" - -#: f.edit.cc:6164 -msgid "Cannot use Leverage Edits" -msgstr "" - -#: f.edit.cc:6194 -msgid "minimum" -msgstr "минимум" - -#: f.edit.cc:6196 -msgid "maximum" -msgstr "максимум" - -#: f.edit.cc:6497 -msgid "Edit Plugins" -msgstr "Редактировать плагины" - -#: f.edit.cc:6498 -msgid "Edit plugins menu" -msgstr "Редактировать меню плагинов" - -#: f.edit.cc:6506 -msgid "Run as Fotoxx edit function" -msgstr "Запустить как функцию редактирования Fotoxx" - -#: f.edit.cc:6744 -msgid "Plugin working ..." -msgstr "Работает плагин..." - -#: f.edit.cc:6753 -msgid "plugin failed" -msgstr "сбой плагина" - -#: f.effects.cc:65 -msgid "Set color depth to 1-16 bits" -msgstr "Установите глубину цвета в диапазоне от 1 до 16 бит " - -#: f.effects.cc:77 -msgid "Set Color Depth" -msgstr "Установка глубины цвета" - -#: f.effects.cc:221 -msgid "Convert to Sketch" -msgstr "Преобразовать в Абрис" - -#: f.effects.cc:297 -msgid "Clip Level" -msgstr "Уровень усечения" - -#: f.effects.cc:301 -msgid "Algorithm" -msgstr "Алгоритм" - -#: f.effects.cc:306 -msgid "Foreground" -msgstr "" - -#: f.effects.cc:309 -msgid "Background" -msgstr "" - -#: f.effects.cc:1214 f.widgets.cc:519 -msgid "Line Drawing" -msgstr "Рисунок линиями" - -#: f.effects.cc:1227 -msgid "black/white" -msgstr "ч.б" - -#: f.effects.cc:1505 f.widgets.cc:520 -msgid "Color Drawing" -msgstr "Рисунок цветом" - -#: f.effects.cc:1512 -msgid "Bright Areas" -msgstr "Яркие области" - -#: f.effects.cc:1766 f.widgets.cc:521 -msgid "Graduated Blur" -msgstr "Размытие полутонов" - -#: f.effects.cc:1770 -msgid "Contrast Limit" -msgstr "Ограничение контрастности" - -#: f.effects.cc:1773 f.repair.cc:934 -msgid "Blur Radius" -msgstr "Радиус размытия" - -#: f.effects.cc:1988 -msgid "Simulate Embossing" -msgstr "Имитировать чеканку" - -#: f.effects.cc:2005 -msgid "depth" -msgstr "Глубина" - -#: f.effects.cc:2207 -msgid "Simulate Tiles" -msgstr "Имитировать мозаику" - -#: f.effects.cc:2211 -msgid "tile size" -msgstr "Размер мозаики" - -#: f.effects.cc:2214 -msgid "tile gap" -msgstr "Расстояние между элементами" - -#: f.effects.cc:2217 -msgid "3D depth" -msgstr "Глубина 3D" - -#: f.effects.cc:2441 -msgid "Convert Image to Dots" -msgstr "Преобразование изображения в точки" - -#: f.effects.cc:2445 -msgid "dot size" -msgstr "Размер точки" - -#: f.effects.cc:2670 -msgid "Simulate Painting" -msgstr "Имитировать живопись" - -#: f.effects.cc:2674 -msgid "color depth" -msgstr "Глубина цвета" - -#: f.effects.cc:2678 -msgid "patch area goal" -msgstr "Мозаичные области" - -#: f.effects.cc:2682 -msgid "req. color match" -msgstr "Точность совпадения цвета " - -#: f.effects.cc:2686 -msgid "borders" -msgstr "Кромки" - -#: f.effects.cc:3259 f.widgets.cc:526 -msgid "Vignette" -msgstr "Инструмент виньетка" - -#: f.effects.cc:3608 -msgid "Add Texture" -msgstr "Добавить текстуру" - -#: f.effects.cc:3825 -msgid "Background Pattern" -msgstr "Паттерн фона" - -#: f.effects.cc:3829 -msgid "Pattern File:" -msgstr "Файл паттерна:" - -#: f.effects.cc:3834 -msgid "Zoom" -msgstr "Приблизить" - -#: f.effects.cc:3837 -msgid "Geometry" -msgstr "Геометрия" - -#: f.effects.cc:3838 -msgid "Calculate" -msgstr "Вычислить" - -#: f.effects.cc:3848 f.widgets.cc:528 -msgid "Pattern" -msgstr "Паттерн" - -#: f.effects.cc:3855 -msgid "Overlap" -msgstr "Наложение" - -#: f.effects.cc:3862 -msgid "Opacity" -msgstr "Прозрачность" - -#: f.effects.cc:3930 -msgid "choose pattern tile" -msgstr "выбрать элемент паттерна" - -#: f.effects.cc:4317 -msgid "Create Mosaic" -msgstr "Создать мозаику" - -#: f.effects.cc:4403 -msgid "Tile" -msgstr "Плитка" - -#: f.effects.cc:4411 f.widgets.cc:523 -msgid "Tiles" -msgstr "Мозаика" - -#: f.effects.cc:4417 -msgid "Tile blending" -msgstr "Смешивание плитки" - -#: f.effects.cc:4497 -#, c-format -msgid "exceeded max. tiles: %d" -msgstr "превышен максимум в %d плиток" - -#: f.effects.cc:4512 -#, c-format -msgid "only %d tile images found" -msgstr "найдено только %d файлов плиток" - -#: f.effects.cc:4905 f.widgets.cc:530 -msgid "Custom Kernel" -msgstr "Матричное преобразование" - -#: f.effects.cc:4909 -msgid "Kernel size" -msgstr "Размер ядра" - -#: f.effects.cc:4912 -msgid "Divisor" -msgstr "Делитель" - -#: f.effects.cc:4915 -msgid "Data file" -msgstr "Файл данных" - -#: f.effects.cc:4951 fotoxx-16.06.cc:3571 -msgid "Load settings from file" -msgstr "Загрузка установок из файлв" - -#: f.effects.cc:5212 f.widgets.cc:531 -msgid "Make Waves" -msgstr "Волны" - -#: f.effects.cc:5219 -msgid "wavelength" -msgstr "длина волны" - -#: f.effects.cc:5220 -msgid "amplitude" -msgstr "амплитуда" - -#: f.effects.cc:5221 -msgid "variance" -msgstr "отклонение" - -#: f.effects.cc:5232 -msgid "perspective" -msgstr "перспектива" - -#: f.effects.cc:5406 -msgid "Pull image using the mouse." -msgstr "" - -#: f.effects.cc:5427 f.widgets.cc:532 -msgid "Directed Blur" -msgstr "" - -#: f.effects.cc:5431 -msgid "blur span" -msgstr "" - -#: f.effects.cc:5434 -msgid "intensity" -msgstr "" - -#: f.effects.cc:5638 f.widgets.cc:533 -msgid "Blur Background" -msgstr "" - -#: f.effects.cc:5642 -msgid "constant blur" -msgstr "" - -#: f.effects.cc:5645 -msgid "increase blur with distance" -msgstr "" - -#: f.effects.cc:5647 -msgid "min. blur radius" -msgstr "" - -#: f.effects.cc:5650 -msgid "max. blur radius" -msgstr "" - -#: f.file.cc:182 -msgid "" -"use EXIF photo date or \n" -" file modification date" -msgstr "" - -#: f.file.cc:199 f.widgets.cc:608 -msgid "File" -msgstr "Файл" - -#: f.file.cc:355 -msgid "UFraw not installed" -msgstr "UFraw не установлен" - -#: f.file.cc:371 f.widgets.cc:745 -msgid "Open RAW file (ufraw)" -msgstr "Открыть RAW файл (ufraw)" - -#: f.file.cc:376 f.file.cc:447 -msgid "RAW type not registered in User Settings" -msgstr "Данный тип RAW отсутствует в настройках пользователя" - -#: f.file.cc:442 f.widgets.cc:746 -msgid "Open RAW file (Raw Therapee)" -msgstr "Открыть файл RAW (Raw Therapee)" - -#: f.file.cc:534 f.widgets.cc:423 -msgid "Open Image File" -msgstr "Открыть файл изображения" - -#: f.file.cc:553 -msgid "unknown file type" -msgstr "неизвестный тип файла" - -#: f.file.cc:747 -msgid "Create Blank Image" -msgstr "Создать пустое изображение" - -#: f.file.cc:749 -msgid "file name" -msgstr "Имя файла" - -#: f.file.cc:782 -msgid "supply a file name" -msgstr "введите имя файлв" - -#: f.file.cc:932 f.widgets.cc:428 -msgid "Rename Image File" -msgstr "Переименовать файл изображения" - -#: f.file.cc:939 -msgid "Old Name" -msgstr "Старое Имя" - -#: f.file.cc:949 -msgid "previous name" -msgstr "предыдущее имя" - -#: f.file.cc:950 -msgid "add 1" -msgstr "Плюс 1" - -#: f.file.cc:1129 -msgid "Copy or Move Image File" -msgstr "" - -#: f.file.cc:1171 -msgid "New Location:" -msgstr "" - -#: f.file.cc:1176 -msgid "copy (duplicate file)" -msgstr "" - -#: f.file.cc:1178 -msgid "move (remove original)" -msgstr "" - -#: f.file.cc:1257 -msgid "new location is not a directory" -msgstr "Местоположение каталога не действительно" - -#: f.file.cc:1297 f.file.cc:1511 -#, c-format -msgid "" -"delete failed: \n" -" %s" -msgstr "" -"Удаление не удалось: \n" -" %s" - -#: f.file.cc:1393 -msgid "Delete or Trash Image File" -msgstr "" - -#: f.file.cc:1460 -msgid "" -"GTK g_file_trash() function failed. \n" -"Desktop trash folder will be used." -msgstr "" - -#: f.file.cc:1463 -#, c-format -msgid "Cannot create desktop trash folder: %s" -msgstr "" - -#: f.file.cc:1483 -msgid "not a known image file" -msgstr "" - -#: f.file.cc:1489 -msgid "Delete read-only file?" -msgstr "Удалить файл только для чтения?" - -#: f.file.cc:1491 -msgid "Trash read-only file?" -msgstr "" - -#: f.file.cc:1564 -#, c-format -msgid "error: %s" -msgstr "Ошибка: %s" - -#: f.file.cc:1589 -msgid "no more images" -msgstr "последнее изображение" - -#: f.file.cc:1817 -msgid "Save Image File" -msgstr "Сохранение Файла Изображения" - -#: f.file.cc:1827 -msgid "new version" -msgstr "новая версия" - -#: f.file.cc:1828 -msgid "new file" -msgstr "новый файл" - -#: f.file.cc:1829 -msgid "replace file" -msgstr "замещение файла" - -#: f.file.cc:1836 f.file.cc:2255 -msgid "save as new file name or type" -msgstr "сохранить с новым именем/форматом" - -#: f.file.cc:1838 -msgid "replace old file (OVERWRITE)" -msgstr "замещение файла (ПЕРЕЗАПИСЬ)" - -#: f.file.cc:1877 f.file.cc:2020 -msgid "cannot save as RAW type" -msgstr "невозможно сохранить в RAW" - -#: f.file.cc:1973 -msgid "too many file versions: 99" -msgstr "" - -#: f.file.cc:2014 -msgid "" -"Transparency map will be lost.\n" -"save to PNG file to retain." -msgstr "" - -#: f.file.cc:2098 -msgid "save anyway" -msgstr "" - -#: f.file.cc:2164 -msgid "Unable to copy EXIF/IPTC data" -msgstr "Невозможно скопировать данные EXIF/IPTC" - -#: f.file.cc:2273 f.file.cc:2276 -msgid "make current" -msgstr "Сделать текущим" - -#: f.file.cc:2274 -msgid "(new file becomes current file)" -msgstr "" - -#: f.file.cc:2387 -#, c-format -msgid "" -"Overwrite file? \n" -" %s" -msgstr "" -"Перезаписать файл? \n" -" %s" - -#: f.file.cc:2478 -msgid "Start of gallery, next: preceding gallery." -msgstr "" - -#: f.file.cc:2479 -msgid "End of gallery, next: following gallery." -msgstr "" - -#: f.file.cc:2480 -msgid "" -"The next preceding gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" - -#: f.file.cc:2482 -msgid "" -"The next following gallery does not exist or contains no images. \n" -"(No subdirectories and no further directories are searched)." -msgstr "" - -#: f.file.cc:2556 f.widgets.cc:589 -msgid "Quick Start" -msgstr "Быстрый Старт" - -#: f.file.cc:2559 f.widgets.cc:590 -msgid "User Guide" -msgstr "Руководство пользователя" - -#: f.file.cc:2562 f.widgets.cc:591 -msgid "User Guide Changes" -msgstr "Изменения в руководстве пользователя" - -#: f.file.cc:2565 f.widgets.cc:593 -msgid "README" -msgstr "README" - -#: f.file.cc:2568 f.widgets.cc:592 -msgid "Edit Functions Summary" -msgstr "Краткое изложение функций" - -#: f.file.cc:2571 f.widgets.cc:594 -msgid "Change Log" -msgstr "Журнал изменений" - -#: f.file.cc:2574 f.widgets.cc:595 -msgid "Log File" -msgstr "Файл журнала" - -#: f.file.cc:2577 f.widgets.cc:596 -msgid "Translations" -msgstr "Переводы" - -#: f.file.cc:2580 f.widgets.cc:597 -msgid "Home Page" -msgstr "Домашняя страница" - -#: f.file.cc:2583 f.widgets.cc:598 -msgid "About" -msgstr "О программе" - -#: f.file.cc:2587 f.widgets.cc:620 f.widgets.cc:644 fotoxx.h:1135 -msgid "Help" -msgstr "Справка" - -#: f.file.cc:2742 f.file.cc:2812 -#, c-format -msgid "file not found: %s" -msgstr "Файл не найден: %s" - -#: f.file.cc:2748 f.file.cc:2818 -#, c-format -msgid "file type not supported: %s" -msgstr "тип файла не поддерживается: %s" - -#: f.gallery.cc:936 f.gallery.cc:1025 f.widgets.cc:642 -msgid "Scroll" -msgstr "Скролл" - -#: f.gallery.cc:940 f.widgets.cc:420 f.widgets.cc:632 -msgid "Sync Gallery" -msgstr "" - -#: f.gallery.cc:950 f.repair.cc:6658 f.repair.cc:6663 fotoxx.h:1157 -msgid "Open" -msgstr "Открыть" - -#: f.gallery.cc:951 -msgid "change directory" -msgstr "Смена каталога" - -#: f.gallery.cc:959 -msgid "GoTo" -msgstr "Переход" - -#: f.gallery.cc:965 f.widgets.cc:637 -msgid "Sort" -msgstr "Сортировка" - -#: f.gallery.cc:971 f.gallery.cc:1540 f.gallery.cc:1541 f.gallery.cc:1543 -#: f.widgets.cc:635 -msgid "Zoom+" -msgstr "Увеличить" - -#: f.gallery.cc:981 f.gallery.cc:1542 f.gallery.cc:1544 f.widgets.cc:636 -msgid "Zoom-" -msgstr "Уменьшить" - -#: f.gallery.cc:993 f.gallery.cc:1548 -msgid "Row↑" -msgstr "Строка↑" - -#: f.gallery.cc:1001 f.gallery.cc:1549 -msgid "Row↓" -msgstr "Строка↓" - -#: f.gallery.cc:1009 f.gallery.cc:1546 f.gallery.cc:1553 f.widgets.cc:640 -msgid "Page↑" -msgstr "Страница↑" - -#: f.gallery.cc:1017 f.gallery.cc:1547 f.gallery.cc:1554 f.widgets.cc:641 -msgid "Page↓" -msgstr "Страница↓" - -#: f.gallery.cc:1031 f.gallery.cc:1551 f.widgets.cc:638 -msgid "First" -msgstr "В начало" - -#: f.gallery.cc:1032 f.gallery.cc:1552 f.widgets.cc:639 -msgid "Last" -msgstr "В конец" - -#: f.gallery.cc:1145 -msgid "Choose image directory" -msgstr "Выберите папку для файлов" - -#: f.gallery.cc:1152 f.gallery.cc:1165 -msgid "recent images" -msgstr "" - -#: f.gallery.cc:1153 f.gallery.cc:1170 -msgid "newest images" -msgstr "" - -#: f.gallery.cc:1234 -msgid "no albums found" -msgstr "альбомы не найдены" - -#: f.gallery.cc:1241 -msgid "Choose album" -msgstr "Выберите альбом" - -#: f.gallery.cc:1288 f.tools.cc:986 -msgid "Gallery Sort" -msgstr "Сортировка галереи" - -#: f.gallery.cc:1292 -msgid "File Name" -msgstr "Имя файла" - -#: f.gallery.cc:1293 -msgid "File Mod Date/Time" -msgstr "Время/Дата модификации" - -#: f.gallery.cc:1294 -msgid "Photo Date/Time (EXIF)" -msgstr "Дата/время изображения (EXIF)" - -#: f.gallery.cc:1296 -msgid "ascending" -msgstr "по нарастанию" - -#: f.gallery.cc:1297 -msgid "descending" -msgstr "по убыванию" - -#: f.gallery.cc:2373 fotoxx.h:1182 -msgid "Select Files" -msgstr "Выбрать файлы" - -#: f.gallery.cc:2838 -msgid "Click list position. Click thumbnail to add." -msgstr "Щёлкните по элементу списка. Щелкните по миниатюре для добавления" - -#: f.gallery.cc:2864 f.gallery.cc:3112 -msgid "Edit Bookmarks" -msgstr "Редактировать закладки" - -#: f.gallery.cc:3039 -msgid "unable to save bookmarks file" -msgstr "невозможно сокранить файл закладок" - -#: f.gallery.cc:3112 -msgid "Go To Bookmark" -msgstr "Перейти по закладке" - -#: f.gallery.cc:3169 f.meta.cc:3528 f.repair.cc:8279 -msgid "file not found" -msgstr "Файл не найден" - -#: f.mashup.cc:170 -msgid "Mashup layout and background image" -msgstr "Макет и фоновое изображение Коллажа" - -#: f.mashup.cc:213 -msgid "choose an image file" -msgstr "выберите файл изображения" - -#: f.mashup.cc:214 -msgid "use current image file" -msgstr "использование текущего файла изображения" - -#: f.mashup.cc:215 -msgid "specify layout size and color" -msgstr "задайте размер и цвет фона макета" - -#: f.mashup.cc:216 -msgid "open a Mashup project file" -msgstr "открыть файл проекта Коллажа" - -#: f.mashup.cc:241 -msgid "choose layout file" -msgstr "выберите файл макета" - -#: f.mashup.cc:259 -msgid "no current file" -msgstr "нет текущего файла" - -#: f.mashup.cc:291 -msgid "Make Layout Image" -msgstr "Создать Макет" - -#: f.mashup.cc:293 -msgid "project name" -msgstr "имя проекта" - -#: f.mashup.cc:319 -msgid "supply a project name" -msgstr "введите имя проекта" - -#: f.mashup.cc:417 -msgid "Edit Images" -msgstr "Редактирование Изображений" - -#: f.mashup.cc:418 f.mashup.cc:2441 -msgid "Edit Text" -msgstr "Редактирование текста" - -#: f.mashup.cc:419 -msgid "Edit Line" -msgstr "Редактировать Линию" - -#: f.mashup.cc:420 -msgid "Rescale" -msgstr "Масштабирование" - -#: f.mashup.cc:423 -msgid "add or edit images" -msgstr "добавить или редактировать изображения" - -#: f.mashup.cc:424 -msgid "add or edit text" -msgstr "добавить или редактировать текст" - -#: f.mashup.cc:425 -msgid "add or edit lines/arrows" -msgstr "добавить/редактировать линии/стрелки" - -#: f.mashup.cc:426 -msgid "change project scale" -msgstr "изменение масштаба проекта" - -#: f.mashup.cc:427 -msgid "project complete" -msgstr "проект завершён" - -#: f.mashup.cc:428 -msgid "cancel project" -msgstr "отменить проект" - -#: f.mashup.cc:446 -msgid "rescale project" -msgstr "масштабирование проекта" - -#: f.mashup.cc:501 -msgid "save Mashup output file" -msgstr "сохранить файл" - -#: f.mashup.cc:521 -msgid "save Mashup project file?" -msgstr "" - -#: f.mashup.cc:533 -msgid "delete Mashup project file?" -msgstr "" - -#: f.mashup.cc:592 -msgid "Open Project" -msgstr "Открыть проект" - -#: f.mashup.cc:621 -#, c-format -msgid "" -"layout image file missing: \n" -" %s" -msgstr "" -"файл макета не найден: \n" -" %s" - -#: f.mashup.cc:678 -#, c-format -msgid "" -"overlay image file missing: \n" -" %s" -msgstr "" -"файл оверлея не найден: \n" -" %s" - -#: f.mashup.cc:983 -msgid "project file is defective" -msgstr "файл проекта повреждён" - -#: f.mashup.cc:1013 -msgid "Save Project" -msgstr "Сохранить проект" - -#: f.mashup.cc:1154 -msgid "layout exceeds 2 gigabytes" -msgstr "размер макета превысил 2ГБ" - -#: f.mashup.cc:1228 -msgid "Click image to select, drag image to move." -msgstr "Клик для выбора изображения, размещение мышкой." - -#: f.mashup.cc:1229 -msgid "Make black margins transparent" -msgstr "Сделать чёрные границы прозрачными" - -#: f.mashup.cc:1268 -msgid "Current image:" -msgstr "Текущее изображение:" - -#: f.mashup.cc:1272 -msgid "Cycle through images:" -msgstr "Циклический перебор изображений" - -#: f.mashup.cc:1279 -msgid "Scale" -msgstr "Масштаб" - -#: f.mashup.cc:1288 -msgid "Stacking Order" -msgstr "Порядок наложения" - -#: f.mashup.cc:1289 -msgid "raise" -msgstr "поднять" - -#: f.mashup.cc:1290 -msgid "lower" -msgstr "опустить" - -#: f.mashup.cc:1293 -msgid "Base Transparency" -msgstr "Базовая Прозрачность" - -#: f.mashup.cc:1297 -msgid "Var. Transparency" -msgstr "Перем. Прозрачность" - -#: f.mashup.cc:1298 -msgid "Paint" -msgstr "Рисовать" - -#: f.mashup.cc:1301 -msgid "Bend and fine-align" -msgstr "Сгиб и преобразования" - -#: f.mashup.cc:1302 -msgid "Warp" -msgstr "Деформация" - -#: f.mashup.cc:1311 -msgid "Margins" -msgstr "Границы" - -#: f.mashup.cc:1312 -msgid "Hard" -msgstr "Резкая" - -#: f.mashup.cc:1313 f.repair.cc:6252 -msgid "Blend" -msgstr "Смешивание" - -#: f.mashup.cc:1327 -msgid "add images to layout" -msgstr "добавить изображения к размещению" - -#: f.mashup.cc:1566 -msgid "Paint Image Transparencies" -msgstr "Изменение Прозрачности Мышью" - -#: f.mashup.cc:1584 -msgid "Gradual" -msgstr "Постепенный" - -#: f.mashup.cc:1589 fotoxx.h:1161 -msgid "Power" -msgstr "Скорость" - -#: f.mashup.cc:1823 -msgid "Pull on the image with the mouse." -msgstr "Перетащите изображение мышью" - -#: f.mashup.cc:1839 -msgid "Warp Image" -msgstr "Деформация изображения" - -#: f.mashup.cc:2272 -#, c-format -msgid "exceeded %d images" -msgstr "превышено %d изображений" - -#: f.mashup.cc:2414 -msgid "Enter text, [Add] to layout, edit properties." -msgstr "" - -#: f.mashup.cc:2494 -msgid "Text File:" -msgstr "Текстовый файл:" - -#: f.mashup.cc:2498 -msgid "add entered text to layout" -msgstr "добавить текст к размещению" - -#: f.mashup.cc:2627 -msgid "click position to add text" -msgstr "" - -#: f.mashup.cc:2633 -#, c-format -msgid "exceeded %d text entries" -msgstr "превышено %d блоков текста" - -#: f.mashup.cc:2756 -msgid "Set line properties, [Add] to layout, edit." -msgstr "" - -#: f.mashup.cc:2780 -msgid "Edit Line/Arrow" -msgstr "Ввести Линию/Стрелку" - -#: f.mashup.cc:2835 -msgid "add line/arrow to layout" -msgstr "добавить линию/стрелку к размещению" - -#: f.mashup.cc:2928 -msgid "click position to add line" -msgstr "" - -#: f.mashup.cc:2934 -#, c-format -msgid "exceeded %d line entries" -msgstr "превышение %d хранимых линий" - -#: f.meta.cc:252 f.meta.cc:426 f.widgets.cc:723 -msgid "View Metadata" -msgstr "Просмотр метаданных" - -#: f.meta.cc:548 -msgid "Geocoding service by MapQuest" -msgstr "" - -#: f.meta.cc:610 f.widgets.cc:440 f.widgets.cc:724 -msgid "Edit Metadata" -msgstr "Редактировать метаданные" - -#: f.meta.cc:613 -msgid "save metadata to file" -msgstr "" - -#: f.meta.cc:622 -msgid "Image Date" -msgstr "Дата" - -#: f.meta.cc:625 -msgid "Time" -msgstr "Время" - -#: f.meta.cc:633 -msgid "Rating (stars):" -msgstr "Рейтинг:" - -#: f.meta.cc:645 -msgid "Caption" -msgstr "Подпись" - -#: f.meta.cc:651 -msgid "Comments" -msgstr "Комментарий" - -#: f.meta.cc:659 f.meta.cc:3618 -msgid "city" -msgstr "Город" - -#: f.meta.cc:662 f.meta.cc:3621 -msgid "country" -msgstr "Страна" - -#: f.meta.cc:684 -msgid "Image Tags" -msgstr "Теги изображений" - -#: f.meta.cc:690 -msgid "Recent Tags" -msgstr "Последние теги" - -#: f.meta.cc:696 -msgid "Enter New Tag" -msgstr "" - -#: f.meta.cc:703 f.meta.cc:5459 -msgid "Matching Tags" -msgstr "" - -#: f.meta.cc:712 f.meta.cc:1708 f.meta.cc:5466 -msgid "Defined Tags Category" -msgstr "" - -#: f.meta.cc:719 -msgid "search known locations" -msgstr "" - -#: f.meta.cc:720 -msgid "search using web service" -msgstr "" - -#: f.meta.cc:721 -msgid "create tag categories and tags" -msgstr "" - -#: f.meta.cc:936 f.meta.cc:3778 -msgid "city not found" -msgstr "Город не найден" - -#: f.meta.cc:1214 f.meta.cc:3836 f.meta.cc:4352 -#, c-format -msgid "bad latitude/longitude: %s %s" -msgstr "Неправильная широта/долгота: %s %s" - -#: f.meta.cc:1248 fotoxx.h:1145 -msgid "Manage Tags" -msgstr "Управление тегами" - -#: f.meta.cc:1248 -msgid "orphan tags" -msgstr "неиспользуемые тэги" - -#: f.meta.cc:1252 -msgid "category" -msgstr "Категория" - -#: f.meta.cc:1255 -msgid "tag" -msgstr "тег" - -#: f.meta.cc:1262 -msgid "Defined Tags:" -msgstr "Известные теги:" - -#: f.meta.cc:1404 f.widgets.cc:441 f.widgets.cc:725 -msgid "Edit Any Metadata" -msgstr "Редактировать любые метаданные" - -#: f.meta.cc:1404 f.meta.cc:2148 -msgid "Full List" -msgstr "" - -#: f.meta.cc:1409 f.meta.cc:2153 -msgid "click to select" -msgstr "" - -#: f.meta.cc:1418 f.meta.cc:2164 -msgid "key name" -msgstr "имя ключа" - -#: f.meta.cc:1420 f.meta.cc:2165 -msgid "key value" -msgstr "значение ключа" - -#: f.meta.cc:1506 f.meta.cc:2308 -msgid "" -"The command: $ man Image::ExifTool::TagNames \n" -"will show over 15000 \"standard\" tag names" -msgstr "" - -#: f.meta.cc:1579 f.widgets.cc:442 -msgid "Delete Metadata" -msgstr "Удалить метаданные" - -#: f.meta.cc:1581 fotoxx.h:1095 -msgid "All" -msgstr "Все" - -#: f.meta.cc:1582 -msgid "One Key:" -msgstr "Один ключ:" - -#: f.meta.cc:1685 f.widgets.cc:443 f.widgets.cc:574 -msgid "Batch Add/Remove Tags" -msgstr "Групповое добавление/удаление тэгов" - -#: f.meta.cc:1696 -msgid "tags to add" -msgstr "Теги для добавления" - -#: f.meta.cc:1697 -msgid "tags to remove" -msgstr "удаляемые тэги" - -#: f.meta.cc:1782 -#, c-format -msgid "" -"%s \n" -" too many tags" -msgstr "" -"%s \n" -"слишком много тегов" - -#: f.meta.cc:1897 -msgid "specify files and tags" -msgstr "задайте файлы и тэги" - -#: f.meta.cc:1957 -msgid "tag names file" -msgstr "" - -#: f.meta.cc:2031 -#, c-format -msgid "" -"%d tags to rename \n" -"in %d image files. \n" -"Proceed?" -msgstr "" - -#: f.meta.cc:2148 -msgid "Batch Change Metadata" -msgstr "" - -#: f.meta.cc:2222 -msgid "enter key names" -msgstr "" - -#: f.meta.cc:2228 f.meta.cc:2422 fotoxx.h:1154 -msgid "no files selected" -msgstr "нет выбранных файлов" - -#: f.meta.cc:2407 f.widgets.cc:446 f.widgets.cc:577 -msgid "Batch Report Metadata" -msgstr "" - -#: f.meta.cc:2580 -msgid "date format is YYYY-MM-DD" -msgstr "формат даты ГГГГ-ММ-ДД" - -#: f.meta.cc:2584 -msgid "date is invalid" -msgstr "неверная дата" - -#: f.meta.cc:2618 -msgid "time format is HH:MM [:SS]" -msgstr "формат времени ЧЧ:ММ[:СС]" - -#: f.meta.cc:2622 -msgid "time is invalid" -msgstr "неверное время" - -#: f.meta.cc:3587 f.widgets.cc:447 f.widgets.cc:578 -msgid "Batch Add Geotags" -msgstr "Групповое добавление геотегов" - -#: f.meta.cc:3824 -msgid "" -"data is incomplete \n" -" proceed?" -msgstr "" -"Данные не полные \n" -" Продолжить?" - -#: f.meta.cc:3874 -msgid "choose city" -msgstr "Выбрать город" - -#: f.meta.cc:3961 -msgid "not found" -msgstr "Не найден" - -#: f.meta.cc:3962 -msgid "city and country required" -msgstr "укажите город и страну" - -#: f.meta.cc:4465 f.meta.cc:5003 f.meta.cc:5347 f.meta.cc:6504 -msgid "-noindex in use, disabled" -msgstr "невозможно: запущено с -noindex" - -#: f.meta.cc:4483 -msgid "choose map file" -msgstr "выберите файл карты" - -#: f.meta.cc:4624 -msgid "" -"fotoxx-maps package not installed \n" -"(see http://kornelix.net/packages and /tarballs)" -msgstr "" - -#: f.meta.cc:4629 -#, c-format -msgid "map file %s is missing" -msgstr "файл карты %s не найден" - -#: f.meta.cc:4633 -#, c-format -msgid "" -"map latitude/longitude data unreasonable \n" -" %.3f %.3f %.3f %.3f" -msgstr "" -"данные широты/долготы бессмысленны \n" -" %.3f %.3f %.3f %.3f" - -#: f.meta.cc:4662 -msgid "search range (km)" -msgstr "Диапазон поиска (км)" - -#: f.meta.cc:4940 f.meta.cc:5282 -msgid "No matching images found" -msgstr "Соответствующие изображения не найдены" - -#: f.meta.cc:5118 -msgid "image file has no latitude/longitude" -msgstr "" - -#: f.meta.cc:5384 -msgid "Search Image Metadata" -msgstr "Поиск  метаданных изображения" - -#: f.meta.cc:5388 -msgid "images to search:" -msgstr "изображения для поиска:" - -#: f.meta.cc:5389 -msgid "all" -msgstr "все" - -#: f.meta.cc:5390 -msgid "current set only" -msgstr "только активный набор" - -#: f.meta.cc:5393 -msgid "matching images:" -msgstr "подходящие изображения:" - -#: f.meta.cc:5394 -msgid "new set" -msgstr "новый набор" - -#: f.meta.cc:5395 -msgid "add to set" -msgstr "добавить в набор" - -#: f.meta.cc:5396 -msgid "remove" -msgstr "удалить" - -#: f.meta.cc:5399 -msgid "report type:" -msgstr "тип отчёта:" - -#: f.meta.cc:5400 -msgid "gallery" -msgstr "галерея" - -#: f.meta.cc:5407 -msgid "date range" -msgstr "Диапазон дат" - -#: f.meta.cc:5408 -msgid "stars range" -msgstr "Диапазон рейтинга" - -#: f.meta.cc:5409 -msgid "search tags" -msgstr "Поиск тегов" - -#: f.meta.cc:5410 -msgid "search text" -msgstr "Поиск текста" - -#: f.meta.cc:5411 -msgid "search files" -msgstr "Поиск файлов" - -#: f.meta.cc:5416 -msgid "(yyyymmdd)" -msgstr "(ггггммдд)" - -#: f.meta.cc:5421 -msgid "last version only" -msgstr "только последняя версия" - -#: f.meta.cc:5423 -msgid "all/any" -msgstr "Все/любой" - -#: f.meta.cc:5442 -msgid "search locations" -msgstr "" - -#: f.meta.cc:5448 -msgid "search other metadata" -msgstr "" - -#: f.meta.cc:5455 -msgid "Enter Search Tag" -msgstr "" - -#: f.meta.cc:5737 -#, c-format -msgid "not a defined tag: %s" -msgstr "" - -#: f.meta.cc:5768 -msgid "" -"to remove images from current set, \n" -"search current set" -msgstr "" -"для удаления изображений из активного набора, \n" -"поиск активного набора" - -#: f.meta.cc:5775 -msgid "" -"to add images to current set, \n" -"search all images" -msgstr "" -"для добавления изображений в активный набор \n" -"поиск всех изображений" - -#: f.meta.cc:5820 -#, c-format -msgid "" -"search dates not reasonable \n" -" %s %s" -msgstr "" - -#: f.meta.cc:5838 -msgid "stars range not reasonable" -msgstr "неверный диапазон рейтинга" - -#: f.meta.cc:6082 -#, c-format -msgid "images added: %d removed: %d new count: %d" -msgstr "добавлено изображений: %d удалено: %d осталось: %d" - -#: f.meta.cc:6085 -msgid "no changes made" -msgstr "без изменений" - -#: f.meta.cc:6237 -msgid "" -"These items are always reported: \n" -"date, stars, tags, caption, comment" -msgstr "" -"Всегда предоставляются: \n" -"дата, рейтинг, теги, подпись, комментарии" - -#: f.meta.cc:6261 -msgid "Additional Items for Report" -msgstr "Дополнительные пункты для отчета" - -#: f.meta.cc:6267 -msgid "Keyword" -msgstr "Ключевое слово" - -#: f.meta.cc:6274 -msgid "Match Criteria" -msgstr "Критерии подбора" - -#: f.meta.cc:6519 -msgid "Report Geotag Groups" -msgstr "Сообщение группы геотегов" - -#: f.meta.cc:6520 -msgid "Group by country" -msgstr "Группировать по стране" - -#: f.meta.cc:6521 -msgid "Group by country/city" -msgstr "Группировать по стране/городу" - -#: f.meta.cc:6522 -msgid "Group by country/city/date" -msgstr "Группировать по стране/городу/дате" - -#: f.meta.cc:6525 -msgid "Combine within" -msgstr "Объединить в" - -#: f.meta.cc:6527 -msgid "days" -msgstr "Дней" - -#: f.meta.cc:6643 -msgid "geotag groups" -msgstr "группы геотегов" - -#: f.meta.cc:7241 -msgid "image index is missing" -msgstr "нет индекса изображений" - -#: f.repair.cc:168 -msgid "dark" -msgstr "" - -#: f.repair.cc:169 -msgid "light" -msgstr "" - -#: f.repair.cc:1200 -msgid "Apply repeatedly while watching the image." -msgstr "" - -#: f.repair.cc:1201 -msgid "Measure" -msgstr "" - -#: f.repair.cc:1237 -msgid "Noise Reduction" -msgstr "Подавление шума" - -#: f.repair.cc:1258 -msgid "Flatten 1" -msgstr "" - -#: f.repair.cc:1259 -msgid "Flatten 2" -msgstr "" - -#: f.repair.cc:1260 -msgid "Median" -msgstr "" - -#: f.repair.cc:1280 -msgid "dark areas" -msgstr "тёмные зоны" - -#: f.repair.cc:1282 -msgid "all areas" -msgstr "все зоны" - -#: f.repair.cc:2174 -msgid "Measure Noise" -msgstr "" - -#: f.repair.cc:2175 -msgid "Click on a monotone image area." -msgstr "" - -#: f.repair.cc:2338 -msgid "" -"1. Drag mouse to select. \n" -"2. Erase. 3. Repeat. " -msgstr "" -"1. Передвинуть мышь для выбора. \n" -"2. Стереть. 3. Повторить. " - -#: f.repair.cc:2360 f.widgets.cc:485 -msgid "Smart Erase" -msgstr "Умное стирание" - -#: f.repair.cc:2365 fotoxx.h:1165 -msgid "Radius" -msgstr "Радиус" - -#: f.repair.cc:2367 f.widgets.cc:483 -msgid "Blur" -msgstr "Размыть" - -#: f.repair.cc:2370 -msgid "New Area" -msgstr "Новая область" - -#: f.repair.cc:2719 -msgid "" -"Method 1:\n" -" Left-click on red-eye to darken.\n" -"Method 2:\n" -" Drag down and right to enclose red-eye.\n" -" Left-click on red-eye to darken.\n" -"Undo red-eye:\n" -" Right-click on red-eye." -msgstr "" -" Метод 1:\n" -" Кликните левой кнопкой мышки на красных глазах.\n" -" Метод 2:\n" -" Движение мышью вниз и вправо, чтобы выделить красные глаза.\n" -" Кликните левой кнопкой мышки на красных глазах.\n" -" Для отмены:\n" -" Кликните правой кнопкой мышки на красных глазах." - -#: f.repair.cc:2735 -msgid "Red Eye Reduction" -msgstr "Снижение эффекта красных глаз" - -#: f.repair.cc:3200 -msgid "" -"shift + left click: pick color or image position \n" -"left click or drag: paint color or copy image \n" -"right click or drag: remove color or image" -msgstr "" -"Shift + левый клик: задать цвет или расположение \n" -"Левый клик/перемещение: рисовать цветом / копировать фрагмент \n" -"Правый клик/перемещение: удаление цвета/фрагмента" - -#: f.repair.cc:3233 f.widgets.cc:487 -msgid "Paint/Clone" -msgstr "Перекрасить пиксели" - -#: f.repair.cc:3237 -msgid "paint color" -msgstr "Рисовать цветом" - -#: f.repair.cc:3240 -msgid "copy from image" -msgstr "Копировать из изображения" - -#: f.repair.cc:3247 f.repair.cc:3837 -msgid "paintbrush radius" -msgstr "Радиус кисти" - -#: f.repair.cc:3248 -msgid "transparency center" -msgstr "Прозрачность центра" - -#: f.repair.cc:3249 -msgid "transparency edge" -msgstr "Прозрачность края" - -#: f.repair.cc:3256 f.repair.cc:3844 -msgid "gradual paint" -msgstr "закрашивание" - -#: f.repair.cc:3257 -msgid "paint over transparent areas" -msgstr "" - -#: f.repair.cc:3797 -msgid "" -"left drag: add transparency \n" -"right drag: add opacity" -msgstr "" - -#: f.repair.cc:3829 f.widgets.cc:488 -msgid "Paint Transparency" -msgstr "" - -#: f.repair.cc:3838 -msgid "strength center" -msgstr "" - -#: f.repair.cc:3839 -msgid "strength edge" -msgstr "" - -#: f.repair.cc:4094 f.widgets.cc:489 -msgid "Add Transparency" -msgstr "" - -#: f.repair.cc:4098 -msgid "Match Brightness" -msgstr "" - -#: f.repair.cc:4103 -msgid "Match Color" -msgstr "" - -#: f.repair.cc:4105 -msgid "click on image to select color" -msgstr "" - -#: f.repair.cc:4108 f.repair.cc:5318 -msgid "Match using:" -msgstr "" - -#: f.repair.cc:4114 f.repair.cc:5324 -msgid "Match Level:" -msgstr "" - -#: f.repair.cc:4121 -msgid "Invert Match" -msgstr "" - -#: f.repair.cc:4124 fotoxx.h:1190 -msgid "Transparency" -msgstr "Прозрачность" - -#: f.repair.cc:4386 f.widgets.cc:490 -msgid "Color Mode" -msgstr "Цветовые режимы" - -#: f.repair.cc:4390 -msgid "black/white positive" -msgstr "Черно-белый позитив" - -#: f.repair.cc:4391 -msgid "black/white negative" -msgstr "Черно-белый негатив" - -#: f.repair.cc:4392 -msgid "color positive" -msgstr "Цветной позитив" - -#: f.repair.cc:4393 -msgid "color negative" -msgstr "Цветной негатив" - -#: f.repair.cc:4394 -msgid "sepia" -msgstr "Сепия" - -#: f.repair.cc:4574 f.widgets.cc:491 -msgid "Shift Colors" -msgstr "Исправить цвет" - -#: f.repair.cc:4810 f.widgets.cc:492 -msgid "Color Saturation" -msgstr "" - -#: f.repair.cc:4998 -msgid "+Brightness" -msgstr "+Яркость" - -#: f.repair.cc:4999 -msgid "+Red -Cyan" -msgstr "+Красный -Голубой" - -#: f.repair.cc:5000 -msgid "+Green -Magenta" -msgstr "+Зеленый -Пурпурный" - -#: f.repair.cc:5001 -msgid "+Blue -Yellow" -msgstr "+Синий -Желтый" - -#: f.repair.cc:5007 fotoxx.h:1167 -msgid "Red" -msgstr "Красный" - -#: f.repair.cc:5008 fotoxx.h:1132 -msgid "Green" -msgstr "Зеленый" - -#: f.repair.cc:5009 fotoxx.h:1102 -msgid "Blue" -msgstr "Синий" - -#: f.repair.cc:5313 -msgid "Input color to match and adjust:" -msgstr "" - -#: f.repair.cc:5315 -msgid "shift+click on image to select color" -msgstr "" - -#: f.repair.cc:5319 -msgid "Hue" -msgstr "" - -#: f.repair.cc:5320 f.repair.cc:5352 -msgid "Saturation" -msgstr "" - -#: f.repair.cc:5321 f.repair.cc:5353 -msgid "Lightness" -msgstr "" - -#: f.repair.cc:5331 -msgid "Output Color" -msgstr "" - -#: f.repair.cc:5351 -msgid "Color Hue" -msgstr "" - -#: f.repair.cc:5354 -msgid "Adjustment" -msgstr "" - -#: f.repair.cc:5839 -msgid "Ramp brightness across image" -msgstr "Смещение яркости по изображению" - -#: f.repair.cc:6163 f.tools.cc:2184 -msgid "Click image to select pixels." -msgstr "Кликните изображение для выбора пикселей." - -#: f.repair.cc:6194 -msgid "Color Ramp" -msgstr "" - -#: f.repair.cc:6205 -msgid "Metric:" -msgstr "Метрика:" - -#: f.repair.cc:6630 -msgid "Color Match Images" -msgstr "Подобрать цвет изображений" - -#: f.repair.cc:6656 -msgid "mouse radius for color sample" -msgstr "Радиус мыши для образца цвета" - -#: f.repair.cc:6659 -msgid "image for source color" -msgstr "Изображениедля источника цвета" - -#: f.repair.cc:6661 -msgid "click on image to get source color" -msgstr "Кликните по изображению для получения исходного цвета" - -#: f.repair.cc:6664 -msgid "image to set matching color" -msgstr "Изображение для подбора цвета" - -#: f.repair.cc:6666 -msgid "click on image to set matching color" -msgstr "Кликните по изображению для подбора цвета" - -#: f.repair.cc:6727 -msgid "select source image color first" -msgstr "Сначала выберите исходный цвет" - -#: f.repair.cc:6912 -msgid "Change Color Profile" -msgstr "Изменение цветового профиля" - -#: f.repair.cc:6916 -msgid "input profile" -msgstr "Профиль ввода" - -#: f.repair.cc:6920 -msgid "output profile" -msgstr "профиль вывода" - -#: f.repair.cc:6936 -msgid "color profile" -msgstr "профиль цветов" - -#: f.repair.cc:6982 f.repair.cc:6988 -#, c-format -msgid "unknown cms profile %s" -msgstr "неизвестный профиль cms %s" - -#: f.repair.cc:7120 f.widgets.cc:499 -msgid "Remove Dust" -msgstr "Удалить пыль" - -#: f.repair.cc:7124 -msgid "spot size limit" -msgstr "Предельный размер пятна" - -#: f.repair.cc:7127 -msgid "max. brightness" -msgstr "Макс. яркость" - -#: f.repair.cc:7130 -msgid "min. contrast" -msgstr "Мин. контраст" - -#: f.repair.cc:7904 -msgid "" -" Adjust each RGB color to minimize \n" -" color fringes at the image extremes. " -msgstr "" -"Отрегулируйте каждый цвет RGB для уменьшения \n" -"ореола по краям." - -#: f.repair.cc:7927 f.widgets.cc:501 -msgid "Color Fringes" -msgstr "" - -#: f.repair.cc:8126 f.widgets.cc:502 -msgid "Stuck Pixels" -msgstr "" - -#: f.repair.cc:8132 -msgid "pixel group" -msgstr "Группа пикселей" - -#: f.repair.cc:8140 f.repair.cc:8208 -msgid "stuck pixels:" -msgstr "горячие пиксели:" - -#: f.repair.cc:8236 -msgid "Load Stuck Pixels" -msgstr "Загрузка горячих пикселей" - -#: f.repair.cc:8238 -msgid "File:" -msgstr "Файл:" - -#: f.repair.cc:8263 f.repair.cc:8320 -msgid "Stuck Pixels file" -msgstr "Файл горячих пикселей" - -#: f.repair.cc:8300 f.tools.cc:3656 -msgid "file format error" -msgstr "Ошибка формата файла" - -#: f.tools.cc:70 -msgid "" -"Select directories containing image files \n" -"(subdirectories are included automatically)." -msgstr "" - -#: f.tools.cc:72 -msgid "Select to add, click on X to delete." -msgstr "" - -#: f.tools.cc:73 -msgid "Select directory for thumbnails." -msgstr "" - -#: f.tools.cc:74 -msgid "" -"Index function terminated. Fotoxx will close. \n" -"Indexing is required for search and map functions \n" -"and to make the gallery pages acceptably fast." -msgstr "" - -#: f.tools.cc:106 f.widgets.cc:546 -msgid "Index Image Files" -msgstr "Индекс файлов изображений" - -#: f.tools.cc:255 -msgid "Choose top image directories" -msgstr "Выбрать папку верхнего уровня" - -#: f.tools.cc:256 -msgid "Choose thumbnail directory" -msgstr "Выберите папку верхнего уровня" - -#: f.tools.cc:329 -msgid "" -"No image file index was found.\n" -"An image file index will be created.\n" -"Your image files will not be changed.\n" -"This may need considerable time if you \n" -"have many thousands of image files." -msgstr "" - -#: f.tools.cc:335 -#, c-format -msgid "" -"Invalid directory: \n" -" %s \n" -"Please remove." -msgstr "" - -#: f.tools.cc:338 -#, c-format -msgid "" -"Thumbnails directory: \n" -" %s \n" -"must be named .../thumbnails" -msgstr "" - -#: f.tools.cc:341 -#, c-format -msgid "" -"Duplicate directory: \n" -" %s \n" -"Please remove." -msgstr "" - -#: f.tools.cc:391 -msgid "no thumbnails directory defined" -msgstr "каталог миниатюр не определён" - -#: f.tools.cc:523 -msgid "Top directories have no images" -msgstr "" - -#: f.tools.cc:846 -msgid "Indexing is required for first-time startup." -msgstr "" - -#: f.tools.cc:912 -msgid "Recent Files Gallery" -msgstr "Галерея недавно открытых файлов" - -#: f.tools.cc:913 -msgid "Newest Files Gallery" -msgstr "Галерея Свежих Файлов" - -#: f.tools.cc:914 -msgid "Previous Gallery" -msgstr "Предыдущая Галерея" - -#: f.tools.cc:915 -msgid "Previous Image" -msgstr "Предыдущее Изображение" - -#: f.tools.cc:916 -msgid "Blank Window" -msgstr "Пустое окно" - -#: f.tools.cc:917 -msgid "Directory" -msgstr "" - -#: f.tools.cc:918 -msgid "Image File" -msgstr "Файл изображения" - -#: f.tools.cc:964 f.widgets.cc:547 -msgid "User Options" -msgstr "" - -#: f.tools.cc:967 -msgid "Startup Display" -msgstr "Начальный экран" - -#: f.tools.cc:978 -msgid "Menu Style" -msgstr "Стиль Меню" - -#: f.tools.cc:979 -msgid "Icons" -msgstr "Значки" - -#: f.tools.cc:980 -msgid "Icons + Text" -msgstr "Иконки + Текст" - -#: f.tools.cc:982 -msgid "Icon size" -msgstr "Размер иконок" - -#: f.tools.cc:987 -msgid "alphabetic" -msgstr "" - -#: f.tools.cc:988 -msgid "file mod date" -msgstr "" - -#: f.tools.cc:989 -msgid "photo date" -msgstr "" - -#: f.tools.cc:992 -msgid "Dialog font and size" -msgstr "" - -#: f.tools.cc:997 -msgid "Image Pan/scroll:" -msgstr "" - -#: f.tools.cc:1000 -msgid "Zooms for 2x" -msgstr "Увеличение для 2х" - -#: f.tools.cc:1009 -msgid "JPEG save quality" -msgstr "Качество сохраняемого JPEG" - -#: f.tools.cc:1016 -msgid "Curve node capture distance" -msgstr "" - -#: f.tools.cc:1020 -msgid "Map marker size" -msgstr "" - -#: f.tools.cc:1024 -msgid "show hidden directories in gallery view" -msgstr "" - -#: f.tools.cc:1027 -msgid "prev/next shows last file version only" -msgstr "вперёд/назад показывает только последние версии" - -#: f.tools.cc:1030 -msgid "shift image to right margin" -msgstr "" - -#: f.tools.cc:1033 -msgid "RAW command" -msgstr "Команда RAW" - -#: f.tools.cc:1037 -msgid "RAW file types" -msgstr "Типы файлов RAW" - -#: f.tools.cc:1128 -msgid "Delete present thumbnails to make effective" -msgstr "Удалите существующие иконки для смены размера" - -#: f.tools.cc:1150 -msgid "Select startup directory" -msgstr "Выбрать начальный каталог" - -#: f.tools.cc:1157 -msgid "Select startup image file" -msgstr "Выбрать начальный файл изображения" - -#: f.tools.cc:1194 -msgid "startup directory is invalid" -msgstr "Некорректный начальный каталог" - -#: f.tools.cc:1205 -msgid "startup file is invalid" -msgstr "Некорректный начальный файл" - -#: f.tools.cc:1332 f.widgets.cc:548 -msgid "Keyboard Shortcuts" -msgstr "Сочетания клавиш" - -#: f.tools.cc:1404 -msgid "Edit KB Shortcuts" -msgstr "Редактировать горячие клавиши" - -#: f.tools.cc:1409 -msgid "shortcut key:" -msgstr "горячая клавиша:" - -#: f.tools.cc:1410 -msgid "(enter key)" -msgstr "(клавиша ввод)" - -#: f.tools.cc:1536 -#, c-format -msgid "\"%s\" Reserved, cannot be used" -msgstr "\"%s\" Зарезервировано: переопределить невозможно" - -#: f.tools.cc:1669 -msgid "unable to save KB-shortcuts file" -msgstr "невозможно сохранить файл горячих клавиш" - -#: f.tools.cc:1973 f.widgets.cc:550 -msgid "Grid Lines" -msgstr "Линии сетки" - -#: f.tools.cc:1982 -msgid "x-spacing" -msgstr "x-интервал" - -#: f.tools.cc:1983 -msgid "x-count" -msgstr "x-значение" - -#: f.tools.cc:1984 -msgid "x-enable" -msgstr "x-включить" - -#: f.tools.cc:1990 -msgid "y-spacing" -msgstr "y-интервал" - -#: f.tools.cc:1991 -msgid "y-count" -msgstr "y-значение" - -#: f.tools.cc:1992 -msgid "y-enable" -msgstr "y-включить" - -#: f.tools.cc:2112 f.tools.cc:2117 f.widgets.cc:551 -msgid "Line Color" -msgstr "Цвет Линии" - -#: f.tools.cc:2114 -msgid "Area Color" -msgstr "Цвет области" - -#: f.tools.cc:2219 f.widgets.cc:552 -msgid "Show RGB" -msgstr "Показать RGB" - -#: f.tools.cc:2509 -msgid "" -"Drag mouse on image. \n" -"Left click to cancel. \n" -"Key X to toggle dialog." -msgstr "" -"Выберите область мышкой \n" -"Левый щелчок для отмены \n" -"X включает/выключает диалог" - -#: f.tools.cc:2535 f.widgets.cc:553 -msgid "Magnify Image" -msgstr "Лупа" - -#: f.tools.cc:2544 -msgid "X-size" -msgstr "Увеличение" - -#: f.tools.cc:2789 -msgid "Darkest and Brightest Pixels" -msgstr "Тёмные и яркие пиксели" - -#: f.tools.cc:2812 -msgid "Dark Limit" -msgstr "Граница тёмных" - -#: f.tools.cc:2813 -msgid "Bright Limit" -msgstr "Граница светлых" - -#: f.tools.cc:2908 -msgid "" -"Brightness should show a gradual ramp \n" -"extending all the way to the edges." -msgstr "" -"Яркость должна постепенно изменяться \n" -"в направлении краев." - -#: f.tools.cc:3004 f.widgets.cc:556 -msgid "Monitor Gamma" -msgstr "Гамма монитора" - -#: f.tools.cc:3064 -msgid "Available Translations" -msgstr "Доступные переводы" - -#: f.tools.cc:3068 -msgid "Set Language" -msgstr "Установка языка" - -#: f.tools.cc:3206 f.widgets.cc:559 -msgid "Calibrate Printer" -msgstr "" - -#: f.tools.cc:3231 -msgid "print color chart" -msgstr "" - -#: f.tools.cc:3232 -msgid "scan and save color chart" -msgstr "" - -#: f.tools.cc:3233 -msgid "align and trim color chart" -msgstr "" - -#: f.tools.cc:3234 -msgid "open and process color chart" -msgstr "" - -#: f.tools.cc:3235 -msgid "print image with revised colors" -msgstr "" - -#: f.tools.cc:3378 -#, c-format -msgid "" -"Scan the printed color chart. \n" -"The darkest row is at the top. \n" -"Save in %s/" -msgstr "" - -#: f.tools.cc:3393 -msgid "" -"Open and edit the scanned color chart file. \n" -"Remove any skew or rotation from scanning. \n" -"(Use the Fix Perspective function for this). \n" -"Cut off the thin green margin ACCURATELY." -msgstr "" - -#: f.tools.cc:3425 -msgid "Open the trimmed color chart file" -msgstr "" - -#: f.tools.cc:3558 -msgid "" -"Set the name for the output calibration file \n" -"[your calibration name].dat" -msgstr "" - -#: f.tools.cc:3598 -msgid "Color map file to use" -msgstr "" - -#: f.tools.cc:3615 -msgid "Select the image file to print." -msgstr "" - -#: f.tools.cc:3680 -msgid "converting colors..." -msgstr "" - -#: f.tools.cc:3780 -msgid "Image colors are converted for printing." -msgstr "" - -#: f.widgets.cc:112 -msgid "Album" -msgstr "" - -#: f.widgets.cc:114 -msgid "TOP" -msgstr "ВЕРХ" - -#: f.widgets.cc:178 -msgid "Current Image File (key F)" -msgstr "Текущий файл изображения (F)" - -#: f.widgets.cc:179 -msgid "Thumbnail Gallery (key G)" -msgstr "Галерея иконок (G)" - -#: f.widgets.cc:180 -msgid "World Maps (key W)" -msgstr "Карта мира (W)" - -#: f.widgets.cc:181 -msgid "OSM Maps (key M)" -msgstr "" - -#: f.widgets.cc:184 -msgid "Favorite Functions" -msgstr "Любимые функции" - -#: f.widgets.cc:185 -msgid "File: Open, RAW, Rename, Delete, Print" -msgstr "" - -#: f.widgets.cc:186 -msgid "Save modified image file to disk" -msgstr "Сохранить изменённое изображение на диск" - -#: f.widgets.cc:187 -msgid "Open previous or next file (left/right mouse click)" -msgstr "Открыть предыдущий/следующий файл (лев/прав клик)" - -#: f.widgets.cc:188 -msgid "Metadata: Captions, Tags, Ratings, Geotags, Search ... " -msgstr "Метаданные: Комментарии, Теги, Рейтинг, Поиск..." - -#: f.widgets.cc:189 -msgid "Areas: Select areas to edit, copy and paste" -msgstr "Области: выбор областей для редактирования, копирования/вставки" - -#: f.widgets.cc:190 -msgid "Edit: Trim, Rotate, Resize, Brightness, Contrast, Text ..." -msgstr "Редактирование: Обрезка, Поворот, Размер, Яркость, Контраст, Текст...." - -#: f.widgets.cc:191 -msgid "Repair: Sharpen, Noise, Red-eyes, Color, Paint, Clone ..." -msgstr "" -"Улучшение: Резкость, Шум, Красные глаза, Цвет, Рисование, Клонирование..." - -#: f.widgets.cc:192 -msgid "Bend: Fix Perspective, Bend/Warp image ..." -msgstr "Деформация: Перспектива, Деформации..." - -#: f.widgets.cc:193 -msgid "Effects: Special Effects, Arty Transforms" -msgstr "Эффекты: Художественная трансформация, Спецэффекты" - -#: f.widgets.cc:194 -msgid "Combine: HDR, HDF, Panorama, Stack, Mashup" -msgstr "Комбинирование: HDR, HDF, Панорама, Стек, Коллаж" - -#: f.widgets.cc:195 -msgid "" -"left/right click: undo/redo 1 edit \n" -" with key A: undo/redo all edits \n" -" middle click: go to any prior edit" -msgstr "" - -#: f.widgets.cc:198 -msgid "Tools: Index, Options, Shortcuts, Magnify ..." -msgstr "" - -#: f.widgets.cc:199 -msgid "Help: Quick Start, User Guide, Recent Changes ..." -msgstr "Помощь: Быстрый старт, Руководство Пользователя, Новые возможности" - -#: f.widgets.cc:202 -msgid "Set gallery from current image file" -msgstr "Задать галерею с текущего изображения" - -#: f.widgets.cc:203 -msgid "Albums: Manage Albums, Slide Show, Desktop Wallpaper" -msgstr "" - -#: f.widgets.cc:204 -msgid "go to bookmarked image" -msgstr "перейти по закладке" - -#: f.widgets.cc:205 -msgid "increase thumbnail size" -msgstr "Увеличение размера миниатюры" - -#: f.widgets.cc:206 -msgid "reduce thumbnail size" -msgstr "Уменьшить размер миниатюр" - -#: f.widgets.cc:207 -msgid "change sort order" -msgstr "изменить порядок сортировки" - -#: f.widgets.cc:208 -msgid "jump to beginning (top)" -msgstr "на начало" - -#: f.widgets.cc:209 -msgid "jump to end (bottom)" -msgstr "в конец" - -#: f.widgets.cc:210 -msgid "previous page" -msgstr "Предыдущая страница" - -#: f.widgets.cc:211 -msgid "next page" -msgstr "Следующая страница" - -#: f.widgets.cc:212 -msgid "slow scroll" -msgstr "медленный скролл" - -#: f.widgets.cc:213 -msgid "Batch conversion, metadata, RAW processing" -msgstr "" - -#: f.widgets.cc:216 -msgid "Choose a map for image locations" -msgstr "Выберите карту для позиционирования фото" - -#: f.widgets.cc:217 -msgid "Set image search radius for map click" -msgstr "Установите радиус поиска при клике по карте" - -#: f.widgets.cc:218 -msgid "Find images meeting select criteria" -msgstr "Найти изображения, соответствующие выбранным критериям" - -#: f.widgets.cc:219 -msgid "Find all images for a location [date]" -msgstr "Найти все изображения по расположению [дате]" - -#: f.widgets.cc:226 -msgid "Open another window" -msgstr "Открыть другое окно" - -#: f.widgets.cc:227 -msgid "Open a new image file" -msgstr "Открыть новый файл изображения" - -#: f.widgets.cc:228 -msgid "Open the previously seen file" -msgstr "Открыть ранее просмотренный файл" - -#: f.widgets.cc:229 -msgid "Open a recently seen file" -msgstr "Открыть недавно просмотренный файл" - -#: f.widgets.cc:230 -msgid "Open a newly added file" -msgstr "Открыть добавленный файл" - -#: f.widgets.cc:231 f.widgets.cc:232 -msgid "Open and edit a camera RAW file" -msgstr "Открыть и редактировать RAW файл" - -#: f.widgets.cc:233 -msgid "Change the image file name" -msgstr "Переименовать файл изображения" - -#: f.widgets.cc:234 -msgid "Copy or Move an image file to a new location" -msgstr "" - -#: f.widgets.cc:235 -msgid "Create a blank image" -msgstr "Создать пустое изображение" - -#: f.widgets.cc:236 -msgid "Delete or trash image file" -msgstr "" - -#: f.widgets.cc:237 -msgid "Print the current image" -msgstr "Печатать текущее изображения" - -#: f.widgets.cc:238 -msgid "Print current image with adjusted colors" -msgstr "" - -#: f.widgets.cc:239 f.widgets.cc:434 -msgid "Quit Fotoxx" -msgstr "Выход из fotoxx" - -#: f.widgets.cc:242 -msgid "List a few key metadata items" -msgstr "Список ключевых элементов метаданных" - -#: f.widgets.cc:243 -msgid "List all metadata items" -msgstr "Список всех элементов метаданных" - -#: f.widgets.cc:244 -msgid "(Toggle) show captions and comments" -msgstr "(Переключение) показать подписи/комментарии" - -#: f.widgets.cc:245 -msgid "Edit image tags/geotags/caption/rating ..." -msgstr "" - -#: f.widgets.cc:246 -msgid "Edit any image metadata" -msgstr "Редактировать метаданные изображения" - -#: f.widgets.cc:247 -msgid "Remove all metadata from an image" -msgstr "Удалить все метаданные из изображения" - -#: f.widgets.cc:248 -msgid "Add/remove tags for multiple images" -msgstr "Групповое изменение тэгов" - -#: f.widgets.cc:249 -msgid "Convert tag names for all images" -msgstr "" - -#: f.widgets.cc:250 -msgid "Add/change/delete metadata for multiple images" -msgstr "" - -#: f.widgets.cc:251 -msgid "Report metadata for multiple images" -msgstr "" - -#: f.widgets.cc:252 -msgid "Add/revise geotags for multiple images" -msgstr "" - -#: f.widgets.cc:257 -msgid "Select object or area for editing" -msgstr "Выберите объект или область для редактирования" - -#: f.widgets.cc:258 -msgid "Show (outline) existing area" -msgstr "Показать (контур) существующую область" - -#: f.widgets.cc:259 -msgid "Hide existing area" -msgstr "Скрыть существующую область" - -#: f.widgets.cc:260 -msgid "Enable area for editing" -msgstr "Включить область для последующих изменений" - -#: f.widgets.cc:261 -msgid "Disable area for editing" -msgstr "Временно исключить область из списка измененяемых" - -#: f.widgets.cc:262 -msgid "Reverse existing area" -msgstr "Инвертировать существующую область" - -#: f.widgets.cc:263 -msgid "Erase existing area" -msgstr "Стереть существующую область" - -#: f.widgets.cc:264 -msgid "Copy area for later pasting into image" -msgstr "" - -#: f.widgets.cc:265 -msgid "Paste previously copied area into image" -msgstr "" - -#: f.widgets.cc:266 -msgid "Open a file and paste as area into image" -msgstr "" - -#: f.widgets.cc:267 -msgid "Save area to a file with transparency" -msgstr "" - -#: f.widgets.cc:270 -msgid "Trim/Crop margins and/or Rotate" -msgstr "Границы при обрезке и/или повороте" - -#: f.widgets.cc:271 -msgid "Upright a rotated image" -msgstr "Поворот изображения вертикально" - -#: f.widgets.cc:272 f.widgets.cc:273 -msgid "Fast auto enhance that may work OK" -msgstr "Быстрое авто улучшение (может сработать хорошо)" - -#: f.widgets.cc:274 -msgid "Adjust brightness, contrast, color" -msgstr "Настроить яркость, контрастность, цветность" - -#: f.widgets.cc:275 -msgid "Add local contrast, enhance details" -msgstr "Добавить локальный контраст, усилить детали" - -#: f.widgets.cc:276 -msgid "Edit brightness distribution" -msgstr "" - -#: f.widgets.cc:277 -msgid "Flatten zonal brightness distribution" -msgstr "" - -#: f.widgets.cc:278 -msgid "Change pixel dimensions" -msgstr "Изменение размеров в пикселах" - -#: f.widgets.cc:279 -msgid "Mirror image horizontally or vertically" -msgstr "Зеркальное отражение по горизонтали или вертикали" - -#: f.widgets.cc:280 -msgid "Write text on image" -msgstr "Запись текста на изображение" - -#: f.widgets.cc:281 -msgid "Write lines or arrows on image" -msgstr "Начертить линии или стрелки" - -#: f.widgets.cc:282 -msgid "Fix brightness uniformity across image" -msgstr "Исправить неоднородность яркости по изображению" - -#: f.widgets.cc:283 -msgid "Paint edit function gradually with mouse" -msgstr "Закрашивайте движениями мышки" - -#: f.widgets.cc:284 -msgid "Leverage edits by brightness or color" -msgstr "Усиление/ослабление функции в зависимости от яркости или цвета" - -#: f.widgets.cc:285 -msgid "Edit plugins menu or run a plugin function" -msgstr "Редактировать меню плагинов или запустить плагин" - -#: f.widgets.cc:288 -msgid "Make the image look sharper" -msgstr "Повысить чёткость изображения" - -#: f.widgets.cc:289 -msgid "Make the image look fuzzy" -msgstr "Размыть изображение " - -#: f.widgets.cc:290 -msgid "Filter noise from low-light photos" -msgstr "Фильтрация шума в темных изображениях" - -#: f.widgets.cc:291 -msgid "Remove unwanted objects" -msgstr "Удаление нежелательных объектов" - -#: f.widgets.cc:292 -msgid "Fix red-eyes from electronic flash" -msgstr "Исправить эффект красных глаз при вспышке" - -#: f.widgets.cc:293 -msgid "Paint image pixels using the mouse" -msgstr "Окраска пикселей мышью" - -#: f.widgets.cc:294 -msgid "Paint image transparency using the mouse" -msgstr "" - -#: f.widgets.cc:295 -msgid "Add image transparency based on image attributes" -msgstr "" - -#: f.widgets.cc:296 -msgid "Make BW/color, negative/positive, sepia" -msgstr "Преобразовать Ч/Б/цвет, негатив/позитив, сепия" - -#: f.widgets.cc:297 -msgid "Shift/convert colors into other colors" -msgstr "Сдвиг/преобразования цветов" - -#: f.widgets.cc:298 -msgid "Adjust color intensity (saturation)" -msgstr "" - -#: f.widgets.cc:299 -msgid "Adjust color using RGB or CMY colors" -msgstr "" - -#: f.widgets.cc:300 -msgid "Adjust color using HSL colors" -msgstr "" - -#: f.widgets.cc:301 -msgid "Adjust color in selected image areas" -msgstr "Настройка цвета в выбранной области изображения" - -#: f.widgets.cc:302 -msgid "Match colors on one image with another" -msgstr "Совмещение цветов одного изображения с другим" - -#: f.widgets.cc:303 -msgid "Convert to another color profile" -msgstr "Преобразование в другой профиль цветов" - -#: f.widgets.cc:304 -msgid "Remove dust spots from scanned slides" -msgstr "Удаление пятен пыли из отсканированных слайдов" - -#: f.widgets.cc:305 -msgid "Smoothen edges with jaggies" -msgstr "Спрямить зазубренные края" - -#: f.widgets.cc:306 -msgid "Reduce Chromatic Abberation" -msgstr "Коррекция хроматической аберрации" - -#: f.widgets.cc:307 -msgid "Erase known hot and dark pixels" -msgstr "Стереть известные горячие и темные пиксели" - -#: f.widgets.cc:310 -msgid "Remove curvature, esp. panoramas" -msgstr "Удаление искривления, особенно панорам" - -#: f.widgets.cc:311 -msgid "Straighten objects seen from an angle" -msgstr "Выравнивание геометрии объектов, снятых под углом" - -#: f.widgets.cc:312 -msgid "Distort image areas using the mouse" -msgstr "Исказить области изображения мышкой" - -#: f.widgets.cc:313 f.widgets.cc:314 f.widgets.cc:315 -msgid "Distort the whole image using the mouse" -msgstr "Исказить всё изображение мышкой" - -#: f.widgets.cc:316 -msgid "Flatten a photographed book page" -msgstr "Выровнять сфотографированную книжную страницу" - -#: f.widgets.cc:317 -msgid "Make a spherical projection of an image" -msgstr "" - -#: f.widgets.cc:318 -msgid "Rescale image outside selected areas" -msgstr "" - -#: f.widgets.cc:321 -msgid "Reduce color depth (posterize)" -msgstr "Уменьшение глубины цвета (эффект плаката)" - -#: f.widgets.cc:322 -msgid "Convert to pencil sketch" -msgstr "Преобразовать в карандашный набросок" - -#: f.widgets.cc:323 -msgid "Convert image into a cartoon drawing" -msgstr "" - -#: f.widgets.cc:324 -msgid "Convert to line drawing (edge detection)" -msgstr "Преобразовать в графику (распознавание границ)" - -#: f.widgets.cc:325 -msgid "Convert to solid color drawing" -msgstr "Преобразовать в цветной рисунок" - -#: f.widgets.cc:326 -msgid "Graduated Blur depending on contrast" -msgstr "Размытие в зависимости от контраста" - -#: f.widgets.cc:327 -msgid "Create an embossed or 3D appearance" -msgstr "Создать рельеф или видимость 3D" - -#: f.widgets.cc:328 -msgid "Convert to square tiles" -msgstr "Преобразование в квадратные плитки" - -#: f.widgets.cc:329 -msgid "Convert to dots (Roy Lichtenstein effect)" -msgstr "Преобразование в точки (эффект Roy Lichtenstein)" - -#: f.widgets.cc:330 -msgid "Convert into a simulated painting" -msgstr "Преобразование в моделируемую картину" - -#: f.widgets.cc:331 -msgid "Change brightness or color radially" -msgstr "Изменение яркости и цвета радиально" - -#: f.widgets.cc:332 -msgid "Add texture to an image" -msgstr "Добавить текстуру" - -#: f.widgets.cc:333 -msgid "Tile image with a repeating pattern" -msgstr "Замостить изображение повторяющимся шаблоном" - -#: f.widgets.cc:334 -msgid "Create a mosaic with tiles made from all images" -msgstr "Создать мозаику изо всех изображений" - -#: f.widgets.cc:335 -msgid "Process an image using a custom kernel" -msgstr "Матричное преобразование изображение" - -#: f.widgets.cc:336 -msgid "Warp an image with a wave pattern" -msgstr "Добавить волнистость" - -#: f.widgets.cc:337 -msgid "Blur an image in the direction of mouse drags" -msgstr "" - -#: f.widgets.cc:338 -msgid "Increasing blur with distance from selected areas" -msgstr "" - -#: f.widgets.cc:341 -msgid "Combine bright/dark images for better detail" -msgstr "Объединение ярких/темных изображений для улучшения деталей" - -#: f.widgets.cc:342 -msgid "Combine near/far focus images for deeper focus" -msgstr "" -"Объединение близко/далеко фокусных изображений для более глубокого фокуса" - -#: f.widgets.cc:343 -msgid "Combine images to erase passing people, etc." -msgstr "Объединение изображений чтобы стереть проходящих людей и т.д." - -#: f.widgets.cc:344 -msgid "Combine noisy images into a low-noise image" -msgstr "Объединение изображений с шумом и изображений с малым шумом" - -#: f.widgets.cc:345 -msgid "Combine images into a panorama" -msgstr "Объединение изображений в панораму" - -#: f.widgets.cc:346 -msgid "Combine images into a vertical panorama" -msgstr "Объединение изображений в вертикальную панораму" - -#: f.widgets.cc:347 -msgid "Combine images into a panorama (panorama tools)" -msgstr "Объединение изображений в панораму (panorama tools)" - -#: f.widgets.cc:348 -msgid "Arrange images and text in a layout (montage)" -msgstr "" - -#: f.widgets.cc:351 -msgid "Index new files and make thumbnails" -msgstr "Индексировать новые файлы и сделать миниатюры" - -#: f.widgets.cc:352 -msgid "Change user preferences" -msgstr "Изменение пользовательских настроек" - -#: f.widgets.cc:353 -msgid "Change Keyboard Shortcut Keys" -msgstr "Изменить горячие клавиши" - -#: f.widgets.cc:354 -msgid "Show a brightness distribution graph" -msgstr "Показать график распределения яркости" - -#: f.widgets.cc:355 -msgid "Show or revise grid lines" -msgstr "Показать или изменить линии сетки" - -#: f.widgets.cc:356 -msgid "Change color of foreground lines" -msgstr "Изменить цвет линий переднего плана" - -#: f.widgets.cc:357 -msgid "Show RGB colors at mouse click" -msgstr "Показать цвета RGB при щелчке мышью" - -#: f.widgets.cc:358 -msgid "Magnify image around the mouse position" -msgstr "Увеличить часть изображения под мышью" - -#: f.widgets.cc:359 -msgid "Highlight darkest and brightest pixels" -msgstr "Подсветка слишком тёмных или ярких пикселей" - -#: f.widgets.cc:360 -msgid "Chart to adjust monitor color" -msgstr "График для настройки цвета монитора" - -#: f.widgets.cc:361 -msgid "Chart to adjust monitor gamma" -msgstr "График для настройки гаммы монитора" - -#: f.widgets.cc:362 -msgid "Change the GUI language" -msgstr "Изменение языка GUI" - -#: f.widgets.cc:363 -msgid "Report missing translations" -msgstr "Сообщить о пропущенном переводе" - -#: f.widgets.cc:364 -msgid "Calibrate printer colors" -msgstr "" - -#: f.widgets.cc:365 -msgid "Memory and CPU (to terminal/logfile)" -msgstr "Память и ЦПУ (в терминал/лог файл)" - -#: f.widgets.cc:369 -msgid "Rename/convert/resize/move multiple files" -msgstr "Переименовать/преобразовать/переместить группу файлов" - -#: f.widgets.cc:370 -msgid "Upright multiple rotated image files" -msgstr "Пакетный поворот изображений вертикально" - -#: f.widgets.cc:371 -msgid "Delete or Trash multiple files" -msgstr "" - -#: f.widgets.cc:372 -msgid "Convert camera RAW files using DCraw" -msgstr "Преобразование RAW посредством DCRaw" - -#: f.widgets.cc:373 -msgid "Convert camera RAW files using Raw Therapee" -msgstr "Преобразование RAW посредством Raw Therapee" - -#: f.widgets.cc:374 -msgid "Build and run edit script files" -msgstr "" - -#: f.widgets.cc:375 -msgid "Burn selected image files to DVD/BlueRay disc" -msgstr "" - -#: f.widgets.cc:376 -msgid "Search all image files and report duplicates" -msgstr "Просматривает все файлы в поисках дублей" - -#: f.widgets.cc:381 -msgid "Quick Start mini-guide" -msgstr "Руководство по быстрому старту" - -#: f.widgets.cc:382 -msgid "Read the user guide" -msgstr "Причитать руководство пользователя" - -#: f.widgets.cc:383 -msgid "Recent user guide changes" -msgstr "Последние изменения руководства пользователя" - -#: f.widgets.cc:384 -msgid "Summary of image edit functions" -msgstr "Обзор функций для редактирования изображений" - -#: f.widgets.cc:385 -msgid "Technical installation notes" -msgstr "Технические замечания по установке" - -#: f.widgets.cc:386 -msgid "List updates by Fotoxx version" -msgstr "Список обновлений версии Fotoxx" - -#: f.widgets.cc:387 -msgid "View the log file and error messages" -msgstr "Просмотр файла журнала и сообщений об ошибках" - -#: f.widgets.cc:388 -msgid "How to do Fotoxx translations" -msgstr "Как сделать перевод Fotoxx" - -#: f.widgets.cc:389 -msgid "Show the Fotoxx web page" -msgstr "Показать веб страницу Fotoxx" - -#: f.widgets.cc:390 -msgid "Version, license, contact, credits" -msgstr "Версия, лицензия, контакты, кредиты" - -#: f.widgets.cc:393 -msgid "Organize images into albums" -msgstr "Рассортировать изображения по альбомам" - -#: f.widgets.cc:394 -msgid "Start a slide show" -msgstr "Запустить слайд-шоу" - -#: f.widgets.cc:395 -msgid "Set desktop wallpaper from current Fotoxx image" -msgstr "" - -#: f.widgets.cc:396 -msgid "Cycle desktop wallpaper from a Fotoxx album" -msgstr "" - -#: f.widgets.cc:419 -msgid "New Window" -msgstr "Новое окно" - -#: f.widgets.cc:421 -msgid "Recently Seen Images" -msgstr "Недавно просмотренные изображения" - -#: f.widgets.cc:422 -msgid "Newest Images" -msgstr "Последние сообщения" - -#: f.widgets.cc:424 -msgid "Open Previous File" -msgstr "Открыть предыдущий файл" - -#: f.widgets.cc:425 -msgid "Open RAW (ufraw)" -msgstr "" - -#: f.widgets.cc:426 -msgid "Open RAW (Raw Therapee)" -msgstr "" - -#: f.widgets.cc:427 -msgid "New Blank Image" -msgstr "Новое пустое изображение" - -#: f.widgets.cc:429 f.widgets.cc:727 -msgid "Copy/Move to Location" -msgstr "" - -#: f.widgets.cc:430 -msgid "Delete/Trash Image File" -msgstr "" - -#: f.widgets.cc:431 -msgid "Print Image" -msgstr "Печать изображения" - -#: f.widgets.cc:432 -msgid "Print Calibrated Image" -msgstr "" - -#: f.widgets.cc:433 f.widgets.cc:585 -msgid "Set Desktop Wallpaper" -msgstr "" - -#: f.widgets.cc:437 -msgid "View Metadata (short)" -msgstr "Просмотр метаданных (коротко)" - -#: f.widgets.cc:438 -msgid "View Metadata (long)" -msgstr "Просмотр метаданных (полностью)" - -#: f.widgets.cc:439 -msgid "Show Captions on Image" -msgstr "Показать подписи на изображении" - -#: f.widgets.cc:444 f.widgets.cc:575 -msgid "Batch Rename Tags" -msgstr "" - -#: f.widgets.cc:445 f.widgets.cc:576 -msgid "Batch Add/Change Metadata" -msgstr "" - -#: f.widgets.cc:448 f.widgets.cc:580 f.widgets.cc:658 f.widgets.cc:670 -msgid "Search Images" -msgstr "Поиск изображений" - -#: f.widgets.cc:449 f.widgets.cc:579 f.widgets.cc:657 f.widgets.cc:669 -msgid "Images by Geotag" -msgstr "" - -#: f.widgets.cc:452 fotoxx.h:1181 -msgid "Select" -msgstr "Выбрать" - -#: f.widgets.cc:453 fotoxx.h:1183 -msgid "Show" -msgstr "Показать" - -#: f.widgets.cc:454 fotoxx.h:1136 -msgid "Hide" -msgstr "Скрыть" - -#: f.widgets.cc:455 fotoxx.h:1123 -msgid "Enable" -msgstr "Включить" - -#: f.widgets.cc:456 fotoxx.h:1119 -msgid "Disable" -msgstr "Отключить" - -#: f.widgets.cc:457 fotoxx.h:1139 -msgid "Invert" -msgstr "Инвертировать" - -#: f.widgets.cc:458 fotoxx.h:1197 -msgid "Unselect" -msgstr "Отменить выбор" - -#: f.widgets.cc:459 -msgid "Copy Area" -msgstr "" - -#: f.widgets.cc:460 -msgid "Paste Area" -msgstr "" - -#: f.widgets.cc:461 -msgid "Open Area File" -msgstr "" - -#: f.widgets.cc:462 -msgid "Save Area File" -msgstr "" - -#: f.widgets.cc:467 -msgid "Voodoo 1" -msgstr "" - -#: f.widgets.cc:468 -msgid "Voodoo 2" -msgstr "" - -#: f.widgets.cc:470 f.widgets.cc:741 -msgid "Edit Brightness" -msgstr "" - -#: f.widgets.cc:471 f.widgets.cc:742 -msgid "Zonal Flatten" -msgstr "" - -#: f.widgets.cc:475 -msgid "Add Text" -msgstr "Вписать текст" - -#: f.widgets.cc:476 -msgid "Add Lines" -msgstr "Добавить Линии" - -#: f.widgets.cc:479 -msgid "Plugins" -msgstr "Плагины" - -#: f.widgets.cc:484 -msgid "Denoise" -msgstr "Уменьшить шум" - -#: f.widgets.cc:486 -msgid "Red Eyes" -msgstr "Красные глаза" - -#: f.widgets.cc:493 -msgid "Adjust RGB/CMY" -msgstr "" - -#: f.widgets.cc:494 -msgid "Adjust HSL" -msgstr "" - -#: f.widgets.cc:495 -msgid "Ramp Brightness" -msgstr "" - -#: f.widgets.cc:496 -msgid "Ramp Color" -msgstr "" - -#: f.widgets.cc:497 -msgid "Match Colors" -msgstr "Подбор цветов" - -#: f.widgets.cc:498 -msgid "Color Profile" -msgstr "Профиль цветов" - -#: f.widgets.cc:500 -msgid "Anti-Alias" -msgstr "Антиалиасинг" - -#: f.widgets.cc:506 -msgid "Fix Perspective" -msgstr "Исправить Перспективу" - -#: f.widgets.cc:511 -msgid "Flatten Book Page" -msgstr "Выровнять страницу книги" - -#: f.widgets.cc:516 -msgid "Color Depth" -msgstr "Глубина цвета" - -#: f.widgets.cc:517 -msgid "Sketch" -msgstr "Набросок" - -#: f.widgets.cc:518 -msgid "Cartoon" -msgstr "" - -#: f.widgets.cc:522 -msgid "Embossing" -msgstr "Рельефное тиснение" - -#: f.widgets.cc:524 -msgid "Dots" -msgstr "Точки" - -#: f.widgets.cc:525 -msgid "Painting" -msgstr "Живопись" - -#: f.widgets.cc:527 -msgid "Texture" -msgstr "Текстура" - -#: f.widgets.cc:529 -msgid "Mosaic" -msgstr "Мозаика" - -#: f.widgets.cc:536 -msgid "High Dynamic Range" -msgstr "Высокий динамический диапазон" - -#: f.widgets.cc:537 -msgid "High Depth of Field" -msgstr "Высокая глубина резкости" - -#: f.widgets.cc:538 -msgid "Stack/Paint" -msgstr "Стопка/Грим" - -#: f.widgets.cc:539 -msgid "Stack/Noise" -msgstr "Стопка/Шум" - -#: f.widgets.cc:540 -msgid "Panorama" -msgstr "Панорама" - -#: f.widgets.cc:541 -msgid "Vertical Panorama" -msgstr "Вертикальная панорама" - -#: f.widgets.cc:542 -msgid "PT Panorama" -msgstr "PT Панорама" - -#: f.widgets.cc:543 -msgid "Mashup" -msgstr "Коллаж" - -#: f.widgets.cc:549 -msgid "Brightness Graph" -msgstr "" - -#: f.widgets.cc:554 -msgid "Dark/Bright Pixels" -msgstr "Тёмные/Яркие Пиксели" - -#: f.widgets.cc:555 -msgid "Monitor Color" -msgstr "Цветность монитора" - -#: f.widgets.cc:557 -msgid "Change Language" -msgstr "Изменить язык" - -#: f.widgets.cc:558 -msgid "Missing Translations" -msgstr "Пропущен перевод" - -#: f.widgets.cc:560 -msgid "Resources" -msgstr "Ресурсы" - -#: f.widgets.cc:567 -msgid "Batch RAW (DCraw)" -msgstr "Пакетная RAW-конв (DCraw)" - -#: f.widgets.cc:568 -msgid "Batch RAW (Raw Therapee)" -msgstr "Пакетная RAW-конв (Raw Therapee)" - -#: f.widgets.cc:569 -msgid "Script Files" -msgstr "" - -#: f.widgets.cc:572 -msgid "Create File of Image Files" -msgstr "" - -#: f.widgets.cc:586 -msgid "Cycle Desktop Wallpaper" -msgstr "" - -#: f.widgets.cc:603 f.widgets.cc:627 f.widgets.cc:651 f.widgets.cc:665 -msgid "Gallery" -msgstr "Галерея" - -#: f.widgets.cc:604 f.widgets.cc:628 f.widgets.cc:652 f.widgets.cc:666 -msgid "World Maps" -msgstr "Карты Мира" - -#: f.widgets.cc:605 f.widgets.cc:629 f.widgets.cc:653 f.widgets.cc:667 -msgid "OSM Maps" -msgstr "" - -#: f.widgets.cc:607 f.widgets.cc:631 -msgid "Favorites" -msgstr "Любимые" - -#: f.widgets.cc:609 fotoxx.h:1177 -msgid "Save" -msgstr "Сохранить" - -#: f.widgets.cc:610 -msgid "Prev/Next" -msgstr "Пред/След" - -#: f.widgets.cc:612 -msgid "Areas" -msgstr "Области" - -#: f.widgets.cc:613 fotoxx.h:1122 -msgid "Edit" -msgstr "Редактировать" - -#: f.widgets.cc:614 -msgid "Repair" -msgstr "Исправить" - -#: f.widgets.cc:615 -msgid "Bend" -msgstr "Деформация" - -#: f.widgets.cc:616 -msgid "Effects" -msgstr "Эффекты" - -#: f.widgets.cc:617 -msgid "Combine" -msgstr "Объединение" - -#: f.widgets.cc:618 -msgid "Undo/Redo" -msgstr "Отменить/Повторить" - -#: f.widgets.cc:619 -msgid "Tools" -msgstr "Инструменты" - -#: f.widgets.cc:633 -msgid "Albums" -msgstr "" - -#: f.widgets.cc:634 -msgid "Bookmarks" -msgstr "" - -#: f.widgets.cc:643 -msgid "Batch" -msgstr "" - -#: f.widgets.cc:655 -msgid "Choose Map" -msgstr "Выберите карту" - -#: f.widgets.cc:656 -msgid "Search Range" -msgstr "Радиус Поиска" - -#: f.widgets.cc:676 fotoxx.h:1195 -msgid "Undo" -msgstr "Отменить" - -#: f.widgets.cc:677 fotoxx.h:1168 -msgid "Redo" -msgstr "Вернуть" - -#: f.widgets.cc:678 -msgid "Save File Version" -msgstr "" - -#: f.widgets.cc:722 -msgid "Popup Image" -msgstr "Выпадающее изображение" - -#: f.widgets.cc:726 fotoxx.h:1171 -msgid "Rename" -msgstr "Переименовать" - -#: f.widgets.cc:728 -msgid "Copy to Clipboard" -msgstr "Копировать в буфер" - -#: f.widgets.cc:729 -msgid "Remove from Album" -msgstr "Удалить из альбома" - -#: f.widgets.cc:730 -msgid "Cut to Image Cache" -msgstr "Вырезать в кэш изображений" - -#: f.widgets.cc:731 -msgid "Copy to Image Cache" -msgstr "Скопировать в кэш изображений" - -#: f.widgets.cc:732 -msgid "Paste Image Cache Here (clear)" -msgstr "Поместить сюда кэш изображений с очисткой" - -#: f.widgets.cc:733 -msgid "Paste Image Cache Here (keep)" -msgstr "Поместить сюда кэш изображений с сохранением" - -#: f.widgets.cc:734 -msgid "Paste Current Image File Here" -msgstr "" - -#: f.widgets.cc:744 -msgid "Select Area" -msgstr "Выберите область" - -#: f.widgets.cc:747 -msgid "Show on OSM Map" -msgstr "" - -#: f.widgets.cc:748 -msgid "Delete/Trash" -msgstr "" - -#: f.widgets.cc:963 f.widgets.cc:985 -msgid "Image Locations" -msgstr "Раположение Фото" - -#: fotoxx-16.06.cc:392 -msgid "Please install missing programs:" -msgstr "Установите отсутствующие программы:" - -#: fotoxx-16.06.cc:683 -msgid "Kill active dialog?" -msgstr "Отменить активный диалог?" - -#: fotoxx-16.06.cc:764 -msgid "(reduced)" -msgstr "(сокращено)" - -#: fotoxx-16.06.cc:765 -msgid "area active" -msgstr "область активна" - -#: fotoxx-16.06.cc:766 -msgid "dialog open" -msgstr "диалог открыт" - -#: fotoxx-16.06.cc:767 -msgid "blocked" -msgstr "" - -#: fotoxx-16.06.cc:818 -msgid "edits" -msgstr "редактирование" - -#: fotoxx-16.06.cc:2921 -msgid "Exceed 50 anchor points" -msgstr "Превышать 50 точек привязки" - -#: fotoxx-16.06.cc:3141 -msgid "load curve from a file" -msgstr "Загрузить кривую из файла" - -#: fotoxx-16.06.cc:3207 -msgid "curve file is invalid" -msgstr "" - -#: fotoxx-16.06.cc:3221 -msgid "save curve to a file" -msgstr "Сохранить кривую в файл" - -#: fotoxx-16.06.cc:3293 -msgid "Too many edits, please save image" -msgstr "Слишком много изменений, пожалуйста сохраните изображение" - -#: fotoxx-16.06.cc:3298 -msgid "this function cannot be scripted" -msgstr "" - -#: fotoxx-16.06.cc:3315 -msgid "" -"Select area not active.\n" -"Continue?" -msgstr "" -"Выбранная область не активна.\n" -"Продолжить?" - -#: fotoxx-16.06.cc:3630 -msgid "file data does not fit dialog" -msgstr "данные не подходят к диалогу" - -#: fotoxx-16.06.cc:3640 -msgid "Save settings to a file" -msgstr "Сохранить установки в файл" - -#: fotoxx-16.06.cc:3993 -msgid "This action will discard changes to current image" -msgstr "Это действие отменит все изменения текущего изображения" - -#: fotoxx-16.06.cc:3994 -msgid "prior function still active" -msgstr "активна предыдущая функция" - -#: fotoxx-16.06.cc:3995 fotoxx.h:1140 -msgid "Keep" -msgstr "Оставить" - -#: fotoxx-16.06.cc:3996 -msgid "Discard" -msgstr "Сбросить" - -#: fotoxx.h:1093 -msgid "Add" -msgstr "Добавить" - -#: fotoxx.h:1094 -msgid "Add All" -msgstr "Добавить все" - -#: fotoxx.h:1096 -msgid "Amount" -msgstr "Размер" - -#: fotoxx.h:1097 -msgid "Angle" -msgstr "Угол" - -#: fotoxx.h:1098 -msgid "Apply" -msgstr "Применить" - -#: fotoxx.h:1099 -msgid "Auto" -msgstr "" - -#: fotoxx.h:1100 -msgid "Black" -msgstr "Черный" - -#: fotoxx.h:1101 -msgid "Blend Width" -msgstr "Ширина области смешивания" - -#: fotoxx.h:1103 zfuncs.cc:10576 -msgid "bottom" -msgstr "Низ" - -#: fotoxx.h:1105 -msgid "Browse" -msgstr "Обзор" - -#: fotoxx.h:1106 -msgid "Cancel" -msgstr "Отмена" - -#: fotoxx.h:1107 -msgid "Center" -msgstr "Центр" - -#: fotoxx.h:1108 -msgid "Choose" -msgstr "Выбор" - -#: fotoxx.h:1109 -msgid "Clear" -msgstr "Очистить" - -#: fotoxx.h:1110 -msgid "Color" -msgstr "Цвет" - -#: fotoxx.h:1111 -msgid "continue" -msgstr "" - -#: fotoxx.h:1113 -msgid "Copy" -msgstr "Копировать" - -#: fotoxx.h:1114 -msgid "Create" -msgstr "Создать" - -#: fotoxx.h:1115 -msgid "Curve File:" -msgstr "Файл кривой:" - -#: fotoxx.h:1116 -msgid "Cut" -msgstr "Вырезать" - -#: fotoxx.h:1117 -msgid "Deband" -msgstr "Уменьшить постеризацию" - -#: fotoxx.h:1118 -msgid "Delete" -msgstr "Удалить" - -#: fotoxx.h:1120 -msgid "Done" -msgstr "Готово" - -#: fotoxx.h:1121 -msgid "edge" -msgstr "Кромка" - -#: fotoxx.h:1124 -msgid "Erase" -msgstr "Стереть" - -#: fotoxx.h:1125 -msgid "Fetch" -msgstr "Получить" - -#: fotoxx.h:1126 -msgid "output file already exists" -msgstr "такой файл уже существует" - -#: fotoxx.h:1127 -#, c-format -msgid "%d files selected" -msgstr "%d файлов выбрано" - -#: fotoxx.h:1128 -msgid "Find" -msgstr "Поиск" - -#: fotoxx.h:1129 -msgid "Finish" -msgstr "Финиш" - -#: fotoxx.h:1130 -msgid "Flatten" -msgstr "Выровнять" - -#: fotoxx.h:1131 -msgid "Font" -msgstr "Шрифт" - -#: fotoxx.h:1133 -msgid "Grid" -msgstr "Сетка" - -#: fotoxx.h:1134 -msgid "Height" -msgstr "Высота" - -#: fotoxx.h:1137 -msgid "Images" -msgstr "Изображения" - -#: fotoxx.h:1138 -msgid "Insert" -msgstr "Вставить" - -#: fotoxx.h:1141 zfuncs.cc:10580 -msgid "left" -msgstr "влево" - -#: fotoxx.h:1142 -msgid "limit" -msgstr "Лимит" - -#: fotoxx.h:1143 -msgid "Load" -msgstr "Загрузить" - -#: fotoxx.h:1144 -msgid "Make" -msgstr "Создать" - -#: fotoxx.h:1146 -msgid "Map" -msgstr "Карта" - -#: fotoxx.h:1147 -msgid "Match Level" -msgstr "" - -#: fotoxx.h:1148 -msgid "Max" -msgstr "Макс" - -#: fotoxx.h:1149 -msgid "Negative" -msgstr "Негатив" - -#: fotoxx.h:1150 -msgid "New" -msgstr "Новый" - -#: fotoxx.h:1151 -msgid "Next" -msgstr "Следующий" - -#: fotoxx.h:1152 zfuncs.cc:9658 -msgid "No" -msgstr "Нет" - -#: fotoxx.h:1153 -msgid "no images" -msgstr "нет изображений" - -#: fotoxx.h:1155 -msgid "no selection" -msgstr "ничего не выбрано" - -#: fotoxx.h:1156 -msgid "OK" -msgstr "ОК" - -#: fotoxx.h:1158 -msgid "Paste" -msgstr "Вставить" - -#: fotoxx.h:1159 -msgid "Pause" -msgstr "Пауза" - -#: fotoxx.h:1160 -msgid "Percent" -msgstr "Процент" - -#: fotoxx.h:1162 -msgid "Presets" -msgstr "Предустановленные" - -#: fotoxx.h:1163 -msgid "Prev" -msgstr "Предыдущий" - -#: fotoxx.h:1164 -msgid "Proceed" -msgstr "Продолжить" - -#: fotoxx.h:1166 -msgid "range" -msgstr "Диапазон" - -#: fotoxx.h:1169 -msgid "Reduce" -msgstr "Уменьшить" - -#: fotoxx.h:1170 -msgid "Remove" -msgstr "Удалить" - -#: fotoxx.h:1172 -msgid "Replace" -msgstr "" - -#: fotoxx.h:1173 -msgid "Reserved" -msgstr "" - -#: fotoxx.h:1174 -msgid "Reset" -msgstr "Сбросить" - -#: fotoxx.h:1175 zfuncs.cc:10584 -msgid "right" -msgstr "вправо" - -#: fotoxx.h:1176 -msgid "Rotate" -msgstr "Повернуть" - -#: fotoxx.h:1178 -msgid "Unknown file type, save as tiff/jpeg/png to edit" -msgstr "Неизвестный тип файла, сохраните как tiff/jpeg/png для редактирования" - -#: fotoxx.h:1179 -msgid "Search" -msgstr "Поиск" - -#: fotoxx.h:1180 -msgid "Seconds" -msgstr "Cекунд" - -#: fotoxx.h:1184 -msgid "Size" -msgstr "Размер" - -#: fotoxx.h:1185 -msgid "Start" -msgstr "Старт" - -#: fotoxx.h:1186 -msgid "Strength" -msgstr "Сила" - -#: fotoxx.h:1187 -msgid "Threshold" -msgstr "Порог" - -#: fotoxx.h:1188 -#, c-format -msgid "exceed %d files" -msgstr "Превышено %d файлов" - -#: fotoxx.h:1189 zfuncs.cc:10572 -msgid "top" -msgstr "верх" - -#: fotoxx.h:1191 -msgid "Trash" -msgstr "Корзина" - -#: fotoxx.h:1192 -msgid "Trim" -msgstr "Обрезка" - -#: fotoxx.h:1193 -msgid "Undo All" -msgstr "Отменить все" - -#: fotoxx.h:1194 -msgid "Undo Last" -msgstr "Отменить последнее" - -#: fotoxx.h:1196 -msgid "Unfinish" -msgstr "Не финиш" - -#: fotoxx.h:1198 -msgid "View" -msgstr "Вид" - -#: fotoxx.h:1199 -msgid "Web" -msgstr "Веб" - -#: fotoxx.h:1200 -msgid "White" -msgstr "Белый" - -#: fotoxx.h:1201 -msgid "Width" -msgstr "Ширина" - -#: fotoxx.h:1202 -msgid "x-offset" -msgstr "x-смещение" - -#: fotoxx.h:1203 -msgid "y-offset" -msgstr "y-смещение" - -#: fotoxx.h:1204 zfuncs.cc:9658 -msgid "Yes" -msgstr "Да" - -#: zfuncs.cc:1687 -#, c-format -msgid "" -"create directory? \n" -" %s" -msgstr "" -"Создать каталог? \n" -" %s" - -#: zfuncs.cc:4530 -msgid "user guide not found" -msgstr "Инструкция не найдена" - -#: zfuncs.cc:5345 -#, c-format -msgid "cannot open file %s" -msgstr "Не удалось открыть файл %s" - -#: zfuncs.cc:5381 -msgid "save screen to file" -msgstr "Сохранить экран в файл" - -#: zfuncs.cc:9744 zfuncs.cc:10239 zfuncs.cc:10559 -msgid "cancel" -msgstr "Отмена" - -#: zfuncs.cc:10200 -msgid "choose file" -msgstr "выберите файл" - -#: zfuncs.cc:10205 -msgid "choose files" -msgstr "выберите файлы" - -#: zfuncs.cc:10210 -msgid "save" -msgstr "Сохранить" - -#: zfuncs.cc:10216 -msgid "choose folder" -msgstr "выберите каталог" - -#: zfuncs.cc:10221 -msgid "choose folders" -msgstr "выберите каталоги" - -#: zfuncs.cc:10226 -msgid "create folder" -msgstr "Создать каталог" - -#: zfuncs.cc:10233 -msgid "hidden" -msgstr "Скрытый" - -#: zfuncs.cc:10559 -msgid "done" -msgstr "Готово" - -#: zfuncs.cc:10559 zfuncs.cc:10568 -msgid "margins" -msgstr "Края" - -#: zfuncs.cc:10589 -msgid "image scale" -msgstr "Масштаб изображения" - -#: zfuncs.cc:10591 -msgid "percent" -msgstr "Процент" - -#: zfuncs.cc:10598 -msgid "image" -msgstr "изображение" - -#: zfuncs.cc:10602 -msgid "width" -msgstr "Ширина" - -#: zfuncs.cc:10606 -msgid "height" -msgstr "Высота" - -#~ msgid "select area within mouse" -#~ msgstr "Выбрать область внутри пятна" - -#~ msgid "select one matching color within mouse" -#~ msgstr "Выбрать один цвет внутри пятна" - -#~ msgid "select all matching colors within mouse" -#~ msgstr "выделить все совпадающие цвета вокруг мыши" - -#~ msgid "firewall" -#~ msgstr "Внутри области" - -#~ msgid "" -#~ "Click one time inside each enclosed area \n" -#~ "(possible gaps in the outline will be found). \n" -#~ "Press F1 for help." -#~ msgstr "" -#~ "Кликните один раз в каждой замкнутой области \n" -#~ "(будут найдены возможные разрывы контура). \n" -#~ "F1 для вызова справки." - -#~ msgid "linear" -#~ msgstr "Линейный" - -#~ msgid "curved" -#~ msgstr "Изогнутый" - -#~ msgid "auto-trim" -#~ msgstr "автообрезка" - -#~ msgid "Copy Image File" -#~ msgstr "Копировать изображение" - -#~ msgid "Move Image File" -#~ msgstr "Переместить изображение" - -#~ msgid "new location" -#~ msgstr "Новое расположение" - -#~ msgid "Trash Image File" -#~ msgstr "Поместить изображение в корзину" - -#~ msgid "(automatic step to next image)" -#~ msgstr "(автоматический переход к следующему изображению)" - -#~ msgid "" -#~ "Linux standard trash does not work. \n" -#~ "Desktop trash folder will be created." -#~ msgstr "" -#~ "Стандартная корзина Linux не работает \n" -#~ "Корзина будет создана на рабочем столе." - -#~ msgid "" -#~ "Linux and Desktop trash do not work. \n" -#~ "Permanently delete the image file?" -#~ msgstr "" -#~ "Корзина для Linux не работает. \n" -#~ "Удалить файл окончательно?" - -#~ msgid "Cannot create trash folder: %s" -#~ msgstr "Не удалось создать папку корзины: %s" - -#~ msgid "Move read-only file to trash?" -#~ msgstr "Переместить файл только для чтения в корзину?" - -#~ msgid "Delete Image File - CANNOT BE REVERSED" -#~ msgstr "Удаление изображения (НЕОБРАТИМО!)" - -#~ msgid "Undo Memory %d%c" -#~ msgstr "Память отмены %d%c" - -#~ msgid "" -#~ "Undo memory limit has been reached. \n" -#~ "Save work with [done], then resume painting." -#~ msgstr "" -#~ "Был достигнут предел памяти отмены. \n" -#~ "Нажмите [Изменить] для сохранения изменений, затем продолжите рисование." - -#~ msgid "Move image file to Trash" -#~ msgstr "Переместить файл изображения в корзину?" - -#~ msgid "Permanently delete image file" -#~ msgstr "Удалить файл изображения навсегда" - -#~ msgid "Edit image tags/caption/rating ..." -#~ msgstr "Редактировать теги/рейтинг/описание" - -#~ msgid "Edit image location and geotags" -#~ msgstr "Редактировать геотеги " - -#~ msgid "Adjust brightness distribution" -#~ msgstr "Выровнять распределение яркости" - -#~ msgid "Delete Image File" -#~ msgstr "Удалить файл изображения" - -#~ msgid "Brightness Dist." -#~ msgstr "Распределение яркости" - -#~ msgid "Brightness Ramp" -#~ msgstr "Спад яркости" - -#~ msgid "Show Brightness Dist." -#~ msgstr "Укажите Яркость" - -#~ msgid "Copy to Location" -#~ msgstr "Копировать в папку" - -#~ msgid "Move to Location" -#~ msgstr "Переместить в папку" - -#~ msgid "Voodoo Enhance" -#~ msgstr "Улучшение Voodoo" - -#~ msgid "recent" -#~ msgstr "недавние" - -#~ msgid "newest" -#~ msgstr "новые" - -#~ msgid "Brasero not installed" -#~ msgstr "Brasero не установлен" - -#~ msgid "Burn selected image files to CD or DVD" -#~ msgstr "Записать изображения на CD/DVD" - -#~ msgid "Burn Images to CD/DVD" -#~ msgstr "Записать изображения на CD/DVD" - -#, fuzzy -#~ msgid "Sync.G" -#~ msgstr "Галерея" - -#~ msgid "(0 images)" -#~ msgstr "(0 изображений)" - -#~ msgid "(%d images)" -#~ msgstr "(%d изображений)" - -#~ msgid "jpeg quality must be 1-100" -#~ msgstr "Качество jpeg должно быть 1-100" - -#~ msgid "" -#~ "new name/base/adder unreasonable\n" -#~ " e.g. newname ### 100 10" -#~ msgstr "" -#~ "плохое новое имя/модификатор\n" -#~ "например имя ### 100 10" - -#~ msgid "unsharp mask" -#~ msgstr "Нерезкая маска" - -#~ msgid "brightness gradient" -#~ msgstr "Градиент яркости" - -#~ msgid "Kuwahara method" -#~ msgstr "Метод Кувахара" - -#~ msgid "Flatten Outliers 1" -#~ msgstr "Усреднить выпадающие 1" - -#~ msgid "Flatten Outliers 2" -#~ msgstr "Усреднить выпадающие 2" - -#~ msgid "Median Brightness" -#~ msgstr "Усреднить по яркости" - -#~ msgid "Lock aspect ratio" -#~ msgstr "Зафиксировать соотношение сторон" - -#~ msgid "Popup Image (add)" -#~ msgstr "Всплывающее изображение (добавить)" - -#~ msgid "Metadata" -#~ msgstr "Метаданные" - -#~ msgid "" -#~ "Undo or Redo one edit (left/right mouse click) \n" -#~ " hold key A to include all edits" -#~ msgstr "" -#~ "Отменить/повторить операцию (лев/прав клик) \n" -#~ " удерживайте A для всех операций" - -#~ msgid "other" -#~ msgstr "Другое" - -#~ msgid "metadata" -#~ msgstr "метаданные" - -#~ msgid "Sync" -#~ msgstr "Синхронизация" - -#~ msgid "Press ESC to exit slide show" -#~ msgstr "Нажмите ESC для выхода из слайд-шоу" - -#~ msgid "Geotags" -#~ msgstr "Геотеги" - -#~ msgid "error in latitude/longitude/range" -#~ msgstr "Ошибка в широте/долготе/расстоянии" - -#~ msgid "range (km)" -#~ msgstr "Расстояние (км)" - -#~ msgid "Add Geotags Search Criteria" -#~ msgstr "Добавить критерии поиска геотегов" - -#~ msgid "other criteria" -#~ msgstr "Другие критерии" - -#~ msgid "Geocoding web service courtesy of" -#~ msgstr "Благодаря веб-сервису геокодирования" - -#~ msgid "Edit Geotags" -#~ msgstr "Редактировать геотеги" diff -Nru fotoxx-16.06/Makefile fotoxx-16.07/Makefile --- fotoxx-16.06/Makefile 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/Makefile 2016-07-01 10:19:38.000000000 +0000 @@ -1,6 +1,6 @@ # fotoxx makefile -FOTOXX = fotoxx-16.06.cc +FOTOXX = fotoxx-16.07.cc # defaults for parameters that may be pre-defined CXXFLAGS += -Wall -ggdb @@ -27,8 +27,7 @@ -I/usr/include/libchamplain-gtk-0.12/ \ -I/usr/include/libchamplain-0.12/ - -LIBS = `pkg-config --libs gtk+-3.0` -lrt -lpthread -ltiff -lpng -llcms2 \ +LIBS = `pkg-config --libs gtk+-3.0` -lrt -lpthread -ltiff -lpng -lraw -llcms2 \ -lclutter-1.0 -lclutter-gtk-1.0 -lchamplain-0.12 -lchamplain-gtk-0.12 ALLFILES = fotoxx.o f.widgets.o f.image.o f.file.o f.gallery.o f.area.o \ @@ -88,7 +87,6 @@ zfuncs.o: zfuncs.cc zfuncs.h $(CXX) zfuncs.cc $(CFLAGS) \ - -D PREFIX=\"$(PREFIX)\" -D DOCDIR=\"$(DOCDIR)\" \ install: fotoxx uninstall mkdir -p $(DESTDIR)$(BINDIR) diff -Nru fotoxx-16.06/zfuncs.cc fotoxx-16.07/zfuncs.cc --- fotoxx-16.06/zfuncs.cc 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/zfuncs.cc 2016-07-01 10:19:38.000000000 +0000 @@ -131,7 +131,6 @@ showz_logfile display application log file showz_textfile show application text file (README, changelog, etc.) showz_html show a local or remote HTML file - zmake_menu_launcher create desktop icon / launcher ZTX(), etc. translate GUI and message text strings for non-English locales GTK Utility Functions @@ -1189,14 +1188,21 @@ void start_detached_thread(void * threadfunc(void *), void * arg) { + static int ftf = 1; pthread_attr_t pthattr; pthread_t pthtid; int ptherr; + + if (ftf) { // 6.4 + pthread_attr_init(&pthattr); + ftf = 0; + } + zsleep(0.00001); // kernel bug workaround 6.4 pthread_attr_init(&pthattr); - pthread_attr_setdetachstate(&pthattr,PTHREAD_CREATE_DETACHED); + pthread_attr_setdetachstate(&pthattr,PTHREAD_CREATE_DETACHED); // can crash here if sleep is removed ptherr = pthread_create(&pthtid,&pthattr,threadfunc,arg); - if (ptherr) zappcrash("start_detached_thread() failure: %s",strerror(ptherr)); + if (ptherr) printf("pthread_create() error %s \n",strerror(errno)); // 6.4 return; } @@ -4302,11 +4308,10 @@ { using namespace zfuncs; - char work[200]; char logfile[200], oldlog[200]; int cc, secs, err; time_t Tnow; - char *chTnow; + char *pp, *chTnow; STATB statdat; FILE *fid; @@ -4314,21 +4319,21 @@ strcpy(zappname,appname); // save app name - #ifndef PREFIX // install location - #define PREFIX "/usr" - #endif - - strncpy0(work,PREFIX,199); // /usr or /home/ - strcpy(zprefix,work); // /prefix - strncatv(zdatadir,199,work,"/share/",zappname,"/data",null); // /prefix/share/appname/data - strncatv(zicondir,199,work,"/share/",zappname,"/icons",null); // /prefix/share/appname/icons - strncatv(zlocalesdir,199,work,"/share/",zappname,"/locales",null); // /prefix/share/appname/locales - strncatv(zdocdir,199,work,"/share/doc/",zappname,null); // /prefix/share/doc/appname - - #ifdef DOCDIR - strncpy0(zdocdir,DOCDIR,199); // flexible DOCDIR location - #endif - + cc = readlink("/proc/self/exe",zprefix,200); // get own program path 6.4 + if (cc <= 0) { + printz("readlink() /proc/self/exe) failed \n"); // if failed, assume /usr/bin/ + strcpy(zprefix,"/usr/bin/"); + } + else zprefix[cc] = 0; // readlink() quirk + pp = strstr(zprefix,"/bin/"); // get install prefix (e.g. /usr) + if (pp) *pp = 0; + else (strcpy(zprefix,"/usr")); // if /xxxxx/bin --> /xxxxx 6.4 + + strncatv(zdatadir,199,zprefix,"/share/",zappname,"/data",null); // /prefix/share/appname/data + strncatv(zicondir,199,zprefix,"/share/",zappname,"/icons",null); // /prefix/share/appname/icons + strncatv(zlocalesdir,199,zprefix,"/share/",zappname,"/locales",null); // /prefix/share/appname/locales + strncatv(zdocdir,199,zprefix,"/share/doc/",zappname,null); // /prefix/share/doc/appname + snprintf(zuserdir,199,"%s/.%s",getenv("HOME"),zappname); // /home//.appname/ cc = strlen(zuserdir); // stop humongous username if (cc > 160) zappcrash("too big: %s",zuserdir); @@ -4340,8 +4345,7 @@ shell_quiet("cp -R %s/* %s",zdatadir,zuserdir); // copy initial data files 6.0 } - tid_main = pthread_self(); // thread ID of main() process - Tnow = time(0); + Tnow = time(0); // get date and time chTnow = ctime(&Tnow); chTnow[19] = 0; @@ -4361,6 +4365,7 @@ printz("\n =========== start %s %s \n",zappname,chTnow); fflush(0); + tid_main = pthread_self(); // thread ID of main() process get_hardware_info(null); // get display, screen, manager, mouse return 1; @@ -4627,69 +4632,6 @@ } -/********************************************************************************/ - -// Creates a desktop icon / launcher and a system menu entry. -// The menu name is taken from the input command, without options. -// A command like "mycom -optA -optB" would generate a menu name of "mycom". -// The categories should be separated by semicolons and conform to LSB categories. -// The generic name is free text to describe the application, e.g. "Image Editor". -// If the target system is not LSB compliant this function will not work. - -void zmake_menu_launcher(cchar *command, cchar *categories, cchar *genericname) -{ - using namespace zfuncs; - - char appname[20], dtdir[200], dtfile[200], work[200]; - cchar *xdgcomm = "xdg-user-dir DESKTOP"; - cchar *pp; - FILE *fid; - - pp = strField(command,' ',1); - if (! pp) pp = "?"; - strncpy0(appname,pp,20); - - fid = popen(xdgcomm,"r"); // get desktop directory for user - if (! fid) { - zmessageACK(0,"%s \n %s",xdgcomm,strerror(errno)); - return; - } - int nn = fscanf(fid,"%s",dtdir); - pclose(fid); - if (nn != 1) { - zmessageACK(0,"xdg-user-dir DESKTOP failed"); - return; - } - - snprintf(dtfile,200,"%s/%s.desktop",dtdir,appname); - - fid = fopen(dtfile,"w"); - if (! fid) { - zmessageACK(0,"%s \n %s",dtfile,strerror(errno)); - return; - } - - fputs("[Desktop Entry]\n",fid); // [Desktop Entry] - snprintf(work,199,"Name=%s\n",appname); // Name=appname - fputs(work,fid); - snprintf(work,199,"Categories=%s\n",categories); // Categories=Cat1;Cat2; ... - fputs(work,fid); - snprintf(work,199,"GenericName=%s\n",genericname); // GenericName=generic app name - fputs(work,fid); - fputs("Type=Application\n",fid); // Type=Application - fputs("Terminal=false\n",fid); // Terminal=false - snprintf(work,199,"Exec=%s/bin/%s\n",zprefix,command); // Exec=/usr/bin/appname -options - fputs(work,fid); - snprintf(work,199,"Icon=%s/%s.png\n",zicondir,appname); // /usr/share/appname/icons/appname.png - fputs(work,fid); - fclose(fid); - - shell_ack("chmod 0750 %s",dtfile); // make executable - shell_ack("xdg-desktop-menu install --novendor %s",dtfile); // add menu entry - return; -} - - /******************************************************************************** Translation Functions @@ -7833,10 +7775,9 @@ zd->widget[iiw].data = 0; if (data) { - wdata = zstrdup(data); // set new data for widget + if (utf8_check(data)) wdata = zstrdup("bad UTF8 data"); // replace bad UTF-8 encoding 6.4 + else wdata = zstrdup(data); // set new data for widget zd->widget[iiw].data = wdata; - if (utf8_check(wdata)) - printz("*** zdialog: bad UTF8 encoding %s \n",wdata); } zd->disabled++; // disable for widget stuffing @@ -8143,10 +8084,11 @@ type = zd->widget[ii].type; wdata = 0; - if (strmatch(type,"button")) wdata = "clicked"; + if (strmatch(type,"button")) + wdata = gtk_button_get_label(GTK_BUTTON(widget)); // button label 6.4 if (strmatch(type,"entry")) - wdata = gtk_entry_get_text(GTK_ENTRY(widget)); + wdata = gtk_entry_get_text(GTK_ENTRY(widget)); if (strmatch(type,"edit")) { gtk_text_buffer_get_bounds(textBuff,&iter1,&iter2); diff -Nru fotoxx-16.06/zfuncs.h fotoxx-16.07/zfuncs.h --- fotoxx-16.06/zfuncs.h 2016-06-01 07:53:43.000000000 +0000 +++ fotoxx-16.07/zfuncs.h 2016-07-01 10:19:38.000000000 +0000 @@ -291,8 +291,6 @@ void showz_textfile(cchar *type, cchar *file); // show text file [.gz] in popup window void showz_html(cchar *url); // show html via preferred browser -void zmake_menu_launcher(cchar *command, cchar *cats, cchar *generic); // make desktop menu and launcher - // translation functions ======================================================= #define ZTXmaxent 2000 // max. translation strings